From 16733fdb0e68dcf8d8b672cad6adfb4188e1e549 Mon Sep 17 00:00:00 2001 From: Bobby Lucero Date: Wed, 24 Apr 2024 20:54:23 -0400 Subject: [PATCH] pocketpy --- .gitmodules | 3 - dependencies/__init__.py | 0 dependencies/pocketpy | 1 - dependencies/pocketpy/.gitattributes | 2 + dependencies/pocketpy/.github/FUNDING.yml | 13 + .../.github/ISSUE_TEMPLATE/bug_report.md | 29 + .../.github/ISSUE_TEMPLATE/feature_request.md | 20 + .../pocketpy/.github/workflows/main.yml | 157 + .../pocketpy/.github/workflows/website.yml | 41 + dependencies/pocketpy/.gitignore | 30 + .../pocketpy/3rd/cjson/CMakeLists.txt | 18 + dependencies/pocketpy/3rd/cjson/LICENSE | 10 + .../pocketpy/3rd/cjson/include/cJSON.h | 300 + .../pocketpy/3rd/cjson/include/cJSONw.hpp | 8 + dependencies/pocketpy/3rd/cjson/src/cJSON.c | 3119 ++ .../pocketpy/3rd/cjson/src/cJSONw.cpp | 131 + dependencies/pocketpy/3rd/ios.toolchain.cmake | 1122 + .../3rd/lua_bridge/include/lua_bridge.hpp | 15 + .../3rd/lua_bridge/src/lua_bridge.cpp | 353 + dependencies/pocketpy/CMakeLists.txt | 93 + dependencies/pocketpy/LICENSE | 21 + dependencies/pocketpy/README.md | 224 + dependencies/pocketpy/__init__.py | 0 dependencies/pocketpy/amalgamate.py | 96 + dependencies/pocketpy/benchmarks/__init__.py | 0 dependencies/pocketpy/benchmarks/fib.py | 10 + .../pocketpy/benchmarks/function_0.py | 8 + .../pocketpy/benchmarks/function_1.py | 11 + .../pocketpy/benchmarks/ldtk_cjson.py | 46 + dependencies/pocketpy/benchmarks/ldtk_json.py | 30 + dependencies/pocketpy/benchmarks/loop_0.py | 2 + dependencies/pocketpy/benchmarks/loop_1.py | 2 + dependencies/pocketpy/benchmarks/loop_2.py | 6 + dependencies/pocketpy/benchmarks/loop_3.py | 5 + dependencies/pocketpy/benchmarks/primes.cpp | 167 + dependencies/pocketpy/benchmarks/primes.lua | 168 + dependencies/pocketpy/benchmarks/primes.py | 111 + dependencies/pocketpy/benchmarks/recursive.py | 6 + .../res/Typical_2D_platformer_example.ldtk | 5553 +++ .../benchmarks/res/WorldMap_Free_layout.ldtk | 14948 +++++++ .../res/WorldMap_GridVania_layout.ldtk | 33256 ++++++++++++++++ dependencies/pocketpy/benchmarks/simple.py | 20 + dependencies/pocketpy/benchmarks/sort.py | 22 + dependencies/pocketpy/benchmarks/sum.py | 6 + dependencies/pocketpy/build.sh | 48 + dependencies/pocketpy/build_android.sh | 18 + dependencies/pocketpy/build_ios.sh | 18 + dependencies/pocketpy/build_web.sh | 7 + dependencies/pocketpy/build_with_warnings.sh | 5 + .../pocketpy/c_bindings/CMakeLists.txt | 23 + dependencies/pocketpy/c_bindings/test.c | 420 + .../pocketpy/c_bindings/test_answers.txt | 112 + dependencies/pocketpy/cmake_build.py | 25 + dependencies/pocketpy/compile_flags.txt | 11 + dependencies/pocketpy/docs/C-API/call.md | 19 + dependencies/pocketpy/docs/C-API/error.md | 23 + dependencies/pocketpy/docs/C-API/index.yml | 3 + .../pocketpy/docs/C-API/introduction.md | 42 + dependencies/pocketpy/docs/C-API/specials.md | 21 + dependencies/pocketpy/docs/C-API/stack.md | 153 + dependencies/pocketpy/docs/bindings.md | 267 + dependencies/pocketpy/docs/bindings_lua.md | 104 + dependencies/pocketpy/docs/cheatsheet.md | 342 + .../pocketpy/docs/coding_style_guide.md | 106 + dependencies/pocketpy/docs/features/basic.md | 92 + .../pocketpy/docs/features/debugging.md | 24 + .../pocketpy/docs/features/differences.md | 42 + dependencies/pocketpy/docs/features/goto.md | 30 + dependencies/pocketpy/docs/features/incdec.md | 23 + dependencies/pocketpy/docs/features/index.yml | 3 + dependencies/pocketpy/docs/features/long.md | 27 + .../pocketpy/docs/features/precompile.md | 145 + dependencies/pocketpy/docs/features/ub.md | 12 + dependencies/pocketpy/docs/gsoc/guide.md | 58 + dependencies/pocketpy/docs/gsoc/ideas.md | 40 + dependencies/pocketpy/docs/gsoc/index.yml | 2 + dependencies/pocketpy/docs/index.md | 55 + dependencies/pocketpy/docs/license.md | 33 + dependencies/pocketpy/docs/modules/array2d.md | 19 + dependencies/pocketpy/docs/modules/base64.md | 13 + dependencies/pocketpy/docs/modules/bisect.md | 24 + dependencies/pocketpy/docs/modules/c.md | 8 + dependencies/pocketpy/docs/modules/cmath.md | 12 + .../pocketpy/docs/modules/collections.md | 17 + .../pocketpy/docs/modules/colorsys.md | 8 + dependencies/pocketpy/docs/modules/csv.md | 33 + .../pocketpy/docs/modules/dataclasses.md | 14 + .../pocketpy/docs/modules/datetime.md | 12 + dependencies/pocketpy/docs/modules/easing.md | 38 + dependencies/pocketpy/docs/modules/enum.md | 24 + .../pocketpy/docs/modules/functools.md | 16 + dependencies/pocketpy/docs/modules/gc.md | 9 + dependencies/pocketpy/docs/modules/heapq.md | 24 + dependencies/pocketpy/docs/modules/index.yml | 2 + dependencies/pocketpy/docs/modules/io.md | 42 + .../pocketpy/docs/modules/itertools.md | 8 + dependencies/pocketpy/docs/modules/json.md | 19 + dependencies/pocketpy/docs/modules/linalg.md | 178 + .../pocketpy/docs/modules/line_profiler.md | 39 + dependencies/pocketpy/docs/modules/math.md | 133 + .../pocketpy/docs/modules/operator.md | 14 + dependencies/pocketpy/docs/modules/os.md | 72 + dependencies/pocketpy/docs/modules/pickle.md | 33 + dependencies/pocketpy/docs/modules/random.md | 32 + dependencies/pocketpy/docs/modules/sys.md | 22 + dependencies/pocketpy/docs/modules/time.md | 16 + .../pocketpy/docs/modules/traceback.md | 12 + dependencies/pocketpy/docs/modules/typing.md | 6 + dependencies/pocketpy/docs/performance.md | 158 + .../pocketpy/docs/quick-start/attr.md | 72 + .../pocketpy/docs/quick-start/call.md | 71 + .../pocketpy/docs/quick-start/config.md | 30 + .../pocketpy/docs/quick-start/exec.md | 59 + .../pocketpy/docs/quick-start/index.yml | 3 + .../pocketpy/docs/quick-start/installation.md | 167 + .../pocketpy/docs/quick-start/interop.md | 117 + .../pocketpy/docs/quick-start/misc.md | 39 + .../pocketpy/docs/quick-start/modules.md | 67 + dependencies/pocketpy/docs/retype.yml | 32 + dependencies/pocketpy/docs/static/logo.png | Bin 0 -> 25653 bytes dependencies/pocketpy/docs/unity/bindings.md | 185 + dependencies/pocketpy/docs/unity/console.md | 32 + dependencies/pocketpy/docs/unity/examples.md | 166 + dependencies/pocketpy/docs/unity/index.yml | 3 + .../pocketpy/docs/unity/introduction.md | 82 + dependencies/pocketpy/docs/unity/vm.md | 153 + dependencies/pocketpy/include/pocketpy.h | 3 + .../pocketpy/include/pocketpy/_generated.h | 20 + .../pocketpy/include/pocketpy/array2d.h | 9 + .../pocketpy/include/pocketpy/base64.h | 9 + .../pocketpy/include/pocketpy/bindings.h | 185 + .../pocketpy/include/pocketpy/ceval.h | 4 + dependencies/pocketpy/include/pocketpy/cffi.h | 116 + .../pocketpy/include/pocketpy/codeobject.h | 213 + .../pocketpy/include/pocketpy/collections.h | 8 + .../pocketpy/include/pocketpy/common.h | 172 + .../pocketpy/include/pocketpy/compiler.h | 144 + .../pocketpy/include/pocketpy/config.h | 80 + dependencies/pocketpy/include/pocketpy/csv.h | 9 + .../pocketpy/include/pocketpy/dataclasses.h | 9 + dependencies/pocketpy/include/pocketpy/dict.h | 73 + .../pocketpy/include/pocketpy/easing.h | 9 + .../pocketpy/include/pocketpy/error.h | 84 + .../pocketpy/include/pocketpy/export.h | 39 + dependencies/pocketpy/include/pocketpy/expr.h | 379 + .../pocketpy/include/pocketpy/frame.h | 166 + dependencies/pocketpy/include/pocketpy/gc.h | 73 + dependencies/pocketpy/include/pocketpy/io.h | 9 + dependencies/pocketpy/include/pocketpy/iter.h | 64 + .../pocketpy/include/pocketpy/lexer.h | 144 + .../pocketpy/include/pocketpy/linalg.h | 144 + .../pocketpy/include/pocketpy/memory.h | 28 + .../pocketpy/include/pocketpy/modules.h | 19 + .../pocketpy/include/pocketpy/namedict.h | 343 + dependencies/pocketpy/include/pocketpy/obj.h | 351 + .../pocketpy/include/pocketpy/opcodes.h | 163 + .../pocketpy/include/pocketpy/pocketpy.h | 19 + .../pocketpy/include/pocketpy/pocketpy_c.h | 106 + .../pocketpy/include/pocketpy/profiler.h | 36 + .../pocketpy/include/pocketpy/random.h | 9 + dependencies/pocketpy/include/pocketpy/repl.h | 17 + dependencies/pocketpy/include/pocketpy/str.h | 235 + .../pocketpy/include/pocketpy/tuplelist.h | 56 + .../pocketpy/include/pocketpy/vector.h | 409 + dependencies/pocketpy/include/pocketpy/vm.h | 601 + dependencies/pocketpy/include/pocketpy_c.h | 3 + .../pocketpy/include/typings/__builtins.pyi | 7 + .../pocketpy/include/typings/array2d.pyi | 54 + dependencies/pocketpy/include/typings/c.pyi | 117 + .../pocketpy/include/typings/cjson.pyi | 2 + .../pocketpy/include/typings/easing.pyi | 31 + .../pocketpy/include/typings/linalg.pyi | 167 + .../include/typings/line_profiler.pyi | 10 + .../pocketpy/plugins/macos/.gitignore | 1 + dependencies/pocketpy/prebuild.py | 47 + dependencies/pocketpy/pyrightconfig.json | 5 + dependencies/pocketpy/python/__init__.py | 0 dependencies/pocketpy/python/_enum.py | 11 + dependencies/pocketpy/python/_long.py | 352 + dependencies/pocketpy/python/_set.py | 80 + dependencies/pocketpy/python/bisect.py | 72 + dependencies/pocketpy/python/builtins.py | 248 + dependencies/pocketpy/python/cmath.py | 181 + dependencies/pocketpy/python/collections.py | 27 + dependencies/pocketpy/python/colorsys.py | 171 + dependencies/pocketpy/python/datetime.py | 148 + dependencies/pocketpy/python/functools.py | 36 + dependencies/pocketpy/python/heapq.py | 86 + dependencies/pocketpy/python/itertools.py | 15 + dependencies/pocketpy/python/pickle.py | 182 + dependencies/pocketpy/python/this.py | 21 + dependencies/pocketpy/python/typing.py | 47 + dependencies/pocketpy/run_c_binding_test.sh | 17 + .../pocketpy/run_cmake_install_test.sh | 28 + dependencies/pocketpy/run_profile.sh | 7 + dependencies/pocketpy/run_tests.sh | 21 + dependencies/pocketpy/scripts/__init__.py | 0 dependencies/pocketpy/scripts/genstub.py | 38 + dependencies/pocketpy/scripts/loc.py | 26 + dependencies/pocketpy/scripts/run_tests.py | 76 + dependencies/pocketpy/src/_generated.cpp | 20 + dependencies/pocketpy/src/array2d.cpp | 354 + dependencies/pocketpy/src/base64.cpp | 188 + dependencies/pocketpy/src/ceval.cpp | 949 + dependencies/pocketpy/src/cffi.cpp | 278 + dependencies/pocketpy/src/codeobject.cpp | 35 + dependencies/pocketpy/src/collections.cpp | 558 + dependencies/pocketpy/src/compiler.cpp | 1422 + dependencies/pocketpy/src/csv.cpp | 93 + dependencies/pocketpy/src/dataclasses.cpp | 117 + dependencies/pocketpy/src/dict.cpp | 182 + dependencies/pocketpy/src/easing.cpp | 251 + dependencies/pocketpy/src/error.cpp | 82 + dependencies/pocketpy/src/expr.cpp | 718 + dependencies/pocketpy/src/frame.cpp | 67 + dependencies/pocketpy/src/gc.cpp | 68 + dependencies/pocketpy/src/io.cpp | 254 + dependencies/pocketpy/src/iter.cpp | 94 + dependencies/pocketpy/src/lexer.cpp | 574 + dependencies/pocketpy/src/linalg.cpp | 674 + dependencies/pocketpy/src/memory.cpp | 287 + dependencies/pocketpy/src/modules.cpp | 356 + dependencies/pocketpy/src/namedict.cpp | 4 + dependencies/pocketpy/src/obj.cpp | 50 + dependencies/pocketpy/src/pocketpy.cpp | 1671 + dependencies/pocketpy/src/pocketpy_c.cpp | 586 + dependencies/pocketpy/src/profiler.cpp | 125 + dependencies/pocketpy/src/random.cpp | 229 + dependencies/pocketpy/src/repl.cpp | 42 + dependencies/pocketpy/src/str.cpp | 602 + dependencies/pocketpy/src/tuplelist.cpp | 68 + dependencies/pocketpy/src/vm.cpp | 1571 + dependencies/pocketpy/src2/main.cpp | 113 + dependencies/pocketpy/src2/pocketpy_c.c | 260 + dependencies/pocketpy/tests/01_int.py | 173 + dependencies/pocketpy/tests/02_float.py | 97 + dependencies/pocketpy/tests/03_bool.py | 20 + .../pocketpy/tests/04_line_continue.py | 31 + dependencies/pocketpy/tests/04_str.py | 266 + dependencies/pocketpy/tests/05_list.py | 131 + dependencies/pocketpy/tests/06_tuple.py | 24 + dependencies/pocketpy/tests/07_dict.py | 162 + dependencies/pocketpy/tests/08_set.py | 88 + dependencies/pocketpy/tests/09_long.py | 50 + dependencies/pocketpy/tests/10_cmath.py | 52 + dependencies/pocketpy/tests/11_bytes.py | 36 + dependencies/pocketpy/tests/20_controlflow.py | 134 + dependencies/pocketpy/tests/21_functions.py | 154 + dependencies/pocketpy/tests/22_typehints.py | 57 + dependencies/pocketpy/tests/23_dictcomp.py | 8 + dependencies/pocketpy/tests/23_listcomp.py | 47 + dependencies/pocketpy/tests/23_setcomp.py | 11 + .../pocketpy/tests/24_inline_blocks.py | 20 + dependencies/pocketpy/tests/25_rawstring.py | 126 + dependencies/pocketpy/tests/26_multiline.py | 27 + dependencies/pocketpy/tests/27_goto.py | 38 + dependencies/pocketpy/tests/28_iter.py | 53 + dependencies/pocketpy/tests/29_incdec.py | 15 + dependencies/pocketpy/tests/30_import.py | 34 + dependencies/pocketpy/tests/31_cmp.py | 19 + dependencies/pocketpy/tests/32_assign.py | 10 + dependencies/pocketpy/tests/33_match_case.py | 44 + dependencies/pocketpy/tests/34_context.py | 37 + dependencies/pocketpy/tests/40_class.py | 132 + dependencies/pocketpy/tests/40_class_ex.py | 160 + dependencies/pocketpy/tests/41_exception.py | 197 + dependencies/pocketpy/tests/42_closure.py | 27 + dependencies/pocketpy/tests/42_closure_ex.py | 8 + dependencies/pocketpy/tests/43_eval.py | 41 + dependencies/pocketpy/tests/44_decorator.py | 39 + dependencies/pocketpy/tests/45_yield.py | 93 + dependencies/pocketpy/tests/46_star.py | 66 + dependencies/pocketpy/tests/47_reflection.py | 24 + dependencies/pocketpy/tests/70_base64.py | 21 + dependencies/pocketpy/tests/70_bisect.py | 44 + dependencies/pocketpy/tests/70_builtins.py | 52 + dependencies/pocketpy/tests/70_collections.py | 837 + dependencies/pocketpy/tests/70_file.py | 70 + dependencies/pocketpy/tests/70_heapq.py | 9 + dependencies/pocketpy/tests/70_math.py | 58 + dependencies/pocketpy/tests/70_random.py | 69 + dependencies/pocketpy/tests/70_re.py | 19 + dependencies/pocketpy/tests/80_c.py | 74 + dependencies/pocketpy/tests/80_csv.py | 50 + dependencies/pocketpy/tests/80_datetime.py | 39 + dependencies/pocketpy/tests/80_easing.py | 12 + dependencies/pocketpy/tests/80_gc.py | 12 + dependencies/pocketpy/tests/80_json.py | 85 + dependencies/pocketpy/tests/80_json_alt.py | 3 + dependencies/pocketpy/tests/80_linalg.py | 499 + dependencies/pocketpy/tests/80_traceback.py | 14 + dependencies/pocketpy/tests/80_typing.py | 94 + dependencies/pocketpy/tests/81_pickle.py | 68 + dependencies/pocketpy/tests/82_dataclasses.py | 29 + dependencies/pocketpy/tests/83_array2d.py | 168 + .../pocketpy/tests/84_line_profiler.py | 25 + dependencies/pocketpy/tests/85_enum.py | 28 + dependencies/pocketpy/tests/86_itertools.py | 6 + dependencies/pocketpy/tests/87_sys.py | 4 + dependencies/pocketpy/tests/88_functools.py | 25 + dependencies/pocketpy/tests/94_compile.py | 2 + dependencies/pocketpy/tests/95_pdb.py | 19 + dependencies/pocketpy/tests/96_prime.py | 16 + dependencies/pocketpy/tests/97_dna.py | 120 + dependencies/pocketpy/tests/98_misc.py | 36 + dependencies/pocketpy/tests/99_bugs.py | 103 + .../pocketpy/tests/99_builtin_func.py | 604 + dependencies/pocketpy/tests/99_dis.py | 16 + dependencies/pocketpy/tests/__init__.py | 0 dependencies/pocketpy/tests/test1/__init__.py | 6 + dependencies/pocketpy/tests/test1/_a.py | 4 + dependencies/pocketpy/tests/test1/_b.py | 1 + dependencies/pocketpy/tests/test2/__init__.py | 1 + .../pocketpy/tests/test2/a/__init__.py | 1 + .../pocketpy/tests/test2/a/g/__init__.py | 6 + dependencies/pocketpy/tests/test2/b.py | 7 + .../pocketpy/tests/test2/utils/__init__.py | 4 + dependencies/pocketpy/tests/test2/utils/r.py | 4 + dependencies/pocketpy/tests/test3/__init__.py | 3 + .../pocketpy/tests/test3/a/__init__.py | 3 + dependencies/pocketpy/tests/test3/a/b.py | 1 + dependencies/pocketpy/web/index.html | 15 + dependencies/pocketpy/web/index.js | 163 + dependencies/pocketpy/web/xterm/xterm.css | 174 + dependencies/pocketpy/web/xterm/xterm.js | 2 + dependencies/pocketpy/web/xterm/xterm.js.map | 1 + 326 files changed, 91177 insertions(+), 4 deletions(-) create mode 100644 dependencies/__init__.py delete mode 160000 dependencies/pocketpy create mode 100644 dependencies/pocketpy/.gitattributes create mode 100644 dependencies/pocketpy/.github/FUNDING.yml create mode 100644 dependencies/pocketpy/.github/ISSUE_TEMPLATE/bug_report.md create mode 100644 dependencies/pocketpy/.github/ISSUE_TEMPLATE/feature_request.md create mode 100644 dependencies/pocketpy/.github/workflows/main.yml create mode 100644 dependencies/pocketpy/.github/workflows/website.yml create mode 100644 dependencies/pocketpy/.gitignore create mode 100644 dependencies/pocketpy/3rd/cjson/CMakeLists.txt create mode 100644 dependencies/pocketpy/3rd/cjson/LICENSE create mode 100644 dependencies/pocketpy/3rd/cjson/include/cJSON.h create mode 100644 dependencies/pocketpy/3rd/cjson/include/cJSONw.hpp create mode 100644 dependencies/pocketpy/3rd/cjson/src/cJSON.c create mode 100644 dependencies/pocketpy/3rd/cjson/src/cJSONw.cpp create mode 100644 dependencies/pocketpy/3rd/ios.toolchain.cmake create mode 100644 dependencies/pocketpy/3rd/lua_bridge/include/lua_bridge.hpp create mode 100644 dependencies/pocketpy/3rd/lua_bridge/src/lua_bridge.cpp create mode 100644 dependencies/pocketpy/CMakeLists.txt create mode 100644 dependencies/pocketpy/LICENSE create mode 100644 dependencies/pocketpy/README.md create mode 100644 dependencies/pocketpy/__init__.py create mode 100644 dependencies/pocketpy/amalgamate.py create mode 100644 dependencies/pocketpy/benchmarks/__init__.py create mode 100644 dependencies/pocketpy/benchmarks/fib.py create mode 100644 dependencies/pocketpy/benchmarks/function_0.py create mode 100644 dependencies/pocketpy/benchmarks/function_1.py create mode 100644 dependencies/pocketpy/benchmarks/ldtk_cjson.py create mode 100644 dependencies/pocketpy/benchmarks/ldtk_json.py create mode 100644 dependencies/pocketpy/benchmarks/loop_0.py create mode 100644 dependencies/pocketpy/benchmarks/loop_1.py create mode 100644 dependencies/pocketpy/benchmarks/loop_2.py create mode 100644 dependencies/pocketpy/benchmarks/loop_3.py create mode 100644 dependencies/pocketpy/benchmarks/primes.cpp create mode 100644 dependencies/pocketpy/benchmarks/primes.lua create mode 100644 dependencies/pocketpy/benchmarks/primes.py create mode 100644 dependencies/pocketpy/benchmarks/recursive.py create mode 100644 dependencies/pocketpy/benchmarks/res/Typical_2D_platformer_example.ldtk create mode 100644 dependencies/pocketpy/benchmarks/res/WorldMap_Free_layout.ldtk create mode 100644 dependencies/pocketpy/benchmarks/res/WorldMap_GridVania_layout.ldtk create mode 100644 dependencies/pocketpy/benchmarks/simple.py create mode 100644 dependencies/pocketpy/benchmarks/sort.py create mode 100644 dependencies/pocketpy/benchmarks/sum.py create mode 100644 dependencies/pocketpy/build.sh create mode 100644 dependencies/pocketpy/build_android.sh create mode 100644 dependencies/pocketpy/build_ios.sh create mode 100644 dependencies/pocketpy/build_web.sh create mode 100644 dependencies/pocketpy/build_with_warnings.sh create mode 100644 dependencies/pocketpy/c_bindings/CMakeLists.txt create mode 100644 dependencies/pocketpy/c_bindings/test.c create mode 100644 dependencies/pocketpy/c_bindings/test_answers.txt create mode 100644 dependencies/pocketpy/cmake_build.py create mode 100644 dependencies/pocketpy/compile_flags.txt create mode 100644 dependencies/pocketpy/docs/C-API/call.md create mode 100644 dependencies/pocketpy/docs/C-API/error.md create mode 100644 dependencies/pocketpy/docs/C-API/index.yml create mode 100644 dependencies/pocketpy/docs/C-API/introduction.md create mode 100644 dependencies/pocketpy/docs/C-API/specials.md create mode 100644 dependencies/pocketpy/docs/C-API/stack.md create mode 100644 dependencies/pocketpy/docs/bindings.md create mode 100644 dependencies/pocketpy/docs/bindings_lua.md create mode 100644 dependencies/pocketpy/docs/cheatsheet.md create mode 100644 dependencies/pocketpy/docs/coding_style_guide.md create mode 100644 dependencies/pocketpy/docs/features/basic.md create mode 100644 dependencies/pocketpy/docs/features/debugging.md create mode 100644 dependencies/pocketpy/docs/features/differences.md create mode 100644 dependencies/pocketpy/docs/features/goto.md create mode 100644 dependencies/pocketpy/docs/features/incdec.md create mode 100644 dependencies/pocketpy/docs/features/index.yml create mode 100644 dependencies/pocketpy/docs/features/long.md create mode 100644 dependencies/pocketpy/docs/features/precompile.md create mode 100644 dependencies/pocketpy/docs/features/ub.md create mode 100644 dependencies/pocketpy/docs/gsoc/guide.md create mode 100644 dependencies/pocketpy/docs/gsoc/ideas.md create mode 100644 dependencies/pocketpy/docs/gsoc/index.yml create mode 100644 dependencies/pocketpy/docs/index.md create mode 100644 dependencies/pocketpy/docs/license.md create mode 100644 dependencies/pocketpy/docs/modules/array2d.md create mode 100644 dependencies/pocketpy/docs/modules/base64.md create mode 100644 dependencies/pocketpy/docs/modules/bisect.md create mode 100644 dependencies/pocketpy/docs/modules/c.md create mode 100644 dependencies/pocketpy/docs/modules/cmath.md create mode 100644 dependencies/pocketpy/docs/modules/collections.md create mode 100644 dependencies/pocketpy/docs/modules/colorsys.md create mode 100644 dependencies/pocketpy/docs/modules/csv.md create mode 100644 dependencies/pocketpy/docs/modules/dataclasses.md create mode 100644 dependencies/pocketpy/docs/modules/datetime.md create mode 100644 dependencies/pocketpy/docs/modules/easing.md create mode 100644 dependencies/pocketpy/docs/modules/enum.md create mode 100644 dependencies/pocketpy/docs/modules/functools.md create mode 100644 dependencies/pocketpy/docs/modules/gc.md create mode 100644 dependencies/pocketpy/docs/modules/heapq.md create mode 100644 dependencies/pocketpy/docs/modules/index.yml create mode 100644 dependencies/pocketpy/docs/modules/io.md create mode 100644 dependencies/pocketpy/docs/modules/itertools.md create mode 100644 dependencies/pocketpy/docs/modules/json.md create mode 100644 dependencies/pocketpy/docs/modules/linalg.md create mode 100644 dependencies/pocketpy/docs/modules/line_profiler.md create mode 100644 dependencies/pocketpy/docs/modules/math.md create mode 100644 dependencies/pocketpy/docs/modules/operator.md create mode 100644 dependencies/pocketpy/docs/modules/os.md create mode 100644 dependencies/pocketpy/docs/modules/pickle.md create mode 100644 dependencies/pocketpy/docs/modules/random.md create mode 100644 dependencies/pocketpy/docs/modules/sys.md create mode 100644 dependencies/pocketpy/docs/modules/time.md create mode 100644 dependencies/pocketpy/docs/modules/traceback.md create mode 100644 dependencies/pocketpy/docs/modules/typing.md create mode 100644 dependencies/pocketpy/docs/performance.md create mode 100644 dependencies/pocketpy/docs/quick-start/attr.md create mode 100644 dependencies/pocketpy/docs/quick-start/call.md create mode 100644 dependencies/pocketpy/docs/quick-start/config.md create mode 100644 dependencies/pocketpy/docs/quick-start/exec.md create mode 100644 dependencies/pocketpy/docs/quick-start/index.yml create mode 100644 dependencies/pocketpy/docs/quick-start/installation.md create mode 100644 dependencies/pocketpy/docs/quick-start/interop.md create mode 100644 dependencies/pocketpy/docs/quick-start/misc.md create mode 100644 dependencies/pocketpy/docs/quick-start/modules.md create mode 100644 dependencies/pocketpy/docs/retype.yml create mode 100644 dependencies/pocketpy/docs/static/logo.png create mode 100644 dependencies/pocketpy/docs/unity/bindings.md create mode 100644 dependencies/pocketpy/docs/unity/console.md create mode 100644 dependencies/pocketpy/docs/unity/examples.md create mode 100644 dependencies/pocketpy/docs/unity/index.yml create mode 100644 dependencies/pocketpy/docs/unity/introduction.md create mode 100644 dependencies/pocketpy/docs/unity/vm.md create mode 100644 dependencies/pocketpy/include/pocketpy.h create mode 100644 dependencies/pocketpy/include/pocketpy/_generated.h create mode 100644 dependencies/pocketpy/include/pocketpy/array2d.h create mode 100644 dependencies/pocketpy/include/pocketpy/base64.h create mode 100644 dependencies/pocketpy/include/pocketpy/bindings.h create mode 100644 dependencies/pocketpy/include/pocketpy/ceval.h create mode 100644 dependencies/pocketpy/include/pocketpy/cffi.h create mode 100644 dependencies/pocketpy/include/pocketpy/codeobject.h create mode 100644 dependencies/pocketpy/include/pocketpy/collections.h create mode 100644 dependencies/pocketpy/include/pocketpy/common.h create mode 100644 dependencies/pocketpy/include/pocketpy/compiler.h create mode 100644 dependencies/pocketpy/include/pocketpy/config.h create mode 100644 dependencies/pocketpy/include/pocketpy/csv.h create mode 100644 dependencies/pocketpy/include/pocketpy/dataclasses.h create mode 100644 dependencies/pocketpy/include/pocketpy/dict.h create mode 100644 dependencies/pocketpy/include/pocketpy/easing.h create mode 100644 dependencies/pocketpy/include/pocketpy/error.h create mode 100644 dependencies/pocketpy/include/pocketpy/export.h create mode 100644 dependencies/pocketpy/include/pocketpy/expr.h create mode 100644 dependencies/pocketpy/include/pocketpy/frame.h create mode 100644 dependencies/pocketpy/include/pocketpy/gc.h create mode 100644 dependencies/pocketpy/include/pocketpy/io.h create mode 100644 dependencies/pocketpy/include/pocketpy/iter.h create mode 100644 dependencies/pocketpy/include/pocketpy/lexer.h create mode 100644 dependencies/pocketpy/include/pocketpy/linalg.h create mode 100644 dependencies/pocketpy/include/pocketpy/memory.h create mode 100644 dependencies/pocketpy/include/pocketpy/modules.h create mode 100644 dependencies/pocketpy/include/pocketpy/namedict.h create mode 100644 dependencies/pocketpy/include/pocketpy/obj.h create mode 100644 dependencies/pocketpy/include/pocketpy/opcodes.h create mode 100644 dependencies/pocketpy/include/pocketpy/pocketpy.h create mode 100644 dependencies/pocketpy/include/pocketpy/pocketpy_c.h create mode 100644 dependencies/pocketpy/include/pocketpy/profiler.h create mode 100644 dependencies/pocketpy/include/pocketpy/random.h create mode 100644 dependencies/pocketpy/include/pocketpy/repl.h create mode 100644 dependencies/pocketpy/include/pocketpy/str.h create mode 100644 dependencies/pocketpy/include/pocketpy/tuplelist.h create mode 100644 dependencies/pocketpy/include/pocketpy/vector.h create mode 100644 dependencies/pocketpy/include/pocketpy/vm.h create mode 100644 dependencies/pocketpy/include/pocketpy_c.h create mode 100644 dependencies/pocketpy/include/typings/__builtins.pyi create mode 100644 dependencies/pocketpy/include/typings/array2d.pyi create mode 100644 dependencies/pocketpy/include/typings/c.pyi create mode 100644 dependencies/pocketpy/include/typings/cjson.pyi create mode 100644 dependencies/pocketpy/include/typings/easing.pyi create mode 100644 dependencies/pocketpy/include/typings/linalg.pyi create mode 100644 dependencies/pocketpy/include/typings/line_profiler.pyi create mode 100644 dependencies/pocketpy/plugins/macos/.gitignore create mode 100644 dependencies/pocketpy/prebuild.py create mode 100644 dependencies/pocketpy/pyrightconfig.json create mode 100644 dependencies/pocketpy/python/__init__.py create mode 100644 dependencies/pocketpy/python/_enum.py create mode 100644 dependencies/pocketpy/python/_long.py create mode 100644 dependencies/pocketpy/python/_set.py create mode 100644 dependencies/pocketpy/python/bisect.py create mode 100644 dependencies/pocketpy/python/builtins.py create mode 100644 dependencies/pocketpy/python/cmath.py create mode 100644 dependencies/pocketpy/python/collections.py create mode 100644 dependencies/pocketpy/python/colorsys.py create mode 100644 dependencies/pocketpy/python/datetime.py create mode 100644 dependencies/pocketpy/python/functools.py create mode 100644 dependencies/pocketpy/python/heapq.py create mode 100644 dependencies/pocketpy/python/itertools.py create mode 100644 dependencies/pocketpy/python/pickle.py create mode 100644 dependencies/pocketpy/python/this.py create mode 100644 dependencies/pocketpy/python/typing.py create mode 100644 dependencies/pocketpy/run_c_binding_test.sh create mode 100644 dependencies/pocketpy/run_cmake_install_test.sh create mode 100644 dependencies/pocketpy/run_profile.sh create mode 100644 dependencies/pocketpy/run_tests.sh create mode 100644 dependencies/pocketpy/scripts/__init__.py create mode 100644 dependencies/pocketpy/scripts/genstub.py create mode 100644 dependencies/pocketpy/scripts/loc.py create mode 100644 dependencies/pocketpy/scripts/run_tests.py create mode 100644 dependencies/pocketpy/src/_generated.cpp create mode 100644 dependencies/pocketpy/src/array2d.cpp create mode 100644 dependencies/pocketpy/src/base64.cpp create mode 100644 dependencies/pocketpy/src/ceval.cpp create mode 100644 dependencies/pocketpy/src/cffi.cpp create mode 100644 dependencies/pocketpy/src/codeobject.cpp create mode 100644 dependencies/pocketpy/src/collections.cpp create mode 100644 dependencies/pocketpy/src/compiler.cpp create mode 100644 dependencies/pocketpy/src/csv.cpp create mode 100644 dependencies/pocketpy/src/dataclasses.cpp create mode 100644 dependencies/pocketpy/src/dict.cpp create mode 100644 dependencies/pocketpy/src/easing.cpp create mode 100644 dependencies/pocketpy/src/error.cpp create mode 100644 dependencies/pocketpy/src/expr.cpp create mode 100644 dependencies/pocketpy/src/frame.cpp create mode 100644 dependencies/pocketpy/src/gc.cpp create mode 100644 dependencies/pocketpy/src/io.cpp create mode 100644 dependencies/pocketpy/src/iter.cpp create mode 100644 dependencies/pocketpy/src/lexer.cpp create mode 100644 dependencies/pocketpy/src/linalg.cpp create mode 100644 dependencies/pocketpy/src/memory.cpp create mode 100644 dependencies/pocketpy/src/modules.cpp create mode 100644 dependencies/pocketpy/src/namedict.cpp create mode 100644 dependencies/pocketpy/src/obj.cpp create mode 100644 dependencies/pocketpy/src/pocketpy.cpp create mode 100644 dependencies/pocketpy/src/pocketpy_c.cpp create mode 100644 dependencies/pocketpy/src/profiler.cpp create mode 100644 dependencies/pocketpy/src/random.cpp create mode 100644 dependencies/pocketpy/src/repl.cpp create mode 100644 dependencies/pocketpy/src/str.cpp create mode 100644 dependencies/pocketpy/src/tuplelist.cpp create mode 100644 dependencies/pocketpy/src/vm.cpp create mode 100644 dependencies/pocketpy/src2/main.cpp create mode 100644 dependencies/pocketpy/src2/pocketpy_c.c create mode 100644 dependencies/pocketpy/tests/01_int.py create mode 100644 dependencies/pocketpy/tests/02_float.py create mode 100644 dependencies/pocketpy/tests/03_bool.py create mode 100644 dependencies/pocketpy/tests/04_line_continue.py create mode 100644 dependencies/pocketpy/tests/04_str.py create mode 100644 dependencies/pocketpy/tests/05_list.py create mode 100644 dependencies/pocketpy/tests/06_tuple.py create mode 100644 dependencies/pocketpy/tests/07_dict.py create mode 100644 dependencies/pocketpy/tests/08_set.py create mode 100644 dependencies/pocketpy/tests/09_long.py create mode 100644 dependencies/pocketpy/tests/10_cmath.py create mode 100644 dependencies/pocketpy/tests/11_bytes.py create mode 100644 dependencies/pocketpy/tests/20_controlflow.py create mode 100644 dependencies/pocketpy/tests/21_functions.py create mode 100644 dependencies/pocketpy/tests/22_typehints.py create mode 100644 dependencies/pocketpy/tests/23_dictcomp.py create mode 100644 dependencies/pocketpy/tests/23_listcomp.py create mode 100644 dependencies/pocketpy/tests/23_setcomp.py create mode 100644 dependencies/pocketpy/tests/24_inline_blocks.py create mode 100644 dependencies/pocketpy/tests/25_rawstring.py create mode 100644 dependencies/pocketpy/tests/26_multiline.py create mode 100644 dependencies/pocketpy/tests/27_goto.py create mode 100644 dependencies/pocketpy/tests/28_iter.py create mode 100644 dependencies/pocketpy/tests/29_incdec.py create mode 100644 dependencies/pocketpy/tests/30_import.py create mode 100644 dependencies/pocketpy/tests/31_cmp.py create mode 100644 dependencies/pocketpy/tests/32_assign.py create mode 100644 dependencies/pocketpy/tests/33_match_case.py create mode 100644 dependencies/pocketpy/tests/34_context.py create mode 100644 dependencies/pocketpy/tests/40_class.py create mode 100644 dependencies/pocketpy/tests/40_class_ex.py create mode 100644 dependencies/pocketpy/tests/41_exception.py create mode 100644 dependencies/pocketpy/tests/42_closure.py create mode 100644 dependencies/pocketpy/tests/42_closure_ex.py create mode 100644 dependencies/pocketpy/tests/43_eval.py create mode 100644 dependencies/pocketpy/tests/44_decorator.py create mode 100644 dependencies/pocketpy/tests/45_yield.py create mode 100644 dependencies/pocketpy/tests/46_star.py create mode 100644 dependencies/pocketpy/tests/47_reflection.py create mode 100644 dependencies/pocketpy/tests/70_base64.py create mode 100644 dependencies/pocketpy/tests/70_bisect.py create mode 100644 dependencies/pocketpy/tests/70_builtins.py create mode 100644 dependencies/pocketpy/tests/70_collections.py create mode 100644 dependencies/pocketpy/tests/70_file.py create mode 100644 dependencies/pocketpy/tests/70_heapq.py create mode 100644 dependencies/pocketpy/tests/70_math.py create mode 100644 dependencies/pocketpy/tests/70_random.py create mode 100644 dependencies/pocketpy/tests/70_re.py create mode 100644 dependencies/pocketpy/tests/80_c.py create mode 100644 dependencies/pocketpy/tests/80_csv.py create mode 100644 dependencies/pocketpy/tests/80_datetime.py create mode 100644 dependencies/pocketpy/tests/80_easing.py create mode 100644 dependencies/pocketpy/tests/80_gc.py create mode 100644 dependencies/pocketpy/tests/80_json.py create mode 100644 dependencies/pocketpy/tests/80_json_alt.py create mode 100644 dependencies/pocketpy/tests/80_linalg.py create mode 100644 dependencies/pocketpy/tests/80_traceback.py create mode 100644 dependencies/pocketpy/tests/80_typing.py create mode 100644 dependencies/pocketpy/tests/81_pickle.py create mode 100644 dependencies/pocketpy/tests/82_dataclasses.py create mode 100644 dependencies/pocketpy/tests/83_array2d.py create mode 100644 dependencies/pocketpy/tests/84_line_profiler.py create mode 100644 dependencies/pocketpy/tests/85_enum.py create mode 100644 dependencies/pocketpy/tests/86_itertools.py create mode 100644 dependencies/pocketpy/tests/87_sys.py create mode 100644 dependencies/pocketpy/tests/88_functools.py create mode 100644 dependencies/pocketpy/tests/94_compile.py create mode 100644 dependencies/pocketpy/tests/95_pdb.py create mode 100644 dependencies/pocketpy/tests/96_prime.py create mode 100644 dependencies/pocketpy/tests/97_dna.py create mode 100644 dependencies/pocketpy/tests/98_misc.py create mode 100644 dependencies/pocketpy/tests/99_bugs.py create mode 100644 dependencies/pocketpy/tests/99_builtin_func.py create mode 100644 dependencies/pocketpy/tests/99_dis.py create mode 100644 dependencies/pocketpy/tests/__init__.py create mode 100644 dependencies/pocketpy/tests/test1/__init__.py create mode 100644 dependencies/pocketpy/tests/test1/_a.py create mode 100644 dependencies/pocketpy/tests/test1/_b.py create mode 100644 dependencies/pocketpy/tests/test2/__init__.py create mode 100644 dependencies/pocketpy/tests/test2/a/__init__.py create mode 100644 dependencies/pocketpy/tests/test2/a/g/__init__.py create mode 100644 dependencies/pocketpy/tests/test2/b.py create mode 100644 dependencies/pocketpy/tests/test2/utils/__init__.py create mode 100644 dependencies/pocketpy/tests/test2/utils/r.py create mode 100644 dependencies/pocketpy/tests/test3/__init__.py create mode 100644 dependencies/pocketpy/tests/test3/a/__init__.py create mode 100644 dependencies/pocketpy/tests/test3/a/b.py create mode 100644 dependencies/pocketpy/web/index.html create mode 100644 dependencies/pocketpy/web/index.js create mode 100644 dependencies/pocketpy/web/xterm/xterm.css create mode 100644 dependencies/pocketpy/web/xterm/xterm.js create mode 100644 dependencies/pocketpy/web/xterm/xterm.js.map diff --git a/.gitmodules b/.gitmodules index f02ada2..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "dependencies/pocketpy"] - path = dependencies/pocketpy - url = https://github.com/pocketpy/pocketpy.git diff --git a/dependencies/__init__.py b/dependencies/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/pocketpy b/dependencies/pocketpy deleted file mode 160000 index 8361c7d..0000000 --- a/dependencies/pocketpy +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8361c7d4a181bf94931b0f1841032d58cdeee481 diff --git a/dependencies/pocketpy/.gitattributes b/dependencies/pocketpy/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/dependencies/pocketpy/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/dependencies/pocketpy/.github/FUNDING.yml b/dependencies/pocketpy/.github/FUNDING.yml new file mode 100644 index 0000000..cb90320 --- /dev/null +++ b/dependencies/pocketpy/.github/FUNDING.yml @@ -0,0 +1,13 @@ +# These are supported funding model platforms + +github: blueloveTH +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/dependencies/pocketpy/.github/ISSUE_TEMPLATE/bug_report.md b/dependencies/pocketpy/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..fa67f42 --- /dev/null +++ b/dependencies/pocketpy/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,29 @@ +--- +name: Bug report +about: Create a report to help us improve +title: "[BUG]" +labels: bug +assignees: blueloveTH + +--- + +Thanks for taking the time to fill out a bug report! +Please provide a descriptive title above and fill in the following fields. + +### Bug description +A clear and concise description of what the bug is. +You can paste sources here that may cause the error. + +### Steps to reproduce +- upload the full stacktrace from your own code line to the error line +- upload a minimum reproducible example +- additional information to help us reproduce the error + +### Environment information +You need to provide these strings: +- pocketpy's version +- platform string (win32/linux/darwin/emscripten/android/ios) +- 32-bit or 64-bit + +### Additional context +Add any other context about the error. diff --git a/dependencies/pocketpy/.github/ISSUE_TEMPLATE/feature_request.md b/dependencies/pocketpy/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..47bdf69 --- /dev/null +++ b/dependencies/pocketpy/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[Feature]" +labels: enhancement +assignees: blueloveTH + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/dependencies/pocketpy/.github/workflows/main.yml b/dependencies/pocketpy/.github/workflows/main.yml new file mode 100644 index 0000000..de61d9f --- /dev/null +++ b/dependencies/pocketpy/.github/workflows/main.yml @@ -0,0 +1,157 @@ +name: build +on: + push: + paths-ignore: + - 'docs/**' + - 'web/**' + - '**.md' + pull_request: + paths-ignore: + - 'docs/**' + - 'web/**' + - '**.md' +jobs: + build_win32_amalgamated: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + - uses: ilammy/msvc-dev-cmd@v1 + - name: Compile + shell: powershell + run: | + python amalgamate.py + cd amalgamated + cl.exe /std:c++17 /EHsc /utf-8 /O2 /I. /DPK_ENABLE_OS=1 main.cpp /link /out:pkpy.exe + - uses: actions/upload-artifact@v3 + with: + path: amalgamated/pkpy.exe + build_win32: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + - uses: ilammy/msvc-dev-cmd@v1 + - name: Compile + shell: bash + run: | + mkdir -p output/windows/x86_64 + python cmake_build.py + cp main.exe output/windows/x86_64 + cp pocketpy.dll output/windows/x86_64 + - uses: actions/upload-artifact@v3 + with: + path: output + - name: Unit Test + run: python scripts/run_tests.py + - name: Benchmark + run: python scripts/run_tests.py benchmark + build_linux: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: Setup Clang + uses: egor-tensin/setup-clang@v1 + with: + version: 15 + platform: x64 + - name: Install libc++ + run: sudo apt-get install -y libc++-15-dev libc++1-15 libc++abi-15-dev libc++abi1-15 libclang-rt-15-dev + - name: Unit Test with Coverage + run: bash run_tests.sh + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + directory: .coverage + if: github.ref == 'refs/heads/main' + - name: Compile + run: | + mkdir -p output/linux/x86_64 + python cmake_build.py + cp main output/linux/x86_64 + cp libpocketpy.so output/linux/x86_64 + env: + CXX: clang++ + CC: clang + - uses: actions/upload-artifact@v3 + with: + path: output + - name: Benchmark + run: python scripts/run_tests.py benchmark + - name: C Binding Test + run: bash run_c_binding_test.sh + build_linux_x86: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Alpine Linux for aarch64 + uses: jirutka/setup-alpine@v1 + with: + arch: x86 + packages: gcc g++ make cmake libc-dev linux-headers python3 + - name: Build and Test + run: | + uname -m + python cmake_build.py + python scripts/run_tests.py + python scripts/run_tests.py benchmark + shell: alpine.sh --root {0} + build_darwin: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - name: Compile and Test + run: | + python cmake_build.py + python scripts/run_tests.py + - name: Benchmark + run: python scripts/run_tests.py benchmark + - run: | + python amalgamate.py + cd plugins/macos/pocketpy + mkdir -p output/macos + xcodebuild clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO + cp -r build/Release/pocketpy.bundle output/macos + - uses: actions/upload-artifact@v3 + with: + path: plugins/macos/pocketpy/output + build_android: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r23 + local-cache: false + add-to-path: false + - name: Compile Shared Library + run: | + bash build_android.sh arm64-v8a + bash build_android.sh armeabi-v7a + bash build_android.sh x86_64 + + mkdir -p output/android/arm64-v8a + mkdir -p output/android/armeabi-v7a + mkdir -p output/android/x86_64 + + cp build/android/arm64-v8a/libpocketpy.so output/android/arm64-v8a + cp build/android/armeabi-v7a/libpocketpy.so output/android/armeabi-v7a + cp build/android/x86_64/libpocketpy.so output/android/x86_64 + env: + ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} + - uses: actions/upload-artifact@v3 + with: + path: output + build_ios: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - name: Compile Frameworks + run: | + git clone https://github.com/leetal/ios-cmake --depth 1 ~/ios-cmake + bash build_ios.sh + mkdir -p output/ios + cp -r build/pocketpy.xcframework output/ios/pocketpy.xcframework + - uses: actions/upload-artifact@v3 + with: + path: output diff --git a/dependencies/pocketpy/.github/workflows/website.yml b/dependencies/pocketpy/.github/workflows/website.yml new file mode 100644 index 0000000..6e2d987 --- /dev/null +++ b/dependencies/pocketpy/.github/workflows/website.yml @@ -0,0 +1,41 @@ +name: website + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +permissions: + contents: write + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + ################################################### + - uses: actions/setup-node@v3.1.1 + - name: Retype build + run: | + cd docs + npm install retypeapp --global + retype build + ################################################### + - name: Setup emsdk + uses: mymindstorm/setup-emsdk@v12 + with: + version: 3.1.25 + actions-cache-folder: 'emsdk-cache' + - name: Compile + run: | + bash build_web.sh + mv web docs/.retype/static + ################################################### + - uses: crazy-max/ghaction-github-pages@v3 + with: + target_branch: gh-pages + build_dir: docs/.retype + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + if: github.ref == 'refs/heads/main' diff --git a/dependencies/pocketpy/.gitignore b/dependencies/pocketpy/.gitignore new file mode 100644 index 0000000..dec9592 --- /dev/null +++ b/dependencies/pocketpy/.gitignore @@ -0,0 +1,30 @@ +__pycache__/ +.vscode +.ipynb_checkpoints +.DS_Store +.coverage +.idea + +gmon.out +gprof.txt +amalgamated +web/lib + +*.a +*.so +*.dll +*.dylib + +plugins/unity/ +plugins/macos/pocketpy/pocketpy.* +main.exe +main.obj +pocketpy.exp +pocketpy.lib +APPS +build + +main +pocketpy.dSYM +libpocketpy.dylib.dSYM/ +main.dSYM/ diff --git a/dependencies/pocketpy/3rd/cjson/CMakeLists.txt b/dependencies/pocketpy/3rd/cjson/CMakeLists.txt new file mode 100644 index 0000000..2807ecc --- /dev/null +++ b/dependencies/pocketpy/3rd/cjson/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required(VERSION 3.10) + +project(cjson) + +set(CMAKE_C_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) + +include_directories(include) +include_directories(../../include) + +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + +add_library( + cjson + STATIC + src/cJSON.c + src/cJSONw.cpp +) diff --git a/dependencies/pocketpy/3rd/cjson/LICENSE b/dependencies/pocketpy/3rd/cjson/LICENSE new file mode 100644 index 0000000..8b84267 --- /dev/null +++ b/dependencies/pocketpy/3rd/cjson/LICENSE @@ -0,0 +1,10 @@ +MIT License + +Copyright (c) 2009-2017 Dave Gamble and cJSON contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Sofware without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/dependencies/pocketpy/3rd/cjson/include/cJSON.h b/dependencies/pocketpy/3rd/cjson/include/cJSON.h new file mode 100644 index 0000000..2628d76 --- /dev/null +++ b/dependencies/pocketpy/3rd/cjson/include/cJSON.h @@ -0,0 +1,300 @@ +/* + Copyright (c) 2009-2017 Dave Gamble and cJSON contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ + +#ifndef cJSON__h +#define cJSON__h + +#ifdef __cplusplus +extern "C" +{ +#endif + +#if !defined(__WINDOWS__) && (defined(WIN32) || defined(WIN64) || defined(_MSC_VER) || defined(_WIN32)) +#define __WINDOWS__ +#endif + +#ifdef __WINDOWS__ + +/* When compiling for windows, we specify a specific calling convention to avoid issues where we are being called from a project with a different default calling convention. For windows you have 3 define options: + +CJSON_HIDE_SYMBOLS - Define this in the case where you don't want to ever dllexport symbols +CJSON_EXPORT_SYMBOLS - Define this on library build when you want to dllexport symbols (default) +CJSON_IMPORT_SYMBOLS - Define this if you want to dllimport symbol + +For *nix builds that support visibility attribute, you can define similar behavior by + +setting default visibility to hidden by adding +-fvisibility=hidden (for gcc) +or +-xldscope=hidden (for sun cc) +to CFLAGS + +then using the CJSON_API_VISIBILITY flag to "export" the same symbols the way CJSON_EXPORT_SYMBOLS does + +*/ + +#define CJSON_CDECL __cdecl +#define CJSON_STDCALL __stdcall + +/* export symbols by default, this is necessary for copy pasting the C and header file */ +#if !defined(CJSON_HIDE_SYMBOLS) && !defined(CJSON_IMPORT_SYMBOLS) && !defined(CJSON_EXPORT_SYMBOLS) +#define CJSON_EXPORT_SYMBOLS +#endif + +#if defined(CJSON_HIDE_SYMBOLS) +#define CJSON_PUBLIC(type) type CJSON_STDCALL +#elif defined(CJSON_EXPORT_SYMBOLS) +#define CJSON_PUBLIC(type) __declspec(dllexport) type CJSON_STDCALL +#elif defined(CJSON_IMPORT_SYMBOLS) +#define CJSON_PUBLIC(type) __declspec(dllimport) type CJSON_STDCALL +#endif +#else /* !__WINDOWS__ */ +#define CJSON_CDECL +#define CJSON_STDCALL + +#if (defined(__GNUC__) || defined(__SUNPRO_CC) || defined (__SUNPRO_C)) && defined(CJSON_API_VISIBILITY) +#define CJSON_PUBLIC(type) __attribute__((visibility("default"))) type +#else +#define CJSON_PUBLIC(type) type +#endif +#endif + +/* project version */ +#define CJSON_VERSION_MAJOR 1 +#define CJSON_VERSION_MINOR 7 +#define CJSON_VERSION_PATCH 16 + +#include + +/* cJSON Types: */ +#define cJSON_Invalid (0) +#define cJSON_False (1 << 0) +#define cJSON_True (1 << 1) +#define cJSON_NULL (1 << 2) +#define cJSON_Number (1 << 3) +#define cJSON_String (1 << 4) +#define cJSON_Array (1 << 5) +#define cJSON_Object (1 << 6) +#define cJSON_Raw (1 << 7) /* raw json */ + +#define cJSON_IsReference 256 +#define cJSON_StringIsConst 512 + +/* The cJSON structure: */ +typedef struct cJSON +{ + /* next/prev allow you to walk array/object chains. Alternatively, use GetArraySize/GetArrayItem/GetObjectItem */ + struct cJSON *next; + struct cJSON *prev; + /* An array or object item will have a child pointer pointing to a chain of the items in the array/object. */ + struct cJSON *child; + + /* The type of the item, as above. */ + int type; + + /* The item's string, if type==cJSON_String and type == cJSON_Raw */ + char *valuestring; + /* writing to valueint is DEPRECATED, use cJSON_SetNumberValue instead */ + int valueint; + /* The item's number, if type==cJSON_Number */ + double valuedouble; + + /* The item's name string, if this item is the child of, or is in the list of subitems of an object. */ + char *string; +} cJSON; + +typedef struct cJSON_Hooks +{ + /* malloc/free are CDECL on Windows regardless of the default calling convention of the compiler, so ensure the hooks allow passing those functions directly. */ + void *(CJSON_CDECL *malloc_fn)(size_t sz); + void (CJSON_CDECL *free_fn)(void *ptr); +} cJSON_Hooks; + +typedef int cJSON_bool; + +/* Limits how deeply nested arrays/objects can be before cJSON rejects to parse them. + * This is to prevent stack overflows. */ +#ifndef CJSON_NESTING_LIMIT +#define CJSON_NESTING_LIMIT 1000 +#endif + +/* returns the version of cJSON as a string */ +CJSON_PUBLIC(const char*) cJSON_Version(void); + +/* Supply malloc, realloc and free functions to cJSON */ +CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks); + +/* Memory Management: the caller is always responsible to free the results from all variants of cJSON_Parse (with cJSON_Delete) and cJSON_Print (with stdlib free, cJSON_Hooks.free_fn, or cJSON_free as appropriate). The exception is cJSON_PrintPreallocated, where the caller has full responsibility of the buffer. */ +/* Supply a block of JSON, and this returns a cJSON object you can interrogate. */ +CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value); +CJSON_PUBLIC(cJSON *) cJSON_ParseWithLength(const char *value, size_t buffer_length); +/* ParseWithOpts allows you to require (and check) that the JSON is null terminated, and to retrieve the pointer to the final byte parsed. */ +/* If you supply a ptr in return_parse_end and parsing fails, then return_parse_end will contain a pointer to the error so will match cJSON_GetErrorPtr(). */ +CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated); +CJSON_PUBLIC(cJSON *) cJSON_ParseWithLengthOpts(const char *value, size_t buffer_length, const char **return_parse_end, cJSON_bool require_null_terminated); + +/* Render a cJSON entity to text for transfer/storage. */ +CJSON_PUBLIC(char *) cJSON_Print(const cJSON *item); +/* Render a cJSON entity to text for transfer/storage without any formatting. */ +CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item); +/* Render a cJSON entity to text using a buffered strategy. prebuffer is a guess at the final size. guessing well reduces reallocation. fmt=0 gives unformatted, =1 gives formatted */ +CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cJSON_bool fmt); +/* Render a cJSON entity to text using a buffer already allocated in memory with given length. Returns 1 on success and 0 on failure. */ +/* NOTE: cJSON is not always 100% accurate in estimating how much memory it will use, so to be safe allocate 5 bytes more than you actually need */ +CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON *item, char *buffer, const int length, const cJSON_bool format); +/* Delete a cJSON entity and all subentities. */ +CJSON_PUBLIC(void) cJSON_Delete(cJSON *item); + +/* Returns the number of items in an array (or object). */ +CJSON_PUBLIC(int) cJSON_GetArraySize(const cJSON *array); +/* Retrieve item number "index" from array "array". Returns NULL if unsuccessful. */ +CJSON_PUBLIC(cJSON *) cJSON_GetArrayItem(const cJSON *array, int index); +/* Get item "string" from object. Case insensitive. */ +CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON * const object, const char * const string); +CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * const object, const char * const string); +CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON *object, const char *string); +/* For analysing failed parses. This returns a pointer to the parse error. You'll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */ +CJSON_PUBLIC(const char *) cJSON_GetErrorPtr(void); + +/* Check item type and return its value */ +CJSON_PUBLIC(char *) cJSON_GetStringValue(const cJSON * const item); +CJSON_PUBLIC(double) cJSON_GetNumberValue(const cJSON * const item); + +/* These functions check the type of an item */ +CJSON_PUBLIC(cJSON_bool) cJSON_IsInvalid(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsFalse(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsTrue(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsBool(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsNull(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsNumber(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsString(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsArray(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsObject(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsRaw(const cJSON * const item); + +/* These calls create a cJSON item of the appropriate type. */ +CJSON_PUBLIC(cJSON *) cJSON_CreateNull(void); +CJSON_PUBLIC(cJSON *) cJSON_CreateTrue(void); +CJSON_PUBLIC(cJSON *) cJSON_CreateFalse(void); +CJSON_PUBLIC(cJSON *) cJSON_CreateBool(cJSON_bool boolean); +CJSON_PUBLIC(cJSON *) cJSON_CreateNumber(double num); +CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string); +/* raw json */ +CJSON_PUBLIC(cJSON *) cJSON_CreateRaw(const char *raw); +CJSON_PUBLIC(cJSON *) cJSON_CreateArray(void); +CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void); + +/* Create a string where valuestring references a string so + * it will not be freed by cJSON_Delete */ +CJSON_PUBLIC(cJSON *) cJSON_CreateStringReference(const char *string); +/* Create an object/array that only references it's elements so + * they will not be freed by cJSON_Delete */ +CJSON_PUBLIC(cJSON *) cJSON_CreateObjectReference(const cJSON *child); +CJSON_PUBLIC(cJSON *) cJSON_CreateArrayReference(const cJSON *child); + +/* These utilities create an Array of count items. + * The parameter count cannot be greater than the number of elements in the number array, otherwise array access will be out of bounds.*/ +CJSON_PUBLIC(cJSON *) cJSON_CreateIntArray(const int *numbers, int count); +CJSON_PUBLIC(cJSON *) cJSON_CreateFloatArray(const float *numbers, int count); +CJSON_PUBLIC(cJSON *) cJSON_CreateDoubleArray(const double *numbers, int count); +CJSON_PUBLIC(cJSON *) cJSON_CreateStringArray(const char *const *strings, int count); + +/* Append item to the specified array/object. */ +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToArray(cJSON *array, cJSON *item); +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item); +/* Use this when string is definitely const (i.e. a literal, or as good as), and will definitely survive the cJSON object. + * WARNING: When this function was used, make sure to always check that (item->type & cJSON_StringIsConst) is zero before + * writing to `item->string` */ +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJSON *item); +/* Append reference to item to the specified array/object. Use this when you want to add an existing cJSON to a new cJSON, but don't want to corrupt your existing cJSON. */ +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item); +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item); + +/* Remove/Detach items from Arrays/Objects. */ +CJSON_PUBLIC(cJSON *) cJSON_DetachItemViaPointer(cJSON *parent, cJSON * const item); +CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which); +CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON *array, int which); +CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON *object, const char *string); +CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObjectCaseSensitive(cJSON *object, const char *string); +CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON *object, const char *string); +CJSON_PUBLIC(void) cJSON_DeleteItemFromObjectCaseSensitive(cJSON *object, const char *string); + +/* Update array items. */ +CJSON_PUBLIC(cJSON_bool) cJSON_InsertItemInArray(cJSON *array, int which, cJSON *newitem); /* Shifts pre-existing items to the right. */ +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemViaPointer(cJSON * const parent, cJSON * const item, cJSON * replacement); +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem); +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObject(cJSON *object,const char *string,cJSON *newitem); +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObjectCaseSensitive(cJSON *object,const char *string,cJSON *newitem); + +/* Duplicate a cJSON item */ +CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recurse); +/* Duplicate will create a new, identical cJSON item to the one you pass, in new memory that will + * need to be released. With recurse!=0, it will duplicate any children connected to the item. + * The item->next and ->prev pointers are always zero on return from Duplicate. */ +/* Recursively compare two cJSON items for equality. If either a or b is NULL or invalid, they will be considered unequal. + * case_sensitive determines if object keys are treated case sensitive (1) or case insensitive (0) */ +CJSON_PUBLIC(cJSON_bool) cJSON_Compare(const cJSON * const a, const cJSON * const b, const cJSON_bool case_sensitive); + +/* Minify a strings, remove blank characters(such as ' ', '\t', '\r', '\n') from strings. + * The input pointer json cannot point to a read-only address area, such as a string constant, + * but should point to a readable and writable address area. */ +CJSON_PUBLIC(void) cJSON_Minify(char *json); + +/* Helper functions for creating and adding items to an object at the same time. + * They return the added item or NULL on failure. */ +CJSON_PUBLIC(cJSON*) cJSON_AddNullToObject(cJSON * const object, const char * const name); +CJSON_PUBLIC(cJSON*) cJSON_AddTrueToObject(cJSON * const object, const char * const name); +CJSON_PUBLIC(cJSON*) cJSON_AddFalseToObject(cJSON * const object, const char * const name); +CJSON_PUBLIC(cJSON*) cJSON_AddBoolToObject(cJSON * const object, const char * const name, const cJSON_bool boolean); +CJSON_PUBLIC(cJSON*) cJSON_AddNumberToObject(cJSON * const object, const char * const name, const double number); +CJSON_PUBLIC(cJSON*) cJSON_AddStringToObject(cJSON * const object, const char * const name, const char * const string); +CJSON_PUBLIC(cJSON*) cJSON_AddRawToObject(cJSON * const object, const char * const name, const char * const raw); +CJSON_PUBLIC(cJSON*) cJSON_AddObjectToObject(cJSON * const object, const char * const name); +CJSON_PUBLIC(cJSON*) cJSON_AddArrayToObject(cJSON * const object, const char * const name); + +/* When assigning an integer value, it needs to be propagated to valuedouble too. */ +#define cJSON_SetIntValue(object, number) ((object) ? (object)->valueint = (object)->valuedouble = (number) : (number)) +/* helper for the cJSON_SetNumberValue macro */ +CJSON_PUBLIC(double) cJSON_SetNumberHelper(cJSON *object, double number); +#define cJSON_SetNumberValue(object, number) ((object != NULL) ? cJSON_SetNumberHelper(object, (double)number) : (number)) +/* Change the valuestring of a cJSON_String object, only takes effect when type of object is cJSON_String */ +CJSON_PUBLIC(char*) cJSON_SetValuestring(cJSON *object, const char *valuestring); + +/* If the object is not a boolean type this does nothing and returns cJSON_Invalid else it returns the new type*/ +#define cJSON_SetBoolValue(object, boolValue) ( \ + (object != NULL && ((object)->type & (cJSON_False|cJSON_True))) ? \ + (object)->type=((object)->type &(~(cJSON_False|cJSON_True)))|((boolValue)?cJSON_True:cJSON_False) : \ + cJSON_Invalid\ +) + +/* Macro for iterating over an array or object */ +#define cJSON_ArrayForEach(element, array) for(element = (array != NULL) ? (array)->child : NULL; element != NULL; element = element->next) + +/* malloc/free objects using the malloc/free functions that have been set with cJSON_InitHooks */ +CJSON_PUBLIC(void *) cJSON_malloc(size_t size); +CJSON_PUBLIC(void) cJSON_free(void *object); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/dependencies/pocketpy/3rd/cjson/include/cJSONw.hpp b/dependencies/pocketpy/3rd/cjson/include/cJSONw.hpp new file mode 100644 index 0000000..856165b --- /dev/null +++ b/dependencies/pocketpy/3rd/cjson/include/cJSONw.hpp @@ -0,0 +1,8 @@ +#include "cJSON.h" +#include "pocketpy/pocketpy.h" + +namespace pkpy { + +void add_module_cjson(VM* vm); + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/3rd/cjson/src/cJSON.c b/dependencies/pocketpy/3rd/cjson/src/cJSON.c new file mode 100644 index 0000000..f6dd11c --- /dev/null +++ b/dependencies/pocketpy/3rd/cjson/src/cJSON.c @@ -0,0 +1,3119 @@ +/* + Copyright (c) 2009-2017 Dave Gamble and cJSON contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ + +/* cJSON */ +/* JSON parser in C. */ + +/* disable warnings about old C89 functions in MSVC */ +#if !defined(_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) +#define _CRT_SECURE_NO_DEPRECATE +#endif + +#ifdef __GNUC__ +#pragma GCC visibility push(default) +#endif +#if defined(_MSC_VER) +#pragma warning (push) +/* disable warning about single line comments in system headers */ +#pragma warning (disable : 4001) +#endif + +#include +#include +#include +#include +#include +#include +#include + +#ifdef ENABLE_LOCALES +#include +#endif + +#if defined(_MSC_VER) +#pragma warning (pop) +#endif +#ifdef __GNUC__ +#pragma GCC visibility pop +#endif + +#include "cJSON.h" + +/* define our own boolean type */ +#ifdef true +#undef true +#endif +#define true ((cJSON_bool)1) + +#ifdef false +#undef false +#endif +#define false ((cJSON_bool)0) + +/* define isnan and isinf for ANSI C, if in C99 or above, isnan and isinf has been defined in math.h */ +#ifndef isinf +#define isinf(d) (isnan((d - d)) && !isnan(d)) +#endif +#ifndef isnan +#define isnan(d) (d != d) +#endif + +#ifndef NAN +#ifdef _WIN32 +#define NAN sqrt(-1.0) +#else +#define NAN 0.0/0.0 +#endif +#endif + +typedef struct { + const unsigned char *json; + size_t position; +} error; +static error global_error = { NULL, 0 }; + +CJSON_PUBLIC(const char *) cJSON_GetErrorPtr(void) +{ + return (const char*) (global_error.json + global_error.position); +} + +CJSON_PUBLIC(char *) cJSON_GetStringValue(const cJSON * const item) +{ + if (!cJSON_IsString(item)) + { + return NULL; + } + + return item->valuestring; +} + +CJSON_PUBLIC(double) cJSON_GetNumberValue(const cJSON * const item) +{ + if (!cJSON_IsNumber(item)) + { + return (double) NAN; + } + + return item->valuedouble; +} + +/* This is a safeguard to prevent copy-pasters from using incompatible C and header files */ +#if (CJSON_VERSION_MAJOR != 1) || (CJSON_VERSION_MINOR != 7) || (CJSON_VERSION_PATCH != 16) + #error cJSON.h and cJSON.c have different versions. Make sure that both have the same. +#endif + +CJSON_PUBLIC(const char*) cJSON_Version(void) +{ + static char version[15]; + sprintf(version, "%i.%i.%i", CJSON_VERSION_MAJOR, CJSON_VERSION_MINOR, CJSON_VERSION_PATCH); + + return version; +} + +/* Case insensitive string comparison, doesn't consider two NULL pointers equal though */ +static int case_insensitive_strcmp(const unsigned char *string1, const unsigned char *string2) +{ + if ((string1 == NULL) || (string2 == NULL)) + { + return 1; + } + + if (string1 == string2) + { + return 0; + } + + for(; tolower(*string1) == tolower(*string2); (void)string1++, string2++) + { + if (*string1 == '\0') + { + return 0; + } + } + + return tolower(*string1) - tolower(*string2); +} + +typedef struct internal_hooks +{ + void *(CJSON_CDECL *allocate)(size_t size); + void (CJSON_CDECL *deallocate)(void *pointer); + void *(CJSON_CDECL *reallocate)(void *pointer, size_t size); +} internal_hooks; + +#if defined(_MSC_VER) +/* work around MSVC error C2322: '...' address of dllimport '...' is not static */ +static void * CJSON_CDECL internal_malloc(size_t size) +{ + return malloc(size); +} +static void CJSON_CDECL internal_free(void *pointer) +{ + free(pointer); +} +static void * CJSON_CDECL internal_realloc(void *pointer, size_t size) +{ + return realloc(pointer, size); +} +#else +#define internal_malloc malloc +#define internal_free free +#define internal_realloc realloc +#endif + +/* strlen of character literals resolved at compile time */ +#define static_strlen(string_literal) (sizeof(string_literal) - sizeof("")) + +static internal_hooks global_hooks = { internal_malloc, internal_free, internal_realloc }; + +static unsigned char* cJSON_strdup(const unsigned char* string, const internal_hooks * const hooks) +{ + size_t length = 0; + unsigned char *copy = NULL; + + if (string == NULL) + { + return NULL; + } + + length = strlen((const char*)string) + sizeof(""); + copy = (unsigned char*)hooks->allocate(length); + if (copy == NULL) + { + return NULL; + } + memcpy(copy, string, length); + + return copy; +} + +CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks) +{ + if (hooks == NULL) + { + /* Reset hooks */ + global_hooks.allocate = malloc; + global_hooks.deallocate = free; + global_hooks.reallocate = realloc; + return; + } + + global_hooks.allocate = malloc; + if (hooks->malloc_fn != NULL) + { + global_hooks.allocate = hooks->malloc_fn; + } + + global_hooks.deallocate = free; + if (hooks->free_fn != NULL) + { + global_hooks.deallocate = hooks->free_fn; + } + + /* use realloc only if both free and malloc are used */ + global_hooks.reallocate = NULL; + if ((global_hooks.allocate == malloc) && (global_hooks.deallocate == free)) + { + global_hooks.reallocate = realloc; + } +} + +/* Internal constructor. */ +static cJSON *cJSON_New_Item(const internal_hooks * const hooks) +{ + cJSON* node = (cJSON*)hooks->allocate(sizeof(cJSON)); + if (node) + { + memset(node, '\0', sizeof(cJSON)); + } + + return node; +} + +/* Delete a cJSON structure. */ +CJSON_PUBLIC(void) cJSON_Delete(cJSON *item) +{ + cJSON *next = NULL; + while (item != NULL) + { + next = item->next; + if (!(item->type & cJSON_IsReference) && (item->child != NULL)) + { + cJSON_Delete(item->child); + } + if (!(item->type & cJSON_IsReference) && (item->valuestring != NULL)) + { + global_hooks.deallocate(item->valuestring); + } + if (!(item->type & cJSON_StringIsConst) && (item->string != NULL)) + { + global_hooks.deallocate(item->string); + } + global_hooks.deallocate(item); + item = next; + } +} + +/* get the decimal point character of the current locale */ +static unsigned char get_decimal_point(void) +{ +#ifdef ENABLE_LOCALES + struct lconv *lconv = localeconv(); + return (unsigned char) lconv->decimal_point[0]; +#else + return '.'; +#endif +} + +typedef struct +{ + const unsigned char *content; + size_t length; + size_t offset; + size_t depth; /* How deeply nested (in arrays/objects) is the input at the current offset. */ + internal_hooks hooks; +} parse_buffer; + +/* check if the given size is left to read in a given parse buffer (starting with 1) */ +#define can_read(buffer, size) ((buffer != NULL) && (((buffer)->offset + size) <= (buffer)->length)) +/* check if the buffer can be accessed at the given index (starting with 0) */ +#define can_access_at_index(buffer, index) ((buffer != NULL) && (((buffer)->offset + index) < (buffer)->length)) +#define cannot_access_at_index(buffer, index) (!can_access_at_index(buffer, index)) +/* get a pointer to the buffer at the position */ +#define buffer_at_offset(buffer) ((buffer)->content + (buffer)->offset) + +/* Parse the input text to generate a number, and populate the result into item. */ +static cJSON_bool parse_number(cJSON * const item, parse_buffer * const input_buffer) +{ + double number = 0; + unsigned char *after_end = NULL; + unsigned char number_c_string[64]; + unsigned char decimal_point = get_decimal_point(); + size_t i = 0; + + if ((input_buffer == NULL) || (input_buffer->content == NULL)) + { + return false; + } + + /* copy the number into a temporary buffer and replace '.' with the decimal point + * of the current locale (for strtod) + * This also takes care of '\0' not necessarily being available for marking the end of the input */ + for (i = 0; (i < (sizeof(number_c_string) - 1)) && can_access_at_index(input_buffer, i); i++) + { + switch (buffer_at_offset(input_buffer)[i]) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '+': + case '-': + case 'e': + case 'E': + number_c_string[i] = buffer_at_offset(input_buffer)[i]; + break; + + case '.': + number_c_string[i] = decimal_point; + break; + + default: + goto loop_end; + } + } +loop_end: + number_c_string[i] = '\0'; + + number = strtod((const char*)number_c_string, (char**)&after_end); + if (number_c_string == after_end) + { + return false; /* parse_error */ + } + + item->valuedouble = number; + + /* use saturation in case of overflow */ + if (number >= INT_MAX) + { + item->valueint = INT_MAX; + } + else if (number <= (double)INT_MIN) + { + item->valueint = INT_MIN; + } + else + { + item->valueint = (int)number; + } + + item->type = cJSON_Number; + + input_buffer->offset += (size_t)(after_end - number_c_string); + return true; +} + +/* don't ask me, but the original cJSON_SetNumberValue returns an integer or double */ +CJSON_PUBLIC(double) cJSON_SetNumberHelper(cJSON *object, double number) +{ + if (number >= INT_MAX) + { + object->valueint = INT_MAX; + } + else if (number <= (double)INT_MIN) + { + object->valueint = INT_MIN; + } + else + { + object->valueint = (int)number; + } + + return object->valuedouble = number; +} + +CJSON_PUBLIC(char*) cJSON_SetValuestring(cJSON *object, const char *valuestring) +{ + char *copy = NULL; + /* if object's type is not cJSON_String or is cJSON_IsReference, it should not set valuestring */ + if (!(object->type & cJSON_String) || (object->type & cJSON_IsReference)) + { + return NULL; + } + if (strlen(valuestring) <= strlen(object->valuestring)) + { + strcpy(object->valuestring, valuestring); + return object->valuestring; + } + copy = (char*) cJSON_strdup((const unsigned char*)valuestring, &global_hooks); + if (copy == NULL) + { + return NULL; + } + if (object->valuestring != NULL) + { + cJSON_free(object->valuestring); + } + object->valuestring = copy; + + return copy; +} + +typedef struct +{ + unsigned char *buffer; + size_t length; + size_t offset; + size_t depth; /* current nesting depth (for formatted printing) */ + cJSON_bool noalloc; + cJSON_bool format; /* is this print a formatted print */ + internal_hooks hooks; +} printbuffer; + +/* realloc printbuffer if necessary to have at least "needed" bytes more */ +static unsigned char* ensure(printbuffer * const p, size_t needed) +{ + unsigned char *newbuffer = NULL; + size_t newsize = 0; + + if ((p == NULL) || (p->buffer == NULL)) + { + return NULL; + } + + if ((p->length > 0) && (p->offset >= p->length)) + { + /* make sure that offset is valid */ + return NULL; + } + + if (needed > INT_MAX) + { + /* sizes bigger than INT_MAX are currently not supported */ + return NULL; + } + + needed += p->offset + 1; + if (needed <= p->length) + { + return p->buffer + p->offset; + } + + if (p->noalloc) { + return NULL; + } + + /* calculate new buffer size */ + if (needed > (INT_MAX / 2)) + { + /* overflow of int, use INT_MAX if possible */ + if (needed <= INT_MAX) + { + newsize = INT_MAX; + } + else + { + return NULL; + } + } + else + { + newsize = needed * 2; + } + + if (p->hooks.reallocate != NULL) + { + /* reallocate with realloc if available */ + newbuffer = (unsigned char*)p->hooks.reallocate(p->buffer, newsize); + if (newbuffer == NULL) + { + p->hooks.deallocate(p->buffer); + p->length = 0; + p->buffer = NULL; + + return NULL; + } + } + else + { + /* otherwise reallocate manually */ + newbuffer = (unsigned char*)p->hooks.allocate(newsize); + if (!newbuffer) + { + p->hooks.deallocate(p->buffer); + p->length = 0; + p->buffer = NULL; + + return NULL; + } + + memcpy(newbuffer, p->buffer, p->offset + 1); + p->hooks.deallocate(p->buffer); + } + p->length = newsize; + p->buffer = newbuffer; + + return newbuffer + p->offset; +} + +/* calculate the new length of the string in a printbuffer and update the offset */ +static void update_offset(printbuffer * const buffer) +{ + const unsigned char *buffer_pointer = NULL; + if ((buffer == NULL) || (buffer->buffer == NULL)) + { + return; + } + buffer_pointer = buffer->buffer + buffer->offset; + + buffer->offset += strlen((const char*)buffer_pointer); +} + +/* securely comparison of floating-point variables */ +static cJSON_bool compare_double(double a, double b) +{ + double maxVal = fabs(a) > fabs(b) ? fabs(a) : fabs(b); + return (fabs(a - b) <= maxVal * DBL_EPSILON); +} + +/* Render the number nicely from the given item into a string. */ +static cJSON_bool print_number(const cJSON * const item, printbuffer * const output_buffer) +{ + unsigned char *output_pointer = NULL; + double d = item->valuedouble; + int length = 0; + size_t i = 0; + unsigned char number_buffer[26] = {0}; /* temporary buffer to print the number into */ + unsigned char decimal_point = get_decimal_point(); + double test = 0.0; + + if (output_buffer == NULL) + { + return false; + } + + /* This checks for NaN and Infinity */ + if (isnan(d) || isinf(d)) + { + length = sprintf((char*)number_buffer, "null"); + } + else if(d == (double)item->valueint) + { + length = sprintf((char*)number_buffer, "%d", item->valueint); + } + else + { + /* Try 15 decimal places of precision to avoid nonsignificant nonzero digits */ + length = sprintf((char*)number_buffer, "%1.15g", d); + + /* Check whether the original double can be recovered */ + if ((sscanf((char*)number_buffer, "%lg", &test) != 1) || !compare_double((double)test, d)) + { + /* If not, print with 17 decimal places of precision */ + length = sprintf((char*)number_buffer, "%1.17g", d); + } + } + + /* sprintf failed or buffer overrun occurred */ + if ((length < 0) || (length > (int)(sizeof(number_buffer) - 1))) + { + return false; + } + + /* reserve appropriate space in the output */ + output_pointer = ensure(output_buffer, (size_t)length + sizeof("")); + if (output_pointer == NULL) + { + return false; + } + + /* copy the printed number to the output and replace locale + * dependent decimal point with '.' */ + for (i = 0; i < ((size_t)length); i++) + { + if (number_buffer[i] == decimal_point) + { + output_pointer[i] = '.'; + continue; + } + + output_pointer[i] = number_buffer[i]; + } + output_pointer[i] = '\0'; + + output_buffer->offset += (size_t)length; + + return true; +} + +/* parse 4 digit hexadecimal number */ +static unsigned parse_hex4(const unsigned char * const input) +{ + unsigned int h = 0; + size_t i = 0; + + for (i = 0; i < 4; i++) + { + /* parse digit */ + if ((input[i] >= '0') && (input[i] <= '9')) + { + h += (unsigned int) input[i] - '0'; + } + else if ((input[i] >= 'A') && (input[i] <= 'F')) + { + h += (unsigned int) 10 + input[i] - 'A'; + } + else if ((input[i] >= 'a') && (input[i] <= 'f')) + { + h += (unsigned int) 10 + input[i] - 'a'; + } + else /* invalid */ + { + return 0; + } + + if (i < 3) + { + /* shift left to make place for the next nibble */ + h = h << 4; + } + } + + return h; +} + +/* converts a UTF-16 literal to UTF-8 + * A literal can be one or two sequences of the form \uXXXX */ +static unsigned char utf16_literal_to_utf8(const unsigned char * const input_pointer, const unsigned char * const input_end, unsigned char **output_pointer) +{ + long unsigned int codepoint = 0; + unsigned int first_code = 0; + const unsigned char *first_sequence = input_pointer; + unsigned char utf8_length = 0; + unsigned char utf8_position = 0; + unsigned char sequence_length = 0; + unsigned char first_byte_mark = 0; + + if ((input_end - first_sequence) < 6) + { + /* input ends unexpectedly */ + goto fail; + } + + /* get the first utf16 sequence */ + first_code = parse_hex4(first_sequence + 2); + + /* check that the code is valid */ + if (((first_code >= 0xDC00) && (first_code <= 0xDFFF))) + { + goto fail; + } + + /* UTF16 surrogate pair */ + if ((first_code >= 0xD800) && (first_code <= 0xDBFF)) + { + const unsigned char *second_sequence = first_sequence + 6; + unsigned int second_code = 0; + sequence_length = 12; /* \uXXXX\uXXXX */ + + if ((input_end - second_sequence) < 6) + { + /* input ends unexpectedly */ + goto fail; + } + + if ((second_sequence[0] != '\\') || (second_sequence[1] != 'u')) + { + /* missing second half of the surrogate pair */ + goto fail; + } + + /* get the second utf16 sequence */ + second_code = parse_hex4(second_sequence + 2); + /* check that the code is valid */ + if ((second_code < 0xDC00) || (second_code > 0xDFFF)) + { + /* invalid second half of the surrogate pair */ + goto fail; + } + + + /* calculate the unicode codepoint from the surrogate pair */ + codepoint = 0x10000 + (((first_code & 0x3FF) << 10) | (second_code & 0x3FF)); + } + else + { + sequence_length = 6; /* \uXXXX */ + codepoint = first_code; + } + + /* encode as UTF-8 + * takes at maximum 4 bytes to encode: + * 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */ + if (codepoint < 0x80) + { + /* normal ascii, encoding 0xxxxxxx */ + utf8_length = 1; + } + else if (codepoint < 0x800) + { + /* two bytes, encoding 110xxxxx 10xxxxxx */ + utf8_length = 2; + first_byte_mark = 0xC0; /* 11000000 */ + } + else if (codepoint < 0x10000) + { + /* three bytes, encoding 1110xxxx 10xxxxxx 10xxxxxx */ + utf8_length = 3; + first_byte_mark = 0xE0; /* 11100000 */ + } + else if (codepoint <= 0x10FFFF) + { + /* four bytes, encoding 1110xxxx 10xxxxxx 10xxxxxx 10xxxxxx */ + utf8_length = 4; + first_byte_mark = 0xF0; /* 11110000 */ + } + else + { + /* invalid unicode codepoint */ + goto fail; + } + + /* encode as utf8 */ + for (utf8_position = (unsigned char)(utf8_length - 1); utf8_position > 0; utf8_position--) + { + /* 10xxxxxx */ + (*output_pointer)[utf8_position] = (unsigned char)((codepoint | 0x80) & 0xBF); + codepoint >>= 6; + } + /* encode first byte */ + if (utf8_length > 1) + { + (*output_pointer)[0] = (unsigned char)((codepoint | first_byte_mark) & 0xFF); + } + else + { + (*output_pointer)[0] = (unsigned char)(codepoint & 0x7F); + } + + *output_pointer += utf8_length; + + return sequence_length; + +fail: + return 0; +} + +/* Parse the input text into an unescaped cinput, and populate item. */ +static cJSON_bool parse_string(cJSON * const item, parse_buffer * const input_buffer) +{ + const unsigned char *input_pointer = buffer_at_offset(input_buffer) + 1; + const unsigned char *input_end = buffer_at_offset(input_buffer) + 1; + unsigned char *output_pointer = NULL; + unsigned char *output = NULL; + + /* not a string */ + if (buffer_at_offset(input_buffer)[0] != '\"') + { + goto fail; + } + + { + /* calculate approximate size of the output (overestimate) */ + size_t allocation_length = 0; + size_t skipped_bytes = 0; + while (((size_t)(input_end - input_buffer->content) < input_buffer->length) && (*input_end != '\"')) + { + /* is escape sequence */ + if (input_end[0] == '\\') + { + if ((size_t)(input_end + 1 - input_buffer->content) >= input_buffer->length) + { + /* prevent buffer overflow when last input character is a backslash */ + goto fail; + } + skipped_bytes++; + input_end++; + } + input_end++; + } + if (((size_t)(input_end - input_buffer->content) >= input_buffer->length) || (*input_end != '\"')) + { + goto fail; /* string ended unexpectedly */ + } + + /* This is at most how much we need for the output */ + allocation_length = (size_t) (input_end - buffer_at_offset(input_buffer)) - skipped_bytes; + output = (unsigned char*)input_buffer->hooks.allocate(allocation_length + sizeof("")); + if (output == NULL) + { + goto fail; /* allocation failure */ + } + } + + output_pointer = output; + /* loop through the string literal */ + while (input_pointer < input_end) + { + if (*input_pointer != '\\') + { + *output_pointer++ = *input_pointer++; + } + /* escape sequence */ + else + { + unsigned char sequence_length = 2; + if ((input_end - input_pointer) < 1) + { + goto fail; + } + + switch (input_pointer[1]) + { + case 'b': + *output_pointer++ = '\b'; + break; + case 'f': + *output_pointer++ = '\f'; + break; + case 'n': + *output_pointer++ = '\n'; + break; + case 'r': + *output_pointer++ = '\r'; + break; + case 't': + *output_pointer++ = '\t'; + break; + case '\"': + case '\\': + case '/': + *output_pointer++ = input_pointer[1]; + break; + + /* UTF-16 literal */ + case 'u': + sequence_length = utf16_literal_to_utf8(input_pointer, input_end, &output_pointer); + if (sequence_length == 0) + { + /* failed to convert UTF16-literal to UTF-8 */ + goto fail; + } + break; + + default: + goto fail; + } + input_pointer += sequence_length; + } + } + + /* zero terminate the output */ + *output_pointer = '\0'; + + item->type = cJSON_String; + item->valuestring = (char*)output; + + input_buffer->offset = (size_t) (input_end - input_buffer->content); + input_buffer->offset++; + + return true; + +fail: + if (output != NULL) + { + input_buffer->hooks.deallocate(output); + } + + if (input_pointer != NULL) + { + input_buffer->offset = (size_t)(input_pointer - input_buffer->content); + } + + return false; +} + +/* Render the cstring provided to an escaped version that can be printed. */ +static cJSON_bool print_string_ptr(const unsigned char * const input, printbuffer * const output_buffer) +{ + const unsigned char *input_pointer = NULL; + unsigned char *output = NULL; + unsigned char *output_pointer = NULL; + size_t output_length = 0; + /* numbers of additional characters needed for escaping */ + size_t escape_characters = 0; + + if (output_buffer == NULL) + { + return false; + } + + /* empty string */ + if (input == NULL) + { + output = ensure(output_buffer, sizeof("\"\"")); + if (output == NULL) + { + return false; + } + strcpy((char*)output, "\"\""); + + return true; + } + + /* set "flag" to 1 if something needs to be escaped */ + for (input_pointer = input; *input_pointer; input_pointer++) + { + switch (*input_pointer) + { + case '\"': + case '\\': + case '\b': + case '\f': + case '\n': + case '\r': + case '\t': + /* one character escape sequence */ + escape_characters++; + break; + default: + if (*input_pointer < 32) + { + /* UTF-16 escape sequence uXXXX */ + escape_characters += 5; + } + break; + } + } + output_length = (size_t)(input_pointer - input) + escape_characters; + + output = ensure(output_buffer, output_length + sizeof("\"\"")); + if (output == NULL) + { + return false; + } + + /* no characters have to be escaped */ + if (escape_characters == 0) + { + output[0] = '\"'; + memcpy(output + 1, input, output_length); + output[output_length + 1] = '\"'; + output[output_length + 2] = '\0'; + + return true; + } + + output[0] = '\"'; + output_pointer = output + 1; + /* copy the string */ + for (input_pointer = input; *input_pointer != '\0'; (void)input_pointer++, output_pointer++) + { + if ((*input_pointer > 31) && (*input_pointer != '\"') && (*input_pointer != '\\')) + { + /* normal character, copy */ + *output_pointer = *input_pointer; + } + else + { + /* character needs to be escaped */ + *output_pointer++ = '\\'; + switch (*input_pointer) + { + case '\\': + *output_pointer = '\\'; + break; + case '\"': + *output_pointer = '\"'; + break; + case '\b': + *output_pointer = 'b'; + break; + case '\f': + *output_pointer = 'f'; + break; + case '\n': + *output_pointer = 'n'; + break; + case '\r': + *output_pointer = 'r'; + break; + case '\t': + *output_pointer = 't'; + break; + default: + /* escape and print as unicode codepoint */ + sprintf((char*)output_pointer, "u%04x", *input_pointer); + output_pointer += 4; + break; + } + } + } + output[output_length + 1] = '\"'; + output[output_length + 2] = '\0'; + + return true; +} + +/* Invoke print_string_ptr (which is useful) on an item. */ +static cJSON_bool print_string(const cJSON * const item, printbuffer * const p) +{ + return print_string_ptr((unsigned char*)item->valuestring, p); +} + +/* Predeclare these prototypes. */ +static cJSON_bool parse_value(cJSON * const item, parse_buffer * const input_buffer); +static cJSON_bool print_value(const cJSON * const item, printbuffer * const output_buffer); +static cJSON_bool parse_array(cJSON * const item, parse_buffer * const input_buffer); +static cJSON_bool print_array(const cJSON * const item, printbuffer * const output_buffer); +static cJSON_bool parse_object(cJSON * const item, parse_buffer * const input_buffer); +static cJSON_bool print_object(const cJSON * const item, printbuffer * const output_buffer); + +/* Utility to jump whitespace and cr/lf */ +static parse_buffer *buffer_skip_whitespace(parse_buffer * const buffer) +{ + if ((buffer == NULL) || (buffer->content == NULL)) + { + return NULL; + } + + if (cannot_access_at_index(buffer, 0)) + { + return buffer; + } + + while (can_access_at_index(buffer, 0) && (buffer_at_offset(buffer)[0] <= 32)) + { + buffer->offset++; + } + + if (buffer->offset == buffer->length) + { + buffer->offset--; + } + + return buffer; +} + +/* skip the UTF-8 BOM (byte order mark) if it is at the beginning of a buffer */ +static parse_buffer *skip_utf8_bom(parse_buffer * const buffer) +{ + if ((buffer == NULL) || (buffer->content == NULL) || (buffer->offset != 0)) + { + return NULL; + } + + if (can_access_at_index(buffer, 4) && (strncmp((const char*)buffer_at_offset(buffer), "\xEF\xBB\xBF", 3) == 0)) + { + buffer->offset += 3; + } + + return buffer; +} + +CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated) +{ + size_t buffer_length; + + if (NULL == value) + { + return NULL; + } + + /* Adding null character size due to require_null_terminated. */ + buffer_length = strlen(value) + sizeof(""); + + return cJSON_ParseWithLengthOpts(value, buffer_length, return_parse_end, require_null_terminated); +} + +/* Parse an object - create a new root, and populate. */ +CJSON_PUBLIC(cJSON *) cJSON_ParseWithLengthOpts(const char *value, size_t buffer_length, const char **return_parse_end, cJSON_bool require_null_terminated) +{ + parse_buffer buffer = { 0, 0, 0, 0, { 0, 0, 0 } }; + cJSON *item = NULL; + + /* reset error position */ + global_error.json = NULL; + global_error.position = 0; + + if (value == NULL || 0 == buffer_length) + { + goto fail; + } + + buffer.content = (const unsigned char*)value; + buffer.length = buffer_length; + buffer.offset = 0; + buffer.hooks = global_hooks; + + item = cJSON_New_Item(&global_hooks); + if (item == NULL) /* memory fail */ + { + goto fail; + } + + if (!parse_value(item, buffer_skip_whitespace(skip_utf8_bom(&buffer)))) + { + /* parse failure. ep is set. */ + goto fail; + } + + /* if we require null-terminated JSON without appended garbage, skip and then check for a null terminator */ + if (require_null_terminated) + { + buffer_skip_whitespace(&buffer); + if ((buffer.offset >= buffer.length) || buffer_at_offset(&buffer)[0] != '\0') + { + goto fail; + } + } + if (return_parse_end) + { + *return_parse_end = (const char*)buffer_at_offset(&buffer); + } + + return item; + +fail: + if (item != NULL) + { + cJSON_Delete(item); + } + + if (value != NULL) + { + error local_error; + local_error.json = (const unsigned char*)value; + local_error.position = 0; + + if (buffer.offset < buffer.length) + { + local_error.position = buffer.offset; + } + else if (buffer.length > 0) + { + local_error.position = buffer.length - 1; + } + + if (return_parse_end != NULL) + { + *return_parse_end = (const char*)local_error.json + local_error.position; + } + + global_error = local_error; + } + + return NULL; +} + +/* Default options for cJSON_Parse */ +CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value) +{ + return cJSON_ParseWithOpts(value, 0, 0); +} + +CJSON_PUBLIC(cJSON *) cJSON_ParseWithLength(const char *value, size_t buffer_length) +{ + return cJSON_ParseWithLengthOpts(value, buffer_length, 0, 0); +} + +#define cjson_min(a, b) (((a) < (b)) ? (a) : (b)) + +static unsigned char *print(const cJSON * const item, cJSON_bool format, const internal_hooks * const hooks) +{ + static const size_t default_buffer_size = 256; + printbuffer buffer[1]; + unsigned char *printed = NULL; + + memset(buffer, 0, sizeof(buffer)); + + /* create buffer */ + buffer->buffer = (unsigned char*) hooks->allocate(default_buffer_size); + buffer->length = default_buffer_size; + buffer->format = format; + buffer->hooks = *hooks; + if (buffer->buffer == NULL) + { + goto fail; + } + + /* print the value */ + if (!print_value(item, buffer)) + { + goto fail; + } + update_offset(buffer); + + /* check if reallocate is available */ + if (hooks->reallocate != NULL) + { + printed = (unsigned char*) hooks->reallocate(buffer->buffer, buffer->offset + 1); + if (printed == NULL) { + goto fail; + } + buffer->buffer = NULL; + } + else /* otherwise copy the JSON over to a new buffer */ + { + printed = (unsigned char*) hooks->allocate(buffer->offset + 1); + if (printed == NULL) + { + goto fail; + } + memcpy(printed, buffer->buffer, cjson_min(buffer->length, buffer->offset + 1)); + printed[buffer->offset] = '\0'; /* just to be sure */ + + /* free the buffer */ + hooks->deallocate(buffer->buffer); + } + + return printed; + +fail: + if (buffer->buffer != NULL) + { + hooks->deallocate(buffer->buffer); + } + + if (printed != NULL) + { + hooks->deallocate(printed); + } + + return NULL; +} + +/* Render a cJSON item/entity/structure to text. */ +CJSON_PUBLIC(char *) cJSON_Print(const cJSON *item) +{ + return (char*)print(item, true, &global_hooks); +} + +CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item) +{ + return (char*)print(item, false, &global_hooks); +} + +CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cJSON_bool fmt) +{ + printbuffer p = { 0, 0, 0, 0, 0, 0, { 0, 0, 0 } }; + + if (prebuffer < 0) + { + return NULL; + } + + p.buffer = (unsigned char*)global_hooks.allocate((size_t)prebuffer); + if (!p.buffer) + { + return NULL; + } + + p.length = (size_t)prebuffer; + p.offset = 0; + p.noalloc = false; + p.format = fmt; + p.hooks = global_hooks; + + if (!print_value(item, &p)) + { + global_hooks.deallocate(p.buffer); + return NULL; + } + + return (char*)p.buffer; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON *item, char *buffer, const int length, const cJSON_bool format) +{ + printbuffer p = { 0, 0, 0, 0, 0, 0, { 0, 0, 0 } }; + + if ((length < 0) || (buffer == NULL)) + { + return false; + } + + p.buffer = (unsigned char*)buffer; + p.length = (size_t)length; + p.offset = 0; + p.noalloc = true; + p.format = format; + p.hooks = global_hooks; + + return print_value(item, &p); +} + +/* Parser core - when encountering text, process appropriately. */ +static cJSON_bool parse_value(cJSON * const item, parse_buffer * const input_buffer) +{ + if ((input_buffer == NULL) || (input_buffer->content == NULL)) + { + return false; /* no input */ + } + + /* parse the different types of values */ + /* null */ + if (can_read(input_buffer, 4) && (strncmp((const char*)buffer_at_offset(input_buffer), "null", 4) == 0)) + { + item->type = cJSON_NULL; + input_buffer->offset += 4; + return true; + } + /* false */ + if (can_read(input_buffer, 5) && (strncmp((const char*)buffer_at_offset(input_buffer), "false", 5) == 0)) + { + item->type = cJSON_False; + input_buffer->offset += 5; + return true; + } + /* true */ + if (can_read(input_buffer, 4) && (strncmp((const char*)buffer_at_offset(input_buffer), "true", 4) == 0)) + { + item->type = cJSON_True; + item->valueint = 1; + input_buffer->offset += 4; + return true; + } + /* string */ + if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '\"')) + { + return parse_string(item, input_buffer); + } + /* number */ + if (can_access_at_index(input_buffer, 0) && ((buffer_at_offset(input_buffer)[0] == '-') || ((buffer_at_offset(input_buffer)[0] >= '0') && (buffer_at_offset(input_buffer)[0] <= '9')))) + { + return parse_number(item, input_buffer); + } + /* array */ + if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '[')) + { + return parse_array(item, input_buffer); + } + /* object */ + if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '{')) + { + return parse_object(item, input_buffer); + } + + return false; +} + +/* Render a value to text. */ +static cJSON_bool print_value(const cJSON * const item, printbuffer * const output_buffer) +{ + unsigned char *output = NULL; + + if ((item == NULL) || (output_buffer == NULL)) + { + return false; + } + + switch ((item->type) & 0xFF) + { + case cJSON_NULL: + output = ensure(output_buffer, 5); + if (output == NULL) + { + return false; + } + strcpy((char*)output, "null"); + return true; + + case cJSON_False: + output = ensure(output_buffer, 6); + if (output == NULL) + { + return false; + } + strcpy((char*)output, "false"); + return true; + + case cJSON_True: + output = ensure(output_buffer, 5); + if (output == NULL) + { + return false; + } + strcpy((char*)output, "true"); + return true; + + case cJSON_Number: + return print_number(item, output_buffer); + + case cJSON_Raw: + { + size_t raw_length = 0; + if (item->valuestring == NULL) + { + return false; + } + + raw_length = strlen(item->valuestring) + sizeof(""); + output = ensure(output_buffer, raw_length); + if (output == NULL) + { + return false; + } + memcpy(output, item->valuestring, raw_length); + return true; + } + + case cJSON_String: + return print_string(item, output_buffer); + + case cJSON_Array: + return print_array(item, output_buffer); + + case cJSON_Object: + return print_object(item, output_buffer); + + default: + return false; + } +} + +/* Build an array from input text. */ +static cJSON_bool parse_array(cJSON * const item, parse_buffer * const input_buffer) +{ + cJSON *head = NULL; /* head of the linked list */ + cJSON *current_item = NULL; + + if (input_buffer->depth >= CJSON_NESTING_LIMIT) + { + return false; /* to deeply nested */ + } + input_buffer->depth++; + + if (buffer_at_offset(input_buffer)[0] != '[') + { + /* not an array */ + goto fail; + } + + input_buffer->offset++; + buffer_skip_whitespace(input_buffer); + if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == ']')) + { + /* empty array */ + goto success; + } + + /* check if we skipped to the end of the buffer */ + if (cannot_access_at_index(input_buffer, 0)) + { + input_buffer->offset--; + goto fail; + } + + /* step back to character in front of the first element */ + input_buffer->offset--; + /* loop through the comma separated array elements */ + do + { + /* allocate next item */ + cJSON *new_item = cJSON_New_Item(&(input_buffer->hooks)); + if (new_item == NULL) + { + goto fail; /* allocation failure */ + } + + /* attach next item to list */ + if (head == NULL) + { + /* start the linked list */ + current_item = head = new_item; + } + else + { + /* add to the end and advance */ + current_item->next = new_item; + new_item->prev = current_item; + current_item = new_item; + } + + /* parse next value */ + input_buffer->offset++; + buffer_skip_whitespace(input_buffer); + if (!parse_value(current_item, input_buffer)) + { + goto fail; /* failed to parse value */ + } + buffer_skip_whitespace(input_buffer); + } + while (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == ',')); + + if (cannot_access_at_index(input_buffer, 0) || buffer_at_offset(input_buffer)[0] != ']') + { + goto fail; /* expected end of array */ + } + +success: + input_buffer->depth--; + + if (head != NULL) { + head->prev = current_item; + } + + item->type = cJSON_Array; + item->child = head; + + input_buffer->offset++; + + return true; + +fail: + if (head != NULL) + { + cJSON_Delete(head); + } + + return false; +} + +/* Render an array to text */ +static cJSON_bool print_array(const cJSON * const item, printbuffer * const output_buffer) +{ + unsigned char *output_pointer = NULL; + size_t length = 0; + cJSON *current_element = item->child; + + if (output_buffer == NULL) + { + return false; + } + + /* Compose the output array. */ + /* opening square bracket */ + output_pointer = ensure(output_buffer, 1); + if (output_pointer == NULL) + { + return false; + } + + *output_pointer = '['; + output_buffer->offset++; + output_buffer->depth++; + + while (current_element != NULL) + { + if (!print_value(current_element, output_buffer)) + { + return false; + } + update_offset(output_buffer); + if (current_element->next) + { + length = (size_t) (output_buffer->format ? 2 : 1); + output_pointer = ensure(output_buffer, length + 1); + if (output_pointer == NULL) + { + return false; + } + *output_pointer++ = ','; + if(output_buffer->format) + { + *output_pointer++ = ' '; + } + *output_pointer = '\0'; + output_buffer->offset += length; + } + current_element = current_element->next; + } + + output_pointer = ensure(output_buffer, 2); + if (output_pointer == NULL) + { + return false; + } + *output_pointer++ = ']'; + *output_pointer = '\0'; + output_buffer->depth--; + + return true; +} + +/* Build an object from the text. */ +static cJSON_bool parse_object(cJSON * const item, parse_buffer * const input_buffer) +{ + cJSON *head = NULL; /* linked list head */ + cJSON *current_item = NULL; + + if (input_buffer->depth >= CJSON_NESTING_LIMIT) + { + return false; /* to deeply nested */ + } + input_buffer->depth++; + + if (cannot_access_at_index(input_buffer, 0) || (buffer_at_offset(input_buffer)[0] != '{')) + { + goto fail; /* not an object */ + } + + input_buffer->offset++; + buffer_skip_whitespace(input_buffer); + if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '}')) + { + goto success; /* empty object */ + } + + /* check if we skipped to the end of the buffer */ + if (cannot_access_at_index(input_buffer, 0)) + { + input_buffer->offset--; + goto fail; + } + + /* step back to character in front of the first element */ + input_buffer->offset--; + /* loop through the comma separated array elements */ + do + { + /* allocate next item */ + cJSON *new_item = cJSON_New_Item(&(input_buffer->hooks)); + if (new_item == NULL) + { + goto fail; /* allocation failure */ + } + + /* attach next item to list */ + if (head == NULL) + { + /* start the linked list */ + current_item = head = new_item; + } + else + { + /* add to the end and advance */ + current_item->next = new_item; + new_item->prev = current_item; + current_item = new_item; + } + + /* parse the name of the child */ + input_buffer->offset++; + buffer_skip_whitespace(input_buffer); + if (!parse_string(current_item, input_buffer)) + { + goto fail; /* failed to parse name */ + } + buffer_skip_whitespace(input_buffer); + + /* swap valuestring and string, because we parsed the name */ + current_item->string = current_item->valuestring; + current_item->valuestring = NULL; + + if (cannot_access_at_index(input_buffer, 0) || (buffer_at_offset(input_buffer)[0] != ':')) + { + goto fail; /* invalid object */ + } + + /* parse the value */ + input_buffer->offset++; + buffer_skip_whitespace(input_buffer); + if (!parse_value(current_item, input_buffer)) + { + goto fail; /* failed to parse value */ + } + buffer_skip_whitespace(input_buffer); + } + while (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == ',')); + + if (cannot_access_at_index(input_buffer, 0) || (buffer_at_offset(input_buffer)[0] != '}')) + { + goto fail; /* expected end of object */ + } + +success: + input_buffer->depth--; + + if (head != NULL) { + head->prev = current_item; + } + + item->type = cJSON_Object; + item->child = head; + + input_buffer->offset++; + return true; + +fail: + if (head != NULL) + { + cJSON_Delete(head); + } + + return false; +} + +/* Render an object to text. */ +static cJSON_bool print_object(const cJSON * const item, printbuffer * const output_buffer) +{ + unsigned char *output_pointer = NULL; + size_t length = 0; + cJSON *current_item = item->child; + + if (output_buffer == NULL) + { + return false; + } + + /* Compose the output: */ + length = (size_t) (output_buffer->format ? 2 : 1); /* fmt: {\n */ + output_pointer = ensure(output_buffer, length + 1); + if (output_pointer == NULL) + { + return false; + } + + *output_pointer++ = '{'; + output_buffer->depth++; + if (output_buffer->format) + { + *output_pointer++ = '\n'; + } + output_buffer->offset += length; + + while (current_item) + { + if (output_buffer->format) + { + size_t i; + output_pointer = ensure(output_buffer, output_buffer->depth); + if (output_pointer == NULL) + { + return false; + } + for (i = 0; i < output_buffer->depth; i++) + { + *output_pointer++ = '\t'; + } + output_buffer->offset += output_buffer->depth; + } + + /* print key */ + if (!print_string_ptr((unsigned char*)current_item->string, output_buffer)) + { + return false; + } + update_offset(output_buffer); + + length = (size_t) (output_buffer->format ? 2 : 1); + output_pointer = ensure(output_buffer, length); + if (output_pointer == NULL) + { + return false; + } + *output_pointer++ = ':'; + if (output_buffer->format) + { + *output_pointer++ = '\t'; + } + output_buffer->offset += length; + + /* print value */ + if (!print_value(current_item, output_buffer)) + { + return false; + } + update_offset(output_buffer); + + /* print comma if not last */ + length = ((size_t)(output_buffer->format ? 1 : 0) + (size_t)(current_item->next ? 1 : 0)); + output_pointer = ensure(output_buffer, length + 1); + if (output_pointer == NULL) + { + return false; + } + if (current_item->next) + { + *output_pointer++ = ','; + } + + if (output_buffer->format) + { + *output_pointer++ = '\n'; + } + *output_pointer = '\0'; + output_buffer->offset += length; + + current_item = current_item->next; + } + + output_pointer = ensure(output_buffer, output_buffer->format ? (output_buffer->depth + 1) : 2); + if (output_pointer == NULL) + { + return false; + } + if (output_buffer->format) + { + size_t i; + for (i = 0; i < (output_buffer->depth - 1); i++) + { + *output_pointer++ = '\t'; + } + } + *output_pointer++ = '}'; + *output_pointer = '\0'; + output_buffer->depth--; + + return true; +} + +/* Get Array size/item / object item. */ +CJSON_PUBLIC(int) cJSON_GetArraySize(const cJSON *array) +{ + cJSON *child = NULL; + size_t size = 0; + + if (array == NULL) + { + return 0; + } + + child = array->child; + + while(child != NULL) + { + size++; + child = child->next; + } + + /* FIXME: Can overflow here. Cannot be fixed without breaking the API */ + + return (int)size; +} + +static cJSON* get_array_item(const cJSON *array, size_t index) +{ + cJSON *current_child = NULL; + + if (array == NULL) + { + return NULL; + } + + current_child = array->child; + while ((current_child != NULL) && (index > 0)) + { + index--; + current_child = current_child->next; + } + + return current_child; +} + +CJSON_PUBLIC(cJSON *) cJSON_GetArrayItem(const cJSON *array, int index) +{ + if (index < 0) + { + return NULL; + } + + return get_array_item(array, (size_t)index); +} + +static cJSON *get_object_item(const cJSON * const object, const char * const name, const cJSON_bool case_sensitive) +{ + cJSON *current_element = NULL; + + if ((object == NULL) || (name == NULL)) + { + return NULL; + } + + current_element = object->child; + if (case_sensitive) + { + while ((current_element != NULL) && (current_element->string != NULL) && (strcmp(name, current_element->string) != 0)) + { + current_element = current_element->next; + } + } + else + { + while ((current_element != NULL) && (case_insensitive_strcmp((const unsigned char*)name, (const unsigned char*)(current_element->string)) != 0)) + { + current_element = current_element->next; + } + } + + if ((current_element == NULL) || (current_element->string == NULL)) { + return NULL; + } + + return current_element; +} + +CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON * const object, const char * const string) +{ + return get_object_item(object, string, false); +} + +CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * const object, const char * const string) +{ + return get_object_item(object, string, true); +} + +CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON *object, const char *string) +{ + return cJSON_GetObjectItem(object, string) ? 1 : 0; +} + +/* Utility for array list handling. */ +static void suffix_object(cJSON *prev, cJSON *item) +{ + prev->next = item; + item->prev = prev; +} + +/* Utility for handling references. */ +static cJSON *create_reference(const cJSON *item, const internal_hooks * const hooks) +{ + cJSON *reference = NULL; + if (item == NULL) + { + return NULL; + } + + reference = cJSON_New_Item(hooks); + if (reference == NULL) + { + return NULL; + } + + memcpy(reference, item, sizeof(cJSON)); + reference->string = NULL; + reference->type |= cJSON_IsReference; + reference->next = reference->prev = NULL; + return reference; +} + +static cJSON_bool add_item_to_array(cJSON *array, cJSON *item) +{ + cJSON *child = NULL; + + if ((item == NULL) || (array == NULL) || (array == item)) + { + return false; + } + + child = array->child; + /* + * To find the last item in array quickly, we use prev in array + */ + if (child == NULL) + { + /* list is empty, start new one */ + array->child = item; + item->prev = item; + item->next = NULL; + } + else + { + /* append to the end */ + if (child->prev) + { + suffix_object(child->prev, item); + array->child->prev = item; + } + } + + return true; +} + +/* Add item to array/object. */ +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToArray(cJSON *array, cJSON *item) +{ + return add_item_to_array(array, item); +} + +#if defined(__clang__) || (defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))) + #pragma GCC diagnostic push +#endif +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wcast-qual" +#endif +/* helper function to cast away const */ +static void* cast_away_const(const void* string) +{ + return (void*)string; +} +#if defined(__clang__) || (defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))) + #pragma GCC diagnostic pop +#endif + + +static cJSON_bool add_item_to_object(cJSON * const object, const char * const string, cJSON * const item, const internal_hooks * const hooks, const cJSON_bool constant_key) +{ + char *new_key = NULL; + int new_type = cJSON_Invalid; + + if ((object == NULL) || (string == NULL) || (item == NULL) || (object == item)) + { + return false; + } + + if (constant_key) + { + new_key = (char*)cast_away_const(string); + new_type = item->type | cJSON_StringIsConst; + } + else + { + new_key = (char*)cJSON_strdup((const unsigned char*)string, hooks); + if (new_key == NULL) + { + return false; + } + + new_type = item->type & ~cJSON_StringIsConst; + } + + if (!(item->type & cJSON_StringIsConst) && (item->string != NULL)) + { + hooks->deallocate(item->string); + } + + item->string = new_key; + item->type = new_type; + + return add_item_to_array(object, item); +} + +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item) +{ + return add_item_to_object(object, string, item, &global_hooks, false); +} + +/* Add an item to an object with constant string as key */ +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJSON *item) +{ + return add_item_to_object(object, string, item, &global_hooks, true); +} + +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item) +{ + if (array == NULL) + { + return false; + } + + return add_item_to_array(array, create_reference(item, &global_hooks)); +} + +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item) +{ + if ((object == NULL) || (string == NULL)) + { + return false; + } + + return add_item_to_object(object, string, create_reference(item, &global_hooks), &global_hooks, false); +} + +CJSON_PUBLIC(cJSON*) cJSON_AddNullToObject(cJSON * const object, const char * const name) +{ + cJSON *null = cJSON_CreateNull(); + if (add_item_to_object(object, name, null, &global_hooks, false)) + { + return null; + } + + cJSON_Delete(null); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddTrueToObject(cJSON * const object, const char * const name) +{ + cJSON *true_item = cJSON_CreateTrue(); + if (add_item_to_object(object, name, true_item, &global_hooks, false)) + { + return true_item; + } + + cJSON_Delete(true_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddFalseToObject(cJSON * const object, const char * const name) +{ + cJSON *false_item = cJSON_CreateFalse(); + if (add_item_to_object(object, name, false_item, &global_hooks, false)) + { + return false_item; + } + + cJSON_Delete(false_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddBoolToObject(cJSON * const object, const char * const name, const cJSON_bool boolean) +{ + cJSON *bool_item = cJSON_CreateBool(boolean); + if (add_item_to_object(object, name, bool_item, &global_hooks, false)) + { + return bool_item; + } + + cJSON_Delete(bool_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddNumberToObject(cJSON * const object, const char * const name, const double number) +{ + cJSON *number_item = cJSON_CreateNumber(number); + if (add_item_to_object(object, name, number_item, &global_hooks, false)) + { + return number_item; + } + + cJSON_Delete(number_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddStringToObject(cJSON * const object, const char * const name, const char * const string) +{ + cJSON *string_item = cJSON_CreateString(string); + if (add_item_to_object(object, name, string_item, &global_hooks, false)) + { + return string_item; + } + + cJSON_Delete(string_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddRawToObject(cJSON * const object, const char * const name, const char * const raw) +{ + cJSON *raw_item = cJSON_CreateRaw(raw); + if (add_item_to_object(object, name, raw_item, &global_hooks, false)) + { + return raw_item; + } + + cJSON_Delete(raw_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddObjectToObject(cJSON * const object, const char * const name) +{ + cJSON *object_item = cJSON_CreateObject(); + if (add_item_to_object(object, name, object_item, &global_hooks, false)) + { + return object_item; + } + + cJSON_Delete(object_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddArrayToObject(cJSON * const object, const char * const name) +{ + cJSON *array = cJSON_CreateArray(); + if (add_item_to_object(object, name, array, &global_hooks, false)) + { + return array; + } + + cJSON_Delete(array); + return NULL; +} + +CJSON_PUBLIC(cJSON *) cJSON_DetachItemViaPointer(cJSON *parent, cJSON * const item) +{ + if ((parent == NULL) || (item == NULL)) + { + return NULL; + } + + if (item != parent->child) + { + /* not the first element */ + item->prev->next = item->next; + } + if (item->next != NULL) + { + /* not the last element */ + item->next->prev = item->prev; + } + + if (item == parent->child) + { + /* first element */ + parent->child = item->next; + } + else if (item->next == NULL) + { + /* last element */ + parent->child->prev = item->prev; + } + + /* make sure the detached item doesn't point anywhere anymore */ + item->prev = NULL; + item->next = NULL; + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which) +{ + if (which < 0) + { + return NULL; + } + + return cJSON_DetachItemViaPointer(array, get_array_item(array, (size_t)which)); +} + +CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON *array, int which) +{ + cJSON_Delete(cJSON_DetachItemFromArray(array, which)); +} + +CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON *object, const char *string) +{ + cJSON *to_detach = cJSON_GetObjectItem(object, string); + + return cJSON_DetachItemViaPointer(object, to_detach); +} + +CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObjectCaseSensitive(cJSON *object, const char *string) +{ + cJSON *to_detach = cJSON_GetObjectItemCaseSensitive(object, string); + + return cJSON_DetachItemViaPointer(object, to_detach); +} + +CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON *object, const char *string) +{ + cJSON_Delete(cJSON_DetachItemFromObject(object, string)); +} + +CJSON_PUBLIC(void) cJSON_DeleteItemFromObjectCaseSensitive(cJSON *object, const char *string) +{ + cJSON_Delete(cJSON_DetachItemFromObjectCaseSensitive(object, string)); +} + +/* Replace array/object items with new ones. */ +CJSON_PUBLIC(cJSON_bool) cJSON_InsertItemInArray(cJSON *array, int which, cJSON *newitem) +{ + cJSON *after_inserted = NULL; + + if (which < 0) + { + return false; + } + + after_inserted = get_array_item(array, (size_t)which); + if (after_inserted == NULL) + { + return add_item_to_array(array, newitem); + } + + newitem->next = after_inserted; + newitem->prev = after_inserted->prev; + after_inserted->prev = newitem; + if (after_inserted == array->child) + { + array->child = newitem; + } + else + { + newitem->prev->next = newitem; + } + return true; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemViaPointer(cJSON * const parent, cJSON * const item, cJSON * replacement) +{ + if ((parent == NULL) || (parent->child == NULL) || (replacement == NULL) || (item == NULL)) + { + return false; + } + + if (replacement == item) + { + return true; + } + + replacement->next = item->next; + replacement->prev = item->prev; + + if (replacement->next != NULL) + { + replacement->next->prev = replacement; + } + if (parent->child == item) + { + if (parent->child->prev == parent->child) + { + replacement->prev = replacement; + } + parent->child = replacement; + } + else + { /* + * To find the last item in array quickly, we use prev in array. + * We can't modify the last item's next pointer where this item was the parent's child + */ + if (replacement->prev != NULL) + { + replacement->prev->next = replacement; + } + if (replacement->next == NULL) + { + parent->child->prev = replacement; + } + } + + item->next = NULL; + item->prev = NULL; + cJSON_Delete(item); + + return true; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem) +{ + if (which < 0) + { + return false; + } + + return cJSON_ReplaceItemViaPointer(array, get_array_item(array, (size_t)which), newitem); +} + +static cJSON_bool replace_item_in_object(cJSON *object, const char *string, cJSON *replacement, cJSON_bool case_sensitive) +{ + if ((replacement == NULL) || (string == NULL)) + { + return false; + } + + /* replace the name in the replacement */ + if (!(replacement->type & cJSON_StringIsConst) && (replacement->string != NULL)) + { + cJSON_free(replacement->string); + } + replacement->string = (char*)cJSON_strdup((const unsigned char*)string, &global_hooks); + if (replacement->string == NULL) + { + return false; + } + + replacement->type &= ~cJSON_StringIsConst; + + return cJSON_ReplaceItemViaPointer(object, get_object_item(object, string, case_sensitive), replacement); +} + +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObject(cJSON *object, const char *string, cJSON *newitem) +{ + return replace_item_in_object(object, string, newitem, false); +} + +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObjectCaseSensitive(cJSON *object, const char *string, cJSON *newitem) +{ + return replace_item_in_object(object, string, newitem, true); +} + +/* Create basic types: */ +CJSON_PUBLIC(cJSON *) cJSON_CreateNull(void) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = cJSON_NULL; + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateTrue(void) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = cJSON_True; + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateFalse(void) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = cJSON_False; + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateBool(cJSON_bool boolean) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = boolean ? cJSON_True : cJSON_False; + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateNumber(double num) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = cJSON_Number; + item->valuedouble = num; + + /* use saturation in case of overflow */ + if (num >= INT_MAX) + { + item->valueint = INT_MAX; + } + else if (num <= (double)INT_MIN) + { + item->valueint = INT_MIN; + } + else + { + item->valueint = (int)num; + } + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = cJSON_String; + item->valuestring = (char*)cJSON_strdup((const unsigned char*)string, &global_hooks); + if(!item->valuestring) + { + cJSON_Delete(item); + return NULL; + } + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateStringReference(const char *string) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if (item != NULL) + { + item->type = cJSON_String | cJSON_IsReference; + item->valuestring = (char*)cast_away_const(string); + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateObjectReference(const cJSON *child) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if (item != NULL) { + item->type = cJSON_Object | cJSON_IsReference; + item->child = (cJSON*)cast_away_const(child); + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateArrayReference(const cJSON *child) { + cJSON *item = cJSON_New_Item(&global_hooks); + if (item != NULL) { + item->type = cJSON_Array | cJSON_IsReference; + item->child = (cJSON*)cast_away_const(child); + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateRaw(const char *raw) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = cJSON_Raw; + item->valuestring = (char*)cJSON_strdup((const unsigned char*)raw, &global_hooks); + if(!item->valuestring) + { + cJSON_Delete(item); + return NULL; + } + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateArray(void) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type=cJSON_Array; + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if (item) + { + item->type = cJSON_Object; + } + + return item; +} + +/* Create Arrays: */ +CJSON_PUBLIC(cJSON *) cJSON_CreateIntArray(const int *numbers, int count) +{ + size_t i = 0; + cJSON *n = NULL; + cJSON *p = NULL; + cJSON *a = NULL; + + if ((count < 0) || (numbers == NULL)) + { + return NULL; + } + + a = cJSON_CreateArray(); + + for(i = 0; a && (i < (size_t)count); i++) + { + n = cJSON_CreateNumber(numbers[i]); + if (!n) + { + cJSON_Delete(a); + return NULL; + } + if(!i) + { + a->child = n; + } + else + { + suffix_object(p, n); + } + p = n; + } + + if (a && a->child) { + a->child->prev = n; + } + + return a; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateFloatArray(const float *numbers, int count) +{ + size_t i = 0; + cJSON *n = NULL; + cJSON *p = NULL; + cJSON *a = NULL; + + if ((count < 0) || (numbers == NULL)) + { + return NULL; + } + + a = cJSON_CreateArray(); + + for(i = 0; a && (i < (size_t)count); i++) + { + n = cJSON_CreateNumber((double)numbers[i]); + if(!n) + { + cJSON_Delete(a); + return NULL; + } + if(!i) + { + a->child = n; + } + else + { + suffix_object(p, n); + } + p = n; + } + + if (a && a->child) { + a->child->prev = n; + } + + return a; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateDoubleArray(const double *numbers, int count) +{ + size_t i = 0; + cJSON *n = NULL; + cJSON *p = NULL; + cJSON *a = NULL; + + if ((count < 0) || (numbers == NULL)) + { + return NULL; + } + + a = cJSON_CreateArray(); + + for(i = 0; a && (i < (size_t)count); i++) + { + n = cJSON_CreateNumber(numbers[i]); + if(!n) + { + cJSON_Delete(a); + return NULL; + } + if(!i) + { + a->child = n; + } + else + { + suffix_object(p, n); + } + p = n; + } + + if (a && a->child) { + a->child->prev = n; + } + + return a; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateStringArray(const char *const *strings, int count) +{ + size_t i = 0; + cJSON *n = NULL; + cJSON *p = NULL; + cJSON *a = NULL; + + if ((count < 0) || (strings == NULL)) + { + return NULL; + } + + a = cJSON_CreateArray(); + + for (i = 0; a && (i < (size_t)count); i++) + { + n = cJSON_CreateString(strings[i]); + if(!n) + { + cJSON_Delete(a); + return NULL; + } + if(!i) + { + a->child = n; + } + else + { + suffix_object(p,n); + } + p = n; + } + + if (a && a->child) { + a->child->prev = n; + } + + return a; +} + +/* Duplication */ +CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recurse) +{ + cJSON *newitem = NULL; + cJSON *child = NULL; + cJSON *next = NULL; + cJSON *newchild = NULL; + + /* Bail on bad ptr */ + if (!item) + { + goto fail; + } + /* Create new item */ + newitem = cJSON_New_Item(&global_hooks); + if (!newitem) + { + goto fail; + } + /* Copy over all vars */ + newitem->type = item->type & (~cJSON_IsReference); + newitem->valueint = item->valueint; + newitem->valuedouble = item->valuedouble; + if (item->valuestring) + { + newitem->valuestring = (char*)cJSON_strdup((unsigned char*)item->valuestring, &global_hooks); + if (!newitem->valuestring) + { + goto fail; + } + } + if (item->string) + { + newitem->string = (item->type&cJSON_StringIsConst) ? item->string : (char*)cJSON_strdup((unsigned char*)item->string, &global_hooks); + if (!newitem->string) + { + goto fail; + } + } + /* If non-recursive, then we're done! */ + if (!recurse) + { + return newitem; + } + /* Walk the ->next chain for the child. */ + child = item->child; + while (child != NULL) + { + newchild = cJSON_Duplicate(child, true); /* Duplicate (with recurse) each item in the ->next chain */ + if (!newchild) + { + goto fail; + } + if (next != NULL) + { + /* If newitem->child already set, then crosswire ->prev and ->next and move on */ + next->next = newchild; + newchild->prev = next; + next = newchild; + } + else + { + /* Set newitem->child and move to it */ + newitem->child = newchild; + next = newchild; + } + child = child->next; + } + if (newitem && newitem->child) + { + newitem->child->prev = newchild; + } + + return newitem; + +fail: + if (newitem != NULL) + { + cJSON_Delete(newitem); + } + + return NULL; +} + +static void skip_oneline_comment(char **input) +{ + *input += static_strlen("//"); + + for (; (*input)[0] != '\0'; ++(*input)) + { + if ((*input)[0] == '\n') { + *input += static_strlen("\n"); + return; + } + } +} + +static void skip_multiline_comment(char **input) +{ + *input += static_strlen("/*"); + + for (; (*input)[0] != '\0'; ++(*input)) + { + if (((*input)[0] == '*') && ((*input)[1] == '/')) + { + *input += static_strlen("*/"); + return; + } + } +} + +static void minify_string(char **input, char **output) { + (*output)[0] = (*input)[0]; + *input += static_strlen("\""); + *output += static_strlen("\""); + + + for (; (*input)[0] != '\0'; (void)++(*input), ++(*output)) { + (*output)[0] = (*input)[0]; + + if ((*input)[0] == '\"') { + (*output)[0] = '\"'; + *input += static_strlen("\""); + *output += static_strlen("\""); + return; + } else if (((*input)[0] == '\\') && ((*input)[1] == '\"')) { + (*output)[1] = (*input)[1]; + *input += static_strlen("\""); + *output += static_strlen("\""); + } + } +} + +CJSON_PUBLIC(void) cJSON_Minify(char *json) +{ + char *into = json; + + if (json == NULL) + { + return; + } + + while (json[0] != '\0') + { + switch (json[0]) + { + case ' ': + case '\t': + case '\r': + case '\n': + json++; + break; + + case '/': + if (json[1] == '/') + { + skip_oneline_comment(&json); + } + else if (json[1] == '*') + { + skip_multiline_comment(&json); + } else { + json++; + } + break; + + case '\"': + minify_string(&json, (char**)&into); + break; + + default: + into[0] = json[0]; + json++; + into++; + } + } + + /* and null-terminate. */ + *into = '\0'; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsInvalid(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_Invalid; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsFalse(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_False; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsTrue(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xff) == cJSON_True; +} + + +CJSON_PUBLIC(cJSON_bool) cJSON_IsBool(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & (cJSON_True | cJSON_False)) != 0; +} +CJSON_PUBLIC(cJSON_bool) cJSON_IsNull(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_NULL; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsNumber(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_Number; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsString(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_String; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsArray(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_Array; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsObject(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_Object; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsRaw(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_Raw; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_Compare(const cJSON * const a, const cJSON * const b, const cJSON_bool case_sensitive) +{ + if ((a == NULL) || (b == NULL) || ((a->type & 0xFF) != (b->type & 0xFF))) + { + return false; + } + + /* check if type is valid */ + switch (a->type & 0xFF) + { + case cJSON_False: + case cJSON_True: + case cJSON_NULL: + case cJSON_Number: + case cJSON_String: + case cJSON_Raw: + case cJSON_Array: + case cJSON_Object: + break; + + default: + return false; + } + + /* identical objects are equal */ + if (a == b) + { + return true; + } + + switch (a->type & 0xFF) + { + /* in these cases and equal type is enough */ + case cJSON_False: + case cJSON_True: + case cJSON_NULL: + return true; + + case cJSON_Number: + if (compare_double(a->valuedouble, b->valuedouble)) + { + return true; + } + return false; + + case cJSON_String: + case cJSON_Raw: + if ((a->valuestring == NULL) || (b->valuestring == NULL)) + { + return false; + } + if (strcmp(a->valuestring, b->valuestring) == 0) + { + return true; + } + + return false; + + case cJSON_Array: + { + cJSON *a_element = a->child; + cJSON *b_element = b->child; + + for (; (a_element != NULL) && (b_element != NULL);) + { + if (!cJSON_Compare(a_element, b_element, case_sensitive)) + { + return false; + } + + a_element = a_element->next; + b_element = b_element->next; + } + + /* one of the arrays is longer than the other */ + if (a_element != b_element) { + return false; + } + + return true; + } + + case cJSON_Object: + { + cJSON *a_element = NULL; + cJSON *b_element = NULL; + cJSON_ArrayForEach(a_element, a) + { + /* TODO This has O(n^2) runtime, which is horrible! */ + b_element = get_object_item(b, a_element->string, case_sensitive); + if (b_element == NULL) + { + return false; + } + + if (!cJSON_Compare(a_element, b_element, case_sensitive)) + { + return false; + } + } + + /* doing this twice, once on a and b to prevent true comparison if a subset of b + * TODO: Do this the proper way, this is just a fix for now */ + cJSON_ArrayForEach(b_element, b) + { + a_element = get_object_item(a, b_element->string, case_sensitive); + if (a_element == NULL) + { + return false; + } + + if (!cJSON_Compare(b_element, a_element, case_sensitive)) + { + return false; + } + } + + return true; + } + + default: + return false; + } +} + +CJSON_PUBLIC(void *) cJSON_malloc(size_t size) +{ + return global_hooks.allocate(size); +} + +CJSON_PUBLIC(void) cJSON_free(void *object) +{ + global_hooks.deallocate(object); +} diff --git a/dependencies/pocketpy/3rd/cjson/src/cJSONw.cpp b/dependencies/pocketpy/3rd/cjson/src/cJSONw.cpp new file mode 100644 index 0000000..e37e47e --- /dev/null +++ b/dependencies/pocketpy/3rd/cjson/src/cJSONw.cpp @@ -0,0 +1,131 @@ +#include "cJSONw.hpp" + +namespace pkpy{ + + +static cJSON* convert_python_object_to_cjson(PyObject* obj, VM* vm); +static PyObject* convert_cjson_to_python_object(const cJSON * const item, VM* vm); + +template +static cJSON* convert_list_to_cjson(const T& list, VM* vm){ + cJSON *cjson_list = cJSON_CreateArray(); + for(auto& element : list){ + cJSON_AddItemToArray(cjson_list, convert_python_object_to_cjson(element, vm)); + } + return cjson_list; +} + +static cJSON* covert_dict_to_cjson(const Dict& dict, VM* vm){ + cJSON *cjson_object = cJSON_CreateObject(); + dict.apply([&](PyObject* key, PyObject* val){ + cJSON_AddItemToObject(cjson_object, CAST(Str&, key).c_str(), convert_python_object_to_cjson(val, vm)); + }); + return cjson_object; +} + +static cJSON* convert_python_object_to_cjson(PyObject* obj, VM* vm){ + if(obj == vm->None) return cJSON_CreateNull(); + Type obj_t = vm->_tp(obj); + switch(obj_t){ + case VM::tp_int.index: cJSON_CreateNumber(_CAST(i64, obj)); + case VM::tp_float.index: cJSON_CreateNumber(_CAST(f64, obj)); + case VM::tp_bool.index: cJSON_CreateBool(obj == vm->True); + case VM::tp_str.index: cJSON_CreateString(_CAST(Str&, obj).c_str()); + case VM::tp_dict.index: return covert_dict_to_cjson(_CAST(Dict&, obj), vm); + case VM::tp_list.index: return convert_list_to_cjson(_CAST(List&, obj), vm); + case VM::tp_tuple.index: return convert_list_to_cjson(_CAST(Tuple&, obj), vm); + default: break; + } + vm->TypeError(_S("unrecognized type ", _type_name(vm, obj_t).escape())); + PK_UNREACHABLE() +} + + +static PyObject* convert_cjson_to_list(const cJSON * const item, VM* vm){ + List output; + cJSON *element = item->child; + while(element != NULL){ + output.push_back(convert_cjson_to_python_object(element, vm)); + element = element->next; + } + return VAR(std::move(output)); +} + +static PyObject* convert_cjson_to_dict(const cJSON* const item, VM* vm){ + Dict output(vm); + cJSON *child = item->child; + while(child != NULL){ + const char* key = child->string; + const cJSON *child_value = cJSON_GetObjectItemCaseSensitive(item, key); + output.set(VAR(key), convert_cjson_to_python_object(child_value, vm)); + child = child->next; + } + return VAR(std::move(output)); +} + +static PyObject* convert_cjson_to_python_object(const cJSON * const item, VM* vm) +{ + if (cJSON_IsString(item)) + { + return VAR(Str(item->valuestring)); + } + else if (cJSON_IsNumber(item)){ + if(item->valuedouble != item->valueint){ + return VAR(item->valuedouble); + } + return VAR(item->valueint); + } + else if (cJSON_IsBool(item)){ + return item->valueint!=0 ? vm->True : vm->False; + } + else if (cJSON_IsNull(item)){ + return vm->None; + } + else if (cJSON_IsArray(item)){ + return convert_cjson_to_list(item, vm); + } + else if (cJSON_IsObject(item)){ + return convert_cjson_to_dict(item, vm); + } + return vm->None; +} + +void add_module_cjson(VM* vm){ + PyObject* mod = vm->new_module("cjson"); + + PK_LOCAL_STATIC cJSON_Hooks hooks; + hooks.malloc_fn = pool64_alloc; + hooks.free_fn = pool64_dealloc; + cJSON_InitHooks(&hooks); + + vm->bind_func<1>(mod, "loads", [](VM* vm, ArgsView args){ + std::string_view sv; + if(is_type(args[0], vm->tp_bytes)){ + sv = PK_OBJ_GET(Bytes, args[0]).sv(); + }else{ + sv = CAST(Str&, args[0]).sv(); + } + cJSON *json = cJSON_ParseWithLength(sv.data(), sv.size()); + if(json == NULL){ + const char* start = cJSON_GetErrorPtr(); + const char* end = start; + while(*end != '\0' && *end != '\n') end++; + vm->IOError(_S("cjson: ", std::string_view(start, end-start))); + } + PyObject* output = convert_cjson_to_python_object(json, vm); + cJSON_Delete(json); + return output; + }); + + vm->bind_func<1>(mod, "dumps", [](VM* vm, ArgsView args) { + return vm->py_json(args[0]); + // cJSON* cjson = convert_python_object_to_cjson(args[0], vm); + // char* str = cJSON_Print(cjson); + // cJSON_Delete(cjson); + // PyObject* ret = VAR((const char*)str); + // hooks.free_fn(str); + // return ret; + }); +} + +} // namespace pkpy diff --git a/dependencies/pocketpy/3rd/ios.toolchain.cmake b/dependencies/pocketpy/3rd/ios.toolchain.cmake new file mode 100644 index 0000000..3790141 --- /dev/null +++ b/dependencies/pocketpy/3rd/ios.toolchain.cmake @@ -0,0 +1,1122 @@ +# This file is part of the ios-cmake project. It was retrieved from +# https://github.com/leetal/ios-cmake.git, which is a fork of +# https://github.com/gerstrong/ios-cmake.git, which is a fork of +# https://github.com/cristeab/ios-cmake.git, which is a fork of +# https://code.google.com/p/ios-cmake/. Which in turn is based off of +# the Platform/Darwin.cmake and Platform/UnixPaths.cmake files which +# are included with CMake 2.8.4 +# +# The ios-cmake project is licensed under the new BSD license. +# +# Copyright (c) 2014, Bogdan Cristea and LTE Engineering Software, +# Kitware, Inc., Insight Software Consortium. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# This file is based on the Platform/Darwin.cmake and +# Platform/UnixPaths.cmake files which are included with CMake 2.8.4 +# It has been altered for iOS development. +# +# Updated by Alex Stewart (alexs.mac@gmail.com) +# +# ***************************************************************************** +# Now maintained by Alexander Widerberg (widerbergaren [at] gmail.com) +# under the BSD-3-Clause license +# https://github.com/leetal/ios-cmake +# ***************************************************************************** +# +# INFORMATION / HELP +# +############################################################################### +# OPTIONS # +############################################################################### +# +# PLATFORM: (default "OS64") +# OS = Build for iPhoneOS. +# OS64 = Build for arm64 iphoneOS. +# OS64COMBINED = Build for arm64 x86_64 iphoneOS + iphoneOS Simulator. Combined into FAT STATIC lib (only supported on 3.14+ of CMake with "-G Xcode" argument in combination with the "cmake --install" CMake build step) +# SIMULATOR = Build for x86 i386 iphoneOS Simulator. +# SIMULATOR64 = Build for x86_64 iphoneOS Simulator. +# SIMULATORARM64 = Build for arm64 iphoneOS Simulator. +# SIMULATOR64COMBINED = Build for arm64 x86_64 iphoneOS Simulator. Combined into FAT STATIC lib (supported on 3.14+ of CMakewith "-G Xcode" argument ONLY) +# TVOS = Build for arm64 tvOS. +# TVOSCOMBINED = Build for arm64 x86_64 tvOS + tvOS Simulator. Combined into FAT STATIC lib (only supported on 3.14+ of CMake with "-G Xcode" argument in combination with the "cmake --install" CMake build step) +# SIMULATOR_TVOS = Build for x86_64 tvOS Simulator. +# SIMULATORARM64_TVOS = Build for arm64 tvOS Simulator. +# WATCHOS = Build for armv7k arm64_32 for watchOS. +# WATCHOSCOMBINED = Build for armv7k arm64_32 x86_64 watchOS + watchOS Simulator. Combined into FAT STATIC lib (only supported on 3.14+ of CMake with "-G Xcode" argument in combination with the "cmake --install" CMake build step) +# SIMULATOR_WATCHOS = Build for x86_64 for watchOS Simulator. +# SIMULATORARM64_WATCHOS = Build for arm64 for watchOS Simulator. +# MAC = Build for x86_64 macOS. +# MAC_ARM64 = Build for Apple Silicon macOS. +# MAC_UNIVERSAL = Combined build for x86_64 and Apple Silicon on macOS. +# MAC_CATALYST = Build for x86_64 macOS with Catalyst support (iOS toolchain on macOS). +# Note: The build argument "MACOSX_DEPLOYMENT_TARGET" can be used to control min-version of macOS +# MAC_CATALYST_ARM64 = Build for Apple Silicon macOS with Catalyst support (iOS toolchain on macOS). +# Note: The build argument "MACOSX_DEPLOYMENT_TARGET" can be used to control min-version of macOS +# +# CMAKE_OSX_SYSROOT: Path to the SDK to use. By default this is +# automatically determined from PLATFORM and xcodebuild, but +# can also be manually specified (although this should not be required). +# +# CMAKE_DEVELOPER_ROOT: Path to the Developer directory for the platform +# being compiled for. By default, this is automatically determined from +# CMAKE_OSX_SYSROOT, but can also be manually specified (although this should +# not be required). +# +# DEPLOYMENT_TARGET: Minimum SDK version to target. Default 6.0 on watchOS, 13.0 on tvOS+iOS/iPadOS, 11.0 on macOS, 1.0 on visionOS +# +# NAMED_LANGUAGE_SUPPORT: +# ON (default) = Will require "enable_language(OBJC) and/or enable_language(OBJCXX)" for full OBJC|OBJCXX support +# OFF = Will embed the OBJC and OBJCXX flags into the CMAKE_C_FLAGS and CMAKE_CXX_FLAGS (legacy behavior, CMake version < 3.16) +# +# ENABLE_BITCODE: (ON|OFF) Enables or disables bitcode support. Default OFF +# +# ENABLE_ARC: (ON|OFF) Enables or disables ARC support. Default ON (ARC enabled by default) +# +# ENABLE_VISIBILITY: (ON|OFF) Enables or disables symbol visibility support. Default OFF (visibility hidden by default) +# +# ENABLE_STRICT_TRY_COMPILE: (ON|OFF) Enables or disables strict try_compile() on all Check* directives (will run linker +# to actually check if linking is possible). Default OFF (will set CMAKE_TRY_COMPILE_TARGET_TYPE to STATIC_LIBRARY) +# +# ARCHS: (armv7 armv7s armv7k arm64 arm64_32 i386 x86_64) If specified, will override the default architectures for the given PLATFORM +# OS = armv7 armv7s arm64 (if applicable) +# OS64 = arm64 (if applicable) +# SIMULATOR = i386 +# SIMULATOR64 = x86_64 +# SIMULATORARM64 = arm64 +# TVOS = arm64 +# SIMULATOR_TVOS = x86_64 (i386 has since long been deprecated) +# SIMULATORARM64_TVOS = arm64 +# WATCHOS = armv7k arm64_32 (if applicable) +# SIMULATOR_WATCHOS = x86_64 (i386 has since long been deprecated) +# SIMULATORARM64_WATCHOS = arm64 +# MAC = x86_64 +# MAC_ARM64 = arm64 +# MAC_UNIVERSAL = x86_64 arm64 +# MAC_CATALYST = x86_64 +# MAC_CATALYST_ARM64 = arm64 +# +# NOTE: When manually specifying ARCHS, put a semi-colon between the entries. E.g., -DARCHS="armv7;arm64" +# +############################################################################### +# END OPTIONS # +############################################################################### +# +# This toolchain defines the following properties (available via get_property()) for use externally: +# +# PLATFORM: The currently targeted platform. +# XCODE_VERSION: Version number (not including Build version) of Xcode detected. +# SDK_VERSION: Version of SDK being used. +# OSX_ARCHITECTURES: Architectures being compiled for (generated from PLATFORM). +# APPLE_TARGET_TRIPLE: Used by autoconf build systems. NOTE: If "ARCHS" is overridden, this will *NOT* be set! +# +# This toolchain defines the following macros for use externally: +# +# set_xcode_property (TARGET XCODE_PROPERTY XCODE_VALUE XCODE_VARIANT) +# A convenience macro for setting xcode specific properties on targets. +# Available variants are: All, Release, RelWithDebInfo, Debug, MinSizeRel +# example: set_xcode_property (myioslib IPHONEOS_DEPLOYMENT_TARGET "3.1" "all"). +# +# find_host_package (PROGRAM ARGS) +# A macro used to find executable programs on the host system, not within the +# environment. Thanks to the android-cmake project for providing the +# command. +# + +cmake_minimum_required(VERSION 3.8.0) + +# CMake invokes the toolchain file twice during the first build, but only once during subsequent rebuilds. +if(DEFINED ENV{_IOS_TOOLCHAIN_HAS_RUN}) + return() +endif() +set(ENV{_IOS_TOOLCHAIN_HAS_RUN} true) + +# List of supported platform values +list(APPEND _supported_platforms + "OS" "OS64" "OS64COMBINED" "SIMULATOR" "SIMULATOR64" "SIMULATORARM64" "SIMULATOR64COMBINED" + "TVOS" "TVOSCOMBINED" "SIMULATOR_TVOS" "SIMULATORARM64_TVOS" + "WATCHOS" "WATCHOSCOMBINED" "SIMULATOR_WATCHOS" "SIMULATORARM64_WATCHOS" + "MAC" "MAC_ARM64" "MAC_UNIVERSAL" + "VISIONOS" "SIMULATOR_VISIONOS" "SIMULATOR64_VISIONOS" + "MAC_CATALYST" "MAC_CATALYST_ARM64") + +# Cache what generator is used +set(USED_CMAKE_GENERATOR "${CMAKE_GENERATOR}") + +# Check if using a CMake version capable of building combined FAT builds (simulator and target slices combined in one static lib) +if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.14") + set(MODERN_CMAKE YES) +endif() + +# Get the Xcode version being used. +# Problem: CMake runs toolchain files multiple times, but can't read cache variables on some runs. +# Workaround: On the first run (in which cache variables are always accessible), set an intermediary environment variable. +# +# NOTE: This pattern is used in many places in this toolchain to speed up checks of all sorts +if(DEFINED XCODE_VERSION_INT) + # Environment variables are always preserved. + set(ENV{_XCODE_VERSION_INT} "${XCODE_VERSION_INT}") +elseif(DEFINED ENV{_XCODE_VERSION_INT}) + set(XCODE_VERSION_INT "$ENV{_XCODE_VERSION_INT}") +elseif(NOT DEFINED XCODE_VERSION_INT) + find_program(XCODEBUILD_EXECUTABLE xcodebuild) + if(NOT XCODEBUILD_EXECUTABLE) + message(FATAL_ERROR "xcodebuild not found. Please install either the standalone commandline tools or Xcode.") + endif() + execute_process(COMMAND ${XCODEBUILD_EXECUTABLE} -version + OUTPUT_VARIABLE XCODE_VERSION_INT + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REGEX MATCH "Xcode [0-9\\.]+" XCODE_VERSION_INT "${XCODE_VERSION_INT}") + string(REGEX REPLACE "Xcode ([0-9\\.]+)" "\\1" XCODE_VERSION_INT "${XCODE_VERSION_INT}") + set(XCODE_VERSION_INT "${XCODE_VERSION_INT}" CACHE INTERNAL "") +endif() + +# Assuming that xcode 12.0 is installed you most probably have ios sdk 14.0 or later installed (tested on Big Sur) +# if you don't set a deployment target it will be set the way you only get 64-bit builds +#if(NOT DEFINED DEPLOYMENT_TARGET AND XCODE_VERSION_INT VERSION_GREATER 12.0) +# Temporarily fix the arm64 issues in CMake install-combined by excluding arm64 for simulator builds (needed for Apple Silicon...) +# set(CMAKE_XCODE_ATTRIBUTE_EXCLUDED_ARCHS[sdk=iphonesimulator*] "arm64") +#endif() + +# Check if the platform variable is set +if(DEFINED PLATFORM) + # Environment variables are always preserved. + set(ENV{_PLATFORM} "${PLATFORM}") +elseif(DEFINED ENV{_PLATFORM}) + set(PLATFORM "$ENV{_PLATFORM}") +elseif(NOT DEFINED PLATFORM) + message(FATAL_ERROR "PLATFORM argument not set. Bailing configure since I don't know what target you want to build for!") +endif () + +if(PLATFORM MATCHES ".*COMBINED" AND NOT CMAKE_GENERATOR MATCHES "Xcode") + message(FATAL_ERROR "The combined builds support requires Xcode to be used as a generator via '-G Xcode' command-line argument in CMake") +endif() + +# Safeguard that the platform value is set and is one of the supported values +list(FIND _supported_platforms ${PLATFORM} contains_PLATFORM) +if("${contains_PLATFORM}" EQUAL "-1") + string(REPLACE ";" "\n * " _supported_platforms_formatted "${_supported_platforms}") + message(FATAL_ERROR " Invalid PLATFORM specified! Current value: ${PLATFORM}.\n" + " Supported PLATFORM values: \n * ${_supported_platforms_formatted}") +endif() + +# Check if Apple Silicon is supported +if(PLATFORM MATCHES "^(MAC_ARM64)$|^(MAC_CATALYST_ARM64)$|^(MAC_UNIVERSAL)$" AND ${CMAKE_VERSION} VERSION_LESS "3.19.5") + message(FATAL_ERROR "Apple Silicon builds requires a minimum of CMake 3.19.5") +endif() + +# Touch the toolchain variable to suppress the "unused variable" warning. +# This happens if CMake is invoked with the same command line the second time. +if(CMAKE_TOOLCHAIN_FILE) +endif() + +# Fix for PThread library not in path +set(CMAKE_THREAD_LIBS_INIT "-lpthread") +set(CMAKE_HAVE_THREADS_LIBRARY 1) +set(CMAKE_USE_WIN32_THREADS_INIT 0) +set(CMAKE_USE_PTHREADS_INIT 1) + +# Specify named language support defaults. +if(NOT DEFINED NAMED_LANGUAGE_SUPPORT AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16") + set(NAMED_LANGUAGE_SUPPORT ON) + message(STATUS "[DEFAULTS] Using explicit named language support! E.g., enable_language(CXX) is needed in the project files.") +elseif(NOT DEFINED NAMED_LANGUAGE_SUPPORT AND ${CMAKE_VERSION} VERSION_LESS "3.16") + set(NAMED_LANGUAGE_SUPPORT OFF) + message(STATUS "[DEFAULTS] Disabling explicit named language support. Falling back to legacy behavior.") +elseif(DEFINED NAMED_LANGUAGE_SUPPORT AND ${CMAKE_VERSION} VERSION_LESS "3.16") + message(FATAL_ERROR "CMake named language support for OBJC and OBJCXX was added in CMake 3.16.") +endif() +set(NAMED_LANGUAGE_SUPPORT_INT ${NAMED_LANGUAGE_SUPPORT} CACHE BOOL + "Whether or not to enable explicit named language support" FORCE) + +# Specify the minimum version of the deployment target. +if(NOT DEFINED DEPLOYMENT_TARGET) + if (PLATFORM MATCHES "WATCHOS") + # Unless specified, SDK version 4.0 is used by default as minimum target version (watchOS). + set(DEPLOYMENT_TARGET "6.0") + elseif(PLATFORM STREQUAL "MAC") + # Unless specified, SDK version 10.13 (High Sierra) is used by default as the minimum target version (macos). + set(DEPLOYMENT_TARGET "11.0") + elseif(PLATFORM STREQUAL "VISIONOS" OR PLATFORM STREQUAL "SIMULATOR_VISIONOS" OR PLATFORM STREQUAL "SIMULATOR64_VISIONOS") + # Unless specified, SDK version 1.0 is used by default as minimum target version (visionOS). + set(DEPLOYMENT_TARGET "1.0") + elseif(PLATFORM STREQUAL "MAC_ARM64") + # Unless specified, SDK version 11.0 (Big Sur) is used by default as the minimum target version (macOS on arm). + set(DEPLOYMENT_TARGET "11.0") + elseif(PLATFORM STREQUAL "MAC_UNIVERSAL") + # Unless specified, SDK version 11.0 (Big Sur) is used by default as minimum target version for universal builds. + set(DEPLOYMENT_TARGET "11.0") + elseif(PLATFORM STREQUAL "MAC_CATALYST" OR PLATFORM STREQUAL "MAC_CATALYST_ARM64") + # Unless specified, SDK version 13.0 is used by default as the minimum target version (mac catalyst minimum requirement). + set(DEPLOYMENT_TARGET "13.1") + else() + # Unless specified, SDK version 11.0 is used by default as the minimum target version (iOS, tvOS). + set(DEPLOYMENT_TARGET "13.0") + endif() + message(STATUS "[DEFAULTS] Using the default min-version since DEPLOYMENT_TARGET not provided!") +elseif(DEFINED DEPLOYMENT_TARGET AND PLATFORM MATCHES "^MAC_CATALYST" AND ${DEPLOYMENT_TARGET} VERSION_LESS "13.1") + message(FATAL_ERROR "Mac Catalyst builds requires a minimum deployment target of 13.1!") +endif() + +# Store the DEPLOYMENT_TARGET in the cache +set(DEPLOYMENT_TARGET "${DEPLOYMENT_TARGET}" CACHE INTERNAL "") + +# Handle the case where we are targeting iOS and a version above 10.3.4 (32-bit support dropped officially) +if(PLATFORM STREQUAL "OS" AND DEPLOYMENT_TARGET VERSION_GREATER_EQUAL 10.3.4) + set(PLATFORM "OS64") + message(STATUS "Targeting minimum SDK version ${DEPLOYMENT_TARGET}. Dropping 32-bit support.") +elseif(PLATFORM STREQUAL "SIMULATOR" AND DEPLOYMENT_TARGET VERSION_GREATER_EQUAL 10.3.4) + set(PLATFORM "SIMULATOR64") + message(STATUS "Targeting minimum SDK version ${DEPLOYMENT_TARGET}. Dropping 32-bit support.") +endif() + +set(PLATFORM_INT "${PLATFORM}") + +if(DEFINED ARCHS) + string(REPLACE ";" "-" ARCHS_SPLIT "${ARCHS}") +endif() + +# Determine the platform name and architectures for use in xcodebuild commands +# from the specified PLATFORM_INT name. +if(PLATFORM_INT STREQUAL "OS") + set(SDK_NAME iphoneos) + if(NOT ARCHS) + set(ARCHS armv7 armv7s arm64) + set(APPLE_TARGET_TRIPLE_INT arm-apple-ios${DEPLOYMENT_TARGET}) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}) + endif() +elseif(PLATFORM_INT STREQUAL "OS64") + set(SDK_NAME iphoneos) + if(NOT ARCHS) + if (XCODE_VERSION_INT VERSION_GREATER 10.0) + set(ARCHS arm64) # FIXME: Add arm64e when Apple has fixed the integration issues with it, libarclite_iphoneos.a is currently missing bitcode markers for example + else() + set(ARCHS arm64) + endif() + set(APPLE_TARGET_TRIPLE_INT arm64-apple-ios${DEPLOYMENT_TARGET}) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}) + endif() +elseif(PLATFORM_INT STREQUAL "OS64COMBINED") + set(SDK_NAME iphoneos) + if(MODERN_CMAKE) + if(NOT ARCHS) + if (XCODE_VERSION_INT VERSION_GREATER 12.0) + set(ARCHS arm64 x86_64) + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64 arm64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64 arm64") + else() + set(ARCHS arm64 x86_64) + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64") + endif() + set(APPLE_TARGET_TRIPLE_INT arm64-x86_64-apple-ios${DEPLOYMENT_TARGET}) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}) + endif() + else() + message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the OS64COMBINED setting work") + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATOR64COMBINED") + set(SDK_NAME iphonesimulator) + if(MODERN_CMAKE) + if(NOT ARCHS) + if (XCODE_VERSION_INT VERSION_GREATER 12.0) + set(ARCHS arm64 x86_64) # FIXME: Add arm64e when Apple have fixed the integration issues with it, libarclite_iphoneos.a is currently missing bitcode markers for example + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64 arm64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64 arm64") + else() + set(ARCHS arm64 x86_64) + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64") + endif() + set(APPLE_TARGET_TRIPLE_INT aarch64-x86_64-apple-ios${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-simulator) + endif() + else() + message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the SIMULATOR64COMBINED setting work") + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATOR") + set(SDK_NAME iphonesimulator) + if(NOT ARCHS) + set(ARCHS i386) + set(APPLE_TARGET_TRIPLE_INT i386-apple-ios${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-simulator) + endif() + message(DEPRECATION "SIMULATOR IS DEPRECATED. Consider using SIMULATOR64 instead.") +elseif(PLATFORM_INT STREQUAL "SIMULATOR64") + set(SDK_NAME iphonesimulator) + if(NOT ARCHS) + set(ARCHS x86_64) + set(APPLE_TARGET_TRIPLE_INT x86_64-apple-ios${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-simulator) + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATORARM64") + set(SDK_NAME iphonesimulator) + if(NOT ARCHS) + set(ARCHS arm64) + set(APPLE_TARGET_TRIPLE_INT arm64-apple-ios${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-simulator) + endif() +elseif(PLATFORM_INT STREQUAL "TVOS") + set(SDK_NAME appletvos) + if(NOT ARCHS) + set(ARCHS arm64) + set(APPLE_TARGET_TRIPLE_INT arm64-apple-tvos${DEPLOYMENT_TARGET}) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-tvos${DEPLOYMENT_TARGET}) + endif() +elseif (PLATFORM_INT STREQUAL "TVOSCOMBINED") + set(SDK_NAME appletvos) + if(MODERN_CMAKE) + if(NOT ARCHS) + set(ARCHS arm64 x86_64) + set(APPLE_TARGET_TRIPLE_INT arm64-x86_64-apple-tvos${DEPLOYMENT_TARGET}) + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=appletvos*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=appletvsimulator*] "x86_64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=appletvos*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=appletvsimulator*] "x86_64") + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-tvos${DEPLOYMENT_TARGET}) + endif() + else() + message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the TVOSCOMBINED setting work") + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATOR_TVOS") + set(SDK_NAME appletvsimulator) + if(NOT ARCHS) + set(ARCHS x86_64) + set(APPLE_TARGET_TRIPLE_INT x86_64-apple-tvos${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-tvos${DEPLOYMENT_TARGET}-simulator) + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATORARM64_TVOS") + set(SDK_NAME appletvsimulator) + if(NOT ARCHS) + set(ARCHS arm64) + set(APPLE_TARGET_TRIPLE_INT arm64-apple-tvos${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-tvos${DEPLOYMENT_TARGET}-simulator) + endif() +elseif(PLATFORM_INT STREQUAL "WATCHOS") + set(SDK_NAME watchos) + if(NOT ARCHS) + if (XCODE_VERSION_INT VERSION_GREATER 10.0) + set(ARCHS armv7k arm64_32) + set(APPLE_TARGET_TRIPLE_INT arm64_32-apple-watchos${DEPLOYMENT_TARGET}) + else() + set(ARCHS armv7k) + set(APPLE_TARGET_TRIPLE_INT arm-apple-watchos${DEPLOYMENT_TARGET}) + endif() + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-watchos${DEPLOYMENT_TARGET}) + endif() +elseif(PLATFORM_INT STREQUAL "WATCHOSCOMBINED") + set(SDK_NAME watchos) + if(MODERN_CMAKE) + if(NOT ARCHS) + if (XCODE_VERSION_INT VERSION_GREATER 10.0) + set(ARCHS armv7k arm64_32 i386) + set(APPLE_TARGET_TRIPLE_INT arm64_32-i386-apple-watchos${DEPLOYMENT_TARGET}) + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=watchos*] "armv7k arm64_32") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=watchsimulator*] "i386") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=watchos*] "armv7k arm64_32") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=watchsimulator*] "i386") + else() + set(ARCHS armv7k i386) + set(APPLE_TARGET_TRIPLE_INT arm-i386-apple-watchos${DEPLOYMENT_TARGET}) + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=watchos*] "armv7k") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=watchsimulator*] "i386") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=watchos*] "armv7k") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=watchsimulator*] "i386") + endif() + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-watchos${DEPLOYMENT_TARGET}) + endif() + else() + message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the WATCHOSCOMBINED setting work") + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATOR_WATCHOS") + set(SDK_NAME watchsimulator) + if(NOT ARCHS) + set(ARCHS i386) + set(APPLE_TARGET_TRIPLE_INT i386-apple-watchos${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-watchos${DEPLOYMENT_TARGET}-simulator) + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATORARM64_WATCHOS") + set(SDK_NAME watchsimulator) + if(NOT ARCHS) + set(ARCHS arm64) + set(APPLE_TARGET_TRIPLE_INT arm64-apple-watchos${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-watchos${DEPLOYMENT_TARGET}-simulator) + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATOR64_VISIONOS") + set(SDK_NAME xrsimulator) + if(NOT ARCHS) + set(ARCHS x86_64) + set(APPLE_TARGET_TRIPLE_INT x86_64-apple-xros${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-xros${DEPLOYMENT_TARGET}-simulator) + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATOR_VISIONOS") + set(SDK_NAME xrsimulator) + if(NOT ARCHS) + set(ARCHS arm64) + set(APPLE_TARGET_TRIPLE_INT arm64-apple-xros${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-xros${DEPLOYMENT_TARGET}-simulator) + endif() +elseif(PLATFORM_INT STREQUAL "VISIONOS") + set(SDK_NAME xros) + if(NOT ARCHS) + set(ARCHS arm64) + set(APPLE_TARGET_TRIPLE_INT arm64-apple-xros${DEPLOYMENT_TARGET}) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-xros${DEPLOYMENT_TARGET}) + endif() +elseif(PLATFORM_INT STREQUAL "MAC" OR PLATFORM_INT STREQUAL "MAC_CATALYST") + set(SDK_NAME macosx) + if(NOT ARCHS) + set(ARCHS x86_64) + endif() + string(REPLACE ";" "-" ARCHS_SPLIT "${ARCHS}") + if(PLATFORM_INT STREQUAL "MAC") + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-macosx${DEPLOYMENT_TARGET}) + elseif(PLATFORM_INT STREQUAL "MAC_CATALYST") + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-macabi) + endif() +elseif(PLATFORM_INT MATCHES "^(MAC_ARM64)$|^(MAC_CATALYST_ARM64)$") + set(SDK_NAME macosx) + if(NOT ARCHS) + set(ARCHS arm64) + endif() + string(REPLACE ";" "-" ARCHS_SPLIT "${ARCHS}") + if(PLATFORM_INT STREQUAL "MAC_ARM64") + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-macosx${DEPLOYMENT_TARGET}) + elseif(PLATFORM_INT STREQUAL "MAC_CATALYST_ARM64") + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-macabi) + endif() +elseif(PLATFORM_INT STREQUAL "MAC_UNIVERSAL") + set(SDK_NAME macosx) + if(NOT ARCHS) + set(ARCHS "x86_64;arm64") + endif() + string(REPLACE ";" "-" ARCHS_SPLIT "${ARCHS}") + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-macosx${DEPLOYMENT_TARGET}) +else() + message(FATAL_ERROR "Invalid PLATFORM: ${PLATFORM_INT}") +endif() + +string(REPLACE ";" " " ARCHS_SPACED "${ARCHS}") + +if(MODERN_CMAKE AND PLATFORM_INT MATCHES ".*COMBINED" AND NOT CMAKE_GENERATOR MATCHES "Xcode") + message(FATAL_ERROR "The COMBINED options only work with Xcode generator, -G Xcode") +endif() + +if(CMAKE_GENERATOR MATCHES "Xcode" AND PLATFORM_INT MATCHES "^MAC_CATALYST") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") + set(CMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS "macosx") + set(CMAKE_XCODE_ATTRIBUTE_SUPPORTS_MACCATALYST "YES") + if(NOT DEFINED MACOSX_DEPLOYMENT_TARGET) + set(CMAKE_XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET "10.15") + else() + set(CMAKE_XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET "${MACOSX_DEPLOYMENT_TARGET}") + endif() +elseif(CMAKE_GENERATOR MATCHES "Xcode") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") + set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "${DEPLOYMENT_TARGET}") + if(NOT PLATFORM_INT MATCHES ".*COMBINED") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=${SDK_NAME}*] "${ARCHS_SPACED}") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=${SDK_NAME}*] "${ARCHS_SPACED}") + endif() +endif() + +# If the user did not specify the SDK root to use, then query xcodebuild for it. +if(DEFINED CMAKE_OSX_SYSROOT_INT) + # Environment variables are always preserved. + set(ENV{_CMAKE_OSX_SYSROOT_INT} "${CMAKE_OSX_SYSROOT_INT}") +elseif(DEFINED ENV{_CMAKE_OSX_SYSROOT_INT}) + set(CMAKE_OSX_SYSROOT_INT "$ENV{_CMAKE_OSX_SYSROOT_INT}") +elseif(NOT DEFINED CMAKE_OSX_SYSROOT_INT) + execute_process(COMMAND ${XCODEBUILD_EXECUTABLE} -version -sdk ${SDK_NAME} Path + OUTPUT_VARIABLE CMAKE_OSX_SYSROOT_INT + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() + +if (NOT DEFINED CMAKE_OSX_SYSROOT_INT AND NOT DEFINED CMAKE_OSX_SYSROOT) + message(SEND_ERROR "Please make sure that Xcode is installed and that the toolchain" + "is pointing to the correct path. Please run:" + "sudo xcode-select -s /Applications/Xcode.app/Contents/Developer" + "and see if that fixes the problem for you.") + message(FATAL_ERROR "Invalid CMAKE_OSX_SYSROOT: ${CMAKE_OSX_SYSROOT} " + "does not exist.") +elseif(DEFINED CMAKE_OSX_SYSROOT_INT) + set(CMAKE_OSX_SYSROOT_INT "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "") + # Specify the location or name of the platform SDK to be used in CMAKE_OSX_SYSROOT. + set(CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "") +endif() + +# Use bitcode or not +if(NOT DEFINED ENABLE_BITCODE) + message(STATUS "[DEFAULTS] Disabling bitcode support by default. ENABLE_BITCODE not provided for override!") + set(ENABLE_BITCODE OFF) +endif() +set(ENABLE_BITCODE_INT ${ENABLE_BITCODE} CACHE BOOL + "Whether or not to enable bitcode" FORCE) +# Use ARC or not +if(NOT DEFINED ENABLE_ARC) + # Unless specified, enable ARC support by default + set(ENABLE_ARC ON) + message(STATUS "[DEFAULTS] Enabling ARC support by default. ENABLE_ARC not provided!") +endif() +set(ENABLE_ARC_INT ${ENABLE_ARC} CACHE BOOL "Whether or not to enable ARC" FORCE) +# Use hidden visibility or not +if(NOT DEFINED ENABLE_VISIBILITY) + # Unless specified, disable symbols visibility by default + set(ENABLE_VISIBILITY OFF) + message(STATUS "[DEFAULTS] Hiding symbols visibility by default. ENABLE_VISIBILITY not provided!") +endif() +set(ENABLE_VISIBILITY_INT ${ENABLE_VISIBILITY} CACHE BOOL "Whether or not to hide symbols from the dynamic linker (-fvisibility=hidden)" FORCE) +# Set strict compiler checks or not +if(NOT DEFINED ENABLE_STRICT_TRY_COMPILE) + # Unless specified, disable strict try_compile() + set(ENABLE_STRICT_TRY_COMPILE OFF) + message(STATUS "[DEFAULTS] Using NON-strict compiler checks by default. ENABLE_STRICT_TRY_COMPILE not provided!") +endif() +set(ENABLE_STRICT_TRY_COMPILE_INT ${ENABLE_STRICT_TRY_COMPILE} CACHE BOOL + "Whether or not to use strict compiler checks" FORCE) + +# Get the SDK version information. +if(DEFINED SDK_VERSION) + # Environment variables are always preserved. + set(ENV{_SDK_VERSION} "${SDK_VERSION}") +elseif(DEFINED ENV{_SDK_VERSION}) + set(SDK_VERSION "$ENV{_SDK_VERSION}") +elseif(NOT DEFINED SDK_VERSION) + execute_process(COMMAND ${XCODEBUILD_EXECUTABLE} -sdk ${CMAKE_OSX_SYSROOT_INT} -version SDKVersion + OUTPUT_VARIABLE SDK_VERSION + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() + +# Find the Developer root for the specific iOS platform being compiled for +# from CMAKE_OSX_SYSROOT. Should be ../../ from SDK specified in +# CMAKE_OSX_SYSROOT. There does not appear to be a direct way to obtain +# this information from xcrun or xcodebuild. +if (NOT DEFINED CMAKE_DEVELOPER_ROOT AND NOT CMAKE_GENERATOR MATCHES "Xcode") + get_filename_component(PLATFORM_SDK_DIR ${CMAKE_OSX_SYSROOT_INT} PATH) + get_filename_component(CMAKE_DEVELOPER_ROOT ${PLATFORM_SDK_DIR} PATH) + if (NOT EXISTS "${CMAKE_DEVELOPER_ROOT}") + message(FATAL_ERROR "Invalid CMAKE_DEVELOPER_ROOT: ${CMAKE_DEVELOPER_ROOT} does not exist.") + endif() +endif() + +# Find the C & C++ compilers for the specified SDK. +if(DEFINED CMAKE_C_COMPILER) + # Environment variables are always preserved. + set(ENV{_CMAKE_C_COMPILER} "${CMAKE_C_COMPILER}") +elseif(DEFINED ENV{_CMAKE_C_COMPILER}) + set(CMAKE_C_COMPILER "$ENV{_CMAKE_C_COMPILER}") + set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) +elseif(NOT DEFINED CMAKE_C_COMPILER) + execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT_INT} -find clang + OUTPUT_VARIABLE CMAKE_C_COMPILER + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) +endif() +if(DEFINED CMAKE_CXX_COMPILER) + # Environment variables are always preserved. + set(ENV{_CMAKE_CXX_COMPILER} "${CMAKE_CXX_COMPILER}") +elseif(DEFINED ENV{_CMAKE_CXX_COMPILER}) + set(CMAKE_CXX_COMPILER "$ENV{_CMAKE_CXX_COMPILER}") +elseif(NOT DEFINED CMAKE_CXX_COMPILER) + execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT_INT} -find clang++ + OUTPUT_VARIABLE CMAKE_CXX_COMPILER + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() +# Find (Apple's) libtool. +if(DEFINED BUILD_LIBTOOL) + # Environment variables are always preserved. + set(ENV{_BUILD_LIBTOOL} "${BUILD_LIBTOOL}") +elseif(DEFINED ENV{_BUILD_LIBTOOL}) + set(BUILD_LIBTOOL "$ENV{_BUILD_LIBTOOL}") +elseif(NOT DEFINED BUILD_LIBTOOL) + execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT_INT} -find libtool + OUTPUT_VARIABLE BUILD_LIBTOOL + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() +# Find the toolchain's provided install_name_tool if none is found on the host +if(DEFINED CMAKE_INSTALL_NAME_TOOL) + # Environment variables are always preserved. + set(ENV{_CMAKE_INSTALL_NAME_TOOL} "${CMAKE_INSTALL_NAME_TOOL}") +elseif(DEFINED ENV{_CMAKE_INSTALL_NAME_TOOL}) + set(CMAKE_INSTALL_NAME_TOOL "$ENV{_CMAKE_INSTALL_NAME_TOOL}") +elseif(NOT DEFINED CMAKE_INSTALL_NAME_TOOL) + execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT_INT} -find install_name_tool + OUTPUT_VARIABLE CMAKE_INSTALL_NAME_TOOL_INT + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + set(CMAKE_INSTALL_NAME_TOOL ${CMAKE_INSTALL_NAME_TOOL_INT} CACHE INTERNAL "") +endif() + +# Configure libtool to be used instead of ar + ranlib to build static libraries. +# This is required on Xcode 7+, but should also work on previous versions of +# Xcode. +get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES) +foreach(lang ${languages}) + set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "${BUILD_LIBTOOL} -static -o " CACHE INTERNAL "") +endforeach() + +# CMake 3.14+ support building for iOS, watchOS, and tvOS out of the box. +if(MODERN_CMAKE) + if(SDK_NAME MATCHES "iphone") + set(CMAKE_SYSTEM_NAME iOS) + elseif(SDK_NAME MATCHES "xros") + set(CMAKE_SYSTEM_NAME visionOS) + elseif(SDK_NAME MATCHES "xrsimulator") + set(CMAKE_SYSTEM_NAME visionOS) + elseif(SDK_NAME MATCHES "macosx") + set(CMAKE_SYSTEM_NAME Darwin) + elseif(SDK_NAME MATCHES "appletv") + set(CMAKE_SYSTEM_NAME tvOS) + elseif(SDK_NAME MATCHES "watch") + set(CMAKE_SYSTEM_NAME watchOS) + endif() + # Provide flags for a combined FAT library build on newer CMake versions + if(PLATFORM_INT MATCHES ".*COMBINED") + set(CMAKE_IOS_INSTALL_COMBINED YES) + if(CMAKE_GENERATOR MATCHES "Xcode") + # Set the SDKROOT Xcode properties to a Xcode-friendly value (the SDK_NAME, E.g, iphoneos) + # This way, Xcode will automatically switch between the simulator and device SDK when building. + set(CMAKE_XCODE_ATTRIBUTE_SDKROOT "${SDK_NAME}") + # Force to not build just one ARCH, but all! + set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO") + endif() + endif() +elseif(NOT DEFINED CMAKE_SYSTEM_NAME AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.10") + # Legacy code path prior to CMake 3.14 or fallback if no CMAKE_SYSTEM_NAME specified + set(CMAKE_SYSTEM_NAME iOS) +elseif(NOT DEFINED CMAKE_SYSTEM_NAME) + # Legacy code path before CMake 3.14 or fallback if no CMAKE_SYSTEM_NAME specified + set(CMAKE_SYSTEM_NAME Darwin) +endif() +# Standard settings. +set(CMAKE_SYSTEM_VERSION ${SDK_VERSION} CACHE INTERNAL "") +set(UNIX ON CACHE BOOL "") +set(APPLE ON CACHE BOOL "") +if(PLATFORM STREQUAL "MAC" OR PLATFORM STREQUAL "MAC_ARM64" OR PLATFORM STREQUAL "MAC_UNIVERSAL") + set(IOS OFF CACHE BOOL "") + set(MACOS ON CACHE BOOL "") +elseif(PLATFORM STREQUAL "MAC_CATALYST" OR PLATFORM STREQUAL "MAC_CATALYST_ARM64") + set(IOS ON CACHE BOOL "") + set(MACOS ON CACHE BOOL "") +else() + set(IOS ON CACHE BOOL "") +endif() +# Set the architectures for which to build. +set(CMAKE_OSX_ARCHITECTURES ${ARCHS} CACHE INTERNAL "") +# Change the type of target generated for try_compile() so it'll work when cross-compiling, weak compiler checks +if(NOT ENABLE_STRICT_TRY_COMPILE_INT) + set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) +endif() +# All iOS/Darwin specific settings - some may be redundant. +if (NOT DEFINED CMAKE_MACOSX_BUNDLE) + set(CMAKE_MACOSX_BUNDLE YES) +endif() +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") +set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") +set(CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES ".tbd" ".so") +set(CMAKE_SHARED_MODULE_PREFIX "lib") +set(CMAKE_SHARED_MODULE_SUFFIX ".so") +set(CMAKE_C_COMPILER_ABI ELF) +set(CMAKE_CXX_COMPILER_ABI ELF) +set(CMAKE_C_HAS_ISYSROOT 1) +set(CMAKE_CXX_HAS_ISYSROOT 1) +set(CMAKE_MODULE_EXISTS 1) +set(CMAKE_DL_LIBS "") +set(CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ") +set(CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ") +set(CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}") +set(CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}") + +if(ARCHS MATCHES "((^|;|, )(arm64|arm64e|x86_64))+") + set(CMAKE_C_SIZEOF_DATA_PTR 8) + set(CMAKE_CXX_SIZEOF_DATA_PTR 8) + if(ARCHS MATCHES "((^|;|, )(arm64|arm64e))+") + set(CMAKE_SYSTEM_PROCESSOR "aarch64") + else() + set(CMAKE_SYSTEM_PROCESSOR "x86_64") + endif() +else() + set(CMAKE_C_SIZEOF_DATA_PTR 4) + set(CMAKE_CXX_SIZEOF_DATA_PTR 4) + set(CMAKE_SYSTEM_PROCESSOR "arm") +endif() + +# Note that only Xcode 7+ supports the newer more specific: +# -m${SDK_NAME}-version-min flags, older versions of Xcode use: +# -m(ios/ios-simulator)-version-min instead. +if(${CMAKE_VERSION} VERSION_LESS "3.11") + if(PLATFORM_INT STREQUAL "OS" OR PLATFORM_INT STREQUAL "OS64") + if(XCODE_VERSION_INT VERSION_LESS 7.0) + set(SDK_NAME_VERSION_FLAGS + "-mios-version-min=${DEPLOYMENT_TARGET}") + else() + # Xcode 7.0+ uses flags we can build directly from SDK_NAME. + set(SDK_NAME_VERSION_FLAGS + "-m${SDK_NAME}-version-min=${DEPLOYMENT_TARGET}") + endif() + elseif(PLATFORM_INT STREQUAL "TVOS") + set(SDK_NAME_VERSION_FLAGS + "-mtvos-version-min=${DEPLOYMENT_TARGET}") + elseif(PLATFORM_INT STREQUAL "SIMULATOR_TVOS") + set(SDK_NAME_VERSION_FLAGS + "-mtvos-simulator-version-min=${DEPLOYMENT_TARGET}") +elseif(PLATFORM_INT STREQUAL "SIMULATORARM64_TVOS") + set(SDK_NAME_VERSION_FLAGS + "-mtvos-simulator-version-min=${DEPLOYMENT_TARGET}") + elseif(PLATFORM_INT STREQUAL "WATCHOS") + set(SDK_NAME_VERSION_FLAGS + "-mwatchos-version-min=${DEPLOYMENT_TARGET}") + elseif(PLATFORM_INT STREQUAL "SIMULATOR_WATCHOS") + set(SDK_NAME_VERSION_FLAGS + "-mwatchos-simulator-version-min=${DEPLOYMENT_TARGET}") + elseif(PLATFORM_INT STREQUAL "SIMULATORARM64_WATCHOS") + set(SDK_NAME_VERSION_FLAGS + "-mwatchos-simulator-version-min=${DEPLOYMENT_TARGET}") + elseif(PLATFORM_INT STREQUAL "MAC") + set(SDK_NAME_VERSION_FLAGS + "-mmacosx-version-min=${DEPLOYMENT_TARGET}") + else() + # SIMULATOR or SIMULATOR64 both use -mios-simulator-version-min. + set(SDK_NAME_VERSION_FLAGS + "-mios-simulator-version-min=${DEPLOYMENT_TARGET}") + endif() +elseif(NOT PLATFORM_INT MATCHES "^MAC_CATALYST") + # Newer versions of CMake sets the version min flags correctly, skip this for Mac Catalyst targets + set(CMAKE_OSX_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET} CACHE INTERNAL "Minimum OS X deployment version") +endif() + +if(DEFINED APPLE_TARGET_TRIPLE_INT) + set(APPLE_TARGET_TRIPLE ${APPLE_TARGET_TRIPLE_INT} CACHE INTERNAL "") + set(CMAKE_C_COMPILER_TARGET ${APPLE_TARGET_TRIPLE}) + set(CMAKE_CXX_COMPILER_TARGET ${APPLE_TARGET_TRIPLE}) + set(CMAKE_ASM_COMPILER_TARGET ${APPLE_TARGET_TRIPLE}) +endif() + +if(PLATFORM_INT MATCHES "^MAC_CATALYST") + set(C_TARGET_FLAGS "-isystem ${CMAKE_OSX_SYSROOT_INT}/System/iOSSupport/usr/include -iframework ${CMAKE_OSX_SYSROOT_INT}/System/iOSSupport/System/Library/Frameworks") +endif() + +if(ENABLE_BITCODE_INT) + set(BITCODE "-fembed-bitcode") + set(CMAKE_XCODE_ATTRIBUTE_BITCODE_GENERATION_MODE "bitcode") + set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES") +else() + set(BITCODE "") + set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO") +endif() + +if(ENABLE_ARC_INT) + set(FOBJC_ARC "-fobjc-arc") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC "YES") +else() + set(FOBJC_ARC "-fno-objc-arc") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC "NO") +endif() + +if(NAMED_LANGUAGE_SUPPORT_INT) + set(OBJC_VARS "-fobjc-abi-version=2 -DOBJC_OLD_DISPATCH_PROTOTYPES=0") + set(OBJC_LEGACY_VARS "") +else() + set(OBJC_VARS "") + set(OBJC_LEGACY_VARS "-fobjc-abi-version=2 -DOBJC_OLD_DISPATCH_PROTOTYPES=0") +endif() + +if(NOT ENABLE_VISIBILITY_INT) + foreach(lang ${languages}) + set(CMAKE_${lang}_VISIBILITY_PRESET "hidden" CACHE INTERNAL "") + endforeach() + set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN "YES") + set(VISIBILITY "-fvisibility=hidden -fvisibility-inlines-hidden") +else() + foreach(lang ${languages}) + set(CMAKE_${lang}_VISIBILITY_PRESET "default" CACHE INTERNAL "") + endforeach() + set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN "NO") + set(VISIBILITY "-fvisibility=default") +endif() + +if(DEFINED APPLE_TARGET_TRIPLE) + set(APPLE_TARGET_TRIPLE_FLAG "-target ${APPLE_TARGET_TRIPLE}") +endif() + +#Check if Xcode generator is used since that will handle these flags automagically +if(CMAKE_GENERATOR MATCHES "Xcode") + message(STATUS "Not setting any manual command-line buildflags, since Xcode is selected as the generator. Modifying the Xcode build-settings directly instead.") +else() + set(CMAKE_C_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${OBJC_LEGACY_VARS} ${BITCODE} ${VISIBILITY} ${CMAKE_C_FLAGS}" CACHE INTERNAL + "Flags used by the compiler during all C build types.") + set(CMAKE_C_FLAGS_DEBUG "-O0 -g ${CMAKE_C_FLAGS_DEBUG}") + set(CMAKE_C_FLAGS_MINSIZEREL "-DNDEBUG -Os ${CMAKE_C_FLAGS_MINSIZEREL}") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-DNDEBUG -O2 -g ${CMAKE_C_FLAGS_RELWITHDEBINFO}") + set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O3 ${CMAKE_C_FLAGS_RELEASE}") + set(CMAKE_CXX_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${OBJC_LEGACY_VARS} ${BITCODE} ${VISIBILITY} ${CMAKE_CXX_FLAGS}" CACHE INTERNAL + "Flags used by the compiler during all CXX build types.") + set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g ${CMAKE_CXX_FLAGS_DEBUG}") + set(CMAKE_CXX_FLAGS_MINSIZEREL "-DNDEBUG -Os ${CMAKE_CXX_FLAGS_MINSIZEREL}") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-DNDEBUG -O2 -g ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") + set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O3 ${CMAKE_CXX_FLAGS_RELEASE}") + if(NAMED_LANGUAGE_SUPPORT_INT) + set(CMAKE_OBJC_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${BITCODE} ${VISIBILITY} ${FOBJC_ARC} ${OBJC_VARS} ${CMAKE_OBJC_FLAGS}" CACHE INTERNAL + "Flags used by the compiler during all OBJC build types.") + set(CMAKE_OBJC_FLAGS_DEBUG "-O0 -g ${CMAKE_OBJC_FLAGS_DEBUG}") + set(CMAKE_OBJC_FLAGS_MINSIZEREL "-DNDEBUG -Os ${CMAKE_OBJC_FLAGS_MINSIZEREL}") + set(CMAKE_OBJC_FLAGS_RELWITHDEBINFO "-DNDEBUG -O2 -g ${CMAKE_OBJC_FLAGS_RELWITHDEBINFO}") + set(CMAKE_OBJC_FLAGS_RELEASE "-DNDEBUG -O3 ${CMAKE_OBJC_FLAGS_RELEASE}") + set(CMAKE_OBJCXX_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${BITCODE} ${VISIBILITY} ${FOBJC_ARC} ${OBJC_VARS} ${CMAKE_OBJCXX_FLAGS}" CACHE INTERNAL + "Flags used by the compiler during all OBJCXX build types.") + set(CMAKE_OBJCXX_FLAGS_DEBUG "-O0 -g ${CMAKE_OBJCXX_FLAGS_DEBUG}") + set(CMAKE_OBJCXX_FLAGS_MINSIZEREL "-DNDEBUG -Os ${CMAKE_OBJCXX_FLAGS_MINSIZEREL}") + set(CMAKE_OBJCXX_FLAGS_RELWITHDEBINFO "-DNDEBUG -O2 -g ${CMAKE_OBJCXX_FLAGS_RELWITHDEBINFO}") + set(CMAKE_OBJCXX_FLAGS_RELEASE "-DNDEBUG -O3 ${CMAKE_OBJCXX_FLAGS_RELEASE}") + endif() + set(CMAKE_C_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}" CACHE INTERNAL + "Flags used by the compiler for all C link types.") + set(CMAKE_CXX_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}" CACHE INTERNAL + "Flags used by the compiler for all CXX link types.") + if(NAMED_LANGUAGE_SUPPORT_INT) + set(CMAKE_OBJC_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_OBJC_LINK_FLAGS}" CACHE INTERNAL + "Flags used by the compiler for all OBJC link types.") + set(CMAKE_OBJCXX_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_OBJCXX_LINK_FLAGS}" CACHE INTERNAL + "Flags used by the compiler for all OBJCXX link types.") + endif() + set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp -arch ${CMAKE_OSX_ARCHITECTURES} ${APPLE_TARGET_TRIPLE_FLAG}" CACHE INTERNAL + "Flags used by the compiler for all ASM build types.") +endif() + +## Print status messages to inform of the current state +message(STATUS "Configuring ${SDK_NAME} build for platform: ${PLATFORM_INT}, architecture(s): ${ARCHS}") +message(STATUS "Using SDK: ${CMAKE_OSX_SYSROOT_INT}") +message(STATUS "Using C compiler: ${CMAKE_C_COMPILER}") +message(STATUS "Using CXX compiler: ${CMAKE_CXX_COMPILER}") +message(STATUS "Using libtool: ${BUILD_LIBTOOL}") +message(STATUS "Using install name tool: ${CMAKE_INSTALL_NAME_TOOL}") +if(DEFINED APPLE_TARGET_TRIPLE) + message(STATUS "Autoconf target triple: ${APPLE_TARGET_TRIPLE}") +endif() +message(STATUS "Using minimum deployment version: ${DEPLOYMENT_TARGET}" + " (SDK version: ${SDK_VERSION})") +if(MODERN_CMAKE) + message(STATUS "Merging integrated CMake 3.14+ iOS,tvOS,watchOS,macOS toolchain(s) with this toolchain!") + if(PLATFORM_INT MATCHES ".*COMBINED") + message(STATUS "Will combine built (static) artifacts into FAT lib...") + endif() +endif() +if(CMAKE_GENERATOR MATCHES "Xcode") + message(STATUS "Using Xcode version: ${XCODE_VERSION_INT}") +endif() +message(STATUS "CMake version: ${CMAKE_VERSION}") +if(DEFINED SDK_NAME_VERSION_FLAGS) + message(STATUS "Using version flags: ${SDK_NAME_VERSION_FLAGS}") +endif() +message(STATUS "Using a data_ptr size of: ${CMAKE_CXX_SIZEOF_DATA_PTR}") +if(ENABLE_BITCODE_INT) + message(STATUS "Bitcode: Enabled") +else() + message(STATUS "Bitcode: Disabled") +endif() + +if(ENABLE_ARC_INT) + message(STATUS "ARC: Enabled") +else() + message(STATUS "ARC: Disabled") +endif() + +if(ENABLE_VISIBILITY_INT) + message(STATUS "Hiding symbols: Disabled") +else() + message(STATUS "Hiding symbols: Enabled") +endif() + +# Set global properties +set_property(GLOBAL PROPERTY PLATFORM "${PLATFORM}") +set_property(GLOBAL PROPERTY APPLE_TARGET_TRIPLE "${APPLE_TARGET_TRIPLE_INT}") +set_property(GLOBAL PROPERTY SDK_VERSION "${SDK_VERSION}") +set_property(GLOBAL PROPERTY XCODE_VERSION "${XCODE_VERSION_INT}") +set_property(GLOBAL PROPERTY OSX_ARCHITECTURES "${CMAKE_OSX_ARCHITECTURES}") + +# Export configurable variables for the try_compile() command. +set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES + PLATFORM + XCODE_VERSION_INT + SDK_VERSION + NAMED_LANGUAGE_SUPPORT + DEPLOYMENT_TARGET + CMAKE_DEVELOPER_ROOT + CMAKE_OSX_SYSROOT_INT + ENABLE_BITCODE + ENABLE_ARC + CMAKE_ASM_COMPILER + CMAKE_C_COMPILER + CMAKE_C_COMPILER_TARGET + CMAKE_CXX_COMPILER + CMAKE_CXX_COMPILER_TARGET + BUILD_LIBTOOL + CMAKE_INSTALL_NAME_TOOL + CMAKE_C_FLAGS + CMAKE_C_DEBUG + CMAKE_C_MINSIZEREL + CMAKE_C_RELWITHDEBINFO + CMAKE_C_RELEASE + CMAKE_CXX_FLAGS + CMAKE_CXX_FLAGS_DEBUG + CMAKE_CXX_FLAGS_MINSIZEREL + CMAKE_CXX_FLAGS_RELWITHDEBINFO + CMAKE_CXX_FLAGS_RELEASE + CMAKE_C_LINK_FLAGS + CMAKE_CXX_LINK_FLAGS + CMAKE_ASM_FLAGS +) + +if(NAMED_LANGUAGE_SUPPORT_INT) + list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES + CMAKE_OBJC_FLAGS + CMAKE_OBJC_DEBUG + CMAKE_OBJC_MINSIZEREL + CMAKE_OBJC_RELWITHDEBINFO + CMAKE_OBJC_RELEASE + CMAKE_OBJCXX_FLAGS + CMAKE_OBJCXX_DEBUG + CMAKE_OBJCXX_MINSIZEREL + CMAKE_OBJCXX_RELWITHDEBINFO + CMAKE_OBJCXX_RELEASE + CMAKE_OBJC_LINK_FLAGS + CMAKE_OBJCXX_LINK_FLAGS + ) +endif() + +set(CMAKE_PLATFORM_HAS_INSTALLNAME 1) +set(CMAKE_SHARED_LINKER_FLAGS "-rpath @executable_path/Frameworks -rpath @loader_path/Frameworks") +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names") +set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -Wl,-headerpad_max_install_names") +set(CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,") +set(CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".tbd" ".dylib" ".so" ".a") +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name") + +# Set the find root to the SDK developer roots. +# Note: CMAKE_FIND_ROOT_PATH is only useful when cross-compiling. Thus, do not set on macOS builds. +if(NOT PLATFORM_INT MATCHES "^MAC.*$") + list(APPEND CMAKE_FIND_ROOT_PATH "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "") + set(CMAKE_IGNORE_PATH "/System/Library/Frameworks;/usr/local/lib;/opt/homebrew" CACHE INTERNAL "") +endif() + +# Default to searching for frameworks first. +IF(NOT DEFINED CMAKE_FIND_FRAMEWORK) + set(CMAKE_FIND_FRAMEWORK FIRST) +ENDIF(NOT DEFINED CMAKE_FIND_FRAMEWORK) + +# Set up the default search directories for frameworks. +if(PLATFORM_INT MATCHES "^MAC_CATALYST") + set(CMAKE_FRAMEWORK_PATH + ${CMAKE_DEVELOPER_ROOT}/Library/PrivateFrameworks + ${CMAKE_OSX_SYSROOT_INT}/System/Library/Frameworks + ${CMAKE_OSX_SYSROOT_INT}/System/iOSSupport/System/Library/Frameworks + ${CMAKE_FRAMEWORK_PATH} CACHE INTERNAL "") +else() + set(CMAKE_FRAMEWORK_PATH + ${CMAKE_DEVELOPER_ROOT}/Library/PrivateFrameworks + ${CMAKE_OSX_SYSROOT_INT}/System/Library/Frameworks + ${CMAKE_FRAMEWORK_PATH} CACHE INTERNAL "") +endif() + +# By default, search both the specified iOS SDK and the remainder of the host filesystem. +if(NOT CMAKE_FIND_ROOT_PATH_MODE_PROGRAM) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH CACHE INTERNAL "") +endif() +if(NOT CMAKE_FIND_ROOT_PATH_MODE_LIBRARY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH CACHE INTERNAL "") +endif() +if(NOT CMAKE_FIND_ROOT_PATH_MODE_INCLUDE) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH CACHE INTERNAL "") +endif() +if(NOT CMAKE_FIND_ROOT_PATH_MODE_PACKAGE) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH CACHE INTERNAL "") +endif() + +# +# Some helper-macros below to simplify and beautify the CMakeFile +# + +# This little macro lets you set any Xcode specific property. +macro(set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE XCODE_RELVERSION) + set(XCODE_RELVERSION_I "${XCODE_RELVERSION}") + if(XCODE_RELVERSION_I STREQUAL "All") + set_property(TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} "${XCODE_VALUE}") + else() + set_property(TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY}[variant=${XCODE_RELVERSION_I}] "${XCODE_VALUE}") + endif() +endmacro(set_xcode_property) + +# This macro lets you find executable programs on the host system. +macro(find_host_package) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE NEVER) + set(_TOOLCHAIN_IOS ${IOS}) + set(IOS OFF) + find_package(${ARGN}) + set(IOS ${_TOOLCHAIN_IOS}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH) +endmacro(find_host_package) diff --git a/dependencies/pocketpy/3rd/lua_bridge/include/lua_bridge.hpp b/dependencies/pocketpy/3rd/lua_bridge/include/lua_bridge.hpp new file mode 100644 index 0000000..e77aebf --- /dev/null +++ b/dependencies/pocketpy/3rd/lua_bridge/include/lua_bridge.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include "pocketpy.h" + +extern "C"{ + #include "lua.h" + #include "lualib.h" + #include "lauxlib.h" +} + +namespace pkpy{ + + void initialize_lua_bridge(VM* vm, lua_State* newL); + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/3rd/lua_bridge/src/lua_bridge.cpp b/dependencies/pocketpy/3rd/lua_bridge/src/lua_bridge.cpp new file mode 100644 index 0000000..96623b0 --- /dev/null +++ b/dependencies/pocketpy/3rd/lua_bridge/src/lua_bridge.cpp @@ -0,0 +1,353 @@ +#include "lua_bridge.hpp" + +namespace pkpy{ + +static lua_State* _L; +static void lua_push_from_python(VM*, PyObject*); +static PyObject* lua_popx_to_python(VM*); + +template +static void table_apply(VM* vm, T f){ + PK_ASSERT(lua_istable(_L, -1)); + lua_pushnil(_L); // [key] + while(lua_next(_L, -2) != 0){ // [key, val] + lua_pushvalue(_L, -2); // [key, val, key] + PyObject* key = lua_popx_to_python(vm); + PyObject* val = lua_popx_to_python(vm); + f(key, val); // [key] + } + lua_pop(_L, 1); // [] +} + +struct LuaExceptionGuard{ + int base_size; + LuaExceptionGuard(){ base_size = lua_gettop(_L); } + ~LuaExceptionGuard(){ + int delta = lua_gettop(_L) - base_size; + if(delta > 0) lua_pop(_L, delta); + } +}; + +#define LUA_PROTECTED(__B) { LuaExceptionGuard __guard; __B; } + +struct PyLuaObject{ + PK_ALWAYS_PASS_BY_POINTER(PyLuaObject) + int r; + PyLuaObject(){ r = luaL_ref(_L, LUA_REGISTRYINDEX); } + ~PyLuaObject(){ luaL_unref(_L, LUA_REGISTRYINDEX, r); } +}; + +struct PyLuaTable: PyLuaObject{ + PY_CLASS(PyLuaTable, lua, Table) + + static void _register(VM* vm, PyObject* mod, PyObject* type){ + Type t = PK_OBJ_GET(Type, type); + PyTypeInfo* ti = &vm->_all_types[t]; + ti->subclass_enabled = false; + ti->m__getattr__ = [](VM* vm, PyObject* obj, StrName name){ + const PyLuaTable& self = _CAST(PyLuaTable&, obj); + LUA_PROTECTED( + lua_rawgeti(_L, LUA_REGISTRYINDEX, self.r); + std::string_view name_sv = name.sv(); + lua_pushlstring(_L, name_sv.data(), name_sv.size()); + lua_gettable(_L, -2); + PyObject* ret = lua_popx_to_python(vm); + lua_pop(_L, 1); + return ret; + ) + }; + + ti->m__setattr__ = [](VM* vm, PyObject* obj, StrName name, PyObject* val){ + const PyLuaTable& self = _CAST(PyLuaTable&, obj); + LUA_PROTECTED( + lua_rawgeti(_L, LUA_REGISTRYINDEX, self.r); + std::string_view name_sv = name.sv(); + lua_pushlstring(_L, name_sv.data(), name_sv.size()); + lua_push_from_python(vm, val); + lua_settable(_L, -3); + lua_pop(_L, 1); + ) + }; + + ti->m__delattr__ = [](VM* vm, PyObject* obj, StrName name){ + const PyLuaTable& self = _CAST(PyLuaTable&, obj); + LUA_PROTECTED( + lua_rawgeti(_L, LUA_REGISTRYINDEX, self.r); + std::string_view name_sv = name.sv(); + lua_pushlstring(_L, name_sv.data(), name_sv.size()); + lua_pushnil(_L); + lua_settable(_L, -3); + lua_pop(_L, 1); + ) + return true; + }; + + vm->bind_constructor<1>(type, [](VM* vm, ArgsView args){ + lua_newtable(_L); // push an empty table onto the stack + PyObject* obj = vm->heap.gcnew(PK_OBJ_GET(Type, args[0])); + return obj; + }); + + vm->bind__len__(t, [](VM* vm, PyObject* obj){ + const PyLuaTable& self = _CAST(PyLuaTable&, obj); + lua_rawgeti(_L, LUA_REGISTRYINDEX, self.r); + i64 len = 0; + lua_pushnil(_L); + while(lua_next(_L, -2) != 0){ len += 1; lua_pop(_L, 1); } + lua_pop(_L, 1); + return len; + }); + + vm->bind__getitem__(t, [](VM* vm, PyObject* obj, PyObject* key){ + const PyLuaTable& self = _CAST(PyLuaTable&, obj); + LUA_PROTECTED( + lua_rawgeti(_L, LUA_REGISTRYINDEX, self.r); + lua_push_from_python(vm, key); + lua_gettable(_L, -2); + PyObject* ret = lua_popx_to_python(vm); + lua_pop(_L, 1); + return ret; + ) + }); + + vm->bind__setitem__(t, [](VM* vm, PyObject* obj, PyObject* key, PyObject* val){ + const PyLuaTable& self = _CAST(PyLuaTable&, obj); + LUA_PROTECTED( + lua_rawgeti(_L, LUA_REGISTRYINDEX, self.r); + lua_push_from_python(vm, key); + lua_push_from_python(vm, val); + lua_settable(_L, -3); + lua_pop(_L, 1); + ) + }); + + vm->bind__delitem__(t, [](VM* vm, PyObject* obj, PyObject* key){ + const PyLuaTable& self = _CAST(PyLuaTable&, obj); + LUA_PROTECTED( + lua_rawgeti(_L, LUA_REGISTRYINDEX, self.r); + lua_push_from_python(vm, key); + lua_pushnil(_L); + lua_settable(_L, -3); + lua_pop(_L, 1); + ) + }); + + vm->bind__contains__(t, [](VM* vm, PyObject* obj, PyObject* key){ + const PyLuaTable& self = _CAST(PyLuaTable&, obj); + LUA_PROTECTED( + lua_rawgeti(_L, LUA_REGISTRYINDEX, self.r); + lua_push_from_python(vm, key); + lua_gettable(_L, -2); + bool ret = lua_isnil(_L, -1) == 0; + lua_pop(_L, 2); + return ret ? vm->True : vm->False; + ) + }); + + vm->bind(type, "keys(self) -> list", [](VM* vm, ArgsView args){ + const PyLuaTable& self = _CAST(PyLuaTable&, args[0]); + LUA_PROTECTED( + lua_rawgeti(_L, LUA_REGISTRYINDEX, self.r); + List ret; + table_apply(vm, [&](PyObject* key, PyObject* val){ ret.push_back(key); }); + lua_pop(_L, 1); + return VAR(std::move(ret)); + ) + }); + + vm->bind(type, "values(self) -> list", [](VM* vm, ArgsView args){ + const PyLuaTable& self = _CAST(PyLuaTable&, args[0]); + LUA_PROTECTED( + lua_rawgeti(_L, LUA_REGISTRYINDEX, self.r); + List ret; + table_apply(vm, [&](PyObject* key, PyObject* val){ ret.push_back(val); }); + lua_pop(_L, 1); + return VAR(std::move(ret)); + ) + }); + + vm->bind(type, "items(self) -> list[tuple]", [](VM* vm, ArgsView args){ + const PyLuaTable& self = _CAST(PyLuaTable&, args[0]); + LUA_PROTECTED( + lua_rawgeti(_L, LUA_REGISTRYINDEX, self.r); + List ret; + table_apply(vm, [&](PyObject* key, PyObject* val){ + PyObject* item = VAR(Tuple(key, val)); + ret.push_back(item); + }); + lua_pop(_L, 1); + return VAR(std::move(ret)); + ) + }); + } +}; + +static PyObject* lua_popx_multi_to_python(VM* vm, int count){ + if(count == 0){ + return vm->None; + }else if(count == 1){ + return lua_popx_to_python(vm); + }else if(count > 1){ + Tuple ret(count); + for(int i=0; ibind_notimplemented_constructor(type); + vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false; + + vm->bind_method<-1>(type, "__call__", [](VM* vm, ArgsView args){ + if(args.size() < 1) vm->TypeError("__call__ takes at least 1 argument"); + const PyLuaFunction& self = _CAST(PyLuaFunction&, args[0]); + int base_size = lua_gettop(_L); + LUA_PROTECTED( + lua_rawgeti(_L, LUA_REGISTRYINDEX, self.r); + for(int i=1; iRuntimeError(error); + } + return lua_popx_multi_to_python(vm, lua_gettop(_L) - base_size); + ) + }); + } +}; + +void lua_push_from_python(VM* vm, PyObject* val){ + if(val == vm->None){ + lua_pushnil(_L); + return; + } + Type t = vm->_tp(val); + switch(t.index){ + case VM::tp_bool.index: + lua_pushboolean(_L, val == vm->True); + return; + case VM::tp_int.index: + lua_pushinteger(_L, _CAST(i64, val)); + return; + case VM::tp_float.index: + lua_pushnumber(_L, _CAST(f64, val)); + return; + case VM::tp_str.index: { + std::string_view sv = _CAST(Str, val).sv(); + lua_pushlstring(_L, sv.data(), sv.size()); + return; + } + case VM::tp_tuple.index: { + lua_newtable(_L); + int i = 1; + for(PyObject* obj: PK_OBJ_GET(Tuple, val)){ + lua_push_from_python(vm, obj); + lua_rawseti(_L, -2, i++); + } + return; + } + case VM::tp_list.index: { + lua_newtable(_L); + int i = 1; + for(PyObject* obj: PK_OBJ_GET(List, val)){ + lua_push_from_python(vm, obj); + lua_rawseti(_L, -2, i++); + } + return; + } + case VM::tp_dict.index: { + lua_newtable(_L); + PK_OBJ_GET(Dict, val).apply([&](PyObject* key, PyObject* val){ + lua_push_from_python(vm, key); + lua_push_from_python(vm, val); + lua_settable(_L, -3); + }); + return; + } + } + + if(is_type(val, PyLuaTable::_type(vm))){ + const PyLuaTable& table = _CAST(PyLuaTable&, val); + lua_rawgeti(_L, LUA_REGISTRYINDEX, table.r); + return; + } + + if(is_type(val, PyLuaFunction::_type(vm))){ + const PyLuaFunction& func = _CAST(PyLuaFunction&, val); + lua_rawgeti(_L, LUA_REGISTRYINDEX, func.r); + return; + } + vm->RuntimeError(_S("unsupported python type: ", _type_name(vm, t).escape())); +} + +PyObject* lua_popx_to_python(VM* vm) { + int type = lua_type(_L, -1); + switch (type) { + case LUA_TNIL: { + lua_pop(_L, 1); + return vm->None; + } + case LUA_TBOOLEAN: { + bool val = lua_toboolean(_L, -1); + lua_pop(_L, 1); + return val ? vm->True : vm->False; + } + case LUA_TNUMBER: { + double val = lua_tonumber(_L, -1); + lua_pop(_L, 1); + return VAR(val); + } + case LUA_TSTRING: { + const char* val = lua_tostring(_L, -1); + lua_pop(_L, 1); + return VAR(val); + } + case LUA_TTABLE: { + PyObject* obj = vm->heap.gcnew(PyLuaTable::_type(vm)); + return obj; + } + case LUA_TFUNCTION: { + PyObject* obj = vm->heap.gcnew(PyLuaFunction::_type(vm)); + return obj; + } + default: { + const char* type_name = lua_typename(_L, type); + lua_pop(_L, 1); + vm->RuntimeError(_S("unsupported lua type: '", type_name, "'")); + } + } + PK_UNREACHABLE() +} + +void initialize_lua_bridge(VM* vm, lua_State* newL){ + PyObject* mod = vm->new_module("lua"); + + if(_L != nullptr){ + throw std::runtime_error("lua bridge already initialized"); + } + _L = newL; + + PyLuaTable::register_class(vm, mod); + PyLuaFunction::register_class(vm, mod); + + vm->bind(mod, "dostring(__source: str)", [](VM* vm, ArgsView args){ + const char* source = CAST(CString, args[0]); + int base_size = lua_gettop(_L); + if (luaL_dostring(_L, source)) { + const char* error = lua_tostring(_L, -1); + lua_pop(_L, 1); // pop error message from the stack + vm->RuntimeError(error); + } + return lua_popx_multi_to_python(vm, lua_gettop(_L) - base_size); + }); +} + +} // namespace pkpy diff --git a/dependencies/pocketpy/CMakeLists.txt b/dependencies/pocketpy/CMakeLists.txt new file mode 100644 index 0000000..c270b6c --- /dev/null +++ b/dependencies/pocketpy/CMakeLists.txt @@ -0,0 +1,93 @@ +cmake_minimum_required(VERSION 3.10) + +project(pocketpy) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +if(MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /utf-8 /O2") +else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions -frtti -O2") + + # disable -Wshorten-64-to-32 for apple + if(APPLE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-shorten-64-to-32") + endif() +endif() + +aux_source_directory(src POCKETPY_SRC) + +option(PK_USE_CJSON "" OFF) +if(PK_USE_CJSON) + add_subdirectory(3rd/cjson) + add_definitions(-DPK_USE_CJSON) +endif() + +option(PK_ENABLE_OS "" OFF) +if(PK_ENABLE_OS) + add_definitions(-DPK_ENABLE_OS=1) +endif() + +option(PK_NO_EXPORT_C_API "" OFF) +if(PK_NO_EXPORT_C_API) + add_definitions(-DPK_NO_EXPORT_C_API) +endif() + +# PK_IS_MAIN determines whether the project is being used from root +# or if it is added as a dependency (through add_subdirectory for example). +if ("${CMAKE_SOURCE_DIR}" STREQUAL ".") + set(PK_IS_MAIN TRUE) + option(PK_BUILD_SHARED_LIB "Build shared library" OFF) + option(PK_BUILD_STATIC_LIB "Build static library" OFF) +else() + set(PK_IS_MAIN FALSE) + option(PK_BUILD_SHARED_LIB "Build shared library" OFF) + option(PK_BUILD_STATIC_LIB "Build static library" ON) +endif() + +if(PK_BUILD_SHARED_LIB) + add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC}) +elseif(PK_BUILD_STATIC_LIB) + add_library(${PROJECT_NAME} STATIC ${POCKETPY_SRC}) +else() + add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC}) + set(PROJECT_EXE_NAME main) + add_executable(${PROJECT_EXE_NAME} src2/main.cpp) + target_link_libraries(${PROJECT_EXE_NAME} ${PROJECT_NAME}) + target_link_libraries(${PROJECT_EXE_NAME} ${CMAKE_DL_LIBS}) +endif() + +target_include_directories(${PROJECT_NAME} PUBLIC + $ + $ +) + +if(PK_USE_CJSON) + target_link_libraries(${PROJECT_NAME} PRIVATE $) +endif() + +option(PK_INSTALL "Generate the install target" OFF) +if (PK_INSTALL) + install( + TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}_target + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin + ) + + install( + DIRECTORY include + DESTINATION include + FILES_MATCHING PATTERN "*.h" + PATTERN "typings" EXCLUDE + ) + + # generate config.cmake + install( + EXPORT ${PROJECT_NAME}_target + FILE ${PROJECT_NAME}-config.cmake + DESTINATION "share/${PROJECT_NAME}" + ) +endif() diff --git a/dependencies/pocketpy/LICENSE b/dependencies/pocketpy/LICENSE new file mode 100644 index 0000000..4e1dc70 --- /dev/null +++ b/dependencies/pocketpy/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 blueloveTH + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/dependencies/pocketpy/README.md b/dependencies/pocketpy/README.md new file mode 100644 index 0000000..f3530ca --- /dev/null +++ b/dependencies/pocketpy/README.md @@ -0,0 +1,224 @@ +# pocketpy: python interpreter in 1 file + +

+ + + + + +C++17 + +GitHub + +GitHub release + + +Website + + +

+ +pkpy is a lightweight(~15K LOC) Python interpreter for game scripting, built on C++17 with STL. + +It aims to be an alternative to lua for game scripting, with elegant syntax, powerful features and competitive performance. +pkpy is extremely easy to embed via a single header file `pocketpy.h`, without external dependencies. + +Please see https://pocketpy.dev for details or try [Live Demo](https://pocketpy.dev/static/web/). + +## Supported Platforms + +pkpy should work on any platform with a C++17 compiler. +These platforms are officially tested. + ++ Windows 64-bit ++ Linux 64-bit / 32-bit ++ macOS 64-bit ++ Android 64-bit / 32-bit ++ iOS 64-bit ++ Emscripten 32-bit ++ Raspberry Pi OS 64-bit + +## Quick Start + +You have two options to integrate pkpy into your project. + +#### Use the single header file + +Download the `pocketpy.h` on our [GitHub Release](https://github.com/pocketpy/pocketpy/releases) page. +And `#include` it in your project. The header can only be included once. + +#### Use CMake + +Clone the whole repository as a submodule into your project, +In your CMakelists.txt, add the following lines: + +```cmake +add_subdirectory(pocketpy) +target_link_libraries( pocketpy) + +if(EMSCRIPTEN) + # exceptions must be enabled for emscripten + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fexceptions") +endif() +``` + +See [CMakeLists.txt](https://github.com/pocketpy/pocketpy/blob/main/CMakeLists.txt) for details. + +It is safe to use `main` branch in production if CI badge is green. + +### Compile Flags + +To compile it with your project, these flags must be set: + ++ `--std=c++17` flag must be set ++ RTTI must be enabled ++ Exception must be enabled ++ For MSVC, `/utf-8` flag must be set + +For development build, use this snippet. +```bash +# prerequisites +pip install cmake +# build the repo +python cmake_build.py +# unittest +python scripts/run_tests.py +``` + +### Example + +```cpp +#include "pocketpy.h" + +using namespace pkpy; + +int main(){ + // Create a virtual machine + VM* vm = new VM(); + + // Hello world! + vm->exec("print('Hello world!')"); + + // Create a list + vm->exec("a = [1, 2, 3]"); + + // Eval the sum of the list + PyObject* result = vm->eval("sum(a)"); + std::cout << "Sum of the list: "<< py_cast(vm, result) << std::endl; // 6 + + // Bindings + vm->bind(vm->_main, "add(a: int, b: int)", + [](VM* vm, ArgsView args){ + int a = py_cast(vm, args[0]); + int b = py_cast(vm, args[1]); + return py_var(vm, a + b); + }); + + // Call the function + PyObject* f_add = vm->_main->attr("add"); + result = vm->call(f_add, py_var(vm, 3), py_var(vm, 7)); + std::cout << "Sum of 2 variables: "<< py_cast(vm, result) << std::endl; // 10 + + // Dispose the virtual machine + delete vm; + return 0; +} +``` + +## Features + +Check this [Cheatsheet](https://reference.pocketpy.dev/python.html) +for a quick overview of the supported features. + +| Name | Example | Supported | +| --------------- | ------------------------------- | --------- | +| If Else | `if..else..elif` | ✅ | +| Loop | `for/while/break/continue` | ✅ | +| Function | `def f(x,*args,y=1):` | ✅ | +| Subclass | `class A(B):` | ✅ | +| List | `[1, 2, 'a']` | ✅ | +| ListComp | `[i for i in range(5)]` | ✅ | +| Slice | `a[1:2], a[:2], a[1:]` | ✅ | +| Tuple | `(1, 2, 'a')` | ✅ | +| Dict | `{'a': 1, 'b': 2}` | ✅ | +| F-String | `f'value is {x}'` | ✅ | +| Unpacking | `a, b = 1, 2` | ✅ | +| Star Unpacking | `a, *b = [1, 2, 3]` | ✅ | +| Exception | `raise/try..catch..finally` | ✅ | +| Dynamic Code | `eval()/exec()` | ✅ | +| Reflection | `hasattr()/getattr()/setattr()` | ✅ | +| Import | `import/from..import` | ✅ | +| Context Block | `with as :` | ✅ | +| Type Annotation | `def f(a:int, b:float=1)` | ✅ | +| Generator | `yield i` | ✅ | +| Decorator | `@cache` | ✅ | + +## Performance + +Currently, pkpy is as fast as cpython 3.9. +Performance results for cpython 3.9 are applicable to for pkpy. + +See https://pocketpy.dev/performance/ for details. + +And these are the results of the primes benchmark on Intel i5-12400F, WSL (Ubuntu 20.04 LTS), which *roughly* reflects the performance among c++, lua, pkpy and cpython. + +| name | version | time | file | +| ---- | ---- | ---- | ---- | +| c++ | gnu++11 | `0.104s ■□□□□□□□□□□□□□□□` | [benchmarks/primes.cpp](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.cpp) | +| lua | 5.3.3 | `1.576s ■■■■■■■■■□□□□□□□` | [benchmarks/primes.lua](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.lua) | +| pkpy | 1.2.7 | `2.385s ■■■■■■■■■■■■■□□□` | [benchmarks/primes.py](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.py) | +| cpython | 3.8.10 | `2.871s ■■■■■■■■■■■■■■■■` | [benchmarks/primes.py](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.py) | + +## Used By + +| | Description | +|-----------------------------------------------------------------|--------------------------------------------------------------------------| +| [TIC-80](https://github.com/nesbox/TIC-80) | TIC-80 is a fantasy computer for making, playing and sharing tiny games. | +| [MiniPythonIDE](https://github.com/CU-Production/MiniPythonIDE) | A python ide base on pocketpy | +| [py-js](https://github.com/shakfu/py-js) | Python3 externals for Max / MSP | +| [crescent](https://github.com/chukobyte/crescent) | Crescent is a cross-platform 2D fighting and beat-em-up game engine. | + +Submit a pull request to add your project here. + +## Contribution + +All kinds of contributions are welcome. + +- Submit a Pull Request + - fix a bug + - add a new feature +- Open an Issue + - any suggestions + - any questions + +If you find pkpy useful, consider star this repository (●'◡'●) + +## Sponsor this project + +You can sponsor this project via these ways. + ++ [Github Sponsors](https://github.com/sponsors/blueloveTH) ++ [Buy me a coffee](https://www.buymeacoffee.com/blueloveth) + +Your sponsorship will help us develop pkpy continuously. + +## Reference + ++ [cpython](https://github.com/python/cpython) + + The official implementation of Python programming language. + ++ [byterun](https://www.aosabook.org/en/500L/a-python-interpreter-written-in-python.html) + + An excellent learning material. It illustrates how Python's virtual machine works. + + +## Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=blueloveth/pocketpy&type=Date)](https://star-history.com/#blueloveth/pocketpy&Date) + + + +## License + +[MIT License](http://opensource.org/licenses/MIT) diff --git a/dependencies/pocketpy/__init__.py b/dependencies/pocketpy/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/pocketpy/amalgamate.py b/dependencies/pocketpy/amalgamate.py new file mode 100644 index 0000000..ccfb0eb --- /dev/null +++ b/dependencies/pocketpy/amalgamate.py @@ -0,0 +1,96 @@ +import os + +assert os.system("python prebuild.py") == 0 + +with open("include/pocketpy/opcodes.h", "rt", encoding='utf-8') as f: + OPCODES_TEXT = '\n' + f.read() + '\n' + +pipeline = [ + ["config.h", "export.h", "_generated.h", "common.h", "memory.h", "vector.h", "str.h", "tuplelist.h", "namedict.h", "error.h"], + ["obj.h", "dict.h", "codeobject.h", "frame.h", "profiler.h"], + ["gc.h", "vm.h", "ceval.h", "lexer.h", "expr.h", "compiler.h", "repl.h"], + ["cffi.h", "bindings.h", "iter.h", "base64.h", "csv.h", "collections.h", "array2d.h", "dataclasses.h", "random.h", "linalg.h", "easing.h", "io.h", "modules.h"], + ["pocketpy.h", "pocketpy_c.h"] +] + +copied = set() +text = "" + +import re +import shutil +import os +import sys +import time + +if os.path.exists("amalgamated"): + shutil.rmtree("amalgamated") + time.sleep(0.5) +os.mkdir("amalgamated") + +def remove_copied_include(text): + text = text.replace("#pragma once", "") + + def _replace(m): + key = m.group(1) + if key.startswith("pocketpy/"): + key = key[9:] + if key in ["user_config.h", "cJSONw.hpp"]: + return m.group(0) + if "opcodes.h" in key: + return OPCODES_TEXT + assert key in copied, f"include {key} not found" + return "" + + text = re.sub( + r'#include\s+"(.+)"\s*', + _replace, + text + ) + return text + +for seq in pipeline: + for j in seq: + print(j) + with open("include/pocketpy/"+j, "rt", encoding='utf-8') as f: + text += remove_copied_include(f.read()) + '\n' + copied.add(j) + j = j.replace(".h", ".cpp") + if os.path.exists("src/"+j): + with open("src/"+j, "rt", encoding='utf-8') as f: + text += remove_copied_include(f.read()) + '\n' + copied.add(j) + +# use LF line endings instead of CRLF +with open("amalgamated/pocketpy.h", "wt", encoding='utf-8', newline='\n') as f: + final_text = \ +r'''/* + * Copyright (c) 2024 blueloveTH + * Distributed Under The MIT License + * https://github.com/pocketpy/pocketpy + */ + +#ifndef POCKETPY_H +#define POCKETPY_H +''' + text + '\n#endif // POCKETPY_H' + f.write(final_text) + +shutil.copy("src2/main.cpp", "amalgamated/main.cpp") +with open("amalgamated/main.cpp", "rt", encoding='utf-8') as f: + text = f.read() +text = text.replace('#include "pocketpy/pocketpy.h"', '#include "pocketpy.h"') +with open("amalgamated/main.cpp", "wt", encoding='utf-8', newline='\n') as f: + f.write(text) + +if sys.platform in ['linux', 'darwin']: + ok = os.system("clang++ -o main amalgamated/main.cpp -O1 --std=c++17 -frtti -stdlib=libc++") + if ok == 0: + print("Test build success!") + +print("amalgamated/pocketpy.h") + +def sync(path): + shutil.copy("amalgamated/pocketpy.h", os.path.join(path, "pocketpy.h")) + with open(os.path.join(path, "pocketpy.cpp"), "wt", encoding='utf-8', newline='\n') as f: + f.write("#include \"pocketpy.h\"\n") + +sync("plugins/macos/pocketpy") diff --git a/dependencies/pocketpy/benchmarks/__init__.py b/dependencies/pocketpy/benchmarks/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/pocketpy/benchmarks/fib.py b/dependencies/pocketpy/benchmarks/fib.py new file mode 100644 index 0000000..349453d --- /dev/null +++ b/dependencies/pocketpy/benchmarks/fib.py @@ -0,0 +1,10 @@ +def fib(n): + if n < 2: + return n + return fib(n-1) + fib(n-2) + +assert fib(32) == 2178309 + +# from dis import dis +# dis(fib) +# 7049155 calls \ No newline at end of file diff --git a/dependencies/pocketpy/benchmarks/function_0.py b/dependencies/pocketpy/benchmarks/function_0.py new file mode 100644 index 0000000..15cc2e0 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/function_0.py @@ -0,0 +1,8 @@ +def f(a, b, c): + pass + +for i in range(10000000): + f(1, 2, 3) + f(1, 2, 3) + f(1, 2, 3) + f(1, 2, 3) diff --git a/dependencies/pocketpy/benchmarks/function_1.py b/dependencies/pocketpy/benchmarks/function_1.py new file mode 100644 index 0000000..72b309b --- /dev/null +++ b/dependencies/pocketpy/benchmarks/function_1.py @@ -0,0 +1,11 @@ +class A: + def f(self, a, b, c): + pass + +a = A() +for i in range(10000000): + a.f(1, 2, 3) + a.f(1, 2, 3) + a.f(1, 2, 3) + a.f(1, 2, 3) + diff --git a/dependencies/pocketpy/benchmarks/ldtk_cjson.py b/dependencies/pocketpy/benchmarks/ldtk_cjson.py new file mode 100644 index 0000000..5fcc671 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/ldtk_cjson.py @@ -0,0 +1,46 @@ +try: + import os +except ImportError: + exit(0) + +import sys +is_pkpy = not hasattr(sys, 'getrefcount') + +os.chdir('benchmarks') + +if is_pkpy: + try: + import cjson as json + except ImportError: + print('[cJSON not Enabled]') + exit(0) +else: + import json + +_2489KB = 'WorldMap_GridVania_layout.ldtk' +_1093KB = 'WorldMap_Free_layout.ldtk' +_339KB = 'Typical_2D_platformer_example.ldtk' + +with open(f'res/{_2489KB}', 'r') as f: + json_content = f.read() + +data: dict = json.loads(json_content) +assert isinstance(data, dict) + +# serialize and deserialize +dumped: str = json.dumps(data) +for _ in range(10): + loaded: dict = json.loads(dumped) +assert len(data) == len(loaded) +assert data == loaded + +#### very very slow!! +import pickle + +with open(f'res/{_339KB}', 'r') as f: + json_content = f.read() +data: dict = json.loads(json_content) + +data_pickled: bytes = pickle.dumps(data) +assert isinstance(data_pickled, bytes) +assert pickle.loads(data_pickled) == data \ No newline at end of file diff --git a/dependencies/pocketpy/benchmarks/ldtk_json.py b/dependencies/pocketpy/benchmarks/ldtk_json.py new file mode 100644 index 0000000..5aaf480 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/ldtk_json.py @@ -0,0 +1,30 @@ +try: + import os +except ImportError: + exit(0) + +os.chdir('benchmarks') + +import json + +_2489KB = 'WorldMap_GridVania_layout.ldtk' +_1093KB = 'WorldMap_Free_layout.ldtk' +_339KB = 'Typical_2D_platformer_example.ldtk' + +with open(f'res/{_2489KB}', 'r') as f: + json_content = f.read() + +data: dict = json.loads(json_content) +assert isinstance(data, dict) + +# serialize and deserialize +dumped: str = json.dumps(data) +loaded: dict = json.loads(dumped) +assert len(data) == len(loaded) +assert data == loaded + +#### very very slow!! DO NOT RUN IT +# import pickle +# data_pickled: bytes = pickle.dumps(data) +# assert isinstance(data_pickled, bytes) +# assert pickle.loads(data_pickled) == data \ No newline at end of file diff --git a/dependencies/pocketpy/benchmarks/loop_0.py b/dependencies/pocketpy/benchmarks/loop_0.py new file mode 100644 index 0000000..500999f --- /dev/null +++ b/dependencies/pocketpy/benchmarks/loop_0.py @@ -0,0 +1,2 @@ +for i in range(10000000): + pass diff --git a/dependencies/pocketpy/benchmarks/loop_1.py b/dependencies/pocketpy/benchmarks/loop_1.py new file mode 100644 index 0000000..1e43b16 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/loop_1.py @@ -0,0 +1,2 @@ +for i in range(10000000): + x = i \ No newline at end of file diff --git a/dependencies/pocketpy/benchmarks/loop_2.py b/dependencies/pocketpy/benchmarks/loop_2.py new file mode 100644 index 0000000..b27e5a2 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/loop_2.py @@ -0,0 +1,6 @@ +x = 0 + +for i in range(10000000): + x += 1 + +assert x == 10000000 \ No newline at end of file diff --git a/dependencies/pocketpy/benchmarks/loop_3.py b/dependencies/pocketpy/benchmarks/loop_3.py new file mode 100644 index 0000000..24725f1 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/loop_3.py @@ -0,0 +1,5 @@ +for i in range(10000000): + x = i + 1 + y = x * 2 + z = y - 5 + a = x * y // z \ No newline at end of file diff --git a/dependencies/pocketpy/benchmarks/primes.cpp b/dependencies/pocketpy/benchmarks/primes.cpp new file mode 100644 index 0000000..7ef6e69 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/primes.cpp @@ -0,0 +1,167 @@ +#include +#include +#include +#include +#include +#include + +typedef long long LL; + +struct Node{ + std::unordered_map children; + bool terminal; + + Node(){ + terminal = false; + } +}; + +struct Sieve{ + LL limit; + std::vector prime; + + Sieve(LL limit){ + this->limit = limit; + prime = std::vector(limit + 1, false); + } + + std::vector to_list(){ + std::vector result; + result.push_back(2); + result.push_back(3); + for(LL p = 5; p <= limit; p++){ + if(prime[p]){ + result.push_back(p); + } + } + return result; + } + + void omit_squares(){ + LL r = 5; + while(r * r < limit){ + if(prime[r]){ + LL i = r * r; + while(i < limit){ + prime[i] = false; + i = i + r * r; + } + } + r += 1; + } + } + + void step1(LL x, LL y){ + LL n = (4 * x * x) + (y * y); + if(n <= limit && (n % 12 == 1 || n % 12 == 5)){ + prime[n] = !prime[n]; + } + } + + void step2(LL x, LL y){ + LL n = (3 * x * x) + (y * y); + if(n <= limit && n % 12 == 7){ + prime[n] = !prime[n]; + } + } + + void step3(LL x, LL y){ + LL n = (3 * x * x) - (y * y); + if(x > y && n <= limit && n % 12 == 11){ + prime[n] = !prime[n]; + } + } + + void loop_y(LL x){ + LL y = 1; + while(y * y < limit){ + step1(x, y); + step2(x, y); + step3(x, y); + y += 1; + } + } + + void loop_x(){ + LL x = 1; + while(x * x < limit){ + loop_y(x); + x += 1; + } + } + + void calc(){ + loop_x(); + omit_squares(); + } +}; + +Node *generate_trie(std::vector l){ + Node *root = new Node(); + for(LL el : l){ + Node *head = root; + std::string s = std::to_string(el); + for(char ch : s){ + if(head->children.find(ch) == head->children.end()){ + head->children[ch] = new Node(); + } + head = head->children[ch]; + } + head->terminal = true; + } + return root; +} + +std::vector find(LL upper_bound, LL prefix){ + Sieve *sieve = new Sieve(upper_bound); + sieve->calc(); + std::string str_prefix = std::to_string(prefix); + Node *head = generate_trie(sieve->to_list()); + for(char ch : str_prefix){ + if(head->children.find(ch) == head->children.end()){ + return std::vector(); + } + head = head->children[ch]; + } + + std::queue> q; + std::vector result; + q.push(std::make_pair(head, str_prefix)); + while(!q.empty()){ + std::pair top = q.front(); + q.pop(); + if(top.first->terminal){ + result.push_back(std::stoll(top.second)); + } + for(std::pair p : top.first->children){ + q.push(std::make_pair(p.second, top.second + p.first)); + } + } + + std::sort(result.begin(), result.end()); + return result; +} + +void verify(){ + std::vector left = {2, 23, 29}; + std::vector right = find(100, 2); + if(left != right){ + std::cout << "left != right" << std::endl; + exit(1); + } +} + + +int main(){ + const LL UPPER_BOUND = 5000000; + const LL PREFIX = 32338; + + verify(); + std::vector results = find(UPPER_BOUND, PREFIX); + std::vector expected = {323381, 323383, 3233803, 3233809, 3233851, 3233863, 3233873, 3233887, 3233897}; + if(results != expected){ + std::cout << "results != expected" << std::endl; + exit(1); + } + return 0; +} \ No newline at end of file diff --git a/dependencies/pocketpy/benchmarks/primes.lua b/dependencies/pocketpy/benchmarks/primes.lua new file mode 100644 index 0000000..cd60964 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/primes.lua @@ -0,0 +1,168 @@ +local UPPER_BOUND = 5000000 +local PREFIX = 32338 + +local Node = {} +function Node:new() + local obj = {} + setmetatable(obj, self) + self.__index = self + obj.children = {} + obj.terminal = false + return obj +end + +local Sieve = {} +function Sieve:new(limit) + local obj = {} + setmetatable(obj, self) + self.__index = self + obj.limit = limit + obj.prime = {} + for i = 0, limit do + obj.prime[i] = false + end + return obj +end + +function Sieve:to_list() + local result = {2, 3} + for p = 5, self.limit do + if self.prime[p] then + table.insert(result, p) + end + end + return result +end + +function Sieve:omit_squares() + local r = 5 + while r * r < self.limit do + if self.prime[r] then + local i = r * r + while i < self.limit do + self.prime[i] = false + i = i + r * r + end + end + r = r + 1 + end + return self +end + +function Sieve:step1(x, y) + local n = (4 * x * x) + (y * y) + if n <= self.limit and (n % 12 == 1 or n % 12 == 5) then + self.prime[n] = not self.prime[n] + end +end + +function Sieve:step2(x, y) + local n = (3 * x * x) + (y * y) + if n <= self.limit and n % 12 == 7 then + self.prime[n] = not self.prime[n] + end +end + +function Sieve:step3(x, y) + local n = (3 * x * x) - (y * y) + if x > y and n <= self.limit and n % 12 == 11 then + self.prime[n] = not self.prime[n] + end +end + +function Sieve:loop_y(x) + local y = 1 + while y * y < self.limit do + self:step1(x, y) + self:step2(x, y) + self:step3(x, y) + y = y + 1 + end +end + +function Sieve:loop_x() + local x = 1 + while x * x < self.limit do + self:loop_y(x) + x = x + 1 + end +end + +function Sieve:calc() + self:loop_x() + return self:omit_squares() +end + +local function generate_trie(l) + local root = Node:new() + for _, el in ipairs(l) do + local head = root + -- attempt to call a nil value (method 'split') + -- how to fix? use string.split + el = tostring(el) + for i=1, #el do + local ch = el:sub(i, i) + if not head.children[ch] then + head.children[ch] = Node:new() + end + head = head.children[ch] + end + head.terminal = true + end + return root +end + +local function find(upper_bound, prefix_) + local primes = Sieve:new(upper_bound):calc() + local str_prefix = tostring(prefix_) + local head = generate_trie(primes:to_list()) + for i=1, #str_prefix do + local ch = str_prefix:sub(i, i) + head = head.children[ch] + if head == nil then + return nil + end + end + + local queue, result = {{head, str_prefix}}, {} + while #queue > 0 do + local tuple = table.remove(queue) + local top, prefix = tuple[1], tuple[2] + if top.terminal then + table.insert(result, tonumber(prefix)) + end + for ch, v in pairs(top.children) do + table.insert(queue, 1, {v, prefix .. ch}) + end + end + + table.sort(result) + return result +end + +local function verify() + local left = {2, 23, 29} + local right = find(100, 2) + if #left ~= #right then + print("length not equal") + os.exit(1) + end + for i, v in ipairs(left) do + if v ~= right[i] then + print(string.format("%s != %s", v, right[i])) + os.exit(1) + end + end +end + +verify() +local results = find(UPPER_BOUND, PREFIX) +local expected = {323381, 323383, 3233803, 3233809, 3233851, 3233863, 3233873, 3233887, 3233897} + +for i, v in ipairs(results) do + if v ~= expected[i] then + print(string.format("%s != %s", v, expected[i])) + os.exit(1) + end +end + diff --git a/dependencies/pocketpy/benchmarks/primes.py b/dependencies/pocketpy/benchmarks/primes.py new file mode 100644 index 0000000..4debcd5 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/primes.py @@ -0,0 +1,111 @@ +UPPER_BOUND = 5000000 +PREFIX = 32338 + +# exit(0) + +class Node: + def __init__(self): + self.children = {} + self.terminal = False + + +class Sieve: + def __init__(self, limit): + self.limit = limit + self.prime = [False] * (limit + 1) + + def to_list(self): + result = [2, 3] + for p in range(5, self.limit + 1): + if self.prime[p]: + result.append(p) + return result + + def omit_squares(self): + r = 5 + while r * r < self.limit: + if self.prime[r]: + i = r * r + while i < self.limit: + self.prime[i] = False + i = i + r * r + r += 1 + return self + + def step1(self, x, y): + n = (4 * x * x) + (y * y) + if n <= self.limit and (n % 12 == 1 or n % 12 == 5): + self.prime[n] = not self.prime[n] + + def step2(self, x, y): + n = (3 * x * x) + (y * y) + if n <= self.limit and n % 12 == 7: + self.prime[n] = not self.prime[n] + + def step3(self, x, y): + n = (3 * x * x) - (y * y) + if x > y and n <= self.limit and n % 12 == 11: + self.prime[n] = not self.prime[n] + + def loop_y(self, x): + y = 1 + while y * y < self.limit: + self.step1(x, y) + self.step2(x, y) + self.step3(x, y) + y += 1 + + def loop_x(self): + x = 1 + while x * x < self.limit: + self.loop_y(x) + x += 1 + + def calc(self): + self.loop_x() + return self.omit_squares() + + +def generate_trie(l): + root = Node() + for el in l: + head = root + for ch in str(el): + if ch not in head.children: + head.children[ch] = Node() + head = head.children[ch] + head.terminal = True + return root + + +def find(upper_bound, prefix): + primes = Sieve(upper_bound).calc() + str_prefix = str(prefix) + head = generate_trie(primes.to_list()) + for ch in str_prefix: + head = head.children.get(ch) + if head is None: # either ch does not exist or the value is None + return None + + queue, result = [(head, str_prefix)], [] + while queue: + top, prefix = queue.pop() + if top.terminal: + result.append(int(prefix)) + for ch, v in top.children.items(): + queue.insert(0, (v, prefix + ch)) + + result.sort() + return result + + +def verify(): + left = [2, 23, 29] + right = find(100, 2) + if left != right: + print(f"{left} != {right}") + exit(1) + +verify() +results = find(UPPER_BOUND, PREFIX) +assert results == [323381, 323383, 3233803, 3233809, 3233851, 3233863, 3233873, 3233887, 3233897] diff --git a/dependencies/pocketpy/benchmarks/recursive.py b/dependencies/pocketpy/benchmarks/recursive.py new file mode 100644 index 0000000..9917aa9 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/recursive.py @@ -0,0 +1,6 @@ +def f(n): + if n == 900: + return -1 + return f(n + 1) + +assert f(0) == -1 diff --git a/dependencies/pocketpy/benchmarks/res/Typical_2D_platformer_example.ldtk b/dependencies/pocketpy/benchmarks/res/Typical_2D_platformer_example.ldtk new file mode 100644 index 0000000..92968f1 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/res/Typical_2D_platformer_example.ldtk @@ -0,0 +1,5553 @@ +{ + "__header__": { + "fileType": "LDtk Project JSON", + "app": "LDtk", + "doc": "https://ldtk.io/json", + "schema": "https://ldtk.io/files/JSON_SCHEMA.json", + "appAuthor": "Sebastien 'deepnight' Benard", + "appVersion": "1.3.3", + "url": "https://ldtk.io" + }, + "iid": "a302fc80-7820-11ed-b6fd-0944dd561895", + "jsonVersion": "1.3.3", + "appBuildId": 467696, + "nextUid": 105, + "identifierStyle": "Capitalize", + "toc": [], + "worldLayout": "Free", + "worldGridWidth": 256, + "worldGridHeight": 256, + "defaultLevelWidth": 256, + "defaultLevelHeight": 256, + "defaultPivotX": 0.5, + "defaultPivotY": 1, + "defaultGridSize": 16, + "bgColor": "#806262", + "defaultLevelBgColor": "#50506A", + "minifyJson": false, + "externalLevels": false, + "exportTiled": false, + "simplifiedExport": false, + "imageExportMode": "None", + "exportLevelBg": true, + "pngFilePattern": null, + "backupOnSave": false, + "backupLimit": 10, + "backupRelPath": null, + "levelNamePattern": "%world_Level_%idx", + "tutorialDesc": "This sample demonstrates a typical 2D platformer with auto-rendered walls and various gameplay entities.\nPress [Shift+A] to toggle \"Single layer mode\", which helps understanding which layer contains what.\nPress [SHIFT+R] to toggle auto-rendered layers.", + "customCommands": [], + "flags": ["UseMultilinesType"], + "defs": { "layers": [ + { + "__type": "Entities", + "identifier": "Entities", + "type": "Entities", + "uid": 48, + "doc": null, + "uiColor": "#0099DB", + "gridSize": 16, + "guideGridWid": 0, + "guideGridHei": 0, + "displayOpacity": 1, + "inactiveOpacity": 1, + "hideInList": false, + "hideFieldsWhenInactive": false, + "canSelectWhenInactive": true, + "renderInWorldView": true, + "pxOffsetX": 0, + "pxOffsetY": 0, + "parallaxFactorX": 0, + "parallaxFactorY": 0, + "parallaxScaling": true, + "requiredTags": [], + "excludedTags": [], + "intGridValues": [], + "autoRuleGroups": [], + "autoSourceLayerDefUid": null, + "tilesetDefUid": null, + "tilePivotX": 0, + "tilePivotY": 0 + }, + { + "__type": "AutoLayer", + "identifier": "Wall_shadows", + "type": "AutoLayer", + "uid": 97, + "doc": null, + "uiColor": "#5A6988", + "gridSize": 16, + "guideGridWid": 0, + "guideGridHei": 0, + "displayOpacity": 0.17, + "inactiveOpacity": 1, + "hideInList": false, + "hideFieldsWhenInactive": true, + "canSelectWhenInactive": true, + "renderInWorldView": true, + "pxOffsetX": 0, + "pxOffsetY": 0, + "parallaxFactorX": 0, + "parallaxFactorY": 0, + "parallaxScaling": true, + "requiredTags": [], + "excludedTags": [], + "intGridValues": [], + "autoRuleGroups": [{ "uid": 98, "name": "shadows", "active": true, "isOptional": false, "rules": [ + { + "uid": 100, + "active": true, + "size": 3, + "tileIds": [204], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,0,0,1000001,-1000001,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 4888925, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 99, + "active": true, + "size": 5, + "tileIds": [182], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,0,1000001,0,0,0,0,1000001,0,0,0,0,-1000001,0,0,0,0,0,0,0,0,0,0,0,0], + "flipX": false, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 7250663, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }], + "autoSourceLayerDefUid": 1, + "tilesetDefUid": 2, + "tilePivotX": 0, + "tilePivotY": 0 + }, + { + "__type": "IntGrid", + "identifier": "Collisions", + "type": "IntGrid", + "uid": 1, + "doc": null, + "uiColor": "#E4A672", + "gridSize": 16, + "guideGridWid": 0, + "guideGridHei": 0, + "displayOpacity": 1, + "inactiveOpacity": 1, + "hideInList": false, + "hideFieldsWhenInactive": true, + "canSelectWhenInactive": true, + "renderInWorldView": true, + "pxOffsetX": 0, + "pxOffsetY": 0, + "parallaxFactorX": 0, + "parallaxFactorY": 0, + "parallaxScaling": true, + "requiredTags": [], + "excludedTags": [], + "intGridValues": [ + { "value": 1, "identifier": "dirt", "color": "#733E39", "tile": { "tilesetUid": 2, "x": 160, "y": 192, "w": 16, "h": 16 } }, + { "value": 3, "identifier": "stone", "color": "#EAD4AA", "tile": { "tilesetUid": 2, "x": 224, "y": 96, "w": 16, "h": 16 } }, + { "value": 2, "identifier": "ladder", "color": "#0099DB", "tile": { "tilesetUid": 2, "x": 96, "y": 144, "w": 16, "h": 16 } } + ], + "autoRuleGroups": [ + { "uid": 101, "name": "Inner wall fog", "active": true, "isOptional": false, "rules": [ + { + "uid": 102, + "active": true, + "size": 7, + "tileIds": [48], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": 1, + "perlinActive": false, + "perlinSeed": 5850020, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 40, "name": "ladders", "active": true, "isOptional": false, "rules": [ + { + "uid": 41, + "active": true, + "size": 1, + "tileIds": [213], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [2], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 8310255, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 43, "name": "thin platforms", "active": true, "isOptional": false, "rules": [ + { + "uid": 85, + "active": true, + "size": 3, + "tileIds": [207], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,-1,0,0,1,1000001,0,-1,1000001], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 7091657, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 45, + "active": true, + "size": 3, + "tileIds": [52], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,-1,0,1,1,0,1,-1], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 2759095, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 44, + "active": true, + "size": 3, + "tileIds": [99], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,-1,0,0,1,0,0,-1,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 2452565, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 20, "name": "Vegetation", "active": true, "isOptional": false, "rules": [ + { + "uid": 35, + "active": true, + "size": 5, + "tileIds": [305,309,330], + "alpha": 1, + "chance": 0.34, + "breakOnMatch": false, + "pattern": [0,0,1,0,0,0,0,1,0,0,0,-1000001,-1000001,-1000001,0,0,0,0,0,0,0,0,0,0,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 8295015, + "perlinScale": 0.62, + "perlinOctaves": 2 + }, + { + "uid": 74, + "active": true, + "size": 3, + "tileIds": [282,305], + "alpha": 1, + "chance": 0.16, + "breakOnMatch": false, + "pattern": [0,1,0,1,1,1,-1000001,-1000001,-1000001], + "flipX": false, + "flipY": false, + "xModulo": 2, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Stamp", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 680645, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 73, + "active": true, + "size": 5, + "tileIds": [284,307,330], + "alpha": 1, + "chance": 0.17, + "breakOnMatch": false, + "pattern": [0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,-1000001,-1000001,-1000001,0,0,0,-1000001,0,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Stamp", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 5834766, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 22, + "active": true, + "size": 5, + "tileIds": [146], + "alpha": 1, + "chance": 0.35, + "breakOnMatch": false, + "pattern": [0,0,0,0,0,0,0,-1000001,0,0,0,1,-1000001,0,0,0,0,-1000001,0,0,0,0,-1000001,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 9423247, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 21, + "active": true, + "size": 3, + "tileIds": [138,140], + "alpha": 1, + "chance": 0.62, + "breakOnMatch": false, + "pattern": [0,0,0,-1000001,-1000001,-1000001,0,1,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 4238869, + "perlinScale": 0.3, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 57, "name": "Stone walls", "active": true, "isOptional": false, "rules": [ + { + "uid": 69, + "active": true, + "size": 3, + "tileIds": [437], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [-1000001,3,0,3,3,0,0,0,0], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 2116777, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 62, + "active": true, + "size": 3, + "tileIds": [211], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [-3,3,0,3,3,0,0,0,0], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 4318534, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 60, + "active": true, + "size": 3, + "tileIds": [152], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,-3,0,-3,3,0,0,0,0], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 1158751, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 61, + "active": true, + "size": 3, + "tileIds": [198], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,0,-3,3,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 877859, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 59, + "active": true, + "size": 3, + "tileIds": [154], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,-3,0,0,3,0,0,0,0], + "flipX": false, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 2082640, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 58, + "active": true, + "size": 1, + "tileIds": [200], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [3], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 4606127, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 11, "name": "Dirt walls", "active": true, "isOptional": false, "rules": [ + { + "uid": 36, + "active": true, + "size": 5, + "tileIds": [12], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,0,0,0,0,0,0,0,0,0,0,0,-1,1,0,0,0,1,0,0,0,0,1,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 23929, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 12, + "active": true, + "size": 3, + "tileIds": [2], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,-1,0,0,1,0,0,0,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 3612780, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 15, + "active": true, + "size": 3, + "tileIds": [0], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,-1,0,-1,1,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 5982262, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 32, + "active": true, + "size": 3, + "tileIds": [211], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [-1,1,0,1,1,0,0,0,0], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 7450655, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 31, + "active": true, + "size": 3, + "tileIds": [326], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,-1,0,-1,1,0,0,0,0], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 5259256, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 29, + "active": true, + "size": 5, + "tileIds": [211,233], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,0,1,0,0,0,0,1,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 8904962, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 17, + "active": true, + "size": 3, + "tileIds": [92], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,0,-1,1,0,0,-1,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 3419817, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 18, + "active": true, + "size": 3, + "tileIds": [94], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,0,0,1,0,0,-1,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 5825902, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 16, + "active": true, + "size": 3, + "tileIds": [46], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,0,-1,1,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 3269451, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 14, + "active": true, + "size": 1, + "tileIds": [142,144], + "alpha": 1, + "chance": 0.35, + "breakOnMatch": true, + "pattern": [1], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 1, + "perlinScale": 0.1, + "perlinOctaves": 4 + }, + { + "uid": 81, + "active": true, + "size": 3, + "tileIds": [144], + "alpha": 1, + "chance": 0.65, + "breakOnMatch": true, + "pattern": [0,1,0,1,1,1,0,1,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 1, + "perlinScale": 0.1, + "perlinOctaves": 2 + }, + { + "uid": 13, + "active": true, + "size": 1, + "tileIds": [48], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [1], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 3617563, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false } + ], + "autoSourceLayerDefUid": null, + "tilesetDefUid": 2, + "tilePivotX": 0, + "tilePivotY": 0 + }, + { + "__type": "AutoLayer", + "identifier": "Bg_textures", + "type": "AutoLayer", + "uid": 24, + "doc": null, + "uiColor": "#5A6988", + "gridSize": 16, + "guideGridWid": 0, + "guideGridHei": 0, + "displayOpacity": 1, + "inactiveOpacity": 1, + "hideInList": false, + "hideFieldsWhenInactive": true, + "canSelectWhenInactive": true, + "renderInWorldView": true, + "pxOffsetX": 0, + "pxOffsetY": 0, + "parallaxFactorX": 0, + "parallaxFactorY": 0, + "parallaxScaling": true, + "requiredTags": [], + "excludedTags": [], + "intGridValues": [], + "autoRuleGroups": [ + { "uid": 82, "name": "Architecture props", "active": true, "isOptional": false, "rules": [ + { + "uid": 72, + "active": true, + "size": 7, + "tileIds": [358,381,404,359,382,405], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,-1000001,-1000001,-1000001,0,0,0,0,-1000001,-1000001,-1000001,0,0,0,0,-1000001,-1000001,-1000001,0,0,0,0,-1000001,-1000001,-1000001,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "flipX": false, + "flipY": false, + "xModulo": 3, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Stamp", + "pivotX": 0.5, + "pivotY": 1, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 9916681, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 76, "name": "Bg vegetation", "active": true, "isOptional": false, "rules": [ + { + "uid": 80, + "active": true, + "size": 3, + "tileIds": [450], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,0,0,3,-1000001,0,0,3,0], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 4200194, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 65, + "active": true, + "size": 3, + "tileIds": [400,446,468], + "alpha": 1, + "chance": 0.28, + "breakOnMatch": false, + "pattern": [0,0,0,0,-1000001,1000001,0,1000001,0], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 1342072, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 39, + "active": true, + "size": 3, + "tileIds": [400,402,447,449], + "alpha": 1, + "chance": 0.62, + "breakOnMatch": false, + "pattern": [0,0,0,0,-1000001,0,0,1,0], + "flipX": false, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 4138998, + "perlinScale": 0.38, + "perlinOctaves": 2 + }, + { + "uid": 71, + "active": true, + "size": 5, + "tileIds": [445,468,446,469,447,470], + "alpha": 1, + "chance": 0.58, + "breakOnMatch": false, + "pattern": [0,0,0,0,0,-1000001,-1000001,-1000001,1,0,-1000001,-1000001,-1000001,1,0,1,1,1,1,0,0,0,0,0,0], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Stamp", + "pivotX": 1, + "pivotY": 1, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 2132826, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 25, "name": "Bg walls", "active": true, "isOptional": false, "rules": [ + { + "uid": 77, + "active": true, + "size": 5, + "tileIds": [361,362,363], + "alpha": 1, + "chance": 0.61, + "breakOnMatch": true, + "pattern": [-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001], + "flipX": false, + "flipY": false, + "xModulo": 3, + "yModulo": 2, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "Horizontal", + "tileMode": "Stamp", + "pivotX": 0.5, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 153727, + "perlinScale": 0.39, + "perlinOctaves": 2 + }, + { + "uid": 38, + "active": true, + "size": 3, + "tileIds": [409], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,0,0,-1000001,0,1000001,1000001,1000001], + "flipX": false, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 6437517, + "perlinScale": 0.14, + "perlinOctaves": 2 + }, + { + "uid": 37, + "active": true, + "size": 3, + "tileIds": [363], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,0,1000001,-1000001,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 98550, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 84, + "active": true, + "size": 3, + "tileIds": [411], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,-1000001,0,0,1000001,0,0,-1000001,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 317141, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 26, + "active": true, + "size": 1, + "tileIds": [411], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [-1000001], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 3390000, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false } + ], + "autoSourceLayerDefUid": 1, + "tilesetDefUid": 2, + "tilePivotX": 0, + "tilePivotY": 0 + } + ], "entities": [ + { + "identifier": "Player", + "uid": 46, + "tags": [], + "exportToToc": false, + "doc": null, + "width": 24, + "height": 24, + "resizableX": false, + "resizableY": false, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": false, + "tileOpacity": 1, + "fillOpacity": 0.08, + "lineOpacity": 0, + "hollow": false, + "color": "#A7FF24", + "renderMode": "Tile", + "showName": true, + "tilesetId": 104, + "tileRenderMode": "FitInside", + "tileRect": { "tilesetUid": 104, "x": 0, "y": 240, "w": 16, "h": 16 }, + "nineSliceBorders": [], + "maxCount": 1, + "limitScope": "PerWorld", + "limitBehavior": "PreventAdding", + "pivotX": 0.5, + "pivotY": 1, + "fieldDefs": [ + { + "identifier": "items", + "doc": null, + "__type": "Array", + "uid": 51, + "type": "F_Enum(49)", + "isArray": true, + "canBeNull": false, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "ValueOnly", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "StraightArrow", + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": null, + "useForSmartColor": false, + "min": null, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": null, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + } + ] + }, + { + "identifier": "Chest", + "uid": 52, + "tags": [], + "exportToToc": false, + "doc": null, + "width": 24, + "height": 24, + "resizableX": false, + "resizableY": false, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": false, + "tileOpacity": 1, + "fillOpacity": 0.08, + "lineOpacity": 0, + "hollow": false, + "color": "#6ADDEC", + "renderMode": "Tile", + "showName": true, + "tilesetId": 104, + "tileRenderMode": "FitInside", + "tileRect": { "tilesetUid": 104, "x": 160, "y": 560, "w": 16, "h": 16 }, + "nineSliceBorders": [], + "maxCount": 0, + "limitScope": "PerLevel", + "limitBehavior": "DiscardOldOnes", + "pivotX": 0.5, + "pivotY": 1, + "fieldDefs": [ + { + "identifier": "content", + "doc": null, + "__type": "Array", + "uid": 53, + "type": "F_Enum(49)", + "isArray": true, + "canBeNull": false, + "arrayMinLength": 1, + "arrayMaxLength": null, + "editorDisplayMode": "ValueOnly", + "editorDisplayScale": 1, + "editorDisplayPos": "Beneath", + "editorLinkStyle": "StraightArrow", + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": null, + "useForSmartColor": false, + "min": null, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": null, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + } + ] + }, + { + "identifier": "Mob", + "uid": 54, + "tags": [], + "exportToToc": false, + "doc": null, + "width": 20, + "height": 20, + "resizableX": true, + "resizableY": true, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": true, + "tileOpacity": 1, + "fillOpacity": 0.08, + "lineOpacity": 0, + "hollow": false, + "color": "#FF0000", + "renderMode": "Tile", + "showName": true, + "tilesetId": 104, + "tileRenderMode": "Cover", + "tileRect": { "tilesetUid": 104, "x": 96, "y": 0, "w": 16, "h": 16 }, + "nineSliceBorders": [], + "maxCount": 0, + "limitScope": "PerLevel", + "limitBehavior": "DiscardOldOnes", + "pivotX": 0.5, + "pivotY": 1, + "fieldDefs": [ + { + "identifier": "loot", + "doc": null, + "__type": "Array", + "uid": 56, + "type": "F_Enum(49)", + "isArray": true, + "canBeNull": false, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "NameAndValue", + "editorDisplayScale": 1, + "editorDisplayPos": "Beneath", + "editorLinkStyle": "StraightArrow", + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": null, + "useForSmartColor": false, + "min": null, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": null, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + }, + { + "identifier": "patrol", + "doc": null, + "__type": "Array", + "uid": 55, + "type": "F_Point", + "isArray": true, + "canBeNull": true, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "PointPath", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "ArrowsLine", + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": null, + "useForSmartColor": false, + "min": null, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": null, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + } + ] + }, + { + "identifier": "Door", + "uid": 86, + "tags": [], + "exportToToc": false, + "doc": null, + "width": 12, + "height": 32, + "resizableX": false, + "resizableY": true, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": false, + "tileOpacity": 1, + "fillOpacity": 0.08, + "lineOpacity": 0, + "hollow": false, + "color": "#B7A87A", + "renderMode": "Tile", + "showName": true, + "tilesetId": 104, + "tileRenderMode": "NineSlice", + "tileRect": { "tilesetUid": 104, "x": 352, "y": 32, "w": 16, "h": 16 }, + "nineSliceBorders": [5,5,5,5], + "maxCount": 0, + "limitScope": "PerLevel", + "limitBehavior": "DiscardOldOnes", + "pivotX": 0.5, + "pivotY": 1, + "fieldDefs": [ + { + "identifier": "locked", + "doc": null, + "__type": "Bool", + "uid": 87, + "type": "F_Bool", + "isArray": false, + "canBeNull": false, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "ValueOnly", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "StraightArrow", + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": null, + "useForSmartColor": false, + "min": null, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": null, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + } + ] + } + ], "tilesets": [ + { + "__cWid": 23, + "__cHei": 21, + "identifier": "SunnyLand_by_Ansimuz", + "uid": 2, + "relPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "embedAtlas": null, + "pxWid": 368, + "pxHei": 336, + "tileGridSize": 16, + "spacing": 0, + "padding": 0, + "tags": [], + "tagsSourceEnumUid": null, + "enumTags": [], + "customData": [], + "savedSelections": [ + { "ids": [358,381,404,359,382,405], "mode": "Stamp" }, + { "ids": [284,307,330], "mode": "Stamp" }, + { "ids": [286,309], "mode": "Stamp" }, + { "ids": [282,305], "mode": "Stamp" }, + { "ids": [210,233,211,234], "mode": "Stamp" }, + { "ids": [207,230,208,231], "mode": "Stamp" }, + { "ids": [82,105], "mode": "Stamp" }, + { "ids": [84,107], "mode": "Stamp" }, + { "ids": [15,38,16,39], "mode": "Stamp" }, + { "ids": [12,35,13,36], "mode": "Stamp" }, + { "ids": [18,41,19,42], "mode": "Stamp" }, + { "ids": [21,44,22,45], "mode": "Stamp" }, + { "ids": [90,113], "mode": "Stamp" }, + { "ids": [88,111], "mode": "Stamp" }, + { "ids": [52,53], "mode": "Stamp" }, + { "ids": [55,56], "mode": "Stamp" }, + { "ids": [439,462,440,463], "mode": "Stamp" } + ], + "cachedPixelData": { + "opaqueTiles": "101010100010110110000000000000000001101101101110101010001000000000000000000000000010100000001010101000000101000101000000000000000000000000000010100000001010100000000000000000000000000000000000000000101010000010100100000000000000000000000000000010101010000000000000000000000100000000101010100000000000000001010100000100000001010000100000000000000010100000010011011100000101000000100110000000011011000011101101010100000000000000000000000001011000011101110100000000110000111011100000000", + "averageColors": "f9850000f9850000f9850000fa65000069557a65f8450000f644f9650000f965f644000049b5c9950000c99549b5000000000000000000000000000000000000000000000000f955f7450000f745f9550000f865f7450000f745f865f9550000f6450000f9550000f845695500006955f8450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8550000f85500000000000079a5000079a50000f9550000f8550000f9550000f8457a6569550000ab8500000000f8550000f855000000000000f7550000f75500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077a5000078b50000f8450000f7450000947400009474000000000000fa650000f9550000fa6500002000000000000000459534953595000000000000000000000000000000000000000000000000000000000000000020006000000000000000000000000000000000000000000000000000000088550000f9550000f6450000f9550000900000000000a955f8450000f845a9550000f85500000000ca65b9650000000000000000000000000000000000000000000000000000a9550000a9550000000000000000000000000000000000000000fa650000f9550000fa650000f4880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f47700000000000000000000000000000000f7450000f8550000f8550000f8550000000000000000000000000000000000000000000000000000000000000000f3440000f3450000f534000000000000e9950000f9950000e9950000000000000000b855f5340000f534b855000000000000f334000000000000000000000000000000000000000000000000000000000000f7440000f744000000000000000000000000f43500000000f435f4350000f334f436f3350000000000000000b955f5340000f534b95500000000000000000000f34500000000f335f33500000000000000000000000000000000f744f3340000f334f7440000000000000000f344f345f3440000f335f3350000f5340000f4350000f3340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa650000f955f9550000000000000000f334f335f3450000f345f335f3340000f75500000000000000000000000000000000f955f9550000000000000000f335f344f3440000f344f344f33500000000000000000000000000000000" + } + }, + { + "__cWid": 32, + "__cHei": 64, + "identifier": "Internal_Icons", + "uid": 104, + "relPath": null, + "embedAtlas": "LdtkIcons", + "pxWid": 512, + "pxHei": 1024, + "tileGridSize": 16, + "spacing": 0, + "padding": 0, + "tags": [], + "tagsSourceEnumUid": null, + "enumTags": [], + "customData": [], + "savedSelections": [], + "cachedPixelData": { + "opaqueTiles": "00000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "averageColors": "00004b344233459b423349a959a9379c688769758ca4bc9489aab9aa58cc58bc42d74d2244ce428f4c7e4fb34abb45564ffe7dda78880000000000000000000069a969a97a99999999989a85998699767a7579667ccc7ccc7bcb7caa7ccc7ccc22d72d2224ce228f2c7e2fb32abb25562ffe000000000000000000000000000059764b97599868ac679a69ab4a84477756787688475347532a932a934a837a83f2b6fb22f3acf15afa6cfc93f899f334fccc000000000000000000000000000059aa49aa59996999699969aa489949995999799a499949992999299948997889a385a823a379a248a749a864a667a223a8880000000000000000000000000000189919991999199939994778166727772889289948993aaa389949a959a959a932b63b2233ad315a395c3c83389933343ccc00000000000000000000000000008aaa8aaa8aaa8aaa8aaa7bbb8aaa7bbb8bcb7aaa8bcb7bcb69aa8aaa8aaa69aa6abb6abb6abb6abb6a226a226a226a2261a661a661a661a600000000000000006c526c426c926c91659b649c66a566a46a7b6a7b667766776aba6abb676367636b746b746b746b74616c616c616c616c8abb8abb8abb8abb00000000000000006ba5579a6689598658875cb66abb9aa989aa98ac7abc6678968a88877c87cba952755823536952475648586354455223599900000000000000000000000000003ec63da76db79dc7554885498969b4377fa29e8289cdb9ce5ade5ade49ce49ce82a68a22839b8259885b8b73855683238aab00000000000000000000000000005d745d867da87e75448c458b86ad76ae68ac679c779b78ce3c9378867ca6adb784858933847a844788498963854584348989000000000000000000000000000057a668b899b8449396534493858364836853697769436667755667776c73498800000000000000000000000000000000000000000000000000000000000000006bba79b87d9679ad776a7b988abc8abc4aceaace4bba4bba6b8c4c9c4cac5b7c000000000000000000000000000000000000000000000000000000000000000059aaada7a9bdcdbd59aaada7a9bdcdbd8cb8a9b98ac889b8aabaacc79ea498bd000000000000000000000000000000000000000000000000000000000000000057ac596b55946abb5abb8ca65d8677ac437b5a3368886934547a595897a57b230000000000000000000000000000000000000000000000000000000000000000799a5c817b9b3a886abb8464676a7a967a857a857977898889882a954a956b950000000000000000000000000000000000000000000000000000000000000000499977997868799579875a6465995a8957a66a735ba53a935969479a576a467700000000000000000000000000000000000000000000000000000000000000005744985596659b747a659a76768a7a5676754777388735665976987794459465000000000000000000000000000000000000000000000000000000000000000088668a66868a9b8577666a4467846987778a7789797a87888b8676667a767ca50000000000000000000000000000000000000000000000000000000000000000449374934c957c9574847a438475a3958695768565956853b9447a777493a493000000000000000000000000000000000000000000000000000000000000000079547a838394689a49547a6357636975786383848997b384655873748974588400000000000000000000000000000000000000000000000000000000000000007da48ca769768b554b976cba3a824a82696259526a758c986963694268478b850000000000000000000000000000000000000000000000000000000000000000696559555579557458598674573353635677575579667a8758538b848a44838b0000000000000000000000000000000000000000000000000000000000000000385437883b95534549555a855877997598772b953b9529a939a95aa84b949a840000000000000000000000000000000000000000000000000000000000000000897687898776878578998485878b789a847b8b6579998a55886998788a879b9700000000000000000000000000000000000000000000000000000000000000006ba97988897469646b987a876a997a987b987955766777765c958a858777867700000000000000000000000000000000000000000000000000000000000000005a747b947b967866a855788928884566578879a98864a579233433343334633400000000000000000000000000000000000000000000000000000000000000006a747b846a844997598669987bb8b8aabaa96ba67cba9854687669864a864b86000000000000000000000000000000000000000000000000000000000000000038ab389b48ab47ac49ab48ac579b48ac49ab38ab58bc4b8659aa5c8457ac586a0000000000000000000000000000000000000000000000000000000000000000299b2999389a379b38893955589a79bc8c9588bc7a8c599a689a5b8558ac597a00000000000000000000000000000000000000000000000000000000000000002888378936773975579b389a579b488938884b74469a465747785b75568b586a000000000000000000000000000000000000000000000000000000000000000038553865285428444755566455763a64356746743779397445674c63469b585a0000000000000000000000000000000000000000000000000000000000000000284437643a7629641555297938874879385438664665355536775a85569a785a00000000000000000000000000000000000000000000000000000000000000005789789b779b6a75668a897b64558555876576798855845694749b74a68a986a000000000000000000000000000000000000000000000000000000000000000047776766678867667799798698768866976685673755387638763b74358b387a00000000000000000000000000000000000000000000000000000000000000005777686569874944498846774677685568646987677778775a456a65ab66ca550000000000000000000000000000000000000000000000000000000000000000355656666656455546455345634558655854aa749854775577737b64777a7a7900000000000000000000000000000000000000000000000000000000000000005955895598546c758c75ba76b88797749b75a98967888789978857888788a78800000000000000000000000000000000000000000000000000000000000000006977897799776a748a749a747987ba97aa998ba8a78bab75a87ab89cbb74b97b000000000000000000000000000000000000000000000000000000000000000059645788598858546a7569996a767a766887649c767476797a54766977667976000000000000000000000000000000000000000000000000000000000000000078887a75796577777a869976987799865777667787668a53857a885a98659546000000000000000000000000000000000000000000000000000000000000000087559877a96586779788b9769866888899877576777879647759a8659888a7440000000000000000000000000000000000000000000000000000000000000000785477887a55747b7585795b7999a9667456878889aa58997888797b56776855000000000000000000000000000000000000000000000000000000000000000048545854617b644557448744537b85565899899a39994a7a58998999a5558988000000000000000000000000000000000000000000000000000000000000000089659744a6559555a55698889486a57aab43a96b9556a665a854a579a744a5550000000000000000000000000000000000000000000000000000000000000000596587556677777777778578876687778974867787668876988897779876a744000000000000000000000000000000000000000000000000000000000000000067536556875448225922415851595456654587459456947b48997a86764585560000000000000000000000000000000000000000000000000000000000000000a854a89989998556a7559766a7779976a975997596749a64968a9779a55595450000000000000000000000000000000000000000000000000000000000000000674487549854885594558445a777a7778373579b5a32675584456975958b9944000000000000000000000000000000000000000000000000000000000000000077449754b674b469b964b658a766a864a777a975a566a754a677a875b777b9650000000000000000000000000000000000000000000000000000000000000000775577547445755676558744697377637766785334556566577859755877887600000000000000000000000000000000000000000000000000000000000000002789287328772a7436793a9457795a84368a3334323364555a757b856aaa9a5500000000000000000000000000000000000000000000000000000000000000005888516b5a3349a95964797778987a5375696a536668796577887a847a74797500000000000000000000000000000000000000000000000000000000000000007b537a53767b6769748775767a9a7988759c768a7b957a847775776478647854000000000000000000000000000000000000000000000000000000000000000098999788988998889b879a869a869a86696565676965667767446854677877880000000000000000000000000000000000000000000000000000000000000000678a77997ba647887a7589999ca59ba889aa9999655667bd6ba979a967bc6c7300000000000000000000000000000000000000000000000000000000000000006aaa6556518566775965485438985888576546854ca547775999699989997a9900000000000000000000000000000000000000000000000000000000000000006678526466335644769c5a7888547a785c4454a658885c946285627b6c54674a000000000000000000000000000000000000000000000000000000000000000033843b33359c337c395c3b853899355653745a33558b536b585b5a7557885445000000000000000000000000000000000000000000000000000000000000000026551566274525664a85486546564656377756664655465545454656516a656700000000000000000000000000000000000000000000000000000000000000004964696468553a86485437443645896588548856895477446a7569547a757954000000000000000000000000000000000000000000000000000000000000000036678566399988993b968b955ba658995566588859645a986ca7796477887ca6000000000000000000000000000000000000000000000000000000000000000019562a554c665c55156a256a468c557b1a8429744a845a83196b285a496b595b00000000000000000000000000000000000000000000000000000000000000001486248645a7549615782578469a5689187629764a875a861a692a694b7a5b79000000000000000000000000000000000000000000000000000000000000000017772777489858881555255546665556199528854884588411122112411251120000000000000000000000000000000000000000000000000000000000000000" + } + } + ], "enums": [{ "identifier": "Item", "uid": 49, "values": [ + { "id": "Knife", "tileRect": { "tilesetUid": 104, "x": 0, "y": 448, "w": 16, "h": 16 }, "tileId": -1, "color": 9608629, "__tileSrcRect": [0,448,16,16] }, + { "id": "Healing_Plant", "tileRect": { "tilesetUid": 104, "x": 16, "y": 288, "w": 16, "h": 16 }, "tileId": -1, "color": 4625973, "__tileSrcRect": [16,288,16,16] }, + { "id": "Meat", "tileRect": { "tilesetUid": 104, "x": 48, "y": 320, "w": 16, "h": 16 }, "tileId": -1, "color": 12015952, "__tileSrcRect": [48,320,16,16] }, + { "id": "Boots", "tileRect": { "tilesetUid": 104, "x": 32, "y": 752, "w": 16, "h": 16 }, "tileId": -1, "color": 9067593, "__tileSrcRect": [32,752,16,16] }, + { "id": "Water", "tileRect": { "tilesetUid": 104, "x": 0, "y": 272, "w": 16, "h": 16 }, "tileId": -1, "color": 9399401, "__tileSrcRect": [0,272,16,16] }, + { "id": "Gem", "tileRect": { "tilesetUid": 104, "x": 176, "y": 976, "w": 16, "h": 16 }, "tileId": -1, "color": 11173944, "__tileSrcRect": [176,976,16,16] } + ], "iconTilesetUid": 104, "externalRelPath": null, "externalFileChecksum": null, "tags": [] }], "externalEnums": [], "levelFields": [] }, + "levels": [ + { + "identifier": "Your_typical_2D_platformer", + "iid": "a315ac10-66b0-11ec-9cd7-99f223ad6ade", + "uid": 0, + "worldX": 0, + "worldY": 0, + "worldDepth": 0, + "pxWid": 848, + "pxHei": 336, + "__bgColor": "#50506A", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#9F9FAD", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 53, + "__cHei": 21, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a315d322-66b0-11ec-9cd7-4318e0a0e578", + "levelId": 0, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 9220595, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Player", + "__grid": [11,12], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 0, "y": 240, "w": 16, "h": 16 }, + "__smartColor": "#A7FF24", + "iid": "a315d323-66b0-11ec-9cd7-8ddce09157bc", + "width": 24, + "height": 24, + "defUid": 46, + "px": [184,208], + "fieldInstances": [{ "__identifier": "items", "__type": "Array", "__value": [ "Knife", "Boots" ], "__tile": null, "defUid": 51, "realEditorValues": [ { + "id": "V_String", + "params": ["Knife"] + }, { + "id": "V_String", + "params": ["Boots"] + } ] }] + }, + { + "__identifier": "Chest", + "__grid": [31,17], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 160, "y": 560, "w": 16, "h": 16 }, + "__smartColor": "#6ADDEC", + "iid": "a315d324-66b0-11ec-9cd7-0d0128b37734", + "width": 32, + "height": 24, + "defUid": 52, + "px": [504,288], + "fieldInstances": [{ "__identifier": "content", "__type": "Array", "__value": [ "Healing_Plant", "Water", "Meat" ], "__tile": null, "defUid": 53, "realEditorValues": [ { + "id": "V_String", + "params": ["Healing_Plant"] + }, { + "id": "V_String", + "params": ["Water"] + }, { + "id": "V_String", + "params": ["Meat"] + } ] }] + }, + { + "__identifier": "Mob", + "__grid": [20,9], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 96, "y": 0, "w": 16, "h": 16 }, + "__smartColor": "#FF0000", + "iid": "a315d325-66b0-11ec-9cd7-f9e1c56d6020", + "width": 20, + "height": 20, + "defUid": 54, + "px": [328,160], + "fieldInstances": [ + { "__identifier": "loot", "__type": "Array", "__value": ["Meat"], "__tile": null, "defUid": 56, "realEditorValues": [{ + "id": "V_String", + "params": ["Meat"] + }] }, + { "__identifier": "patrol", "__type": "Array", "__value": [{ "cx": 32, "cy": 9 }], "__tile": null, "defUid": 55, "realEditorValues": [{ + "id": "V_String", + "params": ["32,9"] + }] } + ] + }, + { + "__identifier": "Mob", + "__grid": [16,17], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 96, "y": 0, "w": 16, "h": 16 }, + "__smartColor": "#FF0000", + "iid": "a315d326-66b0-11ec-9cd7-cf3ea20f8dff", + "width": 20, + "height": 20, + "defUid": 54, + "px": [264,288], + "fieldInstances": [ + { "__identifier": "loot", "__type": "Array", "__value": [], "__tile": null, "defUid": 56, "realEditorValues": [] }, + { "__identifier": "patrol", "__type": "Array", "__value": [{ "cx": 26, "cy": 17 }], "__tile": null, "defUid": 55, "realEditorValues": [{ + "id": "V_String", + "params": ["26,17"] + }] } + ] + }, + { + "__identifier": "Door", + "__grid": [27,17], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 352, "y": 32, "w": 16, "h": 16 }, + "__smartColor": "#B7A87A", + "iid": "a315d327-66b0-11ec-9cd7-35c28e76b04b", + "width": 12, + "height": 32, + "defUid": 86, + "px": [440,288], + "fieldInstances": [{ "__identifier": "locked", "__type": "Bool", "__value": false, "__tile": null, "defUid": 87, "realEditorValues": [null] }] + }, + { + "__identifier": "Door", + "__grid": [35,7], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 352, "y": 32, "w": 16, "h": 16 }, + "__smartColor": "#B7A87A", + "iid": "a315d328-66b0-11ec-9cd7-c30477cb5ff1", + "width": 12, + "height": 48, + "defUid": 86, + "px": [568,128], + "fieldInstances": [{ "__identifier": "locked", "__type": "Bool", "__value": false, "__tile": null, "defUid": 87, "realEditorValues": [] }] + }, + { + "__identifier": "Mob", + "__grid": [45,8], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 96, "y": 0, "w": 16, "h": 16 }, + "__smartColor": "#FF0000", + "iid": "6abe6740-7820-11ed-b9f3-df5bd7818ec4", + "width": 20, + "height": 20, + "defUid": 54, + "px": [728,144], + "fieldInstances": [ + { "__identifier": "loot", "__type": "Array", "__value": [], "__tile": null, "defUid": 56, "realEditorValues": [] }, + { "__identifier": "patrol", "__type": "Array", "__value": [{ "cx": 39, "cy": 8 }], "__tile": null, "defUid": 55, "realEditorValues": [{ + "id": "V_String", + "params": ["39,8"] + }] } + ] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 53, + "__cHei": 21, + "__gridSize": 16, + "__opacity": 0.17, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 2, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a315d329-66b0-11ec-9cd7-cd3fbd05b9cf", + "levelId": 0, + "layerDefUid": 97, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [496,32], "src": [336,112], "f": 0, "t": 182, "d": [99,137], "a": 1 }, + { "px": [512,32], "src": [336,112], "f": 0, "t": 182, "d": [99,138], "a": 1 }, + { "px": [320,48], "src": [336,112], "f": 0, "t": 182, "d": [99,179], "a": 1 }, + { "px": [336,48], "src": [336,112], "f": 0, "t": 182, "d": [99,180], "a": 1 }, + { "px": [352,48], "src": [336,112], "f": 0, "t": 182, "d": [99,181], "a": 1 }, + { "px": [464,48], "src": [336,112], "f": 0, "t": 182, "d": [99,188], "a": 1 }, + { "px": [480,48], "src": [336,112], "f": 0, "t": 182, "d": [99,189], "a": 1 }, + { "px": [528,48], "src": [336,112], "f": 0, "t": 182, "d": [99,192], "a": 1 }, + { "px": [624,48], "src": [336,112], "f": 0, "t": 182, "d": [99,198], "a": 1 }, + { "px": [640,48], "src": [336,112], "f": 0, "t": 182, "d": [99,199], "a": 1 }, + { "px": [656,48], "src": [336,112], "f": 0, "t": 182, "d": [99,200], "a": 1 }, + { "px": [672,48], "src": [336,112], "f": 0, "t": 182, "d": [99,201], "a": 1 }, + { "px": [688,48], "src": [336,112], "f": 0, "t": 182, "d": [99,202], "a": 1 }, + { "px": [720,48], "src": [336,112], "f": 0, "t": 182, "d": [99,204], "a": 1 }, + { "px": [368,64], "src": [336,112], "f": 0, "t": 182, "d": [99,235], "a": 1 }, + { "px": [384,64], "src": [336,112], "f": 0, "t": 182, "d": [99,236], "a": 1 }, + { "px": [432,64], "src": [336,112], "f": 0, "t": 182, "d": [99,239], "a": 1 }, + { "px": [448,64], "src": [336,112], "f": 0, "t": 182, "d": [99,240], "a": 1 }, + { "px": [288,80], "src": [336,112], "f": 0, "t": 182, "d": [99,283], "a": 1 }, + { "px": [304,80], "src": [336,112], "f": 0, "t": 182, "d": [99,284], "a": 1 }, + { "px": [400,80], "src": [336,112], "f": 0, "t": 182, "d": [99,290], "a": 1 }, + { "px": [416,80], "src": [336,112], "f": 0, "t": 182, "d": [99,291], "a": 1 }, + { "px": [544,80], "src": [336,112], "f": 0, "t": 182, "d": [99,299], "a": 1 }, + { "px": [560,80], "src": [336,112], "f": 0, "t": 182, "d": [99,300], "a": 1 }, + { "px": [576,80], "src": [336,112], "f": 0, "t": 182, "d": [99,301], "a": 1 }, + { "px": [592,80], "src": [336,112], "f": 0, "t": 182, "d": [99,302], "a": 1 }, + { "px": [608,80], "src": [336,112], "f": 0, "t": 182, "d": [99,303], "a": 1 }, + { "px": [112,96], "src": [336,112], "f": 2, "t": 182, "d": [99,325], "a": 1 }, + { "px": [128,96], "src": [336,112], "f": 2, "t": 182, "d": [99,326], "a": 1 }, + { "px": [256,112], "src": [336,112], "f": 0, "t": 182, "d": [99,387], "a": 1 }, + { "px": [272,112], "src": [336,112], "f": 0, "t": 182, "d": [99,388], "a": 1 }, + { "px": [544,112], "src": [336,112], "f": 2, "t": 182, "d": [99,405], "a": 1 }, + { "px": [560,112], "src": [336,112], "f": 2, "t": 182, "d": [99,406], "a": 1 }, + { "px": [576,112], "src": [336,112], "f": 2, "t": 182, "d": [99,407], "a": 1 }, + { "px": [592,112], "src": [336,112], "f": 2, "t": 182, "d": [99,408], "a": 1 }, + { "px": [608,112], "src": [336,112], "f": 2, "t": 182, "d": [99,409], "a": 1 }, + { "px": [400,128], "src": [336,112], "f": 2, "t": 182, "d": [99,449], "a": 1 }, + { "px": [624,128], "src": [336,112], "f": 2, "t": 182, "d": [99,463], "a": 1 }, + { "px": [640,128], "src": [336,112], "f": 2, "t": 182, "d": [99,464], "a": 1 }, + { "px": [656,128], "src": [336,112], "f": 2, "t": 182, "d": [99,465], "a": 1 }, + { "px": [672,128], "src": [336,112], "f": 2, "t": 182, "d": [99,466], "a": 1 }, + { "px": [688,128], "src": [336,112], "f": 2, "t": 182, "d": [99,467], "a": 1 }, + { "px": [720,128], "src": [336,112], "f": 2, "t": 182, "d": [99,469], "a": 1 }, + { "px": [112,144], "src": [336,112], "f": 0, "t": 182, "d": [99,484], "a": 1 }, + { "px": [128,144], "src": [336,112], "f": 0, "t": 182, "d": [99,485], "a": 1 }, + { "px": [144,144], "src": [336,112], "f": 0, "t": 182, "d": [99,486], "a": 1 }, + { "px": [160,144], "src": [336,112], "f": 0, "t": 182, "d": [99,487], "a": 1 }, + { "px": [176,144], "src": [336,112], "f": 0, "t": 182, "d": [99,488], "a": 1 }, + { "px": [192,144], "src": [336,112], "f": 0, "t": 182, "d": [99,489], "a": 1 }, + { "px": [208,144], "src": [336,112], "f": 0, "t": 182, "d": [99,490], "a": 1 }, + { "px": [224,144], "src": [336,112], "f": 0, "t": 182, "d": [99,491], "a": 1 }, + { "px": [240,144], "src": [336,112], "f": 0, "t": 182, "d": [99,492], "a": 1 }, + { "px": [352,144], "src": [336,112], "f": 2, "t": 182, "d": [99,499], "a": 1 }, + { "px": [368,144], "src": [336,112], "f": 2, "t": 182, "d": [99,500], "a": 1 }, + { "px": [384,144], "src": [336,112], "f": 2, "t": 182, "d": [99,501], "a": 1 }, + { "px": [416,144], "src": [336,112], "f": 2, "t": 182, "d": [99,503], "a": 1 }, + { "px": [432,144], "src": [336,112], "f": 2, "t": 182, "d": [99,504], "a": 1 }, + { "px": [448,144], "src": [336,112], "f": 2, "t": 182, "d": [99,505], "a": 1 }, + { "px": [464,144], "src": [336,112], "f": 2, "t": 182, "d": [99,506], "a": 1 }, + { "px": [480,144], "src": [336,112], "f": 2, "t": 182, "d": [99,507], "a": 1 }, + { "px": [496,144], "src": [336,112], "f": 2, "t": 182, "d": [99,508], "a": 1 }, + { "px": [512,144], "src": [336,112], "f": 2, "t": 182, "d": [99,509], "a": 1 }, + { "px": [528,144], "src": [336,112], "f": 2, "t": 182, "d": [99,510], "a": 1 }, + { "px": [112,192], "src": [336,112], "f": 2, "t": 182, "d": [99,643], "a": 1 }, + { "px": [128,192], "src": [336,112], "f": 2, "t": 182, "d": [99,644], "a": 1 }, + { "px": [144,192], "src": [336,112], "f": 2, "t": 182, "d": [99,645], "a": 1 }, + { "px": [160,192], "src": [336,112], "f": 2, "t": 182, "d": [99,646], "a": 1 }, + { "px": [176,192], "src": [336,112], "f": 2, "t": 182, "d": [99,647], "a": 1 }, + { "px": [192,192], "src": [336,112], "f": 2, "t": 182, "d": [99,648], "a": 1 }, + { "px": [208,192], "src": [336,112], "f": 2, "t": 182, "d": [99,649], "a": 1 }, + { "px": [224,192], "src": [336,112], "f": 2, "t": 182, "d": [99,650], "a": 1 }, + { "px": [240,192], "src": [336,112], "f": 2, "t": 182, "d": [99,651], "a": 1 }, + { "px": [352,224], "src": [336,112], "f": 0, "t": 182, "d": [99,764], "a": 1 }, + { "px": [368,240], "src": [336,112], "f": 0, "t": 182, "d": [99,818], "a": 1 }, + { "px": [384,240], "src": [336,112], "f": 0, "t": 182, "d": [99,819], "a": 1 }, + { "px": [416,240], "src": [336,112], "f": 0, "t": 182, "d": [99,821], "a": 1 }, + { "px": [464,240], "src": [336,112], "f": 0, "t": 182, "d": [99,824], "a": 1 }, + { "px": [480,240], "src": [336,112], "f": 0, "t": 182, "d": [99,825], "a": 1 }, + { "px": [496,240], "src": [336,112], "f": 0, "t": 182, "d": [99,826], "a": 1 }, + { "px": [512,240], "src": [336,112], "f": 0, "t": 182, "d": [99,827], "a": 1 }, + { "px": [112,256], "src": [336,112], "f": 0, "t": 182, "d": [99,855], "a": 1 }, + { "px": [128,256], "src": [336,112], "f": 0, "t": 182, "d": [99,856], "a": 1 }, + { "px": [320,256], "src": [336,112], "f": 2, "t": 182, "d": [99,868], "a": 1 }, + { "px": [432,256], "src": [336,112], "f": 0, "t": 182, "d": [99,875], "a": 1 }, + { "px": [448,256], "src": [336,112], "f": 0, "t": 182, "d": [99,876], "a": 1 }, + { "px": [256,272], "src": [336,112], "f": 2, "t": 182, "d": [99,917], "a": 1 }, + { "px": [272,272], "src": [336,112], "f": 2, "t": 182, "d": [99,918], "a": 1 }, + { "px": [288,272], "src": [336,112], "f": 2, "t": 182, "d": [99,919], "a": 1 }, + { "px": [304,272], "src": [336,112], "f": 2, "t": 182, "d": [99,920], "a": 1 }, + { "px": [336,272], "src": [336,112], "f": 2, "t": 182, "d": [99,922], "a": 1 }, + { "px": [352,272], "src": [336,112], "f": 2, "t": 182, "d": [99,923], "a": 1 }, + { "px": [368,272], "src": [336,112], "f": 2, "t": 182, "d": [99,924], "a": 1 }, + { "px": [384,272], "src": [336,112], "f": 2, "t": 182, "d": [99,925], "a": 1 }, + { "px": [416,272], "src": [336,112], "f": 2, "t": 182, "d": [99,927], "a": 1 }, + { "px": [432,272], "src": [336,112], "f": 2, "t": 182, "d": [99,928], "a": 1 }, + { "px": [448,272], "src": [336,112], "f": 2, "t": 182, "d": [99,929], "a": 1 }, + { "px": [464,272], "src": [336,112], "f": 2, "t": 182, "d": [99,930], "a": 1 }, + { "px": [480,272], "src": [336,112], "f": 2, "t": 182, "d": [99,931], "a": 1 }, + { "px": [496,272], "src": [336,112], "f": 2, "t": 182, "d": [99,932], "a": 1 }, + { "px": [512,272], "src": [336,112], "f": 2, "t": 182, "d": [99,933], "a": 1 }, + { "px": [128,0], "src": [320,128], "f": 1, "t": 204, "d": [100,8], "a": 1 }, + { "px": [128,16], "src": [320,128], "f": 1, "t": 204, "d": [100,61], "a": 1 }, + { "px": [128,32], "src": [320,128], "f": 1, "t": 204, "d": [100,114], "a": 1 }, + { "px": [496,32], "src": [320,128], "f": 0, "t": 204, "d": [100,137], "a": 1 }, + { "px": [512,32], "src": [320,128], "f": 1, "t": 204, "d": [100,138], "a": 1 }, + { "px": [128,48], "src": [320,128], "f": 1, "t": 204, "d": [100,167], "a": 1 }, + { "px": [320,48], "src": [320,128], "f": 0, "t": 204, "d": [100,179], "a": 1 }, + { "px": [352,48], "src": [320,128], "f": 1, "t": 204, "d": [100,181], "a": 1 }, + { "px": [464,48], "src": [320,128], "f": 0, "t": 204, "d": [100,188], "a": 1 }, + { "px": [528,48], "src": [320,128], "f": 1, "t": 204, "d": [100,192], "a": 1 }, + { "px": [624,48], "src": [320,128], "f": 0, "t": 204, "d": [100,198], "a": 1 }, + { "px": [688,48], "src": [320,128], "f": 1, "t": 204, "d": [100,202], "a": 1 }, + { "px": [720,48], "src": [320,128], "f": 0, "t": 204, "d": [100,204], "a": 1 }, + { "px": [720,48], "src": [320,128], "f": 1, "t": 204, "d": [100,204], "a": 1 }, + { "px": [128,64], "src": [320,128], "f": 1, "t": 204, "d": [100,220], "a": 1 }, + { "px": [320,64], "src": [320,128], "f": 0, "t": 204, "d": [100,232], "a": 1 }, + { "px": [384,64], "src": [320,128], "f": 1, "t": 204, "d": [100,236], "a": 1 }, + { "px": [432,64], "src": [320,128], "f": 0, "t": 204, "d": [100,239], "a": 1 }, + { "px": [528,64], "src": [320,128], "f": 1, "t": 204, "d": [100,245], "a": 1 }, + { "px": [624,64], "src": [320,128], "f": 0, "t": 204, "d": [100,251], "a": 1 }, + { "px": [688,64], "src": [320,128], "f": 1, "t": 204, "d": [100,255], "a": 1 }, + { "px": [720,64], "src": [320,128], "f": 0, "t": 204, "d": [100,257], "a": 1 }, + { "px": [720,64], "src": [320,128], "f": 1, "t": 204, "d": [100,257], "a": 1 }, + { "px": [128,80], "src": [320,128], "f": 1, "t": 204, "d": [100,273], "a": 1 }, + { "px": [288,80], "src": [320,128], "f": 0, "t": 204, "d": [100,283], "a": 1 }, + { "px": [688,80], "src": [320,128], "f": 1, "t": 204, "d": [100,308], "a": 1 }, + { "px": [720,80], "src": [320,128], "f": 0, "t": 204, "d": [100,310], "a": 1 }, + { "px": [720,80], "src": [320,128], "f": 1, "t": 204, "d": [100,310], "a": 1 }, + { "px": [128,96], "src": [320,128], "f": 1, "t": 204, "d": [100,326], "a": 1 }, + { "px": [288,96], "src": [320,128], "f": 0, "t": 204, "d": [100,336], "a": 1 }, + { "px": [688,96], "src": [320,128], "f": 1, "t": 204, "d": [100,361], "a": 1 }, + { "px": [720,96], "src": [320,128], "f": 0, "t": 204, "d": [100,363], "a": 1 }, + { "px": [720,96], "src": [320,128], "f": 1, "t": 204, "d": [100,363], "a": 1 }, + { "px": [96,112], "src": [320,128], "f": 1, "t": 204, "d": [100,377], "a": 1 }, + { "px": [256,112], "src": [320,128], "f": 0, "t": 204, "d": [100,387], "a": 1 }, + { "px": [688,112], "src": [320,128], "f": 1, "t": 204, "d": [100,414], "a": 1 }, + { "px": [720,112], "src": [320,128], "f": 0, "t": 204, "d": [100,416], "a": 1 }, + { "px": [720,112], "src": [320,128], "f": 1, "t": 204, "d": [100,416], "a": 1 }, + { "px": [96,128], "src": [320,128], "f": 1, "t": 204, "d": [100,430], "a": 1 }, + { "px": [256,128], "src": [320,128], "f": 0, "t": 204, "d": [100,440], "a": 1 }, + { "px": [528,128], "src": [320,128], "f": 1, "t": 204, "d": [100,457], "a": 1 }, + { "px": [624,128], "src": [320,128], "f": 0, "t": 204, "d": [100,463], "a": 1 }, + { "px": [688,128], "src": [320,128], "f": 1, "t": 204, "d": [100,467], "a": 1 }, + { "px": [720,128], "src": [320,128], "f": 0, "t": 204, "d": [100,469], "a": 1 }, + { "px": [720,128], "src": [320,128], "f": 1, "t": 204, "d": [100,469], "a": 1 }, + { "px": [384,144], "src": [320,128], "f": 1, "t": 204, "d": [100,501], "a": 1 }, + { "px": [416,144], "src": [320,128], "f": 0, "t": 204, "d": [100,503], "a": 1 }, + { "px": [528,144], "src": [320,128], "f": 1, "t": 204, "d": [100,510], "a": 1 }, + { "px": [288,160], "src": [320,128], "f": 1, "t": 204, "d": [100,548], "a": 1 }, + { "px": [336,176], "src": [320,128], "f": 1, "t": 204, "d": [100,604], "a": 1 }, + { "px": [336,192], "src": [320,128], "f": 1, "t": 204, "d": [100,657], "a": 1 }, + { "px": [96,208], "src": [320,128], "f": 1, "t": 204, "d": [100,695], "a": 1 }, + { "px": [256,208], "src": [320,128], "f": 0, "t": 204, "d": [100,705], "a": 1 }, + { "px": [336,208], "src": [320,128], "f": 1, "t": 204, "d": [100,710], "a": 1 }, + { "px": [96,224], "src": [320,128], "f": 1, "t": 204, "d": [100,748], "a": 1 }, + { "px": [256,224], "src": [320,128], "f": 0, "t": 204, "d": [100,758], "a": 1 }, + { "px": [352,224], "src": [320,128], "f": 1, "t": 204, "d": [100,764], "a": 1 }, + { "px": [96,240], "src": [320,128], "f": 1, "t": 204, "d": [100,801], "a": 1 }, + { "px": [256,240], "src": [320,128], "f": 0, "t": 204, "d": [100,811], "a": 1 }, + { "px": [384,240], "src": [320,128], "f": 1, "t": 204, "d": [100,819], "a": 1 }, + { "px": [416,240], "src": [320,128], "f": 0, "t": 204, "d": [100,821], "a": 1 }, + { "px": [416,240], "src": [320,128], "f": 1, "t": 204, "d": [100,821], "a": 1 }, + { "px": [464,240], "src": [320,128], "f": 0, "t": 204, "d": [100,824], "a": 1 }, + { "px": [512,240], "src": [320,128], "f": 1, "t": 204, "d": [100,827], "a": 1 }, + { "px": [128,256], "src": [320,128], "f": 1, "t": 204, "d": [100,856], "a": 1 }, + { "px": [256,256], "src": [320,128], "f": 0, "t": 204, "d": [100,864], "a": 1 }, + { "px": [384,256], "src": [320,128], "f": 1, "t": 204, "d": [100,872], "a": 1 }, + { "px": [416,256], "src": [320,128], "f": 0, "t": 204, "d": [100,874], "a": 1 }, + { "px": [512,256], "src": [320,128], "f": 1, "t": 204, "d": [100,880], "a": 1 }, + { "px": [128,272], "src": [320,128], "f": 1, "t": 204, "d": [100,909], "a": 1 }, + { "px": [256,272], "src": [320,128], "f": 0, "t": 204, "d": [100,917], "a": 1 }, + { "px": [304,272], "src": [320,128], "f": 1, "t": 204, "d": [100,920], "a": 1 }, + { "px": [336,272], "src": [320,128], "f": 0, "t": 204, "d": [100,922], "a": 1 }, + { "px": [384,272], "src": [320,128], "f": 1, "t": 204, "d": [100,925], "a": 1 }, + { "px": [416,272], "src": [320,128], "f": 0, "t": 204, "d": [100,927], "a": 1 }, + { "px": [512,272], "src": [320,128], "f": 1, "t": 204, "d": [100,933], "a": 1 }, + { "px": [128,288], "src": [320,128], "f": 1, "t": 204, "d": [100,962], "a": 1 }, + { "px": [128,304], "src": [320,128], "f": 1, "t": 204, "d": [100,1015], "a": 1 }, + { "px": [128,320], "src": [320,128], "f": 1, "t": 204, "d": [100,1068], "a": 1 } + ], + "seed": 8916381, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 53, + "__cHei": 21, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 2, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a315d32a-66b0-11ec-9cd7-515d3a6b5733", + "levelId": 0, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,3,3,3,3,3,3,3,3,2,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,2,3,3,3,3,1,1,1, + 1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,0,0,1, + 1,1,3,3,3,3,3,3,3,3,2,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1, + 1,3,3,3,0,0,0,1,1,1,1,1,1,0,0,0,0,0,3,3,3,3,3,0,0,0,0,0,2,0,3,3,3,1,1, + 1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,3,3,3,0,0,0,0,0,1,1,0,0,0,0,0,0, + 0,3,3,3,3,3,0,0,0,0,0,2,0,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,3,3,1,1,1,1, + 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,3,3,3,1, + 1,1,1,0,0,0,0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,2,0,3,3,3,1,1,1,1,0,0,0,0,0,0,0,3,3,3,3,1,1,1, + 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,3,3,3, + 1,1,1,1,0,0,0,0,0,0,0,3,3,3,3,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,3,3,3,3,3,0,0,0,0,0,2,0,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,1,1,1,1, + 1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,1,1,1,2,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3, + 3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,1,3,3, + 3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,3,3,3,3, + 1,1,1,1,1,0,0,0,0,0,0,1,1,1,2,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,0,0,0,0,0,0,0,3,3,3,3,1,1,1,1,1,0,0,0,0,0,0,0,1,1,2,1,3, + 3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,3,3,3, + 3,1,1,1,1,1,0,0,0,0,0,0,0,0,0,2,0,3,3,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,3,3,1,1,1,1,1,0,0,0,0,0,0,0,0,0,2,0, + 0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,0,0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1, + 1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 0,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1, + 1,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [13,11], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [13,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [13,15], "a": 1 }, + { "px": [256,0], "src": [32,32], "f": 0, "t": 48, "d": [13,16], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [13,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [13,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [13,19], "a": 1 }, + { "px": [320,0], "src": [32,32], "f": 0, "t": 48, "d": [13,20], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [13,21], "a": 1 }, + { "px": [352,0], "src": [32,32], "f": 0, "t": 48, "d": [13,22], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [13,23], "a": 1 }, + { "px": [384,0], "src": [32,32], "f": 0, "t": 48, "d": [13,24], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [13,28], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [13,29], "a": 1 }, + { "px": [480,0], "src": [32,32], "f": 0, "t": 48, "d": [13,30], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [13,31], "a": 1 }, + { "px": [512,0], "src": [32,32], "f": 0, "t": 48, "d": [13,32], "a": 1 }, + { "px": [528,0], "src": [32,32], "f": 0, "t": 48, "d": [13,33], "a": 1 }, + { "px": [544,0], "src": [32,32], "f": 0, "t": 48, "d": [13,34], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [13,63], "a": 1 }, + { "px": [176,16], "src": [32,32], "f": 0, "t": 48, "d": [13,64], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [13,67], "a": 1 }, + { "px": [240,16], "src": [32,32], "f": 0, "t": 48, "d": [13,68], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [13,69], "a": 1 }, + { "px": [336,16], "src": [32,32], "f": 0, "t": 48, "d": [13,74], "a": 1 }, + { "px": [400,16], "src": [32,32], "f": 0, "t": 48, "d": [13,78], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [13,81], "a": 1 }, + { "px": [528,16], "src": [32,32], "f": 0, "t": 48, "d": [13,86], "a": 1 }, + { "px": [544,16], "src": [32,32], "f": 0, "t": 48, "d": [13,87], "a": 1 }, + { "px": [816,16], "src": [32,32], "f": 0, "t": 48, "d": [13,104], "a": 1 }, + { "px": [160,32], "src": [32,32], "f": 0, "t": 48, "d": [13,116], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [13,117], "a": 1 }, + { "px": [192,32], "src": [32,32], "f": 0, "t": 48, "d": [13,118], "a": 1 }, + { "px": [224,32], "src": [32,32], "f": 0, "t": 48, "d": [13,120], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [13,121], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [13,129], "a": 1 }, + { "px": [384,32], "src": [32,32], "f": 0, "t": 48, "d": [13,130], "a": 1 }, + { "px": [160,48], "src": [32,32], "f": 0, "t": 48, "d": [13,169], "a": 1 }, + { "px": [176,48], "src": [32,32], "f": 0, "t": 48, "d": [13,170], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [13,171], "a": 1 }, + { "px": [208,48], "src": [32,32], "f": 0, "t": 48, "d": [13,172], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [13,173], "a": 1 }, + { "px": [240,48], "src": [32,32], "f": 0, "t": 48, "d": [13,174], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [13,223], "a": 1 }, + { "px": [192,64], "src": [32,32], "f": 0, "t": 48, "d": [13,224], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [13,225], "a": 1 }, + { "px": [224,64], "src": [32,32], "f": 0, "t": 48, "d": [13,226], "a": 1 }, + { "px": [192,80], "src": [32,32], "f": 0, "t": 48, "d": [13,277], "a": 1 }, + { "px": [208,80], "src": [32,32], "f": 0, "t": 48, "d": [13,278], "a": 1 }, + { "px": [224,80], "src": [32,32], "f": 0, "t": 48, "d": [13,279], "a": 1 }, + { "px": [192,96], "src": [32,32], "f": 0, "t": 48, "d": [13,330], "a": 1 }, + { "px": [208,96], "src": [32,32], "f": 0, "t": 48, "d": [13,331], "a": 1 }, + { "px": [224,96], "src": [32,32], "f": 0, "t": 48, "d": [13,332], "a": 1 }, + { "px": [800,96], "src": [32,32], "f": 0, "t": 48, "d": [13,368], "a": 1 }, + { "px": [192,112], "src": [32,32], "f": 0, "t": 48, "d": [13,383], "a": 1 }, + { "px": [208,112], "src": [32,32], "f": 0, "t": 48, "d": [13,384], "a": 1 }, + { "px": [224,112], "src": [32,32], "f": 0, "t": 48, "d": [13,385], "a": 1 }, + { "px": [800,112], "src": [32,32], "f": 0, "t": 48, "d": [13,421], "a": 1 }, + { "px": [816,112], "src": [32,32], "f": 0, "t": 48, "d": [13,422], "a": 1 }, + { "px": [800,128], "src": [32,32], "f": 0, "t": 48, "d": [13,474], "a": 1 }, + { "px": [816,128], "src": [32,32], "f": 0, "t": 48, "d": [13,475], "a": 1 }, + { "px": [800,144], "src": [32,32], "f": 0, "t": 48, "d": [13,527], "a": 1 }, + { "px": [816,144], "src": [32,32], "f": 0, "t": 48, "d": [13,528], "a": 1 }, + { "px": [816,160], "src": [32,32], "f": 0, "t": 48, "d": [13,581], "a": 1 }, + { "px": [816,176], "src": [32,32], "f": 0, "t": 48, "d": [13,634], "a": 1 }, + { "px": [368,192], "src": [32,32], "f": 0, "t": 48, "d": [13,659], "a": 1 }, + { "px": [800,192], "src": [32,32], "f": 0, "t": 48, "d": [13,686], "a": 1 }, + { "px": [816,192], "src": [32,32], "f": 0, "t": 48, "d": [13,687], "a": 1 }, + { "px": [368,208], "src": [32,32], "f": 0, "t": 48, "d": [13,712], "a": 1 }, + { "px": [576,208], "src": [32,32], "f": 0, "t": 48, "d": [13,725], "a": 1 }, + { "px": [592,208], "src": [32,32], "f": 0, "t": 48, "d": [13,726], "a": 1 }, + { "px": [608,208], "src": [32,32], "f": 0, "t": 48, "d": [13,727], "a": 1 }, + { "px": [656,208], "src": [32,32], "f": 0, "t": 48, "d": [13,730], "a": 1 }, + { "px": [784,208], "src": [32,32], "f": 0, "t": 48, "d": [13,738], "a": 1 }, + { "px": [576,224], "src": [32,32], "f": 0, "t": 48, "d": [13,778], "a": 1 }, + { "px": [592,224], "src": [32,32], "f": 0, "t": 48, "d": [13,779], "a": 1 }, + { "px": [608,224], "src": [32,32], "f": 0, "t": 48, "d": [13,780], "a": 1 }, + { "px": [624,224], "src": [32,32], "f": 0, "t": 48, "d": [13,781], "a": 1 }, + { "px": [672,224], "src": [32,32], "f": 0, "t": 48, "d": [13,784], "a": 1 }, + { "px": [768,224], "src": [32,32], "f": 0, "t": 48, "d": [13,790], "a": 1 }, + { "px": [224,240], "src": [32,32], "f": 0, "t": 48, "d": [13,809], "a": 1 }, + { "px": [576,240], "src": [32,32], "f": 0, "t": 48, "d": [13,831], "a": 1 }, + { "px": [592,240], "src": [32,32], "f": 0, "t": 48, "d": [13,832], "a": 1 }, + { "px": [208,256], "src": [32,32], "f": 0, "t": 48, "d": [13,861], "a": 1 }, + { "px": [576,256], "src": [32,32], "f": 0, "t": 48, "d": [13,884], "a": 1 }, + { "px": [592,256], "src": [32,32], "f": 0, "t": 48, "d": [13,885], "a": 1 }, + { "px": [208,272], "src": [32,32], "f": 0, "t": 48, "d": [13,914], "a": 1 }, + { "px": [576,272], "src": [32,32], "f": 0, "t": 48, "d": [13,937], "a": 1 }, + { "px": [592,272], "src": [32,32], "f": 0, "t": 48, "d": [13,938], "a": 1 }, + { "px": [160,288], "src": [32,32], "f": 0, "t": 48, "d": [13,964], "a": 1 }, + { "px": [192,288], "src": [32,32], "f": 0, "t": 48, "d": [13,966], "a": 1 }, + { "px": [576,288], "src": [32,32], "f": 0, "t": 48, "d": [13,990], "a": 1 }, + { "px": [592,288], "src": [32,32], "f": 0, "t": 48, "d": [13,991], "a": 1 }, + { "px": [256,304], "src": [32,32], "f": 0, "t": 48, "d": [13,1023], "a": 1 }, + { "px": [352,304], "src": [32,32], "f": 0, "t": 48, "d": [13,1029], "a": 1 }, + { "px": [368,304], "src": [32,32], "f": 0, "t": 48, "d": [13,1030], "a": 1 }, + { "px": [384,304], "src": [32,32], "f": 0, "t": 48, "d": [13,1031], "a": 1 }, + { "px": [400,304], "src": [32,32], "f": 0, "t": 48, "d": [13,1032], "a": 1 }, + { "px": [576,304], "src": [32,32], "f": 0, "t": 48, "d": [13,1043], "a": 1 }, + { "px": [592,304], "src": [32,32], "f": 0, "t": 48, "d": [13,1044], "a": 1 }, + { "px": [176,320], "src": [32,32], "f": 0, "t": 48, "d": [13,1071], "a": 1 }, + { "px": [240,320], "src": [32,32], "f": 0, "t": 48, "d": [13,1075], "a": 1 }, + { "px": [256,320], "src": [32,32], "f": 0, "t": 48, "d": [13,1076], "a": 1 }, + { "px": [288,320], "src": [32,32], "f": 0, "t": 48, "d": [13,1078], "a": 1 }, + { "px": [352,320], "src": [32,32], "f": 0, "t": 48, "d": [13,1082], "a": 1 }, + { "px": [368,320], "src": [32,32], "f": 0, "t": 48, "d": [13,1083], "a": 1 }, + { "px": [384,320], "src": [32,32], "f": 0, "t": 48, "d": [13,1084], "a": 1 }, + { "px": [400,320], "src": [32,32], "f": 0, "t": 48, "d": [13,1085], "a": 1 }, + { "px": [576,320], "src": [32,32], "f": 0, "t": 48, "d": [13,1096], "a": 1 }, + { "px": [592,320], "src": [32,32], "f": 0, "t": 48, "d": [13,1097], "a": 1 }, + { "px": [320,16], "src": [96,96], "f": 0, "t": 144, "d": [81,73], "a": 1 }, + { "px": [416,16], "src": [96,96], "f": 0, "t": 144, "d": [81,79], "a": 1 }, + { "px": [400,32], "src": [96,96], "f": 0, "t": 144, "d": [81,131], "a": 1 }, + { "px": [432,32], "src": [96,96], "f": 0, "t": 144, "d": [81,133], "a": 1 }, + { "px": [800,32], "src": [96,96], "f": 0, "t": 144, "d": [81,156], "a": 1 }, + { "px": [816,32], "src": [96,96], "f": 0, "t": 144, "d": [81,157], "a": 1 }, + { "px": [800,48], "src": [96,96], "f": 0, "t": 144, "d": [81,209], "a": 1 }, + { "px": [816,48], "src": [96,96], "f": 0, "t": 144, "d": [81,210], "a": 1 }, + { "px": [816,64], "src": [96,96], "f": 0, "t": 144, "d": [81,263], "a": 1 }, + { "px": [240,80], "src": [96,96], "f": 0, "t": 144, "d": [81,280], "a": 1 }, + { "px": [256,80], "src": [96,96], "f": 0, "t": 144, "d": [81,281], "a": 1 }, + { "px": [800,80], "src": [96,96], "f": 0, "t": 144, "d": [81,315], "a": 1 }, + { "px": [816,80], "src": [96,96], "f": 0, "t": 144, "d": [81,316], "a": 1 }, + { "px": [816,96], "src": [96,96], "f": 0, "t": 144, "d": [81,369], "a": 1 }, + { "px": [368,176], "src": [96,96], "f": 0, "t": 144, "d": [81,606], "a": 1 }, + { "px": [800,176], "src": [96,96], "f": 0, "t": 144, "d": [81,633], "a": 1 }, + { "px": [784,192], "src": [96,96], "f": 0, "t": 144, "d": [81,685], "a": 1 }, + { "px": [624,208], "src": [96,96], "f": 0, "t": 144, "d": [81,728], "a": 1 }, + { "px": [672,208], "src": [96,96], "f": 0, "t": 144, "d": [81,731], "a": 1 }, + { "px": [688,208], "src": [96,96], "f": 0, "t": 144, "d": [81,732], "a": 1 }, + { "px": [768,208], "src": [96,96], "f": 0, "t": 144, "d": [81,737], "a": 1 }, + { "px": [192,224], "src": [96,96], "f": 0, "t": 144, "d": [81,754], "a": 1 }, + { "px": [208,224], "src": [96,96], "f": 0, "t": 144, "d": [81,755], "a": 1 }, + { "px": [224,224], "src": [96,96], "f": 0, "t": 144, "d": [81,756], "a": 1 }, + { "px": [640,224], "src": [96,96], "f": 0, "t": 144, "d": [81,782], "a": 1 }, + { "px": [704,224], "src": [96,96], "f": 0, "t": 144, "d": [81,786], "a": 1 }, + { "px": [736,224], "src": [96,96], "f": 0, "t": 144, "d": [81,788], "a": 1 }, + { "px": [752,224], "src": [96,96], "f": 0, "t": 144, "d": [81,789], "a": 1 }, + { "px": [784,224], "src": [96,96], "f": 0, "t": 144, "d": [81,791], "a": 1 }, + { "px": [800,224], "src": [96,96], "f": 0, "t": 144, "d": [81,792], "a": 1 }, + { "px": [192,240], "src": [96,96], "f": 0, "t": 144, "d": [81,807], "a": 1 }, + { "px": [192,256], "src": [96,96], "f": 0, "t": 144, "d": [81,860], "a": 1 }, + { "px": [224,256], "src": [96,96], "f": 0, "t": 144, "d": [81,862], "a": 1 }, + { "px": [224,272], "src": [96,96], "f": 0, "t": 144, "d": [81,915], "a": 1 }, + { "px": [176,288], "src": [96,96], "f": 0, "t": 144, "d": [81,965], "a": 1 }, + { "px": [240,288], "src": [96,96], "f": 0, "t": 144, "d": [81,969], "a": 1 }, + { "px": [176,304], "src": [96,96], "f": 0, "t": 144, "d": [81,1018], "a": 1 }, + { "px": [192,304], "src": [96,96], "f": 0, "t": 144, "d": [81,1019], "a": 1 }, + { "px": [208,304], "src": [96,96], "f": 0, "t": 144, "d": [81,1020], "a": 1 }, + { "px": [224,304], "src": [96,96], "f": 0, "t": 144, "d": [81,1021], "a": 1 }, + { "px": [240,304], "src": [96,96], "f": 0, "t": 144, "d": [81,1022], "a": 1 }, + { "px": [288,304], "src": [96,96], "f": 0, "t": 144, "d": [81,1025], "a": 1 }, + { "px": [160,0], "src": [64,96], "f": 0, "t": 142, "d": [14,10], "a": 1 }, + { "px": [432,0], "src": [64,96], "f": 0, "t": 142, "d": [14,27], "a": 1 }, + { "px": [800,0], "src": [64,96], "f": 0, "t": 142, "d": [14,50], "a": 1 }, + { "px": [816,0], "src": [96,96], "f": 0, "t": 144, "d": [14,51], "a": 1 }, + { "px": [352,16], "src": [96,96], "f": 0, "t": 144, "d": [14,75], "a": 1 }, + { "px": [368,16], "src": [64,96], "f": 0, "t": 142, "d": [14,76], "a": 1 }, + { "px": [384,16], "src": [96,96], "f": 0, "t": 144, "d": [14,77], "a": 1 }, + { "px": [432,16], "src": [96,96], "f": 0, "t": 144, "d": [14,80], "a": 1 }, + { "px": [464,16], "src": [64,96], "f": 0, "t": 142, "d": [14,82], "a": 1 }, + { "px": [480,16], "src": [64,96], "f": 0, "t": 142, "d": [14,83], "a": 1 }, + { "px": [800,16], "src": [64,96], "f": 0, "t": 142, "d": [14,103], "a": 1 }, + { "px": [416,32], "src": [96,96], "f": 0, "t": 144, "d": [14,132], "a": 1 }, + { "px": [448,32], "src": [64,96], "f": 0, "t": 142, "d": [14,134], "a": 1 }, + { "px": [400,48], "src": [96,96], "f": 0, "t": 144, "d": [14,184], "a": 1 }, + { "px": [416,48], "src": [96,96], "f": 0, "t": 144, "d": [14,185], "a": 1 }, + { "px": [240,64], "src": [64,96], "f": 0, "t": 142, "d": [14,227], "a": 1 }, + { "px": [800,64], "src": [64,96], "f": 0, "t": 142, "d": [14,262], "a": 1 }, + { "px": [240,96], "src": [64,96], "f": 0, "t": 142, "d": [14,333], "a": 1 }, + { "px": [800,160], "src": [64,96], "f": 0, "t": 142, "d": [14,580], "a": 1 }, + { "px": [640,208], "src": [96,96], "f": 0, "t": 144, "d": [14,729], "a": 1 }, + { "px": [704,208], "src": [96,96], "f": 0, "t": 144, "d": [14,733], "a": 1 }, + { "px": [720,208], "src": [96,96], "f": 0, "t": 144, "d": [14,734], "a": 1 }, + { "px": [736,208], "src": [64,96], "f": 0, "t": 142, "d": [14,735], "a": 1 }, + { "px": [752,208], "src": [64,96], "f": 0, "t": 142, "d": [14,736], "a": 1 }, + { "px": [800,208], "src": [96,96], "f": 0, "t": 144, "d": [14,739], "a": 1 }, + { "px": [816,208], "src": [64,96], "f": 0, "t": 142, "d": [14,740], "a": 1 }, + { "px": [656,224], "src": [96,96], "f": 0, "t": 144, "d": [14,783], "a": 1 }, + { "px": [688,224], "src": [64,96], "f": 0, "t": 142, "d": [14,785], "a": 1 }, + { "px": [720,224], "src": [64,96], "f": 0, "t": 142, "d": [14,787], "a": 1 }, + { "px": [208,240], "src": [96,96], "f": 0, "t": 144, "d": [14,808], "a": 1 }, + { "px": [176,272], "src": [96,96], "f": 0, "t": 144, "d": [14,912], "a": 1 }, + { "px": [192,272], "src": [64,96], "f": 0, "t": 142, "d": [14,913], "a": 1 }, + { "px": [208,288], "src": [64,96], "f": 0, "t": 142, "d": [14,967], "a": 1 }, + { "px": [224,288], "src": [64,96], "f": 0, "t": 142, "d": [14,968], "a": 1 }, + { "px": [160,304], "src": [64,96], "f": 0, "t": 142, "d": [14,1017], "a": 1 }, + { "px": [272,304], "src": [96,96], "f": 0, "t": 144, "d": [14,1024], "a": 1 }, + { "px": [160,320], "src": [96,96], "f": 0, "t": 144, "d": [14,1070], "a": 1 }, + { "px": [224,320], "src": [64,96], "f": 0, "t": 142, "d": [14,1074], "a": 1 }, + { "px": [272,320], "src": [96,96], "f": 0, "t": 144, "d": [14,1077], "a": 1 }, + { "px": [144,0], "src": [0,32], "f": 0, "t": 46, "d": [16,9], "a": 1 }, + { "px": [560,0], "src": [0,32], "f": 1, "t": 46, "d": [16,35], "a": 1 }, + { "px": [784,0], "src": [0,32], "f": 0, "t": 46, "d": [16,49], "a": 1 }, + { "px": [144,16], "src": [0,32], "f": 0, "t": 46, "d": [16,62], "a": 1 }, + { "px": [560,16], "src": [0,32], "f": 1, "t": 46, "d": [16,88], "a": 1 }, + { "px": [784,16], "src": [0,32], "f": 0, "t": 46, "d": [16,102], "a": 1 }, + { "px": [144,32], "src": [0,32], "f": 0, "t": 46, "d": [16,115], "a": 1 }, + { "px": [256,32], "src": [0,32], "f": 1, "t": 46, "d": [16,122], "a": 1 }, + { "px": [784,32], "src": [0,32], "f": 0, "t": 46, "d": [16,155], "a": 1 }, + { "px": [144,48], "src": [0,32], "f": 0, "t": 46, "d": [16,168], "a": 1 }, + { "px": [256,48], "src": [0,32], "f": 1, "t": 46, "d": [16,175], "a": 1 }, + { "px": [784,48], "src": [0,32], "f": 0, "t": 46, "d": [16,208], "a": 1 }, + { "px": [256,64], "src": [0,32], "f": 1, "t": 46, "d": [16,228], "a": 1 }, + { "px": [784,64], "src": [0,32], "f": 0, "t": 46, "d": [16,261], "a": 1 }, + { "px": [176,80], "src": [0,32], "f": 0, "t": 46, "d": [16,276], "a": 1 }, + { "px": [784,80], "src": [0,32], "f": 0, "t": 46, "d": [16,314], "a": 1 }, + { "px": [176,96], "src": [0,32], "f": 0, "t": 46, "d": [16,329], "a": 1 }, + { "px": [784,96], "src": [0,32], "f": 0, "t": 46, "d": [16,367], "a": 1 }, + { "px": [176,112], "src": [0,32], "f": 0, "t": 46, "d": [16,382], "a": 1 }, + { "px": [240,112], "src": [0,32], "f": 1, "t": 46, "d": [16,386], "a": 1 }, + { "px": [784,112], "src": [0,32], "f": 0, "t": 46, "d": [16,420], "a": 1 }, + { "px": [784,128], "src": [0,32], "f": 0, "t": 46, "d": [16,473], "a": 1 }, + { "px": [784,144], "src": [0,32], "f": 0, "t": 46, "d": [16,526], "a": 1 }, + { "px": [784,160], "src": [0,32], "f": 0, "t": 46, "d": [16,579], "a": 1 }, + { "px": [352,176], "src": [0,32], "f": 0, "t": 46, "d": [16,605], "a": 1 }, + { "px": [384,176], "src": [0,32], "f": 1, "t": 46, "d": [16,607], "a": 1 }, + { "px": [416,176], "src": [0,32], "f": 0, "t": 46, "d": [16,609], "a": 1 }, + { "px": [560,176], "src": [0,32], "f": 1, "t": 46, "d": [16,618], "a": 1 }, + { "px": [784,176], "src": [0,32], "f": 0, "t": 46, "d": [16,632], "a": 1 }, + { "px": [352,192], "src": [0,32], "f": 0, "t": 46, "d": [16,658], "a": 1 }, + { "px": [384,192], "src": [0,32], "f": 1, "t": 46, "d": [16,660], "a": 1 }, + { "px": [416,192], "src": [0,32], "f": 0, "t": 46, "d": [16,662], "a": 1 }, + { "px": [560,192], "src": [0,32], "f": 0, "t": 46, "d": [16,671], "a": 1 }, + { "px": [384,208], "src": [0,32], "f": 1, "t": 46, "d": [16,713], "a": 1 }, + { "px": [416,208], "src": [0,32], "f": 0, "t": 46, "d": [16,715], "a": 1 }, + { "px": [560,208], "src": [0,32], "f": 0, "t": 46, "d": [16,724], "a": 1 }, + { "px": [176,224], "src": [0,32], "f": 0, "t": 46, "d": [16,753], "a": 1 }, + { "px": [240,224], "src": [0,32], "f": 1, "t": 46, "d": [16,757], "a": 1 }, + { "px": [560,224], "src": [0,32], "f": 0, "t": 46, "d": [16,777], "a": 1 }, + { "px": [176,240], "src": [0,32], "f": 0, "t": 46, "d": [16,806], "a": 1 }, + { "px": [240,240], "src": [0,32], "f": 1, "t": 46, "d": [16,810], "a": 1 }, + { "px": [560,240], "src": [0,32], "f": 0, "t": 46, "d": [16,830], "a": 1 }, + { "px": [176,256], "src": [0,32], "f": 0, "t": 46, "d": [16,859], "a": 1 }, + { "px": [240,256], "src": [0,32], "f": 1, "t": 46, "d": [16,863], "a": 1 }, + { "px": [560,256], "src": [0,32], "f": 0, "t": 46, "d": [16,883], "a": 1 }, + { "px": [240,272], "src": [0,32], "f": 1, "t": 46, "d": [16,916], "a": 1 }, + { "px": [560,272], "src": [0,32], "f": 0, "t": 46, "d": [16,936], "a": 1 }, + { "px": [144,288], "src": [0,32], "f": 0, "t": 46, "d": [16,963], "a": 1 }, + { "px": [560,288], "src": [0,32], "f": 0, "t": 46, "d": [16,989], "a": 1 }, + { "px": [144,304], "src": [0,32], "f": 0, "t": 46, "d": [16,1016], "a": 1 }, + { "px": [304,304], "src": [0,32], "f": 1, "t": 46, "d": [16,1026], "a": 1 }, + { "px": [336,304], "src": [0,32], "f": 0, "t": 46, "d": [16,1028], "a": 1 }, + { "px": [416,304], "src": [0,32], "f": 1, "t": 46, "d": [16,1033], "a": 1 }, + { "px": [560,304], "src": [0,32], "f": 0, "t": 46, "d": [16,1042], "a": 1 }, + { "px": [144,320], "src": [0,32], "f": 0, "t": 46, "d": [16,1069], "a": 1 }, + { "px": [304,320], "src": [0,32], "f": 1, "t": 46, "d": [16,1079], "a": 1 }, + { "px": [336,320], "src": [0,32], "f": 0, "t": 46, "d": [16,1081], "a": 1 }, + { "px": [416,320], "src": [0,32], "f": 1, "t": 46, "d": [16,1086], "a": 1 }, + { "px": [560,320], "src": [0,32], "f": 0, "t": 46, "d": [16,1095], "a": 1 }, + { "px": [272,16], "src": [32,64], "f": 0, "t": 94, "d": [18,70], "a": 1 }, + { "px": [288,16], "src": [32,64], "f": 0, "t": 94, "d": [18,71], "a": 1 }, + { "px": [304,16], "src": [32,64], "f": 0, "t": 94, "d": [18,72], "a": 1 }, + { "px": [496,16], "src": [32,64], "f": 0, "t": 94, "d": [18,84], "a": 1 }, + { "px": [512,16], "src": [32,64], "f": 0, "t": 94, "d": [18,85], "a": 1 }, + { "px": [336,32], "src": [32,64], "f": 0, "t": 94, "d": [18,127], "a": 1 }, + { "px": [352,32], "src": [32,64], "f": 0, "t": 94, "d": [18,128], "a": 1 }, + { "px": [464,32], "src": [32,64], "f": 0, "t": 94, "d": [18,135], "a": 1 }, + { "px": [544,32], "src": [32,64], "f": 0, "t": 94, "d": [18,140], "a": 1 }, + { "px": [384,48], "src": [32,64], "f": 0, "t": 94, "d": [18,183], "a": 1 }, + { "px": [432,48], "src": [32,64], "f": 0, "t": 94, "d": [18,186], "a": 1 }, + { "px": [160,64], "src": [32,64], "f": 0, "t": 94, "d": [18,222], "a": 1 }, + { "px": [256,96], "src": [32,64], "f": 0, "t": 94, "d": [18,334], "a": 1 }, + { "px": [192,128], "src": [32,64], "f": 0, "t": 94, "d": [18,436], "a": 1 }, + { "px": [208,128], "src": [32,64], "f": 0, "t": 94, "d": [18,437], "a": 1 }, + { "px": [224,128], "src": [32,64], "f": 0, "t": 94, "d": [18,438], "a": 1 }, + { "px": [432,176], "src": [32,64], "f": 0, "t": 94, "d": [18,610], "a": 1 }, + { "px": [448,176], "src": [32,64], "f": 0, "t": 94, "d": [18,611], "a": 1 }, + { "px": [464,176], "src": [32,64], "f": 0, "t": 94, "d": [18,612], "a": 1 }, + { "px": [480,176], "src": [32,64], "f": 0, "t": 94, "d": [18,613], "a": 1 }, + { "px": [496,176], "src": [32,64], "f": 0, "t": 94, "d": [18,614], "a": 1 }, + { "px": [512,176], "src": [32,64], "f": 0, "t": 94, "d": [18,615], "a": 1 }, + { "px": [528,176], "src": [32,64], "f": 0, "t": 94, "d": [18,616], "a": 1 }, + { "px": [544,176], "src": [32,64], "f": 0, "t": 94, "d": [18,617], "a": 1 }, + { "px": [320,32], "src": [0,64], "f": 0, "t": 92, "d": [17,126], "a": 1 }, + { "px": [480,32], "src": [0,64], "f": 1, "t": 92, "d": [17,136], "a": 1 }, + { "px": [528,32], "src": [0,64], "f": 0, "t": 92, "d": [17,139], "a": 1 }, + { "px": [560,32], "src": [0,64], "f": 1, "t": 92, "d": [17,141], "a": 1 }, + { "px": [368,48], "src": [0,64], "f": 0, "t": 92, "d": [17,182], "a": 1 }, + { "px": [448,48], "src": [0,64], "f": 1, "t": 92, "d": [17,187], "a": 1 }, + { "px": [144,64], "src": [0,64], "f": 0, "t": 92, "d": [17,221], "a": 1 }, + { "px": [400,64], "src": [0,64], "f": 0, "t": 92, "d": [17,237], "a": 1 }, + { "px": [416,64], "src": [0,64], "f": 1, "t": 92, "d": [17,238], "a": 1 }, + { "px": [272,96], "src": [0,64], "f": 1, "t": 92, "d": [17,335], "a": 1 }, + { "px": [176,128], "src": [0,64], "f": 0, "t": 92, "d": [17,435], "a": 1 }, + { "px": [240,128], "src": [0,64], "f": 1, "t": 92, "d": [17,439], "a": 1 }, + { "px": [352,208], "src": [0,64], "f": 0, "t": 92, "d": [17,711], "a": 1 }, + { "px": [368,224], "src": [0,64], "f": 0, "t": 92, "d": [17,765], "a": 1 }, + { "px": [384,224], "src": [0,64], "f": 1, "t": 92, "d": [17,766], "a": 1 }, + { "px": [416,224], "src": [0,64], "f": 0, "t": 92, "d": [17,768], "a": 1 }, + { "px": [496,32], "src": [48,160], "f": 0, "t": 233, "d": [29,137], "a": 1 }, + { "px": [512,32], "src": [64,144], "f": 1, "t": 211, "d": [29,138], "a": 1 }, + { "px": [352,48], "src": [48,160], "f": 1, "t": 233, "d": [29,181], "a": 1 }, + { "px": [464,48], "src": [48,160], "f": 0, "t": 233, "d": [29,188], "a": 1 }, + { "px": [384,64], "src": [64,144], "f": 1, "t": 211, "d": [29,236], "a": 1 }, + { "px": [432,64], "src": [48,160], "f": 0, "t": 233, "d": [29,239], "a": 1 }, + { "px": [256,112], "src": [64,144], "f": 0, "t": 211, "d": [29,387], "a": 1 }, + { "px": [352,224], "src": [64,144], "f": 1, "t": 211, "d": [29,764], "a": 1 }, + { "px": [320,32], "src": [64,224], "f": 2, "t": 326, "d": [31,126], "a": 1 }, + { "px": [480,32], "src": [64,224], "f": 3, "t": 326, "d": [31,136], "a": 1 }, + { "px": [528,32], "src": [64,224], "f": 2, "t": 326, "d": [31,139], "a": 1 }, + { "px": [560,32], "src": [64,224], "f": 3, "t": 326, "d": [31,141], "a": 1 }, + { "px": [368,48], "src": [64,224], "f": 2, "t": 326, "d": [31,182], "a": 1 }, + { "px": [448,48], "src": [64,224], "f": 3, "t": 326, "d": [31,187], "a": 1 }, + { "px": [144,64], "src": [64,224], "f": 2, "t": 326, "d": [31,221], "a": 1 }, + { "px": [400,64], "src": [64,224], "f": 2, "t": 326, "d": [31,237], "a": 1 }, + { "px": [416,64], "src": [64,224], "f": 3, "t": 326, "d": [31,238], "a": 1 }, + { "px": [272,96], "src": [64,224], "f": 3, "t": 326, "d": [31,335], "a": 1 }, + { "px": [176,128], "src": [64,224], "f": 2, "t": 326, "d": [31,435], "a": 1 }, + { "px": [240,128], "src": [64,224], "f": 3, "t": 326, "d": [31,439], "a": 1 }, + { "px": [352,208], "src": [64,224], "f": 2, "t": 326, "d": [31,711], "a": 1 }, + { "px": [368,224], "src": [64,224], "f": 2, "t": 326, "d": [31,765], "a": 1 }, + { "px": [384,224], "src": [64,224], "f": 3, "t": 326, "d": [31,766], "a": 1 }, + { "px": [416,224], "src": [64,224], "f": 2, "t": 326, "d": [31,768], "a": 1 }, + { "px": [416,224], "src": [64,224], "f": 3, "t": 326, "d": [31,768], "a": 1 }, + { "px": [256,16], "src": [64,144], "f": 3, "t": 211, "d": [32,69], "a": 1 }, + { "px": [320,16], "src": [64,144], "f": 2, "t": 211, "d": [32,73], "a": 1 }, + { "px": [480,16], "src": [64,144], "f": 3, "t": 211, "d": [32,83], "a": 1 }, + { "px": [528,16], "src": [64,144], "f": 2, "t": 211, "d": [32,86], "a": 1 }, + { "px": [368,32], "src": [64,144], "f": 2, "t": 211, "d": [32,129], "a": 1 }, + { "px": [448,32], "src": [64,144], "f": 3, "t": 211, "d": [32,134], "a": 1 }, + { "px": [400,48], "src": [64,144], "f": 2, "t": 211, "d": [32,184], "a": 1 }, + { "px": [416,48], "src": [64,144], "f": 3, "t": 211, "d": [32,185], "a": 1 }, + { "px": [176,64], "src": [64,144], "f": 2, "t": 211, "d": [32,223], "a": 1 }, + { "px": [256,80], "src": [64,144], "f": 1, "t": 211, "d": [32,281], "a": 1 }, + { "px": [240,96], "src": [64,144], "f": 3, "t": 211, "d": [32,333], "a": 1 }, + { "px": [416,176], "src": [64,144], "f": 3, "t": 211, "d": [32,609], "a": 1 }, + { "px": [560,176], "src": [64,144], "f": 2, "t": 211, "d": [32,618], "a": 1 }, + { "px": [560,192], "src": [64,144], "f": 1, "t": 211, "d": [32,671], "a": 1 }, + { "px": [784,192], "src": [64,144], "f": 0, "t": 211, "d": [32,685], "a": 1 }, + { "px": [368,208], "src": [64,144], "f": 2, "t": 211, "d": [32,712], "a": 1 }, + { "px": [176,272], "src": [64,144], "f": 0, "t": 211, "d": [32,912], "a": 1 }, + { "px": [240,288], "src": [64,144], "f": 1, "t": 211, "d": [32,969], "a": 1 }, + { "px": [272,80], "src": [32,0], "f": 0, "t": 2, "d": [12,282], "a": 1 }, + { "px": [368,160], "src": [32,0], "f": 0, "t": 2, "d": [12,553], "a": 1 }, + { "px": [384,160], "src": [32,0], "f": 0, "t": 2, "d": [12,554], "a": 1 }, + { "px": [416,160], "src": [32,0], "f": 0, "t": 2, "d": [12,556], "a": 1 }, + { "px": [432,160], "src": [32,0], "f": 0, "t": 2, "d": [12,557], "a": 1 }, + { "px": [448,160], "src": [32,0], "f": 0, "t": 2, "d": [12,558], "a": 1 }, + { "px": [464,160], "src": [32,0], "f": 0, "t": 2, "d": [12,559], "a": 1 }, + { "px": [480,160], "src": [32,0], "f": 0, "t": 2, "d": [12,560], "a": 1 }, + { "px": [496,160], "src": [32,0], "f": 0, "t": 2, "d": [12,561], "a": 1 }, + { "px": [512,160], "src": [32,0], "f": 0, "t": 2, "d": [12,562], "a": 1 }, + { "px": [528,160], "src": [32,0], "f": 0, "t": 2, "d": [12,563], "a": 1 }, + { "px": [544,160], "src": [32,0], "f": 0, "t": 2, "d": [12,564], "a": 1 }, + { "px": [560,160], "src": [32,0], "f": 0, "t": 2, "d": [12,565], "a": 1 }, + { "px": [576,192], "src": [32,0], "f": 0, "t": 2, "d": [12,672], "a": 1 }, + { "px": [592,192], "src": [32,0], "f": 0, "t": 2, "d": [12,673], "a": 1 }, + { "px": [608,192], "src": [32,0], "f": 0, "t": 2, "d": [12,674], "a": 1 }, + { "px": [624,192], "src": [32,0], "f": 0, "t": 2, "d": [12,675], "a": 1 }, + { "px": [640,192], "src": [32,0], "f": 0, "t": 2, "d": [12,676], "a": 1 }, + { "px": [656,192], "src": [32,0], "f": 0, "t": 2, "d": [12,677], "a": 1 }, + { "px": [672,192], "src": [32,0], "f": 0, "t": 2, "d": [12,678], "a": 1 }, + { "px": [688,192], "src": [32,0], "f": 0, "t": 2, "d": [12,679], "a": 1 }, + { "px": [704,192], "src": [32,0], "f": 0, "t": 2, "d": [12,680], "a": 1 }, + { "px": [720,192], "src": [32,0], "f": 0, "t": 2, "d": [12,681], "a": 1 }, + { "px": [736,192], "src": [32,0], "f": 0, "t": 2, "d": [12,682], "a": 1 }, + { "px": [752,192], "src": [32,0], "f": 0, "t": 2, "d": [12,683], "a": 1 }, + { "px": [768,192], "src": [32,0], "f": 0, "t": 2, "d": [12,684], "a": 1 }, + { "px": [176,208], "src": [32,0], "f": 0, "t": 2, "d": [12,700], "a": 1 }, + { "px": [192,208], "src": [32,0], "f": 0, "t": 2, "d": [12,701], "a": 1 }, + { "px": [208,208], "src": [32,0], "f": 0, "t": 2, "d": [12,702], "a": 1 }, + { "px": [224,208], "src": [32,0], "f": 0, "t": 2, "d": [12,703], "a": 1 }, + { "px": [240,208], "src": [32,0], "f": 0, "t": 2, "d": [12,704], "a": 1 }, + { "px": [144,272], "src": [32,0], "f": 0, "t": 2, "d": [12,910], "a": 1 }, + { "px": [160,272], "src": [32,0], "f": 0, "t": 2, "d": [12,911], "a": 1 }, + { "px": [256,288], "src": [32,0], "f": 0, "t": 2, "d": [12,970], "a": 1 }, + { "px": [272,288], "src": [32,0], "f": 0, "t": 2, "d": [12,971], "a": 1 }, + { "px": [288,288], "src": [32,0], "f": 0, "t": 2, "d": [12,972], "a": 1 }, + { "px": [304,288], "src": [32,0], "f": 0, "t": 2, "d": [12,973], "a": 1 }, + { "px": [336,288], "src": [32,0], "f": 0, "t": 2, "d": [12,975], "a": 1 }, + { "px": [352,288], "src": [32,0], "f": 0, "t": 2, "d": [12,976], "a": 1 }, + { "px": [368,288], "src": [32,0], "f": 0, "t": 2, "d": [12,977], "a": 1 }, + { "px": [384,288], "src": [32,0], "f": 0, "t": 2, "d": [12,978], "a": 1 }, + { "px": [400,288], "src": [32,0], "f": 0, "t": 2, "d": [12,979], "a": 1 }, + { "px": [416,288], "src": [32,0], "f": 0, "t": 2, "d": [12,980], "a": 1 }, + { "px": [256,272], "src": [192,0], "f": 1, "t": 12, "d": [36,917], "a": 1 }, + { "px": [592,0], "src": [256,128], "f": 0, "t": 200, "d": [58,37], "a": 1 }, + { "px": [608,0], "src": [256,128], "f": 0, "t": 200, "d": [58,38], "a": 1 }, + { "px": [624,0], "src": [256,128], "f": 0, "t": 200, "d": [58,39], "a": 1 }, + { "px": [640,0], "src": [256,128], "f": 0, "t": 200, "d": [58,40], "a": 1 }, + { "px": [656,0], "src": [256,128], "f": 0, "t": 200, "d": [58,41], "a": 1 }, + { "px": [672,0], "src": [256,128], "f": 0, "t": 200, "d": [58,42], "a": 1 }, + { "px": [736,0], "src": [256,128], "f": 0, "t": 200, "d": [58,46], "a": 1 }, + { "px": [752,0], "src": [256,128], "f": 0, "t": 200, "d": [58,47], "a": 1 }, + { "px": [592,16], "src": [256,128], "f": 0, "t": 200, "d": [58,90], "a": 1 }, + { "px": [608,16], "src": [256,128], "f": 0, "t": 200, "d": [58,91], "a": 1 }, + { "px": [624,16], "src": [256,128], "f": 0, "t": 200, "d": [58,92], "a": 1 }, + { "px": [640,16], "src": [256,128], "f": 0, "t": 200, "d": [58,93], "a": 1 }, + { "px": [656,16], "src": [256,128], "f": 0, "t": 200, "d": [58,94], "a": 1 }, + { "px": [672,16], "src": [256,128], "f": 0, "t": 200, "d": [58,95], "a": 1 }, + { "px": [736,16], "src": [256,128], "f": 0, "t": 200, "d": [58,99], "a": 1 }, + { "px": [752,16], "src": [256,128], "f": 0, "t": 200, "d": [58,100], "a": 1 }, + { "px": [592,32], "src": [256,128], "f": 0, "t": 200, "d": [58,143], "a": 1 }, + { "px": [752,32], "src": [256,128], "f": 0, "t": 200, "d": [58,153], "a": 1 }, + { "px": [288,48], "src": [256,128], "f": 0, "t": 200, "d": [58,177], "a": 1 }, + { "px": [576,48], "src": [256,128], "f": 0, "t": 200, "d": [58,195], "a": 1 }, + { "px": [592,48], "src": [256,128], "f": 0, "t": 200, "d": [58,196], "a": 1 }, + { "px": [752,48], "src": [256,128], "f": 0, "t": 200, "d": [58,206], "a": 1 }, + { "px": [752,64], "src": [256,128], "f": 0, "t": 200, "d": [58,259], "a": 1 }, + { "px": [752,80], "src": [256,128], "f": 0, "t": 200, "d": [58,312], "a": 1 }, + { "px": [752,96], "src": [256,128], "f": 0, "t": 200, "d": [58,365], "a": 1 }, + { "px": [752,112], "src": [256,128], "f": 0, "t": 200, "d": [58,418], "a": 1 }, + { "px": [752,128], "src": [256,128], "f": 0, "t": 200, "d": [58,471], "a": 1 }, + { "px": [576,144], "src": [256,128], "f": 0, "t": 200, "d": [58,513], "a": 1 }, + { "px": [592,144], "src": [256,128], "f": 0, "t": 200, "d": [58,514], "a": 1 }, + { "px": [752,144], "src": [256,128], "f": 0, "t": 200, "d": [58,524], "a": 1 }, + { "px": [592,160], "src": [256,128], "f": 0, "t": 200, "d": [58,567], "a": 1 }, + { "px": [608,160], "src": [256,128], "f": 0, "t": 200, "d": [58,568], "a": 1 }, + { "px": [624,160], "src": [256,128], "f": 0, "t": 200, "d": [58,569], "a": 1 }, + { "px": [640,160], "src": [256,128], "f": 0, "t": 200, "d": [58,570], "a": 1 }, + { "px": [656,160], "src": [256,128], "f": 0, "t": 200, "d": [58,571], "a": 1 }, + { "px": [672,160], "src": [256,128], "f": 0, "t": 200, "d": [58,572], "a": 1 }, + { "px": [688,160], "src": [256,128], "f": 0, "t": 200, "d": [58,573], "a": 1 }, + { "px": [704,160], "src": [256,128], "f": 0, "t": 200, "d": [58,574], "a": 1 }, + { "px": [720,160], "src": [256,128], "f": 0, "t": 200, "d": [58,575], "a": 1 }, + { "px": [736,160], "src": [256,128], "f": 0, "t": 200, "d": [58,576], "a": 1 }, + { "px": [752,160], "src": [256,128], "f": 0, "t": 200, "d": [58,577], "a": 1 }, + { "px": [448,208], "src": [256,128], "f": 0, "t": 200, "d": [58,717], "a": 1 }, + { "px": [464,208], "src": [256,128], "f": 0, "t": 200, "d": [58,718], "a": 1 }, + { "px": [480,208], "src": [256,128], "f": 0, "t": 200, "d": [58,719], "a": 1 }, + { "px": [496,208], "src": [256,128], "f": 0, "t": 200, "d": [58,720], "a": 1 }, + { "px": [512,208], "src": [256,128], "f": 0, "t": 200, "d": [58,721], "a": 1 }, + { "px": [528,208], "src": [256,128], "f": 0, "t": 200, "d": [58,722], "a": 1 }, + { "px": [128,224], "src": [256,128], "f": 0, "t": 200, "d": [58,750], "a": 1 }, + { "px": [144,224], "src": [256,128], "f": 0, "t": 200, "d": [58,751], "a": 1 }, + { "px": [448,304], "src": [256,128], "f": 0, "t": 200, "d": [58,1035], "a": 1 }, + { "px": [464,304], "src": [256,128], "f": 0, "t": 200, "d": [58,1036], "a": 1 }, + { "px": [480,304], "src": [256,128], "f": 0, "t": 200, "d": [58,1037], "a": 1 }, + { "px": [496,304], "src": [256,128], "f": 0, "t": 200, "d": [58,1038], "a": 1 }, + { "px": [512,304], "src": [256,128], "f": 0, "t": 200, "d": [58,1039], "a": 1 }, + { "px": [528,304], "src": [256,128], "f": 0, "t": 200, "d": [58,1040], "a": 1 }, + { "px": [448,320], "src": [256,128], "f": 0, "t": 200, "d": [58,1088], "a": 1 }, + { "px": [464,320], "src": [256,128], "f": 0, "t": 200, "d": [58,1089], "a": 1 }, + { "px": [480,320], "src": [256,128], "f": 0, "t": 200, "d": [58,1090], "a": 1 }, + { "px": [496,320], "src": [256,128], "f": 0, "t": 200, "d": [58,1091], "a": 1 }, + { "px": [512,320], "src": [256,128], "f": 0, "t": 200, "d": [58,1092], "a": 1 }, + { "px": [528,320], "src": [256,128], "f": 0, "t": 200, "d": [58,1093], "a": 1 }, + { "px": [288,32], "src": [256,96], "f": 0, "t": 154, "d": [59,124], "a": 1 }, + { "px": [624,32], "src": [256,96], "f": 2, "t": 154, "d": [59,145], "a": 1 }, + { "px": [640,32], "src": [256,96], "f": 2, "t": 154, "d": [59,146], "a": 1 }, + { "px": [656,32], "src": [256,96], "f": 2, "t": 154, "d": [59,147], "a": 1 }, + { "px": [672,32], "src": [256,96], "f": 2, "t": 154, "d": [59,148], "a": 1 }, + { "px": [560,48], "src": [256,96], "f": 0, "t": 154, "d": [59,194], "a": 1 }, + { "px": [288,64], "src": [256,96], "f": 2, "t": 154, "d": [59,230], "a": 1 }, + { "px": [560,64], "src": [256,96], "f": 2, "t": 154, "d": [59,247], "a": 1 }, + { "px": [576,64], "src": [256,96], "f": 2, "t": 154, "d": [59,248], "a": 1 }, + { "px": [592,64], "src": [256,96], "f": 2, "t": 154, "d": [59,249], "a": 1 }, + { "px": [128,112], "src": [256,96], "f": 0, "t": 154, "d": [59,379], "a": 1 }, + { "px": [128,128], "src": [256,96], "f": 2, "t": 154, "d": [59,432], "a": 1 }, + { "px": [144,128], "src": [256,96], "f": 2, "t": 154, "d": [59,433], "a": 1 }, + { "px": [560,128], "src": [256,96], "f": 0, "t": 154, "d": [59,459], "a": 1 }, + { "px": [576,128], "src": [256,96], "f": 0, "t": 154, "d": [59,460], "a": 1 }, + { "px": [592,128], "src": [256,96], "f": 0, "t": 154, "d": [59,461], "a": 1 }, + { "px": [560,144], "src": [256,96], "f": 2, "t": 154, "d": [59,512], "a": 1 }, + { "px": [624,144], "src": [256,96], "f": 0, "t": 154, "d": [59,516], "a": 1 }, + { "px": [640,144], "src": [256,96], "f": 0, "t": 154, "d": [59,517], "a": 1 }, + { "px": [656,144], "src": [256,96], "f": 0, "t": 154, "d": [59,518], "a": 1 }, + { "px": [672,144], "src": [256,96], "f": 0, "t": 154, "d": [59,519], "a": 1 }, + { "px": [688,144], "src": [256,96], "f": 0, "t": 154, "d": [59,520], "a": 1 }, + { "px": [704,144], "src": [256,96], "f": 0, "t": 154, "d": [59,521], "a": 1 }, + { "px": [720,144], "src": [256,96], "f": 0, "t": 154, "d": [59,522], "a": 1 }, + { "px": [592,176], "src": [256,96], "f": 2, "t": 154, "d": [59,620], "a": 1 }, + { "px": [608,176], "src": [256,96], "f": 2, "t": 154, "d": [59,621], "a": 1 }, + { "px": [624,176], "src": [256,96], "f": 2, "t": 154, "d": [59,622], "a": 1 }, + { "px": [640,176], "src": [256,96], "f": 2, "t": 154, "d": [59,623], "a": 1 }, + { "px": [656,176], "src": [256,96], "f": 2, "t": 154, "d": [59,624], "a": 1 }, + { "px": [672,176], "src": [256,96], "f": 2, "t": 154, "d": [59,625], "a": 1 }, + { "px": [688,176], "src": [256,96], "f": 2, "t": 154, "d": [59,626], "a": 1 }, + { "px": [704,176], "src": [256,96], "f": 2, "t": 154, "d": [59,627], "a": 1 }, + { "px": [720,176], "src": [256,96], "f": 2, "t": 154, "d": [59,628], "a": 1 }, + { "px": [736,176], "src": [256,96], "f": 2, "t": 154, "d": [59,629], "a": 1 }, + { "px": [752,176], "src": [256,96], "f": 2, "t": 154, "d": [59,630], "a": 1 }, + { "px": [448,192], "src": [256,96], "f": 0, "t": 154, "d": [59,664], "a": 1 }, + { "px": [464,192], "src": [256,96], "f": 0, "t": 154, "d": [59,665], "a": 1 }, + { "px": [480,192], "src": [256,96], "f": 0, "t": 154, "d": [59,666], "a": 1 }, + { "px": [496,192], "src": [256,96], "f": 0, "t": 154, "d": [59,667], "a": 1 }, + { "px": [512,192], "src": [256,96], "f": 0, "t": 154, "d": [59,668], "a": 1 }, + { "px": [528,192], "src": [256,96], "f": 0, "t": 154, "d": [59,669], "a": 1 }, + { "px": [128,208], "src": [256,96], "f": 0, "t": 154, "d": [59,697], "a": 1 }, + { "px": [144,208], "src": [256,96], "f": 0, "t": 154, "d": [59,698], "a": 1 }, + { "px": [464,224], "src": [256,96], "f": 2, "t": 154, "d": [59,771], "a": 1 }, + { "px": [480,224], "src": [256,96], "f": 2, "t": 154, "d": [59,772], "a": 1 }, + { "px": [496,224], "src": [256,96], "f": 2, "t": 154, "d": [59,773], "a": 1 }, + { "px": [512,224], "src": [256,96], "f": 2, "t": 154, "d": [59,774], "a": 1 }, + { "px": [128,240], "src": [256,96], "f": 2, "t": 154, "d": [59,803], "a": 1 }, + { "px": [448,288], "src": [256,96], "f": 0, "t": 154, "d": [59,982], "a": 1 }, + { "px": [464,288], "src": [256,96], "f": 0, "t": 154, "d": [59,983], "a": 1 }, + { "px": [480,288], "src": [256,96], "f": 0, "t": 154, "d": [59,984], "a": 1 }, + { "px": [496,288], "src": [256,96], "f": 0, "t": 154, "d": [59,985], "a": 1 }, + { "px": [512,288], "src": [256,96], "f": 0, "t": 154, "d": [59,986], "a": 1 }, + { "px": [576,0], "src": [224,128], "f": 0, "t": 198, "d": [61,36], "a": 1 }, + { "px": [688,0], "src": [224,128], "f": 1, "t": 198, "d": [61,43], "a": 1 }, + { "px": [720,0], "src": [224,128], "f": 0, "t": 198, "d": [61,45], "a": 1 }, + { "px": [768,0], "src": [224,128], "f": 1, "t": 198, "d": [61,48], "a": 1 }, + { "px": [576,16], "src": [224,128], "f": 0, "t": 198, "d": [61,89], "a": 1 }, + { "px": [688,16], "src": [224,128], "f": 1, "t": 198, "d": [61,96], "a": 1 }, + { "px": [720,16], "src": [224,128], "f": 0, "t": 198, "d": [61,98], "a": 1 }, + { "px": [768,16], "src": [224,128], "f": 1, "t": 198, "d": [61,101], "a": 1 }, + { "px": [576,32], "src": [224,128], "f": 0, "t": 198, "d": [61,142], "a": 1 }, + { "px": [768,32], "src": [224,128], "f": 1, "t": 198, "d": [61,154], "a": 1 }, + { "px": [272,48], "src": [224,128], "f": 0, "t": 198, "d": [61,176], "a": 1 }, + { "px": [304,48], "src": [224,128], "f": 1, "t": 198, "d": [61,178], "a": 1 }, + { "px": [608,48], "src": [224,128], "f": 1, "t": 198, "d": [61,197], "a": 1 }, + { "px": [736,48], "src": [224,128], "f": 0, "t": 198, "d": [61,205], "a": 1 }, + { "px": [768,48], "src": [224,128], "f": 1, "t": 198, "d": [61,207], "a": 1 }, + { "px": [736,64], "src": [224,128], "f": 0, "t": 198, "d": [61,258], "a": 1 }, + { "px": [768,64], "src": [224,128], "f": 1, "t": 198, "d": [61,260], "a": 1 }, + { "px": [736,80], "src": [224,128], "f": 0, "t": 198, "d": [61,311], "a": 1 }, + { "px": [768,80], "src": [224,128], "f": 1, "t": 198, "d": [61,313], "a": 1 }, + { "px": [144,96], "src": [224,128], "f": 0, "t": 198, "d": [61,327], "a": 1 }, + { "px": [160,96], "src": [224,128], "f": 1, "t": 198, "d": [61,328], "a": 1 }, + { "px": [736,96], "src": [224,128], "f": 0, "t": 198, "d": [61,364], "a": 1 }, + { "px": [768,96], "src": [224,128], "f": 1, "t": 198, "d": [61,366], "a": 1 }, + { "px": [160,112], "src": [224,128], "f": 1, "t": 198, "d": [61,381], "a": 1 }, + { "px": [736,112], "src": [224,128], "f": 0, "t": 198, "d": [61,417], "a": 1 }, + { "px": [768,112], "src": [224,128], "f": 1, "t": 198, "d": [61,419], "a": 1 }, + { "px": [736,128], "src": [224,128], "f": 0, "t": 198, "d": [61,470], "a": 1 }, + { "px": [768,128], "src": [224,128], "f": 1, "t": 198, "d": [61,472], "a": 1 }, + { "px": [768,144], "src": [224,128], "f": 1, "t": 198, "d": [61,525], "a": 1 }, + { "px": [576,160], "src": [224,128], "f": 0, "t": 198, "d": [61,566], "a": 1 }, + { "px": [768,160], "src": [224,128], "f": 1, "t": 198, "d": [61,578], "a": 1 }, + { "px": [432,208], "src": [224,128], "f": 0, "t": 198, "d": [61,716], "a": 1 }, + { "px": [544,208], "src": [224,128], "f": 1, "t": 198, "d": [61,723], "a": 1 }, + { "px": [112,224], "src": [224,128], "f": 0, "t": 198, "d": [61,749], "a": 1 }, + { "px": [160,224], "src": [224,128], "f": 1, "t": 198, "d": [61,752], "a": 1 }, + { "px": [432,224], "src": [224,128], "f": 0, "t": 198, "d": [61,769], "a": 1 }, + { "px": [544,224], "src": [224,128], "f": 1, "t": 198, "d": [61,776], "a": 1 }, + { "px": [160,240], "src": [224,128], "f": 1, "t": 198, "d": [61,805], "a": 1 }, + { "px": [528,240], "src": [224,128], "f": 0, "t": 198, "d": [61,828], "a": 1 }, + { "px": [544,240], "src": [224,128], "f": 1, "t": 198, "d": [61,829], "a": 1 }, + { "px": [528,256], "src": [224,128], "f": 0, "t": 198, "d": [61,881], "a": 1 }, + { "px": [544,256], "src": [224,128], "f": 1, "t": 198, "d": [61,882], "a": 1 }, + { "px": [528,272], "src": [224,128], "f": 0, "t": 198, "d": [61,934], "a": 1 }, + { "px": [544,272], "src": [224,128], "f": 1, "t": 198, "d": [61,935], "a": 1 }, + { "px": [544,288], "src": [224,128], "f": 1, "t": 198, "d": [61,988], "a": 1 }, + { "px": [432,304], "src": [224,128], "f": 0, "t": 198, "d": [61,1034], "a": 1 }, + { "px": [544,304], "src": [224,128], "f": 1, "t": 198, "d": [61,1041], "a": 1 }, + { "px": [432,320], "src": [224,128], "f": 0, "t": 198, "d": [61,1087], "a": 1 }, + { "px": [544,320], "src": [224,128], "f": 1, "t": 198, "d": [61,1094], "a": 1 }, + { "px": [272,32], "src": [224,96], "f": 0, "t": 152, "d": [60,123], "a": 1 }, + { "px": [304,32], "src": [224,96], "f": 1, "t": 152, "d": [60,125], "a": 1 }, + { "px": [688,32], "src": [224,96], "f": 3, "t": 152, "d": [60,149], "a": 1 }, + { "px": [720,32], "src": [224,96], "f": 2, "t": 152, "d": [60,151], "a": 1 }, + { "px": [544,48], "src": [224,96], "f": 0, "t": 152, "d": [60,193], "a": 1 }, + { "px": [272,64], "src": [224,96], "f": 2, "t": 152, "d": [60,229], "a": 1 }, + { "px": [304,64], "src": [224,96], "f": 3, "t": 152, "d": [60,231], "a": 1 }, + { "px": [544,64], "src": [224,96], "f": 2, "t": 152, "d": [60,246], "a": 1 }, + { "px": [608,64], "src": [224,96], "f": 3, "t": 152, "d": [60,250], "a": 1 }, + { "px": [144,80], "src": [224,96], "f": 0, "t": 152, "d": [60,274], "a": 1 }, + { "px": [160,80], "src": [224,96], "f": 1, "t": 152, "d": [60,275], "a": 1 }, + { "px": [112,112], "src": [224,96], "f": 0, "t": 152, "d": [60,378], "a": 1 }, + { "px": [112,128], "src": [224,96], "f": 2, "t": 152, "d": [60,431], "a": 1 }, + { "px": [160,128], "src": [224,96], "f": 3, "t": 152, "d": [60,434], "a": 1 }, + { "px": [544,128], "src": [224,96], "f": 0, "t": 152, "d": [60,458], "a": 1 }, + { "px": [608,128], "src": [224,96], "f": 1, "t": 152, "d": [60,462], "a": 1 }, + { "px": [544,144], "src": [224,96], "f": 2, "t": 152, "d": [60,511], "a": 1 }, + { "px": [576,176], "src": [224,96], "f": 2, "t": 152, "d": [60,619], "a": 1 }, + { "px": [768,176], "src": [224,96], "f": 3, "t": 152, "d": [60,631], "a": 1 }, + { "px": [432,192], "src": [224,96], "f": 0, "t": 152, "d": [60,663], "a": 1 }, + { "px": [544,192], "src": [224,96], "f": 1, "t": 152, "d": [60,670], "a": 1 }, + { "px": [112,208], "src": [224,96], "f": 0, "t": 152, "d": [60,696], "a": 1 }, + { "px": [160,208], "src": [224,96], "f": 1, "t": 152, "d": [60,699], "a": 1 }, + { "px": [112,240], "src": [224,96], "f": 2, "t": 152, "d": [60,802], "a": 1 }, + { "px": [432,240], "src": [224,96], "f": 2, "t": 152, "d": [60,822], "a": 1 }, + { "px": [448,240], "src": [224,96], "f": 3, "t": 152, "d": [60,823], "a": 1 }, + { "px": [144,256], "src": [224,96], "f": 2, "t": 152, "d": [60,857], "a": 1 }, + { "px": [160,256], "src": [224,96], "f": 3, "t": 152, "d": [60,858], "a": 1 }, + { "px": [432,288], "src": [224,96], "f": 0, "t": 152, "d": [60,981], "a": 1 }, + { "px": [576,48], "src": [64,144], "f": 0, "t": 211, "d": [62,195], "a": 1 }, + { "px": [576,144], "src": [64,144], "f": 2, "t": 211, "d": [62,513], "a": 1 }, + { "px": [608,32], "src": [0,304], "f": 3, "t": 437, "d": [69,144], "a": 1 }, + { "px": [736,32], "src": [0,304], "f": 2, "t": 437, "d": [69,152], "a": 1 }, + { "px": [144,112], "src": [0,304], "f": 0, "t": 437, "d": [69,380], "a": 1 }, + { "px": [608,144], "src": [0,304], "f": 1, "t": 437, "d": [69,515], "a": 1 }, + { "px": [736,144], "src": [0,304], "f": 0, "t": 437, "d": [69,523], "a": 1 }, + { "px": [448,224], "src": [0,304], "f": 3, "t": 437, "d": [69,770], "a": 1 }, + { "px": [528,224], "src": [0,304], "f": 2, "t": 437, "d": [69,775], "a": 1 }, + { "px": [144,240], "src": [0,304], "f": 2, "t": 437, "d": [69,804], "a": 1 }, + { "px": [528,288], "src": [0,304], "f": 0, "t": 437, "d": [69,987], "a": 1 }, + { "px": [304,144], "src": [32,96], "f": 0, "t": 140, "d": [21,496], "a": 1 }, + { "px": [368,144], "src": [32,96], "f": 0, "t": 140, "d": [21,500], "a": 1 }, + { "px": [496,144], "src": [32,96], "f": 0, "t": 140, "d": [21,508], "a": 1 }, + { "px": [288,96], "src": [128,96], "f": 0, "t": 146, "d": [22,336], "a": 1 }, + { "px": [256,128], "src": [128,96], "f": 0, "t": 146, "d": [22,440], "a": 1 }, + { "px": [336,192], "src": [128,96], "f": 1, "t": 146, "d": [22,657], "a": 1 }, + { "px": [256,208], "src": [128,96], "f": 0, "t": 146, "d": [22,705], "a": 1 }, + { "px": [336,48], "src": [128,224], "f": 0, "t": 330, "d": [35,180], "a": 1 }, + { "px": [480,48], "src": [160,208], "f": 0, "t": 309, "d": [35,189], "a": 1 }, + { "px": [272,112], "src": [128,224], "f": 0, "t": 330, "d": [35,388], "a": 1 }, + { "px": [208,144], "src": [128,224], "f": 0, "t": 330, "d": [35,490], "a": 1 }, + { "px": [304,160], "src": [112,64], "f": 0, "t": 99, "d": [44,549], "a": 1 }, + { "px": [320,160], "src": [112,64], "f": 0, "t": 99, "d": [44,550], "a": 1 }, + { "px": [336,160], "src": [112,64], "f": 0, "t": 99, "d": [44,551], "a": 1 }, + { "px": [352,160], "src": [96,32], "f": 1, "t": 52, "d": [45,552], "a": 1 }, + { "px": [336,160], "src": [0,144], "f": 0, "t": 207, "d": [85,551], "a": 1 }, + { "px": [704,0], "src": [96,144], "f": 0, "t": 213, "d": [41,44], "a": 1 }, + { "px": [704,16], "src": [96,144], "f": 0, "t": 213, "d": [41,97], "a": 1 }, + { "px": [704,32], "src": [96,144], "f": 0, "t": 213, "d": [41,150], "a": 1 }, + { "px": [704,48], "src": [96,144], "f": 0, "t": 213, "d": [41,203], "a": 1 }, + { "px": [704,64], "src": [96,144], "f": 0, "t": 213, "d": [41,256], "a": 1 }, + { "px": [704,80], "src": [96,144], "f": 0, "t": 213, "d": [41,309], "a": 1 }, + { "px": [704,96], "src": [96,144], "f": 0, "t": 213, "d": [41,362], "a": 1 }, + { "px": [704,112], "src": [96,144], "f": 0, "t": 213, "d": [41,415], "a": 1 }, + { "px": [704,128], "src": [96,144], "f": 0, "t": 213, "d": [41,468], "a": 1 }, + { "px": [400,144], "src": [96,144], "f": 0, "t": 213, "d": [41,502], "a": 1 }, + { "px": [400,160], "src": [96,144], "f": 0, "t": 213, "d": [41,555], "a": 1 }, + { "px": [400,176], "src": [96,144], "f": 0, "t": 213, "d": [41,608], "a": 1 }, + { "px": [400,192], "src": [96,144], "f": 0, "t": 213, "d": [41,661], "a": 1 }, + { "px": [400,208], "src": [96,144], "f": 0, "t": 213, "d": [41,714], "a": 1 }, + { "px": [400,224], "src": [96,144], "f": 0, "t": 213, "d": [41,767], "a": 1 }, + { "px": [400,240], "src": [96,144], "f": 0, "t": 213, "d": [41,820], "a": 1 }, + { "px": [400,256], "src": [96,144], "f": 0, "t": 213, "d": [41,873], "a": 1 }, + { "px": [320,272], "src": [96,144], "f": 0, "t": 213, "d": [41,921], "a": 1 }, + { "px": [400,272], "src": [96,144], "f": 0, "t": 213, "d": [41,926], "a": 1 }, + { "px": [320,288], "src": [96,144], "f": 0, "t": 213, "d": [41,974], "a": 1 }, + { "px": [320,304], "src": [96,144], "f": 0, "t": 213, "d": [41,1027], "a": 1 }, + { "px": [320,320], "src": [96,144], "f": 0, "t": 213, "d": [41,1080], "a": 1 }, + { "px": [192,0], "src": [32,32], "f": 0, "t": 48, "d": [102,12], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [102,13], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [102,25], "a": 1 }, + { "px": [416,0], "src": [32,32], "f": 0, "t": 48, "d": [102,26], "a": 1 }, + { "px": [832,0], "src": [32,32], "f": 0, "t": 48, "d": [102,52], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [102,65], "a": 1 }, + { "px": [208,16], "src": [32,32], "f": 0, "t": 48, "d": [102,66], "a": 1 }, + { "px": [832,16], "src": [32,32], "f": 0, "t": 48, "d": [102,105], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [102,119], "a": 1 }, + { "px": [832,32], "src": [32,32], "f": 0, "t": 48, "d": [102,158], "a": 1 }, + { "px": [832,48], "src": [32,32], "f": 0, "t": 48, "d": [102,211], "a": 1 }, + { "px": [832,64], "src": [32,32], "f": 0, "t": 48, "d": [102,264], "a": 1 }, + { "px": [832,80], "src": [32,32], "f": 0, "t": 48, "d": [102,317], "a": 1 }, + { "px": [832,96], "src": [32,32], "f": 0, "t": 48, "d": [102,370], "a": 1 }, + { "px": [832,112], "src": [32,32], "f": 0, "t": 48, "d": [102,423], "a": 1 }, + { "px": [832,128], "src": [32,32], "f": 0, "t": 48, "d": [102,476], "a": 1 }, + { "px": [832,144], "src": [32,32], "f": 0, "t": 48, "d": [102,529], "a": 1 }, + { "px": [832,160], "src": [32,32], "f": 0, "t": 48, "d": [102,582], "a": 1 }, + { "px": [832,176], "src": [32,32], "f": 0, "t": 48, "d": [102,635], "a": 1 }, + { "px": [832,192], "src": [32,32], "f": 0, "t": 48, "d": [102,688], "a": 1 }, + { "px": [832,208], "src": [32,32], "f": 0, "t": 48, "d": [102,741], "a": 1 }, + { "px": [816,224], "src": [32,32], "f": 0, "t": 48, "d": [102,793], "a": 1 }, + { "px": [832,224], "src": [32,32], "f": 0, "t": 48, "d": [102,794], "a": 1 }, + { "px": [608,240], "src": [32,32], "f": 0, "t": 48, "d": [102,833], "a": 1 }, + { "px": [624,240], "src": [32,32], "f": 0, "t": 48, "d": [102,834], "a": 1 }, + { "px": [640,240], "src": [32,32], "f": 0, "t": 48, "d": [102,835], "a": 1 }, + { "px": [656,240], "src": [32,32], "f": 0, "t": 48, "d": [102,836], "a": 1 }, + { "px": [672,240], "src": [32,32], "f": 0, "t": 48, "d": [102,837], "a": 1 }, + { "px": [688,240], "src": [32,32], "f": 0, "t": 48, "d": [102,838], "a": 1 }, + { "px": [704,240], "src": [32,32], "f": 0, "t": 48, "d": [102,839], "a": 1 }, + { "px": [720,240], "src": [32,32], "f": 0, "t": 48, "d": [102,840], "a": 1 }, + { "px": [736,240], "src": [32,32], "f": 0, "t": 48, "d": [102,841], "a": 1 }, + { "px": [752,240], "src": [32,32], "f": 0, "t": 48, "d": [102,842], "a": 1 }, + { "px": [768,240], "src": [32,32], "f": 0, "t": 48, "d": [102,843], "a": 1 }, + { "px": [784,240], "src": [32,32], "f": 0, "t": 48, "d": [102,844], "a": 1 }, + { "px": [800,240], "src": [32,32], "f": 0, "t": 48, "d": [102,845], "a": 1 }, + { "px": [816,240], "src": [32,32], "f": 0, "t": 48, "d": [102,846], "a": 1 }, + { "px": [832,240], "src": [32,32], "f": 0, "t": 48, "d": [102,847], "a": 1 }, + { "px": [608,256], "src": [32,32], "f": 0, "t": 48, "d": [102,886], "a": 1 }, + { "px": [624,256], "src": [32,32], "f": 0, "t": 48, "d": [102,887], "a": 1 }, + { "px": [640,256], "src": [32,32], "f": 0, "t": 48, "d": [102,888], "a": 1 }, + { "px": [656,256], "src": [32,32], "f": 0, "t": 48, "d": [102,889], "a": 1 }, + { "px": [672,256], "src": [32,32], "f": 0, "t": 48, "d": [102,890], "a": 1 }, + { "px": [688,256], "src": [32,32], "f": 0, "t": 48, "d": [102,891], "a": 1 }, + { "px": [704,256], "src": [32,32], "f": 0, "t": 48, "d": [102,892], "a": 1 }, + { "px": [720,256], "src": [32,32], "f": 0, "t": 48, "d": [102,893], "a": 1 }, + { "px": [736,256], "src": [32,32], "f": 0, "t": 48, "d": [102,894], "a": 1 }, + { "px": [752,256], "src": [32,32], "f": 0, "t": 48, "d": [102,895], "a": 1 }, + { "px": [768,256], "src": [32,32], "f": 0, "t": 48, "d": [102,896], "a": 1 }, + { "px": [784,256], "src": [32,32], "f": 0, "t": 48, "d": [102,897], "a": 1 }, + { "px": [800,256], "src": [32,32], "f": 0, "t": 48, "d": [102,898], "a": 1 }, + { "px": [816,256], "src": [32,32], "f": 0, "t": 48, "d": [102,899], "a": 1 }, + { "px": [832,256], "src": [32,32], "f": 0, "t": 48, "d": [102,900], "a": 1 }, + { "px": [608,272], "src": [32,32], "f": 0, "t": 48, "d": [102,939], "a": 1 }, + { "px": [624,272], "src": [32,32], "f": 0, "t": 48, "d": [102,940], "a": 1 }, + { "px": [640,272], "src": [32,32], "f": 0, "t": 48, "d": [102,941], "a": 1 }, + { "px": [656,272], "src": [32,32], "f": 0, "t": 48, "d": [102,942], "a": 1 }, + { "px": [672,272], "src": [32,32], "f": 0, "t": 48, "d": [102,943], "a": 1 }, + { "px": [688,272], "src": [32,32], "f": 0, "t": 48, "d": [102,944], "a": 1 }, + { "px": [704,272], "src": [32,32], "f": 0, "t": 48, "d": [102,945], "a": 1 }, + { "px": [720,272], "src": [32,32], "f": 0, "t": 48, "d": [102,946], "a": 1 }, + { "px": [736,272], "src": [32,32], "f": 0, "t": 48, "d": [102,947], "a": 1 }, + { "px": [752,272], "src": [32,32], "f": 0, "t": 48, "d": [102,948], "a": 1 }, + { "px": [768,272], "src": [32,32], "f": 0, "t": 48, "d": [102,949], "a": 1 }, + { "px": [784,272], "src": [32,32], "f": 0, "t": 48, "d": [102,950], "a": 1 }, + { "px": [800,272], "src": [32,32], "f": 0, "t": 48, "d": [102,951], "a": 1 }, + { "px": [816,272], "src": [32,32], "f": 0, "t": 48, "d": [102,952], "a": 1 }, + { "px": [832,272], "src": [32,32], "f": 0, "t": 48, "d": [102,953], "a": 1 }, + { "px": [608,288], "src": [32,32], "f": 0, "t": 48, "d": [102,992], "a": 1 }, + { "px": [624,288], "src": [32,32], "f": 0, "t": 48, "d": [102,993], "a": 1 }, + { "px": [640,288], "src": [32,32], "f": 0, "t": 48, "d": [102,994], "a": 1 }, + { "px": [656,288], "src": [32,32], "f": 0, "t": 48, "d": [102,995], "a": 1 }, + { "px": [672,288], "src": [32,32], "f": 0, "t": 48, "d": [102,996], "a": 1 }, + { "px": [688,288], "src": [32,32], "f": 0, "t": 48, "d": [102,997], "a": 1 }, + { "px": [704,288], "src": [32,32], "f": 0, "t": 48, "d": [102,998], "a": 1 }, + { "px": [720,288], "src": [32,32], "f": 0, "t": 48, "d": [102,999], "a": 1 }, + { "px": [736,288], "src": [32,32], "f": 0, "t": 48, "d": [102,1000], "a": 1 }, + { "px": [752,288], "src": [32,32], "f": 0, "t": 48, "d": [102,1001], "a": 1 }, + { "px": [768,288], "src": [32,32], "f": 0, "t": 48, "d": [102,1002], "a": 1 }, + { "px": [784,288], "src": [32,32], "f": 0, "t": 48, "d": [102,1003], "a": 1 }, + { "px": [800,288], "src": [32,32], "f": 0, "t": 48, "d": [102,1004], "a": 1 }, + { "px": [816,288], "src": [32,32], "f": 0, "t": 48, "d": [102,1005], "a": 1 }, + { "px": [832,288], "src": [32,32], "f": 0, "t": 48, "d": [102,1006], "a": 1 }, + { "px": [608,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1045], "a": 1 }, + { "px": [624,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1046], "a": 1 }, + { "px": [640,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1047], "a": 1 }, + { "px": [656,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1048], "a": 1 }, + { "px": [672,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1049], "a": 1 }, + { "px": [688,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1050], "a": 1 }, + { "px": [704,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1051], "a": 1 }, + { "px": [720,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1052], "a": 1 }, + { "px": [736,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1053], "a": 1 }, + { "px": [752,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1054], "a": 1 }, + { "px": [768,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1055], "a": 1 }, + { "px": [784,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1056], "a": 1 }, + { "px": [800,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1057], "a": 1 }, + { "px": [816,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1058], "a": 1 }, + { "px": [832,304], "src": [32,32], "f": 0, "t": 48, "d": [102,1059], "a": 1 }, + { "px": [192,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1072], "a": 1 }, + { "px": [208,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1073], "a": 1 }, + { "px": [608,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1098], "a": 1 }, + { "px": [624,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1099], "a": 1 }, + { "px": [640,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1100], "a": 1 }, + { "px": [656,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1101], "a": 1 }, + { "px": [672,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1102], "a": 1 }, + { "px": [688,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1103], "a": 1 }, + { "px": [704,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1104], "a": 1 }, + { "px": [720,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1105], "a": 1 }, + { "px": [736,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1106], "a": 1 }, + { "px": [752,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1107], "a": 1 }, + { "px": [768,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1108], "a": 1 }, + { "px": [784,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1109], "a": 1 }, + { "px": [800,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1110], "a": 1 }, + { "px": [816,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1111], "a": 1 }, + { "px": [832,320], "src": [32,32], "f": 0, "t": 48, "d": [102,1112], "a": 1 } + ], + "seed": 3588358, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Bg_textures", + "__type": "AutoLayer", + "__cWid": 53, + "__cHei": 21, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 2, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a315fa30-66b0-11ec-9cd7-37e57434aa29", + "levelId": 0, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [0,0], "src": [320,272], "f": 0, "t": 411, "d": [26,0], "a": 1 }, + { "px": [16,0], "src": [320,272], "f": 0, "t": 411, "d": [26,1], "a": 1 }, + { "px": [32,0], "src": [320,272], "f": 0, "t": 411, "d": [26,2], "a": 1 }, + { "px": [48,0], "src": [320,272], "f": 0, "t": 411, "d": [26,3], "a": 1 }, + { "px": [64,0], "src": [320,272], "f": 0, "t": 411, "d": [26,4], "a": 1 }, + { "px": [80,0], "src": [320,272], "f": 0, "t": 411, "d": [26,5], "a": 1 }, + { "px": [96,0], "src": [320,272], "f": 0, "t": 411, "d": [26,6], "a": 1 }, + { "px": [112,0], "src": [320,272], "f": 0, "t": 411, "d": [26,7], "a": 1 }, + { "px": [0,16], "src": [320,272], "f": 0, "t": 411, "d": [26,53], "a": 1 }, + { "px": [16,16], "src": [320,272], "f": 0, "t": 411, "d": [26,54], "a": 1 }, + { "px": [32,16], "src": [320,272], "f": 0, "t": 411, "d": [26,55], "a": 1 }, + { "px": [48,16], "src": [320,272], "f": 0, "t": 411, "d": [26,56], "a": 1 }, + { "px": [64,16], "src": [320,272], "f": 0, "t": 411, "d": [26,57], "a": 1 }, + { "px": [80,16], "src": [320,272], "f": 0, "t": 411, "d": [26,58], "a": 1 }, + { "px": [96,16], "src": [320,272], "f": 0, "t": 411, "d": [26,59], "a": 1 }, + { "px": [112,16], "src": [320,272], "f": 0, "t": 411, "d": [26,60], "a": 1 }, + { "px": [0,32], "src": [320,272], "f": 0, "t": 411, "d": [26,106], "a": 1 }, + { "px": [16,32], "src": [320,272], "f": 0, "t": 411, "d": [26,107], "a": 1 }, + { "px": [48,32], "src": [320,272], "f": 0, "t": 411, "d": [26,109], "a": 1 }, + { "px": [64,32], "src": [320,272], "f": 0, "t": 411, "d": [26,110], "a": 1 }, + { "px": [80,32], "src": [320,272], "f": 0, "t": 411, "d": [26,111], "a": 1 }, + { "px": [96,32], "src": [320,272], "f": 0, "t": 411, "d": [26,112], "a": 1 }, + { "px": [112,32], "src": [320,272], "f": 0, "t": 411, "d": [26,113], "a": 1 }, + { "px": [0,48], "src": [320,272], "f": 0, "t": 411, "d": [26,159], "a": 1 }, + { "px": [16,48], "src": [320,272], "f": 0, "t": 411, "d": [26,160], "a": 1 }, + { "px": [32,48], "src": [320,272], "f": 0, "t": 411, "d": [26,161], "a": 1 }, + { "px": [48,48], "src": [320,272], "f": 0, "t": 411, "d": [26,162], "a": 1 }, + { "px": [64,48], "src": [320,272], "f": 0, "t": 411, "d": [26,163], "a": 1 }, + { "px": [80,48], "src": [320,272], "f": 0, "t": 411, "d": [26,164], "a": 1 }, + { "px": [96,48], "src": [320,272], "f": 0, "t": 411, "d": [26,165], "a": 1 }, + { "px": [112,48], "src": [320,272], "f": 0, "t": 411, "d": [26,166], "a": 1 }, + { "px": [480,48], "src": [320,272], "f": 0, "t": 411, "d": [26,189], "a": 1 }, + { "px": [496,48], "src": [320,272], "f": 0, "t": 411, "d": [26,190], "a": 1 }, + { "px": [512,48], "src": [320,272], "f": 0, "t": 411, "d": [26,191], "a": 1 }, + { "px": [0,64], "src": [320,272], "f": 0, "t": 411, "d": [26,212], "a": 1 }, + { "px": [16,64], "src": [320,272], "f": 0, "t": 411, "d": [26,213], "a": 1 }, + { "px": [32,64], "src": [320,272], "f": 0, "t": 411, "d": [26,214], "a": 1 }, + { "px": [48,64], "src": [320,272], "f": 0, "t": 411, "d": [26,215], "a": 1 }, + { "px": [64,64], "src": [320,272], "f": 0, "t": 411, "d": [26,216], "a": 1 }, + { "px": [80,64], "src": [320,272], "f": 0, "t": 411, "d": [26,217], "a": 1 }, + { "px": [96,64], "src": [320,272], "f": 0, "t": 411, "d": [26,218], "a": 1 }, + { "px": [112,64], "src": [320,272], "f": 0, "t": 411, "d": [26,219], "a": 1 }, + { "px": [336,64], "src": [320,272], "f": 0, "t": 411, "d": [26,233], "a": 1 }, + { "px": [352,64], "src": [320,272], "f": 0, "t": 411, "d": [26,234], "a": 1 }, + { "px": [368,64], "src": [320,272], "f": 0, "t": 411, "d": [26,235], "a": 1 }, + { "px": [448,64], "src": [320,272], "f": 0, "t": 411, "d": [26,240], "a": 1 }, + { "px": [464,64], "src": [320,272], "f": 0, "t": 411, "d": [26,241], "a": 1 }, + { "px": [480,64], "src": [320,272], "f": 0, "t": 411, "d": [26,242], "a": 1 }, + { "px": [496,64], "src": [320,272], "f": 0, "t": 411, "d": [26,243], "a": 1 }, + { "px": [512,64], "src": [320,272], "f": 0, "t": 411, "d": [26,244], "a": 1 }, + { "px": [640,64], "src": [320,272], "f": 0, "t": 411, "d": [26,252], "a": 1 }, + { "px": [656,64], "src": [320,272], "f": 0, "t": 411, "d": [26,253], "a": 1 }, + { "px": [672,64], "src": [320,272], "f": 0, "t": 411, "d": [26,254], "a": 1 }, + { "px": [0,80], "src": [320,272], "f": 0, "t": 411, "d": [26,265], "a": 1 }, + { "px": [16,80], "src": [320,272], "f": 0, "t": 411, "d": [26,266], "a": 1 }, + { "px": [32,80], "src": [320,272], "f": 0, "t": 411, "d": [26,267], "a": 1 }, + { "px": [48,80], "src": [320,272], "f": 0, "t": 411, "d": [26,268], "a": 1 }, + { "px": [64,80], "src": [320,272], "f": 0, "t": 411, "d": [26,269], "a": 1 }, + { "px": [80,80], "src": [320,272], "f": 0, "t": 411, "d": [26,270], "a": 1 }, + { "px": [96,80], "src": [320,272], "f": 0, "t": 411, "d": [26,271], "a": 1 }, + { "px": [112,80], "src": [320,272], "f": 0, "t": 411, "d": [26,272], "a": 1 }, + { "px": [304,80], "src": [320,272], "f": 0, "t": 411, "d": [26,284], "a": 1 }, + { "px": [320,80], "src": [320,272], "f": 0, "t": 411, "d": [26,285], "a": 1 }, + { "px": [336,80], "src": [320,272], "f": 0, "t": 411, "d": [26,286], "a": 1 }, + { "px": [352,80], "src": [320,272], "f": 0, "t": 411, "d": [26,287], "a": 1 }, + { "px": [368,80], "src": [320,272], "f": 0, "t": 411, "d": [26,288], "a": 1 }, + { "px": [384,80], "src": [320,272], "f": 0, "t": 411, "d": [26,289], "a": 1 }, + { "px": [416,80], "src": [320,272], "f": 0, "t": 411, "d": [26,291], "a": 1 }, + { "px": [432,80], "src": [320,272], "f": 0, "t": 411, "d": [26,292], "a": 1 }, + { "px": [448,80], "src": [320,272], "f": 0, "t": 411, "d": [26,293], "a": 1 }, + { "px": [464,80], "src": [320,272], "f": 0, "t": 411, "d": [26,294], "a": 1 }, + { "px": [480,80], "src": [320,272], "f": 0, "t": 411, "d": [26,295], "a": 1 }, + { "px": [496,80], "src": [320,272], "f": 0, "t": 411, "d": [26,296], "a": 1 }, + { "px": [512,80], "src": [320,272], "f": 0, "t": 411, "d": [26,297], "a": 1 }, + { "px": [528,80], "src": [320,272], "f": 0, "t": 411, "d": [26,298], "a": 1 }, + { "px": [544,80], "src": [320,272], "f": 0, "t": 411, "d": [26,299], "a": 1 }, + { "px": [592,80], "src": [320,272], "f": 0, "t": 411, "d": [26,302], "a": 1 }, + { "px": [608,80], "src": [320,272], "f": 0, "t": 411, "d": [26,303], "a": 1 }, + { "px": [624,80], "src": [320,272], "f": 0, "t": 411, "d": [26,304], "a": 1 }, + { "px": [640,80], "src": [320,272], "f": 0, "t": 411, "d": [26,305], "a": 1 }, + { "px": [656,80], "src": [320,272], "f": 0, "t": 411, "d": [26,306], "a": 1 }, + { "px": [672,80], "src": [320,272], "f": 0, "t": 411, "d": [26,307], "a": 1 }, + { "px": [0,96], "src": [320,272], "f": 0, "t": 411, "d": [26,318], "a": 1 }, + { "px": [16,96], "src": [320,272], "f": 0, "t": 411, "d": [26,319], "a": 1 }, + { "px": [32,96], "src": [320,272], "f": 0, "t": 411, "d": [26,320], "a": 1 }, + { "px": [48,96], "src": [320,272], "f": 0, "t": 411, "d": [26,321], "a": 1 }, + { "px": [64,96], "src": [320,272], "f": 0, "t": 411, "d": [26,322], "a": 1 }, + { "px": [80,96], "src": [320,272], "f": 0, "t": 411, "d": [26,323], "a": 1 }, + { "px": [96,96], "src": [320,272], "f": 0, "t": 411, "d": [26,324], "a": 1 }, + { "px": [112,96], "src": [320,272], "f": 0, "t": 411, "d": [26,325], "a": 1 }, + { "px": [304,96], "src": [320,272], "f": 0, "t": 411, "d": [26,337], "a": 1 }, + { "px": [320,96], "src": [320,272], "f": 0, "t": 411, "d": [26,338], "a": 1 }, + { "px": [336,96], "src": [320,272], "f": 0, "t": 411, "d": [26,339], "a": 1 }, + { "px": [352,96], "src": [320,272], "f": 0, "t": 411, "d": [26,340], "a": 1 }, + { "px": [368,96], "src": [320,272], "f": 0, "t": 411, "d": [26,341], "a": 1 }, + { "px": [384,96], "src": [320,272], "f": 0, "t": 411, "d": [26,342], "a": 1 }, + { "px": [400,96], "src": [320,272], "f": 0, "t": 411, "d": [26,343], "a": 1 }, + { "px": [416,96], "src": [320,272], "f": 0, "t": 411, "d": [26,344], "a": 1 }, + { "px": [432,96], "src": [320,272], "f": 0, "t": 411, "d": [26,345], "a": 1 }, + { "px": [448,96], "src": [320,272], "f": 0, "t": 411, "d": [26,346], "a": 1 }, + { "px": [464,96], "src": [320,272], "f": 0, "t": 411, "d": [26,347], "a": 1 }, + { "px": [480,96], "src": [320,272], "f": 0, "t": 411, "d": [26,348], "a": 1 }, + { "px": [496,96], "src": [320,272], "f": 0, "t": 411, "d": [26,349], "a": 1 }, + { "px": [512,96], "src": [320,272], "f": 0, "t": 411, "d": [26,350], "a": 1 }, + { "px": [528,96], "src": [320,272], "f": 0, "t": 411, "d": [26,351], "a": 1 }, + { "px": [544,96], "src": [320,272], "f": 0, "t": 411, "d": [26,352], "a": 1 }, + { "px": [560,96], "src": [320,272], "f": 0, "t": 411, "d": [26,353], "a": 1 }, + { "px": [576,96], "src": [320,272], "f": 0, "t": 411, "d": [26,354], "a": 1 }, + { "px": [592,96], "src": [320,272], "f": 0, "t": 411, "d": [26,355], "a": 1 }, + { "px": [608,96], "src": [320,272], "f": 0, "t": 411, "d": [26,356], "a": 1 }, + { "px": [624,96], "src": [320,272], "f": 0, "t": 411, "d": [26,357], "a": 1 }, + { "px": [640,96], "src": [320,272], "f": 0, "t": 411, "d": [26,358], "a": 1 }, + { "px": [672,96], "src": [320,272], "f": 0, "t": 411, "d": [26,360], "a": 1 }, + { "px": [0,112], "src": [320,272], "f": 0, "t": 411, "d": [26,371], "a": 1 }, + { "px": [16,112], "src": [320,272], "f": 0, "t": 411, "d": [26,372], "a": 1 }, + { "px": [32,112], "src": [320,272], "f": 0, "t": 411, "d": [26,373], "a": 1 }, + { "px": [48,112], "src": [320,272], "f": 0, "t": 411, "d": [26,374], "a": 1 }, + { "px": [64,112], "src": [320,272], "f": 0, "t": 411, "d": [26,375], "a": 1 }, + { "px": [80,112], "src": [320,272], "f": 0, "t": 411, "d": [26,376], "a": 1 }, + { "px": [288,112], "src": [320,272], "f": 0, "t": 411, "d": [26,389], "a": 1 }, + { "px": [304,112], "src": [320,272], "f": 0, "t": 411, "d": [26,390], "a": 1 }, + { "px": [320,112], "src": [320,272], "f": 0, "t": 411, "d": [26,391], "a": 1 }, + { "px": [336,112], "src": [320,272], "f": 0, "t": 411, "d": [26,392], "a": 1 }, + { "px": [352,112], "src": [320,272], "f": 0, "t": 411, "d": [26,393], "a": 1 }, + { "px": [368,112], "src": [320,272], "f": 0, "t": 411, "d": [26,394], "a": 1 }, + { "px": [384,112], "src": [320,272], "f": 0, "t": 411, "d": [26,395], "a": 1 }, + { "px": [400,112], "src": [320,272], "f": 0, "t": 411, "d": [26,396], "a": 1 }, + { "px": [416,112], "src": [320,272], "f": 0, "t": 411, "d": [26,397], "a": 1 }, + { "px": [432,112], "src": [320,272], "f": 0, "t": 411, "d": [26,398], "a": 1 }, + { "px": [448,112], "src": [320,272], "f": 0, "t": 411, "d": [26,399], "a": 1 }, + { "px": [464,112], "src": [320,272], "f": 0, "t": 411, "d": [26,400], "a": 1 }, + { "px": [480,112], "src": [320,272], "f": 0, "t": 411, "d": [26,401], "a": 1 }, + { "px": [496,112], "src": [320,272], "f": 0, "t": 411, "d": [26,402], "a": 1 }, + { "px": [512,112], "src": [320,272], "f": 0, "t": 411, "d": [26,403], "a": 1 }, + { "px": [528,112], "src": [320,272], "f": 0, "t": 411, "d": [26,404], "a": 1 }, + { "px": [544,112], "src": [320,272], "f": 0, "t": 411, "d": [26,405], "a": 1 }, + { "px": [576,112], "src": [320,272], "f": 0, "t": 411, "d": [26,407], "a": 1 }, + { "px": [592,112], "src": [320,272], "f": 0, "t": 411, "d": [26,408], "a": 1 }, + { "px": [608,112], "src": [320,272], "f": 0, "t": 411, "d": [26,409], "a": 1 }, + { "px": [624,112], "src": [320,272], "f": 0, "t": 411, "d": [26,410], "a": 1 }, + { "px": [640,112], "src": [320,272], "f": 0, "t": 411, "d": [26,411], "a": 1 }, + { "px": [656,112], "src": [320,272], "f": 0, "t": 411, "d": [26,412], "a": 1 }, + { "px": [672,112], "src": [320,272], "f": 0, "t": 411, "d": [26,413], "a": 1 }, + { "px": [0,128], "src": [320,272], "f": 0, "t": 411, "d": [26,424], "a": 1 }, + { "px": [16,128], "src": [320,272], "f": 0, "t": 411, "d": [26,425], "a": 1 }, + { "px": [32,128], "src": [320,272], "f": 0, "t": 411, "d": [26,426], "a": 1 }, + { "px": [64,128], "src": [320,272], "f": 0, "t": 411, "d": [26,428], "a": 1 }, + { "px": [80,128], "src": [320,272], "f": 0, "t": 411, "d": [26,429], "a": 1 }, + { "px": [272,128], "src": [320,272], "f": 0, "t": 411, "d": [26,441], "a": 1 }, + { "px": [288,128], "src": [320,272], "f": 0, "t": 411, "d": [26,442], "a": 1 }, + { "px": [304,128], "src": [320,272], "f": 0, "t": 411, "d": [26,443], "a": 1 }, + { "px": [320,128], "src": [320,272], "f": 0, "t": 411, "d": [26,444], "a": 1 }, + { "px": [336,128], "src": [320,272], "f": 0, "t": 411, "d": [26,445], "a": 1 }, + { "px": [352,128], "src": [320,272], "f": 0, "t": 411, "d": [26,446], "a": 1 }, + { "px": [368,128], "src": [320,272], "f": 0, "t": 411, "d": [26,447], "a": 1 }, + { "px": [384,128], "src": [320,272], "f": 0, "t": 411, "d": [26,448], "a": 1 }, + { "px": [400,128], "src": [320,272], "f": 0, "t": 411, "d": [26,449], "a": 1 }, + { "px": [416,128], "src": [320,272], "f": 0, "t": 411, "d": [26,450], "a": 1 }, + { "px": [432,128], "src": [320,272], "f": 0, "t": 411, "d": [26,451], "a": 1 }, + { "px": [448,128], "src": [320,272], "f": 0, "t": 411, "d": [26,452], "a": 1 }, + { "px": [464,128], "src": [320,272], "f": 0, "t": 411, "d": [26,453], "a": 1 }, + { "px": [480,128], "src": [320,272], "f": 0, "t": 411, "d": [26,454], "a": 1 }, + { "px": [496,128], "src": [320,272], "f": 0, "t": 411, "d": [26,455], "a": 1 }, + { "px": [512,128], "src": [320,272], "f": 0, "t": 411, "d": [26,456], "a": 1 }, + { "px": [640,128], "src": [320,272], "f": 0, "t": 411, "d": [26,464], "a": 1 }, + { "px": [0,144], "src": [320,272], "f": 0, "t": 411, "d": [26,477], "a": 1 }, + { "px": [16,144], "src": [320,272], "f": 0, "t": 411, "d": [26,478], "a": 1 }, + { "px": [32,144], "src": [320,272], "f": 0, "t": 411, "d": [26,479], "a": 1 }, + { "px": [48,144], "src": [320,272], "f": 0, "t": 411, "d": [26,480], "a": 1 }, + { "px": [64,144], "src": [320,272], "f": 0, "t": 411, "d": [26,481], "a": 1 }, + { "px": [80,144], "src": [320,272], "f": 0, "t": 411, "d": [26,482], "a": 1 }, + { "px": [96,144], "src": [320,272], "f": 0, "t": 411, "d": [26,483], "a": 1 }, + { "px": [112,144], "src": [320,272], "f": 0, "t": 411, "d": [26,484], "a": 1 }, + { "px": [208,144], "src": [320,272], "f": 0, "t": 411, "d": [26,490], "a": 1 }, + { "px": [240,144], "src": [320,272], "f": 0, "t": 411, "d": [26,492], "a": 1 }, + { "px": [256,144], "src": [320,272], "f": 0, "t": 411, "d": [26,493], "a": 1 }, + { "px": [272,144], "src": [320,272], "f": 0, "t": 411, "d": [26,494], "a": 1 }, + { "px": [288,144], "src": [320,272], "f": 0, "t": 411, "d": [26,495], "a": 1 }, + { "px": [304,144], "src": [320,272], "f": 0, "t": 411, "d": [26,496], "a": 1 }, + { "px": [320,144], "src": [320,272], "f": 0, "t": 411, "d": [26,497], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [26,499], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [26,500], "a": 1 }, + { "px": [480,144], "src": [320,272], "f": 0, "t": 411, "d": [26,507], "a": 1 }, + { "px": [0,160], "src": [320,272], "f": 0, "t": 411, "d": [26,530], "a": 1 }, + { "px": [16,160], "src": [320,272], "f": 0, "t": 411, "d": [26,531], "a": 1 }, + { "px": [32,160], "src": [320,272], "f": 0, "t": 411, "d": [26,532], "a": 1 }, + { "px": [48,160], "src": [320,272], "f": 0, "t": 411, "d": [26,533], "a": 1 }, + { "px": [64,160], "src": [320,272], "f": 0, "t": 411, "d": [26,534], "a": 1 }, + { "px": [80,160], "src": [320,272], "f": 0, "t": 411, "d": [26,535], "a": 1 }, + { "px": [96,160], "src": [320,272], "f": 0, "t": 411, "d": [26,536], "a": 1 }, + { "px": [112,160], "src": [320,272], "f": 0, "t": 411, "d": [26,537], "a": 1 }, + { "px": [128,160], "src": [320,272], "f": 0, "t": 411, "d": [26,538], "a": 1 }, + { "px": [144,160], "src": [320,272], "f": 0, "t": 411, "d": [26,539], "a": 1 }, + { "px": [160,160], "src": [320,272], "f": 0, "t": 411, "d": [26,540], "a": 1 }, + { "px": [176,160], "src": [320,272], "f": 0, "t": 411, "d": [26,541], "a": 1 }, + { "px": [192,160], "src": [320,272], "f": 0, "t": 411, "d": [26,542], "a": 1 }, + { "px": [208,160], "src": [320,272], "f": 0, "t": 411, "d": [26,543], "a": 1 }, + { "px": [224,160], "src": [320,272], "f": 0, "t": 411, "d": [26,544], "a": 1 }, + { "px": [240,160], "src": [320,272], "f": 0, "t": 411, "d": [26,545], "a": 1 }, + { "px": [256,160], "src": [320,272], "f": 0, "t": 411, "d": [26,546], "a": 1 }, + { "px": [272,160], "src": [320,272], "f": 0, "t": 411, "d": [26,547], "a": 1 }, + { "px": [0,176], "src": [320,272], "f": 0, "t": 411, "d": [26,583], "a": 1 }, + { "px": [16,176], "src": [320,272], "f": 0, "t": 411, "d": [26,584], "a": 1 }, + { "px": [32,176], "src": [320,272], "f": 0, "t": 411, "d": [26,585], "a": 1 }, + { "px": [48,176], "src": [320,272], "f": 0, "t": 411, "d": [26,586], "a": 1 }, + { "px": [64,176], "src": [320,272], "f": 0, "t": 411, "d": [26,587], "a": 1 }, + { "px": [80,176], "src": [320,272], "f": 0, "t": 411, "d": [26,588], "a": 1 }, + { "px": [96,176], "src": [320,272], "f": 0, "t": 411, "d": [26,589], "a": 1 }, + { "px": [112,176], "src": [320,272], "f": 0, "t": 411, "d": [26,590], "a": 1 }, + { "px": [128,176], "src": [320,272], "f": 0, "t": 411, "d": [26,591], "a": 1 }, + { "px": [144,176], "src": [320,272], "f": 0, "t": 411, "d": [26,592], "a": 1 }, + { "px": [160,176], "src": [320,272], "f": 0, "t": 411, "d": [26,593], "a": 1 }, + { "px": [176,176], "src": [320,272], "f": 0, "t": 411, "d": [26,594], "a": 1 }, + { "px": [192,176], "src": [320,272], "f": 0, "t": 411, "d": [26,595], "a": 1 }, + { "px": [208,176], "src": [320,272], "f": 0, "t": 411, "d": [26,596], "a": 1 }, + { "px": [224,176], "src": [320,272], "f": 0, "t": 411, "d": [26,597], "a": 1 }, + { "px": [240,176], "src": [320,272], "f": 0, "t": 411, "d": [26,598], "a": 1 }, + { "px": [256,176], "src": [320,272], "f": 0, "t": 411, "d": [26,599], "a": 1 }, + { "px": [272,176], "src": [320,272], "f": 0, "t": 411, "d": [26,600], "a": 1 }, + { "px": [288,176], "src": [320,272], "f": 0, "t": 411, "d": [26,601], "a": 1 }, + { "px": [304,176], "src": [320,272], "f": 0, "t": 411, "d": [26,602], "a": 1 }, + { "px": [320,176], "src": [320,272], "f": 0, "t": 411, "d": [26,603], "a": 1 }, + { "px": [0,192], "src": [320,272], "f": 0, "t": 411, "d": [26,636], "a": 1 }, + { "px": [16,192], "src": [320,272], "f": 0, "t": 411, "d": [26,637], "a": 1 }, + { "px": [32,192], "src": [320,272], "f": 0, "t": 411, "d": [26,638], "a": 1 }, + { "px": [48,192], "src": [320,272], "f": 0, "t": 411, "d": [26,639], "a": 1 }, + { "px": [64,192], "src": [320,272], "f": 0, "t": 411, "d": [26,640], "a": 1 }, + { "px": [80,192], "src": [320,272], "f": 0, "t": 411, "d": [26,641], "a": 1 }, + { "px": [96,192], "src": [320,272], "f": 0, "t": 411, "d": [26,642], "a": 1 }, + { "px": [112,192], "src": [320,272], "f": 0, "t": 411, "d": [26,643], "a": 1 }, + { "px": [128,192], "src": [320,272], "f": 0, "t": 411, "d": [26,644], "a": 1 }, + { "px": [240,192], "src": [320,272], "f": 0, "t": 411, "d": [26,651], "a": 1 }, + { "px": [256,192], "src": [320,272], "f": 0, "t": 411, "d": [26,652], "a": 1 }, + { "px": [272,192], "src": [320,272], "f": 0, "t": 411, "d": [26,653], "a": 1 }, + { "px": [288,192], "src": [320,272], "f": 0, "t": 411, "d": [26,654], "a": 1 }, + { "px": [304,192], "src": [320,272], "f": 0, "t": 411, "d": [26,655], "a": 1 }, + { "px": [320,192], "src": [320,272], "f": 0, "t": 411, "d": [26,656], "a": 1 }, + { "px": [0,208], "src": [320,272], "f": 0, "t": 411, "d": [26,689], "a": 1 }, + { "px": [16,208], "src": [320,272], "f": 0, "t": 411, "d": [26,690], "a": 1 }, + { "px": [32,208], "src": [320,272], "f": 0, "t": 411, "d": [26,691], "a": 1 }, + { "px": [48,208], "src": [320,272], "f": 0, "t": 411, "d": [26,692], "a": 1 }, + { "px": [64,208], "src": [320,272], "f": 0, "t": 411, "d": [26,693], "a": 1 }, + { "px": [80,208], "src": [320,272], "f": 0, "t": 411, "d": [26,694], "a": 1 }, + { "px": [272,208], "src": [320,272], "f": 0, "t": 411, "d": [26,706], "a": 1 }, + { "px": [288,208], "src": [320,272], "f": 0, "t": 411, "d": [26,707], "a": 1 }, + { "px": [304,208], "src": [320,272], "f": 0, "t": 411, "d": [26,708], "a": 1 }, + { "px": [320,208], "src": [320,272], "f": 0, "t": 411, "d": [26,709], "a": 1 }, + { "px": [0,224], "src": [320,272], "f": 0, "t": 411, "d": [26,742], "a": 1 }, + { "px": [16,224], "src": [320,272], "f": 0, "t": 411, "d": [26,743], "a": 1 }, + { "px": [48,224], "src": [320,272], "f": 0, "t": 411, "d": [26,745], "a": 1 }, + { "px": [64,224], "src": [320,272], "f": 0, "t": 411, "d": [26,746], "a": 1 }, + { "px": [80,224], "src": [320,272], "f": 0, "t": 411, "d": [26,747], "a": 1 }, + { "px": [272,224], "src": [320,272], "f": 0, "t": 411, "d": [26,759], "a": 1 }, + { "px": [288,224], "src": [320,272], "f": 0, "t": 411, "d": [26,760], "a": 1 }, + { "px": [304,224], "src": [320,272], "f": 0, "t": 411, "d": [26,761], "a": 1 }, + { "px": [320,224], "src": [320,272], "f": 0, "t": 411, "d": [26,762], "a": 1 }, + { "px": [336,224], "src": [320,272], "f": 0, "t": 411, "d": [26,763], "a": 1 }, + { "px": [0,240], "src": [320,272], "f": 0, "t": 411, "d": [26,795], "a": 1 }, + { "px": [16,240], "src": [320,272], "f": 0, "t": 411, "d": [26,796], "a": 1 }, + { "px": [32,240], "src": [320,272], "f": 0, "t": 411, "d": [26,797], "a": 1 }, + { "px": [48,240], "src": [320,272], "f": 0, "t": 411, "d": [26,798], "a": 1 }, + { "px": [64,240], "src": [320,272], "f": 0, "t": 411, "d": [26,799], "a": 1 }, + { "px": [80,240], "src": [320,272], "f": 0, "t": 411, "d": [26,800], "a": 1 }, + { "px": [272,240], "src": [320,272], "f": 0, "t": 411, "d": [26,812], "a": 1 }, + { "px": [288,240], "src": [320,272], "f": 0, "t": 411, "d": [26,813], "a": 1 }, + { "px": [304,240], "src": [320,272], "f": 0, "t": 411, "d": [26,814], "a": 1 }, + { "px": [320,240], "src": [320,272], "f": 0, "t": 411, "d": [26,815], "a": 1 }, + { "px": [336,240], "src": [320,272], "f": 0, "t": 411, "d": [26,816], "a": 1 }, + { "px": [352,240], "src": [320,272], "f": 0, "t": 411, "d": [26,817], "a": 1 }, + { "px": [368,240], "src": [320,272], "f": 0, "t": 411, "d": [26,818], "a": 1 }, + { "px": [480,240], "src": [320,272], "f": 0, "t": 411, "d": [26,825], "a": 1 }, + { "px": [496,240], "src": [320,272], "f": 0, "t": 411, "d": [26,826], "a": 1 }, + { "px": [0,256], "src": [320,272], "f": 0, "t": 411, "d": [26,848], "a": 1 }, + { "px": [16,256], "src": [320,272], "f": 0, "t": 411, "d": [26,849], "a": 1 }, + { "px": [32,256], "src": [320,272], "f": 0, "t": 411, "d": [26,850], "a": 1 }, + { "px": [64,256], "src": [320,272], "f": 0, "t": 411, "d": [26,852], "a": 1 }, + { "px": [80,256], "src": [320,272], "f": 0, "t": 411, "d": [26,853], "a": 1 }, + { "px": [96,256], "src": [320,272], "f": 0, "t": 411, "d": [26,854], "a": 1 }, + { "px": [112,256], "src": [320,272], "f": 0, "t": 411, "d": [26,855], "a": 1 }, + { "px": [272,256], "src": [320,272], "f": 0, "t": 411, "d": [26,865], "a": 1 }, + { "px": [288,256], "src": [320,272], "f": 0, "t": 411, "d": [26,866], "a": 1 }, + { "px": [304,256], "src": [320,272], "f": 0, "t": 411, "d": [26,867], "a": 1 }, + { "px": [320,256], "src": [320,272], "f": 0, "t": 411, "d": [26,868], "a": 1 }, + { "px": [336,256], "src": [320,272], "f": 0, "t": 411, "d": [26,869], "a": 1 }, + { "px": [352,256], "src": [320,272], "f": 0, "t": 411, "d": [26,870], "a": 1 }, + { "px": [368,256], "src": [320,272], "f": 0, "t": 411, "d": [26,871], "a": 1 }, + { "px": [432,256], "src": [320,272], "f": 0, "t": 411, "d": [26,875], "a": 1 }, + { "px": [448,256], "src": [320,272], "f": 0, "t": 411, "d": [26,876], "a": 1 }, + { "px": [464,256], "src": [320,272], "f": 0, "t": 411, "d": [26,877], "a": 1 }, + { "px": [480,256], "src": [320,272], "f": 0, "t": 411, "d": [26,878], "a": 1 }, + { "px": [496,256], "src": [320,272], "f": 0, "t": 411, "d": [26,879], "a": 1 }, + { "px": [0,272], "src": [320,272], "f": 0, "t": 411, "d": [26,901], "a": 1 }, + { "px": [16,272], "src": [320,272], "f": 0, "t": 411, "d": [26,902], "a": 1 }, + { "px": [32,272], "src": [320,272], "f": 0, "t": 411, "d": [26,903], "a": 1 }, + { "px": [48,272], "src": [320,272], "f": 0, "t": 411, "d": [26,904], "a": 1 }, + { "px": [64,272], "src": [320,272], "f": 0, "t": 411, "d": [26,905], "a": 1 }, + { "px": [80,272], "src": [320,272], "f": 0, "t": 411, "d": [26,906], "a": 1 }, + { "px": [96,272], "src": [320,272], "f": 0, "t": 411, "d": [26,907], "a": 1 }, + { "px": [112,272], "src": [320,272], "f": 0, "t": 411, "d": [26,908], "a": 1 }, + { "px": [272,272], "src": [320,272], "f": 0, "t": 411, "d": [26,918], "a": 1 }, + { "px": [368,272], "src": [320,272], "f": 0, "t": 411, "d": [26,924], "a": 1 }, + { "px": [432,272], "src": [320,272], "f": 0, "t": 411, "d": [26,928], "a": 1 }, + { "px": [448,272], "src": [320,272], "f": 0, "t": 411, "d": [26,929], "a": 1 }, + { "px": [464,272], "src": [320,272], "f": 0, "t": 411, "d": [26,930], "a": 1 }, + { "px": [0,288], "src": [320,272], "f": 0, "t": 411, "d": [26,954], "a": 1 }, + { "px": [16,288], "src": [320,272], "f": 0, "t": 411, "d": [26,955], "a": 1 }, + { "px": [32,288], "src": [320,272], "f": 0, "t": 411, "d": [26,956], "a": 1 }, + { "px": [48,288], "src": [320,272], "f": 0, "t": 411, "d": [26,957], "a": 1 }, + { "px": [64,288], "src": [320,272], "f": 0, "t": 411, "d": [26,958], "a": 1 }, + { "px": [96,288], "src": [320,272], "f": 0, "t": 411, "d": [26,960], "a": 1 }, + { "px": [112,288], "src": [320,272], "f": 0, "t": 411, "d": [26,961], "a": 1 }, + { "px": [0,304], "src": [320,272], "f": 0, "t": 411, "d": [26,1007], "a": 1 }, + { "px": [16,304], "src": [320,272], "f": 0, "t": 411, "d": [26,1008], "a": 1 }, + { "px": [32,304], "src": [320,272], "f": 0, "t": 411, "d": [26,1009], "a": 1 }, + { "px": [48,304], "src": [320,272], "f": 0, "t": 411, "d": [26,1010], "a": 1 }, + { "px": [64,304], "src": [320,272], "f": 0, "t": 411, "d": [26,1011], "a": 1 }, + { "px": [80,304], "src": [320,272], "f": 0, "t": 411, "d": [26,1012], "a": 1 }, + { "px": [96,304], "src": [320,272], "f": 0, "t": 411, "d": [26,1013], "a": 1 }, + { "px": [112,304], "src": [320,272], "f": 0, "t": 411, "d": [26,1014], "a": 1 }, + { "px": [0,320], "src": [320,272], "f": 0, "t": 411, "d": [26,1060], "a": 1 }, + { "px": [16,320], "src": [320,272], "f": 0, "t": 411, "d": [26,1061], "a": 1 }, + { "px": [32,320], "src": [320,272], "f": 0, "t": 411, "d": [26,1062], "a": 1 }, + { "px": [48,320], "src": [320,272], "f": 0, "t": 411, "d": [26,1063], "a": 1 }, + { "px": [64,320], "src": [320,272], "f": 0, "t": 411, "d": [26,1064], "a": 1 }, + { "px": [80,320], "src": [320,272], "f": 0, "t": 411, "d": [26,1065], "a": 1 }, + { "px": [96,320], "src": [320,272], "f": 0, "t": 411, "d": [26,1066], "a": 1 }, + { "px": [112,320], "src": [320,272], "f": 0, "t": 411, "d": [26,1067], "a": 1 }, + { "px": [304,160], "src": [320,272], "f": 0, "t": 411, "d": [84,549], "a": 1 }, + { "px": [320,160], "src": [320,272], "f": 0, "t": 411, "d": [84,550], "a": 1 }, + { "px": [336,160], "src": [320,272], "f": 0, "t": 411, "d": [84,551], "a": 1 }, + { "px": [128,0], "src": [288,240], "f": 1, "t": 363, "d": [37,8], "a": 1 }, + { "px": [128,16], "src": [288,240], "f": 1, "t": 363, "d": [37,61], "a": 1 }, + { "px": [128,32], "src": [288,240], "f": 1, "t": 363, "d": [37,114], "a": 1 }, + { "px": [128,48], "src": [288,240], "f": 1, "t": 363, "d": [37,167], "a": 1 }, + { "px": [320,48], "src": [288,240], "f": 0, "t": 363, "d": [37,179], "a": 1 }, + { "px": [128,64], "src": [288,240], "f": 1, "t": 363, "d": [37,220], "a": 1 }, + { "px": [320,64], "src": [288,240], "f": 0, "t": 363, "d": [37,232], "a": 1 }, + { "px": [528,64], "src": [288,240], "f": 1, "t": 363, "d": [37,245], "a": 1 }, + { "px": [624,64], "src": [288,240], "f": 0, "t": 363, "d": [37,251], "a": 1 }, + { "px": [688,64], "src": [288,240], "f": 1, "t": 363, "d": [37,255], "a": 1 }, + { "px": [720,64], "src": [288,240], "f": 0, "t": 363, "d": [37,257], "a": 1 }, + { "px": [128,80], "src": [288,240], "f": 1, "t": 363, "d": [37,273], "a": 1 }, + { "px": [688,80], "src": [288,240], "f": 1, "t": 363, "d": [37,308], "a": 1 }, + { "px": [720,80], "src": [288,240], "f": 0, "t": 363, "d": [37,310], "a": 1 }, + { "px": [288,96], "src": [288,240], "f": 0, "t": 363, "d": [37,336], "a": 1 }, + { "px": [688,96], "src": [288,240], "f": 1, "t": 363, "d": [37,361], "a": 1 }, + { "px": [720,96], "src": [288,240], "f": 0, "t": 363, "d": [37,363], "a": 1 }, + { "px": [96,112], "src": [288,240], "f": 1, "t": 363, "d": [37,377], "a": 1 }, + { "px": [688,112], "src": [288,240], "f": 1, "t": 363, "d": [37,414], "a": 1 }, + { "px": [720,112], "src": [288,240], "f": 0, "t": 363, "d": [37,416], "a": 1 }, + { "px": [96,128], "src": [288,240], "f": 1, "t": 363, "d": [37,430], "a": 1 }, + { "px": [256,128], "src": [288,240], "f": 0, "t": 363, "d": [37,440], "a": 1 }, + { "px": [528,128], "src": [288,240], "f": 1, "t": 363, "d": [37,457], "a": 1 }, + { "px": [688,128], "src": [288,240], "f": 1, "t": 363, "d": [37,467], "a": 1 }, + { "px": [384,144], "src": [288,240], "f": 1, "t": 363, "d": [37,501], "a": 1 }, + { "px": [288,160], "src": [288,240], "f": 1, "t": 363, "d": [37,548], "a": 1 }, + { "px": [336,192], "src": [288,240], "f": 1, "t": 363, "d": [37,657], "a": 1 }, + { "px": [96,208], "src": [288,240], "f": 1, "t": 363, "d": [37,695], "a": 1 }, + { "px": [256,208], "src": [288,240], "f": 0, "t": 363, "d": [37,705], "a": 1 }, + { "px": [336,208], "src": [288,240], "f": 1, "t": 363, "d": [37,710], "a": 1 }, + { "px": [96,224], "src": [288,240], "f": 1, "t": 363, "d": [37,748], "a": 1 }, + { "px": [256,224], "src": [288,240], "f": 0, "t": 363, "d": [37,758], "a": 1 }, + { "px": [96,240], "src": [288,240], "f": 1, "t": 363, "d": [37,801], "a": 1 }, + { "px": [256,240], "src": [288,240], "f": 0, "t": 363, "d": [37,811], "a": 1 }, + { "px": [256,256], "src": [288,240], "f": 0, "t": 363, "d": [37,864], "a": 1 }, + { "px": [384,256], "src": [288,240], "f": 1, "t": 363, "d": [37,872], "a": 1 }, + { "px": [416,256], "src": [288,240], "f": 0, "t": 363, "d": [37,874], "a": 1 }, + { "px": [512,256], "src": [288,240], "f": 1, "t": 363, "d": [37,880], "a": 1 }, + { "px": [128,272], "src": [288,240], "f": 1, "t": 363, "d": [37,909], "a": 1 }, + { "px": [256,272], "src": [288,240], "f": 0, "t": 363, "d": [37,917], "a": 1 }, + { "px": [384,272], "src": [288,240], "f": 1, "t": 363, "d": [37,925], "a": 1 }, + { "px": [128,288], "src": [288,240], "f": 1, "t": 363, "d": [37,962], "a": 1 }, + { "px": [128,304], "src": [288,240], "f": 1, "t": 363, "d": [37,1015], "a": 1 }, + { "px": [128,320], "src": [288,240], "f": 1, "t": 363, "d": [37,1068], "a": 1 }, + { "px": [496,32], "src": [288,272], "f": 2, "t": 409, "d": [38,137], "a": 1 }, + { "px": [512,32], "src": [288,272], "f": 2, "t": 409, "d": [38,138], "a": 1 }, + { "px": [336,48], "src": [288,272], "f": 2, "t": 409, "d": [38,180], "a": 1 }, + { "px": [640,48], "src": [288,272], "f": 2, "t": 409, "d": [38,199], "a": 1 }, + { "px": [656,48], "src": [288,272], "f": 2, "t": 409, "d": [38,200], "a": 1 }, + { "px": [672,48], "src": [288,272], "f": 2, "t": 409, "d": [38,201], "a": 1 }, + { "px": [688,48], "src": [288,272], "f": 2, "t": 409, "d": [38,202], "a": 1 }, + { "px": [432,64], "src": [288,272], "f": 2, "t": 409, "d": [38,239], "a": 1 }, + { "px": [288,80], "src": [288,272], "f": 2, "t": 409, "d": [38,283], "a": 1 }, + { "px": [560,80], "src": [288,272], "f": 2, "t": 409, "d": [38,300], "a": 1 }, + { "px": [576,80], "src": [288,272], "f": 2, "t": 409, "d": [38,301], "a": 1 }, + { "px": [560,112], "src": [288,272], "f": 0, "t": 409, "d": [38,406], "a": 1 }, + { "px": [656,128], "src": [288,272], "f": 0, "t": 409, "d": [38,465], "a": 1 }, + { "px": [128,144], "src": [288,272], "f": 2, "t": 409, "d": [38,485], "a": 1 }, + { "px": [144,144], "src": [288,272], "f": 2, "t": 409, "d": [38,486], "a": 1 }, + { "px": [160,144], "src": [288,272], "f": 2, "t": 409, "d": [38,487], "a": 1 }, + { "px": [512,144], "src": [288,272], "f": 0, "t": 409, "d": [38,509], "a": 1 }, + { "px": [160,192], "src": [288,272], "f": 0, "t": 409, "d": [38,646], "a": 1 }, + { "px": [176,192], "src": [288,272], "f": 0, "t": 409, "d": [38,647], "a": 1 }, + { "px": [192,192], "src": [288,272], "f": 0, "t": 409, "d": [38,648], "a": 1 }, + { "px": [208,192], "src": [288,272], "f": 0, "t": 409, "d": [38,649], "a": 1 }, + { "px": [224,192], "src": [288,272], "f": 0, "t": 409, "d": [38,650], "a": 1 }, + { "px": [416,240], "src": [288,272], "f": 2, "t": 409, "d": [38,821], "a": 1 }, + { "px": [480,272], "src": [288,272], "f": 0, "t": 409, "d": [38,931], "a": 1 }, + { "px": [496,272], "src": [288,272], "f": 0, "t": 409, "d": [38,932], "a": 1 }, + { "px": [16,32], "src": [256,240], "f": 0, "t": 361, "d": [77,108], "a": 1 }, + { "px": [32,32], "src": [272,240], "f": 0, "t": 362, "d": [77,108], "a": 1 }, + { "px": [48,32], "src": [288,240], "f": 0, "t": 363, "d": [77,108], "a": 1 }, + { "px": [640,96], "src": [256,240], "f": 0, "t": 361, "d": [77,359], "a": 1 }, + { "px": [656,96], "src": [272,240], "f": 0, "t": 362, "d": [77,359], "a": 1 }, + { "px": [672,96], "src": [288,240], "f": 0, "t": 363, "d": [77,359], "a": 1 }, + { "px": [32,128], "src": [256,240], "f": 0, "t": 361, "d": [77,427], "a": 1 }, + { "px": [48,128], "src": [272,240], "f": 0, "t": 362, "d": [77,427], "a": 1 }, + { "px": [64,128], "src": [288,240], "f": 0, "t": 363, "d": [77,427], "a": 1 }, + { "px": [16,224], "src": [256,240], "f": 0, "t": 361, "d": [77,744], "a": 1 }, + { "px": [32,224], "src": [272,240], "f": 0, "t": 362, "d": [77,744], "a": 1 }, + { "px": [48,224], "src": [288,240], "f": 0, "t": 363, "d": [77,744], "a": 1 }, + { "px": [32,256], "src": [256,240], "f": 0, "t": 361, "d": [77,851], "a": 1 }, + { "px": [48,256], "src": [272,240], "f": 0, "t": 362, "d": [77,851], "a": 1 }, + { "px": [64,256], "src": [288,240], "f": 0, "t": 363, "d": [77,851], "a": 1 }, + { "px": [64,288], "src": [256,240], "f": 0, "t": 361, "d": [77,959], "a": 1 }, + { "px": [80,288], "src": [272,240], "f": 0, "t": 362, "d": [77,959], "a": 1 }, + { "px": [96,288], "src": [288,240], "f": 0, "t": 363, "d": [77,959], "a": 1 }, + { "px": [304,192], "src": [128,304], "f": 2, "t": 445, "d": [71,604], "a": 1 }, + { "px": [304,176], "src": [128,320], "f": 2, "t": 468, "d": [71,604], "a": 1 }, + { "px": [320,192], "src": [144,304], "f": 2, "t": 446, "d": [71,604], "a": 1 }, + { "px": [320,176], "src": [144,320], "f": 2, "t": 469, "d": [71,604], "a": 1 }, + { "px": [336,192], "src": [160,304], "f": 2, "t": 447, "d": [71,604], "a": 1 }, + { "px": [336,176], "src": [160,320], "f": 2, "t": 470, "d": [71,604], "a": 1 }, + { "px": [352,48], "src": [176,272], "f": 2, "t": 402, "d": [39,181], "a": 1 }, + { "px": [528,48], "src": [144,272], "f": 2, "t": 400, "d": [39,192], "a": 1 }, + { "px": [400,80], "src": [160,304], "f": 2, "t": 447, "d": [39,290], "a": 1 }, + { "px": [272,112], "src": [144,272], "f": 2, "t": 400, "d": [39,388], "a": 1 }, + { "px": [176,144], "src": [160,304], "f": 2, "t": 447, "d": [39,488], "a": 1 }, + { "px": [192,144], "src": [176,272], "f": 2, "t": 402, "d": [39,489], "a": 1 }, + { "px": [224,144], "src": [160,304], "f": 2, "t": 447, "d": [39,491], "a": 1 }, + { "px": [336,144], "src": [144,272], "f": 0, "t": 400, "d": [39,498], "a": 1 }, + { "px": [416,144], "src": [144,272], "f": 0, "t": 400, "d": [39,503], "a": 1 }, + { "px": [432,144], "src": [192,304], "f": 0, "t": 449, "d": [39,504], "a": 1 }, + { "px": [448,144], "src": [144,272], "f": 0, "t": 400, "d": [39,505], "a": 1 }, + { "px": [464,144], "src": [160,304], "f": 0, "t": 447, "d": [39,506], "a": 1 }, + { "px": [496,144], "src": [176,272], "f": 0, "t": 402, "d": [39,508], "a": 1 }, + { "px": [288,272], "src": [160,304], "f": 0, "t": 447, "d": [39,919], "a": 1 }, + { "px": [336,272], "src": [176,272], "f": 0, "t": 402, "d": [39,922], "a": 1 }, + { "px": [352,272], "src": [160,304], "f": 0, "t": 447, "d": [39,923], "a": 1 }, + { "px": [416,272], "src": [176,272], "f": 0, "t": 402, "d": [39,927], "a": 1 }, + { "px": [464,48], "src": [144,272], "f": 3, "t": 400, "d": [65,188], "a": 1 }, + { "px": [384,64], "src": [128,320], "f": 2, "t": 468, "d": [65,236], "a": 1 }, + { "px": [256,112], "src": [144,272], "f": 3, "t": 400, "d": [65,387], "a": 1 }, + { "px": [528,144], "src": [144,304], "f": 0, "t": 446, "d": [65,510], "a": 1 }, + { "px": [352,224], "src": [144,304], "f": 2, "t": 446, "d": [65,764], "a": 1 }, + { "px": [384,240], "src": [144,272], "f": 2, "t": 400, "d": [65,819], "a": 1 }, + { "px": [304,272], "src": [144,272], "f": 0, "t": 400, "d": [65,920], "a": 1 }, + { "px": [624,48], "src": [208,304], "f": 2, "t": 450, "d": [80,198], "a": 1 }, + { "px": [720,48], "src": [208,304], "f": 3, "t": 450, "d": [80,204], "a": 1 }, + { "px": [128,96], "src": [208,304], "f": 1, "t": 450, "d": [80,326], "a": 1 }, + { "px": [624,128], "src": [208,304], "f": 0, "t": 450, "d": [80,463], "a": 1 }, + { "px": [720,128], "src": [208,304], "f": 1, "t": 450, "d": [80,469], "a": 1 }, + { "px": [464,240], "src": [208,304], "f": 2, "t": 450, "d": [80,824], "a": 1 }, + { "px": [512,240], "src": [208,304], "f": 3, "t": 450, "d": [80,827], "a": 1 }, + { "px": [128,256], "src": [208,304], "f": 3, "t": 450, "d": [80,856], "a": 1 }, + { "px": [512,272], "src": [208,304], "f": 1, "t": 450, "d": [80,933], "a": 1 }, + { "px": [664,96], "src": [208,240], "f": 0, "t": 358, "d": [72,466], "a": 1 }, + { "px": [664,112], "src": [208,256], "f": 0, "t": 381, "d": [72,466], "a": 1 }, + { "px": [664,128], "src": [208,272], "f": 0, "t": 404, "d": [72,466], "a": 1 }, + { "px": [680,96], "src": [224,240], "f": 0, "t": 359, "d": [72,466], "a": 1 }, + { "px": [680,112], "src": [224,256], "f": 0, "t": 382, "d": [72,466], "a": 1 }, + { "px": [680,128], "src": [224,272], "f": 0, "t": 405, "d": [72,466], "a": 1 }, + { "px": [136,160], "src": [208,240], "f": 0, "t": 358, "d": [72,645], "a": 1 }, + { "px": [136,176], "src": [208,256], "f": 0, "t": 381, "d": [72,645], "a": 1 }, + { "px": [136,192], "src": [208,272], "f": 0, "t": 404, "d": [72,645], "a": 1 }, + { "px": [152,160], "src": [224,240], "f": 0, "t": 359, "d": [72,645], "a": 1 }, + { "px": [152,176], "src": [224,256], "f": 0, "t": 382, "d": [72,645], "a": 1 }, + { "px": [152,192], "src": [224,272], "f": 0, "t": 405, "d": [72,645], "a": 1 } + ], + "seed": 5428446, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a316bd80-66b0-11ec-9cd7-c50cdc9d2cc4", "dir": "n" }, { "levelIid": "a317cef0-66b0-11ec-9cd7-dd2f249c8c8b", "dir": "s" } ] + }, + { + "identifier": "Top", + "iid": "a316bd80-66b0-11ec-9cd7-c50cdc9d2cc4", + "uid": 89, + "worldX": 352, + "worldY": -352, + "worldDepth": 0, + "pxWid": 672, + "pxHei": 352, + "__bgColor": "#50506A", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#9F9FAD", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 42, + "__cHei": 22, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a316bd85-66b0-11ec-9cd7-4bd06a4903e2", + "levelId": 89, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 5505402, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Mob", + "__grid": [28,14], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 96, "y": 0, "w": 16, "h": 16 }, + "__smartColor": "#FF0000", + "iid": "a316bd86-66b0-11ec-9cd7-837d4383ebc8", + "width": 20, + "height": 20, + "defUid": 54, + "px": [456,240], + "fieldInstances": [ + { "__identifier": "loot", "__type": "Array", "__value": [], "__tile": null, "defUid": 56, "realEditorValues": [] }, + { "__identifier": "patrol", "__type": "Array", "__value": [{ "cx": 22, "cy": 14 }], "__tile": null, "defUid": 55, "realEditorValues": [{ + "id": "V_String", + "params": ["22,14"] + }] } + ] + }, + { + "__identifier": "Mob", + "__grid": [26,20], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 96, "y": 0, "w": 16, "h": 16 }, + "__smartColor": "#FF0000", + "iid": "a316bd87-66b0-11ec-9cd7-df8b07359531", + "width": 20, + "height": 20, + "defUid": 54, + "px": [424,336], + "fieldInstances": [ + { "__identifier": "loot", "__type": "Array", "__value": [], "__tile": null, "defUid": 56, "realEditorValues": [] }, + { "__identifier": "patrol", "__type": "Array", "__value": [{ "cx": 23, "cy": 20 }], "__tile": null, "defUid": 55, "realEditorValues": [{ + "id": "V_String", + "params": ["23,20"] + }] } + ] + }, + { + "__identifier": "Mob", + "__grid": [12,13], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 96, "y": 0, "w": 16, "h": 16 }, + "__smartColor": "#FF0000", + "iid": "a316bd88-66b0-11ec-9cd7-cbd4e685a38f", + "width": 48, + "height": 48, + "defUid": 54, + "px": [200,224], + "fieldInstances": [ + { "__identifier": "loot", "__type": "Array", "__value": [ "Knife", "Healing_Plant" ], "__tile": null, "defUid": 56, "realEditorValues": [ { + "id": "V_String", + "params": ["Knife"] + }, { + "id": "V_String", + "params": ["Healing_Plant"] + } ] }, + { "__identifier": "patrol", "__type": "Array", "__value": [], "__tile": null, "defUid": 55, "realEditorValues": [] } + ] + }, + { + "__identifier": "Door", + "__grid": [20,13], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 352, "y": 32, "w": 16, "h": 16 }, + "__smartColor": "#B7A87A", + "iid": "a316bd89-66b0-11ec-9cd7-69448da578ed", + "width": 12, + "height": 64, + "defUid": 86, + "px": [328,224], + "fieldInstances": [{ "__identifier": "locked", "__type": "Bool", "__value": false, "__tile": null, "defUid": 87, "realEditorValues": [] }] + }, + { + "__identifier": "Chest", + "__grid": [4,9], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 160, "y": 560, "w": 16, "h": 16 }, + "__smartColor": "#6ADDEC", + "iid": "a316bd8a-66b0-11ec-9cd7-a986f709d9f8", + "width": 24, + "height": 24, + "defUid": 52, + "px": [72,160], + "fieldInstances": [{ "__identifier": "content", "__type": "Array", "__value": [ "Gem", "Gem" ], "__tile": null, "defUid": 53, "realEditorValues": [ { + "id": "V_String", + "params": ["Gem"] + }, { + "id": "V_String", + "params": ["Gem"] + } ] }] + }, + { + "__identifier": "Door", + "__grid": [7,8], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 352, "y": 32, "w": 16, "h": 16 }, + "__smartColor": "#B7A87A", + "iid": "a316bd8b-66b0-11ec-9cd7-27e78e24a888", + "width": 12, + "height": 32, + "defUid": 86, + "px": [120,144], + "fieldInstances": [{ "__identifier": "locked", "__type": "Bool", "__value": true, "__tile": null, "defUid": 87, "realEditorValues": [{ + "id": "V_Bool", + "params": [ true ] + }] }] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 42, + "__cHei": 22, + "__gridSize": 16, + "__opacity": 0.17, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 2, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a316bd8c-66b0-11ec-9cd7-ef61da91c3b3", + "levelId": 89, + "layerDefUid": 97, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [128,64], "src": [336,112], "f": 0, "t": 182, "d": [99,176], "a": 1 }, + { "px": [144,64], "src": [336,112], "f": 0, "t": 182, "d": [99,177], "a": 1 }, + { "px": [160,64], "src": [336,112], "f": 0, "t": 182, "d": [99,178], "a": 1 }, + { "px": [176,64], "src": [336,112], "f": 0, "t": 182, "d": [99,179], "a": 1 }, + { "px": [192,64], "src": [336,112], "f": 0, "t": 182, "d": [99,180], "a": 1 }, + { "px": [208,64], "src": [336,112], "f": 0, "t": 182, "d": [99,181], "a": 1 }, + { "px": [224,64], "src": [336,112], "f": 0, "t": 182, "d": [99,182], "a": 1 }, + { "px": [240,64], "src": [336,112], "f": 0, "t": 182, "d": [99,183], "a": 1 }, + { "px": [256,64], "src": [336,112], "f": 0, "t": 182, "d": [99,184], "a": 1 }, + { "px": [272,64], "src": [336,112], "f": 0, "t": 182, "d": [99,185], "a": 1 }, + { "px": [288,64], "src": [336,112], "f": 0, "t": 182, "d": [99,186], "a": 1 }, + { "px": [48,96], "src": [336,112], "f": 0, "t": 182, "d": [99,255], "a": 1 }, + { "px": [64,96], "src": [336,112], "f": 0, "t": 182, "d": [99,256], "a": 1 }, + { "px": [80,96], "src": [336,112], "f": 0, "t": 182, "d": [99,257], "a": 1 }, + { "px": [96,96], "src": [336,112], "f": 0, "t": 182, "d": [99,258], "a": 1 }, + { "px": [112,112], "src": [336,112], "f": 0, "t": 182, "d": [99,301], "a": 1 }, + { "px": [112,128], "src": [336,112], "f": 2, "t": 182, "d": [99,343], "a": 1 }, + { "px": [48,144], "src": [336,112], "f": 2, "t": 182, "d": [99,381], "a": 1 }, + { "px": [64,144], "src": [336,112], "f": 2, "t": 182, "d": [99,382], "a": 1 }, + { "px": [80,144], "src": [336,112], "f": 2, "t": 182, "d": [99,383], "a": 1 }, + { "px": [96,144], "src": [336,112], "f": 2, "t": 182, "d": [99,384], "a": 1 }, + { "px": [352,144], "src": [336,112], "f": 0, "t": 182, "d": [99,400], "a": 1 }, + { "px": [368,144], "src": [336,112], "f": 0, "t": 182, "d": [99,401], "a": 1 }, + { "px": [384,144], "src": [336,112], "f": 0, "t": 182, "d": [99,402], "a": 1 }, + { "px": [400,144], "src": [336,112], "f": 0, "t": 182, "d": [99,403], "a": 1 }, + { "px": [416,144], "src": [336,112], "f": 0, "t": 182, "d": [99,404], "a": 1 }, + { "px": [432,144], "src": [336,112], "f": 0, "t": 182, "d": [99,405], "a": 1 }, + { "px": [448,144], "src": [336,112], "f": 0, "t": 182, "d": [99,406], "a": 1 }, + { "px": [304,160], "src": [336,112], "f": 0, "t": 182, "d": [99,439], "a": 1 }, + { "px": [320,160], "src": [336,112], "f": 0, "t": 182, "d": [99,440], "a": 1 }, + { "px": [336,160], "src": [336,112], "f": 0, "t": 182, "d": [99,441], "a": 1 }, + { "px": [128,208], "src": [336,112], "f": 2, "t": 182, "d": [99,554], "a": 1 }, + { "px": [144,208], "src": [336,112], "f": 2, "t": 182, "d": [99,555], "a": 1 }, + { "px": [160,208], "src": [336,112], "f": 2, "t": 182, "d": [99,556], "a": 1 }, + { "px": [176,208], "src": [336,112], "f": 2, "t": 182, "d": [99,557], "a": 1 }, + { "px": [192,208], "src": [336,112], "f": 2, "t": 182, "d": [99,558], "a": 1 }, + { "px": [208,208], "src": [336,112], "f": 2, "t": 182, "d": [99,559], "a": 1 }, + { "px": [224,208], "src": [336,112], "f": 2, "t": 182, "d": [99,560], "a": 1 }, + { "px": [240,208], "src": [336,112], "f": 2, "t": 182, "d": [99,561], "a": 1 }, + { "px": [256,208], "src": [336,112], "f": 2, "t": 182, "d": [99,562], "a": 1 }, + { "px": [272,208], "src": [336,112], "f": 2, "t": 182, "d": [99,563], "a": 1 }, + { "px": [288,208], "src": [336,112], "f": 2, "t": 182, "d": [99,564], "a": 1 }, + { "px": [304,208], "src": [336,112], "f": 2, "t": 182, "d": [99,565], "a": 1 }, + { "px": [320,208], "src": [336,112], "f": 2, "t": 182, "d": [99,566], "a": 1 }, + { "px": [336,208], "src": [336,112], "f": 2, "t": 182, "d": [99,567], "a": 1 }, + { "px": [352,224], "src": [336,112], "f": 2, "t": 182, "d": [99,610], "a": 1 }, + { "px": [368,224], "src": [336,112], "f": 2, "t": 182, "d": [99,611], "a": 1 }, + { "px": [384,224], "src": [336,112], "f": 2, "t": 182, "d": [99,612], "a": 1 }, + { "px": [400,224], "src": [336,112], "f": 2, "t": 182, "d": [99,613], "a": 1 }, + { "px": [416,224], "src": [336,112], "f": 2, "t": 182, "d": [99,614], "a": 1 }, + { "px": [432,224], "src": [336,112], "f": 2, "t": 182, "d": [99,615], "a": 1 }, + { "px": [448,224], "src": [336,112], "f": 2, "t": 182, "d": [99,616], "a": 1 }, + { "px": [336,272], "src": [336,112], "f": 0, "t": 182, "d": [99,735], "a": 1 }, + { "px": [352,272], "src": [336,112], "f": 0, "t": 182, "d": [99,736], "a": 1 }, + { "px": [368,272], "src": [336,112], "f": 0, "t": 182, "d": [99,737], "a": 1 }, + { "px": [384,272], "src": [336,112], "f": 0, "t": 182, "d": [99,738], "a": 1 }, + { "px": [416,272], "src": [336,112], "f": 0, "t": 182, "d": [99,740], "a": 1 }, + { "px": [432,272], "src": [336,112], "f": 0, "t": 182, "d": [99,741], "a": 1 }, + { "px": [128,64], "src": [320,128], "f": 0, "t": 204, "d": [100,176], "a": 1 }, + { "px": [288,64], "src": [320,128], "f": 1, "t": 204, "d": [100,186], "a": 1 }, + { "px": [128,80], "src": [320,128], "f": 0, "t": 204, "d": [100,218], "a": 1 }, + { "px": [288,80], "src": [320,128], "f": 1, "t": 204, "d": [100,228], "a": 1 }, + { "px": [48,96], "src": [320,128], "f": 0, "t": 204, "d": [100,255], "a": 1 }, + { "px": [96,96], "src": [320,128], "f": 1, "t": 204, "d": [100,258], "a": 1 }, + { "px": [128,96], "src": [320,128], "f": 0, "t": 204, "d": [100,260], "a": 1 }, + { "px": [288,96], "src": [320,128], "f": 1, "t": 204, "d": [100,270], "a": 1 }, + { "px": [48,112], "src": [320,128], "f": 0, "t": 204, "d": [100,297], "a": 1 }, + { "px": [288,112], "src": [320,128], "f": 1, "t": 204, "d": [100,312], "a": 1 }, + { "px": [48,128], "src": [320,128], "f": 0, "t": 204, "d": [100,339], "a": 1 }, + { "px": [288,128], "src": [320,128], "f": 1, "t": 204, "d": [100,354], "a": 1 }, + { "px": [48,144], "src": [320,128], "f": 0, "t": 204, "d": [100,381], "a": 1 }, + { "px": [96,144], "src": [320,128], "f": 1, "t": 204, "d": [100,384], "a": 1 }, + { "px": [128,144], "src": [320,128], "f": 0, "t": 204, "d": [100,386], "a": 1 }, + { "px": [288,144], "src": [320,128], "f": 1, "t": 204, "d": [100,396], "a": 1 }, + { "px": [352,144], "src": [320,128], "f": 0, "t": 204, "d": [100,400], "a": 1 }, + { "px": [448,144], "src": [320,128], "f": 1, "t": 204, "d": [100,406], "a": 1 }, + { "px": [144,160], "src": [320,128], "f": 0, "t": 204, "d": [100,429], "a": 1 }, + { "px": [448,160], "src": [320,128], "f": 1, "t": 204, "d": [100,448], "a": 1 }, + { "px": [128,176], "src": [320,128], "f": 0, "t": 204, "d": [100,470], "a": 1 }, + { "px": [448,176], "src": [320,128], "f": 1, "t": 204, "d": [100,490], "a": 1 }, + { "px": [128,192], "src": [320,128], "f": 0, "t": 204, "d": [100,512], "a": 1 }, + { "px": [448,192], "src": [320,128], "f": 1, "t": 204, "d": [100,532], "a": 1 }, + { "px": [128,208], "src": [320,128], "f": 0, "t": 204, "d": [100,554], "a": 1 }, + { "px": [448,208], "src": [320,128], "f": 1, "t": 204, "d": [100,574], "a": 1 }, + { "px": [352,224], "src": [320,128], "f": 0, "t": 204, "d": [100,610], "a": 1 }, + { "px": [448,224], "src": [320,128], "f": 1, "t": 204, "d": [100,616], "a": 1 }, + { "px": [336,272], "src": [320,128], "f": 0, "t": 204, "d": [100,735], "a": 1 }, + { "px": [384,272], "src": [320,128], "f": 1, "t": 204, "d": [100,738], "a": 1 }, + { "px": [416,272], "src": [320,128], "f": 0, "t": 204, "d": [100,740], "a": 1 }, + { "px": [432,272], "src": [320,128], "f": 1, "t": 204, "d": [100,741], "a": 1 }, + { "px": [336,288], "src": [320,128], "f": 0, "t": 204, "d": [100,777], "a": 1 }, + { "px": [384,288], "src": [320,128], "f": 1, "t": 204, "d": [100,780], "a": 1 }, + { "px": [416,288], "src": [320,128], "f": 0, "t": 204, "d": [100,782], "a": 1 }, + { "px": [432,288], "src": [320,128], "f": 1, "t": 204, "d": [100,783], "a": 1 }, + { "px": [336,304], "src": [320,128], "f": 0, "t": 204, "d": [100,819], "a": 1 }, + { "px": [384,304], "src": [320,128], "f": 1, "t": 204, "d": [100,822], "a": 1 }, + { "px": [416,304], "src": [320,128], "f": 0, "t": 204, "d": [100,824], "a": 1 }, + { "px": [432,304], "src": [320,128], "f": 1, "t": 204, "d": [100,825], "a": 1 }, + { "px": [336,320], "src": [320,128], "f": 0, "t": 204, "d": [100,861], "a": 1 }, + { "px": [384,320], "src": [320,128], "f": 1, "t": 204, "d": [100,864], "a": 1 }, + { "px": [416,320], "src": [320,128], "f": 0, "t": 204, "d": [100,866], "a": 1 }, + { "px": [432,320], "src": [320,128], "f": 1, "t": 204, "d": [100,867], "a": 1 } + ], + "seed": 4893029, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 42, + "__cHei": 22, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 2, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a316e490-66b0-11ec-9cd7-774a8b98c637", + "levelId": 89, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3, + 3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0, + 1,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1, + 1,1,3,3,3,3,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,2,3,3, + 3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3, + 0,0,0,0,2,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3,3,3,0,0,0,0,2,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,3,3,3,0,0,0,0,2,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,0,0,0,0,2,0,0,3,3,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,2,3,3,3,3,3, + 3,3,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [13,48], "a": 1 }, + { "px": [112,16], "src": [32,32], "f": 0, "t": 48, "d": [13,49], "a": 1 }, + { "px": [176,16], "src": [32,32], "f": 0, "t": 48, "d": [13,53], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [13,61], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [13,62], "a": 1 }, + { "px": [0,32], "src": [32,32], "f": 0, "t": 48, "d": [13,84], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [13,85], "a": 1 }, + { "px": [32,32], "src": [32,32], "f": 0, "t": 48, "d": [13,86], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [13,87], "a": 1 }, + { "px": [64,32], "src": [32,32], "f": 0, "t": 48, "d": [13,88], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [13,89], "a": 1 }, + { "px": [96,32], "src": [32,32], "f": 0, "t": 48, "d": [13,90], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [13,91], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [13,93], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [13,101], "a": 1 }, + { "px": [288,32], "src": [32,32], "f": 0, "t": 48, "d": [13,102], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [13,103], "a": 1 }, + { "px": [320,32], "src": [32,32], "f": 0, "t": 48, "d": [13,104], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [13,105], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [13,126], "a": 1 }, + { "px": [16,48], "src": [32,32], "f": 0, "t": 48, "d": [13,127], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [13,128], "a": 1 }, + { "px": [48,48], "src": [32,32], "f": 0, "t": 48, "d": [13,129], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [13,130], "a": 1 }, + { "px": [80,48], "src": [32,32], "f": 0, "t": 48, "d": [13,131], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [13,132], "a": 1 }, + { "px": [304,48], "src": [32,32], "f": 0, "t": 48, "d": [13,145], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [13,146], "a": 1 }, + { "px": [336,48], "src": [32,32], "f": 0, "t": 48, "d": [13,147], "a": 1 }, + { "px": [0,64], "src": [32,32], "f": 0, "t": 48, "d": [13,168], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [13,169], "a": 1 }, + { "px": [320,64], "src": [32,32], "f": 0, "t": 48, "d": [13,188], "a": 1 }, + { "px": [336,64], "src": [32,32], "f": 0, "t": 48, "d": [13,189], "a": 1 }, + { "px": [352,64], "src": [32,32], "f": 0, "t": 48, "d": [13,190], "a": 1 }, + { "px": [368,64], "src": [32,32], "f": 0, "t": 48, "d": [13,191], "a": 1 }, + { "px": [384,64], "src": [32,32], "f": 0, "t": 48, "d": [13,192], "a": 1 }, + { "px": [400,64], "src": [32,32], "f": 0, "t": 48, "d": [13,193], "a": 1 }, + { "px": [416,64], "src": [32,32], "f": 0, "t": 48, "d": [13,194], "a": 1 }, + { "px": [432,64], "src": [32,32], "f": 0, "t": 48, "d": [13,195], "a": 1 }, + { "px": [448,64], "src": [32,32], "f": 0, "t": 48, "d": [13,196], "a": 1 }, + { "px": [464,64], "src": [32,32], "f": 0, "t": 48, "d": [13,197], "a": 1 }, + { "px": [480,64], "src": [32,32], "f": 0, "t": 48, "d": [13,198], "a": 1 }, + { "px": [496,64], "src": [32,32], "f": 0, "t": 48, "d": [13,199], "a": 1 }, + { "px": [512,64], "src": [32,32], "f": 0, "t": 48, "d": [13,200], "a": 1 }, + { "px": [0,80], "src": [32,32], "f": 0, "t": 48, "d": [13,210], "a": 1 }, + { "px": [336,80], "src": [32,32], "f": 0, "t": 48, "d": [13,231], "a": 1 }, + { "px": [352,80], "src": [32,32], "f": 0, "t": 48, "d": [13,232], "a": 1 }, + { "px": [368,80], "src": [32,32], "f": 0, "t": 48, "d": [13,233], "a": 1 }, + { "px": [384,80], "src": [32,32], "f": 0, "t": 48, "d": [13,234], "a": 1 }, + { "px": [400,80], "src": [32,32], "f": 0, "t": 48, "d": [13,235], "a": 1 }, + { "px": [416,80], "src": [32,32], "f": 0, "t": 48, "d": [13,236], "a": 1 }, + { "px": [432,80], "src": [32,32], "f": 0, "t": 48, "d": [13,237], "a": 1 }, + { "px": [448,80], "src": [32,32], "f": 0, "t": 48, "d": [13,238], "a": 1 }, + { "px": [464,80], "src": [32,32], "f": 0, "t": 48, "d": [13,239], "a": 1 }, + { "px": [480,80], "src": [32,32], "f": 0, "t": 48, "d": [13,240], "a": 1 }, + { "px": [496,80], "src": [32,32], "f": 0, "t": 48, "d": [13,241], "a": 1 }, + { "px": [512,80], "src": [32,32], "f": 0, "t": 48, "d": [13,242], "a": 1 }, + { "px": [528,80], "src": [32,32], "f": 0, "t": 48, "d": [13,243], "a": 1 }, + { "px": [0,96], "src": [32,32], "f": 0, "t": 48, "d": [13,252], "a": 1 }, + { "px": [496,96], "src": [32,32], "f": 0, "t": 48, "d": [13,283], "a": 1 }, + { "px": [512,96], "src": [32,32], "f": 0, "t": 48, "d": [13,284], "a": 1 }, + { "px": [528,96], "src": [32,32], "f": 0, "t": 48, "d": [13,285], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [13,294], "a": 1 }, + { "px": [512,112], "src": [32,32], "f": 0, "t": 48, "d": [13,326], "a": 1 }, + { "px": [0,128], "src": [32,32], "f": 0, "t": 48, "d": [13,336], "a": 1 }, + { "px": [512,128], "src": [32,32], "f": 0, "t": 48, "d": [13,368], "a": 1 }, + { "px": [528,128], "src": [32,32], "f": 0, "t": 48, "d": [13,369], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [13,378], "a": 1 }, + { "px": [512,144], "src": [32,32], "f": 0, "t": 48, "d": [13,410], "a": 1 }, + { "px": [528,144], "src": [32,32], "f": 0, "t": 48, "d": [13,411], "a": 1 }, + { "px": [512,160], "src": [32,32], "f": 0, "t": 48, "d": [13,452], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [13,462], "a": 1 }, + { "px": [16,176], "src": [32,32], "f": 0, "t": 48, "d": [13,463], "a": 1 }, + { "px": [0,192], "src": [32,32], "f": 0, "t": 48, "d": [13,504], "a": 1 }, + { "px": [96,192], "src": [32,32], "f": 0, "t": 48, "d": [13,510], "a": 1 }, + { "px": [16,208], "src": [32,32], "f": 0, "t": 48, "d": [13,547], "a": 1 }, + { "px": [80,208], "src": [32,32], "f": 0, "t": 48, "d": [13,551], "a": 1 }, + { "px": [528,208], "src": [32,32], "f": 0, "t": 48, "d": [13,579], "a": 1 }, + { "px": [112,240], "src": [32,32], "f": 0, "t": 48, "d": [13,637], "a": 1 }, + { "px": [96,256], "src": [32,32], "f": 0, "t": 48, "d": [13,678], "a": 1 }, + { "px": [112,256], "src": [32,32], "f": 0, "t": 48, "d": [13,679], "a": 1 }, + { "px": [128,256], "src": [32,32], "f": 0, "t": 48, "d": [13,680], "a": 1 }, + { "px": [512,256], "src": [32,32], "f": 0, "t": 48, "d": [13,704], "a": 1 }, + { "px": [144,272], "src": [32,32], "f": 0, "t": 48, "d": [13,723], "a": 1 }, + { "px": [528,272], "src": [32,32], "f": 0, "t": 48, "d": [13,747], "a": 1 }, + { "px": [144,288], "src": [32,32], "f": 0, "t": 48, "d": [13,765], "a": 1 }, + { "px": [512,288], "src": [32,32], "f": 0, "t": 48, "d": [13,788], "a": 1 }, + { "px": [528,288], "src": [32,32], "f": 0, "t": 48, "d": [13,789], "a": 1 }, + { "px": [512,304], "src": [32,32], "f": 0, "t": 48, "d": [13,830], "a": 1 }, + { "px": [496,320], "src": [32,32], "f": 0, "t": 48, "d": [13,871], "a": 1 }, + { "px": [512,320], "src": [32,32], "f": 0, "t": 48, "d": [13,872], "a": 1 }, + { "px": [192,336], "src": [32,32], "f": 0, "t": 48, "d": [13,894], "a": 1 }, + { "px": [208,336], "src": [32,32], "f": 0, "t": 48, "d": [13,895], "a": 1 }, + { "px": [496,336], "src": [32,32], "f": 0, "t": 48, "d": [13,913], "a": 1 }, + { "px": [512,336], "src": [32,32], "f": 0, "t": 48, "d": [13,914], "a": 1 }, + { "px": [144,16], "src": [96,96], "f": 0, "t": 144, "d": [81,51], "a": 1 }, + { "px": [192,16], "src": [96,96], "f": 0, "t": 144, "d": [81,54], "a": 1 }, + { "px": [240,16], "src": [96,96], "f": 0, "t": 144, "d": [81,57], "a": 1 }, + { "px": [256,16], "src": [96,96], "f": 0, "t": 144, "d": [81,58], "a": 1 }, + { "px": [272,16], "src": [96,96], "f": 0, "t": 144, "d": [81,59], "a": 1 }, + { "px": [176,32], "src": [96,96], "f": 0, "t": 144, "d": [81,95], "a": 1 }, + { "px": [192,32], "src": [96,96], "f": 0, "t": 144, "d": [81,96], "a": 1 }, + { "px": [208,32], "src": [96,96], "f": 0, "t": 144, "d": [81,97], "a": 1 }, + { "px": [240,32], "src": [96,96], "f": 0, "t": 144, "d": [81,99], "a": 1 }, + { "px": [256,32], "src": [96,96], "f": 0, "t": 144, "d": [81,100], "a": 1 }, + { "px": [528,160], "src": [96,96], "f": 0, "t": 144, "d": [81,453], "a": 1 }, + { "px": [16,192], "src": [96,96], "f": 0, "t": 144, "d": [81,505], "a": 1 }, + { "px": [48,192], "src": [96,96], "f": 0, "t": 144, "d": [81,507], "a": 1 }, + { "px": [64,192], "src": [96,96], "f": 0, "t": 144, "d": [81,508], "a": 1 }, + { "px": [512,192], "src": [96,96], "f": 0, "t": 144, "d": [81,536], "a": 1 }, + { "px": [48,208], "src": [96,96], "f": 0, "t": 144, "d": [81,549], "a": 1 }, + { "px": [64,208], "src": [96,96], "f": 0, "t": 144, "d": [81,550], "a": 1 }, + { "px": [96,208], "src": [96,96], "f": 0, "t": 144, "d": [81,552], "a": 1 }, + { "px": [96,224], "src": [96,96], "f": 0, "t": 144, "d": [81,594], "a": 1 }, + { "px": [80,240], "src": [96,96], "f": 0, "t": 144, "d": [81,635], "a": 1 }, + { "px": [96,240], "src": [96,96], "f": 0, "t": 144, "d": [81,636], "a": 1 }, + { "px": [128,240], "src": [96,96], "f": 0, "t": 144, "d": [81,638], "a": 1 }, + { "px": [144,256], "src": [96,96], "f": 0, "t": 144, "d": [81,681], "a": 1 }, + { "px": [160,256], "src": [96,96], "f": 0, "t": 144, "d": [81,682], "a": 1 }, + { "px": [160,272], "src": [96,96], "f": 0, "t": 144, "d": [81,724], "a": 1 }, + { "px": [192,272], "src": [96,96], "f": 0, "t": 144, "d": [81,726], "a": 1 }, + { "px": [224,272], "src": [96,96], "f": 0, "t": 144, "d": [81,728], "a": 1 }, + { "px": [240,272], "src": [96,96], "f": 0, "t": 144, "d": [81,729], "a": 1 }, + { "px": [256,272], "src": [96,96], "f": 0, "t": 144, "d": [81,730], "a": 1 }, + { "px": [208,288], "src": [96,96], "f": 0, "t": 144, "d": [81,769], "a": 1 }, + { "px": [224,288], "src": [96,96], "f": 0, "t": 144, "d": [81,770], "a": 1 }, + { "px": [240,288], "src": [96,96], "f": 0, "t": 144, "d": [81,771], "a": 1 }, + { "px": [192,304], "src": [96,96], "f": 0, "t": 144, "d": [81,810], "a": 1 }, + { "px": [208,304], "src": [96,96], "f": 0, "t": 144, "d": [81,811], "a": 1 }, + { "px": [224,304], "src": [96,96], "f": 0, "t": 144, "d": [81,812], "a": 1 }, + { "px": [496,304], "src": [96,96], "f": 0, "t": 144, "d": [81,829], "a": 1 }, + { "px": [192,320], "src": [96,96], "f": 0, "t": 144, "d": [81,852], "a": 1 }, + { "px": [208,320], "src": [96,96], "f": 0, "t": 144, "d": [81,853], "a": 1 }, + { "px": [128,16], "src": [96,96], "f": 0, "t": 144, "d": [14,50], "a": 1 }, + { "px": [160,16], "src": [96,96], "f": 0, "t": 144, "d": [14,52], "a": 1 }, + { "px": [208,16], "src": [64,96], "f": 0, "t": 142, "d": [14,55], "a": 1 }, + { "px": [224,16], "src": [96,96], "f": 0, "t": 144, "d": [14,56], "a": 1 }, + { "px": [288,16], "src": [64,96], "f": 0, "t": 142, "d": [14,60], "a": 1 }, + { "px": [128,32], "src": [64,96], "f": 0, "t": 142, "d": [14,92], "a": 1 }, + { "px": [160,32], "src": [64,96], "f": 0, "t": 142, "d": [14,94], "a": 1 }, + { "px": [224,32], "src": [96,96], "f": 0, "t": 144, "d": [14,98], "a": 1 }, + { "px": [112,48], "src": [64,96], "f": 0, "t": 142, "d": [14,133], "a": 1 }, + { "px": [320,80], "src": [64,96], "f": 0, "t": 142, "d": [14,230], "a": 1 }, + { "px": [528,112], "src": [64,96], "f": 0, "t": 142, "d": [14,327], "a": 1 }, + { "px": [0,160], "src": [64,96], "f": 0, "t": 142, "d": [14,420], "a": 1 }, + { "px": [512,176], "src": [96,96], "f": 0, "t": 144, "d": [14,494], "a": 1 }, + { "px": [528,176], "src": [96,96], "f": 0, "t": 144, "d": [14,495], "a": 1 }, + { "px": [32,192], "src": [96,96], "f": 0, "t": 144, "d": [14,506], "a": 1 }, + { "px": [80,192], "src": [64,96], "f": 0, "t": 142, "d": [14,509], "a": 1 }, + { "px": [528,192], "src": [64,96], "f": 0, "t": 142, "d": [14,537], "a": 1 }, + { "px": [0,208], "src": [64,96], "f": 0, "t": 142, "d": [14,546], "a": 1 }, + { "px": [32,208], "src": [64,96], "f": 0, "t": 142, "d": [14,548], "a": 1 }, + { "px": [512,208], "src": [96,96], "f": 0, "t": 144, "d": [14,578], "a": 1 }, + { "px": [80,224], "src": [64,96], "f": 0, "t": 142, "d": [14,593], "a": 1 }, + { "px": [112,224], "src": [64,96], "f": 0, "t": 142, "d": [14,595], "a": 1 }, + { "px": [512,224], "src": [64,96], "f": 0, "t": 142, "d": [14,620], "a": 1 }, + { "px": [528,224], "src": [64,96], "f": 0, "t": 142, "d": [14,621], "a": 1 }, + { "px": [144,240], "src": [96,96], "f": 0, "t": 144, "d": [14,639], "a": 1 }, + { "px": [512,240], "src": [64,96], "f": 0, "t": 142, "d": [14,662], "a": 1 }, + { "px": [528,240], "src": [64,96], "f": 0, "t": 142, "d": [14,663], "a": 1 }, + { "px": [528,256], "src": [64,96], "f": 0, "t": 142, "d": [14,705], "a": 1 }, + { "px": [128,272], "src": [64,96], "f": 0, "t": 142, "d": [14,722], "a": 1 }, + { "px": [176,272], "src": [96,96], "f": 0, "t": 144, "d": [14,725], "a": 1 }, + { "px": [208,272], "src": [64,96], "f": 0, "t": 142, "d": [14,727], "a": 1 }, + { "px": [496,272], "src": [64,96], "f": 0, "t": 142, "d": [14,745], "a": 1 }, + { "px": [512,272], "src": [64,96], "f": 0, "t": 142, "d": [14,746], "a": 1 }, + { "px": [160,288], "src": [96,96], "f": 0, "t": 144, "d": [14,766], "a": 1 }, + { "px": [176,288], "src": [64,96], "f": 0, "t": 142, "d": [14,767], "a": 1 }, + { "px": [192,288], "src": [64,96], "f": 0, "t": 142, "d": [14,768], "a": 1 }, + { "px": [256,288], "src": [64,96], "f": 0, "t": 142, "d": [14,772], "a": 1 }, + { "px": [496,288], "src": [96,96], "f": 0, "t": 144, "d": [14,787], "a": 1 }, + { "px": [112,64], "src": [0,32], "f": 1, "t": 46, "d": [16,175], "a": 1 }, + { "px": [304,64], "src": [0,32], "f": 0, "t": 46, "d": [16,187], "a": 1 }, + { "px": [16,80], "src": [0,32], "f": 1, "t": 46, "d": [16,211], "a": 1 }, + { "px": [112,80], "src": [0,32], "f": 0, "t": 46, "d": [16,217], "a": 1 }, + { "px": [304,80], "src": [0,32], "f": 0, "t": 46, "d": [16,229], "a": 1 }, + { "px": [16,96], "src": [0,32], "f": 1, "t": 46, "d": [16,253], "a": 1 }, + { "px": [16,112], "src": [0,32], "f": 1, "t": 46, "d": [16,295], "a": 1 }, + { "px": [496,112], "src": [0,32], "f": 0, "t": 46, "d": [16,325], "a": 1 }, + { "px": [16,128], "src": [0,32], "f": 1, "t": 46, "d": [16,337], "a": 1 }, + { "px": [496,128], "src": [0,32], "f": 0, "t": 46, "d": [16,367], "a": 1 }, + { "px": [16,144], "src": [0,32], "f": 1, "t": 46, "d": [16,379], "a": 1 }, + { "px": [496,144], "src": [0,32], "f": 0, "t": 46, "d": [16,409], "a": 1 }, + { "px": [16,160], "src": [0,32], "f": 1, "t": 46, "d": [16,421], "a": 1 }, + { "px": [496,160], "src": [0,32], "f": 0, "t": 46, "d": [16,451], "a": 1 }, + { "px": [112,176], "src": [0,32], "f": 1, "t": 46, "d": [16,469], "a": 1 }, + { "px": [496,176], "src": [0,32], "f": 0, "t": 46, "d": [16,493], "a": 1 }, + { "px": [112,192], "src": [0,32], "f": 1, "t": 46, "d": [16,511], "a": 1 }, + { "px": [496,192], "src": [0,32], "f": 0, "t": 46, "d": [16,535], "a": 1 }, + { "px": [112,208], "src": [0,32], "f": 1, "t": 46, "d": [16,553], "a": 1 }, + { "px": [496,208], "src": [0,32], "f": 0, "t": 46, "d": [16,577], "a": 1 }, + { "px": [496,224], "src": [0,32], "f": 0, "t": 46, "d": [16,619], "a": 1 }, + { "px": [496,240], "src": [0,32], "f": 0, "t": 46, "d": [16,661], "a": 1 }, + { "px": [496,256], "src": [0,32], "f": 0, "t": 46, "d": [16,703], "a": 1 }, + { "px": [272,272], "src": [0,32], "f": 1, "t": 46, "d": [16,731], "a": 1 }, + { "px": [272,288], "src": [0,32], "f": 1, "t": 46, "d": [16,773], "a": 1 }, + { "px": [480,288], "src": [0,32], "f": 0, "t": 46, "d": [16,786], "a": 1 }, + { "px": [480,304], "src": [0,32], "f": 0, "t": 46, "d": [16,828], "a": 1 }, + { "px": [224,320], "src": [0,32], "f": 1, "t": 46, "d": [16,854], "a": 1 }, + { "px": [480,320], "src": [0,32], "f": 0, "t": 46, "d": [16,870], "a": 1 }, + { "px": [224,336], "src": [0,32], "f": 1, "t": 46, "d": [16,896], "a": 1 }, + { "px": [480,336], "src": [0,32], "f": 0, "t": 46, "d": [16,912], "a": 1 }, + { "px": [128,48], "src": [32,64], "f": 0, "t": 94, "d": [18,134], "a": 1 }, + { "px": [144,48], "src": [32,64], "f": 0, "t": 94, "d": [18,135], "a": 1 }, + { "px": [160,48], "src": [32,64], "f": 0, "t": 94, "d": [18,136], "a": 1 }, + { "px": [192,48], "src": [32,64], "f": 0, "t": 94, "d": [18,138], "a": 1 }, + { "px": [208,48], "src": [32,64], "f": 0, "t": 94, "d": [18,139], "a": 1 }, + { "px": [224,48], "src": [32,64], "f": 0, "t": 94, "d": [18,140], "a": 1 }, + { "px": [240,48], "src": [32,64], "f": 0, "t": 94, "d": [18,141], "a": 1 }, + { "px": [272,48], "src": [32,64], "f": 0, "t": 94, "d": [18,143], "a": 1 }, + { "px": [288,48], "src": [32,64], "f": 0, "t": 94, "d": [18,144], "a": 1 }, + { "px": [32,64], "src": [32,64], "f": 0, "t": 94, "d": [18,170], "a": 1 }, + { "px": [48,64], "src": [32,64], "f": 0, "t": 94, "d": [18,171], "a": 1 }, + { "px": [64,64], "src": [32,64], "f": 0, "t": 94, "d": [18,172], "a": 1 }, + { "px": [80,64], "src": [32,64], "f": 0, "t": 94, "d": [18,173], "a": 1 }, + { "px": [96,64], "src": [32,64], "f": 0, "t": 94, "d": [18,174], "a": 1 }, + { "px": [320,96], "src": [32,64], "f": 0, "t": 94, "d": [18,272], "a": 1 }, + { "px": [336,96], "src": [32,64], "f": 0, "t": 94, "d": [18,273], "a": 1 }, + { "px": [352,96], "src": [32,64], "f": 0, "t": 94, "d": [18,274], "a": 1 }, + { "px": [368,96], "src": [32,64], "f": 0, "t": 94, "d": [18,275], "a": 1 }, + { "px": [384,96], "src": [32,64], "f": 0, "t": 94, "d": [18,276], "a": 1 }, + { "px": [400,96], "src": [32,64], "f": 0, "t": 94, "d": [18,277], "a": 1 }, + { "px": [416,96], "src": [32,64], "f": 0, "t": 94, "d": [18,278], "a": 1 }, + { "px": [432,96], "src": [32,64], "f": 0, "t": 94, "d": [18,279], "a": 1 }, + { "px": [448,96], "src": [32,64], "f": 0, "t": 94, "d": [18,280], "a": 1 }, + { "px": [464,96], "src": [32,64], "f": 0, "t": 94, "d": [18,281], "a": 1 }, + { "px": [480,96], "src": [32,64], "f": 0, "t": 94, "d": [18,282], "a": 1 }, + { "px": [240,304], "src": [32,64], "f": 0, "t": 94, "d": [18,813], "a": 1 }, + { "px": [256,304], "src": [32,64], "f": 0, "t": 94, "d": [18,814], "a": 1 }, + { "px": [112,96], "src": [0,64], "f": 0, "t": 92, "d": [17,259], "a": 1 }, + { "px": [304,96], "src": [0,64], "f": 0, "t": 92, "d": [17,271], "a": 1 }, + { "px": [272,304], "src": [0,64], "f": 1, "t": 92, "d": [17,815], "a": 1 }, + { "px": [128,64], "src": [64,144], "f": 0, "t": 211, "d": [29,176], "a": 1 }, + { "px": [288,64], "src": [48,160], "f": 1, "t": 233, "d": [29,186], "a": 1 }, + { "px": [112,96], "src": [64,224], "f": 2, "t": 326, "d": [31,259], "a": 1 }, + { "px": [112,96], "src": [64,224], "f": 3, "t": 326, "d": [31,259], "a": 1 }, + { "px": [304,96], "src": [64,224], "f": 2, "t": 326, "d": [31,271], "a": 1 }, + { "px": [272,304], "src": [64,224], "f": 3, "t": 326, "d": [31,815], "a": 1 }, + { "px": [112,48], "src": [64,144], "f": 3, "t": 211, "d": [32,133], "a": 1 }, + { "px": [304,48], "src": [64,144], "f": 2, "t": 211, "d": [32,145], "a": 1 }, + { "px": [16,64], "src": [64,144], "f": 3, "t": 211, "d": [32,169], "a": 1 }, + { "px": [112,64], "src": [64,144], "f": 2, "t": 211, "d": [32,175], "a": 1 }, + { "px": [496,96], "src": [64,144], "f": 2, "t": 211, "d": [32,283], "a": 1 }, + { "px": [16,176], "src": [64,144], "f": 1, "t": 211, "d": [32,463], "a": 1 }, + { "px": [112,176], "src": [64,144], "f": 0, "t": 211, "d": [32,469], "a": 1 }, + { "px": [112,224], "src": [64,144], "f": 1, "t": 211, "d": [32,595], "a": 1 }, + { "px": [144,240], "src": [64,144], "f": 1, "t": 211, "d": [32,639], "a": 1 }, + { "px": [160,256], "src": [64,144], "f": 1, "t": 211, "d": [32,682], "a": 1 }, + { "px": [496,272], "src": [64,144], "f": 0, "t": 211, "d": [32,745], "a": 1 }, + { "px": [224,304], "src": [64,144], "f": 3, "t": 211, "d": [32,812], "a": 1 }, + { "px": [112,144], "src": [32,0], "f": 0, "t": 2, "d": [12,385], "a": 1 }, + { "px": [32,176], "src": [32,0], "f": 0, "t": 2, "d": [12,464], "a": 1 }, + { "px": [48,176], "src": [32,0], "f": 0, "t": 2, "d": [12,465], "a": 1 }, + { "px": [64,176], "src": [32,0], "f": 0, "t": 2, "d": [12,466], "a": 1 }, + { "px": [80,176], "src": [32,0], "f": 0, "t": 2, "d": [12,467], "a": 1 }, + { "px": [96,176], "src": [32,0], "f": 0, "t": 2, "d": [12,468], "a": 1 }, + { "px": [128,224], "src": [32,0], "f": 0, "t": 2, "d": [12,596], "a": 1 }, + { "px": [144,224], "src": [32,0], "f": 0, "t": 2, "d": [12,597], "a": 1 }, + { "px": [160,240], "src": [32,0], "f": 0, "t": 2, "d": [12,640], "a": 1 }, + { "px": [176,256], "src": [32,0], "f": 0, "t": 2, "d": [12,683], "a": 1 }, + { "px": [192,256], "src": [32,0], "f": 0, "t": 2, "d": [12,684], "a": 1 }, + { "px": [208,256], "src": [32,0], "f": 0, "t": 2, "d": [12,685], "a": 1 }, + { "px": [224,256], "src": [32,0], "f": 0, "t": 2, "d": [12,686], "a": 1 }, + { "px": [240,256], "src": [32,0], "f": 0, "t": 2, "d": [12,687], "a": 1 }, + { "px": [256,256], "src": [32,0], "f": 0, "t": 2, "d": [12,688], "a": 1 }, + { "px": [272,256], "src": [32,0], "f": 0, "t": 2, "d": [12,689], "a": 1 }, + { "px": [480,272], "src": [32,0], "f": 0, "t": 2, "d": [12,744], "a": 1 }, + { "px": [128,208], "src": [192,0], "f": 1, "t": 12, "d": [36,554], "a": 1 }, + { "px": [320,128], "src": [256,128], "f": 0, "t": 200, "d": [58,356], "a": 1 }, + { "px": [288,240], "src": [256,128], "f": 0, "t": 200, "d": [58,648], "a": 1 }, + { "px": [304,240], "src": [256,128], "f": 0, "t": 200, "d": [58,649], "a": 1 }, + { "px": [320,240], "src": [256,128], "f": 0, "t": 200, "d": [58,650], "a": 1 }, + { "px": [304,256], "src": [256,128], "f": 0, "t": 200, "d": [58,691], "a": 1 }, + { "px": [464,256], "src": [256,128], "f": 0, "t": 200, "d": [58,701], "a": 1 }, + { "px": [304,272], "src": [256,128], "f": 0, "t": 200, "d": [58,733], "a": 1 }, + { "px": [304,288], "src": [256,128], "f": 0, "t": 200, "d": [58,775], "a": 1 }, + { "px": [304,304], "src": [256,128], "f": 0, "t": 200, "d": [58,817], "a": 1 }, + { "px": [288,320], "src": [256,128], "f": 0, "t": 200, "d": [58,858], "a": 1 }, + { "px": [304,320], "src": [256,128], "f": 0, "t": 200, "d": [58,859], "a": 1 }, + { "px": [256,336], "src": [256,128], "f": 0, "t": 200, "d": [58,898], "a": 1 }, + { "px": [272,336], "src": [256,128], "f": 0, "t": 200, "d": [58,899], "a": 1 }, + { "px": [288,336], "src": [256,128], "f": 0, "t": 200, "d": [58,900], "a": 1 }, + { "px": [304,336], "src": [256,128], "f": 0, "t": 200, "d": [58,901], "a": 1 }, + { "px": [48,80], "src": [256,96], "f": 0, "t": 154, "d": [59,213], "a": 1 }, + { "px": [64,80], "src": [256,96], "f": 0, "t": 154, "d": [59,214], "a": 1 }, + { "px": [80,80], "src": [256,96], "f": 0, "t": 154, "d": [59,215], "a": 1 }, + { "px": [320,112], "src": [256,96], "f": 0, "t": 154, "d": [59,314], "a": 1 }, + { "px": [336,112], "src": [256,96], "f": 0, "t": 154, "d": [59,315], "a": 1 }, + { "px": [352,112], "src": [256,96], "f": 0, "t": 154, "d": [59,316], "a": 1 }, + { "px": [368,112], "src": [256,96], "f": 0, "t": 154, "d": [59,317], "a": 1 }, + { "px": [384,112], "src": [256,96], "f": 0, "t": 154, "d": [59,318], "a": 1 }, + { "px": [400,112], "src": [256,96], "f": 0, "t": 154, "d": [59,319], "a": 1 }, + { "px": [416,112], "src": [256,96], "f": 0, "t": 154, "d": [59,320], "a": 1 }, + { "px": [432,112], "src": [256,96], "f": 0, "t": 154, "d": [59,321], "a": 1 }, + { "px": [448,112], "src": [256,96], "f": 0, "t": 154, "d": [59,322], "a": 1 }, + { "px": [464,112], "src": [256,96], "f": 0, "t": 154, "d": [59,323], "a": 1 }, + { "px": [352,128], "src": [256,96], "f": 2, "t": 154, "d": [59,358], "a": 1 }, + { "px": [368,128], "src": [256,96], "f": 2, "t": 154, "d": [59,359], "a": 1 }, + { "px": [384,128], "src": [256,96], "f": 2, "t": 154, "d": [59,360], "a": 1 }, + { "px": [400,128], "src": [256,96], "f": 2, "t": 154, "d": [59,361], "a": 1 }, + { "px": [416,128], "src": [256,96], "f": 2, "t": 154, "d": [59,362], "a": 1 }, + { "px": [432,128], "src": [256,96], "f": 2, "t": 154, "d": [59,363], "a": 1 }, + { "px": [448,128], "src": [256,96], "f": 2, "t": 154, "d": [59,364], "a": 1 }, + { "px": [320,144], "src": [256,96], "f": 2, "t": 154, "d": [59,398], "a": 1 }, + { "px": [48,160], "src": [256,96], "f": 0, "t": 154, "d": [59,423], "a": 1 }, + { "px": [64,160], "src": [256,96], "f": 0, "t": 154, "d": [59,424], "a": 1 }, + { "px": [80,160], "src": [256,96], "f": 0, "t": 154, "d": [59,425], "a": 1 }, + { "px": [176,224], "src": [256,96], "f": 0, "t": 154, "d": [59,599], "a": 1 }, + { "px": [192,224], "src": [256,96], "f": 0, "t": 154, "d": [59,600], "a": 1 }, + { "px": [208,224], "src": [256,96], "f": 0, "t": 154, "d": [59,601], "a": 1 }, + { "px": [224,224], "src": [256,96], "f": 0, "t": 154, "d": [59,602], "a": 1 }, + { "px": [240,224], "src": [256,96], "f": 0, "t": 154, "d": [59,603], "a": 1 }, + { "px": [256,224], "src": [256,96], "f": 0, "t": 154, "d": [59,604], "a": 1 }, + { "px": [272,224], "src": [256,96], "f": 0, "t": 154, "d": [59,605], "a": 1 }, + { "px": [288,224], "src": [256,96], "f": 0, "t": 154, "d": [59,606], "a": 1 }, + { "px": [304,224], "src": [256,96], "f": 0, "t": 154, "d": [59,607], "a": 1 }, + { "px": [320,224], "src": [256,96], "f": 0, "t": 154, "d": [59,608], "a": 1 }, + { "px": [192,240], "src": [256,96], "f": 2, "t": 154, "d": [59,642], "a": 1 }, + { "px": [208,240], "src": [256,96], "f": 2, "t": 154, "d": [59,643], "a": 1 }, + { "px": [224,240], "src": [256,96], "f": 2, "t": 154, "d": [59,644], "a": 1 }, + { "px": [240,240], "src": [256,96], "f": 2, "t": 154, "d": [59,645], "a": 1 }, + { "px": [256,240], "src": [256,96], "f": 2, "t": 154, "d": [59,646], "a": 1 }, + { "px": [272,240], "src": [256,96], "f": 2, "t": 154, "d": [59,647], "a": 1 }, + { "px": [352,240], "src": [256,96], "f": 0, "t": 154, "d": [59,652], "a": 1 }, + { "px": [368,240], "src": [256,96], "f": 0, "t": 154, "d": [59,653], "a": 1 }, + { "px": [432,240], "src": [256,96], "f": 0, "t": 154, "d": [59,657], "a": 1 }, + { "px": [448,240], "src": [256,96], "f": 0, "t": 154, "d": [59,658], "a": 1 }, + { "px": [336,256], "src": [256,96], "f": 2, "t": 154, "d": [59,693], "a": 1 }, + { "px": [352,256], "src": [256,96], "f": 2, "t": 154, "d": [59,694], "a": 1 }, + { "px": [368,256], "src": [256,96], "f": 2, "t": 154, "d": [59,695], "a": 1 }, + { "px": [432,256], "src": [256,96], "f": 2, "t": 154, "d": [59,699], "a": 1 }, + { "px": [256,320], "src": [256,96], "f": 0, "t": 154, "d": [59,856], "a": 1 }, + { "px": [272,320], "src": [256,96], "f": 0, "t": 154, "d": [59,857], "a": 1 }, + { "px": [384,336], "src": [256,96], "f": 0, "t": 154, "d": [59,906], "a": 1 }, + { "px": [400,336], "src": [256,96], "f": 0, "t": 154, "d": [59,907], "a": 1 }, + { "px": [416,336], "src": [256,96], "f": 0, "t": 154, "d": [59,908], "a": 1 }, + { "px": [432,336], "src": [256,96], "f": 0, "t": 154, "d": [59,909], "a": 1 }, + { "px": [32,96], "src": [224,128], "f": 0, "t": 198, "d": [61,254], "a": 1 }, + { "px": [32,112], "src": [224,128], "f": 0, "t": 198, "d": [61,296], "a": 1 }, + { "px": [32,128], "src": [224,128], "f": 0, "t": 198, "d": [61,338], "a": 1 }, + { "px": [304,128], "src": [224,128], "f": 0, "t": 198, "d": [61,355], "a": 1 }, + { "px": [480,128], "src": [224,128], "f": 1, "t": 198, "d": [61,366], "a": 1 }, + { "px": [32,144], "src": [224,128], "f": 0, "t": 198, "d": [61,380], "a": 1 }, + { "px": [464,144], "src": [224,128], "f": 0, "t": 198, "d": [61,407], "a": 1 }, + { "px": [480,144], "src": [224,128], "f": 1, "t": 198, "d": [61,408], "a": 1 }, + { "px": [464,160], "src": [224,128], "f": 0, "t": 198, "d": [61,449], "a": 1 }, + { "px": [480,160], "src": [224,128], "f": 1, "t": 198, "d": [61,450], "a": 1 }, + { "px": [464,176], "src": [224,128], "f": 0, "t": 198, "d": [61,491], "a": 1 }, + { "px": [480,176], "src": [224,128], "f": 1, "t": 198, "d": [61,492], "a": 1 }, + { "px": [464,192], "src": [224,128], "f": 0, "t": 198, "d": [61,533], "a": 1 }, + { "px": [480,192], "src": [224,128], "f": 1, "t": 198, "d": [61,534], "a": 1 }, + { "px": [464,208], "src": [224,128], "f": 0, "t": 198, "d": [61,575], "a": 1 }, + { "px": [480,208], "src": [224,128], "f": 1, "t": 198, "d": [61,576], "a": 1 }, + { "px": [464,224], "src": [224,128], "f": 0, "t": 198, "d": [61,617], "a": 1 }, + { "px": [480,224], "src": [224,128], "f": 1, "t": 198, "d": [61,618], "a": 1 }, + { "px": [480,240], "src": [224,128], "f": 1, "t": 198, "d": [61,660], "a": 1 }, + { "px": [288,256], "src": [224,128], "f": 0, "t": 198, "d": [61,690], "a": 1 }, + { "px": [288,272], "src": [224,128], "f": 0, "t": 198, "d": [61,732], "a": 1 }, + { "px": [320,272], "src": [224,128], "f": 1, "t": 198, "d": [61,734], "a": 1 }, + { "px": [448,272], "src": [224,128], "f": 0, "t": 198, "d": [61,742], "a": 1 }, + { "px": [464,272], "src": [224,128], "f": 1, "t": 198, "d": [61,743], "a": 1 }, + { "px": [288,288], "src": [224,128], "f": 0, "t": 198, "d": [61,774], "a": 1 }, + { "px": [320,288], "src": [224,128], "f": 1, "t": 198, "d": [61,776], "a": 1 }, + { "px": [448,288], "src": [224,128], "f": 0, "t": 198, "d": [61,784], "a": 1 }, + { "px": [464,288], "src": [224,128], "f": 1, "t": 198, "d": [61,785], "a": 1 }, + { "px": [288,304], "src": [224,128], "f": 0, "t": 198, "d": [61,816], "a": 1 }, + { "px": [320,304], "src": [224,128], "f": 1, "t": 198, "d": [61,818], "a": 1 }, + { "px": [448,304], "src": [224,128], "f": 0, "t": 198, "d": [61,826], "a": 1 }, + { "px": [464,304], "src": [224,128], "f": 1, "t": 198, "d": [61,827], "a": 1 }, + { "px": [320,320], "src": [224,128], "f": 1, "t": 198, "d": [61,860], "a": 1 }, + { "px": [448,320], "src": [224,128], "f": 0, "t": 198, "d": [61,868], "a": 1 }, + { "px": [464,320], "src": [224,128], "f": 1, "t": 198, "d": [61,869], "a": 1 }, + { "px": [240,336], "src": [224,128], "f": 0, "t": 198, "d": [61,897], "a": 1 }, + { "px": [464,336], "src": [224,128], "f": 1, "t": 198, "d": [61,911], "a": 1 }, + { "px": [96,80], "src": [224,96], "f": 1, "t": 152, "d": [60,216], "a": 1 }, + { "px": [304,112], "src": [224,96], "f": 0, "t": 152, "d": [60,313], "a": 1 }, + { "px": [480,112], "src": [224,96], "f": 1, "t": 152, "d": [60,324], "a": 1 }, + { "px": [304,144], "src": [224,96], "f": 2, "t": 152, "d": [60,397], "a": 1 }, + { "px": [336,144], "src": [224,96], "f": 3, "t": 152, "d": [60,399], "a": 1 }, + { "px": [96,160], "src": [224,96], "f": 1, "t": 152, "d": [60,426], "a": 1 }, + { "px": [160,224], "src": [224,96], "f": 0, "t": 152, "d": [60,598], "a": 1 }, + { "px": [336,224], "src": [224,96], "f": 1, "t": 152, "d": [60,609], "a": 1 }, + { "px": [176,240], "src": [224,96], "f": 2, "t": 152, "d": [60,641], "a": 1 }, + { "px": [384,240], "src": [224,96], "f": 1, "t": 152, "d": [60,654], "a": 1 }, + { "px": [416,240], "src": [224,96], "f": 0, "t": 152, "d": [60,656], "a": 1 }, + { "px": [384,256], "src": [224,96], "f": 3, "t": 152, "d": [60,696], "a": 1 }, + { "px": [416,256], "src": [224,96], "f": 2, "t": 152, "d": [60,698], "a": 1 }, + { "px": [480,256], "src": [224,96], "f": 3, "t": 152, "d": [60,702], "a": 1 }, + { "px": [240,320], "src": [224,96], "f": 0, "t": 152, "d": [60,855], "a": 1 }, + { "px": [336,336], "src": [224,96], "f": 1, "t": 152, "d": [60,903], "a": 1 }, + { "px": [368,336], "src": [224,96], "f": 0, "t": 152, "d": [60,905], "a": 1 }, + { "px": [176,224], "src": [64,144], "f": 2, "t": 211, "d": [62,599], "a": 1 }, + { "px": [288,240], "src": [64,144], "f": 2, "t": 211, "d": [62,648], "a": 1 }, + { "px": [464,256], "src": [64,144], "f": 3, "t": 211, "d": [62,701], "a": 1 }, + { "px": [288,320], "src": [64,144], "f": 0, "t": 211, "d": [62,858], "a": 1 }, + { "px": [32,80], "src": [0,304], "f": 3, "t": 437, "d": [69,212], "a": 1 }, + { "px": [336,128], "src": [0,304], "f": 3, "t": 437, "d": [69,357], "a": 1 }, + { "px": [464,128], "src": [0,304], "f": 2, "t": 437, "d": [69,365], "a": 1 }, + { "px": [32,160], "src": [0,304], "f": 1, "t": 437, "d": [69,422], "a": 1 }, + { "px": [336,240], "src": [0,304], "f": 1, "t": 437, "d": [69,651], "a": 1 }, + { "px": [464,240], "src": [0,304], "f": 0, "t": 437, "d": [69,659], "a": 1 }, + { "px": [320,256], "src": [0,304], "f": 3, "t": 437, "d": [69,692], "a": 1 }, + { "px": [448,256], "src": [0,304], "f": 2, "t": 437, "d": [69,700], "a": 1 }, + { "px": [320,336], "src": [0,304], "f": 1, "t": 437, "d": [69,902], "a": 1 }, + { "px": [448,336], "src": [0,304], "f": 0, "t": 437, "d": [69,910], "a": 1 }, + { "px": [128,80], "src": [128,96], "f": 0, "t": 146, "d": [22,218], "a": 1 }, + { "px": [176,48], "src": [128,192], "f": 0, "t": 284, "d": [73,137], "a": 1 }, + { "px": [176,64], "src": [128,208], "f": 0, "t": 307, "d": [73,137], "a": 1 }, + { "px": [176,80], "src": [128,224], "f": 0, "t": 330, "d": [73,137], "a": 1 }, + { "px": [256,48], "src": [96,192], "f": 0, "t": 282, "d": [74,142], "a": 1 }, + { "px": [256,64], "src": [96,208], "f": 0, "t": 305, "d": [74,142], "a": 1 }, + { "px": [144,64], "src": [160,208], "f": 0, "t": 309, "d": [35,177], "a": 1 }, + { "px": [208,64], "src": [160,208], "f": 0, "t": 309, "d": [35,181], "a": 1 }, + { "px": [224,64], "src": [96,208], "f": 0, "t": 305, "d": [35,182], "a": 1 }, + { "px": [128,160], "src": [112,64], "f": 0, "t": 99, "d": [44,428], "a": 1 }, + { "px": [112,160], "src": [96,32], "f": 0, "t": 52, "d": [45,427], "a": 1 }, + { "px": [400,240], "src": [96,144], "f": 0, "t": 213, "d": [41,655], "a": 1 }, + { "px": [400,256], "src": [96,144], "f": 0, "t": 213, "d": [41,697], "a": 1 }, + { "px": [400,272], "src": [96,144], "f": 0, "t": 213, "d": [41,739], "a": 1 }, + { "px": [400,288], "src": [96,144], "f": 0, "t": 213, "d": [41,781], "a": 1 }, + { "px": [400,304], "src": [96,144], "f": 0, "t": 213, "d": [41,823], "a": 1 }, + { "px": [400,320], "src": [96,144], "f": 0, "t": 213, "d": [41,865], "a": 1 }, + { "px": [352,336], "src": [96,144], "f": 0, "t": 213, "d": [41,904], "a": 1 }, + { "px": [0,0], "src": [32,32], "f": 0, "t": 48, "d": [102,0], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [102,1], "a": 1 }, + { "px": [32,0], "src": [32,32], "f": 0, "t": 48, "d": [102,2], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [102,3], "a": 1 }, + { "px": [64,0], "src": [32,32], "f": 0, "t": 48, "d": [102,4], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [102,5], "a": 1 }, + { "px": [96,0], "src": [32,32], "f": 0, "t": 48, "d": [102,6], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [102,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [102,8], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [102,9], "a": 1 }, + { "px": [160,0], "src": [32,32], "f": 0, "t": 48, "d": [102,10], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [102,11], "a": 1 }, + { "px": [192,0], "src": [32,32], "f": 0, "t": 48, "d": [102,12], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [102,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [102,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [102,15], "a": 1 }, + { "px": [256,0], "src": [32,32], "f": 0, "t": 48, "d": [102,16], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [102,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [102,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [102,19], "a": 1 }, + { "px": [320,0], "src": [32,32], "f": 0, "t": 48, "d": [102,20], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [102,21], "a": 1 }, + { "px": [352,0], "src": [32,32], "f": 0, "t": 48, "d": [102,22], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [102,23], "a": 1 }, + { "px": [384,0], "src": [32,32], "f": 0, "t": 48, "d": [102,24], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [102,25], "a": 1 }, + { "px": [416,0], "src": [32,32], "f": 0, "t": 48, "d": [102,26], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [102,27], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [102,28], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [102,29], "a": 1 }, + { "px": [480,0], "src": [32,32], "f": 0, "t": 48, "d": [102,30], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [102,31], "a": 1 }, + { "px": [512,0], "src": [32,32], "f": 0, "t": 48, "d": [102,32], "a": 1 }, + { "px": [528,0], "src": [32,32], "f": 0, "t": 48, "d": [102,33], "a": 1 }, + { "px": [544,0], "src": [32,32], "f": 0, "t": 48, "d": [102,34], "a": 1 }, + { "px": [560,0], "src": [32,32], "f": 0, "t": 48, "d": [102,35], "a": 1 }, + { "px": [576,0], "src": [32,32], "f": 0, "t": 48, "d": [102,36], "a": 1 }, + { "px": [592,0], "src": [32,32], "f": 0, "t": 48, "d": [102,37], "a": 1 }, + { "px": [608,0], "src": [32,32], "f": 0, "t": 48, "d": [102,38], "a": 1 }, + { "px": [624,0], "src": [32,32], "f": 0, "t": 48, "d": [102,39], "a": 1 }, + { "px": [640,0], "src": [32,32], "f": 0, "t": 48, "d": [102,40], "a": 1 }, + { "px": [656,0], "src": [32,32], "f": 0, "t": 48, "d": [102,41], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [102,42], "a": 1 }, + { "px": [16,16], "src": [32,32], "f": 0, "t": 48, "d": [102,43], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [102,44], "a": 1 }, + { "px": [48,16], "src": [32,32], "f": 0, "t": 48, "d": [102,45], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [102,46], "a": 1 }, + { "px": [80,16], "src": [32,32], "f": 0, "t": 48, "d": [102,47], "a": 1 }, + { "px": [336,16], "src": [32,32], "f": 0, "t": 48, "d": [102,63], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [102,64], "a": 1 }, + { "px": [368,16], "src": [32,32], "f": 0, "t": 48, "d": [102,65], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [102,66], "a": 1 }, + { "px": [400,16], "src": [32,32], "f": 0, "t": 48, "d": [102,67], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [102,68], "a": 1 }, + { "px": [432,16], "src": [32,32], "f": 0, "t": 48, "d": [102,69], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [102,70], "a": 1 }, + { "px": [464,16], "src": [32,32], "f": 0, "t": 48, "d": [102,71], "a": 1 }, + { "px": [480,16], "src": [32,32], "f": 0, "t": 48, "d": [102,72], "a": 1 }, + { "px": [496,16], "src": [32,32], "f": 0, "t": 48, "d": [102,73], "a": 1 }, + { "px": [512,16], "src": [32,32], "f": 0, "t": 48, "d": [102,74], "a": 1 }, + { "px": [528,16], "src": [32,32], "f": 0, "t": 48, "d": [102,75], "a": 1 }, + { "px": [544,16], "src": [32,32], "f": 0, "t": 48, "d": [102,76], "a": 1 }, + { "px": [560,16], "src": [32,32], "f": 0, "t": 48, "d": [102,77], "a": 1 }, + { "px": [576,16], "src": [32,32], "f": 0, "t": 48, "d": [102,78], "a": 1 }, + { "px": [592,16], "src": [32,32], "f": 0, "t": 48, "d": [102,79], "a": 1 }, + { "px": [608,16], "src": [32,32], "f": 0, "t": 48, "d": [102,80], "a": 1 }, + { "px": [624,16], "src": [32,32], "f": 0, "t": 48, "d": [102,81], "a": 1 }, + { "px": [640,16], "src": [32,32], "f": 0, "t": 48, "d": [102,82], "a": 1 }, + { "px": [656,16], "src": [32,32], "f": 0, "t": 48, "d": [102,83], "a": 1 }, + { "px": [352,32], "src": [32,32], "f": 0, "t": 48, "d": [102,106], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [102,107], "a": 1 }, + { "px": [384,32], "src": [32,32], "f": 0, "t": 48, "d": [102,108], "a": 1 }, + { "px": [400,32], "src": [32,32], "f": 0, "t": 48, "d": [102,109], "a": 1 }, + { "px": [416,32], "src": [32,32], "f": 0, "t": 48, "d": [102,110], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [102,111], "a": 1 }, + { "px": [448,32], "src": [32,32], "f": 0, "t": 48, "d": [102,112], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [102,113], "a": 1 }, + { "px": [480,32], "src": [32,32], "f": 0, "t": 48, "d": [102,114], "a": 1 }, + { "px": [496,32], "src": [32,32], "f": 0, "t": 48, "d": [102,115], "a": 1 }, + { "px": [512,32], "src": [32,32], "f": 0, "t": 48, "d": [102,116], "a": 1 }, + { "px": [528,32], "src": [32,32], "f": 0, "t": 48, "d": [102,117], "a": 1 }, + { "px": [544,32], "src": [32,32], "f": 0, "t": 48, "d": [102,118], "a": 1 }, + { "px": [560,32], "src": [32,32], "f": 0, "t": 48, "d": [102,119], "a": 1 }, + { "px": [576,32], "src": [32,32], "f": 0, "t": 48, "d": [102,120], "a": 1 }, + { "px": [592,32], "src": [32,32], "f": 0, "t": 48, "d": [102,121], "a": 1 }, + { "px": [608,32], "src": [32,32], "f": 0, "t": 48, "d": [102,122], "a": 1 }, + { "px": [624,32], "src": [32,32], "f": 0, "t": 48, "d": [102,123], "a": 1 }, + { "px": [640,32], "src": [32,32], "f": 0, "t": 48, "d": [102,124], "a": 1 }, + { "px": [656,32], "src": [32,32], "f": 0, "t": 48, "d": [102,125], "a": 1 }, + { "px": [352,48], "src": [32,32], "f": 0, "t": 48, "d": [102,148], "a": 1 }, + { "px": [368,48], "src": [32,32], "f": 0, "t": 48, "d": [102,149], "a": 1 }, + { "px": [384,48], "src": [32,32], "f": 0, "t": 48, "d": [102,150], "a": 1 }, + { "px": [400,48], "src": [32,32], "f": 0, "t": 48, "d": [102,151], "a": 1 }, + { "px": [416,48], "src": [32,32], "f": 0, "t": 48, "d": [102,152], "a": 1 }, + { "px": [432,48], "src": [32,32], "f": 0, "t": 48, "d": [102,153], "a": 1 }, + { "px": [448,48], "src": [32,32], "f": 0, "t": 48, "d": [102,154], "a": 1 }, + { "px": [464,48], "src": [32,32], "f": 0, "t": 48, "d": [102,155], "a": 1 }, + { "px": [480,48], "src": [32,32], "f": 0, "t": 48, "d": [102,156], "a": 1 }, + { "px": [496,48], "src": [32,32], "f": 0, "t": 48, "d": [102,157], "a": 1 }, + { "px": [512,48], "src": [32,32], "f": 0, "t": 48, "d": [102,158], "a": 1 }, + { "px": [528,48], "src": [32,32], "f": 0, "t": 48, "d": [102,159], "a": 1 }, + { "px": [544,48], "src": [32,32], "f": 0, "t": 48, "d": [102,160], "a": 1 }, + { "px": [560,48], "src": [32,32], "f": 0, "t": 48, "d": [102,161], "a": 1 }, + { "px": [576,48], "src": [32,32], "f": 0, "t": 48, "d": [102,162], "a": 1 }, + { "px": [592,48], "src": [32,32], "f": 0, "t": 48, "d": [102,163], "a": 1 }, + { "px": [608,48], "src": [32,32], "f": 0, "t": 48, "d": [102,164], "a": 1 }, + { "px": [624,48], "src": [32,32], "f": 0, "t": 48, "d": [102,165], "a": 1 }, + { "px": [640,48], "src": [32,32], "f": 0, "t": 48, "d": [102,166], "a": 1 }, + { "px": [656,48], "src": [32,32], "f": 0, "t": 48, "d": [102,167], "a": 1 }, + { "px": [528,64], "src": [32,32], "f": 0, "t": 48, "d": [102,201], "a": 1 }, + { "px": [544,64], "src": [32,32], "f": 0, "t": 48, "d": [102,202], "a": 1 }, + { "px": [560,64], "src": [32,32], "f": 0, "t": 48, "d": [102,203], "a": 1 }, + { "px": [576,64], "src": [32,32], "f": 0, "t": 48, "d": [102,204], "a": 1 }, + { "px": [592,64], "src": [32,32], "f": 0, "t": 48, "d": [102,205], "a": 1 }, + { "px": [608,64], "src": [32,32], "f": 0, "t": 48, "d": [102,206], "a": 1 }, + { "px": [624,64], "src": [32,32], "f": 0, "t": 48, "d": [102,207], "a": 1 }, + { "px": [640,64], "src": [32,32], "f": 0, "t": 48, "d": [102,208], "a": 1 }, + { "px": [656,64], "src": [32,32], "f": 0, "t": 48, "d": [102,209], "a": 1 }, + { "px": [544,80], "src": [32,32], "f": 0, "t": 48, "d": [102,244], "a": 1 }, + { "px": [560,80], "src": [32,32], "f": 0, "t": 48, "d": [102,245], "a": 1 }, + { "px": [576,80], "src": [32,32], "f": 0, "t": 48, "d": [102,246], "a": 1 }, + { "px": [592,80], "src": [32,32], "f": 0, "t": 48, "d": [102,247], "a": 1 }, + { "px": [608,80], "src": [32,32], "f": 0, "t": 48, "d": [102,248], "a": 1 }, + { "px": [624,80], "src": [32,32], "f": 0, "t": 48, "d": [102,249], "a": 1 }, + { "px": [640,80], "src": [32,32], "f": 0, "t": 48, "d": [102,250], "a": 1 }, + { "px": [656,80], "src": [32,32], "f": 0, "t": 48, "d": [102,251], "a": 1 }, + { "px": [544,96], "src": [32,32], "f": 0, "t": 48, "d": [102,286], "a": 1 }, + { "px": [560,96], "src": [32,32], "f": 0, "t": 48, "d": [102,287], "a": 1 }, + { "px": [576,96], "src": [32,32], "f": 0, "t": 48, "d": [102,288], "a": 1 }, + { "px": [592,96], "src": [32,32], "f": 0, "t": 48, "d": [102,289], "a": 1 }, + { "px": [608,96], "src": [32,32], "f": 0, "t": 48, "d": [102,290], "a": 1 }, + { "px": [624,96], "src": [32,32], "f": 0, "t": 48, "d": [102,291], "a": 1 }, + { "px": [640,96], "src": [32,32], "f": 0, "t": 48, "d": [102,292], "a": 1 }, + { "px": [656,96], "src": [32,32], "f": 0, "t": 48, "d": [102,293], "a": 1 }, + { "px": [544,112], "src": [32,32], "f": 0, "t": 48, "d": [102,328], "a": 1 }, + { "px": [560,112], "src": [32,32], "f": 0, "t": 48, "d": [102,329], "a": 1 }, + { "px": [576,112], "src": [32,32], "f": 0, "t": 48, "d": [102,330], "a": 1 }, + { "px": [592,112], "src": [32,32], "f": 0, "t": 48, "d": [102,331], "a": 1 }, + { "px": [608,112], "src": [32,32], "f": 0, "t": 48, "d": [102,332], "a": 1 }, + { "px": [624,112], "src": [32,32], "f": 0, "t": 48, "d": [102,333], "a": 1 }, + { "px": [640,112], "src": [32,32], "f": 0, "t": 48, "d": [102,334], "a": 1 }, + { "px": [656,112], "src": [32,32], "f": 0, "t": 48, "d": [102,335], "a": 1 }, + { "px": [544,128], "src": [32,32], "f": 0, "t": 48, "d": [102,370], "a": 1 }, + { "px": [560,128], "src": [32,32], "f": 0, "t": 48, "d": [102,371], "a": 1 }, + { "px": [576,128], "src": [32,32], "f": 0, "t": 48, "d": [102,372], "a": 1 }, + { "px": [592,128], "src": [32,32], "f": 0, "t": 48, "d": [102,373], "a": 1 }, + { "px": [608,128], "src": [32,32], "f": 0, "t": 48, "d": [102,374], "a": 1 }, + { "px": [624,128], "src": [32,32], "f": 0, "t": 48, "d": [102,375], "a": 1 }, + { "px": [640,128], "src": [32,32], "f": 0, "t": 48, "d": [102,376], "a": 1 }, + { "px": [656,128], "src": [32,32], "f": 0, "t": 48, "d": [102,377], "a": 1 }, + { "px": [544,144], "src": [32,32], "f": 0, "t": 48, "d": [102,412], "a": 1 }, + { "px": [560,144], "src": [32,32], "f": 0, "t": 48, "d": [102,413], "a": 1 }, + { "px": [576,144], "src": [32,32], "f": 0, "t": 48, "d": [102,414], "a": 1 }, + { "px": [592,144], "src": [32,32], "f": 0, "t": 48, "d": [102,415], "a": 1 }, + { "px": [608,144], "src": [32,32], "f": 0, "t": 48, "d": [102,416], "a": 1 }, + { "px": [624,144], "src": [32,32], "f": 0, "t": 48, "d": [102,417], "a": 1 }, + { "px": [640,144], "src": [32,32], "f": 0, "t": 48, "d": [102,418], "a": 1 }, + { "px": [656,144], "src": [32,32], "f": 0, "t": 48, "d": [102,419], "a": 1 }, + { "px": [544,160], "src": [32,32], "f": 0, "t": 48, "d": [102,454], "a": 1 }, + { "px": [560,160], "src": [32,32], "f": 0, "t": 48, "d": [102,455], "a": 1 }, + { "px": [576,160], "src": [32,32], "f": 0, "t": 48, "d": [102,456], "a": 1 }, + { "px": [592,160], "src": [32,32], "f": 0, "t": 48, "d": [102,457], "a": 1 }, + { "px": [608,160], "src": [32,32], "f": 0, "t": 48, "d": [102,458], "a": 1 }, + { "px": [624,160], "src": [32,32], "f": 0, "t": 48, "d": [102,459], "a": 1 }, + { "px": [640,160], "src": [32,32], "f": 0, "t": 48, "d": [102,460], "a": 1 }, + { "px": [656,160], "src": [32,32], "f": 0, "t": 48, "d": [102,461], "a": 1 }, + { "px": [544,176], "src": [32,32], "f": 0, "t": 48, "d": [102,496], "a": 1 }, + { "px": [560,176], "src": [32,32], "f": 0, "t": 48, "d": [102,497], "a": 1 }, + { "px": [576,176], "src": [32,32], "f": 0, "t": 48, "d": [102,498], "a": 1 }, + { "px": [592,176], "src": [32,32], "f": 0, "t": 48, "d": [102,499], "a": 1 }, + { "px": [608,176], "src": [32,32], "f": 0, "t": 48, "d": [102,500], "a": 1 }, + { "px": [624,176], "src": [32,32], "f": 0, "t": 48, "d": [102,501], "a": 1 }, + { "px": [640,176], "src": [32,32], "f": 0, "t": 48, "d": [102,502], "a": 1 }, + { "px": [656,176], "src": [32,32], "f": 0, "t": 48, "d": [102,503], "a": 1 }, + { "px": [544,192], "src": [32,32], "f": 0, "t": 48, "d": [102,538], "a": 1 }, + { "px": [560,192], "src": [32,32], "f": 0, "t": 48, "d": [102,539], "a": 1 }, + { "px": [576,192], "src": [32,32], "f": 0, "t": 48, "d": [102,540], "a": 1 }, + { "px": [592,192], "src": [32,32], "f": 0, "t": 48, "d": [102,541], "a": 1 }, + { "px": [608,192], "src": [32,32], "f": 0, "t": 48, "d": [102,542], "a": 1 }, + { "px": [624,192], "src": [32,32], "f": 0, "t": 48, "d": [102,543], "a": 1 }, + { "px": [640,192], "src": [32,32], "f": 0, "t": 48, "d": [102,544], "a": 1 }, + { "px": [656,192], "src": [32,32], "f": 0, "t": 48, "d": [102,545], "a": 1 }, + { "px": [544,208], "src": [32,32], "f": 0, "t": 48, "d": [102,580], "a": 1 }, + { "px": [560,208], "src": [32,32], "f": 0, "t": 48, "d": [102,581], "a": 1 }, + { "px": [576,208], "src": [32,32], "f": 0, "t": 48, "d": [102,582], "a": 1 }, + { "px": [592,208], "src": [32,32], "f": 0, "t": 48, "d": [102,583], "a": 1 }, + { "px": [608,208], "src": [32,32], "f": 0, "t": 48, "d": [102,584], "a": 1 }, + { "px": [624,208], "src": [32,32], "f": 0, "t": 48, "d": [102,585], "a": 1 }, + { "px": [640,208], "src": [32,32], "f": 0, "t": 48, "d": [102,586], "a": 1 }, + { "px": [656,208], "src": [32,32], "f": 0, "t": 48, "d": [102,587], "a": 1 }, + { "px": [0,224], "src": [32,32], "f": 0, "t": 48, "d": [102,588], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [102,589], "a": 1 }, + { "px": [32,224], "src": [32,32], "f": 0, "t": 48, "d": [102,590], "a": 1 }, + { "px": [48,224], "src": [32,32], "f": 0, "t": 48, "d": [102,591], "a": 1 }, + { "px": [64,224], "src": [32,32], "f": 0, "t": 48, "d": [102,592], "a": 1 }, + { "px": [544,224], "src": [32,32], "f": 0, "t": 48, "d": [102,622], "a": 1 }, + { "px": [560,224], "src": [32,32], "f": 0, "t": 48, "d": [102,623], "a": 1 }, + { "px": [576,224], "src": [32,32], "f": 0, "t": 48, "d": [102,624], "a": 1 }, + { "px": [592,224], "src": [32,32], "f": 0, "t": 48, "d": [102,625], "a": 1 }, + { "px": [608,224], "src": [32,32], "f": 0, "t": 48, "d": [102,626], "a": 1 }, + { "px": [624,224], "src": [32,32], "f": 0, "t": 48, "d": [102,627], "a": 1 }, + { "px": [640,224], "src": [32,32], "f": 0, "t": 48, "d": [102,628], "a": 1 }, + { "px": [656,224], "src": [32,32], "f": 0, "t": 48, "d": [102,629], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [102,630], "a": 1 }, + { "px": [16,240], "src": [32,32], "f": 0, "t": 48, "d": [102,631], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [102,632], "a": 1 }, + { "px": [48,240], "src": [32,32], "f": 0, "t": 48, "d": [102,633], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [102,634], "a": 1 }, + { "px": [544,240], "src": [32,32], "f": 0, "t": 48, "d": [102,664], "a": 1 }, + { "px": [560,240], "src": [32,32], "f": 0, "t": 48, "d": [102,665], "a": 1 }, + { "px": [576,240], "src": [32,32], "f": 0, "t": 48, "d": [102,666], "a": 1 }, + { "px": [592,240], "src": [32,32], "f": 0, "t": 48, "d": [102,667], "a": 1 }, + { "px": [608,240], "src": [32,32], "f": 0, "t": 48, "d": [102,668], "a": 1 }, + { "px": [624,240], "src": [32,32], "f": 0, "t": 48, "d": [102,669], "a": 1 }, + { "px": [640,240], "src": [32,32], "f": 0, "t": 48, "d": [102,670], "a": 1 }, + { "px": [656,240], "src": [32,32], "f": 0, "t": 48, "d": [102,671], "a": 1 }, + { "px": [0,256], "src": [32,32], "f": 0, "t": 48, "d": [102,672], "a": 1 }, + { "px": [16,256], "src": [32,32], "f": 0, "t": 48, "d": [102,673], "a": 1 }, + { "px": [32,256], "src": [32,32], "f": 0, "t": 48, "d": [102,674], "a": 1 }, + { "px": [48,256], "src": [32,32], "f": 0, "t": 48, "d": [102,675], "a": 1 }, + { "px": [64,256], "src": [32,32], "f": 0, "t": 48, "d": [102,676], "a": 1 }, + { "px": [80,256], "src": [32,32], "f": 0, "t": 48, "d": [102,677], "a": 1 }, + { "px": [544,256], "src": [32,32], "f": 0, "t": 48, "d": [102,706], "a": 1 }, + { "px": [560,256], "src": [32,32], "f": 0, "t": 48, "d": [102,707], "a": 1 }, + { "px": [576,256], "src": [32,32], "f": 0, "t": 48, "d": [102,708], "a": 1 }, + { "px": [592,256], "src": [32,32], "f": 0, "t": 48, "d": [102,709], "a": 1 }, + { "px": [608,256], "src": [32,32], "f": 0, "t": 48, "d": [102,710], "a": 1 }, + { "px": [624,256], "src": [32,32], "f": 0, "t": 48, "d": [102,711], "a": 1 }, + { "px": [640,256], "src": [32,32], "f": 0, "t": 48, "d": [102,712], "a": 1 }, + { "px": [656,256], "src": [32,32], "f": 0, "t": 48, "d": [102,713], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [102,714], "a": 1 }, + { "px": [16,272], "src": [32,32], "f": 0, "t": 48, "d": [102,715], "a": 1 }, + { "px": [32,272], "src": [32,32], "f": 0, "t": 48, "d": [102,716], "a": 1 }, + { "px": [48,272], "src": [32,32], "f": 0, "t": 48, "d": [102,717], "a": 1 }, + { "px": [64,272], "src": [32,32], "f": 0, "t": 48, "d": [102,718], "a": 1 }, + { "px": [80,272], "src": [32,32], "f": 0, "t": 48, "d": [102,719], "a": 1 }, + { "px": [96,272], "src": [32,32], "f": 0, "t": 48, "d": [102,720], "a": 1 }, + { "px": [112,272], "src": [32,32], "f": 0, "t": 48, "d": [102,721], "a": 1 }, + { "px": [544,272], "src": [32,32], "f": 0, "t": 48, "d": [102,748], "a": 1 }, + { "px": [560,272], "src": [32,32], "f": 0, "t": 48, "d": [102,749], "a": 1 }, + { "px": [576,272], "src": [32,32], "f": 0, "t": 48, "d": [102,750], "a": 1 }, + { "px": [592,272], "src": [32,32], "f": 0, "t": 48, "d": [102,751], "a": 1 }, + { "px": [608,272], "src": [32,32], "f": 0, "t": 48, "d": [102,752], "a": 1 }, + { "px": [624,272], "src": [32,32], "f": 0, "t": 48, "d": [102,753], "a": 1 }, + { "px": [640,272], "src": [32,32], "f": 0, "t": 48, "d": [102,754], "a": 1 }, + { "px": [656,272], "src": [32,32], "f": 0, "t": 48, "d": [102,755], "a": 1 }, + { "px": [0,288], "src": [32,32], "f": 0, "t": 48, "d": [102,756], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [102,757], "a": 1 }, + { "px": [32,288], "src": [32,32], "f": 0, "t": 48, "d": [102,758], "a": 1 }, + { "px": [48,288], "src": [32,32], "f": 0, "t": 48, "d": [102,759], "a": 1 }, + { "px": [64,288], "src": [32,32], "f": 0, "t": 48, "d": [102,760], "a": 1 }, + { "px": [80,288], "src": [32,32], "f": 0, "t": 48, "d": [102,761], "a": 1 }, + { "px": [96,288], "src": [32,32], "f": 0, "t": 48, "d": [102,762], "a": 1 }, + { "px": [112,288], "src": [32,32], "f": 0, "t": 48, "d": [102,763], "a": 1 }, + { "px": [128,288], "src": [32,32], "f": 0, "t": 48, "d": [102,764], "a": 1 }, + { "px": [544,288], "src": [32,32], "f": 0, "t": 48, "d": [102,790], "a": 1 }, + { "px": [560,288], "src": [32,32], "f": 0, "t": 48, "d": [102,791], "a": 1 }, + { "px": [576,288], "src": [32,32], "f": 0, "t": 48, "d": [102,792], "a": 1 }, + { "px": [592,288], "src": [32,32], "f": 0, "t": 48, "d": [102,793], "a": 1 }, + { "px": [608,288], "src": [32,32], "f": 0, "t": 48, "d": [102,794], "a": 1 }, + { "px": [624,288], "src": [32,32], "f": 0, "t": 48, "d": [102,795], "a": 1 }, + { "px": [640,288], "src": [32,32], "f": 0, "t": 48, "d": [102,796], "a": 1 }, + { "px": [656,288], "src": [32,32], "f": 0, "t": 48, "d": [102,797], "a": 1 }, + { "px": [0,304], "src": [32,32], "f": 0, "t": 48, "d": [102,798], "a": 1 }, + { "px": [16,304], "src": [32,32], "f": 0, "t": 48, "d": [102,799], "a": 1 }, + { "px": [32,304], "src": [32,32], "f": 0, "t": 48, "d": [102,800], "a": 1 }, + { "px": [48,304], "src": [32,32], "f": 0, "t": 48, "d": [102,801], "a": 1 }, + { "px": [64,304], "src": [32,32], "f": 0, "t": 48, "d": [102,802], "a": 1 }, + { "px": [80,304], "src": [32,32], "f": 0, "t": 48, "d": [102,803], "a": 1 }, + { "px": [96,304], "src": [32,32], "f": 0, "t": 48, "d": [102,804], "a": 1 }, + { "px": [112,304], "src": [32,32], "f": 0, "t": 48, "d": [102,805], "a": 1 }, + { "px": [128,304], "src": [32,32], "f": 0, "t": 48, "d": [102,806], "a": 1 }, + { "px": [144,304], "src": [32,32], "f": 0, "t": 48, "d": [102,807], "a": 1 }, + { "px": [160,304], "src": [32,32], "f": 0, "t": 48, "d": [102,808], "a": 1 }, + { "px": [176,304], "src": [32,32], "f": 0, "t": 48, "d": [102,809], "a": 1 }, + { "px": [528,304], "src": [32,32], "f": 0, "t": 48, "d": [102,831], "a": 1 }, + { "px": [544,304], "src": [32,32], "f": 0, "t": 48, "d": [102,832], "a": 1 }, + { "px": [560,304], "src": [32,32], "f": 0, "t": 48, "d": [102,833], "a": 1 }, + { "px": [576,304], "src": [32,32], "f": 0, "t": 48, "d": [102,834], "a": 1 }, + { "px": [592,304], "src": [32,32], "f": 0, "t": 48, "d": [102,835], "a": 1 }, + { "px": [608,304], "src": [32,32], "f": 0, "t": 48, "d": [102,836], "a": 1 }, + { "px": [624,304], "src": [32,32], "f": 0, "t": 48, "d": [102,837], "a": 1 }, + { "px": [640,304], "src": [32,32], "f": 0, "t": 48, "d": [102,838], "a": 1 }, + { "px": [656,304], "src": [32,32], "f": 0, "t": 48, "d": [102,839], "a": 1 }, + { "px": [0,320], "src": [32,32], "f": 0, "t": 48, "d": [102,840], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [102,841], "a": 1 }, + { "px": [32,320], "src": [32,32], "f": 0, "t": 48, "d": [102,842], "a": 1 }, + { "px": [48,320], "src": [32,32], "f": 0, "t": 48, "d": [102,843], "a": 1 }, + { "px": [64,320], "src": [32,32], "f": 0, "t": 48, "d": [102,844], "a": 1 }, + { "px": [80,320], "src": [32,32], "f": 0, "t": 48, "d": [102,845], "a": 1 }, + { "px": [96,320], "src": [32,32], "f": 0, "t": 48, "d": [102,846], "a": 1 }, + { "px": [112,320], "src": [32,32], "f": 0, "t": 48, "d": [102,847], "a": 1 }, + { "px": [128,320], "src": [32,32], "f": 0, "t": 48, "d": [102,848], "a": 1 }, + { "px": [144,320], "src": [32,32], "f": 0, "t": 48, "d": [102,849], "a": 1 }, + { "px": [160,320], "src": [32,32], "f": 0, "t": 48, "d": [102,850], "a": 1 }, + { "px": [176,320], "src": [32,32], "f": 0, "t": 48, "d": [102,851], "a": 1 }, + { "px": [528,320], "src": [32,32], "f": 0, "t": 48, "d": [102,873], "a": 1 }, + { "px": [544,320], "src": [32,32], "f": 0, "t": 48, "d": [102,874], "a": 1 }, + { "px": [560,320], "src": [32,32], "f": 0, "t": 48, "d": [102,875], "a": 1 }, + { "px": [576,320], "src": [32,32], "f": 0, "t": 48, "d": [102,876], "a": 1 }, + { "px": [592,320], "src": [32,32], "f": 0, "t": 48, "d": [102,877], "a": 1 }, + { "px": [608,320], "src": [32,32], "f": 0, "t": 48, "d": [102,878], "a": 1 }, + { "px": [624,320], "src": [32,32], "f": 0, "t": 48, "d": [102,879], "a": 1 }, + { "px": [640,320], "src": [32,32], "f": 0, "t": 48, "d": [102,880], "a": 1 }, + { "px": [656,320], "src": [32,32], "f": 0, "t": 48, "d": [102,881], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [102,882], "a": 1 }, + { "px": [16,336], "src": [32,32], "f": 0, "t": 48, "d": [102,883], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [102,884], "a": 1 }, + { "px": [48,336], "src": [32,32], "f": 0, "t": 48, "d": [102,885], "a": 1 }, + { "px": [64,336], "src": [32,32], "f": 0, "t": 48, "d": [102,886], "a": 1 }, + { "px": [80,336], "src": [32,32], "f": 0, "t": 48, "d": [102,887], "a": 1 }, + { "px": [96,336], "src": [32,32], "f": 0, "t": 48, "d": [102,888], "a": 1 }, + { "px": [112,336], "src": [32,32], "f": 0, "t": 48, "d": [102,889], "a": 1 }, + { "px": [128,336], "src": [32,32], "f": 0, "t": 48, "d": [102,890], "a": 1 }, + { "px": [144,336], "src": [32,32], "f": 0, "t": 48, "d": [102,891], "a": 1 }, + { "px": [160,336], "src": [32,32], "f": 0, "t": 48, "d": [102,892], "a": 1 }, + { "px": [176,336], "src": [32,32], "f": 0, "t": 48, "d": [102,893], "a": 1 }, + { "px": [528,336], "src": [32,32], "f": 0, "t": 48, "d": [102,915], "a": 1 }, + { "px": [544,336], "src": [32,32], "f": 0, "t": 48, "d": [102,916], "a": 1 }, + { "px": [560,336], "src": [32,32], "f": 0, "t": 48, "d": [102,917], "a": 1 }, + { "px": [576,336], "src": [32,32], "f": 0, "t": 48, "d": [102,918], "a": 1 }, + { "px": [592,336], "src": [32,32], "f": 0, "t": 48, "d": [102,919], "a": 1 }, + { "px": [608,336], "src": [32,32], "f": 0, "t": 48, "d": [102,920], "a": 1 }, + { "px": [624,336], "src": [32,32], "f": 0, "t": 48, "d": [102,921], "a": 1 }, + { "px": [640,336], "src": [32,32], "f": 0, "t": 48, "d": [102,922], "a": 1 }, + { "px": [656,336], "src": [32,32], "f": 0, "t": 48, "d": [102,923], "a": 1 } + ], + "seed": 2287525, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Bg_textures", + "__type": "AutoLayer", + "__cWid": 42, + "__cHei": 22, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 2, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a3170ba0-66b0-11ec-9cd7-cf6ab15e2769", + "levelId": 89, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [160,64], "src": [320,272], "f": 0, "t": 411, "d": [26,178], "a": 1 }, + { "px": [208,64], "src": [320,272], "f": 0, "t": 411, "d": [26,181], "a": 1 }, + { "px": [240,64], "src": [320,272], "f": 0, "t": 411, "d": [26,183], "a": 1 }, + { "px": [272,64], "src": [320,272], "f": 0, "t": 411, "d": [26,185], "a": 1 }, + { "px": [144,80], "src": [320,272], "f": 0, "t": 411, "d": [26,219], "a": 1 }, + { "px": [160,80], "src": [320,272], "f": 0, "t": 411, "d": [26,220], "a": 1 }, + { "px": [176,80], "src": [320,272], "f": 0, "t": 411, "d": [26,221], "a": 1 }, + { "px": [192,80], "src": [320,272], "f": 0, "t": 411, "d": [26,222], "a": 1 }, + { "px": [208,80], "src": [320,272], "f": 0, "t": 411, "d": [26,223], "a": 1 }, + { "px": [224,80], "src": [320,272], "f": 0, "t": 411, "d": [26,224], "a": 1 }, + { "px": [240,80], "src": [320,272], "f": 0, "t": 411, "d": [26,225], "a": 1 }, + { "px": [256,80], "src": [320,272], "f": 0, "t": 411, "d": [26,226], "a": 1 }, + { "px": [272,80], "src": [320,272], "f": 0, "t": 411, "d": [26,227], "a": 1 }, + { "px": [144,96], "src": [320,272], "f": 0, "t": 411, "d": [26,261], "a": 1 }, + { "px": [160,96], "src": [320,272], "f": 0, "t": 411, "d": [26,262], "a": 1 }, + { "px": [192,96], "src": [320,272], "f": 0, "t": 411, "d": [26,264], "a": 1 }, + { "px": [208,96], "src": [320,272], "f": 0, "t": 411, "d": [26,265], "a": 1 }, + { "px": [240,96], "src": [320,272], "f": 0, "t": 411, "d": [26,267], "a": 1 }, + { "px": [256,96], "src": [320,272], "f": 0, "t": 411, "d": [26,268], "a": 1 }, + { "px": [272,96], "src": [320,272], "f": 0, "t": 411, "d": [26,269], "a": 1 }, + { "px": [64,112], "src": [320,272], "f": 0, "t": 411, "d": [26,298], "a": 1 }, + { "px": [80,112], "src": [320,272], "f": 0, "t": 411, "d": [26,299], "a": 1 }, + { "px": [96,112], "src": [320,272], "f": 0, "t": 411, "d": [26,300], "a": 1 }, + { "px": [112,112], "src": [320,272], "f": 0, "t": 411, "d": [26,301], "a": 1 }, + { "px": [128,112], "src": [320,272], "f": 0, "t": 411, "d": [26,302], "a": 1 }, + { "px": [144,112], "src": [320,272], "f": 0, "t": 411, "d": [26,303], "a": 1 }, + { "px": [160,112], "src": [320,272], "f": 0, "t": 411, "d": [26,304], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [26,305], "a": 1 }, + { "px": [192,112], "src": [320,272], "f": 0, "t": 411, "d": [26,306], "a": 1 }, + { "px": [208,112], "src": [320,272], "f": 0, "t": 411, "d": [26,307], "a": 1 }, + { "px": [224,112], "src": [320,272], "f": 0, "t": 411, "d": [26,308], "a": 1 }, + { "px": [240,112], "src": [320,272], "f": 0, "t": 411, "d": [26,309], "a": 1 }, + { "px": [256,112], "src": [320,272], "f": 0, "t": 411, "d": [26,310], "a": 1 }, + { "px": [272,112], "src": [320,272], "f": 0, "t": 411, "d": [26,311], "a": 1 }, + { "px": [64,128], "src": [320,272], "f": 0, "t": 411, "d": [26,340], "a": 1 }, + { "px": [80,128], "src": [320,272], "f": 0, "t": 411, "d": [26,341], "a": 1 }, + { "px": [96,128], "src": [320,272], "f": 0, "t": 411, "d": [26,342], "a": 1 }, + { "px": [112,128], "src": [320,272], "f": 0, "t": 411, "d": [26,343], "a": 1 }, + { "px": [128,128], "src": [320,272], "f": 0, "t": 411, "d": [26,344], "a": 1 }, + { "px": [144,128], "src": [320,272], "f": 0, "t": 411, "d": [26,345], "a": 1 }, + { "px": [160,128], "src": [320,272], "f": 0, "t": 411, "d": [26,346], "a": 1 }, + { "px": [176,128], "src": [320,272], "f": 0, "t": 411, "d": [26,347], "a": 1 }, + { "px": [208,128], "src": [320,272], "f": 0, "t": 411, "d": [26,349], "a": 1 }, + { "px": [224,128], "src": [320,272], "f": 0, "t": 411, "d": [26,350], "a": 1 }, + { "px": [240,128], "src": [320,272], "f": 0, "t": 411, "d": [26,351], "a": 1 }, + { "px": [256,128], "src": [320,272], "f": 0, "t": 411, "d": [26,352], "a": 1 }, + { "px": [272,128], "src": [320,272], "f": 0, "t": 411, "d": [26,353], "a": 1 }, + { "px": [144,144], "src": [320,272], "f": 0, "t": 411, "d": [26,387], "a": 1 }, + { "px": [160,144], "src": [320,272], "f": 0, "t": 411, "d": [26,388], "a": 1 }, + { "px": [176,144], "src": [320,272], "f": 0, "t": 411, "d": [26,389], "a": 1 }, + { "px": [192,144], "src": [320,272], "f": 0, "t": 411, "d": [26,390], "a": 1 }, + { "px": [208,144], "src": [320,272], "f": 0, "t": 411, "d": [26,391], "a": 1 }, + { "px": [224,144], "src": [320,272], "f": 0, "t": 411, "d": [26,392], "a": 1 }, + { "px": [240,144], "src": [320,272], "f": 0, "t": 411, "d": [26,393], "a": 1 }, + { "px": [256,144], "src": [320,272], "f": 0, "t": 411, "d": [26,394], "a": 1 }, + { "px": [272,144], "src": [320,272], "f": 0, "t": 411, "d": [26,395], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [26,401], "a": 1 }, + { "px": [384,144], "src": [320,272], "f": 0, "t": 411, "d": [26,402], "a": 1 }, + { "px": [400,144], "src": [320,272], "f": 0, "t": 411, "d": [26,403], "a": 1 }, + { "px": [416,144], "src": [320,272], "f": 0, "t": 411, "d": [26,404], "a": 1 }, + { "px": [432,144], "src": [320,272], "f": 0, "t": 411, "d": [26,405], "a": 1 }, + { "px": [160,160], "src": [320,272], "f": 0, "t": 411, "d": [26,430], "a": 1 }, + { "px": [192,160], "src": [320,272], "f": 0, "t": 411, "d": [26,432], "a": 1 }, + { "px": [208,160], "src": [320,272], "f": 0, "t": 411, "d": [26,433], "a": 1 }, + { "px": [224,160], "src": [320,272], "f": 0, "t": 411, "d": [26,434], "a": 1 }, + { "px": [240,160], "src": [320,272], "f": 0, "t": 411, "d": [26,435], "a": 1 }, + { "px": [256,160], "src": [320,272], "f": 0, "t": 411, "d": [26,436], "a": 1 }, + { "px": [272,160], "src": [320,272], "f": 0, "t": 411, "d": [26,437], "a": 1 }, + { "px": [288,160], "src": [320,272], "f": 0, "t": 411, "d": [26,438], "a": 1 }, + { "px": [304,160], "src": [320,272], "f": 0, "t": 411, "d": [26,439], "a": 1 }, + { "px": [320,160], "src": [320,272], "f": 0, "t": 411, "d": [26,440], "a": 1 }, + { "px": [336,160], "src": [320,272], "f": 0, "t": 411, "d": [26,441], "a": 1 }, + { "px": [352,160], "src": [320,272], "f": 0, "t": 411, "d": [26,442], "a": 1 }, + { "px": [368,160], "src": [320,272], "f": 0, "t": 411, "d": [26,443], "a": 1 }, + { "px": [384,160], "src": [320,272], "f": 0, "t": 411, "d": [26,444], "a": 1 }, + { "px": [400,160], "src": [320,272], "f": 0, "t": 411, "d": [26,445], "a": 1 }, + { "px": [416,160], "src": [320,272], "f": 0, "t": 411, "d": [26,446], "a": 1 }, + { "px": [432,160], "src": [320,272], "f": 0, "t": 411, "d": [26,447], "a": 1 }, + { "px": [144,176], "src": [320,272], "f": 0, "t": 411, "d": [26,471], "a": 1 }, + { "px": [160,176], "src": [320,272], "f": 0, "t": 411, "d": [26,472], "a": 1 }, + { "px": [176,176], "src": [320,272], "f": 0, "t": 411, "d": [26,473], "a": 1 }, + { "px": [192,176], "src": [320,272], "f": 0, "t": 411, "d": [26,474], "a": 1 }, + { "px": [208,176], "src": [320,272], "f": 0, "t": 411, "d": [26,475], "a": 1 }, + { "px": [224,176], "src": [320,272], "f": 0, "t": 411, "d": [26,476], "a": 1 }, + { "px": [240,176], "src": [320,272], "f": 0, "t": 411, "d": [26,477], "a": 1 }, + { "px": [256,176], "src": [320,272], "f": 0, "t": 411, "d": [26,478], "a": 1 }, + { "px": [272,176], "src": [320,272], "f": 0, "t": 411, "d": [26,479], "a": 1 }, + { "px": [288,176], "src": [320,272], "f": 0, "t": 411, "d": [26,480], "a": 1 }, + { "px": [304,176], "src": [320,272], "f": 0, "t": 411, "d": [26,481], "a": 1 }, + { "px": [320,176], "src": [320,272], "f": 0, "t": 411, "d": [26,482], "a": 1 }, + { "px": [336,176], "src": [320,272], "f": 0, "t": 411, "d": [26,483], "a": 1 }, + { "px": [352,176], "src": [320,272], "f": 0, "t": 411, "d": [26,484], "a": 1 }, + { "px": [368,176], "src": [320,272], "f": 0, "t": 411, "d": [26,485], "a": 1 }, + { "px": [384,176], "src": [320,272], "f": 0, "t": 411, "d": [26,486], "a": 1 }, + { "px": [400,176], "src": [320,272], "f": 0, "t": 411, "d": [26,487], "a": 1 }, + { "px": [416,176], "src": [320,272], "f": 0, "t": 411, "d": [26,488], "a": 1 }, + { "px": [432,176], "src": [320,272], "f": 0, "t": 411, "d": [26,489], "a": 1 }, + { "px": [144,192], "src": [320,272], "f": 0, "t": 411, "d": [26,513], "a": 1 }, + { "px": [160,192], "src": [320,272], "f": 0, "t": 411, "d": [26,514], "a": 1 }, + { "px": [176,192], "src": [320,272], "f": 0, "t": 411, "d": [26,515], "a": 1 }, + { "px": [192,192], "src": [320,272], "f": 0, "t": 411, "d": [26,516], "a": 1 }, + { "px": [208,192], "src": [320,272], "f": 0, "t": 411, "d": [26,517], "a": 1 }, + { "px": [224,192], "src": [320,272], "f": 0, "t": 411, "d": [26,518], "a": 1 }, + { "px": [240,192], "src": [320,272], "f": 0, "t": 411, "d": [26,519], "a": 1 }, + { "px": [256,192], "src": [320,272], "f": 0, "t": 411, "d": [26,520], "a": 1 }, + { "px": [272,192], "src": [320,272], "f": 0, "t": 411, "d": [26,521], "a": 1 }, + { "px": [288,192], "src": [320,272], "f": 0, "t": 411, "d": [26,522], "a": 1 }, + { "px": [304,192], "src": [320,272], "f": 0, "t": 411, "d": [26,523], "a": 1 }, + { "px": [320,192], "src": [320,272], "f": 0, "t": 411, "d": [26,524], "a": 1 }, + { "px": [336,192], "src": [320,272], "f": 0, "t": 411, "d": [26,525], "a": 1 }, + { "px": [352,192], "src": [320,272], "f": 0, "t": 411, "d": [26,526], "a": 1 }, + { "px": [368,192], "src": [320,272], "f": 0, "t": 411, "d": [26,527], "a": 1 }, + { "px": [384,192], "src": [320,272], "f": 0, "t": 411, "d": [26,528], "a": 1 }, + { "px": [400,192], "src": [320,272], "f": 0, "t": 411, "d": [26,529], "a": 1 }, + { "px": [416,192], "src": [320,272], "f": 0, "t": 411, "d": [26,530], "a": 1 }, + { "px": [432,192], "src": [320,272], "f": 0, "t": 411, "d": [26,531], "a": 1 }, + { "px": [160,208], "src": [320,272], "f": 0, "t": 411, "d": [26,556], "a": 1 }, + { "px": [176,208], "src": [320,272], "f": 0, "t": 411, "d": [26,557], "a": 1 }, + { "px": [208,208], "src": [320,272], "f": 0, "t": 411, "d": [26,559], "a": 1 }, + { "px": [224,208], "src": [320,272], "f": 0, "t": 411, "d": [26,560], "a": 1 }, + { "px": [320,208], "src": [320,272], "f": 0, "t": 411, "d": [26,566], "a": 1 }, + { "px": [336,208], "src": [320,272], "f": 0, "t": 411, "d": [26,567], "a": 1 }, + { "px": [352,208], "src": [320,272], "f": 0, "t": 411, "d": [26,568], "a": 1 }, + { "px": [368,208], "src": [320,272], "f": 0, "t": 411, "d": [26,569], "a": 1 }, + { "px": [384,208], "src": [320,272], "f": 0, "t": 411, "d": [26,570], "a": 1 }, + { "px": [400,208], "src": [320,272], "f": 0, "t": 411, "d": [26,571], "a": 1 }, + { "px": [416,208], "src": [320,272], "f": 0, "t": 411, "d": [26,572], "a": 1 }, + { "px": [432,208], "src": [320,272], "f": 0, "t": 411, "d": [26,573], "a": 1 }, + { "px": [368,224], "src": [320,272], "f": 0, "t": 411, "d": [26,611], "a": 1 }, + { "px": [384,224], "src": [320,272], "f": 0, "t": 411, "d": [26,612], "a": 1 }, + { "px": [400,224], "src": [320,272], "f": 0, "t": 411, "d": [26,613], "a": 1 }, + { "px": [416,224], "src": [320,272], "f": 0, "t": 411, "d": [26,614], "a": 1 }, + { "px": [352,288], "src": [320,272], "f": 0, "t": 411, "d": [26,778], "a": 1 }, + { "px": [368,288], "src": [320,272], "f": 0, "t": 411, "d": [26,779], "a": 1 }, + { "px": [352,304], "src": [320,272], "f": 0, "t": 411, "d": [26,820], "a": 1 }, + { "px": [368,304], "src": [320,272], "f": 0, "t": 411, "d": [26,821], "a": 1 }, + { "px": [352,320], "src": [320,272], "f": 0, "t": 411, "d": [26,862], "a": 1 }, + { "px": [368,320], "src": [320,272], "f": 0, "t": 411, "d": [26,863], "a": 1 }, + { "px": [128,160], "src": [320,272], "f": 0, "t": 411, "d": [84,428], "a": 1 }, + { "px": [128,80], "src": [288,240], "f": 0, "t": 363, "d": [37,218], "a": 1 }, + { "px": [288,80], "src": [288,240], "f": 1, "t": 363, "d": [37,228], "a": 1 }, + { "px": [128,96], "src": [288,240], "f": 0, "t": 363, "d": [37,260], "a": 1 }, + { "px": [288,96], "src": [288,240], "f": 1, "t": 363, "d": [37,270], "a": 1 }, + { "px": [48,112], "src": [288,240], "f": 0, "t": 363, "d": [37,297], "a": 1 }, + { "px": [288,112], "src": [288,240], "f": 1, "t": 363, "d": [37,312], "a": 1 }, + { "px": [48,128], "src": [288,240], "f": 0, "t": 363, "d": [37,339], "a": 1 }, + { "px": [288,128], "src": [288,240], "f": 1, "t": 363, "d": [37,354], "a": 1 }, + { "px": [288,144], "src": [288,240], "f": 1, "t": 363, "d": [37,396], "a": 1 }, + { "px": [144,160], "src": [288,240], "f": 0, "t": 363, "d": [37,429], "a": 1 }, + { "px": [448,160], "src": [288,240], "f": 1, "t": 363, "d": [37,448], "a": 1 }, + { "px": [128,176], "src": [288,240], "f": 0, "t": 363, "d": [37,470], "a": 1 }, + { "px": [448,176], "src": [288,240], "f": 1, "t": 363, "d": [37,490], "a": 1 }, + { "px": [128,192], "src": [288,240], "f": 0, "t": 363, "d": [37,512], "a": 1 }, + { "px": [448,192], "src": [288,240], "f": 1, "t": 363, "d": [37,532], "a": 1 }, + { "px": [448,208], "src": [288,240], "f": 1, "t": 363, "d": [37,574], "a": 1 }, + { "px": [336,288], "src": [288,240], "f": 0, "t": 363, "d": [37,777], "a": 1 }, + { "px": [384,288], "src": [288,240], "f": 1, "t": 363, "d": [37,780], "a": 1 }, + { "px": [416,288], "src": [288,240], "f": 0, "t": 363, "d": [37,782], "a": 1 }, + { "px": [432,288], "src": [288,240], "f": 1, "t": 363, "d": [37,783], "a": 1 }, + { "px": [336,304], "src": [288,240], "f": 0, "t": 363, "d": [37,819], "a": 1 }, + { "px": [384,304], "src": [288,240], "f": 1, "t": 363, "d": [37,822], "a": 1 }, + { "px": [416,304], "src": [288,240], "f": 0, "t": 363, "d": [37,824], "a": 1 }, + { "px": [432,304], "src": [288,240], "f": 1, "t": 363, "d": [37,825], "a": 1 }, + { "px": [64,96], "src": [288,272], "f": 2, "t": 409, "d": [38,256], "a": 1 }, + { "px": [80,96], "src": [288,272], "f": 2, "t": 409, "d": [38,257], "a": 1 }, + { "px": [96,96], "src": [288,272], "f": 2, "t": 409, "d": [38,258], "a": 1 }, + { "px": [64,144], "src": [288,272], "f": 0, "t": 409, "d": [38,382], "a": 1 }, + { "px": [80,144], "src": [288,272], "f": 0, "t": 409, "d": [38,383], "a": 1 }, + { "px": [256,208], "src": [288,272], "f": 0, "t": 409, "d": [38,562], "a": 1 }, + { "px": [272,208], "src": [288,272], "f": 0, "t": 409, "d": [38,563], "a": 1 }, + { "px": [304,208], "src": [288,272], "f": 0, "t": 409, "d": [38,565], "a": 1 }, + { "px": [352,272], "src": [288,272], "f": 2, "t": 409, "d": [38,736], "a": 1 }, + { "px": [368,272], "src": [288,272], "f": 2, "t": 409, "d": [38,737], "a": 1 }, + { "px": [384,272], "src": [288,272], "f": 2, "t": 409, "d": [38,738], "a": 1 }, + { "px": [416,272], "src": [288,272], "f": 2, "t": 409, "d": [38,740], "a": 1 }, + { "px": [160,96], "src": [256,240], "f": 0, "t": 361, "d": [77,263], "a": 1 }, + { "px": [176,96], "src": [272,240], "f": 0, "t": 362, "d": [77,263], "a": 1 }, + { "px": [192,96], "src": [288,240], "f": 0, "t": 363, "d": [77,263], "a": 1 }, + { "px": [208,96], "src": [256,240], "f": 0, "t": 361, "d": [77,266], "a": 1 }, + { "px": [224,96], "src": [272,240], "f": 0, "t": 362, "d": [77,266], "a": 1 }, + { "px": [240,96], "src": [288,240], "f": 0, "t": 363, "d": [77,266], "a": 1 }, + { "px": [176,128], "src": [256,240], "f": 0, "t": 361, "d": [77,348], "a": 1 }, + { "px": [192,128], "src": [272,240], "f": 0, "t": 362, "d": [77,348], "a": 1 }, + { "px": [208,128], "src": [288,240], "f": 0, "t": 363, "d": [77,348], "a": 1 }, + { "px": [160,160], "src": [256,240], "f": 0, "t": 361, "d": [77,431], "a": 1 }, + { "px": [176,160], "src": [272,240], "f": 0, "t": 362, "d": [77,431], "a": 1 }, + { "px": [192,160], "src": [288,240], "f": 0, "t": 363, "d": [77,431], "a": 1 }, + { "px": [144,64], "src": [144,272], "f": 2, "t": 400, "d": [39,177], "a": 1 }, + { "px": [176,64], "src": [144,272], "f": 2, "t": 400, "d": [39,179], "a": 1 }, + { "px": [192,64], "src": [192,304], "f": 2, "t": 449, "d": [39,180], "a": 1 }, + { "px": [224,64], "src": [176,272], "f": 2, "t": 402, "d": [39,182], "a": 1 }, + { "px": [256,64], "src": [160,304], "f": 2, "t": 447, "d": [39,184], "a": 1 }, + { "px": [128,144], "src": [192,304], "f": 0, "t": 449, "d": [39,386], "a": 1 }, + { "px": [144,208], "src": [176,272], "f": 0, "t": 402, "d": [39,555], "a": 1 }, + { "px": [128,64], "src": [144,272], "f": 3, "t": 400, "d": [65,176], "a": 1 }, + { "px": [288,64], "src": [144,272], "f": 2, "t": 400, "d": [65,186], "a": 1 }, + { "px": [96,144], "src": [144,304], "f": 0, "t": 446, "d": [65,384], "a": 1 }, + { "px": [128,208], "src": [128,320], "f": 1, "t": 468, "d": [65,554], "a": 1 }, + { "px": [384,320], "src": [144,304], "f": 0, "t": 446, "d": [65,864], "a": 1 }, + { "px": [416,320], "src": [128,320], "f": 1, "t": 468, "d": [65,866], "a": 1 }, + { "px": [48,96], "src": [208,304], "f": 2, "t": 450, "d": [80,255], "a": 1 }, + { "px": [48,144], "src": [208,304], "f": 0, "t": 450, "d": [80,381], "a": 1 }, + { "px": [352,144], "src": [208,304], "f": 2, "t": 450, "d": [80,400], "a": 1 }, + { "px": [448,144], "src": [208,304], "f": 3, "t": 450, "d": [80,406], "a": 1 }, + { "px": [352,224], "src": [208,304], "f": 0, "t": 450, "d": [80,610], "a": 1 }, + { "px": [448,224], "src": [208,304], "f": 1, "t": 450, "d": [80,616], "a": 1 }, + { "px": [336,272], "src": [208,304], "f": 2, "t": 450, "d": [80,735], "a": 1 }, + { "px": [432,272], "src": [208,304], "f": 3, "t": 450, "d": [80,741], "a": 1 }, + { "px": [336,320], "src": [208,304], "f": 0, "t": 450, "d": [80,861], "a": 1 }, + { "px": [432,320], "src": [208,304], "f": 1, "t": 450, "d": [80,867], "a": 1 }, + { "px": [184,176], "src": [208,240], "f": 0, "t": 358, "d": [72,558], "a": 1 }, + { "px": [184,192], "src": [208,256], "f": 0, "t": 381, "d": [72,558], "a": 1 }, + { "px": [184,208], "src": [208,272], "f": 0, "t": 404, "d": [72,558], "a": 1 }, + { "px": [200,176], "src": [224,240], "f": 0, "t": 359, "d": [72,558], "a": 1 }, + { "px": [200,192], "src": [224,256], "f": 0, "t": 382, "d": [72,558], "a": 1 }, + { "px": [200,208], "src": [224,272], "f": 0, "t": 405, "d": [72,558], "a": 1 }, + { "px": [232,176], "src": [208,240], "f": 0, "t": 358, "d": [72,561], "a": 1 }, + { "px": [232,192], "src": [208,256], "f": 0, "t": 381, "d": [72,561], "a": 1 }, + { "px": [232,208], "src": [208,272], "f": 0, "t": 404, "d": [72,561], "a": 1 }, + { "px": [248,176], "src": [224,240], "f": 0, "t": 359, "d": [72,561], "a": 1 }, + { "px": [248,192], "src": [224,256], "f": 0, "t": 382, "d": [72,561], "a": 1 }, + { "px": [248,208], "src": [224,272], "f": 0, "t": 405, "d": [72,561], "a": 1 }, + { "px": [280,176], "src": [208,240], "f": 0, "t": 358, "d": [72,564], "a": 1 }, + { "px": [280,192], "src": [208,256], "f": 0, "t": 381, "d": [72,564], "a": 1 }, + { "px": [280,208], "src": [208,272], "f": 0, "t": 404, "d": [72,564], "a": 1 }, + { "px": [296,176], "src": [224,240], "f": 0, "t": 359, "d": [72,564], "a": 1 }, + { "px": [296,192], "src": [224,256], "f": 0, "t": 382, "d": [72,564], "a": 1 }, + { "px": [296,208], "src": [224,272], "f": 0, "t": 405, "d": [72,564], "a": 1 }, + { "px": [424,192], "src": [208,240], "f": 0, "t": 358, "d": [72,615], "a": 1 }, + { "px": [424,208], "src": [208,256], "f": 0, "t": 381, "d": [72,615], "a": 1 }, + { "px": [424,224], "src": [208,272], "f": 0, "t": 404, "d": [72,615], "a": 1 }, + { "px": [440,192], "src": [224,240], "f": 0, "t": 359, "d": [72,615], "a": 1 }, + { "px": [440,208], "src": [224,256], "f": 0, "t": 382, "d": [72,615], "a": 1 }, + { "px": [440,224], "src": [224,272], "f": 0, "t": 405, "d": [72,615], "a": 1 } + ], + "seed": 4160648, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [{ "levelIid": "a315ac10-66b0-11ec-9cd7-99f223ad6ade", "dir": "s" }] + }, + { + "identifier": "Bottom", + "iid": "a317cef0-66b0-11ec-9cd7-dd2f249c8c8b", + "uid": 88, + "worldX": 80, + "worldY": 336, + "worldDepth": 0, + "pxWid": 464, + "pxHei": 256, + "__bgColor": "#50506A", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#9F9FAD", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 29, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a317cef5-66b0-11ec-9cd7-1763e00a48a4", + "levelId": 88, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 5505402, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Mob", + "__grid": [19,10], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 104, "x": 96, "y": 0, "w": 16, "h": 16 }, + "__smartColor": "#FF0000", + "iid": "a317cef6-66b0-11ec-9cd7-a5ccf047f66e", + "width": 20, + "height": 20, + "defUid": 54, + "px": [312,176], + "fieldInstances": [ + { "__identifier": "loot", "__type": "Array", "__value": ["Healing_Plant"], "__tile": null, "defUid": 56, "realEditorValues": [{ + "id": "V_String", + "params": ["Healing_Plant"] + }] }, + { "__identifier": "patrol", "__type": "Array", "__value": [{ "cx": 11, "cy": 10 }], "__tile": null, "defUid": 55, "realEditorValues": [{ + "id": "V_String", + "params": ["11,10"] + }] } + ] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 29, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 0.17, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 2, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a317cef7-66b0-11ec-9cd7-61e9cd78ec4b", + "levelId": 88, + "layerDefUid": 97, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [176,48], "src": [336,112], "f": 0, "t": 182, "d": [99,98], "a": 1 }, + { "px": [192,48], "src": [336,112], "f": 0, "t": 182, "d": [99,99], "a": 1 }, + { "px": [208,48], "src": [336,112], "f": 0, "t": 182, "d": [99,100], "a": 1 }, + { "px": [224,48], "src": [336,112], "f": 0, "t": 182, "d": [99,101], "a": 1 }, + { "px": [256,48], "src": [336,112], "f": 0, "t": 182, "d": [99,103], "a": 1 }, + { "px": [272,48], "src": [336,112], "f": 0, "t": 182, "d": [99,104], "a": 1 }, + { "px": [288,48], "src": [336,112], "f": 0, "t": 182, "d": [99,105], "a": 1 }, + { "px": [304,48], "src": [336,112], "f": 0, "t": 182, "d": [99,106], "a": 1 }, + { "px": [176,160], "src": [336,112], "f": 2, "t": 182, "d": [99,301], "a": 1 }, + { "px": [192,160], "src": [336,112], "f": 2, "t": 182, "d": [99,302], "a": 1 }, + { "px": [208,160], "src": [336,112], "f": 2, "t": 182, "d": [99,303], "a": 1 }, + { "px": [224,160], "src": [336,112], "f": 2, "t": 182, "d": [99,304], "a": 1 }, + { "px": [256,160], "src": [336,112], "f": 2, "t": 182, "d": [99,306], "a": 1 }, + { "px": [272,160], "src": [336,112], "f": 2, "t": 182, "d": [99,307], "a": 1 }, + { "px": [288,160], "src": [336,112], "f": 2, "t": 182, "d": [99,308], "a": 1 }, + { "px": [304,160], "src": [336,112], "f": 2, "t": 182, "d": [99,309], "a": 1 }, + { "px": [176,48], "src": [320,128], "f": 0, "t": 204, "d": [100,98], "a": 1 }, + { "px": [224,48], "src": [320,128], "f": 1, "t": 204, "d": [100,101], "a": 1 }, + { "px": [256,48], "src": [320,128], "f": 0, "t": 204, "d": [100,103], "a": 1 }, + { "px": [304,48], "src": [320,128], "f": 1, "t": 204, "d": [100,106], "a": 1 }, + { "px": [176,64], "src": [320,128], "f": 0, "t": 204, "d": [100,127], "a": 1 }, + { "px": [224,64], "src": [320,128], "f": 1, "t": 204, "d": [100,130], "a": 1 }, + { "px": [256,64], "src": [320,128], "f": 0, "t": 204, "d": [100,132], "a": 1 }, + { "px": [304,64], "src": [320,128], "f": 1, "t": 204, "d": [100,135], "a": 1 }, + { "px": [176,80], "src": [320,128], "f": 0, "t": 204, "d": [100,156], "a": 1 }, + { "px": [224,80], "src": [320,128], "f": 1, "t": 204, "d": [100,159], "a": 1 }, + { "px": [256,80], "src": [320,128], "f": 0, "t": 204, "d": [100,161], "a": 1 }, + { "px": [304,80], "src": [320,128], "f": 1, "t": 204, "d": [100,164], "a": 1 }, + { "px": [176,96], "src": [320,128], "f": 0, "t": 204, "d": [100,185], "a": 1 }, + { "px": [224,96], "src": [320,128], "f": 1, "t": 204, "d": [100,188], "a": 1 }, + { "px": [256,96], "src": [320,128], "f": 0, "t": 204, "d": [100,190], "a": 1 }, + { "px": [304,96], "src": [320,128], "f": 1, "t": 204, "d": [100,193], "a": 1 }, + { "px": [176,112], "src": [320,128], "f": 0, "t": 204, "d": [100,214], "a": 1 }, + { "px": [224,112], "src": [320,128], "f": 1, "t": 204, "d": [100,217], "a": 1 }, + { "px": [256,112], "src": [320,128], "f": 0, "t": 204, "d": [100,219], "a": 1 }, + { "px": [304,112], "src": [320,128], "f": 1, "t": 204, "d": [100,222], "a": 1 }, + { "px": [176,128], "src": [320,128], "f": 0, "t": 204, "d": [100,243], "a": 1 }, + { "px": [224,128], "src": [320,128], "f": 1, "t": 204, "d": [100,246], "a": 1 }, + { "px": [256,128], "src": [320,128], "f": 0, "t": 204, "d": [100,248], "a": 1 }, + { "px": [304,128], "src": [320,128], "f": 1, "t": 204, "d": [100,251], "a": 1 }, + { "px": [176,144], "src": [320,128], "f": 0, "t": 204, "d": [100,272], "a": 1 }, + { "px": [224,144], "src": [320,128], "f": 1, "t": 204, "d": [100,275], "a": 1 }, + { "px": [256,144], "src": [320,128], "f": 0, "t": 204, "d": [100,277], "a": 1 }, + { "px": [304,144], "src": [320,128], "f": 1, "t": 204, "d": [100,280], "a": 1 }, + { "px": [176,160], "src": [320,128], "f": 0, "t": 204, "d": [100,301], "a": 1 }, + { "px": [224,160], "src": [320,128], "f": 1, "t": 204, "d": [100,304], "a": 1 }, + { "px": [256,160], "src": [320,128], "f": 0, "t": 204, "d": [100,306], "a": 1 }, + { "px": [304,160], "src": [320,128], "f": 1, "t": 204, "d": [100,309], "a": 1 } + ], + "seed": 12126, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 29, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 2, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a317cef8-66b0-11ec-9cd7-4de4e6b85e16", + "levelId": 88, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,0,0, + 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,0,0,0,0,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,0,0,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,0,0,0,0,2,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, + 0,0,2,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,0,0,0, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,0,0,0,0,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [13,11], "a": 1 }, + { "px": [192,0], "src": [32,32], "f": 0, "t": 48, "d": [13,12], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [13,13], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [13,17], "a": 1 }, + { "px": [320,0], "src": [32,32], "f": 0, "t": 48, "d": [13,20], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [13,21], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [13,37], "a": 1 }, + { "px": [144,16], "src": [32,32], "f": 0, "t": 48, "d": [13,38], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [13,48], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [13,49], "a": 1 }, + { "px": [336,16], "src": [32,32], "f": 0, "t": 48, "d": [13,50], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [13,51], "a": 1 }, + { "px": [128,32], "src": [32,32], "f": 0, "t": 48, "d": [13,66], "a": 1 }, + { "px": [160,32], "src": [32,32], "f": 0, "t": 48, "d": [13,68], "a": 1 }, + { "px": [320,32], "src": [32,32], "f": 0, "t": 48, "d": [13,78], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [13,79], "a": 1 }, + { "px": [352,32], "src": [32,32], "f": 0, "t": 48, "d": [13,80], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [13,95], "a": 1 }, + { "px": [336,48], "src": [32,32], "f": 0, "t": 48, "d": [13,108], "a": 1 }, + { "px": [352,48], "src": [32,32], "f": 0, "t": 48, "d": [13,109], "a": 1 }, + { "px": [128,64], "src": [32,32], "f": 0, "t": 48, "d": [13,124], "a": 1 }, + { "px": [144,64], "src": [32,32], "f": 0, "t": 48, "d": [13,125], "a": 1 }, + { "px": [336,64], "src": [32,32], "f": 0, "t": 48, "d": [13,137], "a": 1 }, + { "px": [352,64], "src": [32,32], "f": 0, "t": 48, "d": [13,138], "a": 1 }, + { "px": [128,80], "src": [32,32], "f": 0, "t": 48, "d": [13,153], "a": 1 }, + { "px": [144,80], "src": [32,32], "f": 0, "t": 48, "d": [13,154], "a": 1 }, + { "px": [336,80], "src": [32,32], "f": 0, "t": 48, "d": [13,166], "a": 1 }, + { "px": [128,96], "src": [32,32], "f": 0, "t": 48, "d": [13,182], "a": 1 }, + { "px": [144,96], "src": [32,32], "f": 0, "t": 48, "d": [13,183], "a": 1 }, + { "px": [336,96], "src": [32,32], "f": 0, "t": 48, "d": [13,195], "a": 1 }, + { "px": [128,112], "src": [32,32], "f": 0, "t": 48, "d": [13,211], "a": 1 }, + { "px": [144,112], "src": [32,32], "f": 0, "t": 48, "d": [13,212], "a": 1 }, + { "px": [336,112], "src": [32,32], "f": 0, "t": 48, "d": [13,224], "a": 1 }, + { "px": [352,112], "src": [32,32], "f": 0, "t": 48, "d": [13,225], "a": 1 }, + { "px": [128,128], "src": [32,32], "f": 0, "t": 48, "d": [13,240], "a": 1 }, + { "px": [128,144], "src": [32,32], "f": 0, "t": 48, "d": [13,269], "a": 1 }, + { "px": [352,144], "src": [32,32], "f": 0, "t": 48, "d": [13,283], "a": 1 }, + { "px": [384,144], "src": [32,32], "f": 0, "t": 48, "d": [13,285], "a": 1 }, + { "px": [352,160], "src": [32,32], "f": 0, "t": 48, "d": [13,312], "a": 1 }, + { "px": [368,160], "src": [32,32], "f": 0, "t": 48, "d": [13,313], "a": 1 }, + { "px": [384,160], "src": [32,32], "f": 0, "t": 48, "d": [13,314], "a": 1 }, + { "px": [96,176], "src": [32,32], "f": 0, "t": 48, "d": [13,325], "a": 1 }, + { "px": [112,176], "src": [32,32], "f": 0, "t": 48, "d": [13,326], "a": 1 }, + { "px": [368,176], "src": [32,32], "f": 0, "t": 48, "d": [13,342], "a": 1 }, + { "px": [384,176], "src": [32,32], "f": 0, "t": 48, "d": [13,343], "a": 1 }, + { "px": [352,192], "src": [32,32], "f": 0, "t": 48, "d": [13,370], "a": 1 }, + { "px": [368,192], "src": [32,32], "f": 0, "t": 48, "d": [13,371], "a": 1 }, + { "px": [384,192], "src": [32,32], "f": 0, "t": 48, "d": [13,372], "a": 1 }, + { "px": [96,208], "src": [32,32], "f": 0, "t": 48, "d": [13,383], "a": 1 }, + { "px": [144,208], "src": [32,32], "f": 0, "t": 48, "d": [13,386], "a": 1 }, + { "px": [160,208], "src": [32,32], "f": 0, "t": 48, "d": [13,387], "a": 1 }, + { "px": [176,208], "src": [32,32], "f": 0, "t": 48, "d": [13,388], "a": 1 }, + { "px": [192,208], "src": [32,32], "f": 0, "t": 48, "d": [13,389], "a": 1 }, + { "px": [208,208], "src": [32,32], "f": 0, "t": 48, "d": [13,390], "a": 1 }, + { "px": [224,208], "src": [32,32], "f": 0, "t": 48, "d": [13,391], "a": 1 }, + { "px": [240,208], "src": [32,32], "f": 0, "t": 48, "d": [13,392], "a": 1 }, + { "px": [256,208], "src": [32,32], "f": 0, "t": 48, "d": [13,393], "a": 1 }, + { "px": [272,208], "src": [32,32], "f": 0, "t": 48, "d": [13,394], "a": 1 }, + { "px": [288,208], "src": [32,32], "f": 0, "t": 48, "d": [13,395], "a": 1 }, + { "px": [304,208], "src": [32,32], "f": 0, "t": 48, "d": [13,396], "a": 1 }, + { "px": [320,208], "src": [32,32], "f": 0, "t": 48, "d": [13,397], "a": 1 }, + { "px": [336,208], "src": [32,32], "f": 0, "t": 48, "d": [13,398], "a": 1 }, + { "px": [352,208], "src": [32,32], "f": 0, "t": 48, "d": [13,399], "a": 1 }, + { "px": [368,208], "src": [32,32], "f": 0, "t": 48, "d": [13,400], "a": 1 }, + { "px": [384,208], "src": [32,32], "f": 0, "t": 48, "d": [13,401], "a": 1 }, + { "px": [112,224], "src": [32,32], "f": 0, "t": 48, "d": [13,413], "a": 1 }, + { "px": [144,224], "src": [32,32], "f": 0, "t": 48, "d": [13,415], "a": 1 }, + { "px": [160,224], "src": [32,32], "f": 0, "t": 48, "d": [13,416], "a": 1 }, + { "px": [176,224], "src": [32,32], "f": 0, "t": 48, "d": [13,417], "a": 1 }, + { "px": [192,224], "src": [32,32], "f": 0, "t": 48, "d": [13,418], "a": 1 }, + { "px": [208,224], "src": [32,32], "f": 0, "t": 48, "d": [13,419], "a": 1 }, + { "px": [224,224], "src": [32,32], "f": 0, "t": 48, "d": [13,420], "a": 1 }, + { "px": [240,224], "src": [32,32], "f": 0, "t": 48, "d": [13,421], "a": 1 }, + { "px": [256,224], "src": [32,32], "f": 0, "t": 48, "d": [13,422], "a": 1 }, + { "px": [272,224], "src": [32,32], "f": 0, "t": 48, "d": [13,423], "a": 1 }, + { "px": [288,224], "src": [32,32], "f": 0, "t": 48, "d": [13,424], "a": 1 }, + { "px": [304,224], "src": [32,32], "f": 0, "t": 48, "d": [13,425], "a": 1 }, + { "px": [320,224], "src": [32,32], "f": 0, "t": 48, "d": [13,426], "a": 1 }, + { "px": [336,224], "src": [32,32], "f": 0, "t": 48, "d": [13,427], "a": 1 }, + { "px": [352,224], "src": [32,32], "f": 0, "t": 48, "d": [13,428], "a": 1 }, + { "px": [368,224], "src": [32,32], "f": 0, "t": 48, "d": [13,429], "a": 1 }, + { "px": [176,16], "src": [96,96], "f": 0, "t": 144, "d": [81,40], "a": 1 }, + { "px": [192,16], "src": [96,96], "f": 0, "t": 144, "d": [81,41], "a": 1 }, + { "px": [208,16], "src": [96,96], "f": 0, "t": 144, "d": [81,42], "a": 1 }, + { "px": [272,16], "src": [96,96], "f": 0, "t": 144, "d": [81,46], "a": 1 }, + { "px": [144,32], "src": [96,96], "f": 0, "t": 144, "d": [81,67], "a": 1 }, + { "px": [144,48], "src": [96,96], "f": 0, "t": 144, "d": [81,96], "a": 1 }, + { "px": [352,80], "src": [96,96], "f": 0, "t": 144, "d": [81,167], "a": 1 }, + { "px": [144,128], "src": [96,96], "f": 0, "t": 144, "d": [81,241], "a": 1 }, + { "px": [352,128], "src": [96,96], "f": 0, "t": 144, "d": [81,254], "a": 1 }, + { "px": [368,128], "src": [96,96], "f": 0, "t": 144, "d": [81,255], "a": 1 }, + { "px": [96,144], "src": [96,96], "f": 0, "t": 144, "d": [81,267], "a": 1 }, + { "px": [112,144], "src": [96,96], "f": 0, "t": 144, "d": [81,268], "a": 1 }, + { "px": [96,160], "src": [96,96], "f": 0, "t": 144, "d": [81,296], "a": 1 }, + { "px": [112,160], "src": [96,96], "f": 0, "t": 144, "d": [81,297], "a": 1 }, + { "px": [128,160], "src": [96,96], "f": 0, "t": 144, "d": [81,298], "a": 1 }, + { "px": [112,192], "src": [96,96], "f": 0, "t": 144, "d": [81,355], "a": 1 }, + { "px": [128,208], "src": [96,96], "f": 0, "t": 144, "d": [81,385], "a": 1 }, + { "px": [144,0], "src": [64,96], "f": 0, "t": 142, "d": [14,9], "a": 1 }, + { "px": [160,0], "src": [64,96], "f": 0, "t": 142, "d": [14,10], "a": 1 }, + { "px": [288,0], "src": [64,96], "f": 0, "t": 142, "d": [14,18], "a": 1 }, + { "px": [304,0], "src": [64,96], "f": 0, "t": 142, "d": [14,19], "a": 1 }, + { "px": [160,16], "src": [64,96], "f": 0, "t": 142, "d": [14,39], "a": 1 }, + { "px": [288,16], "src": [96,96], "f": 0, "t": 144, "d": [14,47], "a": 1 }, + { "px": [352,96], "src": [64,96], "f": 0, "t": 142, "d": [14,196], "a": 1 }, + { "px": [112,128], "src": [96,96], "f": 0, "t": 144, "d": [14,239], "a": 1 }, + { "px": [336,128], "src": [96,96], "f": 0, "t": 144, "d": [14,253], "a": 1 }, + { "px": [144,144], "src": [64,96], "f": 0, "t": 142, "d": [14,270], "a": 1 }, + { "px": [336,144], "src": [96,96], "f": 0, "t": 144, "d": [14,282], "a": 1 }, + { "px": [368,144], "src": [64,96], "f": 0, "t": 142, "d": [14,284], "a": 1 }, + { "px": [96,192], "src": [96,96], "f": 0, "t": 144, "d": [14,354], "a": 1 }, + { "px": [128,192], "src": [64,96], "f": 0, "t": 142, "d": [14,356], "a": 1 }, + { "px": [112,208], "src": [64,96], "f": 0, "t": 142, "d": [14,384], "a": 1 }, + { "px": [128,224], "src": [64,96], "f": 0, "t": 142, "d": [14,414], "a": 1 }, + { "px": [224,0], "src": [0,32], "f": 1, "t": 46, "d": [16,14], "a": 1 }, + { "px": [256,0], "src": [0,32], "f": 0, "t": 46, "d": [16,16], "a": 1 }, + { "px": [224,16], "src": [0,32], "f": 1, "t": 46, "d": [16,43], "a": 1 }, + { "px": [256,16], "src": [0,32], "f": 0, "t": 46, "d": [16,45], "a": 1 }, + { "px": [160,48], "src": [0,32], "f": 1, "t": 46, "d": [16,97], "a": 1 }, + { "px": [320,48], "src": [0,32], "f": 0, "t": 46, "d": [16,107], "a": 1 }, + { "px": [160,64], "src": [0,32], "f": 1, "t": 46, "d": [16,126], "a": 1 }, + { "px": [320,64], "src": [0,32], "f": 0, "t": 46, "d": [16,136], "a": 1 }, + { "px": [160,80], "src": [0,32], "f": 1, "t": 46, "d": [16,155], "a": 1 }, + { "px": [320,80], "src": [0,32], "f": 0, "t": 46, "d": [16,165], "a": 1 }, + { "px": [160,96], "src": [0,32], "f": 1, "t": 46, "d": [16,184], "a": 1 }, + { "px": [320,96], "src": [0,32], "f": 0, "t": 46, "d": [16,194], "a": 1 }, + { "px": [160,112], "src": [0,32], "f": 1, "t": 46, "d": [16,213], "a": 1 }, + { "px": [320,112], "src": [0,32], "f": 0, "t": 46, "d": [16,223], "a": 1 }, + { "px": [160,128], "src": [0,32], "f": 1, "t": 46, "d": [16,242], "a": 1 }, + { "px": [320,128], "src": [0,32], "f": 0, "t": 46, "d": [16,252], "a": 1 }, + { "px": [160,144], "src": [0,32], "f": 1, "t": 46, "d": [16,271], "a": 1 }, + { "px": [320,144], "src": [0,32], "f": 0, "t": 46, "d": [16,281], "a": 1 }, + { "px": [128,176], "src": [0,32], "f": 1, "t": 46, "d": [16,327], "a": 1 }, + { "px": [352,176], "src": [0,32], "f": 0, "t": 46, "d": [16,341], "a": 1 }, + { "px": [176,32], "src": [32,64], "f": 0, "t": 94, "d": [18,69], "a": 1 }, + { "px": [192,32], "src": [32,64], "f": 0, "t": 94, "d": [18,70], "a": 1 }, + { "px": [208,32], "src": [32,64], "f": 0, "t": 94, "d": [18,71], "a": 1 }, + { "px": [272,32], "src": [32,64], "f": 0, "t": 94, "d": [18,75], "a": 1 }, + { "px": [288,32], "src": [32,64], "f": 0, "t": 94, "d": [18,76], "a": 1 }, + { "px": [304,32], "src": [32,64], "f": 0, "t": 94, "d": [18,77], "a": 1 }, + { "px": [144,160], "src": [32,64], "f": 0, "t": 94, "d": [18,299], "a": 1 }, + { "px": [336,160], "src": [32,64], "f": 0, "t": 94, "d": [18,311], "a": 1 }, + { "px": [224,32], "src": [0,64], "f": 1, "t": 92, "d": [17,72], "a": 1 }, + { "px": [256,32], "src": [0,64], "f": 0, "t": 92, "d": [17,74], "a": 1 }, + { "px": [160,160], "src": [0,64], "f": 1, "t": 92, "d": [17,300], "a": 1 }, + { "px": [320,160], "src": [0,64], "f": 0, "t": 92, "d": [17,310], "a": 1 }, + { "px": [176,48], "src": [64,144], "f": 0, "t": 211, "d": [29,98], "a": 1 }, + { "px": [304,48], "src": [48,160], "f": 1, "t": 233, "d": [29,106], "a": 1 }, + { "px": [224,32], "src": [64,224], "f": 3, "t": 326, "d": [31,72], "a": 1 }, + { "px": [256,32], "src": [64,224], "f": 2, "t": 326, "d": [31,74], "a": 1 }, + { "px": [160,160], "src": [64,224], "f": 3, "t": 326, "d": [31,300], "a": 1 }, + { "px": [320,160], "src": [64,224], "f": 2, "t": 326, "d": [31,310], "a": 1 }, + { "px": [160,32], "src": [64,144], "f": 3, "t": 211, "d": [32,68], "a": 1 }, + { "px": [320,32], "src": [64,144], "f": 2, "t": 211, "d": [32,78], "a": 1 }, + { "px": [128,160], "src": [64,144], "f": 3, "t": 211, "d": [32,298], "a": 1 }, + { "px": [352,160], "src": [64,144], "f": 2, "t": 211, "d": [32,312], "a": 1 }, + { "px": [128,192], "src": [64,144], "f": 1, "t": 211, "d": [32,356], "a": 1 }, + { "px": [352,192], "src": [64,144], "f": 0, "t": 211, "d": [32,370], "a": 1 }, + { "px": [144,192], "src": [32,0], "f": 0, "t": 2, "d": [12,357], "a": 1 }, + { "px": [160,192], "src": [32,0], "f": 0, "t": 2, "d": [12,358], "a": 1 }, + { "px": [176,192], "src": [32,0], "f": 0, "t": 2, "d": [12,359], "a": 1 }, + { "px": [192,192], "src": [32,0], "f": 0, "t": 2, "d": [12,360], "a": 1 }, + { "px": [208,192], "src": [32,0], "f": 0, "t": 2, "d": [12,361], "a": 1 }, + { "px": [224,192], "src": [32,0], "f": 0, "t": 2, "d": [12,362], "a": 1 }, + { "px": [240,192], "src": [32,0], "f": 0, "t": 2, "d": [12,363], "a": 1 }, + { "px": [256,192], "src": [32,0], "f": 0, "t": 2, "d": [12,364], "a": 1 }, + { "px": [272,192], "src": [32,0], "f": 0, "t": 2, "d": [12,365], "a": 1 }, + { "px": [288,192], "src": [32,0], "f": 0, "t": 2, "d": [12,366], "a": 1 }, + { "px": [304,192], "src": [32,0], "f": 0, "t": 2, "d": [12,367], "a": 1 }, + { "px": [320,192], "src": [32,0], "f": 0, "t": 2, "d": [12,368], "a": 1 }, + { "px": [336,192], "src": [32,0], "f": 0, "t": 2, "d": [12,369], "a": 1 }, + { "px": [160,176], "src": [256,96], "f": 0, "t": 154, "d": [59,329], "a": 1 }, + { "px": [176,176], "src": [256,96], "f": 0, "t": 154, "d": [59,330], "a": 1 }, + { "px": [192,176], "src": [256,96], "f": 0, "t": 154, "d": [59,331], "a": 1 }, + { "px": [208,176], "src": [256,96], "f": 0, "t": 154, "d": [59,332], "a": 1 }, + { "px": [224,176], "src": [256,96], "f": 0, "t": 154, "d": [59,333], "a": 1 }, + { "px": [240,176], "src": [256,96], "f": 0, "t": 154, "d": [59,334], "a": 1 }, + { "px": [256,176], "src": [256,96], "f": 0, "t": 154, "d": [59,335], "a": 1 }, + { "px": [272,176], "src": [256,96], "f": 0, "t": 154, "d": [59,336], "a": 1 }, + { "px": [288,176], "src": [256,96], "f": 0, "t": 154, "d": [59,337], "a": 1 }, + { "px": [304,176], "src": [256,96], "f": 0, "t": 154, "d": [59,338], "a": 1 }, + { "px": [320,176], "src": [256,96], "f": 0, "t": 154, "d": [59,339], "a": 1 }, + { "px": [144,176], "src": [224,96], "f": 0, "t": 152, "d": [60,328], "a": 1 }, + { "px": [336,176], "src": [224,96], "f": 1, "t": 152, "d": [60,340], "a": 1 }, + { "px": [304,64], "src": [128,96], "f": 1, "t": 146, "d": [22,135], "a": 1 }, + { "px": [176,80], "src": [128,96], "f": 0, "t": 146, "d": [22,156], "a": 1 }, + { "px": [176,128], "src": [128,96], "f": 0, "t": 146, "d": [22,243], "a": 1 }, + { "px": [192,48], "src": [160,208], "f": 0, "t": 309, "d": [35,99], "a": 1 }, + { "px": [240,0], "src": [96,144], "f": 0, "t": 213, "d": [41,15], "a": 1 }, + { "px": [240,16], "src": [96,144], "f": 0, "t": 213, "d": [41,44], "a": 1 }, + { "px": [240,32], "src": [96,144], "f": 0, "t": 213, "d": [41,73], "a": 1 }, + { "px": [240,48], "src": [96,144], "f": 0, "t": 213, "d": [41,102], "a": 1 }, + { "px": [240,64], "src": [96,144], "f": 0, "t": 213, "d": [41,131], "a": 1 }, + { "px": [240,80], "src": [96,144], "f": 0, "t": 213, "d": [41,160], "a": 1 }, + { "px": [240,96], "src": [96,144], "f": 0, "t": 213, "d": [41,189], "a": 1 }, + { "px": [240,112], "src": [96,144], "f": 0, "t": 213, "d": [41,218], "a": 1 }, + { "px": [240,128], "src": [96,144], "f": 0, "t": 213, "d": [41,247], "a": 1 }, + { "px": [240,144], "src": [96,144], "f": 0, "t": 213, "d": [41,276], "a": 1 }, + { "px": [240,160], "src": [96,144], "f": 0, "t": 213, "d": [41,305], "a": 1 }, + { "px": [0,0], "src": [32,32], "f": 0, "t": 48, "d": [102,0], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [102,1], "a": 1 }, + { "px": [32,0], "src": [32,32], "f": 0, "t": 48, "d": [102,2], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [102,3], "a": 1 }, + { "px": [64,0], "src": [32,32], "f": 0, "t": 48, "d": [102,4], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [102,5], "a": 1 }, + { "px": [96,0], "src": [32,32], "f": 0, "t": 48, "d": [102,6], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [102,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [102,8], "a": 1 }, + { "px": [352,0], "src": [32,32], "f": 0, "t": 48, "d": [102,22], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [102,23], "a": 1 }, + { "px": [384,0], "src": [32,32], "f": 0, "t": 48, "d": [102,24], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [102,25], "a": 1 }, + { "px": [416,0], "src": [32,32], "f": 0, "t": 48, "d": [102,26], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [102,27], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [102,28], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [102,29], "a": 1 }, + { "px": [16,16], "src": [32,32], "f": 0, "t": 48, "d": [102,30], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [102,31], "a": 1 }, + { "px": [48,16], "src": [32,32], "f": 0, "t": 48, "d": [102,32], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [102,33], "a": 1 }, + { "px": [80,16], "src": [32,32], "f": 0, "t": 48, "d": [102,34], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [102,35], "a": 1 }, + { "px": [112,16], "src": [32,32], "f": 0, "t": 48, "d": [102,36], "a": 1 }, + { "px": [368,16], "src": [32,32], "f": 0, "t": 48, "d": [102,52], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [102,53], "a": 1 }, + { "px": [400,16], "src": [32,32], "f": 0, "t": 48, "d": [102,54], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [102,55], "a": 1 }, + { "px": [432,16], "src": [32,32], "f": 0, "t": 48, "d": [102,56], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [102,57], "a": 1 }, + { "px": [0,32], "src": [32,32], "f": 0, "t": 48, "d": [102,58], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [102,59], "a": 1 }, + { "px": [32,32], "src": [32,32], "f": 0, "t": 48, "d": [102,60], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [102,61], "a": 1 }, + { "px": [64,32], "src": [32,32], "f": 0, "t": 48, "d": [102,62], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [102,63], "a": 1 }, + { "px": [96,32], "src": [32,32], "f": 0, "t": 48, "d": [102,64], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [102,65], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [102,81], "a": 1 }, + { "px": [384,32], "src": [32,32], "f": 0, "t": 48, "d": [102,82], "a": 1 }, + { "px": [400,32], "src": [32,32], "f": 0, "t": 48, "d": [102,83], "a": 1 }, + { "px": [416,32], "src": [32,32], "f": 0, "t": 48, "d": [102,84], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [102,85], "a": 1 }, + { "px": [448,32], "src": [32,32], "f": 0, "t": 48, "d": [102,86], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [102,87], "a": 1 }, + { "px": [16,48], "src": [32,32], "f": 0, "t": 48, "d": [102,88], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [102,89], "a": 1 }, + { "px": [48,48], "src": [32,32], "f": 0, "t": 48, "d": [102,90], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [102,91], "a": 1 }, + { "px": [80,48], "src": [32,32], "f": 0, "t": 48, "d": [102,92], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [102,93], "a": 1 }, + { "px": [112,48], "src": [32,32], "f": 0, "t": 48, "d": [102,94], "a": 1 }, + { "px": [368,48], "src": [32,32], "f": 0, "t": 48, "d": [102,110], "a": 1 }, + { "px": [384,48], "src": [32,32], "f": 0, "t": 48, "d": [102,111], "a": 1 }, + { "px": [400,48], "src": [32,32], "f": 0, "t": 48, "d": [102,112], "a": 1 }, + { "px": [416,48], "src": [32,32], "f": 0, "t": 48, "d": [102,113], "a": 1 }, + { "px": [432,48], "src": [32,32], "f": 0, "t": 48, "d": [102,114], "a": 1 }, + { "px": [448,48], "src": [32,32], "f": 0, "t": 48, "d": [102,115], "a": 1 }, + { "px": [0,64], "src": [32,32], "f": 0, "t": 48, "d": [102,116], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [102,117], "a": 1 }, + { "px": [32,64], "src": [32,32], "f": 0, "t": 48, "d": [102,118], "a": 1 }, + { "px": [48,64], "src": [32,32], "f": 0, "t": 48, "d": [102,119], "a": 1 }, + { "px": [64,64], "src": [32,32], "f": 0, "t": 48, "d": [102,120], "a": 1 }, + { "px": [80,64], "src": [32,32], "f": 0, "t": 48, "d": [102,121], "a": 1 }, + { "px": [96,64], "src": [32,32], "f": 0, "t": 48, "d": [102,122], "a": 1 }, + { "px": [112,64], "src": [32,32], "f": 0, "t": 48, "d": [102,123], "a": 1 }, + { "px": [368,64], "src": [32,32], "f": 0, "t": 48, "d": [102,139], "a": 1 }, + { "px": [384,64], "src": [32,32], "f": 0, "t": 48, "d": [102,140], "a": 1 }, + { "px": [400,64], "src": [32,32], "f": 0, "t": 48, "d": [102,141], "a": 1 }, + { "px": [416,64], "src": [32,32], "f": 0, "t": 48, "d": [102,142], "a": 1 }, + { "px": [432,64], "src": [32,32], "f": 0, "t": 48, "d": [102,143], "a": 1 }, + { "px": [448,64], "src": [32,32], "f": 0, "t": 48, "d": [102,144], "a": 1 }, + { "px": [0,80], "src": [32,32], "f": 0, "t": 48, "d": [102,145], "a": 1 }, + { "px": [16,80], "src": [32,32], "f": 0, "t": 48, "d": [102,146], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [102,147], "a": 1 }, + { "px": [48,80], "src": [32,32], "f": 0, "t": 48, "d": [102,148], "a": 1 }, + { "px": [64,80], "src": [32,32], "f": 0, "t": 48, "d": [102,149], "a": 1 }, + { "px": [80,80], "src": [32,32], "f": 0, "t": 48, "d": [102,150], "a": 1 }, + { "px": [96,80], "src": [32,32], "f": 0, "t": 48, "d": [102,151], "a": 1 }, + { "px": [112,80], "src": [32,32], "f": 0, "t": 48, "d": [102,152], "a": 1 }, + { "px": [368,80], "src": [32,32], "f": 0, "t": 48, "d": [102,168], "a": 1 }, + { "px": [384,80], "src": [32,32], "f": 0, "t": 48, "d": [102,169], "a": 1 }, + { "px": [400,80], "src": [32,32], "f": 0, "t": 48, "d": [102,170], "a": 1 }, + { "px": [416,80], "src": [32,32], "f": 0, "t": 48, "d": [102,171], "a": 1 }, + { "px": [432,80], "src": [32,32], "f": 0, "t": 48, "d": [102,172], "a": 1 }, + { "px": [448,80], "src": [32,32], "f": 0, "t": 48, "d": [102,173], "a": 1 }, + { "px": [0,96], "src": [32,32], "f": 0, "t": 48, "d": [102,174], "a": 1 }, + { "px": [16,96], "src": [32,32], "f": 0, "t": 48, "d": [102,175], "a": 1 }, + { "px": [32,96], "src": [32,32], "f": 0, "t": 48, "d": [102,176], "a": 1 }, + { "px": [48,96], "src": [32,32], "f": 0, "t": 48, "d": [102,177], "a": 1 }, + { "px": [64,96], "src": [32,32], "f": 0, "t": 48, "d": [102,178], "a": 1 }, + { "px": [80,96], "src": [32,32], "f": 0, "t": 48, "d": [102,179], "a": 1 }, + { "px": [96,96], "src": [32,32], "f": 0, "t": 48, "d": [102,180], "a": 1 }, + { "px": [112,96], "src": [32,32], "f": 0, "t": 48, "d": [102,181], "a": 1 }, + { "px": [368,96], "src": [32,32], "f": 0, "t": 48, "d": [102,197], "a": 1 }, + { "px": [384,96], "src": [32,32], "f": 0, "t": 48, "d": [102,198], "a": 1 }, + { "px": [400,96], "src": [32,32], "f": 0, "t": 48, "d": [102,199], "a": 1 }, + { "px": [416,96], "src": [32,32], "f": 0, "t": 48, "d": [102,200], "a": 1 }, + { "px": [432,96], "src": [32,32], "f": 0, "t": 48, "d": [102,201], "a": 1 }, + { "px": [448,96], "src": [32,32], "f": 0, "t": 48, "d": [102,202], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [102,203], "a": 1 }, + { "px": [16,112], "src": [32,32], "f": 0, "t": 48, "d": [102,204], "a": 1 }, + { "px": [32,112], "src": [32,32], "f": 0, "t": 48, "d": [102,205], "a": 1 }, + { "px": [48,112], "src": [32,32], "f": 0, "t": 48, "d": [102,206], "a": 1 }, + { "px": [64,112], "src": [32,32], "f": 0, "t": 48, "d": [102,207], "a": 1 }, + { "px": [80,112], "src": [32,32], "f": 0, "t": 48, "d": [102,208], "a": 1 }, + { "px": [96,112], "src": [32,32], "f": 0, "t": 48, "d": [102,209], "a": 1 }, + { "px": [112,112], "src": [32,32], "f": 0, "t": 48, "d": [102,210], "a": 1 }, + { "px": [368,112], "src": [32,32], "f": 0, "t": 48, "d": [102,226], "a": 1 }, + { "px": [384,112], "src": [32,32], "f": 0, "t": 48, "d": [102,227], "a": 1 }, + { "px": [400,112], "src": [32,32], "f": 0, "t": 48, "d": [102,228], "a": 1 }, + { "px": [416,112], "src": [32,32], "f": 0, "t": 48, "d": [102,229], "a": 1 }, + { "px": [432,112], "src": [32,32], "f": 0, "t": 48, "d": [102,230], "a": 1 }, + { "px": [448,112], "src": [32,32], "f": 0, "t": 48, "d": [102,231], "a": 1 }, + { "px": [0,128], "src": [32,32], "f": 0, "t": 48, "d": [102,232], "a": 1 }, + { "px": [16,128], "src": [32,32], "f": 0, "t": 48, "d": [102,233], "a": 1 }, + { "px": [32,128], "src": [32,32], "f": 0, "t": 48, "d": [102,234], "a": 1 }, + { "px": [48,128], "src": [32,32], "f": 0, "t": 48, "d": [102,235], "a": 1 }, + { "px": [64,128], "src": [32,32], "f": 0, "t": 48, "d": [102,236], "a": 1 }, + { "px": [80,128], "src": [32,32], "f": 0, "t": 48, "d": [102,237], "a": 1 }, + { "px": [96,128], "src": [32,32], "f": 0, "t": 48, "d": [102,238], "a": 1 }, + { "px": [384,128], "src": [32,32], "f": 0, "t": 48, "d": [102,256], "a": 1 }, + { "px": [400,128], "src": [32,32], "f": 0, "t": 48, "d": [102,257], "a": 1 }, + { "px": [416,128], "src": [32,32], "f": 0, "t": 48, "d": [102,258], "a": 1 }, + { "px": [432,128], "src": [32,32], "f": 0, "t": 48, "d": [102,259], "a": 1 }, + { "px": [448,128], "src": [32,32], "f": 0, "t": 48, "d": [102,260], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [102,261], "a": 1 }, + { "px": [16,144], "src": [32,32], "f": 0, "t": 48, "d": [102,262], "a": 1 }, + { "px": [32,144], "src": [32,32], "f": 0, "t": 48, "d": [102,263], "a": 1 }, + { "px": [48,144], "src": [32,32], "f": 0, "t": 48, "d": [102,264], "a": 1 }, + { "px": [64,144], "src": [32,32], "f": 0, "t": 48, "d": [102,265], "a": 1 }, + { "px": [80,144], "src": [32,32], "f": 0, "t": 48, "d": [102,266], "a": 1 }, + { "px": [400,144], "src": [32,32], "f": 0, "t": 48, "d": [102,286], "a": 1 }, + { "px": [416,144], "src": [32,32], "f": 0, "t": 48, "d": [102,287], "a": 1 }, + { "px": [432,144], "src": [32,32], "f": 0, "t": 48, "d": [102,288], "a": 1 }, + { "px": [448,144], "src": [32,32], "f": 0, "t": 48, "d": [102,289], "a": 1 }, + { "px": [0,160], "src": [32,32], "f": 0, "t": 48, "d": [102,290], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [102,291], "a": 1 }, + { "px": [32,160], "src": [32,32], "f": 0, "t": 48, "d": [102,292], "a": 1 }, + { "px": [48,160], "src": [32,32], "f": 0, "t": 48, "d": [102,293], "a": 1 }, + { "px": [64,160], "src": [32,32], "f": 0, "t": 48, "d": [102,294], "a": 1 }, + { "px": [80,160], "src": [32,32], "f": 0, "t": 48, "d": [102,295], "a": 1 }, + { "px": [400,160], "src": [32,32], "f": 0, "t": 48, "d": [102,315], "a": 1 }, + { "px": [416,160], "src": [32,32], "f": 0, "t": 48, "d": [102,316], "a": 1 }, + { "px": [432,160], "src": [32,32], "f": 0, "t": 48, "d": [102,317], "a": 1 }, + { "px": [448,160], "src": [32,32], "f": 0, "t": 48, "d": [102,318], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [102,319], "a": 1 }, + { "px": [16,176], "src": [32,32], "f": 0, "t": 48, "d": [102,320], "a": 1 }, + { "px": [32,176], "src": [32,32], "f": 0, "t": 48, "d": [102,321], "a": 1 }, + { "px": [48,176], "src": [32,32], "f": 0, "t": 48, "d": [102,322], "a": 1 }, + { "px": [64,176], "src": [32,32], "f": 0, "t": 48, "d": [102,323], "a": 1 }, + { "px": [80,176], "src": [32,32], "f": 0, "t": 48, "d": [102,324], "a": 1 }, + { "px": [400,176], "src": [32,32], "f": 0, "t": 48, "d": [102,344], "a": 1 }, + { "px": [416,176], "src": [32,32], "f": 0, "t": 48, "d": [102,345], "a": 1 }, + { "px": [432,176], "src": [32,32], "f": 0, "t": 48, "d": [102,346], "a": 1 }, + { "px": [448,176], "src": [32,32], "f": 0, "t": 48, "d": [102,347], "a": 1 }, + { "px": [0,192], "src": [32,32], "f": 0, "t": 48, "d": [102,348], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [102,349], "a": 1 }, + { "px": [32,192], "src": [32,32], "f": 0, "t": 48, "d": [102,350], "a": 1 }, + { "px": [48,192], "src": [32,32], "f": 0, "t": 48, "d": [102,351], "a": 1 }, + { "px": [64,192], "src": [32,32], "f": 0, "t": 48, "d": [102,352], "a": 1 }, + { "px": [80,192], "src": [32,32], "f": 0, "t": 48, "d": [102,353], "a": 1 }, + { "px": [400,192], "src": [32,32], "f": 0, "t": 48, "d": [102,373], "a": 1 }, + { "px": [416,192], "src": [32,32], "f": 0, "t": 48, "d": [102,374], "a": 1 }, + { "px": [432,192], "src": [32,32], "f": 0, "t": 48, "d": [102,375], "a": 1 }, + { "px": [448,192], "src": [32,32], "f": 0, "t": 48, "d": [102,376], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [102,377], "a": 1 }, + { "px": [16,208], "src": [32,32], "f": 0, "t": 48, "d": [102,378], "a": 1 }, + { "px": [32,208], "src": [32,32], "f": 0, "t": 48, "d": [102,379], "a": 1 }, + { "px": [48,208], "src": [32,32], "f": 0, "t": 48, "d": [102,380], "a": 1 }, + { "px": [64,208], "src": [32,32], "f": 0, "t": 48, "d": [102,381], "a": 1 }, + { "px": [80,208], "src": [32,32], "f": 0, "t": 48, "d": [102,382], "a": 1 }, + { "px": [400,208], "src": [32,32], "f": 0, "t": 48, "d": [102,402], "a": 1 }, + { "px": [416,208], "src": [32,32], "f": 0, "t": 48, "d": [102,403], "a": 1 }, + { "px": [432,208], "src": [32,32], "f": 0, "t": 48, "d": [102,404], "a": 1 }, + { "px": [448,208], "src": [32,32], "f": 0, "t": 48, "d": [102,405], "a": 1 }, + { "px": [0,224], "src": [32,32], "f": 0, "t": 48, "d": [102,406], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [102,407], "a": 1 }, + { "px": [32,224], "src": [32,32], "f": 0, "t": 48, "d": [102,408], "a": 1 }, + { "px": [48,224], "src": [32,32], "f": 0, "t": 48, "d": [102,409], "a": 1 }, + { "px": [64,224], "src": [32,32], "f": 0, "t": 48, "d": [102,410], "a": 1 }, + { "px": [80,224], "src": [32,32], "f": 0, "t": 48, "d": [102,411], "a": 1 }, + { "px": [96,224], "src": [32,32], "f": 0, "t": 48, "d": [102,412], "a": 1 }, + { "px": [384,224], "src": [32,32], "f": 0, "t": 48, "d": [102,430], "a": 1 }, + { "px": [400,224], "src": [32,32], "f": 0, "t": 48, "d": [102,431], "a": 1 }, + { "px": [416,224], "src": [32,32], "f": 0, "t": 48, "d": [102,432], "a": 1 }, + { "px": [432,224], "src": [32,32], "f": 0, "t": 48, "d": [102,433], "a": 1 }, + { "px": [448,224], "src": [32,32], "f": 0, "t": 48, "d": [102,434], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [102,435], "a": 1 }, + { "px": [16,240], "src": [32,32], "f": 0, "t": 48, "d": [102,436], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [102,437], "a": 1 }, + { "px": [48,240], "src": [32,32], "f": 0, "t": 48, "d": [102,438], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [102,439], "a": 1 }, + { "px": [80,240], "src": [32,32], "f": 0, "t": 48, "d": [102,440], "a": 1 }, + { "px": [96,240], "src": [32,32], "f": 0, "t": 48, "d": [102,441], "a": 1 }, + { "px": [112,240], "src": [32,32], "f": 0, "t": 48, "d": [102,442], "a": 1 }, + { "px": [128,240], "src": [32,32], "f": 0, "t": 48, "d": [102,443], "a": 1 }, + { "px": [144,240], "src": [32,32], "f": 0, "t": 48, "d": [102,444], "a": 1 }, + { "px": [160,240], "src": [32,32], "f": 0, "t": 48, "d": [102,445], "a": 1 }, + { "px": [176,240], "src": [32,32], "f": 0, "t": 48, "d": [102,446], "a": 1 }, + { "px": [192,240], "src": [32,32], "f": 0, "t": 48, "d": [102,447], "a": 1 }, + { "px": [208,240], "src": [32,32], "f": 0, "t": 48, "d": [102,448], "a": 1 }, + { "px": [224,240], "src": [32,32], "f": 0, "t": 48, "d": [102,449], "a": 1 }, + { "px": [240,240], "src": [32,32], "f": 0, "t": 48, "d": [102,450], "a": 1 }, + { "px": [256,240], "src": [32,32], "f": 0, "t": 48, "d": [102,451], "a": 1 }, + { "px": [272,240], "src": [32,32], "f": 0, "t": 48, "d": [102,452], "a": 1 }, + { "px": [288,240], "src": [32,32], "f": 0, "t": 48, "d": [102,453], "a": 1 }, + { "px": [304,240], "src": [32,32], "f": 0, "t": 48, "d": [102,454], "a": 1 }, + { "px": [320,240], "src": [32,32], "f": 0, "t": 48, "d": [102,455], "a": 1 }, + { "px": [336,240], "src": [32,32], "f": 0, "t": 48, "d": [102,456], "a": 1 }, + { "px": [352,240], "src": [32,32], "f": 0, "t": 48, "d": [102,457], "a": 1 }, + { "px": [368,240], "src": [32,32], "f": 0, "t": 48, "d": [102,458], "a": 1 }, + { "px": [384,240], "src": [32,32], "f": 0, "t": 48, "d": [102,459], "a": 1 }, + { "px": [400,240], "src": [32,32], "f": 0, "t": 48, "d": [102,460], "a": 1 }, + { "px": [416,240], "src": [32,32], "f": 0, "t": 48, "d": [102,461], "a": 1 }, + { "px": [432,240], "src": [32,32], "f": 0, "t": 48, "d": [102,462], "a": 1 }, + { "px": [448,240], "src": [32,32], "f": 0, "t": 48, "d": [102,463], "a": 1 } + ], + "seed": 9049328, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Bg_textures", + "__type": "AutoLayer", + "__cWid": 29, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 2, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a317f600-66b0-11ec-9cd7-1fc5fd2d5a3f", + "levelId": 88, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [192,48], "src": [320,272], "f": 0, "t": 411, "d": [26,99], "a": 1 }, + { "px": [208,48], "src": [320,272], "f": 0, "t": 411, "d": [26,100], "a": 1 }, + { "px": [272,48], "src": [320,272], "f": 0, "t": 411, "d": [26,104], "a": 1 }, + { "px": [192,64], "src": [320,272], "f": 0, "t": 411, "d": [26,128], "a": 1 }, + { "px": [208,64], "src": [320,272], "f": 0, "t": 411, "d": [26,129], "a": 1 }, + { "px": [272,64], "src": [320,272], "f": 0, "t": 411, "d": [26,133], "a": 1 }, + { "px": [288,64], "src": [320,272], "f": 0, "t": 411, "d": [26,134], "a": 1 }, + { "px": [192,80], "src": [320,272], "f": 0, "t": 411, "d": [26,157], "a": 1 }, + { "px": [208,80], "src": [320,272], "f": 0, "t": 411, "d": [26,158], "a": 1 }, + { "px": [272,80], "src": [320,272], "f": 0, "t": 411, "d": [26,162], "a": 1 }, + { "px": [288,80], "src": [320,272], "f": 0, "t": 411, "d": [26,163], "a": 1 }, + { "px": [192,96], "src": [320,272], "f": 0, "t": 411, "d": [26,186], "a": 1 }, + { "px": [208,96], "src": [320,272], "f": 0, "t": 411, "d": [26,187], "a": 1 }, + { "px": [272,96], "src": [320,272], "f": 0, "t": 411, "d": [26,191], "a": 1 }, + { "px": [288,96], "src": [320,272], "f": 0, "t": 411, "d": [26,192], "a": 1 }, + { "px": [192,112], "src": [320,272], "f": 0, "t": 411, "d": [26,215], "a": 1 }, + { "px": [208,112], "src": [320,272], "f": 0, "t": 411, "d": [26,216], "a": 1 }, + { "px": [272,112], "src": [320,272], "f": 0, "t": 411, "d": [26,220], "a": 1 }, + { "px": [288,112], "src": [320,272], "f": 0, "t": 411, "d": [26,221], "a": 1 }, + { "px": [192,128], "src": [320,272], "f": 0, "t": 411, "d": [26,244], "a": 1 }, + { "px": [208,128], "src": [320,272], "f": 0, "t": 411, "d": [26,245], "a": 1 }, + { "px": [272,128], "src": [320,272], "f": 0, "t": 411, "d": [26,249], "a": 1 }, + { "px": [288,128], "src": [320,272], "f": 0, "t": 411, "d": [26,250], "a": 1 }, + { "px": [192,144], "src": [320,272], "f": 0, "t": 411, "d": [26,273], "a": 1 }, + { "px": [208,144], "src": [320,272], "f": 0, "t": 411, "d": [26,274], "a": 1 }, + { "px": [272,144], "src": [320,272], "f": 0, "t": 411, "d": [26,278], "a": 1 }, + { "px": [288,144], "src": [320,272], "f": 0, "t": 411, "d": [26,279], "a": 1 }, + { "px": [272,160], "src": [320,272], "f": 0, "t": 411, "d": [26,307], "a": 1 }, + { "px": [224,48], "src": [288,240], "f": 1, "t": 363, "d": [37,101], "a": 1 }, + { "px": [176,64], "src": [288,240], "f": 0, "t": 363, "d": [37,127], "a": 1 }, + { "px": [224,64], "src": [288,240], "f": 1, "t": 363, "d": [37,130], "a": 1 }, + { "px": [256,64], "src": [288,240], "f": 0, "t": 363, "d": [37,132], "a": 1 }, + { "px": [304,64], "src": [288,240], "f": 1, "t": 363, "d": [37,135], "a": 1 }, + { "px": [176,80], "src": [288,240], "f": 0, "t": 363, "d": [37,156], "a": 1 }, + { "px": [224,80], "src": [288,240], "f": 1, "t": 363, "d": [37,159], "a": 1 }, + { "px": [256,80], "src": [288,240], "f": 0, "t": 363, "d": [37,161], "a": 1 }, + { "px": [304,80], "src": [288,240], "f": 1, "t": 363, "d": [37,164], "a": 1 }, + { "px": [176,96], "src": [288,240], "f": 0, "t": 363, "d": [37,185], "a": 1 }, + { "px": [224,96], "src": [288,240], "f": 1, "t": 363, "d": [37,188], "a": 1 }, + { "px": [256,96], "src": [288,240], "f": 0, "t": 363, "d": [37,190], "a": 1 }, + { "px": [304,96], "src": [288,240], "f": 1, "t": 363, "d": [37,193], "a": 1 }, + { "px": [176,112], "src": [288,240], "f": 0, "t": 363, "d": [37,214], "a": 1 }, + { "px": [224,112], "src": [288,240], "f": 1, "t": 363, "d": [37,217], "a": 1 }, + { "px": [256,112], "src": [288,240], "f": 0, "t": 363, "d": [37,219], "a": 1 }, + { "px": [304,112], "src": [288,240], "f": 1, "t": 363, "d": [37,222], "a": 1 }, + { "px": [176,128], "src": [288,240], "f": 0, "t": 363, "d": [37,243], "a": 1 }, + { "px": [224,128], "src": [288,240], "f": 1, "t": 363, "d": [37,246], "a": 1 }, + { "px": [256,128], "src": [288,240], "f": 0, "t": 363, "d": [37,248], "a": 1 }, + { "px": [304,128], "src": [288,240], "f": 1, "t": 363, "d": [37,251], "a": 1 }, + { "px": [176,144], "src": [288,240], "f": 0, "t": 363, "d": [37,272], "a": 1 }, + { "px": [224,144], "src": [288,240], "f": 1, "t": 363, "d": [37,275], "a": 1 }, + { "px": [256,144], "src": [288,240], "f": 0, "t": 363, "d": [37,277], "a": 1 }, + { "px": [304,144], "src": [288,240], "f": 1, "t": 363, "d": [37,280], "a": 1 }, + { "px": [256,160], "src": [288,240], "f": 0, "t": 363, "d": [37,306], "a": 1 }, + { "px": [304,160], "src": [288,240], "f": 1, "t": 363, "d": [37,309], "a": 1 }, + { "px": [288,48], "src": [288,272], "f": 2, "t": 409, "d": [38,105], "a": 1 }, + { "px": [208,160], "src": [288,272], "f": 0, "t": 409, "d": [38,303], "a": 1 }, + { "px": [224,160], "src": [288,272], "f": 0, "t": 409, "d": [38,304], "a": 1 }, + { "px": [208,64], "src": [128,304], "f": 3, "t": 445, "d": [71,98], "a": 1 }, + { "px": [208,48], "src": [128,320], "f": 3, "t": 468, "d": [71,98], "a": 1 }, + { "px": [192,64], "src": [144,304], "f": 3, "t": 446, "d": [71,98], "a": 1 }, + { "px": [192,48], "src": [144,320], "f": 3, "t": 469, "d": [71,98], "a": 1 }, + { "px": [176,64], "src": [160,304], "f": 3, "t": 447, "d": [71,98], "a": 1 }, + { "px": [176,48], "src": [160,320], "f": 3, "t": 470, "d": [71,98], "a": 1 }, + { "px": [272,64], "src": [128,304], "f": 2, "t": 445, "d": [71,106], "a": 1 }, + { "px": [272,48], "src": [128,320], "f": 2, "t": 468, "d": [71,106], "a": 1 }, + { "px": [288,64], "src": [144,304], "f": 2, "t": 446, "d": [71,106], "a": 1 }, + { "px": [288,48], "src": [144,320], "f": 2, "t": 469, "d": [71,106], "a": 1 }, + { "px": [304,64], "src": [160,304], "f": 2, "t": 447, "d": [71,106], "a": 1 }, + { "px": [304,48], "src": [160,320], "f": 2, "t": 470, "d": [71,106], "a": 1 }, + { "px": [256,48], "src": [128,320], "f": 3, "t": 468, "d": [65,103], "a": 1 }, + { "px": [176,160], "src": [144,304], "f": 1, "t": 446, "d": [65,301], "a": 1 }, + { "px": [184,128], "src": [208,240], "f": 0, "t": 358, "d": [72,302], "a": 1 }, + { "px": [184,144], "src": [208,256], "f": 0, "t": 381, "d": [72,302], "a": 1 }, + { "px": [184,160], "src": [208,272], "f": 0, "t": 404, "d": [72,302], "a": 1 }, + { "px": [200,128], "src": [224,240], "f": 0, "t": 359, "d": [72,302], "a": 1 }, + { "px": [200,144], "src": [224,256], "f": 0, "t": 382, "d": [72,302], "a": 1 }, + { "px": [200,160], "src": [224,272], "f": 0, "t": 405, "d": [72,302], "a": 1 }, + { "px": [280,128], "src": [208,240], "f": 0, "t": 358, "d": [72,308], "a": 1 }, + { "px": [280,144], "src": [208,256], "f": 0, "t": 381, "d": [72,308], "a": 1 }, + { "px": [280,160], "src": [208,272], "f": 0, "t": 404, "d": [72,308], "a": 1 }, + { "px": [296,128], "src": [224,240], "f": 0, "t": 359, "d": [72,308], "a": 1 }, + { "px": [296,144], "src": [224,256], "f": 0, "t": 382, "d": [72,308], "a": 1 }, + { "px": [296,160], "src": [224,272], "f": 0, "t": 405, "d": [72,308], "a": 1 } + ], + "seed": 4160648, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [{ "levelIid": "a315ac10-66b0-11ec-9cd7-99f223ad6ade", "dir": "n" }] + } + ], + "worlds": [], + "dummyWorldIid": "c9c92e80-c640-11ed-ad34-c59cb14ce5ef" +} \ No newline at end of file diff --git a/dependencies/pocketpy/benchmarks/res/WorldMap_Free_layout.ldtk b/dependencies/pocketpy/benchmarks/res/WorldMap_Free_layout.ldtk new file mode 100644 index 0000000..602ae98 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/res/WorldMap_Free_layout.ldtk @@ -0,0 +1,14948 @@ +{ + "__header__": { + "fileType": "LDtk Project JSON", + "app": "LDtk", + "doc": "https://ldtk.io/json", + "schema": "https://ldtk.io/files/JSON_SCHEMA.json", + "appAuthor": "Sebastien 'deepnight' Benard", + "appVersion": "1.3.3", + "url": "https://ldtk.io" + }, + "iid": "a3619740-7820-11ed-b6fd-4b64aa0352a1", + "jsonVersion": "1.3.3", + "appBuildId": 467696, + "nextUid": 125, + "identifierStyle": "Capitalize", + "toc": [], + "worldLayout": "Free", + "worldGridWidth": 256, + "worldGridHeight": 256, + "defaultLevelWidth": 256, + "defaultLevelHeight": 256, + "defaultPivotX": 0, + "defaultPivotY": 0, + "defaultGridSize": 16, + "bgColor": "#37494E", + "defaultLevelBgColor": "#37494E", + "minifyJson": false, + "externalLevels": false, + "exportTiled": false, + "simplifiedExport": false, + "imageExportMode": "None", + "exportLevelBg": true, + "pngFilePattern": null, + "backupOnSave": false, + "backupLimit": 10, + "backupRelPath": null, + "levelNamePattern": "%world_Level_%idx", + "tutorialDesc": "In \"Free\" world layout, levels are positionned freely in the 2D space.\n\nIn this example, some are even in different world layers (ie. above and behind). Use [PAGE UP] and [PAGE DOWN] to move between world layers.", + "customCommands": [], + "flags": ["UseMultilinesType"], + "defs": { "layers": [ + { + "__type": "Entities", + "identifier": "Entities", + "type": "Entities", + "uid": 119, + "doc": null, + "uiColor": "#0099DB", + "gridSize": 16, + "guideGridWid": 0, + "guideGridHei": 0, + "displayOpacity": 1, + "inactiveOpacity": 1, + "hideInList": false, + "hideFieldsWhenInactive": false, + "canSelectWhenInactive": true, + "renderInWorldView": true, + "pxOffsetX": 0, + "pxOffsetY": 0, + "parallaxFactorX": 0, + "parallaxFactorY": 0, + "parallaxScaling": true, + "requiredTags": [], + "excludedTags": [], + "intGridValues": [], + "autoRuleGroups": [], + "autoSourceLayerDefUid": null, + "tilesetDefUid": null, + "tilePivotX": 0, + "tilePivotY": 0 + }, + { + "__type": "IntGrid", + "identifier": "Collisions", + "type": "IntGrid", + "uid": 1, + "doc": null, + "uiColor": "#E4A672", + "gridSize": 16, + "guideGridWid": 0, + "guideGridHei": 0, + "displayOpacity": 1, + "inactiveOpacity": 1, + "hideInList": false, + "hideFieldsWhenInactive": true, + "canSelectWhenInactive": true, + "renderInWorldView": true, + "pxOffsetX": 0, + "pxOffsetY": 0, + "parallaxFactorX": 0, + "parallaxFactorY": 0, + "parallaxScaling": true, + "requiredTags": [], + "excludedTags": [], + "intGridValues": [ { "value": 1, "identifier": "walls", "color": "#B1824C", "tile": { "tilesetUid": 73, "x": 16, "y": 96, "w": 16, "h": 16 } }, { "value": 2, "identifier": "water", "color": "#7297E5", "tile": { "tilesetUid": 73, "x": 16, "y": 224, "w": 16, "h": 16 } } ], + "autoRuleGroups": [ + { "uid": 107, "name": "Wall inner shadows", "active": true, "isOptional": false, "rules": [ + { + "uid": 109, + "active": true, + "size": 3, + "tileIds": [449], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,0,0,0,1,1,0,1,-1], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": 1, + "perlinActive": false, + "perlinSeed": 9280218, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 108, + "active": true, + "size": 3, + "tileIds": [413], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [1,1,1,1,1,1,1,1,1], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": 1, + "perlinActive": false, + "perlinSeed": 4994688, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 103, "name": "Deep walls", "active": true, "isOptional": false, "rules": [ + { + "uid": 104, + "active": true, + "size": 5, + "tileIds": [479,480,481], + "alpha": 1, + "chance": 0.65, + "breakOnMatch": false, + "pattern": [0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": 1, + "perlinActive": false, + "perlinSeed": 1007716, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 92, "name": "Grass", "active": true, "isOptional": false, "rules": [ + { + "uid": 101, + "active": true, + "size": 3, + "tileIds": [223,224], + "alpha": 1, + "chance": 0.91, + "breakOnMatch": false, + "pattern": [0,1,0,0,-1,0,0,0,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 4603981, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 93, + "active": true, + "size": 3, + "tileIds": [186,222,187,223,188,224], + "alpha": 1, + "chance": 0.47, + "breakOnMatch": false, + "pattern": [0,1,0,0,-1000001,0,0,0,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 8090250, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 94, "name": "Rock details", "active": true, "isOptional": false, "rules": [ + { + "uid": 98, + "active": true, + "size": 3, + "tileIds": [256,292], + "alpha": 1, + "chance": 0.74, + "breakOnMatch": false, + "pattern": [0,0,0,1,-1,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 8817605, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 97, + "active": true, + "size": 3, + "tileIds": [180,181,182,183,259,260,261], + "alpha": 1, + "chance": 0.86, + "breakOnMatch": false, + "pattern": [0,0,0,0,-1,0,0,1,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 2, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 7501077, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 96, + "active": true, + "size": 3, + "tileIds": [329,365], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,0,0,1,-1,0,0,1,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 7159673, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 95, + "active": true, + "size": 3, + "tileIds": [257,293], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,1,0,1,-1,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 105259, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 20, "name": "Water", "active": true, "isOptional": false, "rules": [ + { + "uid": 99, + "active": true, + "size": 3, + "tileIds": [118,119,120,121], + "alpha": 1, + "chance": 0.5, + "breakOnMatch": false, + "pattern": [0,0,0,0,2,0,0,1,0], + "flipX": false, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": -2, + "tileRandomXMax": 2, + "tileRandomYMin": 0, + "tileRandomYMax": 1, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 9022310, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 111, + "active": true, + "size": 3, + "tileIds": [118,119,120,121], + "alpha": 1, + "chance": 0.79, + "breakOnMatch": false, + "pattern": [0,0,0,0,2,0,0,1,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 9022310, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 21, + "active": true, + "size": 3, + "tileIds": [468,469,470], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,0,0,0,-1000001,0,0,2,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 1, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 9172841, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 74, + "active": true, + "size": 1, + "tileIds": [505,541,506,542], + "alpha": 1, + "chance": 0.73, + "breakOnMatch": true, + "pattern": [2], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 3498434, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 28, + "active": true, + "size": 1, + "tileIds": [504], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [2], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 1564563, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 7, "name": "Walls", "active": true, "isOptional": false, "rules": [ + { + "uid": 14, + "active": true, + "size": 3, + "tileIds": [328], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,1,-1,0,1,1,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 2090192, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 76, + "active": true, + "size": 3, + "tileIds": [327], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,0,0,0,1,1,0,1,-1], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 2090192, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 11, + "active": true, + "size": 3, + "tileIds": [216], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,-1,0,-1,1,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 8016084, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 77, + "active": true, + "size": 3, + "tileIds": [324], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,0,-1,1,0,0,-1,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 8016084, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 10, + "active": true, + "size": 3, + "tileIds": [252,288], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,0,0,-1,1,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": -2, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 2534202, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 9, + "active": true, + "size": 3, + "tileIds": [217,219,220], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,-1,0,0,1,0,0,0,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 1741728, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 75, + "active": true, + "size": 3, + "tileIds": [325,326], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,0,0,0,1,0,0,-1,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 1, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 1741728, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 84, + "active": true, + "size": 3, + "tileIds": [441,442,443,444], + "alpha": 1, + "chance": 0.77, + "breakOnMatch": true, + "pattern": [1,1,1,1,1,1,1,1,1], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": 1, + "perlinActive": true, + "perlinSeed": 9934803, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 8, + "active": true, + "size": 1, + "tileIds": [37,73], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [1], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 3433071, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false } + ], + "autoSourceLayerDefUid": null, + "tilesetDefUid": 73, + "tilePivotX": 0, + "tilePivotY": 0 + }, + { + "__type": "AutoLayer", + "identifier": "Background", + "type": "AutoLayer", + "uid": 48, + "doc": null, + "uiColor": "#5A6988", + "gridSize": 16, + "guideGridWid": 0, + "guideGridHei": 0, + "displayOpacity": 1, + "inactiveOpacity": 1, + "hideInList": false, + "hideFieldsWhenInactive": true, + "canSelectWhenInactive": true, + "renderInWorldView": true, + "pxOffsetX": 0, + "pxOffsetY": 0, + "parallaxFactorX": 0, + "parallaxFactorY": 0, + "parallaxScaling": true, + "requiredTags": [], + "excludedTags": [], + "intGridValues": [], + "autoRuleGroups": [ + { "uid": 87, "name": "Wall shadows", "active": true, "isOptional": false, "rules": [ + { + "uid": 88, + "active": true, + "size": 3, + "tileIds": [410], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,1,0,0,-1,0,0,0,0], + "flipX": false, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 7551701, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 89, + "active": true, + "size": 3, + "tileIds": [409], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,0,0,1,-1,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 7551701, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 91, + "active": true, + "size": 3, + "tileIds": [411], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [1,-1,0,-1,-1,0,0,0,0], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 188103, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 49, "name": "Bg walls", "active": true, "isOptional": false, "rules": [ + { + "uid": 70, + "active": true, + "size": 1, + "tileIds": [478], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [-1000001], + "flipX": false, + "flipY": false, + "xModulo": 4, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 36844, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 102, + "active": true, + "size": 1, + "tileIds": [432,433,434], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [-1], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 9398141, + "perlinScale": 0.32, + "perlinOctaves": 2 + }, + { + "uid": 85, + "active": true, + "size": 1, + "tileIds": [438,439,440], + "alpha": 1, + "chance": 0.71, + "breakOnMatch": true, + "pattern": [-1000001], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 3394602, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 51, + "active": true, + "size": 1, + "tileIds": [435,436,437], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [-1], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 3407168, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false } + ], + "autoSourceLayerDefUid": 1, + "tilesetDefUid": 73, + "tilePivotX": 0, + "tilePivotY": 0 + } + ], "entities": [ + { + "identifier": "Plant", + "uid": 116, + "tags": [], + "exportToToc": false, + "doc": null, + "width": 20, + "height": 20, + "resizableX": false, + "resizableY": false, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": false, + "tileOpacity": 1, + "fillOpacity": 0.34, + "lineOpacity": 0.77, + "hollow": false, + "color": "#9FFF00", + "renderMode": "Tile", + "showName": false, + "tilesetId": 117, + "tileRenderMode": "FitInside", + "tileRect": { "tilesetUid": 117, "x": 0, "y": 288, "w": 16, "h": 16 }, + "nineSliceBorders": [], + "maxCount": 0, + "limitScope": "PerLevel", + "limitBehavior": "MoveLastOne", + "pivotX": 0.5, + "pivotY": 1, + "fieldDefs": [ + { + "identifier": "plantType", + "doc": null, + "__type": "LocalEnum.Plants", + "uid": 121, + "type": "F_Enum(120)", + "isArray": false, + "canBeNull": false, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "EntityTile", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "StraightArrow", + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": null, + "useForSmartColor": false, + "min": null, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": null, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + }, + { + "identifier": "count", + "doc": null, + "__type": "Int", + "uid": 122, + "type": "F_Int", + "isArray": false, + "canBeNull": false, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "ValueOnly", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "StraightArrow", + "editorAlwaysShow": true, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": "x", + "useForSmartColor": false, + "min": 1, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": { "id": "V_Int", "params": [1] }, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + } + ] + }, + { + "identifier": "Door", + "uid": 123, + "tags": [], + "exportToToc": false, + "doc": null, + "width": 16, + "height": 16, + "resizableX": false, + "resizableY": false, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": false, + "tileOpacity": 1, + "fillOpacity": 0.26, + "lineOpacity": 0.14, + "hollow": false, + "color": "#00FF30", + "renderMode": "Tile", + "showName": true, + "tilesetId": 117, + "tileRenderMode": "FitInside", + "tileRect": { "tilesetUid": 117, "x": 160, "y": 32, "w": 16, "h": 16 }, + "nineSliceBorders": [], + "maxCount": 0, + "limitScope": "PerLevel", + "limitBehavior": "MoveLastOne", + "pivotX": 0.5, + "pivotY": 1, + "fieldDefs": [ + { + "identifier": "link", + "doc": null, + "__type": "EntityRef", + "uid": 124, + "type": "F_EntityRef", + "isArray": false, + "canBeNull": true, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "RefLinkBetweenCenters", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "CurvedArrow", + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": null, + "useForSmartColor": false, + "min": null, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": null, + "textLanguageMode": null, + "symmetricalRef": true, + "autoChainRef": true, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + } + ] + } + ], "tilesets": [ + { + "__cWid": 23, + "__cHei": 21, + "identifier": "SunnyLand_by_Ansimuz", + "uid": 6, + "relPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "embedAtlas": null, + "pxWid": 368, + "pxHei": 336, + "tileGridSize": 16, + "spacing": 0, + "padding": 0, + "tags": [], + "tagsSourceEnumUid": null, + "enumTags": [], + "customData": [], + "savedSelections": [], + "cachedPixelData": { + "opaqueTiles": "101010100010110110000000000000000001101101101110101010001000000000000000000000000010100000001010101000000101000101000000000000000000000000000010100000001010100000000000000000000000000000000000000000101010000010100100000000000000000000000000000010101010000000000000000000000100000000101010100000000000000001010100000100000001010000100000000000000010100000010011011100000101000000100110000000011011000011101101010100000000000000000000000001011000011101110100000000110000111011100000000", + "averageColors": "f9850000f9850000f9850000fa65000069557a65f8450000f644f9650000f965f644000049b5c9950000c99549b5000000000000000000000000000000000000000000000000f955f7450000f745f9550000f865f7450000f745f865f9550000f6450000f9550000f845695500006955f8450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8550000f85500000000000079a5000079a50000f9550000f8550000f9550000f8457a6569550000ab8500000000f8550000f855000000000000f7550000f75500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077a5000078b50000f8450000f7450000947400009474000000000000fa650000f9550000fa6500002000000000000000459534953595000000000000000000000000000000000000000000000000000000000000000020006000000000000000000000000000000000000000000000000000000088550000f9550000f6450000f9550000900000000000a955f8450000f845a9550000f85500000000ca65b9650000000000000000000000000000000000000000000000000000a9550000a9550000000000000000000000000000000000000000fa650000f9550000fa650000f4880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f47700000000000000000000000000000000f7450000f8550000f8550000f8550000000000000000000000000000000000000000000000000000000000000000f3440000f3450000f534000000000000e9950000f9950000e9950000000000000000b855f5340000f534b855000000000000f334000000000000000000000000000000000000000000000000000000000000f7440000f744000000000000000000000000f43500000000f435f4350000f334f436f3350000000000000000b955f5340000f534b95500000000000000000000f34500000000f335f33500000000000000000000000000000000f744f3340000f334f7440000000000000000f344f345f3440000f335f3350000f5340000f4350000f3340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa650000f955f9550000000000000000f334f335f3450000f345f335f3340000f75500000000000000000000000000000000f955f9550000000000000000f335f344f3440000f344f344f33500000000000000000000000000000000" + } + }, + { + "__cWid": 36, + "__cHei": 34, + "identifier": "NuclearBlaze_by_deepnight", + "uid": 73, + "relPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "embedAtlas": null, + "pxWid": 576, + "pxHei": 544, + "tileGridSize": 16, + "spacing": 0, + "padding": 0, + "tags": [], + "tagsSourceEnumUid": null, + "enumTags": [], + "customData": [], + "savedSelections": [], + "cachedPixelData": { + "opaqueTiles": "111100111000000011100000000000000000111000110000000011000000000000000000111100110000000011000000000000000000100000110000000010000000000000000000111000000000000000000000000000000000000000000000000000000000000000000000111110000000000000000000000000000000111000000000000000000000000000000000111100011000000000000000000000000000111000000000000000000000000000000000000000000000000000000000000000000000111111111111100010000000000000000000111111111111100000000000000000000000000111111111110000000000000000000000111111100000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "averageColors": "f823f624f823f92300000000f186f166f196000025d616d615d6000000000000f589f468f46800000000000000000000000000000000000000000000000000000000000000000000f624f025f823000000000000f166f0252196000061a661a60000000000000000f257f025000000000000000000000000000000000000000000000000000000000000000000000000f624f025f823f92300000000f166f0254196419614d713d726d625d624d623d7f257f025000000000000000000000000000000000000000000000000000000000000000000000000f62428124812481258120000f186f17600000000506650663066406600000000f2683468000000000000000000000000000000000000000000000000000000000000000000000000f724f624f62448120000000021b731b811b721b821b700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b532b632b632b6300000000119611961186000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f844f745f844f645f6450000118611761186000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f745f025f84400002b5377857a5449444944594477440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f744f025f665f7552a637985a844f844f744384268440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f765f156f166365528347c63984400000000000058440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000226631762176517600007b63000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f122f123f123f123f123f112f123f123f124f123f123f123f124811181114111f1117111000000000000000000000000000000000000000000000000000000000000000000000000f112f112f112f112f112f112f112f112f112f025f025f025f02531113111000000002111000000000000000000000000000000000000000000000000000000000000000000000000326832683258f132f132f132f122f122f122f112f112f026f026f0260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f247f247f247f125f125f024f024000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f247f247000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "__cWid": 32, + "__cHei": 64, + "identifier": "Internal_Icons", + "uid": 117, + "relPath": null, + "embedAtlas": "LdtkIcons", + "pxWid": 512, + "pxHei": 1024, + "tileGridSize": 16, + "spacing": 0, + "padding": 0, + "tags": [], + "tagsSourceEnumUid": null, + "enumTags": [], + "customData": [], + "savedSelections": [], + "cachedPixelData": { + "opaqueTiles": "00000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "averageColors": "00004b344233459b423349a959a9379c688769758ca4bc9489aab9aa58cc58bc42d74d2244ce428f4c7e4fb34abb45564ffe7dda78880000000000000000000069a969a97a99999999989a85998699767a7579667ccc7ccc7bcb7caa7ccc7ccc22d72d2224ce228f2c7e2fb32abb25562ffe000000000000000000000000000059764b97599868ac679a69ab4a84477756787688475347532a932a934a837a83f2b6fb22f3acf15afa6cfc93f899f334fccc000000000000000000000000000059aa49aa59996999699969aa489949995999799a499949992999299948997889a385a823a379a248a749a864a667a223a8880000000000000000000000000000189919991999199939994778166727772889289948993aaa389949a959a959a932b63b2233ad315a395c3c83389933343ccc00000000000000000000000000008aaa8aaa8aaa8aaa8aaa7bbb8aaa7bbb8bcb7aaa8bcb7bcb69aa8aaa8aaa69aa6abb6abb6abb6abb6a226a226a226a2261a661a661a661a600000000000000006c526c426c926c91659b649c66a566a46a7b6a7b667766776aba6abb676367636b746b746b746b74616c616c616c616c8abb8abb8abb8abb00000000000000006ba5579a6689598658875cb66abb9aa989aa98ac7abc6678968a88877c87cba952755823536952475648586354455223599900000000000000000000000000003ec63da76db79dc7554885498969b4377fa29e8289cdb9ce5ade5ade49ce49ce82a68a22839b8259885b8b73855683238aab00000000000000000000000000005d745d867da87e75448c458b86ad76ae68ac679c779b78ce3c9378867ca6adb784858933847a844788498963854584348989000000000000000000000000000057a668b899b8449396534493858364836853697769436667755667776c73498800000000000000000000000000000000000000000000000000000000000000006bba79b87d9679ad776a7b988abc8abc4aceaace4bba4bba6b8c4c9c4cac5b7c000000000000000000000000000000000000000000000000000000000000000059aaada7a9bdcdbd59aaada7a9bdcdbd8cb8a9b98ac889b8aabaacc79ea498bd000000000000000000000000000000000000000000000000000000000000000057ac596b55946abb5abb8ca65d8677ac437b5a3368886934547a595897a57b230000000000000000000000000000000000000000000000000000000000000000799a5c817b9b3a886abb8464676a7a967a857a857977898889882a954a956b950000000000000000000000000000000000000000000000000000000000000000499977997868799579875a6465995a8957a66a735ba53a935969479a576a467700000000000000000000000000000000000000000000000000000000000000005744985596659b747a659a76768a7a5676754777388735665976987794459465000000000000000000000000000000000000000000000000000000000000000088668a66868a9b8577666a4467846987778a7789797a87888b8676667a767ca50000000000000000000000000000000000000000000000000000000000000000449374934c957c9574847a438475a3958695768565956853b9447a777493a493000000000000000000000000000000000000000000000000000000000000000079547a838394689a49547a6357636975786383848997b384655873748974588400000000000000000000000000000000000000000000000000000000000000007da48ca769768b554b976cba3a824a82696259526a758c986963694268478b850000000000000000000000000000000000000000000000000000000000000000696559555579557458598674573353635677575579667a8758538b848a44838b0000000000000000000000000000000000000000000000000000000000000000385437883b95534549555a855877997598772b953b9529a939a95aa84b949a840000000000000000000000000000000000000000000000000000000000000000897687898776878578998485878b789a847b8b6579998a55886998788a879b9700000000000000000000000000000000000000000000000000000000000000006ba97988897469646b987a876a997a987b987955766777765c958a858777867700000000000000000000000000000000000000000000000000000000000000005a747b947b967866a855788928884566578879a98864a579233433343334633400000000000000000000000000000000000000000000000000000000000000006a747b846a844997598669987bb8b8aabaa96ba67cba9854687669864a864b86000000000000000000000000000000000000000000000000000000000000000038ab389b48ab47ac49ab48ac579b48ac49ab38ab58bc4b8659aa5c8457ac586a0000000000000000000000000000000000000000000000000000000000000000299b2999389a379b38893955589a79bc8c9588bc7a8c599a689a5b8558ac597a00000000000000000000000000000000000000000000000000000000000000002888378936773975579b389a579b488938884b74469a465747785b75568b586a000000000000000000000000000000000000000000000000000000000000000038553865285428444755566455763a64356746743779397445674c63469b585a0000000000000000000000000000000000000000000000000000000000000000284437643a7629641555297938874879385438664665355536775a85569a785a00000000000000000000000000000000000000000000000000000000000000005789789b779b6a75668a897b64558555876576798855845694749b74a68a986a000000000000000000000000000000000000000000000000000000000000000047776766678867667799798698768866976685673755387638763b74358b387a00000000000000000000000000000000000000000000000000000000000000005777686569874944498846774677685568646987677778775a456a65ab66ca550000000000000000000000000000000000000000000000000000000000000000355656666656455546455345634558655854aa749854775577737b64777a7a7900000000000000000000000000000000000000000000000000000000000000005955895598546c758c75ba76b88797749b75a98967888789978857888788a78800000000000000000000000000000000000000000000000000000000000000006977897799776a748a749a747987ba97aa998ba8a78bab75a87ab89cbb74b97b000000000000000000000000000000000000000000000000000000000000000059645788598858546a7569996a767a766887649c767476797a54766977667976000000000000000000000000000000000000000000000000000000000000000078887a75796577777a869976987799865777667787668a53857a885a98659546000000000000000000000000000000000000000000000000000000000000000087559877a96586779788b9769866888899877576777879647759a8659888a7440000000000000000000000000000000000000000000000000000000000000000785477887a55747b7585795b7999a9667456878889aa58997888797b56776855000000000000000000000000000000000000000000000000000000000000000048545854617b644557448744537b85565899899a39994a7a58998999a5558988000000000000000000000000000000000000000000000000000000000000000089659744a6559555a55698889486a57aab43a96b9556a665a854a579a744a5550000000000000000000000000000000000000000000000000000000000000000596587556677777777778578876687778974867787668876988897779876a744000000000000000000000000000000000000000000000000000000000000000067536556875448225922415851595456654587459456947b48997a86764585560000000000000000000000000000000000000000000000000000000000000000a854a89989998556a7559766a7779976a975997596749a64968a9779a55595450000000000000000000000000000000000000000000000000000000000000000674487549854885594558445a777a7778373579b5a32675584456975958b9944000000000000000000000000000000000000000000000000000000000000000077449754b674b469b964b658a766a864a777a975a566a754a677a875b777b9650000000000000000000000000000000000000000000000000000000000000000775577547445755676558744697377637766785334556566577859755877887600000000000000000000000000000000000000000000000000000000000000002789287328772a7436793a9457795a84368a3334323364555a757b856aaa9a5500000000000000000000000000000000000000000000000000000000000000005888516b5a3349a95964797778987a5375696a536668796577887a847a74797500000000000000000000000000000000000000000000000000000000000000007b537a53767b6769748775767a9a7988759c768a7b957a847775776478647854000000000000000000000000000000000000000000000000000000000000000098999788988998889b879a869a869a86696565676965667767446854677877880000000000000000000000000000000000000000000000000000000000000000678a77997ba647887a7589999ca59ba889aa9999655667bd6ba979a967bc6c7300000000000000000000000000000000000000000000000000000000000000006aaa6556518566775965485438985888576546854ca547775999699989997a9900000000000000000000000000000000000000000000000000000000000000006678526466335644769c5a7888547a785c4454a658885c946285627b6c54674a000000000000000000000000000000000000000000000000000000000000000033843b33359c337c395c3b853899355653745a33558b536b585b5a7557885445000000000000000000000000000000000000000000000000000000000000000026551566274525664a85486546564656377756664655465545454656516a656700000000000000000000000000000000000000000000000000000000000000004964696468553a86485437443645896588548856895477446a7569547a757954000000000000000000000000000000000000000000000000000000000000000036678566399988993b968b955ba658995566588859645a986ca7796477887ca6000000000000000000000000000000000000000000000000000000000000000019562a554c665c55156a256a468c557b1a8429744a845a83196b285a496b595b00000000000000000000000000000000000000000000000000000000000000001486248645a7549615782578469a5689187629764a875a861a692a694b7a5b79000000000000000000000000000000000000000000000000000000000000000017772777489858881555255546665556199528854884588411122112411251120000000000000000000000000000000000000000000000000000000000000000" + } + } + ], "enums": [{ "identifier": "Plants", "uid": 120, "values": [ + { "id": "Clover", "tileRect": { "tilesetUid": 117, "x": 240, "y": 288, "w": 16, "h": 16 }, "tileId": -1, "color": 4561204, "__tileSrcRect": [240,288,16,16] }, + { "id": "Golden", "tileRect": { "tilesetUid": 117, "x": 48, "y": 288, "w": 16, "h": 16 }, "tileId": -1, "color": 13278289, "__tileSrcRect": [48,288,16,16] }, + { "id": "Fruit", "tileRect": { "tilesetUid": 117, "x": 48, "y": 304, "w": 16, "h": 16 }, "tileId": -1, "color": 9345445, "__tileSrcRect": [48,304,16,16] }, + { "id": "Rose", "tileRect": { "tilesetUid": 117, "x": 176, "y": 288, "w": 16, "h": 16 }, "tileId": -1, "color": 9326891, "__tileSrcRect": [176,288,16,16] }, + { "id": "Root", "tileRect": { "tilesetUid": 117, "x": 0, "y": 336, "w": 16, "h": 16 }, "tileId": -1, "color": 10184273, "__tileSrcRect": [0,336,16,16] }, + { "id": "Water_shroom", "tileRect": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, "tileId": -1, "color": 6059166, "__tileSrcRect": [32,336,16,16] } + ], "iconTilesetUid": 117, "externalRelPath": null, "externalFileChecksum": null, "tags": [] }], "externalEnums": [], "levelFields": [] }, + "levels": [ + { + "identifier": "Entrance", + "iid": "a3591db0-66b0-11ec-9cd7-43878cf4d0ab", + "uid": 3, + "worldX": 144, + "worldY": -384, + "worldDepth": 0, + "pxWid": 256, + "pxHei": 400, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 16, + "__cHei": 25, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "490e69f0-66b0-11ec-8fc6-99491c0ace0c", + "levelId": 3, + "layerDefUid": 119, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 590784, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Plant", + "__grid": [9,14], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 0, "y": 336, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "bb084530-66b0-11ec-8fc6-c11dfd63d53e", + "width": 20, + "height": 20, + "defUid": 116, + "px": [152,240], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Root", "__tile": { "tilesetUid": 117, "x": 0, "y": 336, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Root"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + }, + { + "__identifier": "Plant", + "__grid": [7,6], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 240, "y": 288, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "003047c0-66b0-11ec-8fc6-71e179b25f67", + "width": 20, + "height": 20, + "defUid": 116, + "px": [120,112], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Clover", "__tile": { "tilesetUid": 117, "x": 240, "y": 288, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Clover"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + }, + { + "__identifier": "Door", + "__grid": [8,21], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 160, "y": 32, "w": 16, "h": 16 }, + "__smartColor": "#00FF30", + "iid": "2a789b40-8dc0-11ec-a525-a942e9459e5c", + "width": 16, + "height": 16, + "defUid": 123, + "px": [128,352], + "fieldInstances": [{ "__identifier": "link", "__type": "EntityRef", "__value": { + "entityIid": "33bf7c00-8dc0-11ec-a525-05f96cc4b971", + "layerIid": "490f5450-66b0-11ec-8fc6-dd62cc585254", + "levelIid": "720af480-66b0-11ec-895f-a114f0383ca2", + "worldIid": "ca0e9bf0-c640-11ed-ad34-5d947c1a0a9f" + }, "__tile": null, "defUid": 124, "realEditorValues": [{ + "id": "V_String", + "params": ["33bf7c00-8dc0-11ec-a525-05f96cc4b971"] + }] }] + } + ] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 16, + "__cHei": 25, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a3591db3-66b0-11ec-9cd7-439a1bb49a51", + "levelId": 3, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0, + 0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1, + 1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0, + 0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1, + 0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,1, + 1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1, + 1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0, + 0,0,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1, + 1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [64,0], "src": [16,16], "f": 0, "t": 37, "d": [8,4], "a": 1 }, + { "px": [80,0], "src": [16,16], "f": 0, "t": 37, "d": [8,5], "a": 1 }, + { "px": [96,0], "src": [16,16], "f": 0, "t": 37, "d": [8,6], "a": 1 }, + { "px": [144,0], "src": [16,32], "f": 0, "t": 73, "d": [8,9], "a": 1 }, + { "px": [160,0], "src": [16,32], "f": 0, "t": 73, "d": [8,10], "a": 1 }, + { "px": [208,0], "src": [16,32], "f": 0, "t": 73, "d": [8,13], "a": 1 }, + { "px": [240,0], "src": [16,16], "f": 0, "t": 37, "d": [8,15], "a": 1 }, + { "px": [0,16], "src": [16,32], "f": 0, "t": 73, "d": [8,16], "a": 1 }, + { "px": [32,16], "src": [16,16], "f": 0, "t": 37, "d": [8,18], "a": 1 }, + { "px": [48,16], "src": [16,16], "f": 0, "t": 37, "d": [8,19], "a": 1 }, + { "px": [96,16], "src": [16,16], "f": 0, "t": 37, "d": [8,22], "a": 1 }, + { "px": [144,16], "src": [16,32], "f": 0, "t": 73, "d": [8,25], "a": 1 }, + { "px": [160,16], "src": [16,16], "f": 0, "t": 37, "d": [8,26], "a": 1 }, + { "px": [224,16], "src": [16,16], "f": 0, "t": 37, "d": [8,30], "a": 1 }, + { "px": [64,32], "src": [16,16], "f": 0, "t": 37, "d": [8,36], "a": 1 }, + { "px": [80,32], "src": [16,32], "f": 0, "t": 73, "d": [8,37], "a": 1 }, + { "px": [96,32], "src": [16,16], "f": 0, "t": 37, "d": [8,38], "a": 1 }, + { "px": [144,32], "src": [16,16], "f": 0, "t": 37, "d": [8,41], "a": 1 }, + { "px": [160,32], "src": [16,32], "f": 0, "t": 73, "d": [8,42], "a": 1 }, + { "px": [192,32], "src": [16,32], "f": 0, "t": 73, "d": [8,44], "a": 1 }, + { "px": [48,48], "src": [16,32], "f": 0, "t": 73, "d": [8,51], "a": 1 }, + { "px": [64,48], "src": [16,32], "f": 0, "t": 73, "d": [8,52], "a": 1 }, + { "px": [80,48], "src": [16,32], "f": 0, "t": 73, "d": [8,53], "a": 1 }, + { "px": [144,48], "src": [16,16], "f": 0, "t": 37, "d": [8,57], "a": 1 }, + { "px": [160,48], "src": [16,32], "f": 0, "t": 73, "d": [8,58], "a": 1 }, + { "px": [240,48], "src": [16,16], "f": 0, "t": 37, "d": [8,63], "a": 1 }, + { "px": [16,64], "src": [16,16], "f": 0, "t": 37, "d": [8,65], "a": 1 }, + { "px": [32,64], "src": [16,16], "f": 0, "t": 37, "d": [8,66], "a": 1 }, + { "px": [144,64], "src": [16,32], "f": 0, "t": 73, "d": [8,73], "a": 1 }, + { "px": [160,64], "src": [16,32], "f": 0, "t": 73, "d": [8,74], "a": 1 }, + { "px": [176,64], "src": [16,32], "f": 0, "t": 73, "d": [8,75], "a": 1 }, + { "px": [16,80], "src": [16,16], "f": 0, "t": 37, "d": [8,81], "a": 1 }, + { "px": [32,80], "src": [16,32], "f": 0, "t": 73, "d": [8,82], "a": 1 }, + { "px": [144,80], "src": [16,16], "f": 0, "t": 37, "d": [8,89], "a": 1 }, + { "px": [160,80], "src": [16,32], "f": 0, "t": 73, "d": [8,90], "a": 1 }, + { "px": [176,80], "src": [16,16], "f": 0, "t": 37, "d": [8,91], "a": 1 }, + { "px": [208,80], "src": [16,32], "f": 0, "t": 73, "d": [8,93], "a": 1 }, + { "px": [224,80], "src": [16,16], "f": 0, "t": 37, "d": [8,94], "a": 1 }, + { "px": [0,96], "src": [16,16], "f": 0, "t": 37, "d": [8,96], "a": 1 }, + { "px": [16,96], "src": [16,16], "f": 0, "t": 37, "d": [8,97], "a": 1 }, + { "px": [32,96], "src": [16,32], "f": 0, "t": 73, "d": [8,98], "a": 1 }, + { "px": [144,96], "src": [16,32], "f": 0, "t": 73, "d": [8,105], "a": 1 }, + { "px": [176,96], "src": [16,32], "f": 0, "t": 73, "d": [8,107], "a": 1 }, + { "px": [208,96], "src": [16,32], "f": 0, "t": 73, "d": [8,109], "a": 1 }, + { "px": [0,112], "src": [16,16], "f": 0, "t": 37, "d": [8,112], "a": 1 }, + { "px": [16,112], "src": [16,32], "f": 0, "t": 73, "d": [8,113], "a": 1 }, + { "px": [32,112], "src": [16,32], "f": 0, "t": 73, "d": [8,114], "a": 1 }, + { "px": [144,112], "src": [16,32], "f": 0, "t": 73, "d": [8,121], "a": 1 }, + { "px": [176,112], "src": [16,16], "f": 0, "t": 37, "d": [8,123], "a": 1 }, + { "px": [192,112], "src": [16,32], "f": 0, "t": 73, "d": [8,124], "a": 1 }, + { "px": [208,112], "src": [16,32], "f": 0, "t": 73, "d": [8,125], "a": 1 }, + { "px": [224,112], "src": [16,16], "f": 0, "t": 37, "d": [8,126], "a": 1 }, + { "px": [0,128], "src": [16,16], "f": 0, "t": 37, "d": [8,128], "a": 1 }, + { "px": [16,128], "src": [16,16], "f": 0, "t": 37, "d": [8,129], "a": 1 }, + { "px": [96,128], "src": [16,16], "f": 0, "t": 37, "d": [8,134], "a": 1 }, + { "px": [112,128], "src": [16,32], "f": 0, "t": 73, "d": [8,135], "a": 1 }, + { "px": [128,128], "src": [16,16], "f": 0, "t": 37, "d": [8,136], "a": 1 }, + { "px": [144,128], "src": [16,32], "f": 0, "t": 73, "d": [8,137], "a": 1 }, + { "px": [160,128], "src": [16,16], "f": 0, "t": 37, "d": [8,138], "a": 1 }, + { "px": [176,128], "src": [16,32], "f": 0, "t": 73, "d": [8,139], "a": 1 }, + { "px": [192,128], "src": [16,32], "f": 0, "t": 73, "d": [8,140], "a": 1 }, + { "px": [208,128], "src": [16,32], "f": 0, "t": 73, "d": [8,141], "a": 1 }, + { "px": [224,128], "src": [16,16], "f": 0, "t": 37, "d": [8,142], "a": 1 }, + { "px": [240,128], "src": [16,16], "f": 0, "t": 37, "d": [8,143], "a": 1 }, + { "px": [96,144], "src": [16,32], "f": 0, "t": 73, "d": [8,150], "a": 1 }, + { "px": [128,144], "src": [16,16], "f": 0, "t": 37, "d": [8,152], "a": 1 }, + { "px": [96,160], "src": [16,16], "f": 0, "t": 37, "d": [8,166], "a": 1 }, + { "px": [112,160], "src": [16,32], "f": 0, "t": 73, "d": [8,167], "a": 1 }, + { "px": [128,160], "src": [16,16], "f": 0, "t": 37, "d": [8,168], "a": 1 }, + { "px": [96,176], "src": [16,32], "f": 0, "t": 73, "d": [8,182], "a": 1 }, + { "px": [112,176], "src": [16,16], "f": 0, "t": 37, "d": [8,183], "a": 1 }, + { "px": [0,192], "src": [16,32], "f": 0, "t": 73, "d": [8,192], "a": 1 }, + { "px": [16,192], "src": [16,16], "f": 0, "t": 37, "d": [8,193], "a": 1 }, + { "px": [96,192], "src": [16,32], "f": 0, "t": 73, "d": [8,198], "a": 1 }, + { "px": [112,192], "src": [16,32], "f": 0, "t": 73, "d": [8,199], "a": 1 }, + { "px": [208,192], "src": [16,16], "f": 0, "t": 37, "d": [8,205], "a": 1 }, + { "px": [224,192], "src": [16,16], "f": 0, "t": 37, "d": [8,206], "a": 1 }, + { "px": [240,192], "src": [16,16], "f": 0, "t": 37, "d": [8,207], "a": 1 }, + { "px": [0,208], "src": [16,16], "f": 0, "t": 37, "d": [8,208], "a": 1 }, + { "px": [96,208], "src": [16,16], "f": 0, "t": 37, "d": [8,214], "a": 1 }, + { "px": [112,208], "src": [16,32], "f": 0, "t": 73, "d": [8,215], "a": 1 }, + { "px": [224,208], "src": [16,16], "f": 0, "t": 37, "d": [8,222], "a": 1 }, + { "px": [0,224], "src": [16,32], "f": 0, "t": 73, "d": [8,224], "a": 1 }, + { "px": [96,224], "src": [16,16], "f": 0, "t": 37, "d": [8,230], "a": 1 }, + { "px": [112,224], "src": [16,32], "f": 0, "t": 73, "d": [8,231], "a": 1 }, + { "px": [224,224], "src": [16,32], "f": 0, "t": 73, "d": [8,238], "a": 1 }, + { "px": [240,224], "src": [16,16], "f": 0, "t": 37, "d": [8,239], "a": 1 }, + { "px": [0,240], "src": [16,32], "f": 0, "t": 73, "d": [8,240], "a": 1 }, + { "px": [96,240], "src": [16,16], "f": 0, "t": 37, "d": [8,246], "a": 1 }, + { "px": [112,240], "src": [16,16], "f": 0, "t": 37, "d": [8,247], "a": 1 }, + { "px": [224,240], "src": [16,32], "f": 0, "t": 73, "d": [8,254], "a": 1 }, + { "px": [0,256], "src": [16,16], "f": 0, "t": 37, "d": [8,256], "a": 1 }, + { "px": [80,256], "src": [16,32], "f": 0, "t": 73, "d": [8,261], "a": 1 }, + { "px": [96,256], "src": [16,32], "f": 0, "t": 73, "d": [8,262], "a": 1 }, + { "px": [112,256], "src": [16,16], "f": 0, "t": 37, "d": [8,263], "a": 1 }, + { "px": [128,256], "src": [16,32], "f": 0, "t": 73, "d": [8,264], "a": 1 }, + { "px": [144,256], "src": [16,16], "f": 0, "t": 37, "d": [8,265], "a": 1 }, + { "px": [160,256], "src": [16,32], "f": 0, "t": 73, "d": [8,266], "a": 1 }, + { "px": [224,256], "src": [16,32], "f": 0, "t": 73, "d": [8,270], "a": 1 }, + { "px": [240,256], "src": [16,32], "f": 0, "t": 73, "d": [8,271], "a": 1 }, + { "px": [0,272], "src": [16,32], "f": 0, "t": 73, "d": [8,272], "a": 1 }, + { "px": [96,272], "src": [16,16], "f": 0, "t": 37, "d": [8,278], "a": 1 }, + { "px": [112,272], "src": [16,16], "f": 0, "t": 37, "d": [8,279], "a": 1 }, + { "px": [128,272], "src": [16,32], "f": 0, "t": 73, "d": [8,280], "a": 1 }, + { "px": [224,272], "src": [16,32], "f": 0, "t": 73, "d": [8,286], "a": 1 }, + { "px": [0,288], "src": [16,16], "f": 0, "t": 37, "d": [8,288], "a": 1 }, + { "px": [224,288], "src": [16,16], "f": 0, "t": 37, "d": [8,302], "a": 1 }, + { "px": [0,304], "src": [16,32], "f": 0, "t": 73, "d": [8,304], "a": 1 }, + { "px": [224,304], "src": [16,16], "f": 0, "t": 37, "d": [8,318], "a": 1 }, + { "px": [16,320], "src": [16,32], "f": 0, "t": 73, "d": [8,321], "a": 1 }, + { "px": [32,320], "src": [16,16], "f": 0, "t": 37, "d": [8,322], "a": 1 }, + { "px": [208,320], "src": [16,32], "f": 0, "t": 73, "d": [8,333], "a": 1 }, + { "px": [16,336], "src": [16,16], "f": 0, "t": 37, "d": [8,337], "a": 1 }, + { "px": [32,336], "src": [16,16], "f": 0, "t": 37, "d": [8,338], "a": 1 }, + { "px": [208,336], "src": [16,32], "f": 0, "t": 73, "d": [8,349], "a": 1 }, + { "px": [224,336], "src": [16,16], "f": 0, "t": 37, "d": [8,350], "a": 1 }, + { "px": [240,336], "src": [16,16], "f": 0, "t": 37, "d": [8,351], "a": 1 }, + { "px": [0,352], "src": [16,16], "f": 0, "t": 37, "d": [8,352], "a": 1 }, + { "px": [32,352], "src": [16,32], "f": 0, "t": 73, "d": [8,354], "a": 1 }, + { "px": [208,352], "src": [16,32], "f": 0, "t": 73, "d": [8,365], "a": 1 }, + { "px": [224,352], "src": [16,16], "f": 0, "t": 37, "d": [8,366], "a": 1 }, + { "px": [64,368], "src": [16,32], "f": 0, "t": 73, "d": [8,372], "a": 1 }, + { "px": [192,368], "src": [16,16], "f": 0, "t": 37, "d": [8,380], "a": 1 }, + { "px": [32,384], "src": [16,16], "f": 0, "t": 37, "d": [8,386], "a": 1 }, + { "px": [96,384], "src": [16,16], "f": 0, "t": 37, "d": [8,390], "a": 1 }, + { "px": [112,384], "src": [16,16], "f": 0, "t": 37, "d": [8,391], "a": 1 }, + { "px": [128,384], "src": [16,16], "f": 0, "t": 37, "d": [8,392], "a": 1 }, + { "px": [144,384], "src": [16,32], "f": 0, "t": 73, "d": [8,393], "a": 1 }, + { "px": [160,384], "src": [16,32], "f": 0, "t": 73, "d": [8,394], "a": 1 }, + { "px": [0,0], "src": [160,192], "f": 0, "t": 442, "d": [84,0], "a": 1 }, + { "px": [176,0], "src": [192,192], "f": 0, "t": 444, "d": [84,11], "a": 1 }, + { "px": [80,16], "src": [176,192], "f": 0, "t": 443, "d": [84,21], "a": 1 }, + { "px": [240,32], "src": [176,192], "f": 0, "t": 443, "d": [84,47], "a": 1 }, + { "px": [0,80], "src": [160,192], "f": 0, "t": 442, "d": [84,80], "a": 1 }, + { "px": [240,80], "src": [176,192], "f": 0, "t": 443, "d": [84,95], "a": 1 }, + { "px": [160,96], "src": [160,192], "f": 0, "t": 442, "d": [84,106], "a": 1 }, + { "px": [240,96], "src": [144,192], "f": 0, "t": 441, "d": [84,111], "a": 1 }, + { "px": [160,112], "src": [160,192], "f": 0, "t": 442, "d": [84,122], "a": 1 }, + { "px": [240,112], "src": [144,192], "f": 0, "t": 441, "d": [84,127], "a": 1 }, + { "px": [112,144], "src": [192,192], "f": 0, "t": 444, "d": [84,151], "a": 1 }, + { "px": [240,208], "src": [192,192], "f": 0, "t": 444, "d": [84,223], "a": 1 }, + { "px": [240,240], "src": [176,192], "f": 0, "t": 443, "d": [84,255], "a": 1 }, + { "px": [240,272], "src": [192,192], "f": 0, "t": 444, "d": [84,287], "a": 1 }, + { "px": [240,288], "src": [160,192], "f": 0, "t": 442, "d": [84,303], "a": 1 }, + { "px": [224,320], "src": [192,192], "f": 0, "t": 444, "d": [84,334], "a": 1 }, + { "px": [48,368], "src": [176,192], "f": 0, "t": 443, "d": [84,371], "a": 1 }, + { "px": [80,384], "src": [192,192], "f": 0, "t": 444, "d": [84,389], "a": 1 }, + { "px": [176,384], "src": [160,192], "f": 0, "t": 442, "d": [84,395], "a": 1 }, + { "px": [64,49], "src": [32,144], "f": 0, "t": 326, "d": [75,52], "a": 1 }, + { "px": [80,49], "src": [16,144], "f": 0, "t": 325, "d": [75,53], "a": 1 }, + { "px": [0,129], "src": [16,144], "f": 0, "t": 325, "d": [75,128], "a": 1 }, + { "px": [16,128], "src": [16,144], "f": 0, "t": 325, "d": [75,129], "a": 1 }, + { "px": [160,128], "src": [16,144], "f": 0, "t": 325, "d": [75,138], "a": 1 }, + { "px": [176,128], "src": [16,144], "f": 0, "t": 325, "d": [75,139], "a": 1 }, + { "px": [192,129], "src": [32,144], "f": 0, "t": 326, "d": [75,140], "a": 1 }, + { "px": [208,128], "src": [16,144], "f": 0, "t": 325, "d": [75,141], "a": 1 }, + { "px": [224,129], "src": [32,144], "f": 0, "t": 326, "d": [75,142], "a": 1 }, + { "px": [240,129], "src": [16,144], "f": 0, "t": 325, "d": [75,143], "a": 1 }, + { "px": [208,193], "src": [32,144], "f": 0, "t": 326, "d": [75,205], "a": 1 }, + { "px": [160,256], "src": [32,144], "f": 0, "t": 326, "d": [75,266], "a": 1 }, + { "px": [96,272], "src": [16,144], "f": 0, "t": 325, "d": [75,278], "a": 1 }, + { "px": [112,273], "src": [32,144], "f": 0, "t": 326, "d": [75,279], "a": 1 }, + { "px": [128,272], "src": [16,144], "f": 0, "t": 325, "d": [75,280], "a": 1 }, + { "px": [112,112], "src": [48,96], "f": 0, "t": 219, "d": [9,119], "a": 1 }, + { "px": [128,112], "src": [48,96], "f": 0, "t": 219, "d": [9,120], "a": 1 }, + { "px": [0,176], "src": [64,96], "f": 0, "t": 220, "d": [9,176], "a": 1 }, + { "px": [16,176], "src": [16,96], "f": 0, "t": 217, "d": [9,177], "a": 1 }, + { "px": [208,176], "src": [16,96], "f": 0, "t": 217, "d": [9,189], "a": 1 }, + { "px": [224,176], "src": [16,96], "f": 0, "t": 217, "d": [9,190], "a": 1 }, + { "px": [240,176], "src": [48,96], "f": 0, "t": 219, "d": [9,191], "a": 1 }, + { "px": [80,240], "src": [16,96], "f": 0, "t": 217, "d": [9,245], "a": 1 }, + { "px": [128,240], "src": [48,96], "f": 0, "t": 219, "d": [9,248], "a": 1 }, + { "px": [144,240], "src": [16,96], "f": 0, "t": 217, "d": [9,249], "a": 1 }, + { "px": [160,240], "src": [16,96], "f": 0, "t": 217, "d": [9,250], "a": 1 }, + { "px": [16,304], "src": [64,96], "f": 0, "t": 220, "d": [9,305], "a": 1 }, + { "px": [48,352], "src": [48,96], "f": 0, "t": 219, "d": [9,355], "a": 1 }, + { "px": [80,368], "src": [16,96], "f": 0, "t": 217, "d": [9,373], "a": 1 }, + { "px": [96,368], "src": [48,96], "f": 0, "t": 219, "d": [9,374], "a": 1 }, + { "px": [112,368], "src": [64,96], "f": 0, "t": 220, "d": [9,375], "a": 1 }, + { "px": [128,368], "src": [16,96], "f": 0, "t": 217, "d": [9,376], "a": 1 }, + { "px": [144,368], "src": [64,96], "f": 0, "t": 220, "d": [9,377], "a": 1 }, + { "px": [160,368], "src": [48,96], "f": 0, "t": 219, "d": [9,378], "a": 1 }, + { "px": [176,368], "src": [48,96], "f": 0, "t": 219, "d": [9,379], "a": 1 }, + { "px": [96,0], "src": [0,128], "f": 1, "t": 288, "d": [10,6], "a": 1 }, + { "px": [144,0], "src": [0,112], "f": 0, "t": 252, "d": [10,9], "a": 1 }, + { "px": [98,16], "src": [0,128], "f": 1, "t": 288, "d": [10,22], "a": 1 }, + { "px": [143,16], "src": [0,112], "f": 0, "t": 252, "d": [10,25], "a": 1 }, + { "px": [98,32], "src": [0,112], "f": 1, "t": 252, "d": [10,38], "a": 1 }, + { "px": [143,32], "src": [0,112], "f": 0, "t": 252, "d": [10,41], "a": 1 }, + { "px": [143,48], "src": [0,112], "f": 0, "t": 252, "d": [10,57], "a": 1 }, + { "px": [142,64], "src": [0,112], "f": 0, "t": 252, "d": [10,73], "a": 1 }, + { "px": [32,80], "src": [0,128], "f": 1, "t": 288, "d": [10,82], "a": 1 }, + { "px": [142,80], "src": [0,112], "f": 0, "t": 252, "d": [10,89], "a": 1 }, + { "px": [32,96], "src": [0,128], "f": 1, "t": 288, "d": [10,98], "a": 1 }, + { "px": [143,96], "src": [0,128], "f": 0, "t": 288, "d": [10,105], "a": 1 }, + { "px": [34,112], "src": [0,128], "f": 1, "t": 288, "d": [10,114], "a": 1 }, + { "px": [95,128], "src": [0,128], "f": 0, "t": 288, "d": [10,134], "a": 1 }, + { "px": [96,144], "src": [0,112], "f": 0, "t": 252, "d": [10,150], "a": 1 }, + { "px": [96,160], "src": [0,128], "f": 0, "t": 288, "d": [10,166], "a": 1 }, + { "px": [129,160], "src": [0,128], "f": 1, "t": 288, "d": [10,168], "a": 1 }, + { "px": [94,176], "src": [0,128], "f": 0, "t": 288, "d": [10,182], "a": 1 }, + { "px": [94,192], "src": [0,128], "f": 0, "t": 288, "d": [10,198], "a": 1 }, + { "px": [112,192], "src": [0,128], "f": 1, "t": 288, "d": [10,199], "a": 1 }, + { "px": [96,208], "src": [0,112], "f": 0, "t": 252, "d": [10,214], "a": 1 }, + { "px": [114,208], "src": [0,112], "f": 1, "t": 252, "d": [10,215], "a": 1 }, + { "px": [222,208], "src": [0,112], "f": 0, "t": 252, "d": [10,222], "a": 1 }, + { "px": [1,224], "src": [0,112], "f": 1, "t": 252, "d": [10,224], "a": 1 }, + { "px": [94,224], "src": [0,128], "f": 0, "t": 288, "d": [10,230], "a": 1 }, + { "px": [114,224], "src": [0,112], "f": 1, "t": 252, "d": [10,231], "a": 1 }, + { "px": [222,224], "src": [0,112], "f": 0, "t": 252, "d": [10,238], "a": 1 }, + { "px": [1,240], "src": [0,128], "f": 1, "t": 288, "d": [10,240], "a": 1 }, + { "px": [222,240], "src": [0,112], "f": 0, "t": 252, "d": [10,254], "a": 1 }, + { "px": [0,256], "src": [0,128], "f": 1, "t": 288, "d": [10,256], "a": 1 }, + { "px": [224,256], "src": [0,128], "f": 0, "t": 288, "d": [10,270], "a": 1 }, + { "px": [0,272], "src": [0,128], "f": 1, "t": 288, "d": [10,272], "a": 1 }, + { "px": [222,272], "src": [0,128], "f": 0, "t": 288, "d": [10,286], "a": 1 }, + { "px": [2,288], "src": [0,112], "f": 1, "t": 252, "d": [10,288], "a": 1 }, + { "px": [223,288], "src": [0,128], "f": 0, "t": 288, "d": [10,302], "a": 1 }, + { "px": [33,320], "src": [0,112], "f": 1, "t": 252, "d": [10,322], "a": 1 }, + { "px": [206,320], "src": [0,128], "f": 0, "t": 288, "d": [10,333], "a": 1 }, + { "px": [32,336], "src": [0,112], "f": 1, "t": 252, "d": [10,338], "a": 1 }, + { "px": [206,336], "src": [0,112], "f": 0, "t": 252, "d": [10,349], "a": 1 }, + { "px": [96,48], "src": [0,144], "f": 1, "t": 324, "d": [77,54], "a": 1 }, + { "px": [48,64], "src": [0,144], "f": 1, "t": 324, "d": [77,67], "a": 1 }, + { "px": [32,128], "src": [0,144], "f": 1, "t": 324, "d": [77,130], "a": 1 }, + { "px": [144,144], "src": [0,144], "f": 1, "t": 324, "d": [77,153], "a": 1 }, + { "px": [128,176], "src": [0,144], "f": 1, "t": 324, "d": [77,184], "a": 1 }, + { "px": [32,192], "src": [0,144], "f": 1, "t": 324, "d": [77,194], "a": 1 }, + { "px": [192,192], "src": [0,144], "f": 0, "t": 324, "d": [77,204], "a": 1 }, + { "px": [16,208], "src": [0,144], "f": 1, "t": 324, "d": [77,209], "a": 1 }, + { "px": [64,256], "src": [0,144], "f": 0, "t": 324, "d": [77,260], "a": 1 }, + { "px": [176,256], "src": [0,144], "f": 1, "t": 324, "d": [77,267], "a": 1 }, + { "px": [80,272], "src": [0,144], "f": 0, "t": 324, "d": [77,277], "a": 1 }, + { "px": [144,272], "src": [0,144], "f": 1, "t": 324, "d": [77,281], "a": 1 }, + { "px": [96,112], "src": [0,96], "f": 0, "t": 216, "d": [11,118], "a": 1 }, + { "px": [32,176], "src": [0,96], "f": 1, "t": 216, "d": [11,178], "a": 1 }, + { "px": [192,176], "src": [0,96], "f": 0, "t": 216, "d": [11,188], "a": 1 }, + { "px": [64,240], "src": [0,96], "f": 0, "t": 216, "d": [11,244], "a": 1 }, + { "px": [176,240], "src": [0,96], "f": 1, "t": 216, "d": [11,251], "a": 1 }, + { "px": [32,304], "src": [0,96], "f": 1, "t": 216, "d": [11,306], "a": 1 }, + { "px": [208,304], "src": [0,96], "f": 0, "t": 216, "d": [11,317], "a": 1 }, + { "px": [64,352], "src": [0,96], "f": 1, "t": 216, "d": [11,356], "a": 1 }, + { "px": [192,352], "src": [0,96], "f": 0, "t": 216, "d": [11,364], "a": 1 }, + { "px": [48,48], "src": [48,144], "f": 0, "t": 327, "d": [76,51], "a": 1 }, + { "px": [32,64], "src": [48,144], "f": 0, "t": 327, "d": [76,66], "a": 1 }, + { "px": [144,128], "src": [48,144], "f": 0, "t": 327, "d": [76,137], "a": 1 }, + { "px": [128,144], "src": [48,144], "f": 0, "t": 327, "d": [76,152], "a": 1 }, + { "px": [112,176], "src": [48,144], "f": 0, "t": 327, "d": [76,183], "a": 1 }, + { "px": [16,192], "src": [48,144], "f": 0, "t": 327, "d": [76,193], "a": 1 }, + { "px": [224,192], "src": [48,144], "f": 1, "t": 327, "d": [76,206], "a": 1 }, + { "px": [0,208], "src": [48,144], "f": 0, "t": 327, "d": [76,208], "a": 1 }, + { "px": [80,256], "src": [48,144], "f": 1, "t": 327, "d": [76,261], "a": 1 }, + { "px": [144,256], "src": [48,144], "f": 0, "t": 327, "d": [76,265], "a": 1 }, + { "px": [144,112], "src": [64,144], "f": 1, "t": 328, "d": [14,121], "a": 1 }, + { "px": [96,240], "src": [64,144], "f": 1, "t": 328, "d": [14,246], "a": 1 }, + { "px": [112,240], "src": [64,144], "f": 0, "t": 328, "d": [14,247], "a": 1 }, + { "px": [0,304], "src": [64,144], "f": 0, "t": 328, "d": [14,304], "a": 1 }, + { "px": [224,304], "src": [64,144], "f": 1, "t": 328, "d": [14,318], "a": 1 }, + { "px": [32,352], "src": [64,144], "f": 0, "t": 328, "d": [14,354], "a": 1 }, + { "px": [208,352], "src": [64,144], "f": 1, "t": 328, "d": [14,365], "a": 1 }, + { "px": [64,368], "src": [64,144], "f": 0, "t": 328, "d": [14,372], "a": 1 }, + { "px": [192,368], "src": [64,144], "f": 1, "t": 328, "d": [14,380], "a": 1 }, + { "px": [96,320], "src": [0,224], "f": 0, "t": 504, "d": [28,326], "a": 1 }, + { "px": [128,320], "src": [0,224], "f": 0, "t": 504, "d": [28,328], "a": 1 }, + { "px": [176,320], "src": [0,224], "f": 0, "t": 504, "d": [28,331], "a": 1 }, + { "px": [192,320], "src": [0,224], "f": 0, "t": 504, "d": [28,332], "a": 1 }, + { "px": [48,336], "src": [0,224], "f": 0, "t": 504, "d": [28,339], "a": 1 }, + { "px": [64,336], "src": [0,224], "f": 0, "t": 504, "d": [28,340], "a": 1 }, + { "px": [96,336], "src": [0,224], "f": 0, "t": 504, "d": [28,342], "a": 1 }, + { "px": [160,336], "src": [0,224], "f": 0, "t": 504, "d": [28,346], "a": 1 }, + { "px": [176,336], "src": [0,224], "f": 0, "t": 504, "d": [28,347], "a": 1 }, + { "px": [80,352], "src": [0,224], "f": 0, "t": 504, "d": [28,357], "a": 1 }, + { "px": [112,352], "src": [0,224], "f": 0, "t": 504, "d": [28,359], "a": 1 }, + { "px": [128,352], "src": [0,224], "f": 0, "t": 504, "d": [28,360], "a": 1 }, + { "px": [144,352], "src": [0,224], "f": 0, "t": 504, "d": [28,361], "a": 1 }, + { "px": [160,352], "src": [0,224], "f": 0, "t": 504, "d": [28,362], "a": 1 }, + { "px": [176,352], "src": [0,224], "f": 0, "t": 504, "d": [28,363], "a": 1 }, + { "px": [48,320], "src": [16,224], "f": 0, "t": 505, "d": [74,323], "a": 1 }, + { "px": [64,320], "src": [32,224], "f": 0, "t": 506, "d": [74,324], "a": 1 }, + { "px": [80,320], "src": [16,224], "f": 0, "t": 505, "d": [74,325], "a": 1 }, + { "px": [112,320], "src": [32,224], "f": 0, "t": 506, "d": [74,327], "a": 1 }, + { "px": [144,320], "src": [32,240], "f": 0, "t": 542, "d": [74,329], "a": 1 }, + { "px": [160,320], "src": [16,240], "f": 0, "t": 541, "d": [74,330], "a": 1 }, + { "px": [80,336], "src": [16,240], "f": 0, "t": 541, "d": [74,341], "a": 1 }, + { "px": [112,336], "src": [32,224], "f": 0, "t": 506, "d": [74,343], "a": 1 }, + { "px": [128,336], "src": [16,224], "f": 0, "t": 505, "d": [74,344], "a": 1 }, + { "px": [144,336], "src": [32,240], "f": 0, "t": 542, "d": [74,345], "a": 1 }, + { "px": [192,336], "src": [32,240], "f": 0, "t": 542, "d": [74,348], "a": 1 }, + { "px": [96,352], "src": [32,224], "f": 0, "t": 506, "d": [74,358], "a": 1 }, + { "px": [48,304], "src": [0,208], "f": 0, "t": 468, "d": [21,307], "a": 1 }, + { "px": [64,305], "src": [16,208], "f": 0, "t": 469, "d": [21,308], "a": 1 }, + { "px": [80,305], "src": [16,208], "f": 0, "t": 469, "d": [21,309], "a": 1 }, + { "px": [96,305], "src": [0,208], "f": 0, "t": 468, "d": [21,310], "a": 1 }, + { "px": [112,304], "src": [16,208], "f": 0, "t": 469, "d": [21,311], "a": 1 }, + { "px": [128,304], "src": [32,208], "f": 0, "t": 470, "d": [21,312], "a": 1 }, + { "px": [144,305], "src": [0,208], "f": 0, "t": 468, "d": [21,313], "a": 1 }, + { "px": [160,304], "src": [0,208], "f": 0, "t": 468, "d": [21,314], "a": 1 }, + { "px": [176,304], "src": [0,208], "f": 0, "t": 468, "d": [21,315], "a": 1 }, + { "px": [192,305], "src": [32,208], "f": 0, "t": 470, "d": [21,316], "a": 1 }, + { "px": [48,336], "src": [208,48], "f": 0, "t": 121, "d": [111,339], "a": 1 }, + { "px": [64,336], "src": [176,48], "f": 0, "t": 119, "d": [111,340], "a": 1 }, + { "px": [192,336], "src": [208,48], "f": 0, "t": 121, "d": [111,348], "a": 1 }, + { "px": [80,352], "src": [176,48], "f": 0, "t": 119, "d": [111,357], "a": 1 }, + { "px": [96,352], "src": [192,48], "f": 0, "t": 120, "d": [111,358], "a": 1 }, + { "px": [128,352], "src": [160,48], "f": 0, "t": 118, "d": [111,360], "a": 1 }, + { "px": [144,352], "src": [208,48], "f": 0, "t": 121, "d": [111,361], "a": 1 }, + { "px": [160,352], "src": [160,48], "f": 0, "t": 118, "d": [111,362], "a": 1 }, + { "px": [176,352], "src": [160,48], "f": 0, "t": 118, "d": [111,363], "a": 1 }, + { "px": [46,336], "src": [160,48], "f": 0, "t": 118, "d": [99,339], "a": 1 }, + { "px": [113,352], "src": [176,48], "f": 0, "t": 119, "d": [99,359], "a": 1 }, + { "px": [64,64], "src": [80,128], "f": 0, "t": 293, "d": [95,68], "a": 1 }, + { "px": [48,80], "src": [80,112], "f": 0, "t": 257, "d": [95,83], "a": 1 }, + { "px": [160,144], "src": [80,128], "f": 0, "t": 293, "d": [95,154], "a": 1 }, + { "px": [144,160], "src": [80,128], "f": 0, "t": 293, "d": [95,169], "a": 1 }, + { "px": [128,192], "src": [80,112], "f": 0, "t": 257, "d": [95,200], "a": 1 }, + { "px": [32,208], "src": [80,112], "f": 0, "t": 257, "d": [95,210], "a": 1 }, + { "px": [208,208], "src": [80,112], "f": 1, "t": 257, "d": [95,221], "a": 1 }, + { "px": [16,224], "src": [80,112], "f": 0, "t": 257, "d": [95,225], "a": 1 }, + { "px": [64,272], "src": [80,128], "f": 1, "t": 293, "d": [95,276], "a": 1 }, + { "px": [160,272], "src": [80,128], "f": 0, "t": 293, "d": [95,282], "a": 1 }, + { "px": [128,96], "src": [80,160], "f": 1, "t": 365, "d": [96,104], "a": 1 }, + { "px": [80,224], "src": [80,160], "f": 1, "t": 365, "d": [96,229], "a": 1 }, + { "px": [128,224], "src": [80,160], "f": 0, "t": 365, "d": [96,232], "a": 1 }, + { "px": [16,288], "src": [80,144], "f": 0, "t": 329, "d": [96,289], "a": 1 }, + { "px": [208,288], "src": [80,144], "f": 1, "t": 329, "d": [96,301], "a": 1 }, + { "px": [48,336], "src": [80,160], "f": 0, "t": 365, "d": [96,339], "a": 1 }, + { "px": [192,336], "src": [80,160], "f": 1, "t": 365, "d": [96,348], "a": 1 }, + { "px": [80,352], "src": [80,160], "f": 0, "t": 365, "d": [96,357], "a": 1 }, + { "px": [176,352], "src": [80,144], "f": 1, "t": 329, "d": [96,363], "a": 1 }, + { "px": [96,96], "src": [16,80], "f": 0, "t": 181, "d": [97,102], "a": 1 }, + { "px": [128,98], "src": [112,112], "f": 0, "t": 259, "d": [97,104], "a": 1 }, + { "px": [0,161], "src": [128,112], "f": 0, "t": 260, "d": [97,160], "a": 1 }, + { "px": [16,161], "src": [112,112], "f": 0, "t": 259, "d": [97,161], "a": 1 }, + { "px": [32,160], "src": [112,112], "f": 0, "t": 259, "d": [97,162], "a": 1 }, + { "px": [192,162], "src": [32,80], "f": 0, "t": 182, "d": [97,172], "a": 1 }, + { "px": [208,162], "src": [0,80], "f": 0, "t": 180, "d": [97,173], "a": 1 }, + { "px": [224,161], "src": [144,112], "f": 0, "t": 261, "d": [97,174], "a": 1 }, + { "px": [240,162], "src": [112,112], "f": 0, "t": 259, "d": [97,175], "a": 1 }, + { "px": [64,226], "src": [112,112], "f": 0, "t": 259, "d": [97,228], "a": 1 }, + { "px": [80,224], "src": [144,112], "f": 0, "t": 261, "d": [97,229], "a": 1 }, + { "px": [128,225], "src": [32,80], "f": 0, "t": 182, "d": [97,232], "a": 1 }, + { "px": [144,226], "src": [128,112], "f": 0, "t": 260, "d": [97,233], "a": 1 }, + { "px": [160,225], "src": [128,112], "f": 0, "t": 260, "d": [97,234], "a": 1 }, + { "px": [176,224], "src": [0,80], "f": 0, "t": 180, "d": [97,235], "a": 1 }, + { "px": [16,288], "src": [128,112], "f": 0, "t": 260, "d": [97,289], "a": 1 }, + { "px": [208,288], "src": [0,80], "f": 0, "t": 180, "d": [97,301], "a": 1 }, + { "px": [48,336], "src": [128,112], "f": 0, "t": 260, "d": [97,339], "a": 1 }, + { "px": [64,338], "src": [128,112], "f": 0, "t": 260, "d": [97,340], "a": 1 }, + { "px": [192,338], "src": [112,112], "f": 0, "t": 259, "d": [97,348], "a": 1 }, + { "px": [80,354], "src": [112,112], "f": 0, "t": 259, "d": [97,357], "a": 1 }, + { "px": [96,354], "src": [128,112], "f": 0, "t": 260, "d": [97,358], "a": 1 }, + { "px": [112,354], "src": [112,112], "f": 0, "t": 259, "d": [97,359], "a": 1 }, + { "px": [128,353], "src": [0,80], "f": 0, "t": 180, "d": [97,360], "a": 1 }, + { "px": [144,352], "src": [16,80], "f": 0, "t": 181, "d": [97,361], "a": 1 }, + { "px": [160,353], "src": [32,80], "f": 0, "t": 182, "d": [97,362], "a": 1 }, + { "px": [176,354], "src": [0,80], "f": 0, "t": 180, "d": [97,363], "a": 1 }, + { "px": [112,0], "src": [64,128], "f": 0, "t": 292, "d": [98,7], "a": 1 }, + { "px": [128,16], "src": [64,128], "f": 1, "t": 292, "d": [98,24], "a": 1 }, + { "px": [112,32], "src": [64,112], "f": 0, "t": 256, "d": [98,39], "a": 1 }, + { "px": [112,48], "src": [64,112], "f": 0, "t": 256, "d": [98,55], "a": 1 }, + { "px": [64,64], "src": [64,128], "f": 0, "t": 292, "d": [98,68], "a": 1 }, + { "px": [48,80], "src": [64,112], "f": 0, "t": 256, "d": [98,83], "a": 1 }, + { "px": [128,80], "src": [64,112], "f": 1, "t": 256, "d": [98,88], "a": 1 }, + { "px": [48,96], "src": [64,112], "f": 0, "t": 256, "d": [98,99], "a": 1 }, + { "px": [128,96], "src": [64,112], "f": 1, "t": 256, "d": [98,104], "a": 1 }, + { "px": [48,112], "src": [64,112], "f": 0, "t": 256, "d": [98,115], "a": 1 }, + { "px": [80,112], "src": [64,128], "f": 1, "t": 292, "d": [98,117], "a": 1 }, + { "px": [48,128], "src": [64,112], "f": 0, "t": 256, "d": [98,131], "a": 1 }, + { "px": [160,144], "src": [64,128], "f": 0, "t": 292, "d": [98,154], "a": 1 }, + { "px": [48,176], "src": [64,128], "f": 0, "t": 292, "d": [98,179], "a": 1 }, + { "px": [80,176], "src": [64,128], "f": 1, "t": 292, "d": [98,181], "a": 1 }, + { "px": [144,176], "src": [64,112], "f": 0, "t": 256, "d": [98,185], "a": 1 }, + { "px": [48,192], "src": [64,112], "f": 0, "t": 256, "d": [98,195], "a": 1 }, + { "px": [80,192], "src": [64,128], "f": 1, "t": 292, "d": [98,197], "a": 1 }, + { "px": [128,192], "src": [64,128], "f": 0, "t": 292, "d": [98,200], "a": 1 }, + { "px": [176,192], "src": [64,128], "f": 1, "t": 292, "d": [98,203], "a": 1 }, + { "px": [32,208], "src": [64,112], "f": 0, "t": 256, "d": [98,210], "a": 1 }, + { "px": [80,208], "src": [64,128], "f": 1, "t": 292, "d": [98,213], "a": 1 }, + { "px": [128,208], "src": [64,128], "f": 0, "t": 292, "d": [98,216], "a": 1 }, + { "px": [208,208], "src": [64,128], "f": 1, "t": 292, "d": [98,221], "a": 1 }, + { "px": [80,224], "src": [64,112], "f": 1, "t": 256, "d": [98,229], "a": 1 }, + { "px": [128,224], "src": [64,112], "f": 0, "t": 256, "d": [98,232], "a": 1 }, + { "px": [208,224], "src": [64,112], "f": 1, "t": 256, "d": [98,237], "a": 1 }, + { "px": [16,240], "src": [64,128], "f": 0, "t": 292, "d": [98,241], "a": 1 }, + { "px": [16,256], "src": [64,112], "f": 0, "t": 256, "d": [98,257], "a": 1 }, + { "px": [48,256], "src": [64,128], "f": 1, "t": 292, "d": [98,259], "a": 1 }, + { "px": [192,256], "src": [64,112], "f": 0, "t": 256, "d": [98,268], "a": 1 }, + { "px": [208,256], "src": [64,112], "f": 1, "t": 256, "d": [98,269], "a": 1 }, + { "px": [16,272], "src": [64,128], "f": 0, "t": 292, "d": [98,273], "a": 1 }, + { "px": [64,272], "src": [64,128], "f": 1, "t": 292, "d": [98,276], "a": 1 }, + { "px": [160,272], "src": [64,112], "f": 0, "t": 256, "d": [98,282], "a": 1 }, + { "px": [16,288], "src": [64,128], "f": 0, "t": 292, "d": [98,289], "a": 1 }, + { "px": [208,288], "src": [64,112], "f": 1, "t": 256, "d": [98,301], "a": 1 }, + { "px": [192,304], "src": [64,128], "f": 1, "t": 292, "d": [98,316], "a": 1 }, + { "px": [192,320], "src": [64,112], "f": 1, "t": 256, "d": [98,332], "a": 1 }, + { "px": [48,336], "src": [64,128], "f": 0, "t": 292, "d": [98,339], "a": 1 }, + { "px": [80,352], "src": [64,128], "f": 0, "t": 292, "d": [98,357], "a": 1 }, + { "px": [160,144], "src": [96,96], "f": 0, "t": 222, "d": [93,154], "a": 1 }, + { "px": [192,144], "src": [112,96], "f": 0, "t": 223, "d": [93,156], "a": 1 }, + { "px": [240,144], "src": [128,80], "f": 0, "t": 188, "d": [93,159], "a": 1 }, + { "px": [160,272], "src": [112,80], "f": 0, "t": 187, "d": [93,282], "a": 1 }, + { "px": [144,288], "src": [96,80], "f": 0, "t": 186, "d": [93,297], "a": 1 }, + { "px": [64,64], "src": [128,96], "f": 0, "t": 224, "d": [101,68], "a": 1 }, + { "px": [80,64], "src": [112,96], "f": 0, "t": 223, "d": [101,69], "a": 1 }, + { "px": [96,64], "src": [128,96], "f": 0, "t": 224, "d": [101,70], "a": 1 }, + { "px": [48,80], "src": [128,96], "f": 0, "t": 224, "d": [101,83], "a": 1 }, + { "px": [0,144], "src": [112,96], "f": 0, "t": 223, "d": [101,144], "a": 1 }, + { "px": [16,144], "src": [128,96], "f": 0, "t": 224, "d": [101,145], "a": 1 }, + { "px": [32,144], "src": [128,96], "f": 0, "t": 224, "d": [101,146], "a": 1 }, + { "px": [160,144], "src": [112,96], "f": 0, "t": 223, "d": [101,154], "a": 1 }, + { "px": [176,144], "src": [112,96], "f": 0, "t": 223, "d": [101,155], "a": 1 }, + { "px": [192,144], "src": [112,96], "f": 0, "t": 223, "d": [101,156], "a": 1 }, + { "px": [208,144], "src": [128,96], "f": 0, "t": 224, "d": [101,157], "a": 1 }, + { "px": [224,144], "src": [112,96], "f": 0, "t": 223, "d": [101,158], "a": 1 }, + { "px": [240,144], "src": [128,96], "f": 0, "t": 224, "d": [101,159], "a": 1 }, + { "px": [128,192], "src": [112,96], "f": 0, "t": 223, "d": [101,200], "a": 1 }, + { "px": [32,208], "src": [112,96], "f": 0, "t": 223, "d": [101,210], "a": 1 }, + { "px": [192,208], "src": [112,96], "f": 0, "t": 223, "d": [101,220], "a": 1 }, + { "px": [208,208], "src": [128,96], "f": 0, "t": 224, "d": [101,221], "a": 1 }, + { "px": [16,224], "src": [112,96], "f": 0, "t": 223, "d": [101,225], "a": 1 }, + { "px": [64,272], "src": [112,96], "f": 0, "t": 223, "d": [101,276], "a": 1 }, + { "px": [160,272], "src": [128,96], "f": 0, "t": 224, "d": [101,282], "a": 1 }, + { "px": [176,272], "src": [128,96], "f": 0, "t": 224, "d": [101,283], "a": 1 }, + { "px": [80,288], "src": [128,96], "f": 0, "t": 224, "d": [101,293], "a": 1 }, + { "px": [96,288], "src": [128,96], "f": 0, "t": 224, "d": [101,294], "a": 1 }, + { "px": [112,288], "src": [128,96], "f": 0, "t": 224, "d": [101,295], "a": 1 }, + { "px": [128,288], "src": [128,96], "f": 0, "t": 224, "d": [101,296], "a": 1 }, + { "px": [144,288], "src": [128,96], "f": 0, "t": 224, "d": [101,297], "a": 1 }, + { "px": [16,0], "src": [176,208], "f": 0, "t": 479, "d": [104,1], "a": 1 }, + { "px": [32,0], "src": [192,208], "f": 0, "t": 480, "d": [104,2], "a": 1 }, + { "px": [48,0], "src": [176,208], "f": 0, "t": 479, "d": [104,3], "a": 1 }, + { "px": [192,0], "src": [192,208], "f": 0, "t": 480, "d": [104,12], "a": 1 }, + { "px": [224,0], "src": [176,208], "f": 0, "t": 479, "d": [104,14], "a": 1 }, + { "px": [16,16], "src": [192,208], "f": 0, "t": 480, "d": [104,17], "a": 1 }, + { "px": [64,16], "src": [176,208], "f": 0, "t": 479, "d": [104,20], "a": 1 }, + { "px": [176,16], "src": [176,208], "f": 0, "t": 479, "d": [104,27], "a": 1 }, + { "px": [192,16], "src": [176,208], "f": 0, "t": 479, "d": [104,28], "a": 1 }, + { "px": [208,16], "src": [192,208], "f": 0, "t": 480, "d": [104,29], "a": 1 }, + { "px": [240,16], "src": [192,208], "f": 0, "t": 480, "d": [104,31], "a": 1 }, + { "px": [0,32], "src": [192,208], "f": 0, "t": 480, "d": [104,32], "a": 1 }, + { "px": [16,32], "src": [176,208], "f": 0, "t": 479, "d": [104,33], "a": 1 }, + { "px": [32,32], "src": [192,208], "f": 0, "t": 480, "d": [104,34], "a": 1 }, + { "px": [48,32], "src": [192,208], "f": 0, "t": 480, "d": [104,35], "a": 1 }, + { "px": [176,32], "src": [176,208], "f": 0, "t": 479, "d": [104,43], "a": 1 }, + { "px": [208,32], "src": [192,208], "f": 0, "t": 480, "d": [104,45], "a": 1 }, + { "px": [224,32], "src": [176,208], "f": 0, "t": 479, "d": [104,46], "a": 1 }, + { "px": [0,48], "src": [208,208], "f": 0, "t": 481, "d": [104,48], "a": 1 }, + { "px": [16,48], "src": [208,208], "f": 0, "t": 481, "d": [104,49], "a": 1 }, + { "px": [32,48], "src": [176,208], "f": 0, "t": 479, "d": [104,50], "a": 1 }, + { "px": [176,48], "src": [176,208], "f": 0, "t": 479, "d": [104,59], "a": 1 }, + { "px": [192,48], "src": [176,208], "f": 0, "t": 479, "d": [104,60], "a": 1 }, + { "px": [208,48], "src": [176,208], "f": 0, "t": 479, "d": [104,61], "a": 1 }, + { "px": [224,48], "src": [192,208], "f": 0, "t": 480, "d": [104,62], "a": 1 }, + { "px": [0,64], "src": [176,208], "f": 0, "t": 479, "d": [104,64], "a": 1 }, + { "px": [192,64], "src": [192,208], "f": 0, "t": 480, "d": [104,76], "a": 1 }, + { "px": [208,64], "src": [192,208], "f": 0, "t": 480, "d": [104,77], "a": 1 }, + { "px": [224,64], "src": [176,208], "f": 0, "t": 479, "d": [104,78], "a": 1 }, + { "px": [240,64], "src": [176,208], "f": 0, "t": 479, "d": [104,79], "a": 1 }, + { "px": [192,80], "src": [192,208], "f": 0, "t": 480, "d": [104,92], "a": 1 }, + { "px": [192,96], "src": [208,208], "f": 0, "t": 481, "d": [104,108], "a": 1 }, + { "px": [224,96], "src": [192,208], "f": 0, "t": 480, "d": [104,110], "a": 1 }, + { "px": [240,304], "src": [192,208], "f": 0, "t": 480, "d": [104,319], "a": 1 }, + { "px": [0,320], "src": [176,208], "f": 0, "t": 479, "d": [104,320], "a": 1 }, + { "px": [240,320], "src": [176,208], "f": 0, "t": 479, "d": [104,335], "a": 1 }, + { "px": [0,336], "src": [176,208], "f": 0, "t": 479, "d": [104,336], "a": 1 }, + { "px": [16,352], "src": [208,208], "f": 0, "t": 481, "d": [104,353], "a": 1 }, + { "px": [240,352], "src": [192,208], "f": 0, "t": 480, "d": [104,367], "a": 1 }, + { "px": [0,368], "src": [176,208], "f": 0, "t": 479, "d": [104,368], "a": 1 }, + { "px": [16,368], "src": [192,208], "f": 0, "t": 480, "d": [104,369], "a": 1 }, + { "px": [32,368], "src": [192,208], "f": 0, "t": 480, "d": [104,370], "a": 1 }, + { "px": [208,368], "src": [192,208], "f": 0, "t": 480, "d": [104,381], "a": 1 }, + { "px": [224,368], "src": [208,208], "f": 0, "t": 481, "d": [104,382], "a": 1 }, + { "px": [240,368], "src": [208,208], "f": 0, "t": 481, "d": [104,383], "a": 1 }, + { "px": [0,384], "src": [208,208], "f": 0, "t": 481, "d": [104,384], "a": 1 }, + { "px": [16,384], "src": [192,208], "f": 0, "t": 480, "d": [104,385], "a": 1 }, + { "px": [48,384], "src": [208,208], "f": 0, "t": 481, "d": [104,387], "a": 1 }, + { "px": [64,384], "src": [208,208], "f": 0, "t": 481, "d": [104,388], "a": 1 }, + { "px": [192,384], "src": [192,208], "f": 0, "t": 480, "d": [104,396], "a": 1 }, + { "px": [208,384], "src": [208,208], "f": 0, "t": 481, "d": [104,397], "a": 1 }, + { "px": [224,384], "src": [176,208], "f": 0, "t": 479, "d": [104,398], "a": 1 }, + { "px": [240,384], "src": [192,208], "f": 0, "t": 480, "d": [104,399], "a": 1 }, + { "px": [0,0], "src": [272,176], "f": 0, "t": 413, "d": [108,0], "a": 1 }, + { "px": [16,0], "src": [272,176], "f": 0, "t": 413, "d": [108,1], "a": 1 }, + { "px": [32,0], "src": [272,176], "f": 0, "t": 413, "d": [108,2], "a": 1 }, + { "px": [48,0], "src": [272,176], "f": 0, "t": 413, "d": [108,3], "a": 1 }, + { "px": [64,0], "src": [272,176], "f": 0, "t": 413, "d": [108,4], "a": 1 }, + { "px": [80,0], "src": [272,176], "f": 0, "t": 413, "d": [108,5], "a": 1 }, + { "px": [160,0], "src": [272,176], "f": 0, "t": 413, "d": [108,10], "a": 1 }, + { "px": [176,0], "src": [272,176], "f": 0, "t": 413, "d": [108,11], "a": 1 }, + { "px": [192,0], "src": [272,176], "f": 0, "t": 413, "d": [108,12], "a": 1 }, + { "px": [208,0], "src": [272,176], "f": 0, "t": 413, "d": [108,13], "a": 1 }, + { "px": [224,0], "src": [272,176], "f": 0, "t": 413, "d": [108,14], "a": 1 }, + { "px": [240,0], "src": [272,176], "f": 0, "t": 413, "d": [108,15], "a": 1 }, + { "px": [0,16], "src": [272,176], "f": 0, "t": 413, "d": [108,16], "a": 1 }, + { "px": [16,16], "src": [272,176], "f": 0, "t": 413, "d": [108,17], "a": 1 }, + { "px": [32,16], "src": [272,176], "f": 0, "t": 413, "d": [108,18], "a": 1 }, + { "px": [48,16], "src": [272,176], "f": 0, "t": 413, "d": [108,19], "a": 1 }, + { "px": [64,16], "src": [272,176], "f": 0, "t": 413, "d": [108,20], "a": 1 }, + { "px": [80,16], "src": [272,176], "f": 0, "t": 413, "d": [108,21], "a": 1 }, + { "px": [160,16], "src": [272,176], "f": 0, "t": 413, "d": [108,26], "a": 1 }, + { "px": [176,16], "src": [272,176], "f": 0, "t": 413, "d": [108,27], "a": 1 }, + { "px": [192,16], "src": [272,176], "f": 0, "t": 413, "d": [108,28], "a": 1 }, + { "px": [208,16], "src": [272,176], "f": 0, "t": 413, "d": [108,29], "a": 1 }, + { "px": [224,16], "src": [272,176], "f": 0, "t": 413, "d": [108,30], "a": 1 }, + { "px": [240,16], "src": [272,176], "f": 0, "t": 413, "d": [108,31], "a": 1 }, + { "px": [0,32], "src": [272,176], "f": 0, "t": 413, "d": [108,32], "a": 1 }, + { "px": [16,32], "src": [272,176], "f": 0, "t": 413, "d": [108,33], "a": 1 }, + { "px": [32,32], "src": [272,176], "f": 0, "t": 413, "d": [108,34], "a": 1 }, + { "px": [48,32], "src": [272,176], "f": 0, "t": 413, "d": [108,35], "a": 1 }, + { "px": [64,32], "src": [272,176], "f": 0, "t": 413, "d": [108,36], "a": 1 }, + { "px": [80,32], "src": [272,176], "f": 0, "t": 413, "d": [108,37], "a": 1 }, + { "px": [160,32], "src": [272,176], "f": 0, "t": 413, "d": [108,42], "a": 1 }, + { "px": [176,32], "src": [272,176], "f": 0, "t": 413, "d": [108,43], "a": 1 }, + { "px": [192,32], "src": [272,176], "f": 0, "t": 413, "d": [108,44], "a": 1 }, + { "px": [208,32], "src": [272,176], "f": 0, "t": 413, "d": [108,45], "a": 1 }, + { "px": [224,32], "src": [272,176], "f": 0, "t": 413, "d": [108,46], "a": 1 }, + { "px": [240,32], "src": [272,176], "f": 0, "t": 413, "d": [108,47], "a": 1 }, + { "px": [0,48], "src": [272,176], "f": 0, "t": 413, "d": [108,48], "a": 1 }, + { "px": [16,48], "src": [272,176], "f": 0, "t": 413, "d": [108,49], "a": 1 }, + { "px": [32,48], "src": [272,176], "f": 0, "t": 413, "d": [108,50], "a": 1 }, + { "px": [160,48], "src": [272,176], "f": 0, "t": 413, "d": [108,58], "a": 1 }, + { "px": [176,48], "src": [272,176], "f": 0, "t": 413, "d": [108,59], "a": 1 }, + { "px": [192,48], "src": [272,176], "f": 0, "t": 413, "d": [108,60], "a": 1 }, + { "px": [208,48], "src": [272,176], "f": 0, "t": 413, "d": [108,61], "a": 1 }, + { "px": [224,48], "src": [272,176], "f": 0, "t": 413, "d": [108,62], "a": 1 }, + { "px": [240,48], "src": [272,176], "f": 0, "t": 413, "d": [108,63], "a": 1 }, + { "px": [0,64], "src": [272,176], "f": 0, "t": 413, "d": [108,64], "a": 1 }, + { "px": [16,64], "src": [272,176], "f": 0, "t": 413, "d": [108,65], "a": 1 }, + { "px": [160,64], "src": [272,176], "f": 0, "t": 413, "d": [108,74], "a": 1 }, + { "px": [176,64], "src": [272,176], "f": 0, "t": 413, "d": [108,75], "a": 1 }, + { "px": [192,64], "src": [272,176], "f": 0, "t": 413, "d": [108,76], "a": 1 }, + { "px": [208,64], "src": [272,176], "f": 0, "t": 413, "d": [108,77], "a": 1 }, + { "px": [224,64], "src": [272,176], "f": 0, "t": 413, "d": [108,78], "a": 1 }, + { "px": [240,64], "src": [272,176], "f": 0, "t": 413, "d": [108,79], "a": 1 }, + { "px": [0,80], "src": [272,176], "f": 0, "t": 413, "d": [108,80], "a": 1 }, + { "px": [16,80], "src": [272,176], "f": 0, "t": 413, "d": [108,81], "a": 1 }, + { "px": [160,80], "src": [272,176], "f": 0, "t": 413, "d": [108,90], "a": 1 }, + { "px": [176,80], "src": [272,176], "f": 0, "t": 413, "d": [108,91], "a": 1 }, + { "px": [192,80], "src": [272,176], "f": 0, "t": 413, "d": [108,92], "a": 1 }, + { "px": [208,80], "src": [272,176], "f": 0, "t": 413, "d": [108,93], "a": 1 }, + { "px": [224,80], "src": [272,176], "f": 0, "t": 413, "d": [108,94], "a": 1 }, + { "px": [240,80], "src": [272,176], "f": 0, "t": 413, "d": [108,95], "a": 1 }, + { "px": [0,96], "src": [272,176], "f": 0, "t": 413, "d": [108,96], "a": 1 }, + { "px": [16,96], "src": [272,176], "f": 0, "t": 413, "d": [108,97], "a": 1 }, + { "px": [160,96], "src": [272,176], "f": 0, "t": 413, "d": [108,106], "a": 1 }, + { "px": [176,96], "src": [272,176], "f": 0, "t": 413, "d": [108,107], "a": 1 }, + { "px": [192,96], "src": [272,176], "f": 0, "t": 413, "d": [108,108], "a": 1 }, + { "px": [208,96], "src": [272,176], "f": 0, "t": 413, "d": [108,109], "a": 1 }, + { "px": [224,96], "src": [272,176], "f": 0, "t": 413, "d": [108,110], "a": 1 }, + { "px": [240,96], "src": [272,176], "f": 0, "t": 413, "d": [108,111], "a": 1 }, + { "px": [0,112], "src": [272,176], "f": 0, "t": 413, "d": [108,112], "a": 1 }, + { "px": [16,112], "src": [272,176], "f": 0, "t": 413, "d": [108,113], "a": 1 }, + { "px": [160,112], "src": [272,176], "f": 0, "t": 413, "d": [108,122], "a": 1 }, + { "px": [176,112], "src": [272,176], "f": 0, "t": 413, "d": [108,123], "a": 1 }, + { "px": [192,112], "src": [272,176], "f": 0, "t": 413, "d": [108,124], "a": 1 }, + { "px": [208,112], "src": [272,176], "f": 0, "t": 413, "d": [108,125], "a": 1 }, + { "px": [224,112], "src": [272,176], "f": 0, "t": 413, "d": [108,126], "a": 1 }, + { "px": [240,112], "src": [272,176], "f": 0, "t": 413, "d": [108,127], "a": 1 }, + { "px": [112,128], "src": [272,176], "f": 0, "t": 413, "d": [108,135], "a": 1 }, + { "px": [128,128], "src": [272,176], "f": 0, "t": 413, "d": [108,136], "a": 1 }, + { "px": [112,144], "src": [272,176], "f": 0, "t": 413, "d": [108,151], "a": 1 }, + { "px": [112,160], "src": [272,176], "f": 0, "t": 413, "d": [108,167], "a": 1 }, + { "px": [0,192], "src": [272,176], "f": 0, "t": 413, "d": [108,192], "a": 1 }, + { "px": [240,192], "src": [272,176], "f": 0, "t": 413, "d": [108,207], "a": 1 }, + { "px": [240,208], "src": [272,176], "f": 0, "t": 413, "d": [108,223], "a": 1 }, + { "px": [240,224], "src": [272,176], "f": 0, "t": 413, "d": [108,239], "a": 1 }, + { "px": [240,240], "src": [272,176], "f": 0, "t": 413, "d": [108,255], "a": 1 }, + { "px": [96,256], "src": [272,176], "f": 0, "t": 413, "d": [108,262], "a": 1 }, + { "px": [112,256], "src": [272,176], "f": 0, "t": 413, "d": [108,263], "a": 1 }, + { "px": [128,256], "src": [272,176], "f": 0, "t": 413, "d": [108,264], "a": 1 }, + { "px": [240,256], "src": [272,176], "f": 0, "t": 413, "d": [108,271], "a": 1 }, + { "px": [240,272], "src": [272,176], "f": 0, "t": 413, "d": [108,287], "a": 1 }, + { "px": [240,288], "src": [272,176], "f": 0, "t": 413, "d": [108,303], "a": 1 }, + { "px": [240,304], "src": [272,176], "f": 0, "t": 413, "d": [108,319], "a": 1 }, + { "px": [0,320], "src": [272,176], "f": 0, "t": 413, "d": [108,320], "a": 1 }, + { "px": [16,320], "src": [272,176], "f": 0, "t": 413, "d": [108,321], "a": 1 }, + { "px": [224,320], "src": [272,176], "f": 0, "t": 413, "d": [108,334], "a": 1 }, + { "px": [240,320], "src": [272,176], "f": 0, "t": 413, "d": [108,335], "a": 1 }, + { "px": [0,336], "src": [272,176], "f": 0, "t": 413, "d": [108,336], "a": 1 }, + { "px": [16,336], "src": [272,176], "f": 0, "t": 413, "d": [108,337], "a": 1 }, + { "px": [224,336], "src": [272,176], "f": 0, "t": 413, "d": [108,350], "a": 1 }, + { "px": [240,336], "src": [272,176], "f": 0, "t": 413, "d": [108,351], "a": 1 }, + { "px": [0,352], "src": [272,176], "f": 0, "t": 413, "d": [108,352], "a": 1 }, + { "px": [16,352], "src": [272,176], "f": 0, "t": 413, "d": [108,353], "a": 1 }, + { "px": [224,352], "src": [272,176], "f": 0, "t": 413, "d": [108,366], "a": 1 }, + { "px": [240,352], "src": [272,176], "f": 0, "t": 413, "d": [108,367], "a": 1 }, + { "px": [0,368], "src": [272,176], "f": 0, "t": 413, "d": [108,368], "a": 1 }, + { "px": [16,368], "src": [272,176], "f": 0, "t": 413, "d": [108,369], "a": 1 }, + { "px": [32,368], "src": [272,176], "f": 0, "t": 413, "d": [108,370], "a": 1 }, + { "px": [48,368], "src": [272,176], "f": 0, "t": 413, "d": [108,371], "a": 1 }, + { "px": [208,368], "src": [272,176], "f": 0, "t": 413, "d": [108,381], "a": 1 }, + { "px": [224,368], "src": [272,176], "f": 0, "t": 413, "d": [108,382], "a": 1 }, + { "px": [240,368], "src": [272,176], "f": 0, "t": 413, "d": [108,383], "a": 1 }, + { "px": [0,384], "src": [272,176], "f": 0, "t": 413, "d": [108,384], "a": 1 }, + { "px": [16,384], "src": [272,176], "f": 0, "t": 413, "d": [108,385], "a": 1 }, + { "px": [32,384], "src": [272,176], "f": 0, "t": 413, "d": [108,386], "a": 1 }, + { "px": [48,384], "src": [272,176], "f": 0, "t": 413, "d": [108,387], "a": 1 }, + { "px": [64,384], "src": [272,176], "f": 0, "t": 413, "d": [108,388], "a": 1 }, + { "px": [80,384], "src": [272,176], "f": 0, "t": 413, "d": [108,389], "a": 1 }, + { "px": [96,384], "src": [272,176], "f": 0, "t": 413, "d": [108,390], "a": 1 }, + { "px": [112,384], "src": [272,176], "f": 0, "t": 413, "d": [108,391], "a": 1 }, + { "px": [128,384], "src": [272,176], "f": 0, "t": 413, "d": [108,392], "a": 1 }, + { "px": [144,384], "src": [272,176], "f": 0, "t": 413, "d": [108,393], "a": 1 }, + { "px": [160,384], "src": [272,176], "f": 0, "t": 413, "d": [108,394], "a": 1 }, + { "px": [176,384], "src": [272,176], "f": 0, "t": 413, "d": [108,395], "a": 1 }, + { "px": [192,384], "src": [272,176], "f": 0, "t": 413, "d": [108,396], "a": 1 }, + { "px": [208,384], "src": [272,176], "f": 0, "t": 413, "d": [108,397], "a": 1 }, + { "px": [224,384], "src": [272,176], "f": 0, "t": 413, "d": [108,398], "a": 1 }, + { "px": [240,384], "src": [272,176], "f": 0, "t": 413, "d": [108,399], "a": 1 }, + { "px": [48,48], "src": [272,192], "f": 0, "t": 449, "d": [109,51], "a": 1 }, + { "px": [32,64], "src": [272,192], "f": 0, "t": 449, "d": [109,66], "a": 1 }, + { "px": [144,112], "src": [272,192], "f": 3, "t": 449, "d": [109,121], "a": 1 }, + { "px": [144,128], "src": [272,192], "f": 0, "t": 449, "d": [109,137], "a": 1 }, + { "px": [128,144], "src": [272,192], "f": 0, "t": 449, "d": [109,152], "a": 1 }, + { "px": [112,176], "src": [272,192], "f": 0, "t": 449, "d": [109,183], "a": 1 }, + { "px": [16,192], "src": [272,192], "f": 0, "t": 449, "d": [109,193], "a": 1 }, + { "px": [224,192], "src": [272,192], "f": 1, "t": 449, "d": [109,206], "a": 1 }, + { "px": [0,208], "src": [272,192], "f": 0, "t": 449, "d": [109,208], "a": 1 }, + { "px": [96,240], "src": [272,192], "f": 3, "t": 449, "d": [109,246], "a": 1 }, + { "px": [112,240], "src": [272,192], "f": 2, "t": 449, "d": [109,247], "a": 1 }, + { "px": [80,256], "src": [272,192], "f": 1, "t": 449, "d": [109,261], "a": 1 }, + { "px": [144,256], "src": [272,192], "f": 0, "t": 449, "d": [109,265], "a": 1 }, + { "px": [0,304], "src": [272,192], "f": 2, "t": 449, "d": [109,304], "a": 1 }, + { "px": [224,304], "src": [272,192], "f": 3, "t": 449, "d": [109,318], "a": 1 }, + { "px": [32,352], "src": [272,192], "f": 2, "t": 449, "d": [109,354], "a": 1 }, + { "px": [208,352], "src": [272,192], "f": 3, "t": 449, "d": [109,365], "a": 1 }, + { "px": [64,368], "src": [272,192], "f": 2, "t": 449, "d": [109,372], "a": 1 }, + { "px": [192,368], "src": [272,192], "f": 3, "t": 449, "d": [109,380], "a": 1 } + ], + "seed": 1576400, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 25, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a3591db4-66b0-11ec-9cd7-2113d4393590", + "levelId": 3, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [112,16], "src": [48,192], "f": 0, "t": 435, "d": [51,23], "a": 1 }, + { "px": [112,32], "src": [48,192], "f": 0, "t": 435, "d": [51,39], "a": 1 }, + { "px": [112,48], "src": [64,192], "f": 0, "t": 436, "d": [51,55], "a": 1 }, + { "px": [112,80], "src": [48,192], "f": 0, "t": 435, "d": [51,87], "a": 1 }, + { "px": [112,96], "src": [80,192], "f": 0, "t": 437, "d": [51,103], "a": 1 }, + { "px": [80,128], "src": [64,192], "f": 0, "t": 436, "d": [51,133], "a": 1 }, + { "px": [80,144], "src": [64,192], "f": 0, "t": 436, "d": [51,149], "a": 1 }, + { "px": [80,176], "src": [48,192], "f": 0, "t": 435, "d": [51,181], "a": 1 }, + { "px": [144,176], "src": [64,192], "f": 0, "t": 436, "d": [51,185], "a": 1 }, + { "px": [144,192], "src": [80,192], "f": 0, "t": 437, "d": [51,201], "a": 1 }, + { "px": [80,208], "src": [80,192], "f": 0, "t": 437, "d": [51,213], "a": 1 }, + { "px": [144,208], "src": [64,192], "f": 0, "t": 436, "d": [51,217], "a": 1 }, + { "px": [16,224], "src": [80,192], "f": 0, "t": 437, "d": [51,225], "a": 1 }, + { "px": [48,240], "src": [48,192], "f": 0, "t": 435, "d": [51,243], "a": 1 }, + { "px": [208,240], "src": [48,192], "f": 0, "t": 435, "d": [51,253], "a": 1 }, + { "px": [48,256], "src": [64,192], "f": 0, "t": 436, "d": [51,259], "a": 1 }, + { "px": [48,272], "src": [80,192], "f": 0, "t": 437, "d": [51,275], "a": 1 }, + { "px": [160,272], "src": [48,192], "f": 0, "t": 435, "d": [51,282], "a": 1 }, + { "px": [48,288], "src": [80,192], "f": 0, "t": 437, "d": [51,291], "a": 1 }, + { "px": [112,288], "src": [80,192], "f": 0, "t": 437, "d": [51,295], "a": 1 }, + { "px": [144,288], "src": [64,192], "f": 0, "t": 436, "d": [51,297], "a": 1 }, + { "px": [160,288], "src": [48,192], "f": 0, "t": 435, "d": [51,298], "a": 1 }, + { "px": [176,304], "src": [64,192], "f": 0, "t": 436, "d": [51,315], "a": 1 }, + { "px": [48,320], "src": [48,192], "f": 0, "t": 435, "d": [51,323], "a": 1 }, + { "px": [64,320], "src": [64,192], "f": 0, "t": 436, "d": [51,324], "a": 1 }, + { "px": [80,320], "src": [64,192], "f": 0, "t": 436, "d": [51,325], "a": 1 }, + { "px": [96,320], "src": [80,192], "f": 0, "t": 437, "d": [51,326], "a": 1 }, + { "px": [112,320], "src": [64,192], "f": 0, "t": 436, "d": [51,327], "a": 1 }, + { "px": [176,320], "src": [48,192], "f": 0, "t": 435, "d": [51,331], "a": 1 }, + { "px": [192,320], "src": [80,192], "f": 0, "t": 437, "d": [51,332], "a": 1 }, + { "px": [48,336], "src": [48,192], "f": 0, "t": 435, "d": [51,339], "a": 1 }, + { "px": [64,336], "src": [64,192], "f": 0, "t": 436, "d": [51,340], "a": 1 }, + { "px": [80,336], "src": [64,192], "f": 0, "t": 436, "d": [51,341], "a": 1 }, + { "px": [96,336], "src": [48,192], "f": 0, "t": 435, "d": [51,342], "a": 1 }, + { "px": [112,336], "src": [80,192], "f": 0, "t": 437, "d": [51,343], "a": 1 }, + { "px": [128,336], "src": [64,192], "f": 0, "t": 436, "d": [51,344], "a": 1 }, + { "px": [176,336], "src": [80,192], "f": 0, "t": 437, "d": [51,347], "a": 1 }, + { "px": [192,336], "src": [48,192], "f": 0, "t": 435, "d": [51,348], "a": 1 }, + { "px": [80,352], "src": [64,192], "f": 0, "t": 436, "d": [51,357], "a": 1 }, + { "px": [96,352], "src": [64,192], "f": 0, "t": 436, "d": [51,358], "a": 1 }, + { "px": [144,352], "src": [80,192], "f": 0, "t": 437, "d": [51,361], "a": 1 }, + { "px": [160,352], "src": [80,192], "f": 0, "t": 437, "d": [51,362], "a": 1 }, + { "px": [176,352], "src": [80,192], "f": 0, "t": 437, "d": [51,363], "a": 1 }, + { "px": [48,80], "src": [128,192], "f": 0, "t": 440, "d": [85,83], "a": 1 }, + { "px": [48,96], "src": [112,192], "f": 0, "t": 439, "d": [85,99], "a": 1 }, + { "px": [80,112], "src": [112,192], "f": 0, "t": 439, "d": [85,117], "a": 1 }, + { "px": [16,144], "src": [96,192], "f": 0, "t": 438, "d": [85,145], "a": 1 }, + { "px": [160,144], "src": [112,192], "f": 0, "t": 439, "d": [85,154], "a": 1 }, + { "px": [208,144], "src": [112,192], "f": 0, "t": 439, "d": [85,157], "a": 1 }, + { "px": [48,160], "src": [112,192], "f": 0, "t": 439, "d": [85,163], "a": 1 }, + { "px": [48,176], "src": [96,192], "f": 0, "t": 438, "d": [85,179], "a": 1 }, + { "px": [48,192], "src": [128,192], "f": 0, "t": 440, "d": [85,195], "a": 1 }, + { "px": [80,192], "src": [112,192], "f": 0, "t": 439, "d": [85,197], "a": 1 }, + { "px": [208,208], "src": [96,192], "f": 0, "t": 438, "d": [85,221], "a": 1 }, + { "px": [32,224], "src": [112,192], "f": 0, "t": 439, "d": [85,226], "a": 1 }, + { "px": [208,224], "src": [112,192], "f": 0, "t": 439, "d": [85,237], "a": 1 }, + { "px": [16,240], "src": [96,192], "f": 0, "t": 438, "d": [85,241], "a": 1 }, + { "px": [32,240], "src": [128,192], "f": 0, "t": 440, "d": [85,242], "a": 1 }, + { "px": [208,256], "src": [112,192], "f": 0, "t": 439, "d": [85,269], "a": 1 }, + { "px": [32,272], "src": [96,192], "f": 0, "t": 438, "d": [85,274], "a": 1 }, + { "px": [208,272], "src": [112,192], "f": 0, "t": 439, "d": [85,285], "a": 1 }, + { "px": [112,304], "src": [96,192], "f": 0, "t": 438, "d": [85,311], "a": 1 }, + { "px": [112,0], "src": [0,192], "f": 0, "t": 432, "d": [102,7], "a": 1 }, + { "px": [80,64], "src": [16,192], "f": 0, "t": 433, "d": [102,69], "a": 1 }, + { "px": [96,64], "src": [0,192], "f": 0, "t": 432, "d": [102,70], "a": 1 }, + { "px": [112,64], "src": [32,192], "f": 0, "t": 434, "d": [102,71], "a": 1 }, + { "px": [80,80], "src": [32,192], "f": 0, "t": 434, "d": [102,85], "a": 1 }, + { "px": [96,80], "src": [0,192], "f": 0, "t": 432, "d": [102,86], "a": 1 }, + { "px": [80,96], "src": [0,192], "f": 0, "t": 432, "d": [102,101], "a": 1 }, + { "px": [96,96], "src": [32,192], "f": 0, "t": 434, "d": [102,102], "a": 1 }, + { "px": [48,112], "src": [16,192], "f": 0, "t": 433, "d": [102,115], "a": 1 }, + { "px": [48,128], "src": [16,192], "f": 0, "t": 433, "d": [102,131], "a": 1 }, + { "px": [32,144], "src": [32,192], "f": 0, "t": 434, "d": [102,146], "a": 1 }, + { "px": [48,144], "src": [16,192], "f": 0, "t": 433, "d": [102,147], "a": 1 }, + { "px": [176,144], "src": [32,192], "f": 0, "t": 434, "d": [102,155], "a": 1 }, + { "px": [224,144], "src": [32,192], "f": 0, "t": 434, "d": [102,158], "a": 1 }, + { "px": [240,144], "src": [32,192], "f": 0, "t": 434, "d": [102,159], "a": 1 }, + { "px": [16,160], "src": [0,192], "f": 0, "t": 432, "d": [102,161], "a": 1 }, + { "px": [32,160], "src": [0,192], "f": 0, "t": 432, "d": [102,162], "a": 1 }, + { "px": [80,160], "src": [0,192], "f": 0, "t": 432, "d": [102,165], "a": 1 }, + { "px": [144,160], "src": [0,192], "f": 0, "t": 432, "d": [102,169], "a": 1 }, + { "px": [160,160], "src": [0,192], "f": 0, "t": 432, "d": [102,170], "a": 1 }, + { "px": [176,160], "src": [32,192], "f": 0, "t": 434, "d": [102,171], "a": 1 }, + { "px": [208,160], "src": [0,192], "f": 0, "t": 432, "d": [102,173], "a": 1 }, + { "px": [224,160], "src": [0,192], "f": 0, "t": 432, "d": [102,174], "a": 1 }, + { "px": [240,160], "src": [16,192], "f": 0, "t": 433, "d": [102,175], "a": 1 }, + { "px": [160,176], "src": [16,192], "f": 0, "t": 433, "d": [102,186], "a": 1 }, + { "px": [176,176], "src": [0,192], "f": 0, "t": 432, "d": [102,187], "a": 1 }, + { "px": [160,192], "src": [32,192], "f": 0, "t": 434, "d": [102,202], "a": 1 }, + { "px": [176,192], "src": [0,192], "f": 0, "t": 432, "d": [102,203], "a": 1 }, + { "px": [32,208], "src": [16,192], "f": 0, "t": 433, "d": [102,210], "a": 1 }, + { "px": [48,208], "src": [0,192], "f": 0, "t": 432, "d": [102,211], "a": 1 }, + { "px": [160,208], "src": [32,192], "f": 0, "t": 434, "d": [102,218], "a": 1 }, + { "px": [176,208], "src": [32,192], "f": 0, "t": 434, "d": [102,219], "a": 1 }, + { "px": [48,224], "src": [16,192], "f": 0, "t": 433, "d": [102,227], "a": 1 }, + { "px": [80,224], "src": [0,192], "f": 0, "t": 432, "d": [102,229], "a": 1 }, + { "px": [144,224], "src": [0,192], "f": 0, "t": 432, "d": [102,233], "a": 1 }, + { "px": [160,224], "src": [32,192], "f": 0, "t": 434, "d": [102,234], "a": 1 }, + { "px": [176,224], "src": [32,192], "f": 0, "t": 434, "d": [102,235], "a": 1 }, + { "px": [16,256], "src": [16,192], "f": 0, "t": 433, "d": [102,257], "a": 1 }, + { "px": [32,256], "src": [0,192], "f": 0, "t": 432, "d": [102,258], "a": 1 }, + { "px": [16,272], "src": [16,192], "f": 0, "t": 433, "d": [102,273], "a": 1 }, + { "px": [176,272], "src": [16,192], "f": 0, "t": 433, "d": [102,283], "a": 1 }, + { "px": [16,288], "src": [16,192], "f": 0, "t": 433, "d": [102,289], "a": 1 }, + { "px": [32,288], "src": [0,192], "f": 0, "t": 432, "d": [102,290], "a": 1 }, + { "px": [80,288], "src": [16,192], "f": 0, "t": 433, "d": [102,293], "a": 1 }, + { "px": [96,288], "src": [16,192], "f": 0, "t": 433, "d": [102,294], "a": 1 }, + { "px": [176,288], "src": [0,192], "f": 0, "t": 432, "d": [102,299], "a": 1 }, + { "px": [208,288], "src": [32,192], "f": 0, "t": 434, "d": [102,301], "a": 1 }, + { "px": [48,304], "src": [16,192], "f": 0, "t": 433, "d": [102,307], "a": 1 }, + { "px": [80,304], "src": [0,192], "f": 0, "t": 432, "d": [102,309], "a": 1 }, + { "px": [96,304], "src": [0,192], "f": 0, "t": 432, "d": [102,310], "a": 1 }, + { "px": [144,304], "src": [0,192], "f": 0, "t": 432, "d": [102,313], "a": 1 }, + { "px": [160,304], "src": [32,192], "f": 0, "t": 434, "d": [102,314], "a": 1 }, + { "px": [128,320], "src": [32,192], "f": 0, "t": 434, "d": [102,328], "a": 1 }, + { "px": [144,320], "src": [16,192], "f": 0, "t": 433, "d": [102,329], "a": 1 }, + { "px": [160,320], "src": [0,192], "f": 0, "t": 432, "d": [102,330], "a": 1 }, + { "px": [144,336], "src": [32,192], "f": 0, "t": 434, "d": [102,345], "a": 1 }, + { "px": [160,336], "src": [16,192], "f": 0, "t": 433, "d": [102,346], "a": 1 }, + { "px": [112,352], "src": [0,192], "f": 0, "t": 432, "d": [102,359], "a": 1 }, + { "px": [128,352], "src": [0,192], "f": 0, "t": 432, "d": [102,360], "a": 1 }, + { "px": [128,0], "src": [160,208], "f": 0, "t": 478, "d": [70,8], "a": 1 }, + { "px": [128,16], "src": [160,208], "f": 0, "t": 478, "d": [70,24], "a": 1 }, + { "px": [128,32], "src": [160,208], "f": 0, "t": 478, "d": [70,40], "a": 1 }, + { "px": [128,48], "src": [160,208], "f": 0, "t": 478, "d": [70,56], "a": 1 }, + { "px": [64,64], "src": [160,208], "f": 0, "t": 478, "d": [70,68], "a": 1 }, + { "px": [128,64], "src": [160,208], "f": 0, "t": 478, "d": [70,72], "a": 1 }, + { "px": [64,80], "src": [160,208], "f": 0, "t": 478, "d": [70,84], "a": 1 }, + { "px": [128,80], "src": [160,208], "f": 0, "t": 478, "d": [70,88], "a": 1 }, + { "px": [64,96], "src": [160,208], "f": 0, "t": 478, "d": [70,100], "a": 1 }, + { "px": [128,96], "src": [160,208], "f": 0, "t": 478, "d": [70,104], "a": 1 }, + { "px": [64,112], "src": [160,208], "f": 0, "t": 478, "d": [70,116], "a": 1 }, + { "px": [64,128], "src": [160,208], "f": 0, "t": 478, "d": [70,132], "a": 1 }, + { "px": [0,144], "src": [160,208], "f": 0, "t": 478, "d": [70,144], "a": 1 }, + { "px": [64,144], "src": [160,208], "f": 0, "t": 478, "d": [70,148], "a": 1 }, + { "px": [192,144], "src": [160,208], "f": 0, "t": 478, "d": [70,156], "a": 1 }, + { "px": [0,160], "src": [160,208], "f": 0, "t": 478, "d": [70,160], "a": 1 }, + { "px": [64,160], "src": [160,208], "f": 0, "t": 478, "d": [70,164], "a": 1 }, + { "px": [192,160], "src": [160,208], "f": 0, "t": 478, "d": [70,172], "a": 1 }, + { "px": [64,176], "src": [160,208], "f": 0, "t": 478, "d": [70,180], "a": 1 }, + { "px": [64,192], "src": [160,208], "f": 0, "t": 478, "d": [70,196], "a": 1 }, + { "px": [128,192], "src": [160,208], "f": 0, "t": 478, "d": [70,200], "a": 1 }, + { "px": [64,208], "src": [160,208], "f": 0, "t": 478, "d": [70,212], "a": 1 }, + { "px": [128,208], "src": [160,208], "f": 0, "t": 478, "d": [70,216], "a": 1 }, + { "px": [192,208], "src": [160,208], "f": 0, "t": 478, "d": [70,220], "a": 1 }, + { "px": [64,224], "src": [160,208], "f": 0, "t": 478, "d": [70,228], "a": 1 }, + { "px": [128,224], "src": [160,208], "f": 0, "t": 478, "d": [70,232], "a": 1 }, + { "px": [192,224], "src": [160,208], "f": 0, "t": 478, "d": [70,236], "a": 1 }, + { "px": [192,240], "src": [160,208], "f": 0, "t": 478, "d": [70,252], "a": 1 }, + { "px": [192,256], "src": [160,208], "f": 0, "t": 478, "d": [70,268], "a": 1 }, + { "px": [64,272], "src": [160,208], "f": 0, "t": 478, "d": [70,276], "a": 1 }, + { "px": [192,272], "src": [160,208], "f": 0, "t": 478, "d": [70,284], "a": 1 }, + { "px": [64,288], "src": [160,208], "f": 0, "t": 478, "d": [70,292], "a": 1 }, + { "px": [128,288], "src": [160,208], "f": 0, "t": 478, "d": [70,296], "a": 1 }, + { "px": [192,288], "src": [160,208], "f": 0, "t": 478, "d": [70,300], "a": 1 }, + { "px": [64,304], "src": [160,208], "f": 0, "t": 478, "d": [70,308], "a": 1 }, + { "px": [128,304], "src": [160,208], "f": 0, "t": 478, "d": [70,312], "a": 1 }, + { "px": [192,304], "src": [160,208], "f": 0, "t": 478, "d": [70,316], "a": 1 }, + { "px": [112,64], "src": [240,176], "f": 0, "t": 411, "d": [91,71], "a": 1 }, + { "px": [64,80], "src": [240,176], "f": 0, "t": 411, "d": [91,84], "a": 1 }, + { "px": [80,96], "src": [240,176], "f": 3, "t": 411, "d": [91,101], "a": 1 }, + { "px": [48,144], "src": [240,176], "f": 0, "t": 411, "d": [91,147], "a": 1 }, + { "px": [48,160], "src": [240,176], "f": 2, "t": 411, "d": [91,163], "a": 1 }, + { "px": [160,160], "src": [240,176], "f": 0, "t": 411, "d": [91,170], "a": 1 }, + { "px": [176,160], "src": [240,176], "f": 3, "t": 411, "d": [91,171], "a": 1 }, + { "px": [144,192], "src": [240,176], "f": 0, "t": 411, "d": [91,201], "a": 1 }, + { "px": [48,208], "src": [240,176], "f": 0, "t": 411, "d": [91,211], "a": 1 }, + { "px": [176,208], "src": [240,176], "f": 1, "t": 411, "d": [91,219], "a": 1 }, + { "px": [32,224], "src": [240,176], "f": 0, "t": 411, "d": [91,226], "a": 1 }, + { "px": [48,224], "src": [240,176], "f": 3, "t": 411, "d": [91,227], "a": 1 }, + { "px": [192,224], "src": [240,176], "f": 2, "t": 411, "d": [91,236], "a": 1 }, + { "px": [48,272], "src": [240,176], "f": 1, "t": 411, "d": [91,275], "a": 1 }, + { "px": [192,272], "src": [240,176], "f": 0, "t": 411, "d": [91,284], "a": 1 }, + { "px": [48,288], "src": [240,176], "f": 2, "t": 411, "d": [91,291], "a": 1 }, + { "px": [64,288], "src": [240,176], "f": 1, "t": 411, "d": [91,292], "a": 1 }, + { "px": [160,288], "src": [240,176], "f": 0, "t": 411, "d": [91,298], "a": 1 }, + { "px": [192,288], "src": [240,176], "f": 3, "t": 411, "d": [91,300], "a": 1 }, + { "px": [80,336], "src": [240,176], "f": 2, "t": 411, "d": [91,341], "a": 1 }, + { "px": [176,336], "src": [240,176], "f": 3, "t": 411, "d": [91,347], "a": 1 }, + { "px": [112,0], "src": [208,176], "f": 0, "t": 409, "d": [89,7], "a": 1 }, + { "px": [128,0], "src": [208,176], "f": 1, "t": 409, "d": [89,8], "a": 1 }, + { "px": [112,16], "src": [208,176], "f": 0, "t": 409, "d": [89,23], "a": 1 }, + { "px": [128,16], "src": [208,176], "f": 1, "t": 409, "d": [89,24], "a": 1 }, + { "px": [112,32], "src": [208,176], "f": 0, "t": 409, "d": [89,39], "a": 1 }, + { "px": [128,32], "src": [208,176], "f": 1, "t": 409, "d": [89,40], "a": 1 }, + { "px": [112,48], "src": [208,176], "f": 0, "t": 409, "d": [89,55], "a": 1 }, + { "px": [128,48], "src": [208,176], "f": 1, "t": 409, "d": [89,56], "a": 1 }, + { "px": [64,64], "src": [208,176], "f": 0, "t": 409, "d": [89,68], "a": 1 }, + { "px": [128,64], "src": [208,176], "f": 1, "t": 409, "d": [89,72], "a": 1 }, + { "px": [48,80], "src": [208,176], "f": 0, "t": 409, "d": [89,83], "a": 1 }, + { "px": [128,80], "src": [208,176], "f": 1, "t": 409, "d": [89,88], "a": 1 }, + { "px": [48,96], "src": [208,176], "f": 0, "t": 409, "d": [89,99], "a": 1 }, + { "px": [128,96], "src": [208,176], "f": 1, "t": 409, "d": [89,104], "a": 1 }, + { "px": [48,112], "src": [208,176], "f": 0, "t": 409, "d": [89,115], "a": 1 }, + { "px": [80,112], "src": [208,176], "f": 1, "t": 409, "d": [89,117], "a": 1 }, + { "px": [48,128], "src": [208,176], "f": 0, "t": 409, "d": [89,131], "a": 1 }, + { "px": [80,128], "src": [208,176], "f": 1, "t": 409, "d": [89,133], "a": 1 }, + { "px": [80,144], "src": [208,176], "f": 1, "t": 409, "d": [89,149], "a": 1 }, + { "px": [160,144], "src": [208,176], "f": 0, "t": 409, "d": [89,154], "a": 1 }, + { "px": [80,160], "src": [208,176], "f": 1, "t": 409, "d": [89,165], "a": 1 }, + { "px": [144,160], "src": [208,176], "f": 0, "t": 409, "d": [89,169], "a": 1 }, + { "px": [48,176], "src": [208,176], "f": 0, "t": 409, "d": [89,179], "a": 1 }, + { "px": [80,176], "src": [208,176], "f": 1, "t": 409, "d": [89,181], "a": 1 }, + { "px": [144,176], "src": [208,176], "f": 0, "t": 409, "d": [89,185], "a": 1 }, + { "px": [176,176], "src": [208,176], "f": 1, "t": 409, "d": [89,187], "a": 1 }, + { "px": [48,192], "src": [208,176], "f": 0, "t": 409, "d": [89,195], "a": 1 }, + { "px": [80,192], "src": [208,176], "f": 1, "t": 409, "d": [89,197], "a": 1 }, + { "px": [128,192], "src": [208,176], "f": 0, "t": 409, "d": [89,200], "a": 1 }, + { "px": [176,192], "src": [208,176], "f": 1, "t": 409, "d": [89,203], "a": 1 }, + { "px": [32,208], "src": [208,176], "f": 0, "t": 409, "d": [89,210], "a": 1 }, + { "px": [80,208], "src": [208,176], "f": 1, "t": 409, "d": [89,213], "a": 1 }, + { "px": [128,208], "src": [208,176], "f": 0, "t": 409, "d": [89,216], "a": 1 }, + { "px": [208,208], "src": [208,176], "f": 1, "t": 409, "d": [89,221], "a": 1 }, + { "px": [16,224], "src": [208,176], "f": 0, "t": 409, "d": [89,225], "a": 1 }, + { "px": [80,224], "src": [208,176], "f": 1, "t": 409, "d": [89,229], "a": 1 }, + { "px": [128,224], "src": [208,176], "f": 0, "t": 409, "d": [89,232], "a": 1 }, + { "px": [208,224], "src": [208,176], "f": 1, "t": 409, "d": [89,237], "a": 1 }, + { "px": [16,240], "src": [208,176], "f": 0, "t": 409, "d": [89,241], "a": 1 }, + { "px": [48,240], "src": [208,176], "f": 1, "t": 409, "d": [89,243], "a": 1 }, + { "px": [192,240], "src": [208,176], "f": 0, "t": 409, "d": [89,252], "a": 1 }, + { "px": [208,240], "src": [208,176], "f": 1, "t": 409, "d": [89,253], "a": 1 }, + { "px": [16,256], "src": [208,176], "f": 0, "t": 409, "d": [89,257], "a": 1 }, + { "px": [48,256], "src": [208,176], "f": 1, "t": 409, "d": [89,259], "a": 1 }, + { "px": [192,256], "src": [208,176], "f": 0, "t": 409, "d": [89,268], "a": 1 }, + { "px": [208,256], "src": [208,176], "f": 1, "t": 409, "d": [89,269], "a": 1 }, + { "px": [16,272], "src": [208,176], "f": 0, "t": 409, "d": [89,273], "a": 1 }, + { "px": [64,272], "src": [208,176], "f": 1, "t": 409, "d": [89,276], "a": 1 }, + { "px": [160,272], "src": [208,176], "f": 0, "t": 409, "d": [89,282], "a": 1 }, + { "px": [208,272], "src": [208,176], "f": 1, "t": 409, "d": [89,285], "a": 1 }, + { "px": [16,288], "src": [208,176], "f": 0, "t": 409, "d": [89,289], "a": 1 }, + { "px": [208,288], "src": [208,176], "f": 1, "t": 409, "d": [89,301], "a": 1 }, + { "px": [48,304], "src": [208,176], "f": 0, "t": 409, "d": [89,307], "a": 1 }, + { "px": [192,304], "src": [208,176], "f": 1, "t": 409, "d": [89,316], "a": 1 }, + { "px": [48,320], "src": [208,176], "f": 0, "t": 409, "d": [89,323], "a": 1 }, + { "px": [192,320], "src": [208,176], "f": 1, "t": 409, "d": [89,332], "a": 1 }, + { "px": [48,336], "src": [208,176], "f": 0, "t": 409, "d": [89,339], "a": 1 }, + { "px": [192,336], "src": [208,176], "f": 1, "t": 409, "d": [89,348], "a": 1 }, + { "px": [80,352], "src": [208,176], "f": 0, "t": 409, "d": [89,357], "a": 1 }, + { "px": [176,352], "src": [208,176], "f": 1, "t": 409, "d": [89,363], "a": 1 }, + { "px": [64,64], "src": [224,176], "f": 0, "t": 410, "d": [88,68], "a": 1 }, + { "px": [80,64], "src": [224,176], "f": 0, "t": 410, "d": [88,69], "a": 1 }, + { "px": [96,64], "src": [224,176], "f": 0, "t": 410, "d": [88,70], "a": 1 }, + { "px": [48,80], "src": [224,176], "f": 0, "t": 410, "d": [88,83], "a": 1 }, + { "px": [96,96], "src": [224,176], "f": 2, "t": 410, "d": [88,102], "a": 1 }, + { "px": [112,96], "src": [224,176], "f": 2, "t": 410, "d": [88,103], "a": 1 }, + { "px": [128,96], "src": [224,176], "f": 2, "t": 410, "d": [88,104], "a": 1 }, + { "px": [0,144], "src": [224,176], "f": 0, "t": 410, "d": [88,144], "a": 1 }, + { "px": [16,144], "src": [224,176], "f": 0, "t": 410, "d": [88,145], "a": 1 }, + { "px": [32,144], "src": [224,176], "f": 0, "t": 410, "d": [88,146], "a": 1 }, + { "px": [160,144], "src": [224,176], "f": 0, "t": 410, "d": [88,154], "a": 1 }, + { "px": [176,144], "src": [224,176], "f": 0, "t": 410, "d": [88,155], "a": 1 }, + { "px": [192,144], "src": [224,176], "f": 0, "t": 410, "d": [88,156], "a": 1 }, + { "px": [208,144], "src": [224,176], "f": 0, "t": 410, "d": [88,157], "a": 1 }, + { "px": [224,144], "src": [224,176], "f": 0, "t": 410, "d": [88,158], "a": 1 }, + { "px": [240,144], "src": [224,176], "f": 0, "t": 410, "d": [88,159], "a": 1 }, + { "px": [0,160], "src": [224,176], "f": 2, "t": 410, "d": [88,160], "a": 1 }, + { "px": [16,160], "src": [224,176], "f": 2, "t": 410, "d": [88,161], "a": 1 }, + { "px": [32,160], "src": [224,176], "f": 2, "t": 410, "d": [88,162], "a": 1 }, + { "px": [144,160], "src": [224,176], "f": 0, "t": 410, "d": [88,169], "a": 1 }, + { "px": [192,160], "src": [224,176], "f": 2, "t": 410, "d": [88,172], "a": 1 }, + { "px": [208,160], "src": [224,176], "f": 2, "t": 410, "d": [88,173], "a": 1 }, + { "px": [224,160], "src": [224,176], "f": 2, "t": 410, "d": [88,174], "a": 1 }, + { "px": [240,160], "src": [224,176], "f": 2, "t": 410, "d": [88,175], "a": 1 }, + { "px": [128,192], "src": [224,176], "f": 0, "t": 410, "d": [88,200], "a": 1 }, + { "px": [32,208], "src": [224,176], "f": 0, "t": 410, "d": [88,210], "a": 1 }, + { "px": [192,208], "src": [224,176], "f": 0, "t": 410, "d": [88,220], "a": 1 }, + { "px": [208,208], "src": [224,176], "f": 0, "t": 410, "d": [88,221], "a": 1 }, + { "px": [16,224], "src": [224,176], "f": 0, "t": 410, "d": [88,225], "a": 1 }, + { "px": [64,224], "src": [224,176], "f": 2, "t": 410, "d": [88,228], "a": 1 }, + { "px": [80,224], "src": [224,176], "f": 2, "t": 410, "d": [88,229], "a": 1 }, + { "px": [128,224], "src": [224,176], "f": 2, "t": 410, "d": [88,232], "a": 1 }, + { "px": [144,224], "src": [224,176], "f": 2, "t": 410, "d": [88,233], "a": 1 }, + { "px": [160,224], "src": [224,176], "f": 2, "t": 410, "d": [88,234], "a": 1 }, + { "px": [176,224], "src": [224,176], "f": 2, "t": 410, "d": [88,235], "a": 1 }, + { "px": [64,272], "src": [224,176], "f": 0, "t": 410, "d": [88,276], "a": 1 }, + { "px": [160,272], "src": [224,176], "f": 0, "t": 410, "d": [88,282], "a": 1 }, + { "px": [176,272], "src": [224,176], "f": 0, "t": 410, "d": [88,283], "a": 1 }, + { "px": [16,288], "src": [224,176], "f": 2, "t": 410, "d": [88,289], "a": 1 }, + { "px": [32,288], "src": [224,176], "f": 2, "t": 410, "d": [88,290], "a": 1 }, + { "px": [80,288], "src": [224,176], "f": 0, "t": 410, "d": [88,293], "a": 1 }, + { "px": [96,288], "src": [224,176], "f": 0, "t": 410, "d": [88,294], "a": 1 }, + { "px": [112,288], "src": [224,176], "f": 0, "t": 410, "d": [88,295], "a": 1 }, + { "px": [128,288], "src": [224,176], "f": 0, "t": 410, "d": [88,296], "a": 1 }, + { "px": [144,288], "src": [224,176], "f": 0, "t": 410, "d": [88,297], "a": 1 }, + { "px": [208,288], "src": [224,176], "f": 2, "t": 410, "d": [88,301], "a": 1 }, + { "px": [48,336], "src": [224,176], "f": 2, "t": 410, "d": [88,339], "a": 1 }, + { "px": [64,336], "src": [224,176], "f": 2, "t": 410, "d": [88,340], "a": 1 }, + { "px": [192,336], "src": [224,176], "f": 2, "t": 410, "d": [88,348], "a": 1 }, + { "px": [80,352], "src": [224,176], "f": 2, "t": 410, "d": [88,357], "a": 1 }, + { "px": [96,352], "src": [224,176], "f": 2, "t": 410, "d": [88,358], "a": 1 }, + { "px": [112,352], "src": [224,176], "f": 2, "t": 410, "d": [88,359], "a": 1 }, + { "px": [128,352], "src": [224,176], "f": 2, "t": 410, "d": [88,360], "a": 1 }, + { "px": [144,352], "src": [224,176], "f": 2, "t": 410, "d": [88,361], "a": 1 }, + { "px": [160,352], "src": [224,176], "f": 2, "t": 410, "d": [88,362], "a": 1 }, + { "px": [176,352], "src": [224,176], "f": 2, "t": 410, "d": [88,363], "a": 1 } + ], + "seed": 1174818, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a35944c0-66b0-11ec-9cd7-6b4e2322a69e", "dir": "n" }, { "levelIid": "a35992e0-66b0-11ec-9cd7-8b2ebd1b98e2", "dir": "w" }, { "levelIid": "a359b9f0-66b0-11ec-9cd7-25dfb937d033", "dir": "e" } ] + }, + { + "identifier": "Top", + "iid": "a35944c0-66b0-11ec-9cd7-6b4e2322a69e", + "uid": 40, + "worldX": 80, + "worldY": -640, + "worldDepth": 0, + "pxWid": 512, + "pxHei": 256, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "490e9100-66b0-11ec-8fc6-2f16fa594004", + "levelId": 40, + "layerDefUid": 119, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 6675020, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Plant", + "__grid": [27,13], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "c0d54170-66b0-11ec-8fc6-fd3592ec5dfc", + "width": 20, + "height": 20, + "defUid": 116, + "px": [440,224], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Water_shroom", "__tile": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Water_shroom"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + }, + { + "__identifier": "Plant", + "__grid": [23,13], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "d7f84280-66b0-11ec-8fc6-2721b8395e4d", + "width": 20, + "height": 20, + "defUid": 116, + "px": [376,224], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Water_shroom", "__tile": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Water_shroom"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + } + ] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35944c3-66b0-11ec-9cd7-a587adaf38ed", + "levelId": 40, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, + 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,1,1,1,0,0, + 0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, + 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1, + 1,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [112,0], "src": [16,32], "f": 0, "t": 73, "d": [8,7], "a": 1 }, + { "px": [224,0], "src": [16,32], "f": 0, "t": 73, "d": [8,14], "a": 1 }, + { "px": [416,0], "src": [16,32], "f": 0, "t": 73, "d": [8,26], "a": 1 }, + { "px": [432,0], "src": [16,16], "f": 0, "t": 37, "d": [8,27], "a": 1 }, + { "px": [448,0], "src": [16,16], "f": 0, "t": 37, "d": [8,28], "a": 1 }, + { "px": [464,0], "src": [16,16], "f": 0, "t": 37, "d": [8,29], "a": 1 }, + { "px": [16,16], "src": [16,32], "f": 0, "t": 73, "d": [8,33], "a": 1 }, + { "px": [32,16], "src": [16,16], "f": 0, "t": 37, "d": [8,34], "a": 1 }, + { "px": [96,16], "src": [16,32], "f": 0, "t": 73, "d": [8,38], "a": 1 }, + { "px": [112,16], "src": [16,16], "f": 0, "t": 37, "d": [8,39], "a": 1 }, + { "px": [272,16], "src": [16,32], "f": 0, "t": 73, "d": [8,49], "a": 1 }, + { "px": [384,16], "src": [16,16], "f": 0, "t": 37, "d": [8,56], "a": 1 }, + { "px": [432,16], "src": [16,32], "f": 0, "t": 73, "d": [8,59], "a": 1 }, + { "px": [448,16], "src": [16,32], "f": 0, "t": 73, "d": [8,60], "a": 1 }, + { "px": [16,32], "src": [16,32], "f": 0, "t": 73, "d": [8,65], "a": 1 }, + { "px": [160,32], "src": [16,32], "f": 0, "t": 73, "d": [8,74], "a": 1 }, + { "px": [192,32], "src": [16,16], "f": 0, "t": 37, "d": [8,76], "a": 1 }, + { "px": [208,32], "src": [16,16], "f": 0, "t": 37, "d": [8,77], "a": 1 }, + { "px": [224,32], "src": [16,16], "f": 0, "t": 37, "d": [8,78], "a": 1 }, + { "px": [272,32], "src": [16,32], "f": 0, "t": 73, "d": [8,81], "a": 1 }, + { "px": [16,48], "src": [16,16], "f": 0, "t": 37, "d": [8,97], "a": 1 }, + { "px": [48,48], "src": [16,32], "f": 0, "t": 73, "d": [8,99], "a": 1 }, + { "px": [80,48], "src": [16,16], "f": 0, "t": 37, "d": [8,101], "a": 1 }, + { "px": [96,48], "src": [16,16], "f": 0, "t": 37, "d": [8,102], "a": 1 }, + { "px": [112,48], "src": [16,32], "f": 0, "t": 73, "d": [8,103], "a": 1 }, + { "px": [128,48], "src": [16,16], "f": 0, "t": 37, "d": [8,104], "a": 1 }, + { "px": [144,48], "src": [16,32], "f": 0, "t": 73, "d": [8,105], "a": 1 }, + { "px": [160,48], "src": [16,16], "f": 0, "t": 37, "d": [8,106], "a": 1 }, + { "px": [176,48], "src": [16,16], "f": 0, "t": 37, "d": [8,107], "a": 1 }, + { "px": [192,48], "src": [16,32], "f": 0, "t": 73, "d": [8,108], "a": 1 }, + { "px": [208,48], "src": [16,16], "f": 0, "t": 37, "d": [8,109], "a": 1 }, + { "px": [224,48], "src": [16,32], "f": 0, "t": 73, "d": [8,110], "a": 1 }, + { "px": [240,48], "src": [16,16], "f": 0, "t": 37, "d": [8,111], "a": 1 }, + { "px": [336,48], "src": [16,16], "f": 0, "t": 37, "d": [8,117], "a": 1 }, + { "px": [480,48], "src": [16,32], "f": 0, "t": 73, "d": [8,126], "a": 1 }, + { "px": [64,64], "src": [16,16], "f": 0, "t": 37, "d": [8,132], "a": 1 }, + { "px": [80,64], "src": [16,16], "f": 0, "t": 37, "d": [8,133], "a": 1 }, + { "px": [96,64], "src": [16,32], "f": 0, "t": 73, "d": [8,134], "a": 1 }, + { "px": [112,64], "src": [16,16], "f": 0, "t": 37, "d": [8,135], "a": 1 }, + { "px": [128,64], "src": [16,16], "f": 0, "t": 37, "d": [8,136], "a": 1 }, + { "px": [240,64], "src": [16,32], "f": 0, "t": 73, "d": [8,143], "a": 1 }, + { "px": [256,64], "src": [16,16], "f": 0, "t": 37, "d": [8,144], "a": 1 }, + { "px": [272,64], "src": [16,32], "f": 0, "t": 73, "d": [8,145], "a": 1 }, + { "px": [288,64], "src": [16,32], "f": 0, "t": 73, "d": [8,146], "a": 1 }, + { "px": [400,64], "src": [16,16], "f": 0, "t": 37, "d": [8,153], "a": 1 }, + { "px": [496,64], "src": [16,32], "f": 0, "t": 73, "d": [8,159], "a": 1 }, + { "px": [64,80], "src": [16,16], "f": 0, "t": 37, "d": [8,164], "a": 1 }, + { "px": [272,80], "src": [16,32], "f": 0, "t": 73, "d": [8,177], "a": 1 }, + { "px": [288,80], "src": [16,32], "f": 0, "t": 73, "d": [8,178], "a": 1 }, + { "px": [304,80], "src": [16,16], "f": 0, "t": 37, "d": [8,179], "a": 1 }, + { "px": [336,80], "src": [16,32], "f": 0, "t": 73, "d": [8,181], "a": 1 }, + { "px": [416,80], "src": [16,16], "f": 0, "t": 37, "d": [8,186], "a": 1 }, + { "px": [48,96], "src": [16,16], "f": 0, "t": 37, "d": [8,195], "a": 1 }, + { "px": [304,96], "src": [16,16], "f": 0, "t": 37, "d": [8,211], "a": 1 }, + { "px": [320,96], "src": [16,16], "f": 0, "t": 37, "d": [8,212], "a": 1 }, + { "px": [352,96], "src": [16,32], "f": 0, "t": 73, "d": [8,214], "a": 1 }, + { "px": [368,96], "src": [16,32], "f": 0, "t": 73, "d": [8,215], "a": 1 }, + { "px": [384,96], "src": [16,32], "f": 0, "t": 73, "d": [8,216], "a": 1 }, + { "px": [400,96], "src": [16,32], "f": 0, "t": 73, "d": [8,217], "a": 1 }, + { "px": [416,96], "src": [16,32], "f": 0, "t": 73, "d": [8,218], "a": 1 }, + { "px": [464,96], "src": [16,16], "f": 0, "t": 37, "d": [8,221], "a": 1 }, + { "px": [48,112], "src": [16,16], "f": 0, "t": 37, "d": [8,227], "a": 1 }, + { "px": [304,112], "src": [16,16], "f": 0, "t": 37, "d": [8,243], "a": 1 }, + { "px": [320,112], "src": [16,32], "f": 0, "t": 73, "d": [8,244], "a": 1 }, + { "px": [336,112], "src": [16,16], "f": 0, "t": 37, "d": [8,245], "a": 1 }, + { "px": [352,112], "src": [16,32], "f": 0, "t": 73, "d": [8,246], "a": 1 }, + { "px": [368,112], "src": [16,32], "f": 0, "t": 73, "d": [8,247], "a": 1 }, + { "px": [384,112], "src": [16,16], "f": 0, "t": 37, "d": [8,248], "a": 1 }, + { "px": [400,112], "src": [16,16], "f": 0, "t": 37, "d": [8,249], "a": 1 }, + { "px": [416,112], "src": [16,16], "f": 0, "t": 37, "d": [8,250], "a": 1 }, + { "px": [432,112], "src": [16,32], "f": 0, "t": 73, "d": [8,251], "a": 1 }, + { "px": [480,112], "src": [16,16], "f": 0, "t": 37, "d": [8,254], "a": 1 }, + { "px": [48,128], "src": [16,32], "f": 0, "t": 73, "d": [8,259], "a": 1 }, + { "px": [256,128], "src": [16,32], "f": 0, "t": 73, "d": [8,272], "a": 1 }, + { "px": [304,128], "src": [16,32], "f": 0, "t": 73, "d": [8,275], "a": 1 }, + { "px": [320,128], "src": [16,32], "f": 0, "t": 73, "d": [8,276], "a": 1 }, + { "px": [416,128], "src": [16,16], "f": 0, "t": 37, "d": [8,282], "a": 1 }, + { "px": [432,128], "src": [16,32], "f": 0, "t": 73, "d": [8,283], "a": 1 }, + { "px": [464,128], "src": [16,16], "f": 0, "t": 37, "d": [8,285], "a": 1 }, + { "px": [480,128], "src": [16,16], "f": 0, "t": 37, "d": [8,286], "a": 1 }, + { "px": [16,144], "src": [16,32], "f": 0, "t": 73, "d": [8,289], "a": 1 }, + { "px": [32,144], "src": [16,16], "f": 0, "t": 37, "d": [8,290], "a": 1 }, + { "px": [48,144], "src": [16,32], "f": 0, "t": 73, "d": [8,291], "a": 1 }, + { "px": [304,144], "src": [16,32], "f": 0, "t": 73, "d": [8,307], "a": 1 }, + { "px": [448,144], "src": [16,32], "f": 0, "t": 73, "d": [8,316], "a": 1 }, + { "px": [16,160], "src": [16,16], "f": 0, "t": 37, "d": [8,321], "a": 1 }, + { "px": [32,160], "src": [16,32], "f": 0, "t": 73, "d": [8,322], "a": 1 }, + { "px": [48,160], "src": [16,32], "f": 0, "t": 73, "d": [8,323], "a": 1 }, + { "px": [464,160], "src": [16,16], "f": 0, "t": 37, "d": [8,349], "a": 1 }, + { "px": [32,176], "src": [16,16], "f": 0, "t": 37, "d": [8,354], "a": 1 }, + { "px": [48,176], "src": [16,32], "f": 0, "t": 73, "d": [8,355], "a": 1 }, + { "px": [464,176], "src": [16,32], "f": 0, "t": 73, "d": [8,381], "a": 1 }, + { "px": [480,176], "src": [16,16], "f": 0, "t": 37, "d": [8,382], "a": 1 }, + { "px": [32,192], "src": [16,32], "f": 0, "t": 73, "d": [8,386], "a": 1 }, + { "px": [48,192], "src": [16,32], "f": 0, "t": 73, "d": [8,387], "a": 1 }, + { "px": [464,192], "src": [16,16], "f": 0, "t": 37, "d": [8,413], "a": 1 }, + { "px": [16,208], "src": [16,32], "f": 0, "t": 73, "d": [8,417], "a": 1 }, + { "px": [48,208], "src": [16,32], "f": 0, "t": 73, "d": [8,419], "a": 1 }, + { "px": [272,208], "src": [16,16], "f": 0, "t": 37, "d": [8,433], "a": 1 }, + { "px": [288,208], "src": [16,16], "f": 0, "t": 37, "d": [8,434], "a": 1 }, + { "px": [304,208], "src": [16,16], "f": 0, "t": 37, "d": [8,435], "a": 1 }, + { "px": [320,208], "src": [16,32], "f": 0, "t": 73, "d": [8,436], "a": 1 }, + { "px": [464,208], "src": [16,32], "f": 0, "t": 73, "d": [8,445], "a": 1 }, + { "px": [32,224], "src": [16,16], "f": 0, "t": 37, "d": [8,450], "a": 1 }, + { "px": [48,224], "src": [16,32], "f": 0, "t": 73, "d": [8,451], "a": 1 }, + { "px": [64,224], "src": [16,32], "f": 0, "t": 73, "d": [8,452], "a": 1 }, + { "px": [128,224], "src": [16,32], "f": 0, "t": 73, "d": [8,456], "a": 1 }, + { "px": [144,224], "src": [16,16], "f": 0, "t": 37, "d": [8,457], "a": 1 }, + { "px": [256,224], "src": [16,32], "f": 0, "t": 73, "d": [8,464], "a": 1 }, + { "px": [288,224], "src": [16,16], "f": 0, "t": 37, "d": [8,466], "a": 1 }, + { "px": [320,224], "src": [16,16], "f": 0, "t": 37, "d": [8,468], "a": 1 }, + { "px": [336,224], "src": [16,32], "f": 0, "t": 73, "d": [8,469], "a": 1 }, + { "px": [464,224], "src": [16,32], "f": 0, "t": 73, "d": [8,477], "a": 1 }, + { "px": [64,240], "src": [16,32], "f": 0, "t": 73, "d": [8,484], "a": 1 }, + { "px": [80,240], "src": [16,32], "f": 0, "t": 73, "d": [8,485], "a": 1 }, + { "px": [96,240], "src": [16,32], "f": 0, "t": 73, "d": [8,486], "a": 1 }, + { "px": [112,240], "src": [16,16], "f": 0, "t": 37, "d": [8,487], "a": 1 }, + { "px": [144,240], "src": [16,16], "f": 0, "t": 37, "d": [8,489], "a": 1 }, + { "px": [160,240], "src": [16,16], "f": 0, "t": 37, "d": [8,490], "a": 1 }, + { "px": [224,240], "src": [16,16], "f": 0, "t": 37, "d": [8,494], "a": 1 }, + { "px": [304,240], "src": [16,16], "f": 0, "t": 37, "d": [8,499], "a": 1 }, + { "px": [352,240], "src": [16,32], "f": 0, "t": 73, "d": [8,502], "a": 1 }, + { "px": [368,240], "src": [16,32], "f": 0, "t": 73, "d": [8,503], "a": 1 }, + { "px": [384,240], "src": [16,32], "f": 0, "t": 73, "d": [8,504], "a": 1 }, + { "px": [432,240], "src": [16,32], "f": 0, "t": 73, "d": [8,507], "a": 1 }, + { "px": [448,240], "src": [16,32], "f": 0, "t": 73, "d": [8,508], "a": 1 }, + { "px": [240,0], "src": [176,192], "f": 0, "t": 443, "d": [84,15], "a": 1 }, + { "px": [256,0], "src": [144,192], "f": 0, "t": 441, "d": [84,16], "a": 1 }, + { "px": [496,0], "src": [160,192], "f": 0, "t": 442, "d": [84,31], "a": 1 }, + { "px": [400,16], "src": [160,192], "f": 0, "t": 442, "d": [84,57], "a": 1 }, + { "px": [496,16], "src": [176,192], "f": 0, "t": 443, "d": [84,63], "a": 1 }, + { "px": [48,32], "src": [160,192], "f": 0, "t": 442, "d": [84,67], "a": 1 }, + { "px": [176,32], "src": [176,192], "f": 0, "t": 443, "d": [84,75], "a": 1 }, + { "px": [320,32], "src": [160,192], "f": 0, "t": 442, "d": [84,84], "a": 1 }, + { "px": [336,32], "src": [176,192], "f": 0, "t": 443, "d": [84,85], "a": 1 }, + { "px": [352,32], "src": [144,192], "f": 0, "t": 441, "d": [84,86], "a": 1 }, + { "px": [368,32], "src": [192,192], "f": 0, "t": 444, "d": [84,87], "a": 1 }, + { "px": [400,32], "src": [192,192], "f": 0, "t": 444, "d": [84,89], "a": 1 }, + { "px": [432,32], "src": [144,192], "f": 0, "t": 441, "d": [84,91], "a": 1 }, + { "px": [0,48], "src": [176,192], "f": 0, "t": 443, "d": [84,96], "a": 1 }, + { "px": [320,48], "src": [192,192], "f": 0, "t": 444, "d": [84,116], "a": 1 }, + { "px": [352,48], "src": [160,192], "f": 0, "t": 442, "d": [84,118], "a": 1 }, + { "px": [448,64], "src": [176,192], "f": 0, "t": 443, "d": [84,156], "a": 1 }, + { "px": [464,64], "src": [144,192], "f": 0, "t": 441, "d": [84,157], "a": 1 }, + { "px": [480,64], "src": [160,192], "f": 0, "t": 442, "d": [84,158], "a": 1 }, + { "px": [0,80], "src": [160,192], "f": 0, "t": 442, "d": [84,160], "a": 1 }, + { "px": [32,80], "src": [144,192], "f": 0, "t": 441, "d": [84,162], "a": 1 }, + { "px": [48,80], "src": [144,192], "f": 0, "t": 441, "d": [84,163], "a": 1 }, + { "px": [384,80], "src": [144,192], "f": 0, "t": 441, "d": [84,184], "a": 1 }, + { "px": [448,80], "src": [176,192], "f": 0, "t": 443, "d": [84,188], "a": 1 }, + { "px": [16,112], "src": [176,192], "f": 0, "t": 443, "d": [84,225], "a": 1 }, + { "px": [32,112], "src": [192,192], "f": 0, "t": 444, "d": [84,226], "a": 1 }, + { "px": [16,128], "src": [144,192], "f": 0, "t": 441, "d": [84,257], "a": 1 }, + { "px": [32,128], "src": [144,192], "f": 0, "t": 441, "d": [84,258], "a": 1 }, + { "px": [480,160], "src": [176,192], "f": 0, "t": 443, "d": [84,350], "a": 1 }, + { "px": [480,192], "src": [144,192], "f": 0, "t": 441, "d": [84,414], "a": 1 }, + { "px": [496,192], "src": [160,192], "f": 0, "t": 442, "d": [84,415], "a": 1 }, + { "px": [32,208], "src": [192,192], "f": 0, "t": 444, "d": [84,418], "a": 1 }, + { "px": [480,208], "src": [144,192], "f": 0, "t": 441, "d": [84,446], "a": 1 }, + { "px": [0,240], "src": [144,192], "f": 0, "t": 441, "d": [84,480], "a": 1 }, + { "px": [240,240], "src": [176,192], "f": 0, "t": 443, "d": [84,495], "a": 1 }, + { "px": [400,240], "src": [192,192], "f": 0, "t": 444, "d": [84,505], "a": 1 }, + { "px": [416,240], "src": [192,192], "f": 0, "t": 444, "d": [84,506], "a": 1 }, + { "px": [480,240], "src": [160,192], "f": 0, "t": 442, "d": [84,510], "a": 1 }, + { "px": [160,49], "src": [16,144], "f": 0, "t": 325, "d": [75,106], "a": 1 }, + { "px": [176,49], "src": [16,144], "f": 0, "t": 325, "d": [75,107], "a": 1 }, + { "px": [192,49], "src": [16,144], "f": 0, "t": 325, "d": [75,108], "a": 1 }, + { "px": [208,49], "src": [16,144], "f": 0, "t": 325, "d": [75,109], "a": 1 }, + { "px": [80,64], "src": [16,144], "f": 0, "t": 325, "d": [75,133], "a": 1 }, + { "px": [96,65], "src": [32,144], "f": 0, "t": 326, "d": [75,134], "a": 1 }, + { "px": [112,65], "src": [32,144], "f": 0, "t": 326, "d": [75,135], "a": 1 }, + { "px": [128,64], "src": [16,144], "f": 0, "t": 325, "d": [75,136], "a": 1 }, + { "px": [240,64], "src": [32,144], "f": 0, "t": 326, "d": [75,143], "a": 1 }, + { "px": [272,81], "src": [32,144], "f": 0, "t": 326, "d": [75,177], "a": 1 }, + { "px": [288,80], "src": [32,144], "f": 0, "t": 326, "d": [75,178], "a": 1 }, + { "px": [352,113], "src": [16,144], "f": 0, "t": 325, "d": [75,246], "a": 1 }, + { "px": [368,112], "src": [16,144], "f": 0, "t": 325, "d": [75,247], "a": 1 }, + { "px": [384,112], "src": [32,144], "f": 0, "t": 326, "d": [75,248], "a": 1 }, + { "px": [416,128], "src": [16,144], "f": 0, "t": 325, "d": [75,282], "a": 1 }, + { "px": [304,145], "src": [16,144], "f": 0, "t": 325, "d": [75,307], "a": 1 }, + { "px": [272,144], "src": [16,96], "f": 0, "t": 217, "d": [9,305], "a": 1 }, + { "px": [288,144], "src": [64,96], "f": 0, "t": 220, "d": [9,306], "a": 1 }, + { "px": [288,192], "src": [16,96], "f": 0, "t": 217, "d": [9,402], "a": 1 }, + { "px": [304,192], "src": [16,96], "f": 0, "t": 217, "d": [9,403], "a": 1 }, + { "px": [80,224], "src": [16,96], "f": 0, "t": 217, "d": [9,453], "a": 1 }, + { "px": [96,224], "src": [48,96], "f": 0, "t": 219, "d": [9,454], "a": 1 }, + { "px": [112,224], "src": [16,96], "f": 0, "t": 217, "d": [9,455], "a": 1 }, + { "px": [240,224], "src": [64,96], "f": 0, "t": 220, "d": [9,463], "a": 1 }, + { "px": [352,224], "src": [16,96], "f": 0, "t": 217, "d": [9,470], "a": 1 }, + { "px": [368,224], "src": [64,96], "f": 0, "t": 220, "d": [9,471], "a": 1 }, + { "px": [384,224], "src": [48,96], "f": 0, "t": 219, "d": [9,472], "a": 1 }, + { "px": [400,224], "src": [64,96], "f": 0, "t": 220, "d": [9,473], "a": 1 }, + { "px": [416,224], "src": [16,96], "f": 0, "t": 217, "d": [9,474], "a": 1 }, + { "px": [432,224], "src": [64,96], "f": 0, "t": 220, "d": [9,475], "a": 1 }, + { "px": [448,224], "src": [16,96], "f": 0, "t": 217, "d": [9,476], "a": 1 }, + { "px": [65,80], "src": [0,112], "f": 1, "t": 252, "d": [10,164], "a": 1 }, + { "px": [303,96], "src": [0,128], "f": 0, "t": 288, "d": [10,211], "a": 1 }, + { "px": [50,112], "src": [0,112], "f": 1, "t": 252, "d": [10,227], "a": 1 }, + { "px": [303,112], "src": [0,128], "f": 0, "t": 288, "d": [10,243], "a": 1 }, + { "px": [48,128], "src": [0,128], "f": 1, "t": 288, "d": [10,259], "a": 1 }, + { "px": [256,128], "src": [0,112], "f": 1, "t": 252, "d": [10,272], "a": 1 }, + { "px": [304,128], "src": [0,112], "f": 0, "t": 252, "d": [10,275], "a": 1 }, + { "px": [50,144], "src": [0,112], "f": 1, "t": 252, "d": [10,291], "a": 1 }, + { "px": [50,160], "src": [0,112], "f": 1, "t": 252, "d": [10,323], "a": 1 }, + { "px": [49,176], "src": [0,112], "f": 1, "t": 252, "d": [10,355], "a": 1 }, + { "px": [462,176], "src": [0,112], "f": 0, "t": 252, "d": [10,381], "a": 1 }, + { "px": [50,192], "src": [0,128], "f": 1, "t": 288, "d": [10,387], "a": 1 }, + { "px": [463,192], "src": [0,128], "f": 0, "t": 288, "d": [10,413], "a": 1 }, + { "px": [463,208], "src": [0,128], "f": 0, "t": 288, "d": [10,445], "a": 1 }, + { "px": [162,240], "src": [0,128], "f": 1, "t": 288, "d": [10,490], "a": 1 }, + { "px": [144,64], "src": [0,144], "f": 1, "t": 324, "d": [77,137], "a": 1 }, + { "px": [224,64], "src": [0,144], "f": 0, "t": 324, "d": [77,142], "a": 1 }, + { "px": [256,80], "src": [0,144], "f": 0, "t": 324, "d": [77,176], "a": 1 }, + { "px": [64,96], "src": [0,144], "f": 1, "t": 324, "d": [77,196], "a": 1 }, + { "px": [240,128], "src": [0,144], "f": 0, "t": 324, "d": [77,271], "a": 1 }, + { "px": [336,128], "src": [0,144], "f": 1, "t": 324, "d": [77,277], "a": 1 }, + { "px": [400,128], "src": [0,144], "f": 0, "t": 324, "d": [77,281], "a": 1 }, + { "px": [256,144], "src": [0,144], "f": 0, "t": 324, "d": [77,304], "a": 1 }, + { "px": [320,144], "src": [0,144], "f": 1, "t": 324, "d": [77,308], "a": 1 }, + { "px": [432,144], "src": [0,144], "f": 0, "t": 324, "d": [77,315], "a": 1 }, + { "px": [448,160], "src": [0,144], "f": 0, "t": 324, "d": [77,348], "a": 1 }, + { "px": [240,112], "src": [0,96], "f": 0, "t": 216, "d": [11,239], "a": 1 }, + { "px": [256,112], "src": [0,96], "f": 1, "t": 216, "d": [11,240], "a": 1 }, + { "px": [272,192], "src": [0,96], "f": 0, "t": 216, "d": [11,401], "a": 1 }, + { "px": [320,192], "src": [0,96], "f": 1, "t": 216, "d": [11,404], "a": 1 }, + { "px": [64,208], "src": [0,96], "f": 1, "t": 216, "d": [11,420], "a": 1 }, + { "px": [128,208], "src": [0,96], "f": 0, "t": 216, "d": [11,424], "a": 1 }, + { "px": [144,208], "src": [0,96], "f": 1, "t": 216, "d": [11,425], "a": 1 }, + { "px": [256,208], "src": [0,96], "f": 0, "t": 216, "d": [11,432], "a": 1 }, + { "px": [336,208], "src": [0,96], "f": 1, "t": 216, "d": [11,437], "a": 1 }, + { "px": [160,224], "src": [0,96], "f": 1, "t": 216, "d": [11,458], "a": 1 }, + { "px": [224,224], "src": [0,96], "f": 0, "t": 216, "d": [11,462], "a": 1 }, + { "px": [208,240], "src": [0,96], "f": 0, "t": 216, "d": [11,493], "a": 1 }, + { "px": [144,48], "src": [48,144], "f": 0, "t": 327, "d": [76,105], "a": 1 }, + { "px": [224,48], "src": [48,144], "f": 1, "t": 327, "d": [76,110], "a": 1 }, + { "px": [64,64], "src": [48,144], "f": 0, "t": 327, "d": [76,132], "a": 1 }, + { "px": [256,64], "src": [48,144], "f": 1, "t": 327, "d": [76,144], "a": 1 }, + { "px": [304,80], "src": [48,144], "f": 1, "t": 327, "d": [76,179], "a": 1 }, + { "px": [48,96], "src": [48,144], "f": 0, "t": 327, "d": [76,195], "a": 1 }, + { "px": [336,112], "src": [48,144], "f": 0, "t": 327, "d": [76,245], "a": 1 }, + { "px": [400,112], "src": [48,144], "f": 1, "t": 327, "d": [76,249], "a": 1 }, + { "px": [256,128], "src": [48,144], "f": 1, "t": 327, "d": [76,272], "a": 1 }, + { "px": [320,128], "src": [48,144], "f": 0, "t": 327, "d": [76,276], "a": 1 }, + { "px": [432,128], "src": [48,144], "f": 1, "t": 327, "d": [76,283], "a": 1 }, + { "px": [448,144], "src": [48,144], "f": 1, "t": 327, "d": [76,316], "a": 1 }, + { "px": [464,160], "src": [48,144], "f": 1, "t": 327, "d": [76,349], "a": 1 }, + { "px": [256,144], "src": [64,144], "f": 0, "t": 328, "d": [14,304], "a": 1 }, + { "px": [304,144], "src": [64,144], "f": 1, "t": 328, "d": [14,307], "a": 1 }, + { "px": [48,208], "src": [64,144], "f": 0, "t": 328, "d": [14,419], "a": 1 }, + { "px": [272,208], "src": [64,144], "f": 1, "t": 328, "d": [14,433], "a": 1 }, + { "px": [320,208], "src": [64,144], "f": 0, "t": 328, "d": [14,436], "a": 1 }, + { "px": [64,224], "src": [64,144], "f": 0, "t": 328, "d": [14,452], "a": 1 }, + { "px": [128,224], "src": [64,144], "f": 1, "t": 328, "d": [14,456], "a": 1 }, + { "px": [144,224], "src": [64,144], "f": 0, "t": 328, "d": [14,457], "a": 1 }, + { "px": [256,224], "src": [64,144], "f": 1, "t": 328, "d": [14,464], "a": 1 }, + { "px": [336,224], "src": [64,144], "f": 0, "t": 328, "d": [14,469], "a": 1 }, + { "px": [464,224], "src": [64,144], "f": 1, "t": 328, "d": [14,477], "a": 1 }, + { "px": [224,240], "src": [64,144], "f": 1, "t": 328, "d": [14,494], "a": 1 }, + { "px": [352,208], "src": [0,224], "f": 0, "t": 504, "d": [28,438], "a": 1 }, + { "px": [368,208], "src": [0,224], "f": 0, "t": 504, "d": [28,439], "a": 1 }, + { "px": [384,208], "src": [0,224], "f": 0, "t": 504, "d": [28,440], "a": 1 }, + { "px": [400,208], "src": [0,224], "f": 0, "t": 504, "d": [28,441], "a": 1 }, + { "px": [416,208], "src": [0,224], "f": 0, "t": 504, "d": [28,442], "a": 1 }, + { "px": [432,208], "src": [0,224], "f": 0, "t": 504, "d": [28,443], "a": 1 }, + { "px": [272,128], "src": [32,240], "f": 0, "t": 542, "d": [74,273], "a": 1 }, + { "px": [288,128], "src": [16,224], "f": 0, "t": 505, "d": [74,274], "a": 1 }, + { "px": [448,208], "src": [32,224], "f": 0, "t": 506, "d": [74,444], "a": 1 }, + { "px": [272,113], "src": [16,208], "f": 0, "t": 469, "d": [21,241], "a": 1 }, + { "px": [288,112], "src": [0,208], "f": 0, "t": 468, "d": [21,242], "a": 1 }, + { "px": [352,192], "src": [16,208], "f": 0, "t": 469, "d": [21,406], "a": 1 }, + { "px": [368,192], "src": [32,208], "f": 0, "t": 470, "d": [21,407], "a": 1 }, + { "px": [384,192], "src": [16,208], "f": 0, "t": 469, "d": [21,408], "a": 1 }, + { "px": [400,192], "src": [0,208], "f": 0, "t": 468, "d": [21,409], "a": 1 }, + { "px": [416,192], "src": [0,208], "f": 0, "t": 468, "d": [21,410], "a": 1 }, + { "px": [432,193], "src": [32,208], "f": 0, "t": 470, "d": [21,411], "a": 1 }, + { "px": [448,192], "src": [0,208], "f": 0, "t": 468, "d": [21,412], "a": 1 }, + { "px": [272,128], "src": [160,48], "f": 0, "t": 118, "d": [111,273], "a": 1 }, + { "px": [288,128], "src": [208,48], "f": 0, "t": 121, "d": [111,274], "a": 1 }, + { "px": [352,208], "src": [176,48], "f": 0, "t": 119, "d": [111,438], "a": 1 }, + { "px": [384,208], "src": [176,48], "f": 0, "t": 119, "d": [111,440], "a": 1 }, + { "px": [400,208], "src": [208,48], "f": 0, "t": 121, "d": [111,441], "a": 1 }, + { "px": [416,208], "src": [176,48], "f": 0, "t": 119, "d": [111,442], "a": 1 }, + { "px": [432,208], "src": [176,48], "f": 0, "t": 119, "d": [111,443], "a": 1 }, + { "px": [448,208], "src": [192,48], "f": 0, "t": 120, "d": [111,444], "a": 1 }, + { "px": [270,129], "src": [192,48], "f": 0, "t": 120, "d": [99,273], "a": 1 }, + { "px": [290,128], "src": [192,48], "f": 0, "t": 120, "d": [99,274], "a": 1 }, + { "px": [350,208], "src": [176,48], "f": 0, "t": 119, "d": [99,438], "a": 1 }, + { "px": [368,208], "src": [208,48], "f": 0, "t": 121, "d": [99,439], "a": 1 }, + { "px": [418,209], "src": [176,48], "f": 0, "t": 119, "d": [99,442], "a": 1 }, + { "px": [434,208], "src": [176,48], "f": 0, "t": 119, "d": [99,443], "a": 1 }, + { "px": [446,208], "src": [208,48], "f": 0, "t": 121, "d": [99,444], "a": 1 }, + { "px": [160,64], "src": [80,112], "f": 0, "t": 257, "d": [95,138], "a": 1 }, + { "px": [208,64], "src": [80,128], "f": 1, "t": 293, "d": [95,141], "a": 1 }, + { "px": [80,80], "src": [80,128], "f": 0, "t": 293, "d": [95,165], "a": 1 }, + { "px": [240,80], "src": [80,112], "f": 1, "t": 257, "d": [95,175], "a": 1 }, + { "px": [288,96], "src": [80,128], "f": 1, "t": 293, "d": [95,210], "a": 1 }, + { "px": [64,112], "src": [80,112], "f": 0, "t": 257, "d": [95,228], "a": 1 }, + { "px": [352,128], "src": [80,112], "f": 0, "t": 257, "d": [95,278], "a": 1 }, + { "px": [384,128], "src": [80,112], "f": 1, "t": 257, "d": [95,280], "a": 1 }, + { "px": [240,144], "src": [80,112], "f": 1, "t": 257, "d": [95,303], "a": 1 }, + { "px": [336,144], "src": [80,128], "f": 0, "t": 293, "d": [95,309], "a": 1 }, + { "px": [416,144], "src": [80,112], "f": 1, "t": 257, "d": [95,314], "a": 1 }, + { "px": [432,160], "src": [80,128], "f": 1, "t": 293, "d": [95,347], "a": 1 }, + { "px": [448,176], "src": [80,128], "f": 1, "t": 293, "d": [95,380], "a": 1 }, + { "px": [272,128], "src": [80,160], "f": 0, "t": 365, "d": [96,273], "a": 1 }, + { "px": [288,128], "src": [80,144], "f": 1, "t": 329, "d": [96,274], "a": 1 }, + { "px": [64,192], "src": [80,160], "f": 0, "t": 365, "d": [96,388], "a": 1 }, + { "px": [256,192], "src": [80,160], "f": 1, "t": 365, "d": [96,400], "a": 1 }, + { "px": [336,192], "src": [80,144], "f": 0, "t": 329, "d": [96,405], "a": 1 }, + { "px": [80,208], "src": [80,144], "f": 0, "t": 329, "d": [96,421], "a": 1 }, + { "px": [112,208], "src": [80,160], "f": 1, "t": 365, "d": [96,423], "a": 1 }, + { "px": [160,208], "src": [80,160], "f": 0, "t": 365, "d": [96,426], "a": 1 }, + { "px": [240,208], "src": [80,144], "f": 1, "t": 329, "d": [96,431], "a": 1 }, + { "px": [352,208], "src": [80,144], "f": 0, "t": 329, "d": [96,438], "a": 1 }, + { "px": [448,208], "src": [80,144], "f": 1, "t": 329, "d": [96,444], "a": 1 }, + { "px": [208,224], "src": [80,144], "f": 1, "t": 329, "d": [96,461], "a": 1 }, + { "px": [240,97], "src": [128,112], "f": 0, "t": 260, "d": [97,207], "a": 1 }, + { "px": [256,96], "src": [112,112], "f": 0, "t": 259, "d": [97,208], "a": 1 }, + { "px": [272,129], "src": [128,112], "f": 0, "t": 260, "d": [97,273], "a": 1 }, + { "px": [288,130], "src": [144,112], "f": 0, "t": 261, "d": [97,274], "a": 1 }, + { "px": [288,178], "src": [32,80], "f": 0, "t": 182, "d": [97,370], "a": 1 }, + { "px": [304,178], "src": [144,112], "f": 0, "t": 261, "d": [97,371], "a": 1 }, + { "px": [320,176], "src": [128,112], "f": 0, "t": 260, "d": [97,372], "a": 1 }, + { "px": [64,192], "src": [112,112], "f": 0, "t": 259, "d": [97,388], "a": 1 }, + { "px": [128,193], "src": [128,112], "f": 0, "t": 260, "d": [97,392], "a": 1 }, + { "px": [144,192], "src": [144,112], "f": 0, "t": 261, "d": [97,393], "a": 1 }, + { "px": [256,194], "src": [144,112], "f": 0, "t": 261, "d": [97,400], "a": 1 }, + { "px": [336,193], "src": [48,80], "f": 0, "t": 183, "d": [97,405], "a": 1 }, + { "px": [80,209], "src": [144,112], "f": 0, "t": 261, "d": [97,421], "a": 1 }, + { "px": [96,208], "src": [144,112], "f": 0, "t": 261, "d": [97,422], "a": 1 }, + { "px": [112,209], "src": [144,112], "f": 0, "t": 261, "d": [97,423], "a": 1 }, + { "px": [160,208], "src": [16,80], "f": 0, "t": 181, "d": [97,426], "a": 1 }, + { "px": [224,210], "src": [128,112], "f": 0, "t": 260, "d": [97,430], "a": 1 }, + { "px": [240,209], "src": [128,112], "f": 0, "t": 260, "d": [97,431], "a": 1 }, + { "px": [352,208], "src": [128,112], "f": 0, "t": 260, "d": [97,438], "a": 1 }, + { "px": [368,208], "src": [144,112], "f": 0, "t": 261, "d": [97,439], "a": 1 }, + { "px": [384,210], "src": [128,112], "f": 0, "t": 260, "d": [97,440], "a": 1 }, + { "px": [400,210], "src": [16,80], "f": 0, "t": 181, "d": [97,441], "a": 1 }, + { "px": [416,210], "src": [16,80], "f": 0, "t": 181, "d": [97,442], "a": 1 }, + { "px": [432,209], "src": [16,80], "f": 0, "t": 181, "d": [97,443], "a": 1 }, + { "px": [448,208], "src": [48,80], "f": 0, "t": 183, "d": [97,444], "a": 1 }, + { "px": [208,225], "src": [144,112], "f": 0, "t": 261, "d": [97,461], "a": 1 }, + { "px": [208,64], "src": [64,112], "f": 1, "t": 256, "d": [98,141], "a": 1 }, + { "px": [80,80], "src": [64,128], "f": 0, "t": 292, "d": [98,165], "a": 1 }, + { "px": [80,96], "src": [64,128], "f": 0, "t": 292, "d": [98,197], "a": 1 }, + { "px": [288,96], "src": [64,112], "f": 1, "t": 256, "d": [98,210], "a": 1 }, + { "px": [64,112], "src": [64,112], "f": 0, "t": 256, "d": [98,228], "a": 1 }, + { "px": [224,112], "src": [64,128], "f": 1, "t": 292, "d": [98,238], "a": 1 }, + { "px": [272,112], "src": [64,128], "f": 0, "t": 292, "d": [98,241], "a": 1 }, + { "px": [288,112], "src": [64,112], "f": 1, "t": 256, "d": [98,242], "a": 1 }, + { "px": [64,128], "src": [64,128], "f": 0, "t": 292, "d": [98,260], "a": 1 }, + { "px": [224,128], "src": [64,128], "f": 1, "t": 292, "d": [98,270], "a": 1 }, + { "px": [288,128], "src": [64,128], "f": 1, "t": 292, "d": [98,274], "a": 1 }, + { "px": [352,128], "src": [64,128], "f": 0, "t": 292, "d": [98,278], "a": 1 }, + { "px": [384,128], "src": [64,112], "f": 1, "t": 256, "d": [98,280], "a": 1 }, + { "px": [240,144], "src": [64,112], "f": 1, "t": 256, "d": [98,303], "a": 1 }, + { "px": [336,144], "src": [64,112], "f": 0, "t": 256, "d": [98,309], "a": 1 }, + { "px": [416,144], "src": [64,128], "f": 1, "t": 292, "d": [98,314], "a": 1 }, + { "px": [448,176], "src": [64,128], "f": 1, "t": 292, "d": [98,380], "a": 1 }, + { "px": [64,192], "src": [64,112], "f": 0, "t": 256, "d": [98,388], "a": 1 }, + { "px": [256,192], "src": [64,128], "f": 1, "t": 292, "d": [98,400], "a": 1 }, + { "px": [336,192], "src": [64,128], "f": 0, "t": 292, "d": [98,405], "a": 1 }, + { "px": [80,208], "src": [64,112], "f": 0, "t": 256, "d": [98,421], "a": 1 }, + { "px": [112,208], "src": [64,112], "f": 1, "t": 256, "d": [98,423], "a": 1 }, + { "px": [160,208], "src": [64,112], "f": 0, "t": 256, "d": [98,426], "a": 1 }, + { "px": [240,208], "src": [64,128], "f": 1, "t": 292, "d": [98,431], "a": 1 }, + { "px": [352,208], "src": [64,128], "f": 0, "t": 292, "d": [98,438], "a": 1 }, + { "px": [448,208], "src": [64,128], "f": 1, "t": 292, "d": [98,444], "a": 1 }, + { "px": [176,224], "src": [64,112], "f": 0, "t": 256, "d": [98,459], "a": 1 }, + { "px": [208,224], "src": [64,112], "f": 1, "t": 256, "d": [98,461], "a": 1 }, + { "px": [176,240], "src": [64,112], "f": 0, "t": 256, "d": [98,491], "a": 1 }, + { "px": [192,240], "src": [64,112], "f": 1, "t": 256, "d": [98,492], "a": 1 }, + { "px": [80,80], "src": [96,80], "f": 0, "t": 186, "d": [93,165], "a": 1 }, + { "px": [224,80], "src": [112,80], "f": 0, "t": 187, "d": [93,174], "a": 1 }, + { "px": [240,80], "src": [112,80], "f": 0, "t": 187, "d": [93,175], "a": 1 }, + { "px": [256,96], "src": [112,96], "f": 0, "t": 223, "d": [93,208], "a": 1 }, + { "px": [416,144], "src": [96,96], "f": 0, "t": 222, "d": [93,314], "a": 1 }, + { "px": [256,160], "src": [112,80], "f": 0, "t": 187, "d": [93,336], "a": 1 }, + { "px": [272,160], "src": [112,80], "f": 0, "t": 187, "d": [93,337], "a": 1 }, + { "px": [320,160], "src": [96,80], "f": 0, "t": 186, "d": [93,340], "a": 1 }, + { "px": [160,64], "src": [128,96], "f": 0, "t": 224, "d": [101,138], "a": 1 }, + { "px": [176,64], "src": [112,96], "f": 0, "t": 223, "d": [101,139], "a": 1 }, + { "px": [192,64], "src": [128,96], "f": 0, "t": 224, "d": [101,140], "a": 1 }, + { "px": [208,64], "src": [128,96], "f": 0, "t": 224, "d": [101,141], "a": 1 }, + { "px": [80,80], "src": [128,96], "f": 0, "t": 224, "d": [101,165], "a": 1 }, + { "px": [96,80], "src": [112,96], "f": 0, "t": 223, "d": [101,166], "a": 1 }, + { "px": [112,80], "src": [112,96], "f": 0, "t": 223, "d": [101,167], "a": 1 }, + { "px": [128,80], "src": [112,96], "f": 0, "t": 223, "d": [101,168], "a": 1 }, + { "px": [144,80], "src": [128,96], "f": 0, "t": 224, "d": [101,169], "a": 1 }, + { "px": [224,80], "src": [128,96], "f": 0, "t": 224, "d": [101,174], "a": 1 }, + { "px": [240,80], "src": [128,96], "f": 0, "t": 224, "d": [101,175], "a": 1 }, + { "px": [256,96], "src": [112,96], "f": 0, "t": 223, "d": [101,208], "a": 1 }, + { "px": [272,96], "src": [112,96], "f": 0, "t": 223, "d": [101,209], "a": 1 }, + { "px": [288,96], "src": [128,96], "f": 0, "t": 224, "d": [101,210], "a": 1 }, + { "px": [64,112], "src": [128,96], "f": 0, "t": 224, "d": [101,228], "a": 1 }, + { "px": [352,128], "src": [112,96], "f": 0, "t": 223, "d": [101,278], "a": 1 }, + { "px": [368,128], "src": [128,96], "f": 0, "t": 224, "d": [101,279], "a": 1 }, + { "px": [240,144], "src": [128,96], "f": 0, "t": 224, "d": [101,303], "a": 1 }, + { "px": [336,144], "src": [128,96], "f": 0, "t": 224, "d": [101,309], "a": 1 }, + { "px": [400,144], "src": [128,96], "f": 0, "t": 224, "d": [101,313], "a": 1 }, + { "px": [416,144], "src": [112,96], "f": 0, "t": 223, "d": [101,314], "a": 1 }, + { "px": [256,160], "src": [112,96], "f": 0, "t": 223, "d": [101,336], "a": 1 }, + { "px": [288,160], "src": [128,96], "f": 0, "t": 224, "d": [101,338], "a": 1 }, + { "px": [304,160], "src": [112,96], "f": 0, "t": 223, "d": [101,339], "a": 1 }, + { "px": [320,160], "src": [128,96], "f": 0, "t": 224, "d": [101,340], "a": 1 }, + { "px": [432,160], "src": [112,96], "f": 0, "t": 223, "d": [101,347], "a": 1 }, + { "px": [448,176], "src": [128,96], "f": 0, "t": 224, "d": [101,380], "a": 1 }, + { "px": [0,0], "src": [176,208], "f": 0, "t": 479, "d": [104,0], "a": 1 }, + { "px": [16,0], "src": [176,208], "f": 0, "t": 479, "d": [104,1], "a": 1 }, + { "px": [32,0], "src": [192,208], "f": 0, "t": 480, "d": [104,2], "a": 1 }, + { "px": [48,0], "src": [192,208], "f": 0, "t": 480, "d": [104,3], "a": 1 }, + { "px": [64,0], "src": [208,208], "f": 0, "t": 481, "d": [104,4], "a": 1 }, + { "px": [80,0], "src": [176,208], "f": 0, "t": 479, "d": [104,5], "a": 1 }, + { "px": [96,0], "src": [192,208], "f": 0, "t": 480, "d": [104,6], "a": 1 }, + { "px": [128,0], "src": [208,208], "f": 0, "t": 481, "d": [104,8], "a": 1 }, + { "px": [144,0], "src": [176,208], "f": 0, "t": 479, "d": [104,9], "a": 1 }, + { "px": [160,0], "src": [208,208], "f": 0, "t": 481, "d": [104,10], "a": 1 }, + { "px": [176,0], "src": [208,208], "f": 0, "t": 481, "d": [104,11], "a": 1 }, + { "px": [192,0], "src": [192,208], "f": 0, "t": 480, "d": [104,12], "a": 1 }, + { "px": [208,0], "src": [192,208], "f": 0, "t": 480, "d": [104,13], "a": 1 }, + { "px": [272,0], "src": [208,208], "f": 0, "t": 481, "d": [104,17], "a": 1 }, + { "px": [288,0], "src": [176,208], "f": 0, "t": 479, "d": [104,18], "a": 1 }, + { "px": [304,0], "src": [208,208], "f": 0, "t": 481, "d": [104,19], "a": 1 }, + { "px": [320,0], "src": [192,208], "f": 0, "t": 480, "d": [104,20], "a": 1 }, + { "px": [336,0], "src": [208,208], "f": 0, "t": 481, "d": [104,21], "a": 1 }, + { "px": [352,0], "src": [208,208], "f": 0, "t": 481, "d": [104,22], "a": 1 }, + { "px": [368,0], "src": [176,208], "f": 0, "t": 479, "d": [104,23], "a": 1 }, + { "px": [384,0], "src": [176,208], "f": 0, "t": 479, "d": [104,24], "a": 1 }, + { "px": [400,0], "src": [192,208], "f": 0, "t": 480, "d": [104,25], "a": 1 }, + { "px": [480,0], "src": [208,208], "f": 0, "t": 481, "d": [104,30], "a": 1 }, + { "px": [0,16], "src": [176,208], "f": 0, "t": 479, "d": [104,32], "a": 1 }, + { "px": [48,16], "src": [192,208], "f": 0, "t": 480, "d": [104,35], "a": 1 }, + { "px": [64,16], "src": [192,208], "f": 0, "t": 480, "d": [104,36], "a": 1 }, + { "px": [80,16], "src": [176,208], "f": 0, "t": 479, "d": [104,37], "a": 1 }, + { "px": [128,16], "src": [208,208], "f": 0, "t": 481, "d": [104,40], "a": 1 }, + { "px": [144,16], "src": [208,208], "f": 0, "t": 481, "d": [104,41], "a": 1 }, + { "px": [160,16], "src": [208,208], "f": 0, "t": 481, "d": [104,42], "a": 1 }, + { "px": [176,16], "src": [208,208], "f": 0, "t": 481, "d": [104,43], "a": 1 }, + { "px": [192,16], "src": [192,208], "f": 0, "t": 480, "d": [104,44], "a": 1 }, + { "px": [208,16], "src": [176,208], "f": 0, "t": 479, "d": [104,45], "a": 1 }, + { "px": [224,16], "src": [192,208], "f": 0, "t": 480, "d": [104,46], "a": 1 }, + { "px": [240,16], "src": [192,208], "f": 0, "t": 480, "d": [104,47], "a": 1 }, + { "px": [256,16], "src": [176,208], "f": 0, "t": 479, "d": [104,48], "a": 1 }, + { "px": [288,16], "src": [176,208], "f": 0, "t": 479, "d": [104,50], "a": 1 }, + { "px": [304,16], "src": [176,208], "f": 0, "t": 479, "d": [104,51], "a": 1 }, + { "px": [320,16], "src": [176,208], "f": 0, "t": 479, "d": [104,52], "a": 1 }, + { "px": [336,16], "src": [208,208], "f": 0, "t": 481, "d": [104,53], "a": 1 }, + { "px": [352,16], "src": [192,208], "f": 0, "t": 480, "d": [104,54], "a": 1 }, + { "px": [368,16], "src": [208,208], "f": 0, "t": 481, "d": [104,55], "a": 1 }, + { "px": [416,16], "src": [208,208], "f": 0, "t": 481, "d": [104,58], "a": 1 }, + { "px": [464,16], "src": [176,208], "f": 0, "t": 479, "d": [104,61], "a": 1 }, + { "px": [480,16], "src": [192,208], "f": 0, "t": 480, "d": [104,62], "a": 1 }, + { "px": [0,32], "src": [176,208], "f": 0, "t": 479, "d": [104,64], "a": 1 }, + { "px": [32,32], "src": [192,208], "f": 0, "t": 480, "d": [104,66], "a": 1 }, + { "px": [64,32], "src": [176,208], "f": 0, "t": 479, "d": [104,68], "a": 1 }, + { "px": [80,32], "src": [208,208], "f": 0, "t": 481, "d": [104,69], "a": 1 }, + { "px": [96,32], "src": [176,208], "f": 0, "t": 479, "d": [104,70], "a": 1 }, + { "px": [112,32], "src": [208,208], "f": 0, "t": 481, "d": [104,71], "a": 1 }, + { "px": [128,32], "src": [192,208], "f": 0, "t": 480, "d": [104,72], "a": 1 }, + { "px": [144,32], "src": [176,208], "f": 0, "t": 479, "d": [104,73], "a": 1 }, + { "px": [240,32], "src": [208,208], "f": 0, "t": 481, "d": [104,79], "a": 1 }, + { "px": [256,32], "src": [176,208], "f": 0, "t": 479, "d": [104,80], "a": 1 }, + { "px": [288,32], "src": [208,208], "f": 0, "t": 481, "d": [104,82], "a": 1 }, + { "px": [304,32], "src": [176,208], "f": 0, "t": 479, "d": [104,83], "a": 1 }, + { "px": [384,32], "src": [176,208], "f": 0, "t": 479, "d": [104,88], "a": 1 }, + { "px": [416,32], "src": [176,208], "f": 0, "t": 479, "d": [104,90], "a": 1 }, + { "px": [448,32], "src": [192,208], "f": 0, "t": 480, "d": [104,92], "a": 1 }, + { "px": [464,32], "src": [176,208], "f": 0, "t": 479, "d": [104,93], "a": 1 }, + { "px": [480,32], "src": [192,208], "f": 0, "t": 480, "d": [104,94], "a": 1 }, + { "px": [496,32], "src": [192,208], "f": 0, "t": 480, "d": [104,95], "a": 1 }, + { "px": [32,48], "src": [176,208], "f": 0, "t": 479, "d": [104,98], "a": 1 }, + { "px": [64,48], "src": [192,208], "f": 0, "t": 480, "d": [104,100], "a": 1 }, + { "px": [256,48], "src": [192,208], "f": 0, "t": 480, "d": [104,112], "a": 1 }, + { "px": [272,48], "src": [208,208], "f": 0, "t": 481, "d": [104,113], "a": 1 }, + { "px": [288,48], "src": [208,208], "f": 0, "t": 481, "d": [104,114], "a": 1 }, + { "px": [304,48], "src": [176,208], "f": 0, "t": 479, "d": [104,115], "a": 1 }, + { "px": [368,48], "src": [176,208], "f": 0, "t": 479, "d": [104,119], "a": 1 }, + { "px": [384,48], "src": [208,208], "f": 0, "t": 481, "d": [104,120], "a": 1 }, + { "px": [400,48], "src": [176,208], "f": 0, "t": 479, "d": [104,121], "a": 1 }, + { "px": [416,48], "src": [208,208], "f": 0, "t": 481, "d": [104,122], "a": 1 }, + { "px": [432,48], "src": [192,208], "f": 0, "t": 480, "d": [104,123], "a": 1 }, + { "px": [448,48], "src": [192,208], "f": 0, "t": 480, "d": [104,124], "a": 1 }, + { "px": [464,48], "src": [176,208], "f": 0, "t": 479, "d": [104,125], "a": 1 }, + { "px": [496,48], "src": [176,208], "f": 0, "t": 479, "d": [104,127], "a": 1 }, + { "px": [0,64], "src": [208,208], "f": 0, "t": 481, "d": [104,128], "a": 1 }, + { "px": [16,64], "src": [176,208], "f": 0, "t": 479, "d": [104,129], "a": 1 }, + { "px": [32,64], "src": [208,208], "f": 0, "t": 481, "d": [104,130], "a": 1 }, + { "px": [48,64], "src": [192,208], "f": 0, "t": 480, "d": [104,131], "a": 1 }, + { "px": [304,64], "src": [176,208], "f": 0, "t": 479, "d": [104,147], "a": 1 }, + { "px": [320,64], "src": [192,208], "f": 0, "t": 480, "d": [104,148], "a": 1 }, + { "px": [336,64], "src": [208,208], "f": 0, "t": 481, "d": [104,149], "a": 1 }, + { "px": [352,64], "src": [176,208], "f": 0, "t": 479, "d": [104,150], "a": 1 }, + { "px": [368,64], "src": [208,208], "f": 0, "t": 481, "d": [104,151], "a": 1 }, + { "px": [384,64], "src": [208,208], "f": 0, "t": 481, "d": [104,152], "a": 1 }, + { "px": [416,64], "src": [208,208], "f": 0, "t": 481, "d": [104,154], "a": 1 }, + { "px": [432,64], "src": [176,208], "f": 0, "t": 479, "d": [104,155], "a": 1 }, + { "px": [16,80], "src": [176,208], "f": 0, "t": 479, "d": [104,161], "a": 1 }, + { "px": [320,80], "src": [192,208], "f": 0, "t": 480, "d": [104,180], "a": 1 }, + { "px": [352,80], "src": [176,208], "f": 0, "t": 479, "d": [104,182], "a": 1 }, + { "px": [368,80], "src": [176,208], "f": 0, "t": 479, "d": [104,183], "a": 1 }, + { "px": [400,80], "src": [192,208], "f": 0, "t": 480, "d": [104,185], "a": 1 }, + { "px": [432,80], "src": [208,208], "f": 0, "t": 481, "d": [104,187], "a": 1 }, + { "px": [464,80], "src": [208,208], "f": 0, "t": 481, "d": [104,189], "a": 1 }, + { "px": [480,80], "src": [192,208], "f": 0, "t": 480, "d": [104,190], "a": 1 }, + { "px": [496,80], "src": [192,208], "f": 0, "t": 480, "d": [104,191], "a": 1 }, + { "px": [0,96], "src": [208,208], "f": 0, "t": 481, "d": [104,192], "a": 1 }, + { "px": [16,96], "src": [192,208], "f": 0, "t": 480, "d": [104,193], "a": 1 }, + { "px": [32,96], "src": [192,208], "f": 0, "t": 480, "d": [104,194], "a": 1 }, + { "px": [336,96], "src": [176,208], "f": 0, "t": 479, "d": [104,213], "a": 1 }, + { "px": [432,96], "src": [176,208], "f": 0, "t": 479, "d": [104,219], "a": 1 }, + { "px": [448,96], "src": [192,208], "f": 0, "t": 480, "d": [104,220], "a": 1 }, + { "px": [480,96], "src": [192,208], "f": 0, "t": 480, "d": [104,222], "a": 1 }, + { "px": [496,96], "src": [176,208], "f": 0, "t": 479, "d": [104,223], "a": 1 }, + { "px": [0,112], "src": [176,208], "f": 0, "t": 479, "d": [104,224], "a": 1 }, + { "px": [448,112], "src": [208,208], "f": 0, "t": 481, "d": [104,252], "a": 1 }, + { "px": [464,112], "src": [208,208], "f": 0, "t": 481, "d": [104,253], "a": 1 }, + { "px": [496,112], "src": [208,208], "f": 0, "t": 481, "d": [104,255], "a": 1 }, + { "px": [0,128], "src": [176,208], "f": 0, "t": 479, "d": [104,256], "a": 1 }, + { "px": [448,128], "src": [192,208], "f": 0, "t": 480, "d": [104,284], "a": 1 }, + { "px": [496,128], "src": [208,208], "f": 0, "t": 481, "d": [104,287], "a": 1 }, + { "px": [0,144], "src": [176,208], "f": 0, "t": 479, "d": [104,288], "a": 1 }, + { "px": [464,144], "src": [176,208], "f": 0, "t": 479, "d": [104,317], "a": 1 }, + { "px": [480,144], "src": [176,208], "f": 0, "t": 479, "d": [104,318], "a": 1 }, + { "px": [496,144], "src": [176,208], "f": 0, "t": 479, "d": [104,319], "a": 1 }, + { "px": [0,160], "src": [208,208], "f": 0, "t": 481, "d": [104,320], "a": 1 }, + { "px": [496,160], "src": [208,208], "f": 0, "t": 481, "d": [104,351], "a": 1 }, + { "px": [0,176], "src": [208,208], "f": 0, "t": 481, "d": [104,352], "a": 1 }, + { "px": [16,176], "src": [208,208], "f": 0, "t": 481, "d": [104,353], "a": 1 }, + { "px": [496,176], "src": [192,208], "f": 0, "t": 480, "d": [104,383], "a": 1 }, + { "px": [0,192], "src": [176,208], "f": 0, "t": 479, "d": [104,384], "a": 1 }, + { "px": [16,192], "src": [176,208], "f": 0, "t": 479, "d": [104,385], "a": 1 }, + { "px": [0,208], "src": [192,208], "f": 0, "t": 480, "d": [104,416], "a": 1 }, + { "px": [496,208], "src": [176,208], "f": 0, "t": 479, "d": [104,447], "a": 1 }, + { "px": [0,224], "src": [176,208], "f": 0, "t": 479, "d": [104,448], "a": 1 }, + { "px": [16,224], "src": [192,208], "f": 0, "t": 480, "d": [104,449], "a": 1 }, + { "px": [272,224], "src": [208,208], "f": 0, "t": 481, "d": [104,465], "a": 1 }, + { "px": [304,224], "src": [176,208], "f": 0, "t": 479, "d": [104,467], "a": 1 }, + { "px": [480,224], "src": [176,208], "f": 0, "t": 479, "d": [104,478], "a": 1 }, + { "px": [496,224], "src": [208,208], "f": 0, "t": 481, "d": [104,479], "a": 1 }, + { "px": [16,240], "src": [208,208], "f": 0, "t": 481, "d": [104,481], "a": 1 }, + { "px": [32,240], "src": [176,208], "f": 0, "t": 479, "d": [104,482], "a": 1 }, + { "px": [48,240], "src": [176,208], "f": 0, "t": 479, "d": [104,483], "a": 1 }, + { "px": [128,240], "src": [176,208], "f": 0, "t": 479, "d": [104,488], "a": 1 }, + { "px": [256,240], "src": [208,208], "f": 0, "t": 481, "d": [104,496], "a": 1 }, + { "px": [272,240], "src": [208,208], "f": 0, "t": 481, "d": [104,497], "a": 1 }, + { "px": [288,240], "src": [192,208], "f": 0, "t": 480, "d": [104,498], "a": 1 }, + { "px": [320,240], "src": [192,208], "f": 0, "t": 480, "d": [104,500], "a": 1 }, + { "px": [336,240], "src": [192,208], "f": 0, "t": 480, "d": [104,501], "a": 1 }, + { "px": [464,240], "src": [176,208], "f": 0, "t": 479, "d": [104,509], "a": 1 }, + { "px": [496,240], "src": [176,208], "f": 0, "t": 479, "d": [104,511], "a": 1 }, + { "px": [0,0], "src": [272,176], "f": 0, "t": 413, "d": [108,0], "a": 1 }, + { "px": [16,0], "src": [272,176], "f": 0, "t": 413, "d": [108,1], "a": 1 }, + { "px": [32,0], "src": [272,176], "f": 0, "t": 413, "d": [108,2], "a": 1 }, + { "px": [48,0], "src": [272,176], "f": 0, "t": 413, "d": [108,3], "a": 1 }, + { "px": [64,0], "src": [272,176], "f": 0, "t": 413, "d": [108,4], "a": 1 }, + { "px": [80,0], "src": [272,176], "f": 0, "t": 413, "d": [108,5], "a": 1 }, + { "px": [96,0], "src": [272,176], "f": 0, "t": 413, "d": [108,6], "a": 1 }, + { "px": [112,0], "src": [272,176], "f": 0, "t": 413, "d": [108,7], "a": 1 }, + { "px": [128,0], "src": [272,176], "f": 0, "t": 413, "d": [108,8], "a": 1 }, + { "px": [144,0], "src": [272,176], "f": 0, "t": 413, "d": [108,9], "a": 1 }, + { "px": [160,0], "src": [272,176], "f": 0, "t": 413, "d": [108,10], "a": 1 }, + { "px": [176,0], "src": [272,176], "f": 0, "t": 413, "d": [108,11], "a": 1 }, + { "px": [192,0], "src": [272,176], "f": 0, "t": 413, "d": [108,12], "a": 1 }, + { "px": [208,0], "src": [272,176], "f": 0, "t": 413, "d": [108,13], "a": 1 }, + { "px": [224,0], "src": [272,176], "f": 0, "t": 413, "d": [108,14], "a": 1 }, + { "px": [240,0], "src": [272,176], "f": 0, "t": 413, "d": [108,15], "a": 1 }, + { "px": [256,0], "src": [272,176], "f": 0, "t": 413, "d": [108,16], "a": 1 }, + { "px": [272,0], "src": [272,176], "f": 0, "t": 413, "d": [108,17], "a": 1 }, + { "px": [288,0], "src": [272,176], "f": 0, "t": 413, "d": [108,18], "a": 1 }, + { "px": [304,0], "src": [272,176], "f": 0, "t": 413, "d": [108,19], "a": 1 }, + { "px": [320,0], "src": [272,176], "f": 0, "t": 413, "d": [108,20], "a": 1 }, + { "px": [336,0], "src": [272,176], "f": 0, "t": 413, "d": [108,21], "a": 1 }, + { "px": [352,0], "src": [272,176], "f": 0, "t": 413, "d": [108,22], "a": 1 }, + { "px": [368,0], "src": [272,176], "f": 0, "t": 413, "d": [108,23], "a": 1 }, + { "px": [384,0], "src": [272,176], "f": 0, "t": 413, "d": [108,24], "a": 1 }, + { "px": [400,0], "src": [272,176], "f": 0, "t": 413, "d": [108,25], "a": 1 }, + { "px": [416,0], "src": [272,176], "f": 0, "t": 413, "d": [108,26], "a": 1 }, + { "px": [432,0], "src": [272,176], "f": 0, "t": 413, "d": [108,27], "a": 1 }, + { "px": [448,0], "src": [272,176], "f": 0, "t": 413, "d": [108,28], "a": 1 }, + { "px": [464,0], "src": [272,176], "f": 0, "t": 413, "d": [108,29], "a": 1 }, + { "px": [480,0], "src": [272,176], "f": 0, "t": 413, "d": [108,30], "a": 1 }, + { "px": [496,0], "src": [272,176], "f": 0, "t": 413, "d": [108,31], "a": 1 }, + { "px": [0,16], "src": [272,176], "f": 0, "t": 413, "d": [108,32], "a": 1 }, + { "px": [16,16], "src": [272,176], "f": 0, "t": 413, "d": [108,33], "a": 1 }, + { "px": [32,16], "src": [272,176], "f": 0, "t": 413, "d": [108,34], "a": 1 }, + { "px": [48,16], "src": [272,176], "f": 0, "t": 413, "d": [108,35], "a": 1 }, + { "px": [64,16], "src": [272,176], "f": 0, "t": 413, "d": [108,36], "a": 1 }, + { "px": [80,16], "src": [272,176], "f": 0, "t": 413, "d": [108,37], "a": 1 }, + { "px": [96,16], "src": [272,176], "f": 0, "t": 413, "d": [108,38], "a": 1 }, + { "px": [112,16], "src": [272,176], "f": 0, "t": 413, "d": [108,39], "a": 1 }, + { "px": [128,16], "src": [272,176], "f": 0, "t": 413, "d": [108,40], "a": 1 }, + { "px": [144,16], "src": [272,176], "f": 0, "t": 413, "d": [108,41], "a": 1 }, + { "px": [160,16], "src": [272,176], "f": 0, "t": 413, "d": [108,42], "a": 1 }, + { "px": [176,16], "src": [272,176], "f": 0, "t": 413, "d": [108,43], "a": 1 }, + { "px": [192,16], "src": [272,176], "f": 0, "t": 413, "d": [108,44], "a": 1 }, + { "px": [208,16], "src": [272,176], "f": 0, "t": 413, "d": [108,45], "a": 1 }, + { "px": [224,16], "src": [272,176], "f": 0, "t": 413, "d": [108,46], "a": 1 }, + { "px": [240,16], "src": [272,176], "f": 0, "t": 413, "d": [108,47], "a": 1 }, + { "px": [256,16], "src": [272,176], "f": 0, "t": 413, "d": [108,48], "a": 1 }, + { "px": [272,16], "src": [272,176], "f": 0, "t": 413, "d": [108,49], "a": 1 }, + { "px": [288,16], "src": [272,176], "f": 0, "t": 413, "d": [108,50], "a": 1 }, + { "px": [304,16], "src": [272,176], "f": 0, "t": 413, "d": [108,51], "a": 1 }, + { "px": [320,16], "src": [272,176], "f": 0, "t": 413, "d": [108,52], "a": 1 }, + { "px": [336,16], "src": [272,176], "f": 0, "t": 413, "d": [108,53], "a": 1 }, + { "px": [352,16], "src": [272,176], "f": 0, "t": 413, "d": [108,54], "a": 1 }, + { "px": [368,16], "src": [272,176], "f": 0, "t": 413, "d": [108,55], "a": 1 }, + { "px": [384,16], "src": [272,176], "f": 0, "t": 413, "d": [108,56], "a": 1 }, + { "px": [400,16], "src": [272,176], "f": 0, "t": 413, "d": [108,57], "a": 1 }, + { "px": [416,16], "src": [272,176], "f": 0, "t": 413, "d": [108,58], "a": 1 }, + { "px": [432,16], "src": [272,176], "f": 0, "t": 413, "d": [108,59], "a": 1 }, + { "px": [448,16], "src": [272,176], "f": 0, "t": 413, "d": [108,60], "a": 1 }, + { "px": [464,16], "src": [272,176], "f": 0, "t": 413, "d": [108,61], "a": 1 }, + { "px": [480,16], "src": [272,176], "f": 0, "t": 413, "d": [108,62], "a": 1 }, + { "px": [496,16], "src": [272,176], "f": 0, "t": 413, "d": [108,63], "a": 1 }, + { "px": [0,32], "src": [272,176], "f": 0, "t": 413, "d": [108,64], "a": 1 }, + { "px": [16,32], "src": [272,176], "f": 0, "t": 413, "d": [108,65], "a": 1 }, + { "px": [32,32], "src": [272,176], "f": 0, "t": 413, "d": [108,66], "a": 1 }, + { "px": [48,32], "src": [272,176], "f": 0, "t": 413, "d": [108,67], "a": 1 }, + { "px": [64,32], "src": [272,176], "f": 0, "t": 413, "d": [108,68], "a": 1 }, + { "px": [80,32], "src": [272,176], "f": 0, "t": 413, "d": [108,69], "a": 1 }, + { "px": [96,32], "src": [272,176], "f": 0, "t": 413, "d": [108,70], "a": 1 }, + { "px": [112,32], "src": [272,176], "f": 0, "t": 413, "d": [108,71], "a": 1 }, + { "px": [128,32], "src": [272,176], "f": 0, "t": 413, "d": [108,72], "a": 1 }, + { "px": [144,32], "src": [272,176], "f": 0, "t": 413, "d": [108,73], "a": 1 }, + { "px": [160,32], "src": [272,176], "f": 0, "t": 413, "d": [108,74], "a": 1 }, + { "px": [176,32], "src": [272,176], "f": 0, "t": 413, "d": [108,75], "a": 1 }, + { "px": [192,32], "src": [272,176], "f": 0, "t": 413, "d": [108,76], "a": 1 }, + { "px": [208,32], "src": [272,176], "f": 0, "t": 413, "d": [108,77], "a": 1 }, + { "px": [224,32], "src": [272,176], "f": 0, "t": 413, "d": [108,78], "a": 1 }, + { "px": [240,32], "src": [272,176], "f": 0, "t": 413, "d": [108,79], "a": 1 }, + { "px": [256,32], "src": [272,176], "f": 0, "t": 413, "d": [108,80], "a": 1 }, + { "px": [272,32], "src": [272,176], "f": 0, "t": 413, "d": [108,81], "a": 1 }, + { "px": [288,32], "src": [272,176], "f": 0, "t": 413, "d": [108,82], "a": 1 }, + { "px": [304,32], "src": [272,176], "f": 0, "t": 413, "d": [108,83], "a": 1 }, + { "px": [320,32], "src": [272,176], "f": 0, "t": 413, "d": [108,84], "a": 1 }, + { "px": [336,32], "src": [272,176], "f": 0, "t": 413, "d": [108,85], "a": 1 }, + { "px": [352,32], "src": [272,176], "f": 0, "t": 413, "d": [108,86], "a": 1 }, + { "px": [368,32], "src": [272,176], "f": 0, "t": 413, "d": [108,87], "a": 1 }, + { "px": [384,32], "src": [272,176], "f": 0, "t": 413, "d": [108,88], "a": 1 }, + { "px": [400,32], "src": [272,176], "f": 0, "t": 413, "d": [108,89], "a": 1 }, + { "px": [416,32], "src": [272,176], "f": 0, "t": 413, "d": [108,90], "a": 1 }, + { "px": [432,32], "src": [272,176], "f": 0, "t": 413, "d": [108,91], "a": 1 }, + { "px": [448,32], "src": [272,176], "f": 0, "t": 413, "d": [108,92], "a": 1 }, + { "px": [464,32], "src": [272,176], "f": 0, "t": 413, "d": [108,93], "a": 1 }, + { "px": [480,32], "src": [272,176], "f": 0, "t": 413, "d": [108,94], "a": 1 }, + { "px": [496,32], "src": [272,176], "f": 0, "t": 413, "d": [108,95], "a": 1 }, + { "px": [0,48], "src": [272,176], "f": 0, "t": 413, "d": [108,96], "a": 1 }, + { "px": [16,48], "src": [272,176], "f": 0, "t": 413, "d": [108,97], "a": 1 }, + { "px": [32,48], "src": [272,176], "f": 0, "t": 413, "d": [108,98], "a": 1 }, + { "px": [48,48], "src": [272,176], "f": 0, "t": 413, "d": [108,99], "a": 1 }, + { "px": [64,48], "src": [272,176], "f": 0, "t": 413, "d": [108,100], "a": 1 }, + { "px": [80,48], "src": [272,176], "f": 0, "t": 413, "d": [108,101], "a": 1 }, + { "px": [96,48], "src": [272,176], "f": 0, "t": 413, "d": [108,102], "a": 1 }, + { "px": [112,48], "src": [272,176], "f": 0, "t": 413, "d": [108,103], "a": 1 }, + { "px": [128,48], "src": [272,176], "f": 0, "t": 413, "d": [108,104], "a": 1 }, + { "px": [240,48], "src": [272,176], "f": 0, "t": 413, "d": [108,111], "a": 1 }, + { "px": [256,48], "src": [272,176], "f": 0, "t": 413, "d": [108,112], "a": 1 }, + { "px": [272,48], "src": [272,176], "f": 0, "t": 413, "d": [108,113], "a": 1 }, + { "px": [288,48], "src": [272,176], "f": 0, "t": 413, "d": [108,114], "a": 1 }, + { "px": [304,48], "src": [272,176], "f": 0, "t": 413, "d": [108,115], "a": 1 }, + { "px": [320,48], "src": [272,176], "f": 0, "t": 413, "d": [108,116], "a": 1 }, + { "px": [336,48], "src": [272,176], "f": 0, "t": 413, "d": [108,117], "a": 1 }, + { "px": [352,48], "src": [272,176], "f": 0, "t": 413, "d": [108,118], "a": 1 }, + { "px": [368,48], "src": [272,176], "f": 0, "t": 413, "d": [108,119], "a": 1 }, + { "px": [384,48], "src": [272,176], "f": 0, "t": 413, "d": [108,120], "a": 1 }, + { "px": [400,48], "src": [272,176], "f": 0, "t": 413, "d": [108,121], "a": 1 }, + { "px": [416,48], "src": [272,176], "f": 0, "t": 413, "d": [108,122], "a": 1 }, + { "px": [432,48], "src": [272,176], "f": 0, "t": 413, "d": [108,123], "a": 1 }, + { "px": [448,48], "src": [272,176], "f": 0, "t": 413, "d": [108,124], "a": 1 }, + { "px": [464,48], "src": [272,176], "f": 0, "t": 413, "d": [108,125], "a": 1 }, + { "px": [480,48], "src": [272,176], "f": 0, "t": 413, "d": [108,126], "a": 1 }, + { "px": [496,48], "src": [272,176], "f": 0, "t": 413, "d": [108,127], "a": 1 }, + { "px": [0,64], "src": [272,176], "f": 0, "t": 413, "d": [108,128], "a": 1 }, + { "px": [16,64], "src": [272,176], "f": 0, "t": 413, "d": [108,129], "a": 1 }, + { "px": [32,64], "src": [272,176], "f": 0, "t": 413, "d": [108,130], "a": 1 }, + { "px": [48,64], "src": [272,176], "f": 0, "t": 413, "d": [108,131], "a": 1 }, + { "px": [272,64], "src": [272,176], "f": 0, "t": 413, "d": [108,145], "a": 1 }, + { "px": [288,64], "src": [272,176], "f": 0, "t": 413, "d": [108,146], "a": 1 }, + { "px": [304,64], "src": [272,176], "f": 0, "t": 413, "d": [108,147], "a": 1 }, + { "px": [320,64], "src": [272,176], "f": 0, "t": 413, "d": [108,148], "a": 1 }, + { "px": [336,64], "src": [272,176], "f": 0, "t": 413, "d": [108,149], "a": 1 }, + { "px": [352,64], "src": [272,176], "f": 0, "t": 413, "d": [108,150], "a": 1 }, + { "px": [368,64], "src": [272,176], "f": 0, "t": 413, "d": [108,151], "a": 1 }, + { "px": [384,64], "src": [272,176], "f": 0, "t": 413, "d": [108,152], "a": 1 }, + { "px": [400,64], "src": [272,176], "f": 0, "t": 413, "d": [108,153], "a": 1 }, + { "px": [416,64], "src": [272,176], "f": 0, "t": 413, "d": [108,154], "a": 1 }, + { "px": [432,64], "src": [272,176], "f": 0, "t": 413, "d": [108,155], "a": 1 }, + { "px": [448,64], "src": [272,176], "f": 0, "t": 413, "d": [108,156], "a": 1 }, + { "px": [464,64], "src": [272,176], "f": 0, "t": 413, "d": [108,157], "a": 1 }, + { "px": [480,64], "src": [272,176], "f": 0, "t": 413, "d": [108,158], "a": 1 }, + { "px": [496,64], "src": [272,176], "f": 0, "t": 413, "d": [108,159], "a": 1 }, + { "px": [0,80], "src": [272,176], "f": 0, "t": 413, "d": [108,160], "a": 1 }, + { "px": [16,80], "src": [272,176], "f": 0, "t": 413, "d": [108,161], "a": 1 }, + { "px": [32,80], "src": [272,176], "f": 0, "t": 413, "d": [108,162], "a": 1 }, + { "px": [48,80], "src": [272,176], "f": 0, "t": 413, "d": [108,163], "a": 1 }, + { "px": [320,80], "src": [272,176], "f": 0, "t": 413, "d": [108,180], "a": 1 }, + { "px": [336,80], "src": [272,176], "f": 0, "t": 413, "d": [108,181], "a": 1 }, + { "px": [352,80], "src": [272,176], "f": 0, "t": 413, "d": [108,182], "a": 1 }, + { "px": [368,80], "src": [272,176], "f": 0, "t": 413, "d": [108,183], "a": 1 }, + { "px": [384,80], "src": [272,176], "f": 0, "t": 413, "d": [108,184], "a": 1 }, + { "px": [400,80], "src": [272,176], "f": 0, "t": 413, "d": [108,185], "a": 1 }, + { "px": [416,80], "src": [272,176], "f": 0, "t": 413, "d": [108,186], "a": 1 }, + { "px": [432,80], "src": [272,176], "f": 0, "t": 413, "d": [108,187], "a": 1 }, + { "px": [448,80], "src": [272,176], "f": 0, "t": 413, "d": [108,188], "a": 1 }, + { "px": [464,80], "src": [272,176], "f": 0, "t": 413, "d": [108,189], "a": 1 }, + { "px": [480,80], "src": [272,176], "f": 0, "t": 413, "d": [108,190], "a": 1 }, + { "px": [496,80], "src": [272,176], "f": 0, "t": 413, "d": [108,191], "a": 1 }, + { "px": [0,96], "src": [272,176], "f": 0, "t": 413, "d": [108,192], "a": 1 }, + { "px": [16,96], "src": [272,176], "f": 0, "t": 413, "d": [108,193], "a": 1 }, + { "px": [32,96], "src": [272,176], "f": 0, "t": 413, "d": [108,194], "a": 1 }, + { "px": [320,96], "src": [272,176], "f": 0, "t": 413, "d": [108,212], "a": 1 }, + { "px": [336,96], "src": [272,176], "f": 0, "t": 413, "d": [108,213], "a": 1 }, + { "px": [352,96], "src": [272,176], "f": 0, "t": 413, "d": [108,214], "a": 1 }, + { "px": [368,96], "src": [272,176], "f": 0, "t": 413, "d": [108,215], "a": 1 }, + { "px": [384,96], "src": [272,176], "f": 0, "t": 413, "d": [108,216], "a": 1 }, + { "px": [400,96], "src": [272,176], "f": 0, "t": 413, "d": [108,217], "a": 1 }, + { "px": [416,96], "src": [272,176], "f": 0, "t": 413, "d": [108,218], "a": 1 }, + { "px": [432,96], "src": [272,176], "f": 0, "t": 413, "d": [108,219], "a": 1 }, + { "px": [448,96], "src": [272,176], "f": 0, "t": 413, "d": [108,220], "a": 1 }, + { "px": [464,96], "src": [272,176], "f": 0, "t": 413, "d": [108,221], "a": 1 }, + { "px": [480,96], "src": [272,176], "f": 0, "t": 413, "d": [108,222], "a": 1 }, + { "px": [496,96], "src": [272,176], "f": 0, "t": 413, "d": [108,223], "a": 1 }, + { "px": [0,112], "src": [272,176], "f": 0, "t": 413, "d": [108,224], "a": 1 }, + { "px": [16,112], "src": [272,176], "f": 0, "t": 413, "d": [108,225], "a": 1 }, + { "px": [32,112], "src": [272,176], "f": 0, "t": 413, "d": [108,226], "a": 1 }, + { "px": [320,112], "src": [272,176], "f": 0, "t": 413, "d": [108,244], "a": 1 }, + { "px": [416,112], "src": [272,176], "f": 0, "t": 413, "d": [108,250], "a": 1 }, + { "px": [432,112], "src": [272,176], "f": 0, "t": 413, "d": [108,251], "a": 1 }, + { "px": [448,112], "src": [272,176], "f": 0, "t": 413, "d": [108,252], "a": 1 }, + { "px": [464,112], "src": [272,176], "f": 0, "t": 413, "d": [108,253], "a": 1 }, + { "px": [480,112], "src": [272,176], "f": 0, "t": 413, "d": [108,254], "a": 1 }, + { "px": [496,112], "src": [272,176], "f": 0, "t": 413, "d": [108,255], "a": 1 }, + { "px": [0,128], "src": [272,176], "f": 0, "t": 413, "d": [108,256], "a": 1 }, + { "px": [16,128], "src": [272,176], "f": 0, "t": 413, "d": [108,257], "a": 1 }, + { "px": [32,128], "src": [272,176], "f": 0, "t": 413, "d": [108,258], "a": 1 }, + { "px": [448,128], "src": [272,176], "f": 0, "t": 413, "d": [108,284], "a": 1 }, + { "px": [464,128], "src": [272,176], "f": 0, "t": 413, "d": [108,285], "a": 1 }, + { "px": [480,128], "src": [272,176], "f": 0, "t": 413, "d": [108,286], "a": 1 }, + { "px": [496,128], "src": [272,176], "f": 0, "t": 413, "d": [108,287], "a": 1 }, + { "px": [0,144], "src": [272,176], "f": 0, "t": 413, "d": [108,288], "a": 1 }, + { "px": [16,144], "src": [272,176], "f": 0, "t": 413, "d": [108,289], "a": 1 }, + { "px": [32,144], "src": [272,176], "f": 0, "t": 413, "d": [108,290], "a": 1 }, + { "px": [464,144], "src": [272,176], "f": 0, "t": 413, "d": [108,317], "a": 1 }, + { "px": [480,144], "src": [272,176], "f": 0, "t": 413, "d": [108,318], "a": 1 }, + { "px": [496,144], "src": [272,176], "f": 0, "t": 413, "d": [108,319], "a": 1 }, + { "px": [0,160], "src": [272,176], "f": 0, "t": 413, "d": [108,320], "a": 1 }, + { "px": [16,160], "src": [272,176], "f": 0, "t": 413, "d": [108,321], "a": 1 }, + { "px": [32,160], "src": [272,176], "f": 0, "t": 413, "d": [108,322], "a": 1 }, + { "px": [480,160], "src": [272,176], "f": 0, "t": 413, "d": [108,350], "a": 1 }, + { "px": [496,160], "src": [272,176], "f": 0, "t": 413, "d": [108,351], "a": 1 }, + { "px": [0,176], "src": [272,176], "f": 0, "t": 413, "d": [108,352], "a": 1 }, + { "px": [16,176], "src": [272,176], "f": 0, "t": 413, "d": [108,353], "a": 1 }, + { "px": [32,176], "src": [272,176], "f": 0, "t": 413, "d": [108,354], "a": 1 }, + { "px": [480,176], "src": [272,176], "f": 0, "t": 413, "d": [108,382], "a": 1 }, + { "px": [496,176], "src": [272,176], "f": 0, "t": 413, "d": [108,383], "a": 1 }, + { "px": [0,192], "src": [272,176], "f": 0, "t": 413, "d": [108,384], "a": 1 }, + { "px": [16,192], "src": [272,176], "f": 0, "t": 413, "d": [108,385], "a": 1 }, + { "px": [32,192], "src": [272,176], "f": 0, "t": 413, "d": [108,386], "a": 1 }, + { "px": [480,192], "src": [272,176], "f": 0, "t": 413, "d": [108,414], "a": 1 }, + { "px": [496,192], "src": [272,176], "f": 0, "t": 413, "d": [108,415], "a": 1 }, + { "px": [0,208], "src": [272,176], "f": 0, "t": 413, "d": [108,416], "a": 1 }, + { "px": [16,208], "src": [272,176], "f": 0, "t": 413, "d": [108,417], "a": 1 }, + { "px": [32,208], "src": [272,176], "f": 0, "t": 413, "d": [108,418], "a": 1 }, + { "px": [288,208], "src": [272,176], "f": 0, "t": 413, "d": [108,434], "a": 1 }, + { "px": [304,208], "src": [272,176], "f": 0, "t": 413, "d": [108,435], "a": 1 }, + { "px": [480,208], "src": [272,176], "f": 0, "t": 413, "d": [108,446], "a": 1 }, + { "px": [496,208], "src": [272,176], "f": 0, "t": 413, "d": [108,447], "a": 1 }, + { "px": [0,224], "src": [272,176], "f": 0, "t": 413, "d": [108,448], "a": 1 }, + { "px": [16,224], "src": [272,176], "f": 0, "t": 413, "d": [108,449], "a": 1 }, + { "px": [32,224], "src": [272,176], "f": 0, "t": 413, "d": [108,450], "a": 1 }, + { "px": [48,224], "src": [272,176], "f": 0, "t": 413, "d": [108,451], "a": 1 }, + { "px": [272,224], "src": [272,176], "f": 0, "t": 413, "d": [108,465], "a": 1 }, + { "px": [288,224], "src": [272,176], "f": 0, "t": 413, "d": [108,466], "a": 1 }, + { "px": [304,224], "src": [272,176], "f": 0, "t": 413, "d": [108,467], "a": 1 }, + { "px": [320,224], "src": [272,176], "f": 0, "t": 413, "d": [108,468], "a": 1 }, + { "px": [480,224], "src": [272,176], "f": 0, "t": 413, "d": [108,478], "a": 1 }, + { "px": [496,224], "src": [272,176], "f": 0, "t": 413, "d": [108,479], "a": 1 }, + { "px": [0,240], "src": [272,176], "f": 0, "t": 413, "d": [108,480], "a": 1 }, + { "px": [16,240], "src": [272,176], "f": 0, "t": 413, "d": [108,481], "a": 1 }, + { "px": [32,240], "src": [272,176], "f": 0, "t": 413, "d": [108,482], "a": 1 }, + { "px": [48,240], "src": [272,176], "f": 0, "t": 413, "d": [108,483], "a": 1 }, + { "px": [64,240], "src": [272,176], "f": 0, "t": 413, "d": [108,484], "a": 1 }, + { "px": [80,240], "src": [272,176], "f": 0, "t": 413, "d": [108,485], "a": 1 }, + { "px": [96,240], "src": [272,176], "f": 0, "t": 413, "d": [108,486], "a": 1 }, + { "px": [112,240], "src": [272,176], "f": 0, "t": 413, "d": [108,487], "a": 1 }, + { "px": [128,240], "src": [272,176], "f": 0, "t": 413, "d": [108,488], "a": 1 }, + { "px": [144,240], "src": [272,176], "f": 0, "t": 413, "d": [108,489], "a": 1 }, + { "px": [240,240], "src": [272,176], "f": 0, "t": 413, "d": [108,495], "a": 1 }, + { "px": [256,240], "src": [272,176], "f": 0, "t": 413, "d": [108,496], "a": 1 }, + { "px": [272,240], "src": [272,176], "f": 0, "t": 413, "d": [108,497], "a": 1 }, + { "px": [288,240], "src": [272,176], "f": 0, "t": 413, "d": [108,498], "a": 1 }, + { "px": [304,240], "src": [272,176], "f": 0, "t": 413, "d": [108,499], "a": 1 }, + { "px": [320,240], "src": [272,176], "f": 0, "t": 413, "d": [108,500], "a": 1 }, + { "px": [336,240], "src": [272,176], "f": 0, "t": 413, "d": [108,501], "a": 1 }, + { "px": [352,240], "src": [272,176], "f": 0, "t": 413, "d": [108,502], "a": 1 }, + { "px": [368,240], "src": [272,176], "f": 0, "t": 413, "d": [108,503], "a": 1 }, + { "px": [384,240], "src": [272,176], "f": 0, "t": 413, "d": [108,504], "a": 1 }, + { "px": [400,240], "src": [272,176], "f": 0, "t": 413, "d": [108,505], "a": 1 }, + { "px": [416,240], "src": [272,176], "f": 0, "t": 413, "d": [108,506], "a": 1 }, + { "px": [432,240], "src": [272,176], "f": 0, "t": 413, "d": [108,507], "a": 1 }, + { "px": [448,240], "src": [272,176], "f": 0, "t": 413, "d": [108,508], "a": 1 }, + { "px": [464,240], "src": [272,176], "f": 0, "t": 413, "d": [108,509], "a": 1 }, + { "px": [480,240], "src": [272,176], "f": 0, "t": 413, "d": [108,510], "a": 1 }, + { "px": [496,240], "src": [272,176], "f": 0, "t": 413, "d": [108,511], "a": 1 }, + { "px": [144,48], "src": [272,192], "f": 0, "t": 449, "d": [109,105], "a": 1 }, + { "px": [224,48], "src": [272,192], "f": 1, "t": 449, "d": [109,110], "a": 1 }, + { "px": [64,64], "src": [272,192], "f": 0, "t": 449, "d": [109,132], "a": 1 }, + { "px": [256,64], "src": [272,192], "f": 1, "t": 449, "d": [109,144], "a": 1 }, + { "px": [304,80], "src": [272,192], "f": 1, "t": 449, "d": [109,179], "a": 1 }, + { "px": [48,96], "src": [272,192], "f": 0, "t": 449, "d": [109,195], "a": 1 }, + { "px": [336,112], "src": [272,192], "f": 0, "t": 449, "d": [109,245], "a": 1 }, + { "px": [400,112], "src": [272,192], "f": 1, "t": 449, "d": [109,249], "a": 1 }, + { "px": [256,128], "src": [272,192], "f": 1, "t": 449, "d": [109,272], "a": 1 }, + { "px": [320,128], "src": [272,192], "f": 0, "t": 449, "d": [109,276], "a": 1 }, + { "px": [432,128], "src": [272,192], "f": 1, "t": 449, "d": [109,283], "a": 1 }, + { "px": [256,144], "src": [272,192], "f": 2, "t": 449, "d": [109,304], "a": 1 }, + { "px": [304,144], "src": [272,192], "f": 3, "t": 449, "d": [109,307], "a": 1 }, + { "px": [448,144], "src": [272,192], "f": 1, "t": 449, "d": [109,316], "a": 1 }, + { "px": [464,160], "src": [272,192], "f": 1, "t": 449, "d": [109,349], "a": 1 }, + { "px": [48,208], "src": [272,192], "f": 2, "t": 449, "d": [109,419], "a": 1 }, + { "px": [272,208], "src": [272,192], "f": 3, "t": 449, "d": [109,433], "a": 1 }, + { "px": [320,208], "src": [272,192], "f": 2, "t": 449, "d": [109,436], "a": 1 }, + { "px": [64,224], "src": [272,192], "f": 2, "t": 449, "d": [109,452], "a": 1 }, + { "px": [128,224], "src": [272,192], "f": 3, "t": 449, "d": [109,456], "a": 1 }, + { "px": [144,224], "src": [272,192], "f": 2, "t": 449, "d": [109,457], "a": 1 }, + { "px": [256,224], "src": [272,192], "f": 3, "t": 449, "d": [109,464], "a": 1 }, + { "px": [336,224], "src": [272,192], "f": 2, "t": 449, "d": [109,469], "a": 1 }, + { "px": [464,224], "src": [272,192], "f": 3, "t": 449, "d": [109,477], "a": 1 }, + { "px": [224,240], "src": [272,192], "f": 3, "t": 449, "d": [109,494], "a": 1 } + ], + "seed": 5042135, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a3596bd0-66b0-11ec-9cd7-fd41a97d2196", + "levelId": 40, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [160,96], "src": [48,192], "f": 0, "t": 435, "d": [51,202], "a": 1 }, + { "px": [176,96], "src": [64,192], "f": 0, "t": 436, "d": [51,203], "a": 1 }, + { "px": [288,96], "src": [80,192], "f": 0, "t": 437, "d": [51,210], "a": 1 }, + { "px": [112,112], "src": [80,192], "f": 0, "t": 437, "d": [51,231], "a": 1 }, + { "px": [208,112], "src": [64,192], "f": 0, "t": 436, "d": [51,237], "a": 1 }, + { "px": [224,112], "src": [64,192], "f": 0, "t": 436, "d": [51,238], "a": 1 }, + { "px": [272,112], "src": [48,192], "f": 0, "t": 435, "d": [51,241], "a": 1 }, + { "px": [80,144], "src": [48,192], "f": 0, "t": 435, "d": [51,293], "a": 1 }, + { "px": [96,144], "src": [80,192], "f": 0, "t": 437, "d": [51,294], "a": 1 }, + { "px": [112,144], "src": [80,192], "f": 0, "t": 437, "d": [51,295], "a": 1 }, + { "px": [368,144], "src": [80,192], "f": 0, "t": 437, "d": [51,311], "a": 1 }, + { "px": [400,144], "src": [80,192], "f": 0, "t": 437, "d": [51,313], "a": 1 }, + { "px": [96,160], "src": [64,192], "f": 0, "t": 436, "d": [51,326], "a": 1 }, + { "px": [112,160], "src": [48,192], "f": 0, "t": 435, "d": [51,327], "a": 1 }, + { "px": [176,160], "src": [64,192], "f": 0, "t": 436, "d": [51,331], "a": 1 }, + { "px": [208,160], "src": [48,192], "f": 0, "t": 435, "d": [51,333], "a": 1 }, + { "px": [240,160], "src": [48,192], "f": 0, "t": 435, "d": [51,335], "a": 1 }, + { "px": [304,160], "src": [48,192], "f": 0, "t": 435, "d": [51,339], "a": 1 }, + { "px": [336,160], "src": [64,192], "f": 0, "t": 436, "d": [51,341], "a": 1 }, + { "px": [352,160], "src": [80,192], "f": 0, "t": 437, "d": [51,342], "a": 1 }, + { "px": [80,176], "src": [48,192], "f": 0, "t": 435, "d": [51,357], "a": 1 }, + { "px": [112,176], "src": [80,192], "f": 0, "t": 437, "d": [51,359], "a": 1 }, + { "px": [144,176], "src": [80,192], "f": 0, "t": 437, "d": [51,361], "a": 1 }, + { "px": [160,176], "src": [64,192], "f": 0, "t": 436, "d": [51,362], "a": 1 }, + { "px": [176,176], "src": [80,192], "f": 0, "t": 437, "d": [51,363], "a": 1 }, + { "px": [208,176], "src": [48,192], "f": 0, "t": 435, "d": [51,365], "a": 1 }, + { "px": [224,176], "src": [64,192], "f": 0, "t": 436, "d": [51,366], "a": 1 }, + { "px": [240,176], "src": [64,192], "f": 0, "t": 436, "d": [51,367], "a": 1 }, + { "px": [304,176], "src": [64,192], "f": 0, "t": 436, "d": [51,371], "a": 1 }, + { "px": [416,176], "src": [48,192], "f": 0, "t": 435, "d": [51,378], "a": 1 }, + { "px": [112,192], "src": [48,192], "f": 0, "t": 435, "d": [51,391], "a": 1 }, + { "px": [144,192], "src": [64,192], "f": 0, "t": 436, "d": [51,393], "a": 1 }, + { "px": [160,192], "src": [48,192], "f": 0, "t": 435, "d": [51,394], "a": 1 }, + { "px": [176,192], "src": [64,192], "f": 0, "t": 436, "d": [51,395], "a": 1 }, + { "px": [208,192], "src": [64,192], "f": 0, "t": 436, "d": [51,397], "a": 1 }, + { "px": [224,192], "src": [80,192], "f": 0, "t": 437, "d": [51,398], "a": 1 }, + { "px": [240,192], "src": [80,192], "f": 0, "t": 437, "d": [51,399], "a": 1 }, + { "px": [336,192], "src": [80,192], "f": 0, "t": 437, "d": [51,405], "a": 1 }, + { "px": [368,192], "src": [80,192], "f": 0, "t": 437, "d": [51,407], "a": 1 }, + { "px": [80,208], "src": [48,192], "f": 0, "t": 435, "d": [51,421], "a": 1 }, + { "px": [176,208], "src": [80,192], "f": 0, "t": 437, "d": [51,427], "a": 1 }, + { "px": [208,208], "src": [80,192], "f": 0, "t": 437, "d": [51,429], "a": 1 }, + { "px": [224,208], "src": [48,192], "f": 0, "t": 435, "d": [51,430], "a": 1 }, + { "px": [240,208], "src": [48,192], "f": 0, "t": 435, "d": [51,431], "a": 1 }, + { "px": [352,208], "src": [48,192], "f": 0, "t": 435, "d": [51,438], "a": 1 }, + { "px": [368,208], "src": [48,192], "f": 0, "t": 435, "d": [51,439], "a": 1 }, + { "px": [384,208], "src": [80,192], "f": 0, "t": 437, "d": [51,440], "a": 1 }, + { "px": [400,208], "src": [64,192], "f": 0, "t": 436, "d": [51,441], "a": 1 }, + { "px": [432,208], "src": [80,192], "f": 0, "t": 437, "d": [51,443], "a": 1 }, + { "px": [144,80], "src": [96,192], "f": 0, "t": 438, "d": [85,169], "a": 1 }, + { "px": [160,80], "src": [128,192], "f": 0, "t": 440, "d": [85,170], "a": 1 }, + { "px": [112,96], "src": [112,192], "f": 0, "t": 439, "d": [85,199], "a": 1 }, + { "px": [144,96], "src": [128,192], "f": 0, "t": 440, "d": [85,201], "a": 1 }, + { "px": [272,96], "src": [112,192], "f": 0, "t": 439, "d": [85,209], "a": 1 }, + { "px": [176,112], "src": [112,192], "f": 0, "t": 439, "d": [85,235], "a": 1 }, + { "px": [144,128], "src": [128,192], "f": 0, "t": 440, "d": [85,265], "a": 1 }, + { "px": [176,128], "src": [96,192], "f": 0, "t": 438, "d": [85,267], "a": 1 }, + { "px": [368,128], "src": [112,192], "f": 0, "t": 439, "d": [85,279], "a": 1 }, + { "px": [416,144], "src": [128,192], "f": 0, "t": 440, "d": [85,314], "a": 1 }, + { "px": [80,160], "src": [112,192], "f": 0, "t": 439, "d": [85,325], "a": 1 }, + { "px": [144,160], "src": [128,192], "f": 0, "t": 440, "d": [85,329], "a": 1 }, + { "px": [160,160], "src": [128,192], "f": 0, "t": 440, "d": [85,330], "a": 1 }, + { "px": [288,160], "src": [128,192], "f": 0, "t": 440, "d": [85,338], "a": 1 }, + { "px": [368,160], "src": [128,192], "f": 0, "t": 440, "d": [85,343], "a": 1 }, + { "px": [432,160], "src": [112,192], "f": 0, "t": 439, "d": [85,347], "a": 1 }, + { "px": [96,176], "src": [128,192], "f": 0, "t": 440, "d": [85,358], "a": 1 }, + { "px": [368,176], "src": [128,192], "f": 0, "t": 440, "d": [85,375], "a": 1 }, + { "px": [432,176], "src": [112,192], "f": 0, "t": 439, "d": [85,379], "a": 1 }, + { "px": [432,192], "src": [96,192], "f": 0, "t": 438, "d": [85,411], "a": 1 }, + { "px": [160,64], "src": [16,192], "f": 0, "t": 433, "d": [102,138], "a": 1 }, + { "px": [176,64], "src": [32,192], "f": 0, "t": 434, "d": [102,139], "a": 1 }, + { "px": [208,64], "src": [16,192], "f": 0, "t": 433, "d": [102,141], "a": 1 }, + { "px": [80,80], "src": [0,192], "f": 0, "t": 432, "d": [102,165], "a": 1 }, + { "px": [96,80], "src": [32,192], "f": 0, "t": 434, "d": [102,166], "a": 1 }, + { "px": [112,80], "src": [16,192], "f": 0, "t": 433, "d": [102,167], "a": 1 }, + { "px": [176,80], "src": [0,192], "f": 0, "t": 432, "d": [102,171], "a": 1 }, + { "px": [208,80], "src": [0,192], "f": 0, "t": 432, "d": [102,173], "a": 1 }, + { "px": [224,80], "src": [0,192], "f": 0, "t": 432, "d": [102,174], "a": 1 }, + { "px": [240,80], "src": [16,192], "f": 0, "t": 433, "d": [102,175], "a": 1 }, + { "px": [80,96], "src": [32,192], "f": 0, "t": 434, "d": [102,197], "a": 1 }, + { "px": [96,96], "src": [32,192], "f": 0, "t": 434, "d": [102,198], "a": 1 }, + { "px": [208,96], "src": [0,192], "f": 0, "t": 432, "d": [102,205], "a": 1 }, + { "px": [224,96], "src": [0,192], "f": 0, "t": 432, "d": [102,206], "a": 1 }, + { "px": [240,96], "src": [32,192], "f": 0, "t": 434, "d": [102,207], "a": 1 }, + { "px": [80,112], "src": [32,192], "f": 0, "t": 434, "d": [102,229], "a": 1 }, + { "px": [96,112], "src": [16,192], "f": 0, "t": 433, "d": [102,230], "a": 1 }, + { "px": [144,112], "src": [16,192], "f": 0, "t": 433, "d": [102,233], "a": 1 }, + { "px": [160,112], "src": [16,192], "f": 0, "t": 433, "d": [102,234], "a": 1 }, + { "px": [288,112], "src": [0,192], "f": 0, "t": 432, "d": [102,242], "a": 1 }, + { "px": [80,128], "src": [32,192], "f": 0, "t": 434, "d": [102,261], "a": 1 }, + { "px": [96,128], "src": [32,192], "f": 0, "t": 434, "d": [102,262], "a": 1 }, + { "px": [112,128], "src": [16,192], "f": 0, "t": 433, "d": [102,263], "a": 1 }, + { "px": [160,128], "src": [0,192], "f": 0, "t": 432, "d": [102,266], "a": 1 }, + { "px": [208,128], "src": [32,192], "f": 0, "t": 434, "d": [102,269], "a": 1 }, + { "px": [224,128], "src": [16,192], "f": 0, "t": 433, "d": [102,270], "a": 1 }, + { "px": [272,128], "src": [16,192], "f": 0, "t": 433, "d": [102,273], "a": 1 }, + { "px": [288,128], "src": [0,192], "f": 0, "t": 432, "d": [102,274], "a": 1 }, + { "px": [352,128], "src": [0,192], "f": 0, "t": 432, "d": [102,278], "a": 1 }, + { "px": [144,144], "src": [32,192], "f": 0, "t": 434, "d": [102,297], "a": 1 }, + { "px": [160,144], "src": [32,192], "f": 0, "t": 434, "d": [102,298], "a": 1 }, + { "px": [176,144], "src": [32,192], "f": 0, "t": 434, "d": [102,299], "a": 1 }, + { "px": [208,144], "src": [0,192], "f": 0, "t": 432, "d": [102,301], "a": 1 }, + { "px": [224,144], "src": [16,192], "f": 0, "t": 433, "d": [102,302], "a": 1 }, + { "px": [240,144], "src": [32,192], "f": 0, "t": 434, "d": [102,303], "a": 1 }, + { "px": [336,144], "src": [32,192], "f": 0, "t": 434, "d": [102,309], "a": 1 }, + { "px": [352,144], "src": [32,192], "f": 0, "t": 434, "d": [102,310], "a": 1 }, + { "px": [224,160], "src": [32,192], "f": 0, "t": 434, "d": [102,334], "a": 1 }, + { "px": [272,160], "src": [16,192], "f": 0, "t": 433, "d": [102,337], "a": 1 }, + { "px": [400,160], "src": [32,192], "f": 0, "t": 434, "d": [102,345], "a": 1 }, + { "px": [416,160], "src": [16,192], "f": 0, "t": 433, "d": [102,346], "a": 1 }, + { "px": [272,176], "src": [32,192], "f": 0, "t": 434, "d": [102,369], "a": 1 }, + { "px": [288,176], "src": [16,192], "f": 0, "t": 433, "d": [102,370], "a": 1 }, + { "px": [336,176], "src": [32,192], "f": 0, "t": 434, "d": [102,373], "a": 1 }, + { "px": [352,176], "src": [32,192], "f": 0, "t": 434, "d": [102,374], "a": 1 }, + { "px": [400,176], "src": [32,192], "f": 0, "t": 434, "d": [102,377], "a": 1 }, + { "px": [80,192], "src": [0,192], "f": 0, "t": 432, "d": [102,389], "a": 1 }, + { "px": [96,192], "src": [0,192], "f": 0, "t": 432, "d": [102,390], "a": 1 }, + { "px": [352,192], "src": [16,192], "f": 0, "t": 433, "d": [102,406], "a": 1 }, + { "px": [400,192], "src": [0,192], "f": 0, "t": 432, "d": [102,409], "a": 1 }, + { "px": [416,192], "src": [32,192], "f": 0, "t": 434, "d": [102,410], "a": 1 }, + { "px": [96,208], "src": [32,192], "f": 0, "t": 434, "d": [102,422], "a": 1 }, + { "px": [112,208], "src": [32,192], "f": 0, "t": 434, "d": [102,423], "a": 1 }, + { "px": [160,208], "src": [32,192], "f": 0, "t": 434, "d": [102,426], "a": 1 }, + { "px": [416,208], "src": [0,192], "f": 0, "t": 432, "d": [102,442], "a": 1 }, + { "px": [448,208], "src": [32,192], "f": 0, "t": 434, "d": [102,444], "a": 1 }, + { "px": [176,224], "src": [0,192], "f": 0, "t": 432, "d": [102,459], "a": 1 }, + { "px": [208,224], "src": [32,192], "f": 0, "t": 434, "d": [102,461], "a": 1 }, + { "px": [176,240], "src": [16,192], "f": 0, "t": 433, "d": [102,491], "a": 1 }, + { "px": [192,64], "src": [160,208], "f": 0, "t": 478, "d": [70,140], "a": 1 }, + { "px": [128,80], "src": [160,208], "f": 0, "t": 478, "d": [70,168], "a": 1 }, + { "px": [192,80], "src": [160,208], "f": 0, "t": 478, "d": [70,172], "a": 1 }, + { "px": [128,96], "src": [160,208], "f": 0, "t": 478, "d": [70,200], "a": 1 }, + { "px": [192,96], "src": [160,208], "f": 0, "t": 478, "d": [70,204], "a": 1 }, + { "px": [256,96], "src": [160,208], "f": 0, "t": 478, "d": [70,208], "a": 1 }, + { "px": [64,112], "src": [160,208], "f": 0, "t": 478, "d": [70,228], "a": 1 }, + { "px": [128,112], "src": [160,208], "f": 0, "t": 478, "d": [70,232], "a": 1 }, + { "px": [192,112], "src": [160,208], "f": 0, "t": 478, "d": [70,236], "a": 1 }, + { "px": [64,128], "src": [160,208], "f": 0, "t": 478, "d": [70,260], "a": 1 }, + { "px": [128,128], "src": [160,208], "f": 0, "t": 478, "d": [70,264], "a": 1 }, + { "px": [192,128], "src": [160,208], "f": 0, "t": 478, "d": [70,268], "a": 1 }, + { "px": [384,128], "src": [160,208], "f": 0, "t": 478, "d": [70,280], "a": 1 }, + { "px": [64,144], "src": [160,208], "f": 0, "t": 478, "d": [70,292], "a": 1 }, + { "px": [128,144], "src": [160,208], "f": 0, "t": 478, "d": [70,296], "a": 1 }, + { "px": [192,144], "src": [160,208], "f": 0, "t": 478, "d": [70,300], "a": 1 }, + { "px": [384,144], "src": [160,208], "f": 0, "t": 478, "d": [70,312], "a": 1 }, + { "px": [64,160], "src": [160,208], "f": 0, "t": 478, "d": [70,324], "a": 1 }, + { "px": [128,160], "src": [160,208], "f": 0, "t": 478, "d": [70,328], "a": 1 }, + { "px": [192,160], "src": [160,208], "f": 0, "t": 478, "d": [70,332], "a": 1 }, + { "px": [256,160], "src": [160,208], "f": 0, "t": 478, "d": [70,336], "a": 1 }, + { "px": [320,160], "src": [160,208], "f": 0, "t": 478, "d": [70,340], "a": 1 }, + { "px": [384,160], "src": [160,208], "f": 0, "t": 478, "d": [70,344], "a": 1 }, + { "px": [64,176], "src": [160,208], "f": 0, "t": 478, "d": [70,356], "a": 1 }, + { "px": [128,176], "src": [160,208], "f": 0, "t": 478, "d": [70,360], "a": 1 }, + { "px": [192,176], "src": [160,208], "f": 0, "t": 478, "d": [70,364], "a": 1 }, + { "px": [256,176], "src": [160,208], "f": 0, "t": 478, "d": [70,368], "a": 1 }, + { "px": [320,176], "src": [160,208], "f": 0, "t": 478, "d": [70,372], "a": 1 }, + { "px": [384,176], "src": [160,208], "f": 0, "t": 478, "d": [70,376], "a": 1 }, + { "px": [448,176], "src": [160,208], "f": 0, "t": 478, "d": [70,380], "a": 1 }, + { "px": [64,192], "src": [160,208], "f": 0, "t": 478, "d": [70,388], "a": 1 }, + { "px": [128,192], "src": [160,208], "f": 0, "t": 478, "d": [70,392], "a": 1 }, + { "px": [192,192], "src": [160,208], "f": 0, "t": 478, "d": [70,396], "a": 1 }, + { "px": [256,192], "src": [160,208], "f": 0, "t": 478, "d": [70,400], "a": 1 }, + { "px": [384,192], "src": [160,208], "f": 0, "t": 478, "d": [70,408], "a": 1 }, + { "px": [448,192], "src": [160,208], "f": 0, "t": 478, "d": [70,412], "a": 1 }, + { "px": [192,208], "src": [160,208], "f": 0, "t": 478, "d": [70,428], "a": 1 }, + { "px": [192,224], "src": [160,208], "f": 0, "t": 478, "d": [70,460], "a": 1 }, + { "px": [192,240], "src": [160,208], "f": 0, "t": 478, "d": [70,492], "a": 1 }, + { "px": [160,80], "src": [240,176], "f": 0, "t": 411, "d": [91,170], "a": 1 }, + { "px": [208,80], "src": [240,176], "f": 1, "t": 411, "d": [91,173], "a": 1 }, + { "px": [224,96], "src": [240,176], "f": 3, "t": 411, "d": [91,206], "a": 1 }, + { "px": [240,96], "src": [240,176], "f": 1, "t": 411, "d": [91,207], "a": 1 }, + { "px": [272,96], "src": [240,176], "f": 2, "t": 411, "d": [91,209], "a": 1 }, + { "px": [80,112], "src": [240,176], "f": 0, "t": 411, "d": [91,229], "a": 1 }, + { "px": [224,144], "src": [240,176], "f": 1, "t": 411, "d": [91,302], "a": 1 }, + { "px": [352,144], "src": [240,176], "f": 0, "t": 411, "d": [91,310], "a": 1 }, + { "px": [384,144], "src": [240,176], "f": 1, "t": 411, "d": [91,312], "a": 1 }, + { "px": [240,160], "src": [240,176], "f": 1, "t": 411, "d": [91,335], "a": 1 }, + { "px": [336,160], "src": [240,176], "f": 0, "t": 411, "d": [91,341], "a": 1 }, + { "px": [416,160], "src": [240,176], "f": 1, "t": 411, "d": [91,346], "a": 1 }, + { "px": [256,176], "src": [240,176], "f": 3, "t": 411, "d": [91,368], "a": 1 }, + { "px": [336,176], "src": [240,176], "f": 2, "t": 411, "d": [91,373], "a": 1 }, + { "px": [432,176], "src": [240,176], "f": 1, "t": 411, "d": [91,379], "a": 1 }, + { "px": [80,192], "src": [240,176], "f": 2, "t": 411, "d": [91,389], "a": 1 }, + { "px": [112,192], "src": [240,176], "f": 3, "t": 411, "d": [91,391], "a": 1 }, + { "px": [160,192], "src": [240,176], "f": 2, "t": 411, "d": [91,394], "a": 1 }, + { "px": [240,192], "src": [240,176], "f": 3, "t": 411, "d": [91,399], "a": 1 }, + { "px": [352,192], "src": [240,176], "f": 2, "t": 411, "d": [91,406], "a": 1 }, + { "px": [176,208], "src": [240,176], "f": 2, "t": 411, "d": [91,427], "a": 1 }, + { "px": [208,208], "src": [240,176], "f": 3, "t": 411, "d": [91,429], "a": 1 }, + { "px": [192,224], "src": [240,176], "f": 3, "t": 411, "d": [91,460], "a": 1 }, + { "px": [160,64], "src": [208,176], "f": 0, "t": 409, "d": [89,138], "a": 1 }, + { "px": [208,64], "src": [208,176], "f": 1, "t": 409, "d": [89,141], "a": 1 }, + { "px": [80,80], "src": [208,176], "f": 0, "t": 409, "d": [89,165], "a": 1 }, + { "px": [240,80], "src": [208,176], "f": 1, "t": 409, "d": [89,175], "a": 1 }, + { "px": [80,96], "src": [208,176], "f": 0, "t": 409, "d": [89,197], "a": 1 }, + { "px": [288,96], "src": [208,176], "f": 1, "t": 409, "d": [89,210], "a": 1 }, + { "px": [64,112], "src": [208,176], "f": 0, "t": 409, "d": [89,228], "a": 1 }, + { "px": [224,112], "src": [208,176], "f": 1, "t": 409, "d": [89,238], "a": 1 }, + { "px": [272,112], "src": [208,176], "f": 0, "t": 409, "d": [89,241], "a": 1 }, + { "px": [288,112], "src": [208,176], "f": 1, "t": 409, "d": [89,242], "a": 1 }, + { "px": [64,128], "src": [208,176], "f": 0, "t": 409, "d": [89,260], "a": 1 }, + { "px": [224,128], "src": [208,176], "f": 1, "t": 409, "d": [89,270], "a": 1 }, + { "px": [272,128], "src": [208,176], "f": 0, "t": 409, "d": [89,273], "a": 1 }, + { "px": [288,128], "src": [208,176], "f": 1, "t": 409, "d": [89,274], "a": 1 }, + { "px": [352,128], "src": [208,176], "f": 0, "t": 409, "d": [89,278], "a": 1 }, + { "px": [384,128], "src": [208,176], "f": 1, "t": 409, "d": [89,280], "a": 1 }, + { "px": [64,144], "src": [208,176], "f": 0, "t": 409, "d": [89,292], "a": 1 }, + { "px": [240,144], "src": [208,176], "f": 1, "t": 409, "d": [89,303], "a": 1 }, + { "px": [336,144], "src": [208,176], "f": 0, "t": 409, "d": [89,309], "a": 1 }, + { "px": [416,144], "src": [208,176], "f": 1, "t": 409, "d": [89,314], "a": 1 }, + { "px": [64,160], "src": [208,176], "f": 0, "t": 409, "d": [89,324], "a": 1 }, + { "px": [432,160], "src": [208,176], "f": 1, "t": 409, "d": [89,347], "a": 1 }, + { "px": [64,176], "src": [208,176], "f": 0, "t": 409, "d": [89,356], "a": 1 }, + { "px": [448,176], "src": [208,176], "f": 1, "t": 409, "d": [89,380], "a": 1 }, + { "px": [64,192], "src": [208,176], "f": 0, "t": 409, "d": [89,388], "a": 1 }, + { "px": [256,192], "src": [208,176], "f": 1, "t": 409, "d": [89,400], "a": 1 }, + { "px": [336,192], "src": [208,176], "f": 0, "t": 409, "d": [89,405], "a": 1 }, + { "px": [448,192], "src": [208,176], "f": 1, "t": 409, "d": [89,412], "a": 1 }, + { "px": [80,208], "src": [208,176], "f": 0, "t": 409, "d": [89,421], "a": 1 }, + { "px": [112,208], "src": [208,176], "f": 1, "t": 409, "d": [89,423], "a": 1 }, + { "px": [160,208], "src": [208,176], "f": 0, "t": 409, "d": [89,426], "a": 1 }, + { "px": [240,208], "src": [208,176], "f": 1, "t": 409, "d": [89,431], "a": 1 }, + { "px": [352,208], "src": [208,176], "f": 0, "t": 409, "d": [89,438], "a": 1 }, + { "px": [448,208], "src": [208,176], "f": 1, "t": 409, "d": [89,444], "a": 1 }, + { "px": [176,224], "src": [208,176], "f": 0, "t": 409, "d": [89,459], "a": 1 }, + { "px": [208,224], "src": [208,176], "f": 1, "t": 409, "d": [89,461], "a": 1 }, + { "px": [176,240], "src": [208,176], "f": 0, "t": 409, "d": [89,491], "a": 1 }, + { "px": [192,240], "src": [208,176], "f": 1, "t": 409, "d": [89,492], "a": 1 }, + { "px": [160,64], "src": [224,176], "f": 0, "t": 410, "d": [88,138], "a": 1 }, + { "px": [176,64], "src": [224,176], "f": 0, "t": 410, "d": [88,139], "a": 1 }, + { "px": [192,64], "src": [224,176], "f": 0, "t": 410, "d": [88,140], "a": 1 }, + { "px": [208,64], "src": [224,176], "f": 0, "t": 410, "d": [88,141], "a": 1 }, + { "px": [80,80], "src": [224,176], "f": 0, "t": 410, "d": [88,165], "a": 1 }, + { "px": [96,80], "src": [224,176], "f": 0, "t": 410, "d": [88,166], "a": 1 }, + { "px": [112,80], "src": [224,176], "f": 0, "t": 410, "d": [88,167], "a": 1 }, + { "px": [128,80], "src": [224,176], "f": 0, "t": 410, "d": [88,168], "a": 1 }, + { "px": [144,80], "src": [224,176], "f": 0, "t": 410, "d": [88,169], "a": 1 }, + { "px": [224,80], "src": [224,176], "f": 0, "t": 410, "d": [88,174], "a": 1 }, + { "px": [240,80], "src": [224,176], "f": 0, "t": 410, "d": [88,175], "a": 1 }, + { "px": [240,96], "src": [224,176], "f": 2, "t": 410, "d": [88,207], "a": 1 }, + { "px": [256,96], "src": [224,176], "f": 0, "t": 410, "d": [88,208], "a": 1 }, + { "px": [256,96], "src": [224,176], "f": 2, "t": 410, "d": [88,208], "a": 1 }, + { "px": [272,96], "src": [224,176], "f": 0, "t": 410, "d": [88,209], "a": 1 }, + { "px": [288,96], "src": [224,176], "f": 0, "t": 410, "d": [88,210], "a": 1 }, + { "px": [64,112], "src": [224,176], "f": 0, "t": 410, "d": [88,228], "a": 1 }, + { "px": [272,128], "src": [224,176], "f": 2, "t": 410, "d": [88,273], "a": 1 }, + { "px": [288,128], "src": [224,176], "f": 2, "t": 410, "d": [88,274], "a": 1 }, + { "px": [352,128], "src": [224,176], "f": 0, "t": 410, "d": [88,278], "a": 1 }, + { "px": [368,128], "src": [224,176], "f": 0, "t": 410, "d": [88,279], "a": 1 }, + { "px": [384,128], "src": [224,176], "f": 0, "t": 410, "d": [88,280], "a": 1 }, + { "px": [240,144], "src": [224,176], "f": 0, "t": 410, "d": [88,303], "a": 1 }, + { "px": [336,144], "src": [224,176], "f": 0, "t": 410, "d": [88,309], "a": 1 }, + { "px": [400,144], "src": [224,176], "f": 0, "t": 410, "d": [88,313], "a": 1 }, + { "px": [416,144], "src": [224,176], "f": 0, "t": 410, "d": [88,314], "a": 1 }, + { "px": [256,160], "src": [224,176], "f": 0, "t": 410, "d": [88,336], "a": 1 }, + { "px": [272,160], "src": [224,176], "f": 0, "t": 410, "d": [88,337], "a": 1 }, + { "px": [288,160], "src": [224,176], "f": 0, "t": 410, "d": [88,338], "a": 1 }, + { "px": [304,160], "src": [224,176], "f": 0, "t": 410, "d": [88,339], "a": 1 }, + { "px": [320,160], "src": [224,176], "f": 0, "t": 410, "d": [88,340], "a": 1 }, + { "px": [432,160], "src": [224,176], "f": 0, "t": 410, "d": [88,347], "a": 1 }, + { "px": [272,176], "src": [224,176], "f": 2, "t": 410, "d": [88,369], "a": 1 }, + { "px": [288,176], "src": [224,176], "f": 2, "t": 410, "d": [88,370], "a": 1 }, + { "px": [304,176], "src": [224,176], "f": 2, "t": 410, "d": [88,371], "a": 1 }, + { "px": [320,176], "src": [224,176], "f": 2, "t": 410, "d": [88,372], "a": 1 }, + { "px": [448,176], "src": [224,176], "f": 0, "t": 410, "d": [88,380], "a": 1 }, + { "px": [64,192], "src": [224,176], "f": 2, "t": 410, "d": [88,388], "a": 1 }, + { "px": [128,192], "src": [224,176], "f": 2, "t": 410, "d": [88,392], "a": 1 }, + { "px": [144,192], "src": [224,176], "f": 2, "t": 410, "d": [88,393], "a": 1 }, + { "px": [256,192], "src": [224,176], "f": 2, "t": 410, "d": [88,400], "a": 1 }, + { "px": [336,192], "src": [224,176], "f": 2, "t": 410, "d": [88,405], "a": 1 }, + { "px": [80,208], "src": [224,176], "f": 2, "t": 410, "d": [88,421], "a": 1 }, + { "px": [96,208], "src": [224,176], "f": 2, "t": 410, "d": [88,422], "a": 1 }, + { "px": [112,208], "src": [224,176], "f": 2, "t": 410, "d": [88,423], "a": 1 }, + { "px": [160,208], "src": [224,176], "f": 2, "t": 410, "d": [88,426], "a": 1 }, + { "px": [224,208], "src": [224,176], "f": 2, "t": 410, "d": [88,430], "a": 1 }, + { "px": [240,208], "src": [224,176], "f": 2, "t": 410, "d": [88,431], "a": 1 }, + { "px": [352,208], "src": [224,176], "f": 2, "t": 410, "d": [88,438], "a": 1 }, + { "px": [368,208], "src": [224,176], "f": 2, "t": 410, "d": [88,439], "a": 1 }, + { "px": [384,208], "src": [224,176], "f": 2, "t": 410, "d": [88,440], "a": 1 }, + { "px": [400,208], "src": [224,176], "f": 2, "t": 410, "d": [88,441], "a": 1 }, + { "px": [416,208], "src": [224,176], "f": 2, "t": 410, "d": [88,442], "a": 1 }, + { "px": [432,208], "src": [224,176], "f": 2, "t": 410, "d": [88,443], "a": 1 }, + { "px": [448,208], "src": [224,176], "f": 2, "t": 410, "d": [88,444], "a": 1 }, + { "px": [208,224], "src": [224,176], "f": 2, "t": 410, "d": [88,461], "a": 1 } + ], + "seed": 1354052, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a3591db0-66b0-11ec-9cd7-43878cf4d0ab", "dir": "s" }, { "levelIid": "a35992e0-66b0-11ec-9cd7-8b2ebd1b98e2", "dir": "s" }, { "levelIid": "a359b9f0-66b0-11ec-9cd7-25dfb937d033", "dir": "s" } ] + }, + { + "identifier": "Large_room", + "iid": "a35992e0-66b0-11ec-9cd7-8b2ebd1b98e2", + "uid": 0, + "worldX": -224, + "worldY": -384, + "worldDepth": 0, + "pxWid": 368, + "pxHei": 352, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 23, + "__cHei": 22, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "490eb810-66b0-11ec-8fc6-39dd599e975c", + "levelId": 0, + "layerDefUid": 119, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 9717677, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Plant", + "__grid": [9,13], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 240, "y": 288, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "4c636150-66b0-11ec-8fc6-81b4e785f3d6", + "width": 20, + "height": 20, + "defUid": 116, + "px": [152,224], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Clover", "__tile": { "tilesetUid": 117, "x": 240, "y": 288, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Clover"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 2, "__tile": null, "defUid": 122, "realEditorValues": [{ "id": "V_Int", "params": [2] }] } + ] + }, + { + "__identifier": "Plant", + "__grid": [20,10], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 0, "y": 336, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "b7de7c80-66b0-11ec-8fc6-259fa2c94af6", + "width": 20, + "height": 20, + "defUid": 116, + "px": [328,176], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Root", "__tile": { "tilesetUid": 117, "x": 0, "y": 336, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Root"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + }, + { + "__identifier": "Door", + "__grid": [12,13], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 160, "y": 32, "w": 16, "h": 16 }, + "__smartColor": "#00FF30", + "iid": "7e1072a0-8dc0-11ec-a525-4d0952d12de1", + "width": 16, + "height": 16, + "defUid": 123, + "px": [200,224], + "fieldInstances": [{ "__identifier": "link", "__type": "EntityRef", "__value": { + "entityIid": "796d2950-8dc0-11ec-a525-75b5a5ce20f8", + "layerIid": "490f7b60-66b0-11ec-8fc6-e5aee3385325", + "levelIid": "b7a1be70-66b0-11ec-895f-f7a843c40618", + "worldIid": "ca0e9bf0-c640-11ed-ad34-5d947c1a0a9f" + }, "__tile": null, "defUid": 124, "realEditorValues": [{ + "id": "V_String", + "params": ["796d2950-8dc0-11ec-a525-75b5a5ce20f8"] + }] }] + } + ] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 23, + "__cHei": 22, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35992e3-66b0-11ec-9cd7-3f7f8aeb0db0", + "levelId": 0, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,2, + 2,2,2,2,2,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [80,0], "src": [16,16], "f": 0, "t": 37, "d": [8,5], "a": 1 }, + { "px": [128,0], "src": [16,16], "f": 0, "t": 37, "d": [8,8], "a": 1 }, + { "px": [144,0], "src": [16,32], "f": 0, "t": 73, "d": [8,9], "a": 1 }, + { "px": [176,0], "src": [16,16], "f": 0, "t": 37, "d": [8,11], "a": 1 }, + { "px": [256,0], "src": [16,32], "f": 0, "t": 73, "d": [8,16], "a": 1 }, + { "px": [304,0], "src": [16,32], "f": 0, "t": 73, "d": [8,19], "a": 1 }, + { "px": [64,16], "src": [16,16], "f": 0, "t": 37, "d": [8,27], "a": 1 }, + { "px": [144,16], "src": [16,32], "f": 0, "t": 73, "d": [8,32], "a": 1 }, + { "px": [272,16], "src": [16,16], "f": 0, "t": 37, "d": [8,40], "a": 1 }, + { "px": [32,32], "src": [16,16], "f": 0, "t": 37, "d": [8,48], "a": 1 }, + { "px": [48,32], "src": [16,32], "f": 0, "t": 73, "d": [8,49], "a": 1 }, + { "px": [64,32], "src": [16,32], "f": 0, "t": 73, "d": [8,50], "a": 1 }, + { "px": [80,32], "src": [16,32], "f": 0, "t": 73, "d": [8,51], "a": 1 }, + { "px": [112,32], "src": [16,16], "f": 0, "t": 37, "d": [8,53], "a": 1 }, + { "px": [128,32], "src": [16,16], "f": 0, "t": 37, "d": [8,54], "a": 1 }, + { "px": [224,32], "src": [16,16], "f": 0, "t": 37, "d": [8,60], "a": 1 }, + { "px": [240,32], "src": [16,16], "f": 0, "t": 37, "d": [8,61], "a": 1 }, + { "px": [320,32], "src": [16,16], "f": 0, "t": 37, "d": [8,66], "a": 1 }, + { "px": [48,48], "src": [16,32], "f": 0, "t": 73, "d": [8,72], "a": 1 }, + { "px": [64,48], "src": [16,32], "f": 0, "t": 73, "d": [8,73], "a": 1 }, + { "px": [96,48], "src": [16,16], "f": 0, "t": 37, "d": [8,75], "a": 1 }, + { "px": [112,48], "src": [16,16], "f": 0, "t": 37, "d": [8,76], "a": 1 }, + { "px": [128,48], "src": [16,16], "f": 0, "t": 37, "d": [8,77], "a": 1 }, + { "px": [144,48], "src": [16,32], "f": 0, "t": 73, "d": [8,78], "a": 1 }, + { "px": [176,48], "src": [16,16], "f": 0, "t": 37, "d": [8,80], "a": 1 }, + { "px": [192,48], "src": [16,32], "f": 0, "t": 73, "d": [8,81], "a": 1 }, + { "px": [64,64], "src": [16,16], "f": 0, "t": 37, "d": [8,96], "a": 1 }, + { "px": [80,64], "src": [16,32], "f": 0, "t": 73, "d": [8,97], "a": 1 }, + { "px": [160,64], "src": [16,16], "f": 0, "t": 37, "d": [8,102], "a": 1 }, + { "px": [176,64], "src": [16,32], "f": 0, "t": 73, "d": [8,103], "a": 1 }, + { "px": [192,64], "src": [16,16], "f": 0, "t": 37, "d": [8,104], "a": 1 }, + { "px": [208,64], "src": [16,32], "f": 0, "t": 73, "d": [8,105], "a": 1 }, + { "px": [224,64], "src": [16,32], "f": 0, "t": 73, "d": [8,106], "a": 1 }, + { "px": [320,64], "src": [16,32], "f": 0, "t": 73, "d": [8,112], "a": 1 }, + { "px": [0,80], "src": [16,16], "f": 0, "t": 37, "d": [8,115], "a": 1 }, + { "px": [16,80], "src": [16,32], "f": 0, "t": 73, "d": [8,116], "a": 1 }, + { "px": [80,80], "src": [16,16], "f": 0, "t": 37, "d": [8,120], "a": 1 }, + { "px": [224,80], "src": [16,32], "f": 0, "t": 73, "d": [8,129], "a": 1 }, + { "px": [240,80], "src": [16,16], "f": 0, "t": 37, "d": [8,130], "a": 1 }, + { "px": [256,80], "src": [16,32], "f": 0, "t": 73, "d": [8,131], "a": 1 }, + { "px": [272,80], "src": [16,32], "f": 0, "t": 73, "d": [8,132], "a": 1 }, + { "px": [288,80], "src": [16,32], "f": 0, "t": 73, "d": [8,133], "a": 1 }, + { "px": [304,80], "src": [16,32], "f": 0, "t": 73, "d": [8,134], "a": 1 }, + { "px": [64,96], "src": [16,32], "f": 0, "t": 73, "d": [8,142], "a": 1 }, + { "px": [304,96], "src": [16,32], "f": 0, "t": 73, "d": [8,157], "a": 1 }, + { "px": [320,96], "src": [16,16], "f": 0, "t": 37, "d": [8,158], "a": 1 }, + { "px": [0,112], "src": [16,16], "f": 0, "t": 37, "d": [8,161], "a": 1 }, + { "px": [48,112], "src": [16,32], "f": 0, "t": 73, "d": [8,164], "a": 1 }, + { "px": [320,112], "src": [16,16], "f": 0, "t": 37, "d": [8,181], "a": 1 }, + { "px": [0,128], "src": [16,32], "f": 0, "t": 73, "d": [8,184], "a": 1 }, + { "px": [16,128], "src": [16,16], "f": 0, "t": 37, "d": [8,185], "a": 1 }, + { "px": [32,128], "src": [16,32], "f": 0, "t": 73, "d": [8,186], "a": 1 }, + { "px": [336,128], "src": [16,32], "f": 0, "t": 73, "d": [8,205], "a": 1 }, + { "px": [352,128], "src": [16,32], "f": 0, "t": 73, "d": [8,206], "a": 1 }, + { "px": [0,192], "src": [16,32], "f": 0, "t": 73, "d": [8,276], "a": 1 }, + { "px": [16,192], "src": [16,32], "f": 0, "t": 73, "d": [8,277], "a": 1 }, + { "px": [320,192], "src": [16,32], "f": 0, "t": 73, "d": [8,296], "a": 1 }, + { "px": [336,192], "src": [16,16], "f": 0, "t": 37, "d": [8,297], "a": 1 }, + { "px": [352,192], "src": [16,16], "f": 0, "t": 37, "d": [8,298], "a": 1 }, + { "px": [16,208], "src": [16,32], "f": 0, "t": 73, "d": [8,300], "a": 1 }, + { "px": [32,208], "src": [16,16], "f": 0, "t": 37, "d": [8,301], "a": 1 }, + { "px": [304,208], "src": [16,32], "f": 0, "t": 73, "d": [8,318], "a": 1 }, + { "px": [320,208], "src": [16,16], "f": 0, "t": 37, "d": [8,319], "a": 1 }, + { "px": [336,208], "src": [16,16], "f": 0, "t": 37, "d": [8,320], "a": 1 }, + { "px": [352,208], "src": [16,32], "f": 0, "t": 73, "d": [8,321], "a": 1 }, + { "px": [0,224], "src": [16,32], "f": 0, "t": 73, "d": [8,322], "a": 1 }, + { "px": [32,224], "src": [16,16], "f": 0, "t": 37, "d": [8,324], "a": 1 }, + { "px": [48,224], "src": [16,32], "f": 0, "t": 73, "d": [8,325], "a": 1 }, + { "px": [304,224], "src": [16,32], "f": 0, "t": 73, "d": [8,341], "a": 1 }, + { "px": [320,224], "src": [16,32], "f": 0, "t": 73, "d": [8,342], "a": 1 }, + { "px": [32,240], "src": [16,32], "f": 0, "t": 73, "d": [8,347], "a": 1 }, + { "px": [48,240], "src": [16,16], "f": 0, "t": 37, "d": [8,348], "a": 1 }, + { "px": [176,240], "src": [16,16], "f": 0, "t": 37, "d": [8,356], "a": 1 }, + { "px": [192,240], "src": [16,16], "f": 0, "t": 37, "d": [8,357], "a": 1 }, + { "px": [208,240], "src": [16,16], "f": 0, "t": 37, "d": [8,358], "a": 1 }, + { "px": [224,240], "src": [16,16], "f": 0, "t": 37, "d": [8,359], "a": 1 }, + { "px": [320,240], "src": [16,32], "f": 0, "t": 73, "d": [8,365], "a": 1 }, + { "px": [352,240], "src": [16,32], "f": 0, "t": 73, "d": [8,367], "a": 1 }, + { "px": [16,256], "src": [16,16], "f": 0, "t": 37, "d": [8,369], "a": 1 }, + { "px": [32,256], "src": [16,32], "f": 0, "t": 73, "d": [8,370], "a": 1 }, + { "px": [48,256], "src": [16,16], "f": 0, "t": 37, "d": [8,371], "a": 1 }, + { "px": [320,256], "src": [16,16], "f": 0, "t": 37, "d": [8,388], "a": 1 }, + { "px": [336,256], "src": [16,32], "f": 0, "t": 73, "d": [8,389], "a": 1 }, + { "px": [80,272], "src": [16,16], "f": 0, "t": 37, "d": [8,396], "a": 1 }, + { "px": [320,272], "src": [16,32], "f": 0, "t": 73, "d": [8,411], "a": 1 }, + { "px": [336,272], "src": [16,16], "f": 0, "t": 37, "d": [8,412], "a": 1 }, + { "px": [64,288], "src": [16,32], "f": 0, "t": 73, "d": [8,418], "a": 1 }, + { "px": [96,288], "src": [16,16], "f": 0, "t": 37, "d": [8,420], "a": 1 }, + { "px": [112,288], "src": [16,16], "f": 0, "t": 37, "d": [8,421], "a": 1 }, + { "px": [320,288], "src": [16,16], "f": 0, "t": 37, "d": [8,434], "a": 1 }, + { "px": [336,288], "src": [16,16], "f": 0, "t": 37, "d": [8,435], "a": 1 }, + { "px": [64,304], "src": [16,32], "f": 0, "t": 73, "d": [8,441], "a": 1 }, + { "px": [128,304], "src": [16,16], "f": 0, "t": 37, "d": [8,445], "a": 1 }, + { "px": [144,304], "src": [16,16], "f": 0, "t": 37, "d": [8,446], "a": 1 }, + { "px": [160,304], "src": [16,32], "f": 0, "t": 73, "d": [8,447], "a": 1 }, + { "px": [272,304], "src": [16,32], "f": 0, "t": 73, "d": [8,454], "a": 1 }, + { "px": [288,304], "src": [16,32], "f": 0, "t": 73, "d": [8,455], "a": 1 }, + { "px": [304,304], "src": [16,16], "f": 0, "t": 37, "d": [8,456], "a": 1 }, + { "px": [48,320], "src": [16,16], "f": 0, "t": 37, "d": [8,463], "a": 1 }, + { "px": [64,320], "src": [16,16], "f": 0, "t": 37, "d": [8,464], "a": 1 }, + { "px": [112,320], "src": [16,32], "f": 0, "t": 73, "d": [8,467], "a": 1 }, + { "px": [128,320], "src": [16,32], "f": 0, "t": 73, "d": [8,468], "a": 1 }, + { "px": [144,320], "src": [16,16], "f": 0, "t": 37, "d": [8,469], "a": 1 }, + { "px": [208,320], "src": [16,32], "f": 0, "t": 73, "d": [8,473], "a": 1 }, + { "px": [256,320], "src": [16,16], "f": 0, "t": 37, "d": [8,476], "a": 1 }, + { "px": [272,320], "src": [16,32], "f": 0, "t": 73, "d": [8,477], "a": 1 }, + { "px": [304,320], "src": [16,32], "f": 0, "t": 73, "d": [8,479], "a": 1 }, + { "px": [320,320], "src": [16,32], "f": 0, "t": 73, "d": [8,480], "a": 1 }, + { "px": [256,336], "src": [16,32], "f": 0, "t": 73, "d": [8,499], "a": 1 }, + { "px": [304,336], "src": [16,32], "f": 0, "t": 73, "d": [8,502], "a": 1 }, + { "px": [320,336], "src": [16,16], "f": 0, "t": 37, "d": [8,503], "a": 1 }, + { "px": [160,0], "src": [144,192], "f": 0, "t": 441, "d": [84,10], "a": 1 }, + { "px": [208,0], "src": [144,192], "f": 0, "t": 441, "d": [84,13], "a": 1 }, + { "px": [240,0], "src": [192,192], "f": 0, "t": 444, "d": [84,15], "a": 1 }, + { "px": [336,0], "src": [160,192], "f": 0, "t": 442, "d": [84,21], "a": 1 }, + { "px": [176,16], "src": [192,192], "f": 0, "t": 444, "d": [84,34], "a": 1 }, + { "px": [192,16], "src": [176,192], "f": 0, "t": 443, "d": [84,35], "a": 1 }, + { "px": [208,16], "src": [176,192], "f": 0, "t": 443, "d": [84,36], "a": 1 }, + { "px": [144,32], "src": [144,192], "f": 0, "t": 441, "d": [84,55], "a": 1 }, + { "px": [176,32], "src": [160,192], "f": 0, "t": 442, "d": [84,57], "a": 1 }, + { "px": [272,32], "src": [160,192], "f": 0, "t": 442, "d": [84,63], "a": 1 }, + { "px": [160,48], "src": [160,192], "f": 0, "t": 442, "d": [84,79], "a": 1 }, + { "px": [224,48], "src": [160,192], "f": 0, "t": 442, "d": [84,83], "a": 1 }, + { "px": [304,48], "src": [160,192], "f": 0, "t": 442, "d": [84,88], "a": 1 }, + { "px": [16,64], "src": [176,192], "f": 0, "t": 443, "d": [84,93], "a": 1 }, + { "px": [32,64], "src": [192,192], "f": 0, "t": 444, "d": [84,94], "a": 1 }, + { "px": [256,64], "src": [192,192], "f": 0, "t": 444, "d": [84,108], "a": 1 }, + { "px": [272,64], "src": [144,192], "f": 0, "t": 441, "d": [84,109], "a": 1 }, + { "px": [288,64], "src": [144,192], "f": 0, "t": 441, "d": [84,110], "a": 1 }, + { "px": [304,64], "src": [192,192], "f": 0, "t": 444, "d": [84,111], "a": 1 }, + { "px": [336,64], "src": [144,192], "f": 0, "t": 441, "d": [84,113], "a": 1 }, + { "px": [48,80], "src": [144,192], "f": 0, "t": 441, "d": [84,118], "a": 1 }, + { "px": [64,80], "src": [192,192], "f": 0, "t": 444, "d": [84,119], "a": 1 }, + { "px": [320,80], "src": [176,192], "f": 0, "t": 443, "d": [84,135], "a": 1 }, + { "px": [32,96], "src": [144,192], "f": 0, "t": 441, "d": [84,140], "a": 1 }, + { "px": [48,96], "src": [144,192], "f": 0, "t": 441, "d": [84,141], "a": 1 }, + { "px": [336,96], "src": [176,192], "f": 0, "t": 443, "d": [84,159], "a": 1 }, + { "px": [16,112], "src": [144,192], "f": 0, "t": 441, "d": [84,162], "a": 1 }, + { "px": [32,112], "src": [144,192], "f": 0, "t": 441, "d": [84,163], "a": 1 }, + { "px": [336,112], "src": [176,192], "f": 0, "t": 443, "d": [84,182], "a": 1 }, + { "px": [352,112], "src": [192,192], "f": 0, "t": 444, "d": [84,183], "a": 1 }, + { "px": [0,256], "src": [144,192], "f": 0, "t": 441, "d": [84,368], "a": 1 }, + { "px": [48,272], "src": [160,192], "f": 0, "t": 442, "d": [84,394], "a": 1 }, + { "px": [64,272], "src": [192,192], "f": 0, "t": 444, "d": [84,395], "a": 1 }, + { "px": [48,288], "src": [192,192], "f": 0, "t": 444, "d": [84,417], "a": 1 }, + { "px": [80,288], "src": [192,192], "f": 0, "t": 444, "d": [84,419], "a": 1 }, + { "px": [96,304], "src": [160,192], "f": 0, "t": 442, "d": [84,443], "a": 1 }, + { "px": [352,304], "src": [144,192], "f": 0, "t": 441, "d": [84,459], "a": 1 }, + { "px": [176,320], "src": [144,192], "f": 0, "t": 441, "d": [84,471], "a": 1 }, + { "px": [192,320], "src": [144,192], "f": 0, "t": 441, "d": [84,472], "a": 1 }, + { "px": [224,320], "src": [160,192], "f": 0, "t": 442, "d": [84,474], "a": 1 }, + { "px": [240,320], "src": [176,192], "f": 0, "t": 443, "d": [84,475], "a": 1 }, + { "px": [336,320], "src": [144,192], "f": 0, "t": 441, "d": [84,481], "a": 1 }, + { "px": [16,336], "src": [160,192], "f": 0, "t": 442, "d": [84,484], "a": 1 }, + { "px": [112,336], "src": [160,192], "f": 0, "t": 442, "d": [84,490], "a": 1 }, + { "px": [144,336], "src": [144,192], "f": 0, "t": 441, "d": [84,492], "a": 1 }, + { "px": [336,336], "src": [144,192], "f": 0, "t": 441, "d": [84,504], "a": 1 }, + { "px": [112,48], "src": [32,144], "f": 0, "t": 326, "d": [75,76], "a": 1 }, + { "px": [128,48], "src": [16,144], "f": 0, "t": 325, "d": [75,77], "a": 1 }, + { "px": [160,65], "src": [32,144], "f": 0, "t": 326, "d": [75,102], "a": 1 }, + { "px": [176,65], "src": [32,144], "f": 0, "t": 326, "d": [75,103], "a": 1 }, + { "px": [192,65], "src": [32,144], "f": 0, "t": 326, "d": [75,104], "a": 1 }, + { "px": [224,80], "src": [16,144], "f": 0, "t": 325, "d": [75,129], "a": 1 }, + { "px": [256,80], "src": [16,144], "f": 0, "t": 325, "d": [75,131], "a": 1 }, + { "px": [272,80], "src": [16,144], "f": 0, "t": 325, "d": [75,132], "a": 1 }, + { "px": [288,80], "src": [32,144], "f": 0, "t": 326, "d": [75,133], "a": 1 }, + { "px": [0,129], "src": [32,144], "f": 0, "t": 326, "d": [75,184], "a": 1 }, + { "px": [16,129], "src": [32,144], "f": 0, "t": 326, "d": [75,185], "a": 1 }, + { "px": [32,128], "src": [16,144], "f": 0, "t": 325, "d": [75,186], "a": 1 }, + { "px": [336,129], "src": [16,144], "f": 0, "t": 325, "d": [75,205], "a": 1 }, + { "px": [352,128], "src": [32,144], "f": 0, "t": 326, "d": [75,206], "a": 1 }, + { "px": [176,240], "src": [16,144], "f": 0, "t": 325, "d": [75,356], "a": 1 }, + { "px": [192,241], "src": [16,144], "f": 0, "t": 325, "d": [75,357], "a": 1 }, + { "px": [208,240], "src": [32,144], "f": 0, "t": 326, "d": [75,358], "a": 1 }, + { "px": [224,241], "src": [16,144], "f": 0, "t": 325, "d": [75,359], "a": 1 }, + { "px": [0,176], "src": [48,96], "f": 0, "t": 219, "d": [9,253], "a": 1 }, + { "px": [336,176], "src": [48,96], "f": 0, "t": 219, "d": [9,274], "a": 1 }, + { "px": [352,176], "src": [48,96], "f": 0, "t": 219, "d": [9,275], "a": 1 }, + { "px": [160,224], "src": [48,96], "f": 0, "t": 219, "d": [9,332], "a": 1 }, + { "px": [176,224], "src": [16,96], "f": 0, "t": 217, "d": [9,333], "a": 1 }, + { "px": [192,224], "src": [48,96], "f": 0, "t": 219, "d": [9,334], "a": 1 }, + { "px": [208,224], "src": [64,96], "f": 0, "t": 220, "d": [9,335], "a": 1 }, + { "px": [224,224], "src": [16,96], "f": 0, "t": 217, "d": [9,336], "a": 1 }, + { "px": [64,256], "src": [16,96], "f": 0, "t": 217, "d": [9,372], "a": 1 }, + { "px": [96,272], "src": [48,96], "f": 0, "t": 219, "d": [9,397], "a": 1 }, + { "px": [128,288], "src": [16,96], "f": 0, "t": 217, "d": [9,422], "a": 1 }, + { "px": [144,288], "src": [48,96], "f": 0, "t": 219, "d": [9,423], "a": 1 }, + { "px": [288,288], "src": [16,96], "f": 0, "t": 217, "d": [9,432], "a": 1 }, + { "px": [304,288], "src": [48,96], "f": 0, "t": 219, "d": [9,433], "a": 1 }, + { "px": [176,304], "src": [48,96], "f": 0, "t": 219, "d": [9,448], "a": 1 }, + { "px": [192,304], "src": [64,96], "f": 0, "t": 220, "d": [9,449], "a": 1 }, + { "px": [208,304], "src": [16,96], "f": 0, "t": 217, "d": [9,450], "a": 1 }, + { "px": [224,304], "src": [48,96], "f": 0, "t": 219, "d": [9,451], "a": 1 }, + { "px": [240,304], "src": [48,96], "f": 0, "t": 219, "d": [9,452], "a": 1 }, + { "px": [256,304], "src": [64,96], "f": 0, "t": 220, "d": [9,453], "a": 1 }, + { "px": [81,80], "src": [0,128], "f": 1, "t": 288, "d": [10,120], "a": 1 }, + { "px": [302,96], "src": [0,112], "f": 0, "t": 252, "d": [10,157], "a": 1 }, + { "px": [303,208], "src": [0,112], "f": 0, "t": 252, "d": [10,318], "a": 1 }, + { "px": [48,224], "src": [0,112], "f": 1, "t": 252, "d": [10,325], "a": 1 }, + { "px": [302,224], "src": [0,112], "f": 0, "t": 252, "d": [10,341], "a": 1 }, + { "px": [50,240], "src": [0,112], "f": 1, "t": 252, "d": [10,348], "a": 1 }, + { "px": [319,256], "src": [0,128], "f": 0, "t": 288, "d": [10,388], "a": 1 }, + { "px": [319,272], "src": [0,112], "f": 0, "t": 252, "d": [10,411], "a": 1 }, + { "px": [96,64], "src": [0,144], "f": 1, "t": 324, "d": [77,98], "a": 1 }, + { "px": [144,64], "src": [0,144], "f": 0, "t": 324, "d": [77,101], "a": 1 }, + { "px": [208,80], "src": [0,144], "f": 0, "t": 324, "d": [77,128], "a": 1 }, + { "px": [80,96], "src": [0,144], "f": 1, "t": 324, "d": [77,143], "a": 1 }, + { "px": [240,96], "src": [0,144], "f": 0, "t": 324, "d": [77,153], "a": 1 }, + { "px": [64,112], "src": [0,144], "f": 1, "t": 324, "d": [77,165], "a": 1 }, + { "px": [304,112], "src": [0,144], "f": 0, "t": 324, "d": [77,180], "a": 1 }, + { "px": [48,128], "src": [0,144], "f": 1, "t": 324, "d": [77,187], "a": 1 }, + { "px": [320,128], "src": [0,144], "f": 0, "t": 324, "d": [77,204], "a": 1 }, + { "px": [160,240], "src": [0,144], "f": 0, "t": 324, "d": [77,355], "a": 1 }, + { "px": [240,240], "src": [0,144], "f": 1, "t": 324, "d": [77,360], "a": 1 }, + { "px": [304,240], "src": [0,144], "f": 0, "t": 324, "d": [77,364], "a": 1 }, + { "px": [16,176], "src": [0,96], "f": 1, "t": 216, "d": [11,254], "a": 1 }, + { "px": [320,176], "src": [0,96], "f": 0, "t": 216, "d": [11,273], "a": 1 }, + { "px": [32,192], "src": [0,96], "f": 1, "t": 216, "d": [11,278], "a": 1 }, + { "px": [304,192], "src": [0,96], "f": 0, "t": 216, "d": [11,295], "a": 1 }, + { "px": [48,208], "src": [0,96], "f": 1, "t": 216, "d": [11,302], "a": 1 }, + { "px": [144,224], "src": [0,96], "f": 0, "t": 216, "d": [11,331], "a": 1 }, + { "px": [240,224], "src": [0,96], "f": 1, "t": 216, "d": [11,337], "a": 1 }, + { "px": [80,256], "src": [0,96], "f": 1, "t": 216, "d": [11,373], "a": 1 }, + { "px": [112,272], "src": [0,96], "f": 1, "t": 216, "d": [11,398], "a": 1 }, + { "px": [160,288], "src": [0,96], "f": 1, "t": 216, "d": [11,424], "a": 1 }, + { "px": [272,288], "src": [0,96], "f": 0, "t": 216, "d": [11,431], "a": 1 }, + { "px": [96,48], "src": [48,144], "f": 0, "t": 327, "d": [76,75], "a": 1 }, + { "px": [144,48], "src": [48,144], "f": 1, "t": 327, "d": [76,78], "a": 1 }, + { "px": [80,64], "src": [48,144], "f": 0, "t": 327, "d": [76,97], "a": 1 }, + { "px": [208,64], "src": [48,144], "f": 1, "t": 327, "d": [76,105], "a": 1 }, + { "px": [240,80], "src": [48,144], "f": 0, "t": 327, "d": [76,130], "a": 1 }, + { "px": [240,80], "src": [48,144], "f": 1, "t": 327, "d": [76,130], "a": 1 }, + { "px": [304,80], "src": [48,144], "f": 1, "t": 327, "d": [76,134], "a": 1 }, + { "px": [64,96], "src": [48,144], "f": 0, "t": 327, "d": [76,142], "a": 1 }, + { "px": [48,112], "src": [48,144], "f": 0, "t": 327, "d": [76,164], "a": 1 }, + { "px": [320,112], "src": [48,144], "f": 1, "t": 327, "d": [76,181], "a": 1 }, + { "px": [160,224], "src": [48,144], "f": 1, "t": 327, "d": [76,332], "a": 1 }, + { "px": [320,240], "src": [48,144], "f": 1, "t": 327, "d": [76,365], "a": 1 }, + { "px": [16,192], "src": [64,144], "f": 0, "t": 328, "d": [14,277], "a": 1 }, + { "px": [320,192], "src": [64,144], "f": 1, "t": 328, "d": [14,296], "a": 1 }, + { "px": [32,208], "src": [64,144], "f": 0, "t": 328, "d": [14,301], "a": 1 }, + { "px": [48,256], "src": [64,144], "f": 0, "t": 328, "d": [14,371], "a": 1 }, + { "px": [80,272], "src": [64,144], "f": 0, "t": 328, "d": [14,396], "a": 1 }, + { "px": [112,288], "src": [64,144], "f": 0, "t": 328, "d": [14,421], "a": 1 }, + { "px": [320,288], "src": [64,144], "f": 1, "t": 328, "d": [14,434], "a": 1 }, + { "px": [160,304], "src": [64,144], "f": 0, "t": 328, "d": [14,447], "a": 1 }, + { "px": [272,304], "src": [64,144], "f": 1, "t": 328, "d": [14,454], "a": 1 }, + { "px": [96,240], "src": [0,224], "f": 0, "t": 504, "d": [28,351], "a": 1 }, + { "px": [112,240], "src": [0,224], "f": 0, "t": 504, "d": [28,352], "a": 1 }, + { "px": [256,240], "src": [0,224], "f": 0, "t": 504, "d": [28,361], "a": 1 }, + { "px": [272,240], "src": [0,224], "f": 0, "t": 504, "d": [28,362], "a": 1 }, + { "px": [288,240], "src": [0,224], "f": 0, "t": 504, "d": [28,363], "a": 1 }, + { "px": [160,256], "src": [0,224], "f": 0, "t": 504, "d": [28,378], "a": 1 }, + { "px": [176,256], "src": [0,224], "f": 0, "t": 504, "d": [28,379], "a": 1 }, + { "px": [192,256], "src": [0,224], "f": 0, "t": 504, "d": [28,380], "a": 1 }, + { "px": [208,256], "src": [0,224], "f": 0, "t": 504, "d": [28,381], "a": 1 }, + { "px": [256,256], "src": [0,224], "f": 0, "t": 504, "d": [28,384], "a": 1 }, + { "px": [272,256], "src": [0,224], "f": 0, "t": 504, "d": [28,385], "a": 1 }, + { "px": [288,256], "src": [0,224], "f": 0, "t": 504, "d": [28,386], "a": 1 }, + { "px": [128,272], "src": [0,224], "f": 0, "t": 504, "d": [28,399], "a": 1 }, + { "px": [144,272], "src": [0,224], "f": 0, "t": 504, "d": [28,400], "a": 1 }, + { "px": [160,272], "src": [0,224], "f": 0, "t": 504, "d": [28,401], "a": 1 }, + { "px": [176,272], "src": [0,224], "f": 0, "t": 504, "d": [28,402], "a": 1 }, + { "px": [192,272], "src": [0,224], "f": 0, "t": 504, "d": [28,403], "a": 1 }, + { "px": [208,272], "src": [0,224], "f": 0, "t": 504, "d": [28,404], "a": 1 }, + { "px": [240,272], "src": [0,224], "f": 0, "t": 504, "d": [28,406], "a": 1 }, + { "px": [256,272], "src": [0,224], "f": 0, "t": 504, "d": [28,407], "a": 1 }, + { "px": [272,272], "src": [0,224], "f": 0, "t": 504, "d": [28,408], "a": 1 }, + { "px": [288,272], "src": [0,224], "f": 0, "t": 504, "d": [28,409], "a": 1 }, + { "px": [304,272], "src": [0,224], "f": 0, "t": 504, "d": [28,410], "a": 1 }, + { "px": [176,288], "src": [0,224], "f": 0, "t": 504, "d": [28,425], "a": 1 }, + { "px": [192,288], "src": [0,224], "f": 0, "t": 504, "d": [28,426], "a": 1 }, + { "px": [240,288], "src": [0,224], "f": 0, "t": 504, "d": [28,429], "a": 1 }, + { "px": [256,288], "src": [0,224], "f": 0, "t": 504, "d": [28,430], "a": 1 }, + { "px": [64,240], "src": [32,224], "f": 0, "t": 506, "d": [74,349], "a": 1 }, + { "px": [80,240], "src": [32,224], "f": 0, "t": 506, "d": [74,350], "a": 1 }, + { "px": [128,240], "src": [16,224], "f": 0, "t": 505, "d": [74,353], "a": 1 }, + { "px": [144,240], "src": [32,224], "f": 0, "t": 506, "d": [74,354], "a": 1 }, + { "px": [96,256], "src": [16,240], "f": 0, "t": 541, "d": [74,374], "a": 1 }, + { "px": [112,256], "src": [32,240], "f": 0, "t": 542, "d": [74,375], "a": 1 }, + { "px": [128,256], "src": [16,224], "f": 0, "t": 505, "d": [74,376], "a": 1 }, + { "px": [144,256], "src": [16,240], "f": 0, "t": 541, "d": [74,377], "a": 1 }, + { "px": [224,256], "src": [32,224], "f": 0, "t": 506, "d": [74,382], "a": 1 }, + { "px": [240,256], "src": [16,240], "f": 0, "t": 541, "d": [74,383], "a": 1 }, + { "px": [304,256], "src": [16,240], "f": 0, "t": 541, "d": [74,387], "a": 1 }, + { "px": [224,272], "src": [16,224], "f": 0, "t": 505, "d": [74,405], "a": 1 }, + { "px": [208,288], "src": [32,240], "f": 0, "t": 542, "d": [74,427], "a": 1 }, + { "px": [224,288], "src": [16,224], "f": 0, "t": 505, "d": [74,428], "a": 1 }, + { "px": [64,224], "src": [32,208], "f": 0, "t": 470, "d": [21,326], "a": 1 }, + { "px": [80,225], "src": [32,208], "f": 0, "t": 470, "d": [21,327], "a": 1 }, + { "px": [96,225], "src": [32,208], "f": 0, "t": 470, "d": [21,328], "a": 1 }, + { "px": [112,224], "src": [32,208], "f": 0, "t": 470, "d": [21,329], "a": 1 }, + { "px": [128,224], "src": [0,208], "f": 0, "t": 468, "d": [21,330], "a": 1 }, + { "px": [256,224], "src": [0,208], "f": 0, "t": 468, "d": [21,338], "a": 1 }, + { "px": [272,224], "src": [0,208], "f": 0, "t": 468, "d": [21,339], "a": 1 }, + { "px": [288,224], "src": [16,208], "f": 0, "t": 469, "d": [21,340], "a": 1 }, + { "px": [64,240], "src": [192,48], "f": 0, "t": 120, "d": [111,349], "a": 1 }, + { "px": [96,256], "src": [176,48], "f": 0, "t": 119, "d": [111,374], "a": 1 }, + { "px": [112,256], "src": [208,48], "f": 0, "t": 121, "d": [111,375], "a": 1 }, + { "px": [128,272], "src": [176,48], "f": 0, "t": 119, "d": [111,399], "a": 1 }, + { "px": [144,272], "src": [192,48], "f": 0, "t": 120, "d": [111,400], "a": 1 }, + { "px": [160,272], "src": [192,48], "f": 0, "t": 120, "d": [111,401], "a": 1 }, + { "px": [304,272], "src": [192,48], "f": 0, "t": 120, "d": [111,410], "a": 1 }, + { "px": [176,288], "src": [160,48], "f": 0, "t": 118, "d": [111,425], "a": 1 }, + { "px": [192,288], "src": [160,48], "f": 0, "t": 118, "d": [111,426], "a": 1 }, + { "px": [208,288], "src": [208,48], "f": 0, "t": 121, "d": [111,427], "a": 1 }, + { "px": [224,288], "src": [176,48], "f": 0, "t": 119, "d": [111,428], "a": 1 }, + { "px": [240,288], "src": [160,48], "f": 0, "t": 118, "d": [111,429], "a": 1 }, + { "px": [256,288], "src": [192,48], "f": 0, "t": 120, "d": [111,430], "a": 1 }, + { "px": [62,240], "src": [192,48], "f": 0, "t": 120, "d": [99,349], "a": 1 }, + { "px": [79,241], "src": [176,48], "f": 0, "t": 119, "d": [99,350], "a": 1 }, + { "px": [144,240], "src": [208,48], "f": 2, "t": 121, "d": [99,354], "a": 1 }, + { "px": [111,257], "src": [208,48], "f": 0, "t": 121, "d": [99,375], "a": 1 }, + { "px": [161,255], "src": [176,48], "f": 2, "t": 119, "d": [99,378], "a": 1 }, + { "px": [193,256], "src": [176,48], "f": 2, "t": 119, "d": [99,380], "a": 1 }, + { "px": [207,255], "src": [176,48], "f": 2, "t": 119, "d": [99,381], "a": 1 }, + { "px": [242,255], "src": [160,48], "f": 2, "t": 118, "d": [99,383], "a": 1 }, + { "px": [304,255], "src": [160,48], "f": 2, "t": 118, "d": [99,387], "a": 1 }, + { "px": [145,272], "src": [192,48], "f": 0, "t": 120, "d": [99,400], "a": 1 }, + { "px": [161,273], "src": [160,48], "f": 0, "t": 118, "d": [99,401], "a": 1 }, + { "px": [273,272], "src": [160,48], "f": 0, "t": 118, "d": [99,408], "a": 1 }, + { "px": [290,272], "src": [160,48], "f": 0, "t": 118, "d": [99,409], "a": 1 }, + { "px": [304,273], "src": [160,48], "f": 0, "t": 118, "d": [99,410], "a": 1 }, + { "px": [174,288], "src": [160,48], "f": 0, "t": 118, "d": [99,425], "a": 1 }, + { "px": [224,289], "src": [208,48], "f": 0, "t": 121, "d": [99,428], "a": 1 }, + { "px": [239,288], "src": [208,48], "f": 0, "t": 121, "d": [99,429], "a": 1 }, + { "px": [112,64], "src": [80,112], "f": 0, "t": 257, "d": [95,99], "a": 1 }, + { "px": [128,64], "src": [80,112], "f": 1, "t": 257, "d": [95,100], "a": 1 }, + { "px": [96,80], "src": [80,128], "f": 0, "t": 293, "d": [95,121], "a": 1 }, + { "px": [192,80], "src": [80,128], "f": 1, "t": 293, "d": [95,127], "a": 1 }, + { "px": [224,96], "src": [80,128], "f": 1, "t": 293, "d": [95,152], "a": 1 }, + { "px": [256,96], "src": [80,128], "f": 0, "t": 293, "d": [95,154], "a": 1 }, + { "px": [288,96], "src": [80,128], "f": 1, "t": 293, "d": [95,156], "a": 1 }, + { "px": [80,112], "src": [80,112], "f": 0, "t": 257, "d": [95,166], "a": 1 }, + { "px": [64,128], "src": [80,128], "f": 0, "t": 293, "d": [95,188], "a": 1 }, + { "px": [304,128], "src": [80,128], "f": 1, "t": 293, "d": [95,203], "a": 1 }, + { "px": [144,240], "src": [80,128], "f": 1, "t": 293, "d": [95,354], "a": 1 }, + { "px": [304,256], "src": [80,112], "f": 1, "t": 257, "d": [95,387], "a": 1 }, + { "px": [32,176], "src": [80,160], "f": 0, "t": 365, "d": [96,255], "a": 1 }, + { "px": [304,176], "src": [80,144], "f": 1, "t": 329, "d": [96,272], "a": 1 }, + { "px": [48,192], "src": [80,160], "f": 0, "t": 365, "d": [96,279], "a": 1 }, + { "px": [64,240], "src": [80,144], "f": 0, "t": 329, "d": [96,349], "a": 1 }, + { "px": [96,256], "src": [80,144], "f": 0, "t": 329, "d": [96,374], "a": 1 }, + { "px": [128,272], "src": [80,144], "f": 0, "t": 329, "d": [96,399], "a": 1 }, + { "px": [304,272], "src": [80,144], "f": 1, "t": 329, "d": [96,410], "a": 1 }, + { "px": [176,288], "src": [80,144], "f": 0, "t": 329, "d": [96,425], "a": 1 }, + { "px": [256,288], "src": [80,160], "f": 1, "t": 365, "d": [96,430], "a": 1 }, + { "px": [0,162], "src": [32,80], "f": 0, "t": 182, "d": [97,230], "a": 1 }, + { "px": [16,161], "src": [112,112], "f": 0, "t": 259, "d": [97,231], "a": 1 }, + { "px": [320,162], "src": [0,80], "f": 0, "t": 180, "d": [97,250], "a": 1 }, + { "px": [336,160], "src": [16,80], "f": 0, "t": 181, "d": [97,251], "a": 1 }, + { "px": [352,161], "src": [144,112], "f": 0, "t": 261, "d": [97,252], "a": 1 }, + { "px": [32,178], "src": [0,80], "f": 0, "t": 180, "d": [97,255], "a": 1 }, + { "px": [304,178], "src": [48,80], "f": 0, "t": 183, "d": [97,272], "a": 1 }, + { "px": [48,194], "src": [112,112], "f": 0, "t": 259, "d": [97,279], "a": 1 }, + { "px": [144,209], "src": [32,80], "f": 0, "t": 182, "d": [97,308], "a": 1 }, + { "px": [160,210], "src": [128,112], "f": 0, "t": 260, "d": [97,309], "a": 1 }, + { "px": [176,208], "src": [48,80], "f": 0, "t": 183, "d": [97,310], "a": 1 }, + { "px": [192,208], "src": [16,80], "f": 0, "t": 181, "d": [97,311], "a": 1 }, + { "px": [208,210], "src": [128,112], "f": 0, "t": 260, "d": [97,312], "a": 1 }, + { "px": [224,210], "src": [48,80], "f": 0, "t": 183, "d": [97,313], "a": 1 }, + { "px": [240,209], "src": [0,80], "f": 0, "t": 180, "d": [97,314], "a": 1 }, + { "px": [64,240], "src": [48,80], "f": 0, "t": 183, "d": [97,349], "a": 1 }, + { "px": [80,242], "src": [112,112], "f": 0, "t": 259, "d": [97,350], "a": 1 }, + { "px": [96,256], "src": [0,80], "f": 0, "t": 180, "d": [97,374], "a": 1 }, + { "px": [112,258], "src": [16,80], "f": 0, "t": 181, "d": [97,375], "a": 1 }, + { "px": [128,273], "src": [32,80], "f": 0, "t": 182, "d": [97,399], "a": 1 }, + { "px": [160,274], "src": [0,80], "f": 0, "t": 180, "d": [97,401], "a": 1 }, + { "px": [272,274], "src": [144,112], "f": 0, "t": 261, "d": [97,408], "a": 1 }, + { "px": [288,274], "src": [16,80], "f": 0, "t": 181, "d": [97,409], "a": 1 }, + { "px": [304,273], "src": [0,80], "f": 0, "t": 180, "d": [97,410], "a": 1 }, + { "px": [176,289], "src": [128,112], "f": 0, "t": 260, "d": [97,425], "a": 1 }, + { "px": [192,288], "src": [16,80], "f": 0, "t": 181, "d": [97,426], "a": 1 }, + { "px": [208,290], "src": [16,80], "f": 0, "t": 181, "d": [97,427], "a": 1 }, + { "px": [224,290], "src": [128,112], "f": 0, "t": 260, "d": [97,428], "a": 1 }, + { "px": [240,289], "src": [16,80], "f": 0, "t": 181, "d": [97,429], "a": 1 }, + { "px": [256,289], "src": [112,112], "f": 0, "t": 259, "d": [97,430], "a": 1 }, + { "px": [112,64], "src": [64,128], "f": 0, "t": 292, "d": [98,99], "a": 1 }, + { "px": [128,64], "src": [64,128], "f": 1, "t": 292, "d": [98,100], "a": 1 }, + { "px": [96,80], "src": [64,128], "f": 0, "t": 292, "d": [98,121], "a": 1 }, + { "px": [192,80], "src": [64,128], "f": 1, "t": 292, "d": [98,127], "a": 1 }, + { "px": [96,96], "src": [64,128], "f": 0, "t": 292, "d": [98,144], "a": 1 }, + { "px": [224,96], "src": [64,128], "f": 1, "t": 292, "d": [98,152], "a": 1 }, + { "px": [256,96], "src": [64,112], "f": 0, "t": 256, "d": [98,154], "a": 1 }, + { "px": [288,96], "src": [64,128], "f": 1, "t": 292, "d": [98,156], "a": 1 }, + { "px": [288,112], "src": [64,112], "f": 1, "t": 256, "d": [98,179], "a": 1 }, + { "px": [64,128], "src": [64,112], "f": 0, "t": 256, "d": [98,188], "a": 1 }, + { "px": [304,128], "src": [64,128], "f": 1, "t": 292, "d": [98,203], "a": 1 }, + { "px": [32,176], "src": [64,128], "f": 0, "t": 292, "d": [98,255], "a": 1 }, + { "px": [304,176], "src": [64,128], "f": 1, "t": 292, "d": [98,272], "a": 1 }, + { "px": [48,192], "src": [64,128], "f": 0, "t": 292, "d": [98,279], "a": 1 }, + { "px": [64,208], "src": [64,128], "f": 0, "t": 292, "d": [98,303], "a": 1 }, + { "px": [64,224], "src": [64,128], "f": 0, "t": 292, "d": [98,326], "a": 1 }, + { "px": [128,224], "src": [64,128], "f": 1, "t": 292, "d": [98,330], "a": 1 }, + { "px": [288,224], "src": [64,128], "f": 1, "t": 292, "d": [98,340], "a": 1 }, + { "px": [64,240], "src": [64,128], "f": 0, "t": 292, "d": [98,349], "a": 1 }, + { "px": [256,240], "src": [64,112], "f": 0, "t": 256, "d": [98,361], "a": 1 }, + { "px": [96,256], "src": [64,112], "f": 0, "t": 256, "d": [98,374], "a": 1 }, + { "px": [304,256], "src": [64,112], "f": 1, "t": 256, "d": [98,387], "a": 1 }, + { "px": [128,272], "src": [64,112], "f": 0, "t": 256, "d": [98,399], "a": 1 }, + { "px": [304,272], "src": [64,112], "f": 1, "t": 256, "d": [98,410], "a": 1 }, + { "px": [176,288], "src": [64,128], "f": 0, "t": 292, "d": [98,425], "a": 1 }, + { "px": [256,288], "src": [64,112], "f": 1, "t": 256, "d": [98,430], "a": 1 }, + { "px": [112,64], "src": [96,96], "f": 0, "t": 222, "d": [93,99], "a": 1 }, + { "px": [128,64], "src": [112,96], "f": 0, "t": 223, "d": [93,100], "a": 1 }, + { "px": [144,80], "src": [96,96], "f": 0, "t": 222, "d": [93,124], "a": 1 }, + { "px": [160,80], "src": [112,96], "f": 0, "t": 223, "d": [93,125], "a": 1 }, + { "px": [0,144], "src": [128,80], "f": 0, "t": 188, "d": [93,207], "a": 1 }, + { "px": [16,144], "src": [128,96], "f": 0, "t": 224, "d": [93,208], "a": 1 }, + { "px": [48,144], "src": [128,96], "f": 0, "t": 224, "d": [93,210], "a": 1 }, + { "px": [112,64], "src": [112,96], "f": 0, "t": 223, "d": [101,99], "a": 1 }, + { "px": [128,64], "src": [112,96], "f": 0, "t": 223, "d": [101,100], "a": 1 }, + { "px": [96,80], "src": [128,96], "f": 0, "t": 224, "d": [101,121], "a": 1 }, + { "px": [144,80], "src": [112,96], "f": 0, "t": 223, "d": [101,124], "a": 1 }, + { "px": [160,80], "src": [112,96], "f": 0, "t": 223, "d": [101,125], "a": 1 }, + { "px": [176,80], "src": [128,96], "f": 0, "t": 224, "d": [101,126], "a": 1 }, + { "px": [192,80], "src": [112,96], "f": 0, "t": 223, "d": [101,127], "a": 1 }, + { "px": [208,96], "src": [128,96], "f": 0, "t": 224, "d": [101,151], "a": 1 }, + { "px": [224,96], "src": [112,96], "f": 0, "t": 223, "d": [101,152], "a": 1 }, + { "px": [256,96], "src": [128,96], "f": 0, "t": 224, "d": [101,154], "a": 1 }, + { "px": [272,96], "src": [112,96], "f": 0, "t": 223, "d": [101,155], "a": 1 }, + { "px": [80,112], "src": [128,96], "f": 0, "t": 224, "d": [101,166], "a": 1 }, + { "px": [240,112], "src": [112,96], "f": 0, "t": 223, "d": [101,176], "a": 1 }, + { "px": [64,128], "src": [112,96], "f": 0, "t": 223, "d": [101,188], "a": 1 }, + { "px": [304,128], "src": [128,96], "f": 0, "t": 224, "d": [101,203], "a": 1 }, + { "px": [0,144], "src": [128,96], "f": 0, "t": 224, "d": [101,207], "a": 1 }, + { "px": [16,144], "src": [112,96], "f": 0, "t": 223, "d": [101,208], "a": 1 }, + { "px": [32,144], "src": [112,96], "f": 0, "t": 223, "d": [101,209], "a": 1 }, + { "px": [48,144], "src": [112,96], "f": 0, "t": 223, "d": [101,210], "a": 1 }, + { "px": [320,144], "src": [128,96], "f": 0, "t": 224, "d": [101,227], "a": 1 }, + { "px": [336,144], "src": [128,96], "f": 0, "t": 224, "d": [101,228], "a": 1 }, + { "px": [144,240], "src": [112,96], "f": 0, "t": 223, "d": [101,354], "a": 1 }, + { "px": [176,256], "src": [112,96], "f": 0, "t": 223, "d": [101,379], "a": 1 }, + { "px": [192,256], "src": [128,96], "f": 0, "t": 224, "d": [101,380], "a": 1 }, + { "px": [208,256], "src": [112,96], "f": 0, "t": 223, "d": [101,381], "a": 1 }, + { "px": [224,256], "src": [112,96], "f": 0, "t": 223, "d": [101,382], "a": 1 }, + { "px": [240,256], "src": [128,96], "f": 0, "t": 224, "d": [101,383], "a": 1 }, + { "px": [304,256], "src": [112,96], "f": 0, "t": 223, "d": [101,387], "a": 1 }, + { "px": [0,0], "src": [176,208], "f": 0, "t": 479, "d": [104,0], "a": 1 }, + { "px": [16,0], "src": [176,208], "f": 0, "t": 479, "d": [104,1], "a": 1 }, + { "px": [32,0], "src": [192,208], "f": 0, "t": 480, "d": [104,2], "a": 1 }, + { "px": [48,0], "src": [176,208], "f": 0, "t": 479, "d": [104,3], "a": 1 }, + { "px": [64,0], "src": [176,208], "f": 0, "t": 479, "d": [104,4], "a": 1 }, + { "px": [96,0], "src": [208,208], "f": 0, "t": 481, "d": [104,6], "a": 1 }, + { "px": [112,0], "src": [208,208], "f": 0, "t": 481, "d": [104,7], "a": 1 }, + { "px": [192,0], "src": [176,208], "f": 0, "t": 479, "d": [104,12], "a": 1 }, + { "px": [224,0], "src": [208,208], "f": 0, "t": 481, "d": [104,14], "a": 1 }, + { "px": [272,0], "src": [192,208], "f": 0, "t": 480, "d": [104,17], "a": 1 }, + { "px": [288,0], "src": [176,208], "f": 0, "t": 479, "d": [104,18], "a": 1 }, + { "px": [320,0], "src": [208,208], "f": 0, "t": 481, "d": [104,20], "a": 1 }, + { "px": [352,0], "src": [192,208], "f": 0, "t": 480, "d": [104,22], "a": 1 }, + { "px": [0,16], "src": [192,208], "f": 0, "t": 480, "d": [104,23], "a": 1 }, + { "px": [16,16], "src": [176,208], "f": 0, "t": 479, "d": [104,24], "a": 1 }, + { "px": [32,16], "src": [192,208], "f": 0, "t": 480, "d": [104,25], "a": 1 }, + { "px": [48,16], "src": [208,208], "f": 0, "t": 481, "d": [104,26], "a": 1 }, + { "px": [80,16], "src": [192,208], "f": 0, "t": 480, "d": [104,28], "a": 1 }, + { "px": [96,16], "src": [192,208], "f": 0, "t": 480, "d": [104,29], "a": 1 }, + { "px": [112,16], "src": [208,208], "f": 0, "t": 481, "d": [104,30], "a": 1 }, + { "px": [128,16], "src": [208,208], "f": 0, "t": 481, "d": [104,31], "a": 1 }, + { "px": [160,16], "src": [192,208], "f": 0, "t": 480, "d": [104,33], "a": 1 }, + { "px": [224,16], "src": [208,208], "f": 0, "t": 481, "d": [104,37], "a": 1 }, + { "px": [240,16], "src": [208,208], "f": 0, "t": 481, "d": [104,38], "a": 1 }, + { "px": [256,16], "src": [192,208], "f": 0, "t": 480, "d": [104,39], "a": 1 }, + { "px": [288,16], "src": [176,208], "f": 0, "t": 479, "d": [104,41], "a": 1 }, + { "px": [304,16], "src": [192,208], "f": 0, "t": 480, "d": [104,42], "a": 1 }, + { "px": [320,16], "src": [192,208], "f": 0, "t": 480, "d": [104,43], "a": 1 }, + { "px": [336,16], "src": [192,208], "f": 0, "t": 480, "d": [104,44], "a": 1 }, + { "px": [352,16], "src": [208,208], "f": 0, "t": 481, "d": [104,45], "a": 1 }, + { "px": [0,32], "src": [208,208], "f": 0, "t": 481, "d": [104,46], "a": 1 }, + { "px": [16,32], "src": [176,208], "f": 0, "t": 479, "d": [104,47], "a": 1 }, + { "px": [96,32], "src": [208,208], "f": 0, "t": 481, "d": [104,52], "a": 1 }, + { "px": [160,32], "src": [176,208], "f": 0, "t": 479, "d": [104,56], "a": 1 }, + { "px": [192,32], "src": [176,208], "f": 0, "t": 479, "d": [104,58], "a": 1 }, + { "px": [208,32], "src": [192,208], "f": 0, "t": 480, "d": [104,59], "a": 1 }, + { "px": [256,32], "src": [192,208], "f": 0, "t": 480, "d": [104,62], "a": 1 }, + { "px": [288,32], "src": [192,208], "f": 0, "t": 480, "d": [104,64], "a": 1 }, + { "px": [304,32], "src": [208,208], "f": 0, "t": 481, "d": [104,65], "a": 1 }, + { "px": [336,32], "src": [208,208], "f": 0, "t": 481, "d": [104,67], "a": 1 }, + { "px": [352,32], "src": [176,208], "f": 0, "t": 479, "d": [104,68], "a": 1 }, + { "px": [0,48], "src": [208,208], "f": 0, "t": 481, "d": [104,69], "a": 1 }, + { "px": [16,48], "src": [208,208], "f": 0, "t": 481, "d": [104,70], "a": 1 }, + { "px": [32,48], "src": [192,208], "f": 0, "t": 480, "d": [104,71], "a": 1 }, + { "px": [80,48], "src": [208,208], "f": 0, "t": 481, "d": [104,74], "a": 1 }, + { "px": [208,48], "src": [176,208], "f": 0, "t": 479, "d": [104,82], "a": 1 }, + { "px": [240,48], "src": [176,208], "f": 0, "t": 479, "d": [104,84], "a": 1 }, + { "px": [256,48], "src": [176,208], "f": 0, "t": 479, "d": [104,85], "a": 1 }, + { "px": [272,48], "src": [208,208], "f": 0, "t": 481, "d": [104,86], "a": 1 }, + { "px": [288,48], "src": [176,208], "f": 0, "t": 479, "d": [104,87], "a": 1 }, + { "px": [320,48], "src": [192,208], "f": 0, "t": 480, "d": [104,89], "a": 1 }, + { "px": [336,48], "src": [208,208], "f": 0, "t": 481, "d": [104,90], "a": 1 }, + { "px": [352,48], "src": [208,208], "f": 0, "t": 481, "d": [104,91], "a": 1 }, + { "px": [0,64], "src": [208,208], "f": 0, "t": 481, "d": [104,92], "a": 1 }, + { "px": [48,64], "src": [208,208], "f": 0, "t": 481, "d": [104,95], "a": 1 }, + { "px": [240,64], "src": [208,208], "f": 0, "t": 481, "d": [104,107], "a": 1 }, + { "px": [352,64], "src": [192,208], "f": 0, "t": 480, "d": [104,114], "a": 1 }, + { "px": [32,80], "src": [192,208], "f": 0, "t": 480, "d": [104,117], "a": 1 }, + { "px": [336,80], "src": [192,208], "f": 0, "t": 480, "d": [104,136], "a": 1 }, + { "px": [352,80], "src": [176,208], "f": 0, "t": 479, "d": [104,137], "a": 1 }, + { "px": [0,96], "src": [176,208], "f": 0, "t": 479, "d": [104,138], "a": 1 }, + { "px": [16,96], "src": [208,208], "f": 0, "t": 481, "d": [104,139], "a": 1 }, + { "px": [352,96], "src": [192,208], "f": 0, "t": 480, "d": [104,160], "a": 1 }, + { "px": [0,208], "src": [208,208], "f": 0, "t": 481, "d": [104,299], "a": 1 }, + { "px": [16,224], "src": [208,208], "f": 0, "t": 481, "d": [104,323], "a": 1 }, + { "px": [336,224], "src": [192,208], "f": 0, "t": 480, "d": [104,343], "a": 1 }, + { "px": [352,224], "src": [192,208], "f": 0, "t": 480, "d": [104,344], "a": 1 }, + { "px": [0,240], "src": [176,208], "f": 0, "t": 479, "d": [104,345], "a": 1 }, + { "px": [16,240], "src": [176,208], "f": 0, "t": 479, "d": [104,346], "a": 1 }, + { "px": [336,240], "src": [192,208], "f": 0, "t": 480, "d": [104,366], "a": 1 }, + { "px": [352,256], "src": [176,208], "f": 0, "t": 479, "d": [104,390], "a": 1 }, + { "px": [0,272], "src": [176,208], "f": 0, "t": 479, "d": [104,391], "a": 1 }, + { "px": [16,272], "src": [176,208], "f": 0, "t": 479, "d": [104,392], "a": 1 }, + { "px": [32,272], "src": [192,208], "f": 0, "t": 480, "d": [104,393], "a": 1 }, + { "px": [352,272], "src": [176,208], "f": 0, "t": 479, "d": [104,413], "a": 1 }, + { "px": [0,288], "src": [192,208], "f": 0, "t": 480, "d": [104,414], "a": 1 }, + { "px": [16,288], "src": [208,208], "f": 0, "t": 481, "d": [104,415], "a": 1 }, + { "px": [32,288], "src": [176,208], "f": 0, "t": 479, "d": [104,416], "a": 1 }, + { "px": [352,288], "src": [176,208], "f": 0, "t": 479, "d": [104,436], "a": 1 }, + { "px": [0,304], "src": [192,208], "f": 0, "t": 480, "d": [104,437], "a": 1 }, + { "px": [16,304], "src": [208,208], "f": 0, "t": 481, "d": [104,438], "a": 1 }, + { "px": [32,304], "src": [208,208], "f": 0, "t": 481, "d": [104,439], "a": 1 }, + { "px": [48,304], "src": [176,208], "f": 0, "t": 479, "d": [104,440], "a": 1 }, + { "px": [80,304], "src": [176,208], "f": 0, "t": 479, "d": [104,442], "a": 1 }, + { "px": [112,304], "src": [208,208], "f": 0, "t": 481, "d": [104,444], "a": 1 }, + { "px": [320,304], "src": [176,208], "f": 0, "t": 479, "d": [104,457], "a": 1 }, + { "px": [336,304], "src": [192,208], "f": 0, "t": 480, "d": [104,458], "a": 1 }, + { "px": [0,320], "src": [208,208], "f": 0, "t": 481, "d": [104,460], "a": 1 }, + { "px": [16,320], "src": [192,208], "f": 0, "t": 480, "d": [104,461], "a": 1 }, + { "px": [32,320], "src": [176,208], "f": 0, "t": 479, "d": [104,462], "a": 1 }, + { "px": [80,320], "src": [176,208], "f": 0, "t": 479, "d": [104,465], "a": 1 }, + { "px": [96,320], "src": [208,208], "f": 0, "t": 481, "d": [104,466], "a": 1 }, + { "px": [160,320], "src": [208,208], "f": 0, "t": 481, "d": [104,470], "a": 1 }, + { "px": [288,320], "src": [208,208], "f": 0, "t": 481, "d": [104,478], "a": 1 }, + { "px": [352,320], "src": [176,208], "f": 0, "t": 479, "d": [104,482], "a": 1 }, + { "px": [0,336], "src": [176,208], "f": 0, "t": 479, "d": [104,483], "a": 1 }, + { "px": [32,336], "src": [192,208], "f": 0, "t": 480, "d": [104,485], "a": 1 }, + { "px": [48,336], "src": [208,208], "f": 0, "t": 481, "d": [104,486], "a": 1 }, + { "px": [64,336], "src": [192,208], "f": 0, "t": 480, "d": [104,487], "a": 1 }, + { "px": [80,336], "src": [176,208], "f": 0, "t": 479, "d": [104,488], "a": 1 }, + { "px": [96,336], "src": [208,208], "f": 0, "t": 481, "d": [104,489], "a": 1 }, + { "px": [128,336], "src": [176,208], "f": 0, "t": 479, "d": [104,491], "a": 1 }, + { "px": [160,336], "src": [208,208], "f": 0, "t": 481, "d": [104,493], "a": 1 }, + { "px": [176,336], "src": [192,208], "f": 0, "t": 480, "d": [104,494], "a": 1 }, + { "px": [192,336], "src": [176,208], "f": 0, "t": 479, "d": [104,495], "a": 1 }, + { "px": [208,336], "src": [192,208], "f": 0, "t": 480, "d": [104,496], "a": 1 }, + { "px": [224,336], "src": [176,208], "f": 0, "t": 479, "d": [104,497], "a": 1 }, + { "px": [240,336], "src": [192,208], "f": 0, "t": 480, "d": [104,498], "a": 1 }, + { "px": [272,336], "src": [208,208], "f": 0, "t": 481, "d": [104,500], "a": 1 }, + { "px": [288,336], "src": [208,208], "f": 0, "t": 481, "d": [104,501], "a": 1 }, + { "px": [352,336], "src": [176,208], "f": 0, "t": 479, "d": [104,505], "a": 1 }, + { "px": [0,0], "src": [272,176], "f": 0, "t": 413, "d": [108,0], "a": 1 }, + { "px": [16,0], "src": [272,176], "f": 0, "t": 413, "d": [108,1], "a": 1 }, + { "px": [32,0], "src": [272,176], "f": 0, "t": 413, "d": [108,2], "a": 1 }, + { "px": [48,0], "src": [272,176], "f": 0, "t": 413, "d": [108,3], "a": 1 }, + { "px": [64,0], "src": [272,176], "f": 0, "t": 413, "d": [108,4], "a": 1 }, + { "px": [80,0], "src": [272,176], "f": 0, "t": 413, "d": [108,5], "a": 1 }, + { "px": [96,0], "src": [272,176], "f": 0, "t": 413, "d": [108,6], "a": 1 }, + { "px": [112,0], "src": [272,176], "f": 0, "t": 413, "d": [108,7], "a": 1 }, + { "px": [128,0], "src": [272,176], "f": 0, "t": 413, "d": [108,8], "a": 1 }, + { "px": [144,0], "src": [272,176], "f": 0, "t": 413, "d": [108,9], "a": 1 }, + { "px": [160,0], "src": [272,176], "f": 0, "t": 413, "d": [108,10], "a": 1 }, + { "px": [176,0], "src": [272,176], "f": 0, "t": 413, "d": [108,11], "a": 1 }, + { "px": [192,0], "src": [272,176], "f": 0, "t": 413, "d": [108,12], "a": 1 }, + { "px": [208,0], "src": [272,176], "f": 0, "t": 413, "d": [108,13], "a": 1 }, + { "px": [224,0], "src": [272,176], "f": 0, "t": 413, "d": [108,14], "a": 1 }, + { "px": [240,0], "src": [272,176], "f": 0, "t": 413, "d": [108,15], "a": 1 }, + { "px": [256,0], "src": [272,176], "f": 0, "t": 413, "d": [108,16], "a": 1 }, + { "px": [272,0], "src": [272,176], "f": 0, "t": 413, "d": [108,17], "a": 1 }, + { "px": [288,0], "src": [272,176], "f": 0, "t": 413, "d": [108,18], "a": 1 }, + { "px": [304,0], "src": [272,176], "f": 0, "t": 413, "d": [108,19], "a": 1 }, + { "px": [320,0], "src": [272,176], "f": 0, "t": 413, "d": [108,20], "a": 1 }, + { "px": [336,0], "src": [272,176], "f": 0, "t": 413, "d": [108,21], "a": 1 }, + { "px": [352,0], "src": [272,176], "f": 0, "t": 413, "d": [108,22], "a": 1 }, + { "px": [0,16], "src": [272,176], "f": 0, "t": 413, "d": [108,23], "a": 1 }, + { "px": [16,16], "src": [272,176], "f": 0, "t": 413, "d": [108,24], "a": 1 }, + { "px": [32,16], "src": [272,176], "f": 0, "t": 413, "d": [108,25], "a": 1 }, + { "px": [48,16], "src": [272,176], "f": 0, "t": 413, "d": [108,26], "a": 1 }, + { "px": [64,16], "src": [272,176], "f": 0, "t": 413, "d": [108,27], "a": 1 }, + { "px": [80,16], "src": [272,176], "f": 0, "t": 413, "d": [108,28], "a": 1 }, + { "px": [96,16], "src": [272,176], "f": 0, "t": 413, "d": [108,29], "a": 1 }, + { "px": [112,16], "src": [272,176], "f": 0, "t": 413, "d": [108,30], "a": 1 }, + { "px": [128,16], "src": [272,176], "f": 0, "t": 413, "d": [108,31], "a": 1 }, + { "px": [144,16], "src": [272,176], "f": 0, "t": 413, "d": [108,32], "a": 1 }, + { "px": [160,16], "src": [272,176], "f": 0, "t": 413, "d": [108,33], "a": 1 }, + { "px": [176,16], "src": [272,176], "f": 0, "t": 413, "d": [108,34], "a": 1 }, + { "px": [192,16], "src": [272,176], "f": 0, "t": 413, "d": [108,35], "a": 1 }, + { "px": [208,16], "src": [272,176], "f": 0, "t": 413, "d": [108,36], "a": 1 }, + { "px": [224,16], "src": [272,176], "f": 0, "t": 413, "d": [108,37], "a": 1 }, + { "px": [240,16], "src": [272,176], "f": 0, "t": 413, "d": [108,38], "a": 1 }, + { "px": [256,16], "src": [272,176], "f": 0, "t": 413, "d": [108,39], "a": 1 }, + { "px": [272,16], "src": [272,176], "f": 0, "t": 413, "d": [108,40], "a": 1 }, + { "px": [288,16], "src": [272,176], "f": 0, "t": 413, "d": [108,41], "a": 1 }, + { "px": [304,16], "src": [272,176], "f": 0, "t": 413, "d": [108,42], "a": 1 }, + { "px": [320,16], "src": [272,176], "f": 0, "t": 413, "d": [108,43], "a": 1 }, + { "px": [336,16], "src": [272,176], "f": 0, "t": 413, "d": [108,44], "a": 1 }, + { "px": [352,16], "src": [272,176], "f": 0, "t": 413, "d": [108,45], "a": 1 }, + { "px": [0,32], "src": [272,176], "f": 0, "t": 413, "d": [108,46], "a": 1 }, + { "px": [16,32], "src": [272,176], "f": 0, "t": 413, "d": [108,47], "a": 1 }, + { "px": [32,32], "src": [272,176], "f": 0, "t": 413, "d": [108,48], "a": 1 }, + { "px": [48,32], "src": [272,176], "f": 0, "t": 413, "d": [108,49], "a": 1 }, + { "px": [64,32], "src": [272,176], "f": 0, "t": 413, "d": [108,50], "a": 1 }, + { "px": [80,32], "src": [272,176], "f": 0, "t": 413, "d": [108,51], "a": 1 }, + { "px": [96,32], "src": [272,176], "f": 0, "t": 413, "d": [108,52], "a": 1 }, + { "px": [112,32], "src": [272,176], "f": 0, "t": 413, "d": [108,53], "a": 1 }, + { "px": [128,32], "src": [272,176], "f": 0, "t": 413, "d": [108,54], "a": 1 }, + { "px": [144,32], "src": [272,176], "f": 0, "t": 413, "d": [108,55], "a": 1 }, + { "px": [160,32], "src": [272,176], "f": 0, "t": 413, "d": [108,56], "a": 1 }, + { "px": [176,32], "src": [272,176], "f": 0, "t": 413, "d": [108,57], "a": 1 }, + { "px": [192,32], "src": [272,176], "f": 0, "t": 413, "d": [108,58], "a": 1 }, + { "px": [208,32], "src": [272,176], "f": 0, "t": 413, "d": [108,59], "a": 1 }, + { "px": [224,32], "src": [272,176], "f": 0, "t": 413, "d": [108,60], "a": 1 }, + { "px": [240,32], "src": [272,176], "f": 0, "t": 413, "d": [108,61], "a": 1 }, + { "px": [256,32], "src": [272,176], "f": 0, "t": 413, "d": [108,62], "a": 1 }, + { "px": [272,32], "src": [272,176], "f": 0, "t": 413, "d": [108,63], "a": 1 }, + { "px": [288,32], "src": [272,176], "f": 0, "t": 413, "d": [108,64], "a": 1 }, + { "px": [304,32], "src": [272,176], "f": 0, "t": 413, "d": [108,65], "a": 1 }, + { "px": [320,32], "src": [272,176], "f": 0, "t": 413, "d": [108,66], "a": 1 }, + { "px": [336,32], "src": [272,176], "f": 0, "t": 413, "d": [108,67], "a": 1 }, + { "px": [352,32], "src": [272,176], "f": 0, "t": 413, "d": [108,68], "a": 1 }, + { "px": [0,48], "src": [272,176], "f": 0, "t": 413, "d": [108,69], "a": 1 }, + { "px": [16,48], "src": [272,176], "f": 0, "t": 413, "d": [108,70], "a": 1 }, + { "px": [32,48], "src": [272,176], "f": 0, "t": 413, "d": [108,71], "a": 1 }, + { "px": [48,48], "src": [272,176], "f": 0, "t": 413, "d": [108,72], "a": 1 }, + { "px": [64,48], "src": [272,176], "f": 0, "t": 413, "d": [108,73], "a": 1 }, + { "px": [80,48], "src": [272,176], "f": 0, "t": 413, "d": [108,74], "a": 1 }, + { "px": [160,48], "src": [272,176], "f": 0, "t": 413, "d": [108,79], "a": 1 }, + { "px": [176,48], "src": [272,176], "f": 0, "t": 413, "d": [108,80], "a": 1 }, + { "px": [192,48], "src": [272,176], "f": 0, "t": 413, "d": [108,81], "a": 1 }, + { "px": [208,48], "src": [272,176], "f": 0, "t": 413, "d": [108,82], "a": 1 }, + { "px": [224,48], "src": [272,176], "f": 0, "t": 413, "d": [108,83], "a": 1 }, + { "px": [240,48], "src": [272,176], "f": 0, "t": 413, "d": [108,84], "a": 1 }, + { "px": [256,48], "src": [272,176], "f": 0, "t": 413, "d": [108,85], "a": 1 }, + { "px": [272,48], "src": [272,176], "f": 0, "t": 413, "d": [108,86], "a": 1 }, + { "px": [288,48], "src": [272,176], "f": 0, "t": 413, "d": [108,87], "a": 1 }, + { "px": [304,48], "src": [272,176], "f": 0, "t": 413, "d": [108,88], "a": 1 }, + { "px": [320,48], "src": [272,176], "f": 0, "t": 413, "d": [108,89], "a": 1 }, + { "px": [336,48], "src": [272,176], "f": 0, "t": 413, "d": [108,90], "a": 1 }, + { "px": [352,48], "src": [272,176], "f": 0, "t": 413, "d": [108,91], "a": 1 }, + { "px": [0,64], "src": [272,176], "f": 0, "t": 413, "d": [108,92], "a": 1 }, + { "px": [16,64], "src": [272,176], "f": 0, "t": 413, "d": [108,93], "a": 1 }, + { "px": [32,64], "src": [272,176], "f": 0, "t": 413, "d": [108,94], "a": 1 }, + { "px": [48,64], "src": [272,176], "f": 0, "t": 413, "d": [108,95], "a": 1 }, + { "px": [64,64], "src": [272,176], "f": 0, "t": 413, "d": [108,96], "a": 1 }, + { "px": [224,64], "src": [272,176], "f": 0, "t": 413, "d": [108,106], "a": 1 }, + { "px": [240,64], "src": [272,176], "f": 0, "t": 413, "d": [108,107], "a": 1 }, + { "px": [256,64], "src": [272,176], "f": 0, "t": 413, "d": [108,108], "a": 1 }, + { "px": [272,64], "src": [272,176], "f": 0, "t": 413, "d": [108,109], "a": 1 }, + { "px": [288,64], "src": [272,176], "f": 0, "t": 413, "d": [108,110], "a": 1 }, + { "px": [304,64], "src": [272,176], "f": 0, "t": 413, "d": [108,111], "a": 1 }, + { "px": [320,64], "src": [272,176], "f": 0, "t": 413, "d": [108,112], "a": 1 }, + { "px": [336,64], "src": [272,176], "f": 0, "t": 413, "d": [108,113], "a": 1 }, + { "px": [352,64], "src": [272,176], "f": 0, "t": 413, "d": [108,114], "a": 1 }, + { "px": [0,80], "src": [272,176], "f": 0, "t": 413, "d": [108,115], "a": 1 }, + { "px": [16,80], "src": [272,176], "f": 0, "t": 413, "d": [108,116], "a": 1 }, + { "px": [32,80], "src": [272,176], "f": 0, "t": 413, "d": [108,117], "a": 1 }, + { "px": [48,80], "src": [272,176], "f": 0, "t": 413, "d": [108,118], "a": 1 }, + { "px": [64,80], "src": [272,176], "f": 0, "t": 413, "d": [108,119], "a": 1 }, + { "px": [320,80], "src": [272,176], "f": 0, "t": 413, "d": [108,135], "a": 1 }, + { "px": [336,80], "src": [272,176], "f": 0, "t": 413, "d": [108,136], "a": 1 }, + { "px": [352,80], "src": [272,176], "f": 0, "t": 413, "d": [108,137], "a": 1 }, + { "px": [0,96], "src": [272,176], "f": 0, "t": 413, "d": [108,138], "a": 1 }, + { "px": [16,96], "src": [272,176], "f": 0, "t": 413, "d": [108,139], "a": 1 }, + { "px": [32,96], "src": [272,176], "f": 0, "t": 413, "d": [108,140], "a": 1 }, + { "px": [48,96], "src": [272,176], "f": 0, "t": 413, "d": [108,141], "a": 1 }, + { "px": [320,96], "src": [272,176], "f": 0, "t": 413, "d": [108,158], "a": 1 }, + { "px": [336,96], "src": [272,176], "f": 0, "t": 413, "d": [108,159], "a": 1 }, + { "px": [352,96], "src": [272,176], "f": 0, "t": 413, "d": [108,160], "a": 1 }, + { "px": [0,112], "src": [272,176], "f": 0, "t": 413, "d": [108,161], "a": 1 }, + { "px": [16,112], "src": [272,176], "f": 0, "t": 413, "d": [108,162], "a": 1 }, + { "px": [32,112], "src": [272,176], "f": 0, "t": 413, "d": [108,163], "a": 1 }, + { "px": [336,112], "src": [272,176], "f": 0, "t": 413, "d": [108,182], "a": 1 }, + { "px": [352,112], "src": [272,176], "f": 0, "t": 413, "d": [108,183], "a": 1 }, + { "px": [0,192], "src": [272,176], "f": 0, "t": 413, "d": [108,276], "a": 1 }, + { "px": [336,192], "src": [272,176], "f": 0, "t": 413, "d": [108,297], "a": 1 }, + { "px": [352,192], "src": [272,176], "f": 0, "t": 413, "d": [108,298], "a": 1 }, + { "px": [0,208], "src": [272,176], "f": 0, "t": 413, "d": [108,299], "a": 1 }, + { "px": [16,208], "src": [272,176], "f": 0, "t": 413, "d": [108,300], "a": 1 }, + { "px": [320,208], "src": [272,176], "f": 0, "t": 413, "d": [108,319], "a": 1 }, + { "px": [336,208], "src": [272,176], "f": 0, "t": 413, "d": [108,320], "a": 1 }, + { "px": [352,208], "src": [272,176], "f": 0, "t": 413, "d": [108,321], "a": 1 }, + { "px": [0,224], "src": [272,176], "f": 0, "t": 413, "d": [108,322], "a": 1 }, + { "px": [16,224], "src": [272,176], "f": 0, "t": 413, "d": [108,323], "a": 1 }, + { "px": [32,224], "src": [272,176], "f": 0, "t": 413, "d": [108,324], "a": 1 }, + { "px": [320,224], "src": [272,176], "f": 0, "t": 413, "d": [108,342], "a": 1 }, + { "px": [336,224], "src": [272,176], "f": 0, "t": 413, "d": [108,343], "a": 1 }, + { "px": [352,224], "src": [272,176], "f": 0, "t": 413, "d": [108,344], "a": 1 }, + { "px": [0,240], "src": [272,176], "f": 0, "t": 413, "d": [108,345], "a": 1 }, + { "px": [16,240], "src": [272,176], "f": 0, "t": 413, "d": [108,346], "a": 1 }, + { "px": [32,240], "src": [272,176], "f": 0, "t": 413, "d": [108,347], "a": 1 }, + { "px": [336,240], "src": [272,176], "f": 0, "t": 413, "d": [108,366], "a": 1 }, + { "px": [352,240], "src": [272,176], "f": 0, "t": 413, "d": [108,367], "a": 1 }, + { "px": [0,256], "src": [272,176], "f": 0, "t": 413, "d": [108,368], "a": 1 }, + { "px": [16,256], "src": [272,176], "f": 0, "t": 413, "d": [108,369], "a": 1 }, + { "px": [32,256], "src": [272,176], "f": 0, "t": 413, "d": [108,370], "a": 1 }, + { "px": [336,256], "src": [272,176], "f": 0, "t": 413, "d": [108,389], "a": 1 }, + { "px": [352,256], "src": [272,176], "f": 0, "t": 413, "d": [108,390], "a": 1 }, + { "px": [0,272], "src": [272,176], "f": 0, "t": 413, "d": [108,391], "a": 1 }, + { "px": [16,272], "src": [272,176], "f": 0, "t": 413, "d": [108,392], "a": 1 }, + { "px": [32,272], "src": [272,176], "f": 0, "t": 413, "d": [108,393], "a": 1 }, + { "px": [48,272], "src": [272,176], "f": 0, "t": 413, "d": [108,394], "a": 1 }, + { "px": [64,272], "src": [272,176], "f": 0, "t": 413, "d": [108,395], "a": 1 }, + { "px": [336,272], "src": [272,176], "f": 0, "t": 413, "d": [108,412], "a": 1 }, + { "px": [352,272], "src": [272,176], "f": 0, "t": 413, "d": [108,413], "a": 1 }, + { "px": [0,288], "src": [272,176], "f": 0, "t": 413, "d": [108,414], "a": 1 }, + { "px": [16,288], "src": [272,176], "f": 0, "t": 413, "d": [108,415], "a": 1 }, + { "px": [32,288], "src": [272,176], "f": 0, "t": 413, "d": [108,416], "a": 1 }, + { "px": [48,288], "src": [272,176], "f": 0, "t": 413, "d": [108,417], "a": 1 }, + { "px": [64,288], "src": [272,176], "f": 0, "t": 413, "d": [108,418], "a": 1 }, + { "px": [80,288], "src": [272,176], "f": 0, "t": 413, "d": [108,419], "a": 1 }, + { "px": [96,288], "src": [272,176], "f": 0, "t": 413, "d": [108,420], "a": 1 }, + { "px": [336,288], "src": [272,176], "f": 0, "t": 413, "d": [108,435], "a": 1 }, + { "px": [352,288], "src": [272,176], "f": 0, "t": 413, "d": [108,436], "a": 1 }, + { "px": [0,304], "src": [272,176], "f": 0, "t": 413, "d": [108,437], "a": 1 }, + { "px": [16,304], "src": [272,176], "f": 0, "t": 413, "d": [108,438], "a": 1 }, + { "px": [32,304], "src": [272,176], "f": 0, "t": 413, "d": [108,439], "a": 1 }, + { "px": [48,304], "src": [272,176], "f": 0, "t": 413, "d": [108,440], "a": 1 }, + { "px": [64,304], "src": [272,176], "f": 0, "t": 413, "d": [108,441], "a": 1 }, + { "px": [80,304], "src": [272,176], "f": 0, "t": 413, "d": [108,442], "a": 1 }, + { "px": [96,304], "src": [272,176], "f": 0, "t": 413, "d": [108,443], "a": 1 }, + { "px": [112,304], "src": [272,176], "f": 0, "t": 413, "d": [108,444], "a": 1 }, + { "px": [128,304], "src": [272,176], "f": 0, "t": 413, "d": [108,445], "a": 1 }, + { "px": [144,304], "src": [272,176], "f": 0, "t": 413, "d": [108,446], "a": 1 }, + { "px": [288,304], "src": [272,176], "f": 0, "t": 413, "d": [108,455], "a": 1 }, + { "px": [304,304], "src": [272,176], "f": 0, "t": 413, "d": [108,456], "a": 1 }, + { "px": [320,304], "src": [272,176], "f": 0, "t": 413, "d": [108,457], "a": 1 }, + { "px": [336,304], "src": [272,176], "f": 0, "t": 413, "d": [108,458], "a": 1 }, + { "px": [352,304], "src": [272,176], "f": 0, "t": 413, "d": [108,459], "a": 1 }, + { "px": [0,320], "src": [272,176], "f": 0, "t": 413, "d": [108,460], "a": 1 }, + { "px": [16,320], "src": [272,176], "f": 0, "t": 413, "d": [108,461], "a": 1 }, + { "px": [32,320], "src": [272,176], "f": 0, "t": 413, "d": [108,462], "a": 1 }, + { "px": [48,320], "src": [272,176], "f": 0, "t": 413, "d": [108,463], "a": 1 }, + { "px": [64,320], "src": [272,176], "f": 0, "t": 413, "d": [108,464], "a": 1 }, + { "px": [80,320], "src": [272,176], "f": 0, "t": 413, "d": [108,465], "a": 1 }, + { "px": [96,320], "src": [272,176], "f": 0, "t": 413, "d": [108,466], "a": 1 }, + { "px": [112,320], "src": [272,176], "f": 0, "t": 413, "d": [108,467], "a": 1 }, + { "px": [128,320], "src": [272,176], "f": 0, "t": 413, "d": [108,468], "a": 1 }, + { "px": [144,320], "src": [272,176], "f": 0, "t": 413, "d": [108,469], "a": 1 }, + { "px": [160,320], "src": [272,176], "f": 0, "t": 413, "d": [108,470], "a": 1 }, + { "px": [176,320], "src": [272,176], "f": 0, "t": 413, "d": [108,471], "a": 1 }, + { "px": [192,320], "src": [272,176], "f": 0, "t": 413, "d": [108,472], "a": 1 }, + { "px": [208,320], "src": [272,176], "f": 0, "t": 413, "d": [108,473], "a": 1 }, + { "px": [224,320], "src": [272,176], "f": 0, "t": 413, "d": [108,474], "a": 1 }, + { "px": [240,320], "src": [272,176], "f": 0, "t": 413, "d": [108,475], "a": 1 }, + { "px": [256,320], "src": [272,176], "f": 0, "t": 413, "d": [108,476], "a": 1 }, + { "px": [272,320], "src": [272,176], "f": 0, "t": 413, "d": [108,477], "a": 1 }, + { "px": [288,320], "src": [272,176], "f": 0, "t": 413, "d": [108,478], "a": 1 }, + { "px": [304,320], "src": [272,176], "f": 0, "t": 413, "d": [108,479], "a": 1 }, + { "px": [320,320], "src": [272,176], "f": 0, "t": 413, "d": [108,480], "a": 1 }, + { "px": [336,320], "src": [272,176], "f": 0, "t": 413, "d": [108,481], "a": 1 }, + { "px": [352,320], "src": [272,176], "f": 0, "t": 413, "d": [108,482], "a": 1 }, + { "px": [0,336], "src": [272,176], "f": 0, "t": 413, "d": [108,483], "a": 1 }, + { "px": [16,336], "src": [272,176], "f": 0, "t": 413, "d": [108,484], "a": 1 }, + { "px": [32,336], "src": [272,176], "f": 0, "t": 413, "d": [108,485], "a": 1 }, + { "px": [48,336], "src": [272,176], "f": 0, "t": 413, "d": [108,486], "a": 1 }, + { "px": [64,336], "src": [272,176], "f": 0, "t": 413, "d": [108,487], "a": 1 }, + { "px": [80,336], "src": [272,176], "f": 0, "t": 413, "d": [108,488], "a": 1 }, + { "px": [96,336], "src": [272,176], "f": 0, "t": 413, "d": [108,489], "a": 1 }, + { "px": [112,336], "src": [272,176], "f": 0, "t": 413, "d": [108,490], "a": 1 }, + { "px": [128,336], "src": [272,176], "f": 0, "t": 413, "d": [108,491], "a": 1 }, + { "px": [144,336], "src": [272,176], "f": 0, "t": 413, "d": [108,492], "a": 1 }, + { "px": [160,336], "src": [272,176], "f": 0, "t": 413, "d": [108,493], "a": 1 }, + { "px": [176,336], "src": [272,176], "f": 0, "t": 413, "d": [108,494], "a": 1 }, + { "px": [192,336], "src": [272,176], "f": 0, "t": 413, "d": [108,495], "a": 1 }, + { "px": [208,336], "src": [272,176], "f": 0, "t": 413, "d": [108,496], "a": 1 }, + { "px": [224,336], "src": [272,176], "f": 0, "t": 413, "d": [108,497], "a": 1 }, + { "px": [240,336], "src": [272,176], "f": 0, "t": 413, "d": [108,498], "a": 1 }, + { "px": [256,336], "src": [272,176], "f": 0, "t": 413, "d": [108,499], "a": 1 }, + { "px": [272,336], "src": [272,176], "f": 0, "t": 413, "d": [108,500], "a": 1 }, + { "px": [288,336], "src": [272,176], "f": 0, "t": 413, "d": [108,501], "a": 1 }, + { "px": [304,336], "src": [272,176], "f": 0, "t": 413, "d": [108,502], "a": 1 }, + { "px": [320,336], "src": [272,176], "f": 0, "t": 413, "d": [108,503], "a": 1 }, + { "px": [336,336], "src": [272,176], "f": 0, "t": 413, "d": [108,504], "a": 1 }, + { "px": [352,336], "src": [272,176], "f": 0, "t": 413, "d": [108,505], "a": 1 }, + { "px": [96,48], "src": [272,192], "f": 0, "t": 449, "d": [109,75], "a": 1 }, + { "px": [144,48], "src": [272,192], "f": 1, "t": 449, "d": [109,78], "a": 1 }, + { "px": [80,64], "src": [272,192], "f": 0, "t": 449, "d": [109,97], "a": 1 }, + { "px": [208,64], "src": [272,192], "f": 1, "t": 449, "d": [109,105], "a": 1 }, + { "px": [240,80], "src": [272,192], "f": 0, "t": 449, "d": [109,130], "a": 1 }, + { "px": [240,80], "src": [272,192], "f": 1, "t": 449, "d": [109,130], "a": 1 }, + { "px": [304,80], "src": [272,192], "f": 1, "t": 449, "d": [109,134], "a": 1 }, + { "px": [64,96], "src": [272,192], "f": 0, "t": 449, "d": [109,142], "a": 1 }, + { "px": [48,112], "src": [272,192], "f": 0, "t": 449, "d": [109,164], "a": 1 }, + { "px": [320,112], "src": [272,192], "f": 1, "t": 449, "d": [109,181], "a": 1 }, + { "px": [16,192], "src": [272,192], "f": 2, "t": 449, "d": [109,277], "a": 1 }, + { "px": [320,192], "src": [272,192], "f": 3, "t": 449, "d": [109,296], "a": 1 }, + { "px": [32,208], "src": [272,192], "f": 2, "t": 449, "d": [109,301], "a": 1 }, + { "px": [160,224], "src": [272,192], "f": 1, "t": 449, "d": [109,332], "a": 1 }, + { "px": [320,240], "src": [272,192], "f": 1, "t": 449, "d": [109,365], "a": 1 }, + { "px": [48,256], "src": [272,192], "f": 2, "t": 449, "d": [109,371], "a": 1 }, + { "px": [80,272], "src": [272,192], "f": 2, "t": 449, "d": [109,396], "a": 1 }, + { "px": [112,288], "src": [272,192], "f": 2, "t": 449, "d": [109,421], "a": 1 }, + { "px": [320,288], "src": [272,192], "f": 3, "t": 449, "d": [109,434], "a": 1 }, + { "px": [160,304], "src": [272,192], "f": 2, "t": 449, "d": [109,447], "a": 1 }, + { "px": [272,304], "src": [272,192], "f": 3, "t": 449, "d": [109,454], "a": 1 } + ], + "seed": 7025252, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 23, + "__cHei": 22, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35992e4-66b0-11ec-9cd7-c3a442bb9374", + "levelId": 0, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [160,80], "src": [48,192], "f": 0, "t": 435, "d": [51,125], "a": 1 }, + { "px": [176,80], "src": [48,192], "f": 0, "t": 435, "d": [51,126], "a": 1 }, + { "px": [144,96], "src": [64,192], "f": 0, "t": 436, "d": [51,147], "a": 1 }, + { "px": [160,96], "src": [48,192], "f": 0, "t": 435, "d": [51,148], "a": 1 }, + { "px": [176,96], "src": [80,192], "f": 0, "t": 437, "d": [51,149], "a": 1 }, + { "px": [272,96], "src": [48,192], "f": 0, "t": 435, "d": [51,155], "a": 1 }, + { "px": [80,112], "src": [80,192], "f": 0, "t": 437, "d": [51,166], "a": 1 }, + { "px": [160,112], "src": [48,192], "f": 0, "t": 435, "d": [51,171], "a": 1 }, + { "px": [80,128], "src": [80,192], "f": 0, "t": 437, "d": [51,189], "a": 1 }, + { "px": [32,144], "src": [48,192], "f": 0, "t": 435, "d": [51,209], "a": 1 }, + { "px": [48,144], "src": [64,192], "f": 0, "t": 436, "d": [51,210], "a": 1 }, + { "px": [80,144], "src": [64,192], "f": 0, "t": 436, "d": [51,212], "a": 1 }, + { "px": [16,160], "src": [64,192], "f": 0, "t": 436, "d": [51,231], "a": 1 }, + { "px": [80,160], "src": [48,192], "f": 0, "t": 435, "d": [51,235], "a": 1 }, + { "px": [96,160], "src": [80,192], "f": 0, "t": 437, "d": [51,236], "a": 1 }, + { "px": [144,160], "src": [80,192], "f": 0, "t": 437, "d": [51,239], "a": 1 }, + { "px": [176,160], "src": [64,192], "f": 0, "t": 436, "d": [51,241], "a": 1 }, + { "px": [224,160], "src": [80,192], "f": 0, "t": 437, "d": [51,244], "a": 1 }, + { "px": [288,160], "src": [48,192], "f": 0, "t": 435, "d": [51,248], "a": 1 }, + { "px": [304,160], "src": [64,192], "f": 0, "t": 436, "d": [51,249], "a": 1 }, + { "px": [48,176], "src": [80,192], "f": 0, "t": 437, "d": [51,256], "a": 1 }, + { "px": [144,176], "src": [48,192], "f": 0, "t": 435, "d": [51,262], "a": 1 }, + { "px": [160,176], "src": [80,192], "f": 0, "t": 437, "d": [51,263], "a": 1 }, + { "px": [208,176], "src": [80,192], "f": 0, "t": 437, "d": [51,266], "a": 1 }, + { "px": [224,176], "src": [80,192], "f": 0, "t": 437, "d": [51,267], "a": 1 }, + { "px": [240,176], "src": [64,192], "f": 0, "t": 436, "d": [51,268], "a": 1 }, + { "px": [272,176], "src": [64,192], "f": 0, "t": 436, "d": [51,270], "a": 1 }, + { "px": [288,176], "src": [80,192], "f": 0, "t": 437, "d": [51,271], "a": 1 }, + { "px": [80,192], "src": [80,192], "f": 0, "t": 437, "d": [51,281], "a": 1 }, + { "px": [144,192], "src": [48,192], "f": 0, "t": 435, "d": [51,285], "a": 1 }, + { "px": [160,192], "src": [64,192], "f": 0, "t": 436, "d": [51,286], "a": 1 }, + { "px": [224,192], "src": [48,192], "f": 0, "t": 435, "d": [51,290], "a": 1 }, + { "px": [240,192], "src": [64,192], "f": 0, "t": 436, "d": [51,291], "a": 1 }, + { "px": [288,192], "src": [80,192], "f": 0, "t": 437, "d": [51,294], "a": 1 }, + { "px": [112,208], "src": [48,192], "f": 0, "t": 435, "d": [51,306], "a": 1 }, + { "px": [176,208], "src": [80,192], "f": 0, "t": 437, "d": [51,310], "a": 1 }, + { "px": [240,208], "src": [64,192], "f": 0, "t": 436, "d": [51,314], "a": 1 }, + { "px": [272,208], "src": [64,192], "f": 0, "t": 436, "d": [51,316], "a": 1 }, + { "px": [288,208], "src": [48,192], "f": 0, "t": 435, "d": [51,317], "a": 1 }, + { "px": [96,224], "src": [64,192], "f": 0, "t": 436, "d": [51,328], "a": 1 }, + { "px": [272,224], "src": [80,192], "f": 0, "t": 437, "d": [51,339], "a": 1 }, + { "px": [288,224], "src": [80,192], "f": 0, "t": 437, "d": [51,340], "a": 1 }, + { "px": [80,240], "src": [80,192], "f": 0, "t": 437, "d": [51,350], "a": 1 }, + { "px": [96,240], "src": [64,192], "f": 0, "t": 436, "d": [51,351], "a": 1 }, + { "px": [112,240], "src": [80,192], "f": 0, "t": 437, "d": [51,352], "a": 1 }, + { "px": [256,240], "src": [80,192], "f": 0, "t": 437, "d": [51,361], "a": 1 }, + { "px": [272,240], "src": [64,192], "f": 0, "t": 436, "d": [51,362], "a": 1 }, + { "px": [112,256], "src": [48,192], "f": 0, "t": 435, "d": [51,375], "a": 1 }, + { "px": [128,256], "src": [64,192], "f": 0, "t": 436, "d": [51,376], "a": 1 }, + { "px": [144,256], "src": [64,192], "f": 0, "t": 436, "d": [51,377], "a": 1 }, + { "px": [160,256], "src": [64,192], "f": 0, "t": 436, "d": [51,378], "a": 1 }, + { "px": [256,256], "src": [48,192], "f": 0, "t": 435, "d": [51,384], "a": 1 }, + { "px": [272,256], "src": [64,192], "f": 0, "t": 436, "d": [51,385], "a": 1 }, + { "px": [288,256], "src": [64,192], "f": 0, "t": 436, "d": [51,386], "a": 1 }, + { "px": [304,256], "src": [48,192], "f": 0, "t": 435, "d": [51,387], "a": 1 }, + { "px": [144,272], "src": [48,192], "f": 0, "t": 435, "d": [51,400], "a": 1 }, + { "px": [160,272], "src": [64,192], "f": 0, "t": 436, "d": [51,401], "a": 1 }, + { "px": [240,272], "src": [64,192], "f": 0, "t": 436, "d": [51,406], "a": 1 }, + { "px": [256,272], "src": [48,192], "f": 0, "t": 435, "d": [51,407], "a": 1 }, + { "px": [272,272], "src": [80,192], "f": 0, "t": 437, "d": [51,408], "a": 1 }, + { "px": [288,272], "src": [48,192], "f": 0, "t": 435, "d": [51,409], "a": 1 }, + { "px": [240,288], "src": [64,192], "f": 0, "t": 436, "d": [51,429], "a": 1 }, + { "px": [256,288], "src": [48,192], "f": 0, "t": 435, "d": [51,430], "a": 1 }, + { "px": [96,96], "src": [128,192], "f": 0, "t": 440, "d": [85,144], "a": 1 }, + { "px": [176,112], "src": [112,192], "f": 0, "t": 439, "d": [85,172], "a": 1 }, + { "px": [16,144], "src": [128,192], "f": 0, "t": 440, "d": [85,208], "a": 1 }, + { "px": [336,144], "src": [96,192], "f": 0, "t": 438, "d": [85,228], "a": 1 }, + { "px": [160,160], "src": [112,192], "f": 0, "t": 439, "d": [85,240], "a": 1 }, + { "px": [240,160], "src": [112,192], "f": 0, "t": 439, "d": [85,245], "a": 1 }, + { "px": [336,160], "src": [112,192], "f": 0, "t": 439, "d": [85,251], "a": 1 }, + { "px": [80,176], "src": [96,192], "f": 0, "t": 438, "d": [85,258], "a": 1 }, + { "px": [96,176], "src": [112,192], "f": 0, "t": 439, "d": [85,259], "a": 1 }, + { "px": [176,176], "src": [128,192], "f": 0, "t": 440, "d": [85,264], "a": 1 }, + { "px": [176,192], "src": [96,192], "f": 0, "t": 438, "d": [85,287], "a": 1 }, + { "px": [112,224], "src": [112,192], "f": 0, "t": 439, "d": [85,329], "a": 1 }, + { "px": [112,64], "src": [16,192], "f": 0, "t": 433, "d": [102,99], "a": 1 }, + { "px": [96,80], "src": [16,192], "f": 0, "t": 433, "d": [102,121], "a": 1 }, + { "px": [112,80], "src": [16,192], "f": 0, "t": 433, "d": [102,122], "a": 1 }, + { "px": [144,80], "src": [32,192], "f": 0, "t": 434, "d": [102,124], "a": 1 }, + { "px": [112,96], "src": [0,192], "f": 0, "t": 432, "d": [102,145], "a": 1 }, + { "px": [208,96], "src": [16,192], "f": 0, "t": 433, "d": [102,151], "a": 1 }, + { "px": [224,96], "src": [16,192], "f": 0, "t": 433, "d": [102,152], "a": 1 }, + { "px": [288,96], "src": [32,192], "f": 0, "t": 434, "d": [102,156], "a": 1 }, + { "px": [96,112], "src": [16,192], "f": 0, "t": 433, "d": [102,167], "a": 1 }, + { "px": [112,112], "src": [32,192], "f": 0, "t": 434, "d": [102,168], "a": 1 }, + { "px": [144,112], "src": [16,192], "f": 0, "t": 433, "d": [102,170], "a": 1 }, + { "px": [208,112], "src": [32,192], "f": 0, "t": 434, "d": [102,174], "a": 1 }, + { "px": [224,112], "src": [32,192], "f": 0, "t": 434, "d": [102,175], "a": 1 }, + { "px": [240,112], "src": [0,192], "f": 0, "t": 432, "d": [102,176], "a": 1 }, + { "px": [272,112], "src": [32,192], "f": 0, "t": 434, "d": [102,178], "a": 1 }, + { "px": [288,112], "src": [16,192], "f": 0, "t": 433, "d": [102,179], "a": 1 }, + { "px": [96,128], "src": [32,192], "f": 0, "t": 434, "d": [102,190], "a": 1 }, + { "px": [112,128], "src": [32,192], "f": 0, "t": 434, "d": [102,191], "a": 1 }, + { "px": [144,128], "src": [0,192], "f": 0, "t": 432, "d": [102,193], "a": 1 }, + { "px": [160,128], "src": [32,192], "f": 0, "t": 434, "d": [102,194], "a": 1 }, + { "px": [176,128], "src": [32,192], "f": 0, "t": 434, "d": [102,195], "a": 1 }, + { "px": [208,128], "src": [32,192], "f": 0, "t": 434, "d": [102,197], "a": 1 }, + { "px": [224,128], "src": [32,192], "f": 0, "t": 434, "d": [102,198], "a": 1 }, + { "px": [240,128], "src": [32,192], "f": 0, "t": 434, "d": [102,199], "a": 1 }, + { "px": [272,128], "src": [0,192], "f": 0, "t": 432, "d": [102,201], "a": 1 }, + { "px": [288,128], "src": [0,192], "f": 0, "t": 432, "d": [102,202], "a": 1 }, + { "px": [304,128], "src": [0,192], "f": 0, "t": 432, "d": [102,203], "a": 1 }, + { "px": [96,144], "src": [16,192], "f": 0, "t": 433, "d": [102,213], "a": 1 }, + { "px": [112,144], "src": [0,192], "f": 0, "t": 432, "d": [102,214], "a": 1 }, + { "px": [144,144], "src": [32,192], "f": 0, "t": 434, "d": [102,216], "a": 1 }, + { "px": [160,144], "src": [0,192], "f": 0, "t": 432, "d": [102,217], "a": 1 }, + { "px": [176,144], "src": [16,192], "f": 0, "t": 433, "d": [102,218], "a": 1 }, + { "px": [208,144], "src": [0,192], "f": 0, "t": 432, "d": [102,220], "a": 1 }, + { "px": [224,144], "src": [32,192], "f": 0, "t": 434, "d": [102,221], "a": 1 }, + { "px": [240,144], "src": [0,192], "f": 0, "t": 432, "d": [102,222], "a": 1 }, + { "px": [272,144], "src": [0,192], "f": 0, "t": 432, "d": [102,224], "a": 1 }, + { "px": [288,144], "src": [16,192], "f": 0, "t": 433, "d": [102,225], "a": 1 }, + { "px": [304,144], "src": [32,192], "f": 0, "t": 434, "d": [102,226], "a": 1 }, + { "px": [352,144], "src": [0,192], "f": 0, "t": 432, "d": [102,229], "a": 1 }, + { "px": [32,160], "src": [32,192], "f": 0, "t": 434, "d": [102,232], "a": 1 }, + { "px": [48,160], "src": [32,192], "f": 0, "t": 434, "d": [102,233], "a": 1 }, + { "px": [112,160], "src": [32,192], "f": 0, "t": 434, "d": [102,237], "a": 1 }, + { "px": [208,160], "src": [32,192], "f": 0, "t": 434, "d": [102,243], "a": 1 }, + { "px": [272,160], "src": [16,192], "f": 0, "t": 433, "d": [102,247], "a": 1 }, + { "px": [352,160], "src": [16,192], "f": 0, "t": 433, "d": [102,252], "a": 1 }, + { "px": [32,176], "src": [0,192], "f": 0, "t": 432, "d": [102,255], "a": 1 }, + { "px": [112,176], "src": [32,192], "f": 0, "t": 434, "d": [102,260], "a": 1 }, + { "px": [304,176], "src": [0,192], "f": 0, "t": 432, "d": [102,272], "a": 1 }, + { "px": [48,192], "src": [32,192], "f": 0, "t": 434, "d": [102,279], "a": 1 }, + { "px": [96,192], "src": [16,192], "f": 0, "t": 433, "d": [102,282], "a": 1 }, + { "px": [112,192], "src": [0,192], "f": 0, "t": 432, "d": [102,283], "a": 1 }, + { "px": [208,192], "src": [32,192], "f": 0, "t": 434, "d": [102,289], "a": 1 }, + { "px": [272,192], "src": [0,192], "f": 0, "t": 432, "d": [102,293], "a": 1 }, + { "px": [80,208], "src": [32,192], "f": 0, "t": 434, "d": [102,304], "a": 1 }, + { "px": [96,208], "src": [0,192], "f": 0, "t": 432, "d": [102,305], "a": 1 }, + { "px": [144,208], "src": [0,192], "f": 0, "t": 432, "d": [102,308], "a": 1 }, + { "px": [160,208], "src": [16,192], "f": 0, "t": 433, "d": [102,309], "a": 1 }, + { "px": [208,208], "src": [0,192], "f": 0, "t": 432, "d": [102,312], "a": 1 }, + { "px": [224,208], "src": [0,192], "f": 0, "t": 432, "d": [102,313], "a": 1 }, + { "px": [80,224], "src": [32,192], "f": 0, "t": 434, "d": [102,327], "a": 1 }, + { "px": [64,240], "src": [32,192], "f": 0, "t": 434, "d": [102,349], "a": 1 }, + { "px": [128,240], "src": [16,192], "f": 0, "t": 433, "d": [102,353], "a": 1 }, + { "px": [144,240], "src": [0,192], "f": 0, "t": 432, "d": [102,354], "a": 1 }, + { "px": [288,240], "src": [0,192], "f": 0, "t": 432, "d": [102,363], "a": 1 }, + { "px": [96,256], "src": [0,192], "f": 0, "t": 432, "d": [102,374], "a": 1 }, + { "px": [176,256], "src": [16,192], "f": 0, "t": 433, "d": [102,379], "a": 1 }, + { "px": [192,256], "src": [0,192], "f": 0, "t": 432, "d": [102,380], "a": 1 }, + { "px": [208,256], "src": [16,192], "f": 0, "t": 433, "d": [102,381], "a": 1 }, + { "px": [224,256], "src": [16,192], "f": 0, "t": 433, "d": [102,382], "a": 1 }, + { "px": [240,256], "src": [16,192], "f": 0, "t": 433, "d": [102,383], "a": 1 }, + { "px": [128,272], "src": [32,192], "f": 0, "t": 434, "d": [102,399], "a": 1 }, + { "px": [176,272], "src": [0,192], "f": 0, "t": 432, "d": [102,402], "a": 1 }, + { "px": [192,272], "src": [32,192], "f": 0, "t": 434, "d": [102,403], "a": 1 }, + { "px": [208,272], "src": [32,192], "f": 0, "t": 434, "d": [102,404], "a": 1 }, + { "px": [224,272], "src": [32,192], "f": 0, "t": 434, "d": [102,405], "a": 1 }, + { "px": [304,272], "src": [32,192], "f": 0, "t": 434, "d": [102,410], "a": 1 }, + { "px": [176,288], "src": [32,192], "f": 0, "t": 434, "d": [102,425], "a": 1 }, + { "px": [192,288], "src": [16,192], "f": 0, "t": 433, "d": [102,426], "a": 1 }, + { "px": [208,288], "src": [32,192], "f": 0, "t": 434, "d": [102,427], "a": 1 }, + { "px": [224,288], "src": [16,192], "f": 0, "t": 433, "d": [102,428], "a": 1 }, + { "px": [128,64], "src": [160,208], "f": 0, "t": 478, "d": [70,100], "a": 1 }, + { "px": [128,80], "src": [160,208], "f": 0, "t": 478, "d": [70,123], "a": 1 }, + { "px": [192,80], "src": [160,208], "f": 0, "t": 478, "d": [70,127], "a": 1 }, + { "px": [128,96], "src": [160,208], "f": 0, "t": 478, "d": [70,146], "a": 1 }, + { "px": [192,96], "src": [160,208], "f": 0, "t": 478, "d": [70,150], "a": 1 }, + { "px": [256,96], "src": [160,208], "f": 0, "t": 478, "d": [70,154], "a": 1 }, + { "px": [128,112], "src": [160,208], "f": 0, "t": 478, "d": [70,169], "a": 1 }, + { "px": [192,112], "src": [160,208], "f": 0, "t": 478, "d": [70,173], "a": 1 }, + { "px": [256,112], "src": [160,208], "f": 0, "t": 478, "d": [70,177], "a": 1 }, + { "px": [64,128], "src": [160,208], "f": 0, "t": 478, "d": [70,188], "a": 1 }, + { "px": [128,128], "src": [160,208], "f": 0, "t": 478, "d": [70,192], "a": 1 }, + { "px": [192,128], "src": [160,208], "f": 0, "t": 478, "d": [70,196], "a": 1 }, + { "px": [256,128], "src": [160,208], "f": 0, "t": 478, "d": [70,200], "a": 1 }, + { "px": [0,144], "src": [160,208], "f": 0, "t": 478, "d": [70,207], "a": 1 }, + { "px": [64,144], "src": [160,208], "f": 0, "t": 478, "d": [70,211], "a": 1 }, + { "px": [128,144], "src": [160,208], "f": 0, "t": 478, "d": [70,215], "a": 1 }, + { "px": [192,144], "src": [160,208], "f": 0, "t": 478, "d": [70,219], "a": 1 }, + { "px": [256,144], "src": [160,208], "f": 0, "t": 478, "d": [70,223], "a": 1 }, + { "px": [320,144], "src": [160,208], "f": 0, "t": 478, "d": [70,227], "a": 1 }, + { "px": [0,160], "src": [160,208], "f": 0, "t": 478, "d": [70,230], "a": 1 }, + { "px": [64,160], "src": [160,208], "f": 0, "t": 478, "d": [70,234], "a": 1 }, + { "px": [128,160], "src": [160,208], "f": 0, "t": 478, "d": [70,238], "a": 1 }, + { "px": [192,160], "src": [160,208], "f": 0, "t": 478, "d": [70,242], "a": 1 }, + { "px": [256,160], "src": [160,208], "f": 0, "t": 478, "d": [70,246], "a": 1 }, + { "px": [320,160], "src": [160,208], "f": 0, "t": 478, "d": [70,250], "a": 1 }, + { "px": [64,176], "src": [160,208], "f": 0, "t": 478, "d": [70,257], "a": 1 }, + { "px": [128,176], "src": [160,208], "f": 0, "t": 478, "d": [70,261], "a": 1 }, + { "px": [192,176], "src": [160,208], "f": 0, "t": 478, "d": [70,265], "a": 1 }, + { "px": [256,176], "src": [160,208], "f": 0, "t": 478, "d": [70,269], "a": 1 }, + { "px": [64,192], "src": [160,208], "f": 0, "t": 478, "d": [70,280], "a": 1 }, + { "px": [128,192], "src": [160,208], "f": 0, "t": 478, "d": [70,284], "a": 1 }, + { "px": [192,192], "src": [160,208], "f": 0, "t": 478, "d": [70,288], "a": 1 }, + { "px": [256,192], "src": [160,208], "f": 0, "t": 478, "d": [70,292], "a": 1 }, + { "px": [64,208], "src": [160,208], "f": 0, "t": 478, "d": [70,303], "a": 1 }, + { "px": [128,208], "src": [160,208], "f": 0, "t": 478, "d": [70,307], "a": 1 }, + { "px": [192,208], "src": [160,208], "f": 0, "t": 478, "d": [70,311], "a": 1 }, + { "px": [256,208], "src": [160,208], "f": 0, "t": 478, "d": [70,315], "a": 1 }, + { "px": [64,224], "src": [160,208], "f": 0, "t": 478, "d": [70,326], "a": 1 }, + { "px": [128,224], "src": [160,208], "f": 0, "t": 478, "d": [70,330], "a": 1 }, + { "px": [256,224], "src": [160,208], "f": 0, "t": 478, "d": [70,338], "a": 1 }, + { "px": [112,80], "src": [240,176], "f": 0, "t": 411, "d": [91,122], "a": 1 }, + { "px": [128,80], "src": [240,176], "f": 1, "t": 411, "d": [91,123], "a": 1 }, + { "px": [192,96], "src": [240,176], "f": 1, "t": 411, "d": [91,150], "a": 1 }, + { "px": [96,112], "src": [240,176], "f": 0, "t": 411, "d": [91,167], "a": 1 }, + { "px": [224,112], "src": [240,176], "f": 1, "t": 411, "d": [91,175], "a": 1 }, + { "px": [256,112], "src": [240,176], "f": 0, "t": 411, "d": [91,177], "a": 1 }, + { "px": [80,128], "src": [240,176], "f": 0, "t": 411, "d": [91,189], "a": 1 }, + { "px": [288,128], "src": [240,176], "f": 1, "t": 411, "d": [91,202], "a": 1 }, + { "px": [64,144], "src": [240,176], "f": 0, "t": 411, "d": [91,211], "a": 1 }, + { "px": [304,144], "src": [240,176], "f": 1, "t": 411, "d": [91,226], "a": 1 }, + { "px": [32,160], "src": [240,176], "f": 2, "t": 411, "d": [91,232], "a": 1 }, + { "px": [304,160], "src": [240,176], "f": 3, "t": 411, "d": [91,249], "a": 1 }, + { "px": [48,176], "src": [240,176], "f": 2, "t": 411, "d": [91,256], "a": 1 }, + { "px": [288,176], "src": [240,176], "f": 3, "t": 411, "d": [91,271], "a": 1 }, + { "px": [64,192], "src": [240,176], "f": 2, "t": 411, "d": [91,280], "a": 1 }, + { "px": [128,208], "src": [240,176], "f": 3, "t": 411, "d": [91,307], "a": 1 }, + { "px": [256,208], "src": [240,176], "f": 2, "t": 411, "d": [91,315], "a": 1 }, + { "px": [96,240], "src": [240,176], "f": 2, "t": 411, "d": [91,351], "a": 1 }, + { "px": [128,240], "src": [240,176], "f": 1, "t": 411, "d": [91,353], "a": 1 }, + { "px": [128,256], "src": [240,176], "f": 2, "t": 411, "d": [91,376], "a": 1 }, + { "px": [144,256], "src": [240,176], "f": 1, "t": 411, "d": [91,377], "a": 1 }, + { "px": [256,256], "src": [240,176], "f": 0, "t": 411, "d": [91,384], "a": 1 }, + { "px": [288,256], "src": [240,176], "f": 1, "t": 411, "d": [91,386], "a": 1 }, + { "px": [176,272], "src": [240,176], "f": 2, "t": 411, "d": [91,402], "a": 1 }, + { "px": [256,272], "src": [240,176], "f": 3, "t": 411, "d": [91,407], "a": 1 }, + { "px": [112,64], "src": [208,176], "f": 0, "t": 409, "d": [89,99], "a": 1 }, + { "px": [128,64], "src": [208,176], "f": 1, "t": 409, "d": [89,100], "a": 1 }, + { "px": [96,80], "src": [208,176], "f": 0, "t": 409, "d": [89,121], "a": 1 }, + { "px": [192,80], "src": [208,176], "f": 1, "t": 409, "d": [89,127], "a": 1 }, + { "px": [96,96], "src": [208,176], "f": 0, "t": 409, "d": [89,144], "a": 1 }, + { "px": [224,96], "src": [208,176], "f": 1, "t": 409, "d": [89,152], "a": 1 }, + { "px": [256,96], "src": [208,176], "f": 0, "t": 409, "d": [89,154], "a": 1 }, + { "px": [288,96], "src": [208,176], "f": 1, "t": 409, "d": [89,156], "a": 1 }, + { "px": [80,112], "src": [208,176], "f": 0, "t": 409, "d": [89,166], "a": 1 }, + { "px": [288,112], "src": [208,176], "f": 1, "t": 409, "d": [89,179], "a": 1 }, + { "px": [64,128], "src": [208,176], "f": 0, "t": 409, "d": [89,188], "a": 1 }, + { "px": [304,128], "src": [208,176], "f": 1, "t": 409, "d": [89,203], "a": 1 }, + { "px": [32,176], "src": [208,176], "f": 0, "t": 409, "d": [89,255], "a": 1 }, + { "px": [304,176], "src": [208,176], "f": 1, "t": 409, "d": [89,272], "a": 1 }, + { "px": [48,192], "src": [208,176], "f": 0, "t": 409, "d": [89,279], "a": 1 }, + { "px": [288,192], "src": [208,176], "f": 1, "t": 409, "d": [89,294], "a": 1 }, + { "px": [64,208], "src": [208,176], "f": 0, "t": 409, "d": [89,303], "a": 1 }, + { "px": [288,208], "src": [208,176], "f": 1, "t": 409, "d": [89,317], "a": 1 }, + { "px": [64,224], "src": [208,176], "f": 0, "t": 409, "d": [89,326], "a": 1 }, + { "px": [128,224], "src": [208,176], "f": 1, "t": 409, "d": [89,330], "a": 1 }, + { "px": [256,224], "src": [208,176], "f": 0, "t": 409, "d": [89,338], "a": 1 }, + { "px": [288,224], "src": [208,176], "f": 1, "t": 409, "d": [89,340], "a": 1 }, + { "px": [64,240], "src": [208,176], "f": 0, "t": 409, "d": [89,349], "a": 1 }, + { "px": [144,240], "src": [208,176], "f": 1, "t": 409, "d": [89,354], "a": 1 }, + { "px": [256,240], "src": [208,176], "f": 0, "t": 409, "d": [89,361], "a": 1 }, + { "px": [288,240], "src": [208,176], "f": 1, "t": 409, "d": [89,363], "a": 1 }, + { "px": [96,256], "src": [208,176], "f": 0, "t": 409, "d": [89,374], "a": 1 }, + { "px": [304,256], "src": [208,176], "f": 1, "t": 409, "d": [89,387], "a": 1 }, + { "px": [128,272], "src": [208,176], "f": 0, "t": 409, "d": [89,399], "a": 1 }, + { "px": [304,272], "src": [208,176], "f": 1, "t": 409, "d": [89,410], "a": 1 }, + { "px": [176,288], "src": [208,176], "f": 0, "t": 409, "d": [89,425], "a": 1 }, + { "px": [256,288], "src": [208,176], "f": 1, "t": 409, "d": [89,430], "a": 1 }, + { "px": [112,64], "src": [224,176], "f": 0, "t": 410, "d": [88,99], "a": 1 }, + { "px": [128,64], "src": [224,176], "f": 0, "t": 410, "d": [88,100], "a": 1 }, + { "px": [96,80], "src": [224,176], "f": 0, "t": 410, "d": [88,121], "a": 1 }, + { "px": [144,80], "src": [224,176], "f": 0, "t": 410, "d": [88,124], "a": 1 }, + { "px": [160,80], "src": [224,176], "f": 0, "t": 410, "d": [88,125], "a": 1 }, + { "px": [176,80], "src": [224,176], "f": 0, "t": 410, "d": [88,126], "a": 1 }, + { "px": [192,80], "src": [224,176], "f": 0, "t": 410, "d": [88,127], "a": 1 }, + { "px": [208,96], "src": [224,176], "f": 0, "t": 410, "d": [88,151], "a": 1 }, + { "px": [224,96], "src": [224,176], "f": 0, "t": 410, "d": [88,152], "a": 1 }, + { "px": [256,96], "src": [224,176], "f": 0, "t": 410, "d": [88,154], "a": 1 }, + { "px": [272,96], "src": [224,176], "f": 0, "t": 410, "d": [88,155], "a": 1 }, + { "px": [288,96], "src": [224,176], "f": 0, "t": 410, "d": [88,156], "a": 1 }, + { "px": [80,112], "src": [224,176], "f": 0, "t": 410, "d": [88,166], "a": 1 }, + { "px": [240,112], "src": [224,176], "f": 0, "t": 410, "d": [88,176], "a": 1 }, + { "px": [64,128], "src": [224,176], "f": 0, "t": 410, "d": [88,188], "a": 1 }, + { "px": [304,128], "src": [224,176], "f": 0, "t": 410, "d": [88,203], "a": 1 }, + { "px": [0,144], "src": [224,176], "f": 0, "t": 410, "d": [88,207], "a": 1 }, + { "px": [16,144], "src": [224,176], "f": 0, "t": 410, "d": [88,208], "a": 1 }, + { "px": [32,144], "src": [224,176], "f": 0, "t": 410, "d": [88,209], "a": 1 }, + { "px": [48,144], "src": [224,176], "f": 0, "t": 410, "d": [88,210], "a": 1 }, + { "px": [320,144], "src": [224,176], "f": 0, "t": 410, "d": [88,227], "a": 1 }, + { "px": [336,144], "src": [224,176], "f": 0, "t": 410, "d": [88,228], "a": 1 }, + { "px": [352,144], "src": [224,176], "f": 0, "t": 410, "d": [88,229], "a": 1 }, + { "px": [0,160], "src": [224,176], "f": 2, "t": 410, "d": [88,230], "a": 1 }, + { "px": [16,160], "src": [224,176], "f": 2, "t": 410, "d": [88,231], "a": 1 }, + { "px": [320,160], "src": [224,176], "f": 2, "t": 410, "d": [88,250], "a": 1 }, + { "px": [336,160], "src": [224,176], "f": 2, "t": 410, "d": [88,251], "a": 1 }, + { "px": [352,160], "src": [224,176], "f": 2, "t": 410, "d": [88,252], "a": 1 }, + { "px": [32,176], "src": [224,176], "f": 2, "t": 410, "d": [88,255], "a": 1 }, + { "px": [304,176], "src": [224,176], "f": 2, "t": 410, "d": [88,272], "a": 1 }, + { "px": [48,192], "src": [224,176], "f": 2, "t": 410, "d": [88,279], "a": 1 }, + { "px": [144,208], "src": [224,176], "f": 2, "t": 410, "d": [88,308], "a": 1 }, + { "px": [160,208], "src": [224,176], "f": 2, "t": 410, "d": [88,309], "a": 1 }, + { "px": [176,208], "src": [224,176], "f": 2, "t": 410, "d": [88,310], "a": 1 }, + { "px": [192,208], "src": [224,176], "f": 2, "t": 410, "d": [88,311], "a": 1 }, + { "px": [208,208], "src": [224,176], "f": 2, "t": 410, "d": [88,312], "a": 1 }, + { "px": [224,208], "src": [224,176], "f": 2, "t": 410, "d": [88,313], "a": 1 }, + { "px": [240,208], "src": [224,176], "f": 2, "t": 410, "d": [88,314], "a": 1 }, + { "px": [64,240], "src": [224,176], "f": 2, "t": 410, "d": [88,349], "a": 1 }, + { "px": [80,240], "src": [224,176], "f": 2, "t": 410, "d": [88,350], "a": 1 }, + { "px": [144,240], "src": [224,176], "f": 0, "t": 410, "d": [88,354], "a": 1 }, + { "px": [96,256], "src": [224,176], "f": 2, "t": 410, "d": [88,374], "a": 1 }, + { "px": [112,256], "src": [224,176], "f": 2, "t": 410, "d": [88,375], "a": 1 }, + { "px": [160,256], "src": [224,176], "f": 0, "t": 410, "d": [88,378], "a": 1 }, + { "px": [176,256], "src": [224,176], "f": 0, "t": 410, "d": [88,379], "a": 1 }, + { "px": [192,256], "src": [224,176], "f": 0, "t": 410, "d": [88,380], "a": 1 }, + { "px": [208,256], "src": [224,176], "f": 0, "t": 410, "d": [88,381], "a": 1 }, + { "px": [224,256], "src": [224,176], "f": 0, "t": 410, "d": [88,382], "a": 1 }, + { "px": [240,256], "src": [224,176], "f": 0, "t": 410, "d": [88,383], "a": 1 }, + { "px": [304,256], "src": [224,176], "f": 0, "t": 410, "d": [88,387], "a": 1 }, + { "px": [128,272], "src": [224,176], "f": 2, "t": 410, "d": [88,399], "a": 1 }, + { "px": [144,272], "src": [224,176], "f": 2, "t": 410, "d": [88,400], "a": 1 }, + { "px": [160,272], "src": [224,176], "f": 2, "t": 410, "d": [88,401], "a": 1 }, + { "px": [272,272], "src": [224,176], "f": 2, "t": 410, "d": [88,408], "a": 1 }, + { "px": [288,272], "src": [224,176], "f": 2, "t": 410, "d": [88,409], "a": 1 }, + { "px": [304,272], "src": [224,176], "f": 2, "t": 410, "d": [88,410], "a": 1 }, + { "px": [176,288], "src": [224,176], "f": 2, "t": 410, "d": [88,425], "a": 1 }, + { "px": [192,288], "src": [224,176], "f": 2, "t": 410, "d": [88,426], "a": 1 }, + { "px": [208,288], "src": [224,176], "f": 2, "t": 410, "d": [88,427], "a": 1 }, + { "px": [224,288], "src": [224,176], "f": 2, "t": 410, "d": [88,428], "a": 1 }, + { "px": [240,288], "src": [224,176], "f": 2, "t": 410, "d": [88,429], "a": 1 }, + { "px": [256,288], "src": [224,176], "f": 2, "t": 410, "d": [88,430], "a": 1 } + ], + "seed": 7499270, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a3591db0-66b0-11ec-9cd7-43878cf4d0ab", "dir": "e" }, { "levelIid": "a35944c0-66b0-11ec-9cd7-6b4e2322a69e", "dir": "n" }, { "levelIid": "a35aa451-66b0-11ec-9cd7-438de356526d", "dir": "w" } ] + }, + { + "identifier": "Secret_passage", + "iid": "a359b9f0-66b0-11ec-9cd7-25dfb937d033", + "uid": 2, + "worldX": 400, + "worldY": -384, + "worldDepth": 0, + "pxWid": 256, + "pxHei": 256, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 16, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "490eb811-66b0-11ec-8fc6-9b9a3bead751", + "levelId": 2, + "layerDefUid": 119, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 8748377, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Plant", + "__grid": [10,4], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 176, "y": 288, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "bcef0690-66b0-11ec-8fc6-a50e4075387f", + "width": 20, + "height": 20, + "defUid": 116, + "px": [168,80], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Rose", "__tile": { "tilesetUid": 117, "x": 176, "y": 288, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Rose"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + }, + { + "__identifier": "Door", + "__grid": [5,3], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 160, "y": 32, "w": 16, "h": 16 }, + "__smartColor": "#00FF30", + "iid": "5c9ee4d0-8dc0-11ec-a525-4ddce479fcbc", + "width": 16, + "height": 16, + "defUid": 123, + "px": [88,64], + "fieldInstances": [{ "__identifier": "link", "__type": "EntityRef", "__value": { + "entityIid": "58a45ea0-8dc0-11ec-a525-2786470df187", + "layerIid": "490edf21-66b0-11ec-8fc6-f39ef63338fa", + "levelIid": "a35a7d40-66b0-11ec-9cd7-b57d32c8e175", + "worldIid": "ca0e9bf0-c640-11ed-ad34-5d947c1a0a9f" + }, "__tile": null, "defUid": 124, "realEditorValues": [{ + "id": "V_String", + "params": ["58a45ea0-8dc0-11ec-a525-2786470df187"] + }] }] + } + ] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 16, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a359b9f3-66b0-11ec-9cd7-adb53ff61832", + "levelId": 2, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1, + 1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1, + 1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1, + 0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1, + 1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,2,2,2,1,1,2,2,2,1,1,1,1,1,1, + 1,1,2,2,2,1,1,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2, + 2,2,2,2,2,2,2,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [80,0], "src": [16,32], "f": 0, "t": 73, "d": [8,5], "a": 1 }, + { "px": [96,0], "src": [16,32], "f": 0, "t": 73, "d": [8,6], "a": 1 }, + { "px": [112,0], "src": [16,16], "f": 0, "t": 37, "d": [8,7], "a": 1 }, + { "px": [128,0], "src": [16,32], "f": 0, "t": 73, "d": [8,8], "a": 1 }, + { "px": [144,0], "src": [16,32], "f": 0, "t": 73, "d": [8,9], "a": 1 }, + { "px": [160,0], "src": [16,32], "f": 0, "t": 73, "d": [8,10], "a": 1 }, + { "px": [176,0], "src": [16,32], "f": 0, "t": 73, "d": [8,11], "a": 1 }, + { "px": [208,0], "src": [16,16], "f": 0, "t": 37, "d": [8,13], "a": 1 }, + { "px": [240,0], "src": [16,16], "f": 0, "t": 37, "d": [8,15], "a": 1 }, + { "px": [0,16], "src": [16,16], "f": 0, "t": 37, "d": [8,16], "a": 1 }, + { "px": [48,16], "src": [16,16], "f": 0, "t": 37, "d": [8,19], "a": 1 }, + { "px": [64,16], "src": [16,16], "f": 0, "t": 37, "d": [8,20], "a": 1 }, + { "px": [80,16], "src": [16,16], "f": 0, "t": 37, "d": [8,21], "a": 1 }, + { "px": [192,16], "src": [16,32], "f": 0, "t": 73, "d": [8,28], "a": 1 }, + { "px": [208,16], "src": [16,32], "f": 0, "t": 73, "d": [8,29], "a": 1 }, + { "px": [0,32], "src": [16,16], "f": 0, "t": 37, "d": [8,32], "a": 1 }, + { "px": [32,32], "src": [16,32], "f": 0, "t": 73, "d": [8,34], "a": 1 }, + { "px": [48,32], "src": [16,16], "f": 0, "t": 37, "d": [8,35], "a": 1 }, + { "px": [224,32], "src": [16,16], "f": 0, "t": 37, "d": [8,46], "a": 1 }, + { "px": [240,32], "src": [16,32], "f": 0, "t": 73, "d": [8,47], "a": 1 }, + { "px": [32,48], "src": [16,16], "f": 0, "t": 37, "d": [8,50], "a": 1 }, + { "px": [48,48], "src": [16,16], "f": 0, "t": 37, "d": [8,51], "a": 1 }, + { "px": [240,48], "src": [16,16], "f": 0, "t": 37, "d": [8,63], "a": 1 }, + { "px": [0,64], "src": [16,32], "f": 0, "t": 73, "d": [8,64], "a": 1 }, + { "px": [48,64], "src": [16,16], "f": 0, "t": 37, "d": [8,67], "a": 1 }, + { "px": [240,64], "src": [16,16], "f": 0, "t": 37, "d": [8,79], "a": 1 }, + { "px": [48,80], "src": [16,32], "f": 0, "t": 73, "d": [8,83], "a": 1 }, + { "px": [64,80], "src": [16,16], "f": 0, "t": 37, "d": [8,84], "a": 1 }, + { "px": [80,80], "src": [16,16], "f": 0, "t": 37, "d": [8,85], "a": 1 }, + { "px": [96,80], "src": [16,32], "f": 0, "t": 73, "d": [8,86], "a": 1 }, + { "px": [240,80], "src": [16,32], "f": 0, "t": 73, "d": [8,95], "a": 1 }, + { "px": [48,96], "src": [16,16], "f": 0, "t": 37, "d": [8,99], "a": 1 }, + { "px": [64,96], "src": [16,32], "f": 0, "t": 73, "d": [8,100], "a": 1 }, + { "px": [80,96], "src": [16,32], "f": 0, "t": 73, "d": [8,101], "a": 1 }, + { "px": [96,96], "src": [16,32], "f": 0, "t": 73, "d": [8,102], "a": 1 }, + { "px": [176,96], "src": [16,32], "f": 0, "t": 73, "d": [8,107], "a": 1 }, + { "px": [224,96], "src": [16,32], "f": 0, "t": 73, "d": [8,110], "a": 1 }, + { "px": [240,96], "src": [16,16], "f": 0, "t": 37, "d": [8,111], "a": 1 }, + { "px": [0,112], "src": [16,16], "f": 0, "t": 37, "d": [8,112], "a": 1 }, + { "px": [32,112], "src": [16,32], "f": 0, "t": 73, "d": [8,114], "a": 1 }, + { "px": [112,112], "src": [16,16], "f": 0, "t": 37, "d": [8,119], "a": 1 }, + { "px": [128,112], "src": [16,32], "f": 0, "t": 73, "d": [8,120], "a": 1 }, + { "px": [176,112], "src": [16,16], "f": 0, "t": 37, "d": [8,123], "a": 1 }, + { "px": [224,112], "src": [16,32], "f": 0, "t": 73, "d": [8,126], "a": 1 }, + { "px": [240,112], "src": [16,32], "f": 0, "t": 73, "d": [8,127], "a": 1 }, + { "px": [0,128], "src": [16,16], "f": 0, "t": 37, "d": [8,128], "a": 1 }, + { "px": [16,128], "src": [16,32], "f": 0, "t": 73, "d": [8,129], "a": 1 }, + { "px": [112,128], "src": [16,32], "f": 0, "t": 73, "d": [8,135], "a": 1 }, + { "px": [128,128], "src": [16,16], "f": 0, "t": 37, "d": [8,136], "a": 1 }, + { "px": [160,128], "src": [16,16], "f": 0, "t": 37, "d": [8,138], "a": 1 }, + { "px": [224,128], "src": [16,32], "f": 0, "t": 73, "d": [8,142], "a": 1 }, + { "px": [112,144], "src": [16,32], "f": 0, "t": 73, "d": [8,151], "a": 1 }, + { "px": [128,144], "src": [16,32], "f": 0, "t": 73, "d": [8,152], "a": 1 }, + { "px": [144,144], "src": [16,32], "f": 0, "t": 73, "d": [8,153], "a": 1 }, + { "px": [224,144], "src": [16,32], "f": 0, "t": 73, "d": [8,158], "a": 1 }, + { "px": [112,160], "src": [16,32], "f": 0, "t": 73, "d": [8,167], "a": 1 }, + { "px": [128,160], "src": [16,16], "f": 0, "t": 37, "d": [8,168], "a": 1 }, + { "px": [208,160], "src": [16,32], "f": 0, "t": 73, "d": [8,173], "a": 1 }, + { "px": [224,160], "src": [16,16], "f": 0, "t": 37, "d": [8,174], "a": 1 }, + { "px": [112,176], "src": [16,32], "f": 0, "t": 73, "d": [8,183], "a": 1 }, + { "px": [128,176], "src": [16,32], "f": 0, "t": 73, "d": [8,184], "a": 1 }, + { "px": [208,176], "src": [16,16], "f": 0, "t": 37, "d": [8,189], "a": 1 }, + { "px": [16,192], "src": [16,16], "f": 0, "t": 37, "d": [8,193], "a": 1 }, + { "px": [48,192], "src": [16,32], "f": 0, "t": 73, "d": [8,195], "a": 1 }, + { "px": [112,192], "src": [16,32], "f": 0, "t": 73, "d": [8,199], "a": 1 }, + { "px": [128,192], "src": [16,16], "f": 0, "t": 37, "d": [8,200], "a": 1 }, + { "px": [192,192], "src": [16,32], "f": 0, "t": 73, "d": [8,204], "a": 1 }, + { "px": [208,192], "src": [16,32], "f": 0, "t": 73, "d": [8,205], "a": 1 }, + { "px": [224,192], "src": [16,32], "f": 0, "t": 73, "d": [8,206], "a": 1 }, + { "px": [48,208], "src": [16,32], "f": 0, "t": 73, "d": [8,211], "a": 1 }, + { "px": [192,208], "src": [16,16], "f": 0, "t": 37, "d": [8,220], "a": 1 }, + { "px": [208,208], "src": [16,16], "f": 0, "t": 37, "d": [8,221], "a": 1 }, + { "px": [224,208], "src": [16,32], "f": 0, "t": 73, "d": [8,222], "a": 1 }, + { "px": [240,208], "src": [16,16], "f": 0, "t": 37, "d": [8,223], "a": 1 }, + { "px": [48,224], "src": [16,32], "f": 0, "t": 73, "d": [8,227], "a": 1 }, + { "px": [192,224], "src": [16,32], "f": 0, "t": 73, "d": [8,236], "a": 1 }, + { "px": [208,224], "src": [16,16], "f": 0, "t": 37, "d": [8,237], "a": 1 }, + { "px": [32,240], "src": [16,32], "f": 0, "t": 73, "d": [8,242], "a": 1 }, + { "px": [48,240], "src": [16,16], "f": 0, "t": 37, "d": [8,243], "a": 1 }, + { "px": [192,240], "src": [16,16], "f": 0, "t": 37, "d": [8,252], "a": 1 }, + { "px": [208,240], "src": [16,32], "f": 0, "t": 73, "d": [8,253], "a": 1 }, + { "px": [224,240], "src": [16,32], "f": 0, "t": 73, "d": [8,254], "a": 1 }, + { "px": [240,240], "src": [16,32], "f": 0, "t": 73, "d": [8,255], "a": 1 }, + { "px": [16,0], "src": [160,192], "f": 0, "t": 442, "d": [84,1], "a": 1 }, + { "px": [32,0], "src": [160,192], "f": 0, "t": 442, "d": [84,2], "a": 1 }, + { "px": [64,0], "src": [192,192], "f": 0, "t": 444, "d": [84,4], "a": 1 }, + { "px": [192,0], "src": [192,192], "f": 0, "t": 444, "d": [84,12], "a": 1 }, + { "px": [224,16], "src": [176,192], "f": 0, "t": 443, "d": [84,30], "a": 1 }, + { "px": [32,64], "src": [144,192], "f": 0, "t": 441, "d": [84,66], "a": 1 }, + { "px": [32,80], "src": [144,192], "f": 0, "t": 441, "d": [84,82], "a": 1 }, + { "px": [0,96], "src": [176,192], "f": 0, "t": 443, "d": [84,96], "a": 1 }, + { "px": [32,96], "src": [144,192], "f": 0, "t": 441, "d": [84,98], "a": 1 }, + { "px": [112,96], "src": [176,192], "f": 0, "t": 443, "d": [84,103], "a": 1 }, + { "px": [128,96], "src": [160,192], "f": 0, "t": 442, "d": [84,104], "a": 1 }, + { "px": [144,96], "src": [144,192], "f": 0, "t": 441, "d": [84,105], "a": 1 }, + { "px": [160,96], "src": [160,192], "f": 0, "t": 442, "d": [84,106], "a": 1 }, + { "px": [16,112], "src": [192,192], "f": 0, "t": 444, "d": [84,113], "a": 1 }, + { "px": [144,128], "src": [144,192], "f": 0, "t": 441, "d": [84,137], "a": 1 }, + { "px": [240,128], "src": [144,192], "f": 0, "t": 441, "d": [84,143], "a": 1 }, + { "px": [0,192], "src": [144,192], "f": 0, "t": 441, "d": [84,192], "a": 1 }, + { "px": [32,192], "src": [160,192], "f": 0, "t": 442, "d": [84,194], "a": 1 }, + { "px": [32,208], "src": [192,192], "f": 0, "t": 444, "d": [84,210], "a": 1 }, + { "px": [32,224], "src": [144,192], "f": 0, "t": 441, "d": [84,226], "a": 1 }, + { "px": [112,0], "src": [32,144], "f": 0, "t": 326, "d": [75,7], "a": 1 }, + { "px": [128,1], "src": [16,144], "f": 0, "t": 325, "d": [75,8], "a": 1 }, + { "px": [144,0], "src": [16,144], "f": 0, "t": 325, "d": [75,9], "a": 1 }, + { "px": [160,0], "src": [16,144], "f": 0, "t": 325, "d": [75,10], "a": 1 }, + { "px": [64,16], "src": [16,144], "f": 0, "t": 325, "d": [75,20], "a": 1 }, + { "px": [80,16], "src": [32,144], "f": 0, "t": 326, "d": [75,21], "a": 1 }, + { "px": [192,16], "src": [32,144], "f": 0, "t": 326, "d": [75,28], "a": 1 }, + { "px": [224,33], "src": [32,144], "f": 0, "t": 326, "d": [75,46], "a": 1 }, + { "px": [64,97], "src": [32,144], "f": 0, "t": 326, "d": [75,100], "a": 1 }, + { "px": [80,97], "src": [16,144], "f": 0, "t": 325, "d": [75,101], "a": 1 }, + { "px": [0,128], "src": [32,144], "f": 0, "t": 326, "d": [75,128], "a": 1 }, + { "px": [16,128], "src": [16,144], "f": 0, "t": 325, "d": [75,129], "a": 1 }, + { "px": [144,145], "src": [32,144], "f": 0, "t": 326, "d": [75,153], "a": 1 }, + { "px": [64,64], "src": [48,96], "f": 0, "t": 219, "d": [9,68], "a": 1 }, + { "px": [80,64], "src": [48,96], "f": 0, "t": 219, "d": [9,69], "a": 1 }, + { "px": [112,80], "src": [48,96], "f": 0, "t": 219, "d": [9,87], "a": 1 }, + { "px": [128,80], "src": [64,96], "f": 0, "t": 220, "d": [9,88], "a": 1 }, + { "px": [144,80], "src": [16,96], "f": 0, "t": 217, "d": [9,89], "a": 1 }, + { "px": [160,80], "src": [48,96], "f": 0, "t": 219, "d": [9,90], "a": 1 }, + { "px": [0,176], "src": [64,96], "f": 0, "t": 220, "d": [9,176], "a": 1 }, + { "px": [16,176], "src": [16,96], "f": 0, "t": 217, "d": [9,177], "a": 1 }, + { "px": [32,176], "src": [48,96], "f": 0, "t": 219, "d": [9,178], "a": 1 }, + { "px": [49,32], "src": [0,128], "f": 1, "t": 288, "d": [10,35], "a": 1 }, + { "px": [49,48], "src": [0,112], "f": 1, "t": 252, "d": [10,51], "a": 1 }, + { "px": [239,48], "src": [0,128], "f": 0, "t": 288, "d": [10,63], "a": 1 }, + { "px": [240,64], "src": [0,128], "f": 0, "t": 288, "d": [10,79], "a": 1 }, + { "px": [222,96], "src": [0,112], "f": 0, "t": 252, "d": [10,110], "a": 1 }, + { "px": [223,112], "src": [0,112], "f": 0, "t": 252, "d": [10,126], "a": 1 }, + { "px": [110,128], "src": [0,112], "f": 0, "t": 252, "d": [10,135], "a": 1 }, + { "px": [222,128], "src": [0,112], "f": 0, "t": 252, "d": [10,142], "a": 1 }, + { "px": [111,144], "src": [0,128], "f": 0, "t": 288, "d": [10,151], "a": 1 }, + { "px": [110,160], "src": [0,112], "f": 0, "t": 252, "d": [10,167], "a": 1 }, + { "px": [128,160], "src": [0,128], "f": 1, "t": 288, "d": [10,168], "a": 1 }, + { "px": [207,160], "src": [0,112], "f": 0, "t": 252, "d": [10,173], "a": 1 }, + { "px": [110,176], "src": [0,128], "f": 0, "t": 288, "d": [10,183], "a": 1 }, + { "px": [128,176], "src": [0,128], "f": 1, "t": 288, "d": [10,184], "a": 1 }, + { "px": [49,192], "src": [0,112], "f": 1, "t": 252, "d": [10,195], "a": 1 }, + { "px": [111,192], "src": [0,128], "f": 0, "t": 288, "d": [10,199], "a": 1 }, + { "px": [129,192], "src": [0,128], "f": 1, "t": 288, "d": [10,200], "a": 1 }, + { "px": [192,192], "src": [0,112], "f": 0, "t": 252, "d": [10,204], "a": 1 }, + { "px": [50,208], "src": [0,112], "f": 1, "t": 252, "d": [10,211], "a": 1 }, + { "px": [192,208], "src": [0,112], "f": 0, "t": 252, "d": [10,220], "a": 1 }, + { "px": [50,224], "src": [0,112], "f": 1, "t": 252, "d": [10,227], "a": 1 }, + { "px": [191,224], "src": [0,112], "f": 0, "t": 252, "d": [10,236], "a": 1 }, + { "px": [48,240], "src": [0,128], "f": 1, "t": 288, "d": [10,243], "a": 1 }, + { "px": [191,240], "src": [0,128], "f": 0, "t": 288, "d": [10,252], "a": 1 }, + { "px": [96,16], "src": [0,144], "f": 1, "t": 324, "d": [77,22], "a": 1 }, + { "px": [176,16], "src": [0,144], "f": 0, "t": 324, "d": [77,27], "a": 1 }, + { "px": [208,32], "src": [0,144], "f": 0, "t": 324, "d": [77,45], "a": 1 }, + { "px": [48,112], "src": [0,144], "f": 1, "t": 324, "d": [77,115], "a": 1 }, + { "px": [96,112], "src": [0,144], "f": 0, "t": 324, "d": [77,118], "a": 1 }, + { "px": [192,112], "src": [0,144], "f": 1, "t": 324, "d": [77,124], "a": 1 }, + { "px": [32,128], "src": [0,144], "f": 1, "t": 324, "d": [77,130], "a": 1 }, + { "px": [176,128], "src": [0,144], "f": 1, "t": 324, "d": [77,139], "a": 1 }, + { "px": [160,144], "src": [0,144], "f": 1, "t": 324, "d": [77,154], "a": 1 }, + { "px": [112,208], "src": [0,144], "f": 0, "t": 324, "d": [77,215], "a": 1 }, + { "px": [128,208], "src": [0,144], "f": 1, "t": 324, "d": [77,216], "a": 1 }, + { "px": [96,64], "src": [0,96], "f": 1, "t": 216, "d": [11,70], "a": 1 }, + { "px": [176,80], "src": [0,96], "f": 1, "t": 216, "d": [11,91], "a": 1 }, + { "px": [224,80], "src": [0,96], "f": 0, "t": 216, "d": [11,94], "a": 1 }, + { "px": [192,96], "src": [0,96], "f": 1, "t": 216, "d": [11,108], "a": 1 }, + { "px": [208,144], "src": [0,96], "f": 0, "t": 216, "d": [11,157], "a": 1 }, + { "px": [48,176], "src": [0,96], "f": 1, "t": 216, "d": [11,179], "a": 1 }, + { "px": [192,176], "src": [0,96], "f": 0, "t": 216, "d": [11,188], "a": 1 }, + { "px": [96,0], "src": [48,144], "f": 0, "t": 327, "d": [76,6], "a": 1 }, + { "px": [176,0], "src": [48,144], "f": 1, "t": 327, "d": [76,11], "a": 1 }, + { "px": [48,16], "src": [48,144], "f": 0, "t": 327, "d": [76,19], "a": 1 }, + { "px": [208,16], "src": [48,144], "f": 1, "t": 327, "d": [76,29], "a": 1 }, + { "px": [240,32], "src": [48,144], "f": 1, "t": 327, "d": [76,47], "a": 1 }, + { "px": [48,96], "src": [48,144], "f": 0, "t": 327, "d": [76,99], "a": 1 }, + { "px": [96,96], "src": [48,144], "f": 1, "t": 327, "d": [76,102], "a": 1 }, + { "px": [32,112], "src": [48,144], "f": 0, "t": 327, "d": [76,114], "a": 1 }, + { "px": [112,112], "src": [48,144], "f": 1, "t": 327, "d": [76,119], "a": 1 }, + { "px": [176,112], "src": [48,144], "f": 0, "t": 327, "d": [76,123], "a": 1 }, + { "px": [160,128], "src": [48,144], "f": 0, "t": 327, "d": [76,138], "a": 1 }, + { "px": [128,144], "src": [48,144], "f": 0, "t": 327, "d": [76,152], "a": 1 }, + { "px": [48,64], "src": [64,144], "f": 0, "t": 328, "d": [14,67], "a": 1 }, + { "px": [96,80], "src": [64,144], "f": 0, "t": 328, "d": [14,86], "a": 1 }, + { "px": [240,80], "src": [64,144], "f": 1, "t": 328, "d": [14,95], "a": 1 }, + { "px": [176,96], "src": [64,144], "f": 0, "t": 328, "d": [14,107], "a": 1 }, + { "px": [224,144], "src": [64,144], "f": 1, "t": 328, "d": [14,158], "a": 1 }, + { "px": [208,176], "src": [64,144], "f": 1, "t": 328, "d": [14,189], "a": 1 }, + { "px": [64,192], "src": [0,224], "f": 0, "t": 504, "d": [28,196], "a": 1 }, + { "px": [144,192], "src": [0,224], "f": 0, "t": 504, "d": [28,201], "a": 1 }, + { "px": [64,208], "src": [0,224], "f": 0, "t": 504, "d": [28,212], "a": 1 }, + { "px": [80,208], "src": [0,224], "f": 0, "t": 504, "d": [28,213], "a": 1 }, + { "px": [96,208], "src": [0,224], "f": 0, "t": 504, "d": [28,214], "a": 1 }, + { "px": [144,208], "src": [0,224], "f": 0, "t": 504, "d": [28,217], "a": 1 }, + { "px": [160,208], "src": [0,224], "f": 0, "t": 504, "d": [28,218], "a": 1 }, + { "px": [176,208], "src": [0,224], "f": 0, "t": 504, "d": [28,219], "a": 1 }, + { "px": [64,224], "src": [0,224], "f": 0, "t": 504, "d": [28,228], "a": 1 }, + { "px": [80,224], "src": [0,224], "f": 0, "t": 504, "d": [28,229], "a": 1 }, + { "px": [96,224], "src": [0,224], "f": 0, "t": 504, "d": [28,230], "a": 1 }, + { "px": [112,224], "src": [0,224], "f": 0, "t": 504, "d": [28,231], "a": 1 }, + { "px": [128,224], "src": [0,224], "f": 0, "t": 504, "d": [28,232], "a": 1 }, + { "px": [144,224], "src": [0,224], "f": 0, "t": 504, "d": [28,233], "a": 1 }, + { "px": [160,224], "src": [0,224], "f": 0, "t": 504, "d": [28,234], "a": 1 }, + { "px": [64,240], "src": [0,224], "f": 0, "t": 504, "d": [28,244], "a": 1 }, + { "px": [80,240], "src": [0,224], "f": 0, "t": 504, "d": [28,245], "a": 1 }, + { "px": [96,240], "src": [0,224], "f": 0, "t": 504, "d": [28,246], "a": 1 }, + { "px": [128,240], "src": [0,224], "f": 0, "t": 504, "d": [28,248], "a": 1 }, + { "px": [144,240], "src": [0,224], "f": 0, "t": 504, "d": [28,249], "a": 1 }, + { "px": [160,240], "src": [0,224], "f": 0, "t": 504, "d": [28,250], "a": 1 }, + { "px": [80,192], "src": [16,240], "f": 0, "t": 541, "d": [74,197], "a": 1 }, + { "px": [96,192], "src": [16,224], "f": 0, "t": 505, "d": [74,198], "a": 1 }, + { "px": [160,192], "src": [16,224], "f": 0, "t": 505, "d": [74,202], "a": 1 }, + { "px": [176,192], "src": [16,240], "f": 0, "t": 541, "d": [74,203], "a": 1 }, + { "px": [176,224], "src": [32,224], "f": 0, "t": 506, "d": [74,235], "a": 1 }, + { "px": [112,240], "src": [32,240], "f": 0, "t": 542, "d": [74,247], "a": 1 }, + { "px": [176,240], "src": [32,224], "f": 0, "t": 506, "d": [74,251], "a": 1 }, + { "px": [64,177], "src": [32,208], "f": 0, "t": 470, "d": [21,180], "a": 1 }, + { "px": [80,176], "src": [0,208], "f": 0, "t": 468, "d": [21,181], "a": 1 }, + { "px": [96,177], "src": [16,208], "f": 0, "t": 469, "d": [21,182], "a": 1 }, + { "px": [144,176], "src": [0,208], "f": 0, "t": 468, "d": [21,185], "a": 1 }, + { "px": [160,177], "src": [16,208], "f": 0, "t": 469, "d": [21,186], "a": 1 }, + { "px": [176,176], "src": [0,208], "f": 0, "t": 468, "d": [21,187], "a": 1 }, + { "px": [112,16], "src": [80,128], "f": 0, "t": 293, "d": [95,23], "a": 1 }, + { "px": [160,16], "src": [80,128], "f": 1, "t": 293, "d": [95,26], "a": 1 }, + { "px": [64,32], "src": [80,112], "f": 0, "t": 257, "d": [95,36], "a": 1 }, + { "px": [192,32], "src": [80,128], "f": 1, "t": 293, "d": [95,44], "a": 1 }, + { "px": [224,48], "src": [80,128], "f": 1, "t": 293, "d": [95,62], "a": 1 }, + { "px": [64,112], "src": [80,128], "f": 0, "t": 293, "d": [95,116], "a": 1 }, + { "px": [80,112], "src": [80,112], "f": 1, "t": 257, "d": [95,117], "a": 1 }, + { "px": [48,128], "src": [80,128], "f": 0, "t": 293, "d": [95,131], "a": 1 }, + { "px": [96,128], "src": [80,112], "f": 1, "t": 257, "d": [95,134], "a": 1 }, + { "px": [192,128], "src": [80,112], "f": 0, "t": 257, "d": [95,140], "a": 1 }, + { "px": [176,144], "src": [80,128], "f": 0, "t": 293, "d": [95,155], "a": 1 }, + { "px": [144,160], "src": [80,112], "f": 0, "t": 257, "d": [95,169], "a": 1 }, + { "px": [64,48], "src": [80,160], "f": 0, "t": 365, "d": [96,52], "a": 1 }, + { "px": [112,64], "src": [80,144], "f": 0, "t": 329, "d": [96,71], "a": 1 }, + { "px": [224,64], "src": [80,144], "f": 1, "t": 329, "d": [96,78], "a": 1 }, + { "px": [192,80], "src": [80,144], "f": 0, "t": 329, "d": [96,92], "a": 1 }, + { "px": [208,128], "src": [80,144], "f": 1, "t": 329, "d": [96,141], "a": 1 }, + { "px": [192,160], "src": [80,144], "f": 1, "t": 329, "d": [96,172], "a": 1 }, + { "px": [64,50], "src": [16,80], "f": 0, "t": 181, "d": [97,52], "a": 1 }, + { "px": [80,49], "src": [48,80], "f": 0, "t": 183, "d": [97,53], "a": 1 }, + { "px": [96,49], "src": [0,80], "f": 0, "t": 180, "d": [97,54], "a": 1 }, + { "px": [112,64], "src": [48,80], "f": 0, "t": 183, "d": [97,71], "a": 1 }, + { "px": [128,64], "src": [144,112], "f": 0, "t": 261, "d": [97,72], "a": 1 }, + { "px": [144,66], "src": [144,112], "f": 0, "t": 261, "d": [97,73], "a": 1 }, + { "px": [160,64], "src": [32,80], "f": 0, "t": 182, "d": [97,74], "a": 1 }, + { "px": [176,65], "src": [128,112], "f": 0, "t": 260, "d": [97,75], "a": 1 }, + { "px": [224,64], "src": [32,80], "f": 0, "t": 182, "d": [97,78], "a": 1 }, + { "px": [192,80], "src": [128,112], "f": 0, "t": 260, "d": [97,92], "a": 1 }, + { "px": [208,128], "src": [128,112], "f": 0, "t": 260, "d": [97,141], "a": 1 }, + { "px": [0,161], "src": [0,80], "f": 0, "t": 180, "d": [97,160], "a": 1 }, + { "px": [48,160], "src": [112,112], "f": 0, "t": 259, "d": [97,163], "a": 1 }, + { "px": [192,161], "src": [0,80], "f": 0, "t": 180, "d": [97,172], "a": 1 }, + { "px": [112,16], "src": [64,128], "f": 0, "t": 292, "d": [98,23], "a": 1 }, + { "px": [64,32], "src": [64,112], "f": 0, "t": 256, "d": [98,36], "a": 1 }, + { "px": [64,48], "src": [64,128], "f": 0, "t": 292, "d": [98,52], "a": 1 }, + { "px": [112,64], "src": [64,112], "f": 0, "t": 256, "d": [98,71], "a": 1 }, + { "px": [224,64], "src": [64,112], "f": 1, "t": 256, "d": [98,78], "a": 1 }, + { "px": [192,80], "src": [64,128], "f": 0, "t": 292, "d": [98,92], "a": 1 }, + { "px": [208,80], "src": [64,112], "f": 1, "t": 256, "d": [98,93], "a": 1 }, + { "px": [208,96], "src": [64,112], "f": 0, "t": 256, "d": [98,109], "a": 1 }, + { "px": [208,96], "src": [64,112], "f": 1, "t": 256, "d": [98,109], "a": 1 }, + { "px": [64,112], "src": [64,112], "f": 0, "t": 256, "d": [98,116], "a": 1 }, + { "px": [208,128], "src": [64,112], "f": 1, "t": 256, "d": [98,141], "a": 1 }, + { "px": [176,144], "src": [64,112], "f": 0, "t": 256, "d": [98,155], "a": 1 }, + { "px": [192,160], "src": [64,128], "f": 1, "t": 292, "d": [98,172], "a": 1 }, + { "px": [64,176], "src": [64,128], "f": 0, "t": 292, "d": [98,180], "a": 1 }, + { "px": [96,176], "src": [64,112], "f": 1, "t": 256, "d": [98,182], "a": 1 }, + { "px": [144,176], "src": [64,112], "f": 0, "t": 256, "d": [98,185], "a": 1 }, + { "px": [176,176], "src": [64,128], "f": 1, "t": 292, "d": [98,187], "a": 1 }, + { "px": [64,192], "src": [64,112], "f": 0, "t": 256, "d": [98,196], "a": 1 }, + { "px": [144,192], "src": [64,128], "f": 0, "t": 292, "d": [98,201], "a": 1 }, + { "px": [176,192], "src": [64,112], "f": 1, "t": 256, "d": [98,203], "a": 1 }, + { "px": [64,208], "src": [64,112], "f": 0, "t": 256, "d": [98,212], "a": 1 }, + { "px": [96,208], "src": [64,112], "f": 1, "t": 256, "d": [98,214], "a": 1 }, + { "px": [144,208], "src": [64,128], "f": 0, "t": 292, "d": [98,217], "a": 1 }, + { "px": [64,224], "src": [64,128], "f": 0, "t": 292, "d": [98,228], "a": 1 }, + { "px": [64,240], "src": [64,128], "f": 0, "t": 292, "d": [98,244], "a": 1 }, + { "px": [192,32], "src": [112,80], "f": 0, "t": 187, "d": [93,44], "a": 1 }, + { "px": [192,128], "src": [112,80], "f": 0, "t": 187, "d": [93,140], "a": 1 }, + { "px": [176,144], "src": [112,80], "f": 0, "t": 187, "d": [93,155], "a": 1 }, + { "px": [112,16], "src": [112,96], "f": 0, "t": 223, "d": [101,23], "a": 1 }, + { "px": [128,16], "src": [112,96], "f": 0, "t": 223, "d": [101,24], "a": 1 }, + { "px": [144,16], "src": [112,96], "f": 0, "t": 223, "d": [101,25], "a": 1 }, + { "px": [160,16], "src": [128,96], "f": 0, "t": 224, "d": [101,26], "a": 1 }, + { "px": [64,32], "src": [112,96], "f": 0, "t": 223, "d": [101,36], "a": 1 }, + { "px": [80,32], "src": [128,96], "f": 0, "t": 224, "d": [101,37], "a": 1 }, + { "px": [96,32], "src": [112,96], "f": 0, "t": 223, "d": [101,38], "a": 1 }, + { "px": [176,32], "src": [128,96], "f": 0, "t": 224, "d": [101,43], "a": 1 }, + { "px": [192,32], "src": [128,96], "f": 0, "t": 224, "d": [101,44], "a": 1 }, + { "px": [208,48], "src": [128,96], "f": 0, "t": 224, "d": [101,61], "a": 1 }, + { "px": [224,48], "src": [112,96], "f": 0, "t": 223, "d": [101,62], "a": 1 }, + { "px": [64,112], "src": [128,96], "f": 0, "t": 224, "d": [101,116], "a": 1 }, + { "px": [48,128], "src": [112,96], "f": 0, "t": 223, "d": [101,131], "a": 1 }, + { "px": [96,128], "src": [128,96], "f": 0, "t": 224, "d": [101,134], "a": 1 }, + { "px": [0,144], "src": [112,96], "f": 0, "t": 223, "d": [101,144], "a": 1 }, + { "px": [16,144], "src": [112,96], "f": 0, "t": 223, "d": [101,145], "a": 1 }, + { "px": [32,144], "src": [112,96], "f": 0, "t": 223, "d": [101,146], "a": 1 }, + { "px": [176,144], "src": [128,96], "f": 0, "t": 224, "d": [101,155], "a": 1 }, + { "px": [144,160], "src": [112,96], "f": 0, "t": 223, "d": [101,169], "a": 1 }, + { "px": [160,160], "src": [128,96], "f": 0, "t": 224, "d": [101,170], "a": 1 }, + { "px": [112,224], "src": [128,96], "f": 0, "t": 224, "d": [101,231], "a": 1 }, + { "px": [128,224], "src": [112,96], "f": 0, "t": 223, "d": [101,232], "a": 1 }, + { "px": [0,0], "src": [176,208], "f": 0, "t": 479, "d": [104,0], "a": 1 }, + { "px": [48,0], "src": [208,208], "f": 0, "t": 481, "d": [104,3], "a": 1 }, + { "px": [224,0], "src": [176,208], "f": 0, "t": 479, "d": [104,14], "a": 1 }, + { "px": [16,16], "src": [192,208], "f": 0, "t": 480, "d": [104,17], "a": 1 }, + { "px": [32,16], "src": [176,208], "f": 0, "t": 479, "d": [104,18], "a": 1 }, + { "px": [240,16], "src": [176,208], "f": 0, "t": 479, "d": [104,31], "a": 1 }, + { "px": [16,32], "src": [208,208], "f": 0, "t": 481, "d": [104,33], "a": 1 }, + { "px": [0,48], "src": [176,208], "f": 0, "t": 479, "d": [104,48], "a": 1 }, + { "px": [16,48], "src": [176,208], "f": 0, "t": 479, "d": [104,49], "a": 1 }, + { "px": [16,64], "src": [176,208], "f": 0, "t": 479, "d": [104,65], "a": 1 }, + { "px": [0,80], "src": [208,208], "f": 0, "t": 481, "d": [104,80], "a": 1 }, + { "px": [16,80], "src": [208,208], "f": 0, "t": 481, "d": [104,81], "a": 1 }, + { "px": [16,96], "src": [192,208], "f": 0, "t": 480, "d": [104,97], "a": 1 }, + { "px": [144,112], "src": [176,208], "f": 0, "t": 479, "d": [104,121], "a": 1 }, + { "px": [160,112], "src": [208,208], "f": 0, "t": 481, "d": [104,122], "a": 1 }, + { "px": [240,144], "src": [176,208], "f": 0, "t": 479, "d": [104,159], "a": 1 }, + { "px": [240,160], "src": [192,208], "f": 0, "t": 480, "d": [104,175], "a": 1 }, + { "px": [224,176], "src": [208,208], "f": 0, "t": 481, "d": [104,190], "a": 1 }, + { "px": [240,176], "src": [176,208], "f": 0, "t": 479, "d": [104,191], "a": 1 }, + { "px": [240,192], "src": [192,208], "f": 0, "t": 480, "d": [104,207], "a": 1 }, + { "px": [0,208], "src": [208,208], "f": 0, "t": 481, "d": [104,208], "a": 1 }, + { "px": [16,208], "src": [208,208], "f": 0, "t": 481, "d": [104,209], "a": 1 }, + { "px": [0,224], "src": [192,208], "f": 0, "t": 480, "d": [104,224], "a": 1 }, + { "px": [16,224], "src": [192,208], "f": 0, "t": 480, "d": [104,225], "a": 1 }, + { "px": [224,224], "src": [192,208], "f": 0, "t": 480, "d": [104,238], "a": 1 }, + { "px": [240,224], "src": [208,208], "f": 0, "t": 481, "d": [104,239], "a": 1 }, + { "px": [0,240], "src": [208,208], "f": 0, "t": 481, "d": [104,240], "a": 1 }, + { "px": [16,240], "src": [192,208], "f": 0, "t": 480, "d": [104,241], "a": 1 }, + { "px": [0,0], "src": [272,176], "f": 0, "t": 413, "d": [108,0], "a": 1 }, + { "px": [16,0], "src": [272,176], "f": 0, "t": 413, "d": [108,1], "a": 1 }, + { "px": [32,0], "src": [272,176], "f": 0, "t": 413, "d": [108,2], "a": 1 }, + { "px": [48,0], "src": [272,176], "f": 0, "t": 413, "d": [108,3], "a": 1 }, + { "px": [64,0], "src": [272,176], "f": 0, "t": 413, "d": [108,4], "a": 1 }, + { "px": [80,0], "src": [272,176], "f": 0, "t": 413, "d": [108,5], "a": 1 }, + { "px": [192,0], "src": [272,176], "f": 0, "t": 413, "d": [108,12], "a": 1 }, + { "px": [208,0], "src": [272,176], "f": 0, "t": 413, "d": [108,13], "a": 1 }, + { "px": [224,0], "src": [272,176], "f": 0, "t": 413, "d": [108,14], "a": 1 }, + { "px": [240,0], "src": [272,176], "f": 0, "t": 413, "d": [108,15], "a": 1 }, + { "px": [0,16], "src": [272,176], "f": 0, "t": 413, "d": [108,16], "a": 1 }, + { "px": [16,16], "src": [272,176], "f": 0, "t": 413, "d": [108,17], "a": 1 }, + { "px": [32,16], "src": [272,176], "f": 0, "t": 413, "d": [108,18], "a": 1 }, + { "px": [224,16], "src": [272,176], "f": 0, "t": 413, "d": [108,30], "a": 1 }, + { "px": [240,16], "src": [272,176], "f": 0, "t": 413, "d": [108,31], "a": 1 }, + { "px": [0,32], "src": [272,176], "f": 0, "t": 413, "d": [108,32], "a": 1 }, + { "px": [16,32], "src": [272,176], "f": 0, "t": 413, "d": [108,33], "a": 1 }, + { "px": [32,32], "src": [272,176], "f": 0, "t": 413, "d": [108,34], "a": 1 }, + { "px": [0,48], "src": [272,176], "f": 0, "t": 413, "d": [108,48], "a": 1 }, + { "px": [16,48], "src": [272,176], "f": 0, "t": 413, "d": [108,49], "a": 1 }, + { "px": [32,48], "src": [272,176], "f": 0, "t": 413, "d": [108,50], "a": 1 }, + { "px": [0,64], "src": [272,176], "f": 0, "t": 413, "d": [108,64], "a": 1 }, + { "px": [16,64], "src": [272,176], "f": 0, "t": 413, "d": [108,65], "a": 1 }, + { "px": [32,64], "src": [272,176], "f": 0, "t": 413, "d": [108,66], "a": 1 }, + { "px": [0,80], "src": [272,176], "f": 0, "t": 413, "d": [108,80], "a": 1 }, + { "px": [16,80], "src": [272,176], "f": 0, "t": 413, "d": [108,81], "a": 1 }, + { "px": [32,80], "src": [272,176], "f": 0, "t": 413, "d": [108,82], "a": 1 }, + { "px": [48,80], "src": [272,176], "f": 0, "t": 413, "d": [108,83], "a": 1 }, + { "px": [64,80], "src": [272,176], "f": 0, "t": 413, "d": [108,84], "a": 1 }, + { "px": [80,80], "src": [272,176], "f": 0, "t": 413, "d": [108,85], "a": 1 }, + { "px": [0,96], "src": [272,176], "f": 0, "t": 413, "d": [108,96], "a": 1 }, + { "px": [16,96], "src": [272,176], "f": 0, "t": 413, "d": [108,97], "a": 1 }, + { "px": [32,96], "src": [272,176], "f": 0, "t": 413, "d": [108,98], "a": 1 }, + { "px": [112,96], "src": [272,176], "f": 0, "t": 413, "d": [108,103], "a": 1 }, + { "px": [128,96], "src": [272,176], "f": 0, "t": 413, "d": [108,104], "a": 1 }, + { "px": [144,96], "src": [272,176], "f": 0, "t": 413, "d": [108,105], "a": 1 }, + { "px": [160,96], "src": [272,176], "f": 0, "t": 413, "d": [108,106], "a": 1 }, + { "px": [240,96], "src": [272,176], "f": 0, "t": 413, "d": [108,111], "a": 1 }, + { "px": [0,112], "src": [272,176], "f": 0, "t": 413, "d": [108,112], "a": 1 }, + { "px": [16,112], "src": [272,176], "f": 0, "t": 413, "d": [108,113], "a": 1 }, + { "px": [128,112], "src": [272,176], "f": 0, "t": 413, "d": [108,120], "a": 1 }, + { "px": [144,112], "src": [272,176], "f": 0, "t": 413, "d": [108,121], "a": 1 }, + { "px": [160,112], "src": [272,176], "f": 0, "t": 413, "d": [108,122], "a": 1 }, + { "px": [240,112], "src": [272,176], "f": 0, "t": 413, "d": [108,127], "a": 1 }, + { "px": [128,128], "src": [272,176], "f": 0, "t": 413, "d": [108,136], "a": 1 }, + { "px": [144,128], "src": [272,176], "f": 0, "t": 413, "d": [108,137], "a": 1 }, + { "px": [240,128], "src": [272,176], "f": 0, "t": 413, "d": [108,143], "a": 1 }, + { "px": [240,144], "src": [272,176], "f": 0, "t": 413, "d": [108,159], "a": 1 }, + { "px": [224,160], "src": [272,176], "f": 0, "t": 413, "d": [108,174], "a": 1 }, + { "px": [240,160], "src": [272,176], "f": 0, "t": 413, "d": [108,175], "a": 1 }, + { "px": [224,176], "src": [272,176], "f": 0, "t": 413, "d": [108,190], "a": 1 }, + { "px": [240,176], "src": [272,176], "f": 0, "t": 413, "d": [108,191], "a": 1 }, + { "px": [0,192], "src": [272,176], "f": 0, "t": 413, "d": [108,192], "a": 1 }, + { "px": [16,192], "src": [272,176], "f": 0, "t": 413, "d": [108,193], "a": 1 }, + { "px": [32,192], "src": [272,176], "f": 0, "t": 413, "d": [108,194], "a": 1 }, + { "px": [208,192], "src": [272,176], "f": 0, "t": 413, "d": [108,205], "a": 1 }, + { "px": [224,192], "src": [272,176], "f": 0, "t": 413, "d": [108,206], "a": 1 }, + { "px": [240,192], "src": [272,176], "f": 0, "t": 413, "d": [108,207], "a": 1 }, + { "px": [0,208], "src": [272,176], "f": 0, "t": 413, "d": [108,208], "a": 1 }, + { "px": [16,208], "src": [272,176], "f": 0, "t": 413, "d": [108,209], "a": 1 }, + { "px": [32,208], "src": [272,176], "f": 0, "t": 413, "d": [108,210], "a": 1 }, + { "px": [208,208], "src": [272,176], "f": 0, "t": 413, "d": [108,221], "a": 1 }, + { "px": [224,208], "src": [272,176], "f": 0, "t": 413, "d": [108,222], "a": 1 }, + { "px": [240,208], "src": [272,176], "f": 0, "t": 413, "d": [108,223], "a": 1 }, + { "px": [0,224], "src": [272,176], "f": 0, "t": 413, "d": [108,224], "a": 1 }, + { "px": [16,224], "src": [272,176], "f": 0, "t": 413, "d": [108,225], "a": 1 }, + { "px": [32,224], "src": [272,176], "f": 0, "t": 413, "d": [108,226], "a": 1 }, + { "px": [208,224], "src": [272,176], "f": 0, "t": 413, "d": [108,237], "a": 1 }, + { "px": [224,224], "src": [272,176], "f": 0, "t": 413, "d": [108,238], "a": 1 }, + { "px": [240,224], "src": [272,176], "f": 0, "t": 413, "d": [108,239], "a": 1 }, + { "px": [0,240], "src": [272,176], "f": 0, "t": 413, "d": [108,240], "a": 1 }, + { "px": [16,240], "src": [272,176], "f": 0, "t": 413, "d": [108,241], "a": 1 }, + { "px": [32,240], "src": [272,176], "f": 0, "t": 413, "d": [108,242], "a": 1 }, + { "px": [208,240], "src": [272,176], "f": 0, "t": 413, "d": [108,253], "a": 1 }, + { "px": [224,240], "src": [272,176], "f": 0, "t": 413, "d": [108,254], "a": 1 }, + { "px": [240,240], "src": [272,176], "f": 0, "t": 413, "d": [108,255], "a": 1 }, + { "px": [96,0], "src": [272,192], "f": 0, "t": 449, "d": [109,6], "a": 1 }, + { "px": [176,0], "src": [272,192], "f": 1, "t": 449, "d": [109,11], "a": 1 }, + { "px": [48,16], "src": [272,192], "f": 0, "t": 449, "d": [109,19], "a": 1 }, + { "px": [208,16], "src": [272,192], "f": 1, "t": 449, "d": [109,29], "a": 1 }, + { "px": [240,32], "src": [272,192], "f": 1, "t": 449, "d": [109,47], "a": 1 }, + { "px": [48,64], "src": [272,192], "f": 2, "t": 449, "d": [109,67], "a": 1 }, + { "px": [96,80], "src": [272,192], "f": 2, "t": 449, "d": [109,86], "a": 1 }, + { "px": [240,80], "src": [272,192], "f": 3, "t": 449, "d": [109,95], "a": 1 }, + { "px": [48,96], "src": [272,192], "f": 0, "t": 449, "d": [109,99], "a": 1 }, + { "px": [96,96], "src": [272,192], "f": 1, "t": 449, "d": [109,102], "a": 1 }, + { "px": [176,96], "src": [272,192], "f": 2, "t": 449, "d": [109,107], "a": 1 }, + { "px": [32,112], "src": [272,192], "f": 0, "t": 449, "d": [109,114], "a": 1 }, + { "px": [112,112], "src": [272,192], "f": 1, "t": 449, "d": [109,119], "a": 1 }, + { "px": [176,112], "src": [272,192], "f": 0, "t": 449, "d": [109,123], "a": 1 }, + { "px": [160,128], "src": [272,192], "f": 0, "t": 449, "d": [109,138], "a": 1 }, + { "px": [128,144], "src": [272,192], "f": 0, "t": 449, "d": [109,152], "a": 1 }, + { "px": [224,144], "src": [272,192], "f": 3, "t": 449, "d": [109,158], "a": 1 }, + { "px": [208,176], "src": [272,192], "f": 3, "t": 449, "d": [109,189], "a": 1 } + ], + "seed": 6027753, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a359e100-66b0-11ec-9cd7-dd690baf974a", + "levelId": 2, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [144,16], "src": [48,192], "f": 0, "t": 435, "d": [51,25], "a": 1 }, + { "px": [160,16], "src": [48,192], "f": 0, "t": 435, "d": [51,26], "a": 1 }, + { "px": [80,32], "src": [64,192], "f": 0, "t": 436, "d": [51,37], "a": 1 }, + { "px": [144,32], "src": [48,192], "f": 0, "t": 435, "d": [51,41], "a": 1 }, + { "px": [144,48], "src": [80,192], "f": 0, "t": 437, "d": [51,57], "a": 1 }, + { "px": [208,48], "src": [64,192], "f": 0, "t": 436, "d": [51,61], "a": 1 }, + { "px": [208,112], "src": [80,192], "f": 0, "t": 437, "d": [51,125], "a": 1 }, + { "px": [48,128], "src": [64,192], "f": 0, "t": 436, "d": [51,131], "a": 1 }, + { "px": [80,128], "src": [48,192], "f": 0, "t": 435, "d": [51,133], "a": 1 }, + { "px": [208,128], "src": [64,192], "f": 0, "t": 436, "d": [51,141], "a": 1 }, + { "px": [16,144], "src": [64,192], "f": 0, "t": 436, "d": [51,145], "a": 1 }, + { "px": [32,144], "src": [80,192], "f": 0, "t": 437, "d": [51,146], "a": 1 }, + { "px": [48,144], "src": [48,192], "f": 0, "t": 435, "d": [51,147], "a": 1 }, + { "px": [80,144], "src": [64,192], "f": 0, "t": 436, "d": [51,149], "a": 1 }, + { "px": [16,160], "src": [64,192], "f": 0, "t": 436, "d": [51,161], "a": 1 }, + { "px": [96,160], "src": [48,192], "f": 0, "t": 435, "d": [51,166], "a": 1 }, + { "px": [160,192], "src": [48,192], "f": 0, "t": 435, "d": [51,202], "a": 1 }, + { "px": [64,208], "src": [80,192], "f": 0, "t": 437, "d": [51,212], "a": 1 }, + { "px": [80,208], "src": [64,192], "f": 0, "t": 436, "d": [51,213], "a": 1 }, + { "px": [96,208], "src": [80,192], "f": 0, "t": 437, "d": [51,214], "a": 1 }, + { "px": [160,208], "src": [48,192], "f": 0, "t": 435, "d": [51,218], "a": 1 }, + { "px": [176,208], "src": [64,192], "f": 0, "t": 436, "d": [51,219], "a": 1 }, + { "px": [80,224], "src": [64,192], "f": 0, "t": 436, "d": [51,229], "a": 1 }, + { "px": [96,224], "src": [48,192], "f": 0, "t": 435, "d": [51,230], "a": 1 }, + { "px": [112,224], "src": [48,192], "f": 0, "t": 435, "d": [51,231], "a": 1 }, + { "px": [128,224], "src": [64,192], "f": 0, "t": 436, "d": [51,232], "a": 1 }, + { "px": [64,240], "src": [80,192], "f": 0, "t": 437, "d": [51,244], "a": 1 }, + { "px": [80,240], "src": [64,192], "f": 0, "t": 436, "d": [51,245], "a": 1 }, + { "px": [96,240], "src": [80,192], "f": 0, "t": 437, "d": [51,246], "a": 1 }, + { "px": [112,240], "src": [64,192], "f": 0, "t": 436, "d": [51,247], "a": 1 }, + { "px": [160,240], "src": [64,192], "f": 0, "t": 436, "d": [51,250], "a": 1 }, + { "px": [176,240], "src": [64,192], "f": 0, "t": 436, "d": [51,251], "a": 1 }, + { "px": [160,32], "src": [96,192], "f": 0, "t": 438, "d": [85,42], "a": 1 }, + { "px": [176,32], "src": [96,192], "f": 0, "t": 438, "d": [85,43], "a": 1 }, + { "px": [80,48], "src": [112,192], "f": 0, "t": 439, "d": [85,53], "a": 1 }, + { "px": [80,160], "src": [96,192], "f": 0, "t": 438, "d": [85,165], "a": 1 }, + { "px": [112,16], "src": [0,192], "f": 0, "t": 432, "d": [102,23], "a": 1 }, + { "px": [96,32], "src": [16,192], "f": 0, "t": 433, "d": [102,38], "a": 1 }, + { "px": [112,32], "src": [32,192], "f": 0, "t": 434, "d": [102,39], "a": 1 }, + { "px": [96,48], "src": [0,192], "f": 0, "t": 432, "d": [102,54], "a": 1 }, + { "px": [112,48], "src": [32,192], "f": 0, "t": 434, "d": [102,55], "a": 1 }, + { "px": [160,48], "src": [16,192], "f": 0, "t": 433, "d": [102,58], "a": 1 }, + { "px": [176,48], "src": [0,192], "f": 0, "t": 432, "d": [102,59], "a": 1 }, + { "px": [224,48], "src": [0,192], "f": 0, "t": 432, "d": [102,62], "a": 1 }, + { "px": [112,64], "src": [16,192], "f": 0, "t": 433, "d": [102,71], "a": 1 }, + { "px": [144,64], "src": [16,192], "f": 0, "t": 433, "d": [102,73], "a": 1 }, + { "px": [160,64], "src": [32,192], "f": 0, "t": 434, "d": [102,74], "a": 1 }, + { "px": [176,64], "src": [32,192], "f": 0, "t": 434, "d": [102,75], "a": 1 }, + { "px": [208,64], "src": [32,192], "f": 0, "t": 434, "d": [102,77], "a": 1 }, + { "px": [224,64], "src": [32,192], "f": 0, "t": 434, "d": [102,78], "a": 1 }, + { "px": [208,80], "src": [0,192], "f": 0, "t": 432, "d": [102,93], "a": 1 }, + { "px": [208,96], "src": [16,192], "f": 0, "t": 433, "d": [102,109], "a": 1 }, + { "px": [80,112], "src": [16,192], "f": 0, "t": 433, "d": [102,117], "a": 1 }, + { "px": [96,128], "src": [0,192], "f": 0, "t": 432, "d": [102,134], "a": 1 }, + { "px": [96,144], "src": [32,192], "f": 0, "t": 434, "d": [102,150], "a": 1 }, + { "px": [176,144], "src": [16,192], "f": 0, "t": 433, "d": [102,155], "a": 1 }, + { "px": [32,160], "src": [0,192], "f": 0, "t": 432, "d": [102,162], "a": 1 }, + { "px": [48,160], "src": [0,192], "f": 0, "t": 432, "d": [102,163], "a": 1 }, + { "px": [144,160], "src": [0,192], "f": 0, "t": 432, "d": [102,169], "a": 1 }, + { "px": [160,160], "src": [32,192], "f": 0, "t": 434, "d": [102,170], "a": 1 }, + { "px": [176,160], "src": [0,192], "f": 0, "t": 432, "d": [102,171], "a": 1 }, + { "px": [80,176], "src": [32,192], "f": 0, "t": 434, "d": [102,181], "a": 1 }, + { "px": [96,176], "src": [16,192], "f": 0, "t": 433, "d": [102,182], "a": 1 }, + { "px": [144,176], "src": [32,192], "f": 0, "t": 434, "d": [102,185], "a": 1 }, + { "px": [160,176], "src": [16,192], "f": 0, "t": 433, "d": [102,186], "a": 1 }, + { "px": [176,176], "src": [16,192], "f": 0, "t": 433, "d": [102,187], "a": 1 }, + { "px": [64,192], "src": [0,192], "f": 0, "t": 432, "d": [102,196], "a": 1 }, + { "px": [80,192], "src": [32,192], "f": 0, "t": 434, "d": [102,197], "a": 1 }, + { "px": [96,192], "src": [0,192], "f": 0, "t": 432, "d": [102,198], "a": 1 }, + { "px": [144,192], "src": [16,192], "f": 0, "t": 433, "d": [102,201], "a": 1 }, + { "px": [176,192], "src": [16,192], "f": 0, "t": 433, "d": [102,203], "a": 1 }, + { "px": [144,208], "src": [0,192], "f": 0, "t": 432, "d": [102,217], "a": 1 }, + { "px": [64,224], "src": [16,192], "f": 0, "t": 433, "d": [102,228], "a": 1 }, + { "px": [144,224], "src": [16,192], "f": 0, "t": 433, "d": [102,233], "a": 1 }, + { "px": [160,224], "src": [16,192], "f": 0, "t": 433, "d": [102,234], "a": 1 }, + { "px": [176,224], "src": [32,192], "f": 0, "t": 434, "d": [102,235], "a": 1 }, + { "px": [128,240], "src": [32,192], "f": 0, "t": 434, "d": [102,248], "a": 1 }, + { "px": [144,240], "src": [16,192], "f": 0, "t": 433, "d": [102,249], "a": 1 }, + { "px": [128,16], "src": [160,208], "f": 0, "t": 478, "d": [70,24], "a": 1 }, + { "px": [64,32], "src": [160,208], "f": 0, "t": 478, "d": [70,36], "a": 1 }, + { "px": [128,32], "src": [160,208], "f": 0, "t": 478, "d": [70,40], "a": 1 }, + { "px": [192,32], "src": [160,208], "f": 0, "t": 478, "d": [70,44], "a": 1 }, + { "px": [64,48], "src": [160,208], "f": 0, "t": 478, "d": [70,52], "a": 1 }, + { "px": [128,48], "src": [160,208], "f": 0, "t": 478, "d": [70,56], "a": 1 }, + { "px": [192,48], "src": [160,208], "f": 0, "t": 478, "d": [70,60], "a": 1 }, + { "px": [128,64], "src": [160,208], "f": 0, "t": 478, "d": [70,72], "a": 1 }, + { "px": [192,64], "src": [160,208], "f": 0, "t": 478, "d": [70,76], "a": 1 }, + { "px": [192,80], "src": [160,208], "f": 0, "t": 478, "d": [70,92], "a": 1 }, + { "px": [64,112], "src": [160,208], "f": 0, "t": 478, "d": [70,116], "a": 1 }, + { "px": [64,128], "src": [160,208], "f": 0, "t": 478, "d": [70,132], "a": 1 }, + { "px": [192,128], "src": [160,208], "f": 0, "t": 478, "d": [70,140], "a": 1 }, + { "px": [0,144], "src": [160,208], "f": 0, "t": 478, "d": [70,144], "a": 1 }, + { "px": [64,144], "src": [160,208], "f": 0, "t": 478, "d": [70,148], "a": 1 }, + { "px": [192,144], "src": [160,208], "f": 0, "t": 478, "d": [70,156], "a": 1 }, + { "px": [0,160], "src": [160,208], "f": 0, "t": 478, "d": [70,160], "a": 1 }, + { "px": [64,160], "src": [160,208], "f": 0, "t": 478, "d": [70,164], "a": 1 }, + { "px": [192,160], "src": [160,208], "f": 0, "t": 478, "d": [70,172], "a": 1 }, + { "px": [64,176], "src": [160,208], "f": 0, "t": 478, "d": [70,180], "a": 1 }, + { "px": [112,32], "src": [240,176], "f": 0, "t": 411, "d": [91,39], "a": 1 }, + { "px": [160,32], "src": [240,176], "f": 1, "t": 411, "d": [91,42], "a": 1 }, + { "px": [112,48], "src": [240,176], "f": 2, "t": 411, "d": [91,55], "a": 1 }, + { "px": [192,48], "src": [240,176], "f": 1, "t": 411, "d": [91,60], "a": 1 }, + { "px": [192,64], "src": [240,176], "f": 2, "t": 411, "d": [91,76], "a": 1 }, + { "px": [208,64], "src": [240,176], "f": 3, "t": 411, "d": [91,77], "a": 1 }, + { "px": [208,80], "src": [240,176], "f": 2, "t": 411, "d": [91,93], "a": 1 }, + { "px": [64,128], "src": [240,176], "f": 0, "t": 411, "d": [91,132], "a": 1 }, + { "px": [80,128], "src": [240,176], "f": 1, "t": 411, "d": [91,133], "a": 1 }, + { "px": [192,128], "src": [240,176], "f": 3, "t": 411, "d": [91,140], "a": 1 }, + { "px": [208,128], "src": [240,176], "f": 0, "t": 411, "d": [91,141], "a": 1 }, + { "px": [48,144], "src": [240,176], "f": 0, "t": 411, "d": [91,147], "a": 1 }, + { "px": [192,144], "src": [240,176], "f": 0, "t": 411, "d": [91,156], "a": 1 }, + { "px": [64,160], "src": [240,176], "f": 2, "t": 411, "d": [91,164], "a": 1 }, + { "px": [176,160], "src": [240,176], "f": 0, "t": 411, "d": [91,171], "a": 1 }, + { "px": [176,160], "src": [240,176], "f": 3, "t": 411, "d": [91,171], "a": 1 }, + { "px": [96,224], "src": [240,176], "f": 1, "t": 411, "d": [91,230], "a": 1 }, + { "px": [144,224], "src": [240,176], "f": 0, "t": 411, "d": [91,233], "a": 1 }, + { "px": [112,16], "src": [208,176], "f": 0, "t": 409, "d": [89,23], "a": 1 }, + { "px": [160,16], "src": [208,176], "f": 1, "t": 409, "d": [89,26], "a": 1 }, + { "px": [64,32], "src": [208,176], "f": 0, "t": 409, "d": [89,36], "a": 1 }, + { "px": [192,32], "src": [208,176], "f": 1, "t": 409, "d": [89,44], "a": 1 }, + { "px": [64,48], "src": [208,176], "f": 0, "t": 409, "d": [89,52], "a": 1 }, + { "px": [224,48], "src": [208,176], "f": 1, "t": 409, "d": [89,62], "a": 1 }, + { "px": [112,64], "src": [208,176], "f": 0, "t": 409, "d": [89,71], "a": 1 }, + { "px": [224,64], "src": [208,176], "f": 1, "t": 409, "d": [89,78], "a": 1 }, + { "px": [192,80], "src": [208,176], "f": 0, "t": 409, "d": [89,92], "a": 1 }, + { "px": [208,80], "src": [208,176], "f": 1, "t": 409, "d": [89,93], "a": 1 }, + { "px": [208,96], "src": [208,176], "f": 0, "t": 409, "d": [89,109], "a": 1 }, + { "px": [208,96], "src": [208,176], "f": 1, "t": 409, "d": [89,109], "a": 1 }, + { "px": [64,112], "src": [208,176], "f": 0, "t": 409, "d": [89,116], "a": 1 }, + { "px": [80,112], "src": [208,176], "f": 1, "t": 409, "d": [89,117], "a": 1 }, + { "px": [208,112], "src": [208,176], "f": 0, "t": 409, "d": [89,125], "a": 1 }, + { "px": [208,112], "src": [208,176], "f": 1, "t": 409, "d": [89,125], "a": 1 }, + { "px": [48,128], "src": [208,176], "f": 0, "t": 409, "d": [89,131], "a": 1 }, + { "px": [96,128], "src": [208,176], "f": 1, "t": 409, "d": [89,134], "a": 1 }, + { "px": [192,128], "src": [208,176], "f": 0, "t": 409, "d": [89,140], "a": 1 }, + { "px": [208,128], "src": [208,176], "f": 1, "t": 409, "d": [89,141], "a": 1 }, + { "px": [96,144], "src": [208,176], "f": 1, "t": 409, "d": [89,150], "a": 1 }, + { "px": [176,144], "src": [208,176], "f": 0, "t": 409, "d": [89,155], "a": 1 }, + { "px": [192,144], "src": [208,176], "f": 1, "t": 409, "d": [89,156], "a": 1 }, + { "px": [96,160], "src": [208,176], "f": 1, "t": 409, "d": [89,166], "a": 1 }, + { "px": [144,160], "src": [208,176], "f": 0, "t": 409, "d": [89,169], "a": 1 }, + { "px": [192,160], "src": [208,176], "f": 1, "t": 409, "d": [89,172], "a": 1 }, + { "px": [64,176], "src": [208,176], "f": 0, "t": 409, "d": [89,180], "a": 1 }, + { "px": [96,176], "src": [208,176], "f": 1, "t": 409, "d": [89,182], "a": 1 }, + { "px": [144,176], "src": [208,176], "f": 0, "t": 409, "d": [89,185], "a": 1 }, + { "px": [176,176], "src": [208,176], "f": 1, "t": 409, "d": [89,187], "a": 1 }, + { "px": [64,192], "src": [208,176], "f": 0, "t": 409, "d": [89,196], "a": 1 }, + { "px": [96,192], "src": [208,176], "f": 1, "t": 409, "d": [89,198], "a": 1 }, + { "px": [144,192], "src": [208,176], "f": 0, "t": 409, "d": [89,201], "a": 1 }, + { "px": [176,192], "src": [208,176], "f": 1, "t": 409, "d": [89,203], "a": 1 }, + { "px": [64,208], "src": [208,176], "f": 0, "t": 409, "d": [89,212], "a": 1 }, + { "px": [96,208], "src": [208,176], "f": 1, "t": 409, "d": [89,214], "a": 1 }, + { "px": [144,208], "src": [208,176], "f": 0, "t": 409, "d": [89,217], "a": 1 }, + { "px": [176,208], "src": [208,176], "f": 1, "t": 409, "d": [89,219], "a": 1 }, + { "px": [64,224], "src": [208,176], "f": 0, "t": 409, "d": [89,228], "a": 1 }, + { "px": [176,224], "src": [208,176], "f": 1, "t": 409, "d": [89,235], "a": 1 }, + { "px": [64,240], "src": [208,176], "f": 0, "t": 409, "d": [89,244], "a": 1 }, + { "px": [176,240], "src": [208,176], "f": 1, "t": 409, "d": [89,251], "a": 1 }, + { "px": [112,16], "src": [224,176], "f": 0, "t": 410, "d": [88,23], "a": 1 }, + { "px": [128,16], "src": [224,176], "f": 0, "t": 410, "d": [88,24], "a": 1 }, + { "px": [144,16], "src": [224,176], "f": 0, "t": 410, "d": [88,25], "a": 1 }, + { "px": [160,16], "src": [224,176], "f": 0, "t": 410, "d": [88,26], "a": 1 }, + { "px": [64,32], "src": [224,176], "f": 0, "t": 410, "d": [88,36], "a": 1 }, + { "px": [80,32], "src": [224,176], "f": 0, "t": 410, "d": [88,37], "a": 1 }, + { "px": [96,32], "src": [224,176], "f": 0, "t": 410, "d": [88,38], "a": 1 }, + { "px": [176,32], "src": [224,176], "f": 0, "t": 410, "d": [88,43], "a": 1 }, + { "px": [192,32], "src": [224,176], "f": 0, "t": 410, "d": [88,44], "a": 1 }, + { "px": [64,48], "src": [224,176], "f": 2, "t": 410, "d": [88,52], "a": 1 }, + { "px": [80,48], "src": [224,176], "f": 2, "t": 410, "d": [88,53], "a": 1 }, + { "px": [96,48], "src": [224,176], "f": 2, "t": 410, "d": [88,54], "a": 1 }, + { "px": [208,48], "src": [224,176], "f": 0, "t": 410, "d": [88,61], "a": 1 }, + { "px": [224,48], "src": [224,176], "f": 0, "t": 410, "d": [88,62], "a": 1 }, + { "px": [112,64], "src": [224,176], "f": 2, "t": 410, "d": [88,71], "a": 1 }, + { "px": [128,64], "src": [224,176], "f": 2, "t": 410, "d": [88,72], "a": 1 }, + { "px": [144,64], "src": [224,176], "f": 2, "t": 410, "d": [88,73], "a": 1 }, + { "px": [160,64], "src": [224,176], "f": 2, "t": 410, "d": [88,74], "a": 1 }, + { "px": [176,64], "src": [224,176], "f": 2, "t": 410, "d": [88,75], "a": 1 }, + { "px": [224,64], "src": [224,176], "f": 2, "t": 410, "d": [88,78], "a": 1 }, + { "px": [192,80], "src": [224,176], "f": 2, "t": 410, "d": [88,92], "a": 1 }, + { "px": [64,112], "src": [224,176], "f": 0, "t": 410, "d": [88,116], "a": 1 }, + { "px": [80,112], "src": [224,176], "f": 0, "t": 410, "d": [88,117], "a": 1 }, + { "px": [48,128], "src": [224,176], "f": 0, "t": 410, "d": [88,131], "a": 1 }, + { "px": [96,128], "src": [224,176], "f": 0, "t": 410, "d": [88,134], "a": 1 }, + { "px": [192,128], "src": [224,176], "f": 0, "t": 410, "d": [88,140], "a": 1 }, + { "px": [208,128], "src": [224,176], "f": 2, "t": 410, "d": [88,141], "a": 1 }, + { "px": [0,144], "src": [224,176], "f": 0, "t": 410, "d": [88,144], "a": 1 }, + { "px": [16,144], "src": [224,176], "f": 0, "t": 410, "d": [88,145], "a": 1 }, + { "px": [32,144], "src": [224,176], "f": 0, "t": 410, "d": [88,146], "a": 1 }, + { "px": [176,144], "src": [224,176], "f": 0, "t": 410, "d": [88,155], "a": 1 }, + { "px": [0,160], "src": [224,176], "f": 2, "t": 410, "d": [88,160], "a": 1 }, + { "px": [16,160], "src": [224,176], "f": 2, "t": 410, "d": [88,161], "a": 1 }, + { "px": [32,160], "src": [224,176], "f": 2, "t": 410, "d": [88,162], "a": 1 }, + { "px": [48,160], "src": [224,176], "f": 2, "t": 410, "d": [88,163], "a": 1 }, + { "px": [144,160], "src": [224,176], "f": 0, "t": 410, "d": [88,169], "a": 1 }, + { "px": [160,160], "src": [224,176], "f": 0, "t": 410, "d": [88,170], "a": 1 }, + { "px": [192,160], "src": [224,176], "f": 2, "t": 410, "d": [88,172], "a": 1 }, + { "px": [112,224], "src": [224,176], "f": 0, "t": 410, "d": [88,231], "a": 1 }, + { "px": [128,224], "src": [224,176], "f": 0, "t": 410, "d": [88,232], "a": 1 } + ], + "seed": 1720382, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a3591db0-66b0-11ec-9cd7-43878cf4d0ab", "dir": "w" }, { "levelIid": "a35944c0-66b0-11ec-9cd7-6b4e2322a69e", "dir": "n" }, { "levelIid": "a35a2f20-66b0-11ec-9cd7-db6f994e2834", "dir": "s" } ] + }, + { + "identifier": "Underwater_cove", + "iid": "a35a2f20-66b0-11ec-9cd7-db6f994e2834", + "uid": 4, + "worldX": 432, + "worldY": -128, + "worldDepth": 0, + "pxWid": 448, + "pxHei": 256, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 28, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "490edf20-66b0-11ec-8fc6-1fa45cfd799b", + "levelId": 4, + "layerDefUid": 119, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 459977, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Plant", + "__grid": [13,5], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 240, "y": 288, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "392a2820-66b0-11ec-8fc6-3f3e416501f0", + "width": 20, + "height": 20, + "defUid": 116, + "px": [216,96], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Clover", "__tile": { "tilesetUid": 117, "x": 240, "y": 288, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Clover"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 2, "__tile": null, "defUid": 122, "realEditorValues": [{ "id": "V_Int", "params": [2] }] } + ] + } + ] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 28, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35a2f23-66b0-11ec-9cd7-8d0012ee2bd9", + "levelId": 4, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2, + 2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,0, + 0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,0,0,0,0,0,0,0,0, + 0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, + 1,1,1,1,1,2,2,2,2,2,2,1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1, + 2,2,2,2,1,1,1,2,2,2,2,2,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2, + 2,2,2,2,2,2,1,1,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1, + 1,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,1,1,1,1, + 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,2,2,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [16,0], "src": [16,16], "f": 0, "t": 37, "d": [8,1], "a": 1 }, + { "px": [160,0], "src": [16,32], "f": 0, "t": 73, "d": [8,10], "a": 1 }, + { "px": [176,0], "src": [16,32], "f": 0, "t": 73, "d": [8,11], "a": 1 }, + { "px": [192,0], "src": [16,32], "f": 0, "t": 73, "d": [8,12], "a": 1 }, + { "px": [272,0], "src": [16,32], "f": 0, "t": 73, "d": [8,17], "a": 1 }, + { "px": [336,0], "src": [16,16], "f": 0, "t": 37, "d": [8,21], "a": 1 }, + { "px": [416,0], "src": [16,32], "f": 0, "t": 73, "d": [8,26], "a": 1 }, + { "px": [0,16], "src": [16,16], "f": 0, "t": 37, "d": [8,28], "a": 1 }, + { "px": [16,16], "src": [16,32], "f": 0, "t": 73, "d": [8,29], "a": 1 }, + { "px": [160,16], "src": [16,16], "f": 0, "t": 37, "d": [8,38], "a": 1 }, + { "px": [192,16], "src": [16,32], "f": 0, "t": 73, "d": [8,40], "a": 1 }, + { "px": [208,16], "src": [16,16], "f": 0, "t": 37, "d": [8,41], "a": 1 }, + { "px": [224,16], "src": [16,16], "f": 0, "t": 37, "d": [8,42], "a": 1 }, + { "px": [240,16], "src": [16,32], "f": 0, "t": 73, "d": [8,43], "a": 1 }, + { "px": [256,16], "src": [16,32], "f": 0, "t": 73, "d": [8,44], "a": 1 }, + { "px": [272,16], "src": [16,16], "f": 0, "t": 37, "d": [8,45], "a": 1 }, + { "px": [288,16], "src": [16,16], "f": 0, "t": 37, "d": [8,46], "a": 1 }, + { "px": [304,16], "src": [16,16], "f": 0, "t": 37, "d": [8,47], "a": 1 }, + { "px": [320,16], "src": [16,32], "f": 0, "t": 73, "d": [8,48], "a": 1 }, + { "px": [336,16], "src": [16,32], "f": 0, "t": 73, "d": [8,49], "a": 1 }, + { "px": [352,16], "src": [16,16], "f": 0, "t": 37, "d": [8,50], "a": 1 }, + { "px": [368,16], "src": [16,32], "f": 0, "t": 73, "d": [8,51], "a": 1 }, + { "px": [384,16], "src": [16,16], "f": 0, "t": 37, "d": [8,52], "a": 1 }, + { "px": [416,16], "src": [16,16], "f": 0, "t": 37, "d": [8,54], "a": 1 }, + { "px": [0,32], "src": [16,32], "f": 0, "t": 73, "d": [8,56], "a": 1 }, + { "px": [16,32], "src": [16,32], "f": 0, "t": 73, "d": [8,57], "a": 1 }, + { "px": [160,32], "src": [16,32], "f": 0, "t": 73, "d": [8,66], "a": 1 }, + { "px": [192,32], "src": [16,32], "f": 0, "t": 73, "d": [8,68], "a": 1 }, + { "px": [384,32], "src": [16,32], "f": 0, "t": 73, "d": [8,80], "a": 1 }, + { "px": [400,32], "src": [16,16], "f": 0, "t": 37, "d": [8,81], "a": 1 }, + { "px": [416,32], "src": [16,16], "f": 0, "t": 37, "d": [8,82], "a": 1 }, + { "px": [16,48], "src": [16,32], "f": 0, "t": 73, "d": [8,85], "a": 1 }, + { "px": [160,48], "src": [16,16], "f": 0, "t": 37, "d": [8,94], "a": 1 }, + { "px": [192,48], "src": [16,32], "f": 0, "t": 73, "d": [8,96], "a": 1 }, + { "px": [384,48], "src": [16,16], "f": 0, "t": 37, "d": [8,108], "a": 1 }, + { "px": [400,48], "src": [16,32], "f": 0, "t": 73, "d": [8,109], "a": 1 }, + { "px": [32,64], "src": [16,32], "f": 0, "t": 73, "d": [8,114], "a": 1 }, + { "px": [176,64], "src": [16,16], "f": 0, "t": 37, "d": [8,123], "a": 1 }, + { "px": [192,64], "src": [16,16], "f": 0, "t": 37, "d": [8,124], "a": 1 }, + { "px": [384,64], "src": [16,32], "f": 0, "t": 73, "d": [8,136], "a": 1 }, + { "px": [400,64], "src": [16,16], "f": 0, "t": 37, "d": [8,137], "a": 1 }, + { "px": [32,80], "src": [16,32], "f": 0, "t": 73, "d": [8,142], "a": 1 }, + { "px": [176,80], "src": [16,16], "f": 0, "t": 37, "d": [8,151], "a": 1 }, + { "px": [192,80], "src": [16,16], "f": 0, "t": 37, "d": [8,152], "a": 1 }, + { "px": [384,80], "src": [16,16], "f": 0, "t": 37, "d": [8,164], "a": 1 }, + { "px": [400,80], "src": [16,32], "f": 0, "t": 73, "d": [8,165], "a": 1 }, + { "px": [0,96], "src": [16,16], "f": 0, "t": 37, "d": [8,168], "a": 1 }, + { "px": [64,96], "src": [16,32], "f": 0, "t": 73, "d": [8,172], "a": 1 }, + { "px": [192,96], "src": [16,32], "f": 0, "t": 73, "d": [8,180], "a": 1 }, + { "px": [320,96], "src": [16,16], "f": 0, "t": 37, "d": [8,188], "a": 1 }, + { "px": [336,96], "src": [16,32], "f": 0, "t": 73, "d": [8,189], "a": 1 }, + { "px": [384,96], "src": [16,16], "f": 0, "t": 37, "d": [8,192], "a": 1 }, + { "px": [0,112], "src": [16,32], "f": 0, "t": 73, "d": [8,196], "a": 1 }, + { "px": [32,112], "src": [16,32], "f": 0, "t": 73, "d": [8,198], "a": 1 }, + { "px": [80,112], "src": [16,32], "f": 0, "t": 73, "d": [8,201], "a": 1 }, + { "px": [320,112], "src": [16,16], "f": 0, "t": 37, "d": [8,216], "a": 1 }, + { "px": [336,112], "src": [16,32], "f": 0, "t": 73, "d": [8,217], "a": 1 }, + { "px": [384,112], "src": [16,32], "f": 0, "t": 73, "d": [8,220], "a": 1 }, + { "px": [400,112], "src": [16,16], "f": 0, "t": 37, "d": [8,221], "a": 1 }, + { "px": [416,112], "src": [16,16], "f": 0, "t": 37, "d": [8,222], "a": 1 }, + { "px": [16,128], "src": [16,32], "f": 0, "t": 73, "d": [8,225], "a": 1 }, + { "px": [48,128], "src": [16,16], "f": 0, "t": 37, "d": [8,227], "a": 1 }, + { "px": [80,128], "src": [16,16], "f": 0, "t": 37, "d": [8,229], "a": 1 }, + { "px": [320,128], "src": [16,32], "f": 0, "t": 73, "d": [8,244], "a": 1 }, + { "px": [336,128], "src": [16,32], "f": 0, "t": 73, "d": [8,245], "a": 1 }, + { "px": [384,128], "src": [16,32], "f": 0, "t": 73, "d": [8,248], "a": 1 }, + { "px": [400,128], "src": [16,16], "f": 0, "t": 37, "d": [8,249], "a": 1 }, + { "px": [0,144], "src": [16,32], "f": 0, "t": 73, "d": [8,252], "a": 1 }, + { "px": [16,144], "src": [16,16], "f": 0, "t": 37, "d": [8,253], "a": 1 }, + { "px": [80,144], "src": [16,16], "f": 0, "t": 37, "d": [8,257], "a": 1 }, + { "px": [320,144], "src": [16,32], "f": 0, "t": 73, "d": [8,272], "a": 1 }, + { "px": [336,144], "src": [16,16], "f": 0, "t": 37, "d": [8,273], "a": 1 }, + { "px": [384,144], "src": [16,32], "f": 0, "t": 73, "d": [8,276], "a": 1 }, + { "px": [0,160], "src": [16,16], "f": 0, "t": 37, "d": [8,280], "a": 1 }, + { "px": [16,160], "src": [16,32], "f": 0, "t": 73, "d": [8,281], "a": 1 }, + { "px": [32,160], "src": [16,16], "f": 0, "t": 37, "d": [8,282], "a": 1 }, + { "px": [80,160], "src": [16,32], "f": 0, "t": 73, "d": [8,285], "a": 1 }, + { "px": [320,160], "src": [16,32], "f": 0, "t": 73, "d": [8,300], "a": 1 }, + { "px": [336,160], "src": [16,16], "f": 0, "t": 37, "d": [8,301], "a": 1 }, + { "px": [384,160], "src": [16,32], "f": 0, "t": 73, "d": [8,304], "a": 1 }, + { "px": [400,160], "src": [16,32], "f": 0, "t": 73, "d": [8,305], "a": 1 }, + { "px": [64,176], "src": [16,16], "f": 0, "t": 37, "d": [8,312], "a": 1 }, + { "px": [96,176], "src": [16,16], "f": 0, "t": 37, "d": [8,314], "a": 1 }, + { "px": [112,176], "src": [16,32], "f": 0, "t": 73, "d": [8,315], "a": 1 }, + { "px": [128,176], "src": [16,16], "f": 0, "t": 37, "d": [8,316], "a": 1 }, + { "px": [256,176], "src": [16,16], "f": 0, "t": 37, "d": [8,324], "a": 1 }, + { "px": [272,176], "src": [16,16], "f": 0, "t": 37, "d": [8,325], "a": 1 }, + { "px": [320,176], "src": [16,16], "f": 0, "t": 37, "d": [8,328], "a": 1 }, + { "px": [336,176], "src": [16,16], "f": 0, "t": 37, "d": [8,329], "a": 1 }, + { "px": [384,176], "src": [16,32], "f": 0, "t": 73, "d": [8,332], "a": 1 }, + { "px": [400,176], "src": [16,32], "f": 0, "t": 73, "d": [8,333], "a": 1 }, + { "px": [16,192], "src": [16,16], "f": 0, "t": 37, "d": [8,337], "a": 1 }, + { "px": [64,192], "src": [16,16], "f": 0, "t": 37, "d": [8,340], "a": 1 }, + { "px": [80,192], "src": [16,32], "f": 0, "t": 73, "d": [8,341], "a": 1 }, + { "px": [96,192], "src": [16,16], "f": 0, "t": 37, "d": [8,342], "a": 1 }, + { "px": [144,192], "src": [16,32], "f": 0, "t": 73, "d": [8,345], "a": 1 }, + { "px": [192,192], "src": [16,16], "f": 0, "t": 37, "d": [8,348], "a": 1 }, + { "px": [208,192], "src": [16,32], "f": 0, "t": 73, "d": [8,349], "a": 1 }, + { "px": [336,192], "src": [16,16], "f": 0, "t": 37, "d": [8,357], "a": 1 }, + { "px": [384,192], "src": [16,32], "f": 0, "t": 73, "d": [8,360], "a": 1 }, + { "px": [16,208], "src": [16,32], "f": 0, "t": 73, "d": [8,365], "a": 1 }, + { "px": [32,208], "src": [16,16], "f": 0, "t": 37, "d": [8,366], "a": 1 }, + { "px": [128,208], "src": [16,16], "f": 0, "t": 37, "d": [8,372], "a": 1 }, + { "px": [144,208], "src": [16,16], "f": 0, "t": 37, "d": [8,373], "a": 1 }, + { "px": [336,208], "src": [16,32], "f": 0, "t": 73, "d": [8,385], "a": 1 }, + { "px": [384,208], "src": [16,32], "f": 0, "t": 73, "d": [8,388], "a": 1 }, + { "px": [432,208], "src": [16,16], "f": 0, "t": 37, "d": [8,391], "a": 1 }, + { "px": [320,224], "src": [16,32], "f": 0, "t": 73, "d": [8,412], "a": 1 }, + { "px": [336,224], "src": [16,16], "f": 0, "t": 37, "d": [8,413], "a": 1 }, + { "px": [384,224], "src": [16,16], "f": 0, "t": 37, "d": [8,416], "a": 1 }, + { "px": [400,224], "src": [16,16], "f": 0, "t": 37, "d": [8,417], "a": 1 }, + { "px": [16,240], "src": [16,16], "f": 0, "t": 37, "d": [8,421], "a": 1 }, + { "px": [128,240], "src": [16,32], "f": 0, "t": 73, "d": [8,428], "a": 1 }, + { "px": [336,240], "src": [16,16], "f": 0, "t": 37, "d": [8,441], "a": 1 }, + { "px": [384,240], "src": [16,16], "f": 0, "t": 37, "d": [8,444], "a": 1 }, + { "px": [416,240], "src": [16,32], "f": 0, "t": 73, "d": [8,446], "a": 1 }, + { "px": [432,240], "src": [16,16], "f": 0, "t": 37, "d": [8,447], "a": 1 }, + { "px": [0,0], "src": [160,192], "f": 0, "t": 442, "d": [84,0], "a": 1 }, + { "px": [208,0], "src": [144,192], "f": 0, "t": 441, "d": [84,13], "a": 1 }, + { "px": [224,0], "src": [144,192], "f": 0, "t": 441, "d": [84,14], "a": 1 }, + { "px": [240,0], "src": [144,192], "f": 0, "t": 441, "d": [84,15], "a": 1 }, + { "px": [256,0], "src": [160,192], "f": 0, "t": 442, "d": [84,16], "a": 1 }, + { "px": [288,0], "src": [144,192], "f": 0, "t": 441, "d": [84,18], "a": 1 }, + { "px": [304,0], "src": [160,192], "f": 0, "t": 442, "d": [84,19], "a": 1 }, + { "px": [352,0], "src": [160,192], "f": 0, "t": 442, "d": [84,22], "a": 1 }, + { "px": [368,0], "src": [176,192], "f": 0, "t": 443, "d": [84,23], "a": 1 }, + { "px": [176,16], "src": [176,192], "f": 0, "t": 443, "d": [84,39], "a": 1 }, + { "px": [400,16], "src": [144,192], "f": 0, "t": 441, "d": [84,53], "a": 1 }, + { "px": [176,32], "src": [176,192], "f": 0, "t": 443, "d": [84,67], "a": 1 }, + { "px": [176,48], "src": [176,192], "f": 0, "t": 443, "d": [84,95], "a": 1 }, + { "px": [0,64], "src": [176,192], "f": 0, "t": 443, "d": [84,112], "a": 1 }, + { "px": [16,64], "src": [192,192], "f": 0, "t": 444, "d": [84,113], "a": 1 }, + { "px": [432,64], "src": [176,192], "f": 0, "t": 443, "d": [84,139], "a": 1 }, + { "px": [416,80], "src": [192,192], "f": 0, "t": 444, "d": [84,166], "a": 1 }, + { "px": [48,96], "src": [144,192], "f": 0, "t": 441, "d": [84,171], "a": 1 }, + { "px": [400,96], "src": [192,192], "f": 0, "t": 444, "d": [84,193], "a": 1 }, + { "px": [416,96], "src": [176,192], "f": 0, "t": 443, "d": [84,194], "a": 1 }, + { "px": [48,112], "src": [192,192], "f": 0, "t": 444, "d": [84,199], "a": 1 }, + { "px": [64,112], "src": [160,192], "f": 0, "t": 442, "d": [84,200], "a": 1 }, + { "px": [64,128], "src": [176,192], "f": 0, "t": 443, "d": [84,228], "a": 1 }, + { "px": [64,144], "src": [144,192], "f": 0, "t": 441, "d": [84,256], "a": 1 }, + { "px": [400,144], "src": [192,192], "f": 0, "t": 444, "d": [84,277], "a": 1 }, + { "px": [432,160], "src": [192,192], "f": 0, "t": 444, "d": [84,307], "a": 1 }, + { "px": [0,176], "src": [176,192], "f": 0, "t": 443, "d": [84,308], "a": 1 }, + { "px": [160,192], "src": [160,192], "f": 0, "t": 442, "d": [84,346], "a": 1 }, + { "px": [176,192], "src": [176,192], "f": 0, "t": 443, "d": [84,347], "a": 1 }, + { "px": [224,192], "src": [192,192], "f": 0, "t": 444, "d": [84,350], "a": 1 }, + { "px": [240,192], "src": [160,192], "f": 0, "t": 442, "d": [84,351], "a": 1 }, + { "px": [288,192], "src": [160,192], "f": 0, "t": 442, "d": [84,354], "a": 1 }, + { "px": [304,192], "src": [192,192], "f": 0, "t": 444, "d": [84,355], "a": 1 }, + { "px": [320,192], "src": [192,192], "f": 0, "t": 444, "d": [84,356], "a": 1 }, + { "px": [400,192], "src": [192,192], "f": 0, "t": 444, "d": [84,361], "a": 1 }, + { "px": [416,192], "src": [192,192], "f": 0, "t": 444, "d": [84,362], "a": 1 }, + { "px": [80,208], "src": [160,192], "f": 0, "t": 442, "d": [84,369], "a": 1 }, + { "px": [96,208], "src": [144,192], "f": 0, "t": 441, "d": [84,370], "a": 1 }, + { "px": [176,208], "src": [192,192], "f": 0, "t": 444, "d": [84,375], "a": 1 }, + { "px": [240,208], "src": [176,192], "f": 0, "t": 443, "d": [84,379], "a": 1 }, + { "px": [272,208], "src": [144,192], "f": 0, "t": 441, "d": [84,381], "a": 1 }, + { "px": [320,208], "src": [192,192], "f": 0, "t": 444, "d": [84,384], "a": 1 }, + { "px": [400,208], "src": [192,192], "f": 0, "t": 444, "d": [84,389], "a": 1 }, + { "px": [96,224], "src": [144,192], "f": 0, "t": 441, "d": [84,398], "a": 1 }, + { "px": [224,224], "src": [160,192], "f": 0, "t": 442, "d": [84,406], "a": 1 }, + { "px": [272,224], "src": [192,192], "f": 0, "t": 444, "d": [84,409], "a": 1 }, + { "px": [224,240], "src": [160,192], "f": 0, "t": 442, "d": [84,434], "a": 1 }, + { "px": [240,240], "src": [192,192], "f": 0, "t": 444, "d": [84,435], "a": 1 }, + { "px": [304,240], "src": [192,192], "f": 0, "t": 444, "d": [84,439], "a": 1 }, + { "px": [320,240], "src": [192,192], "f": 0, "t": 444, "d": [84,440], "a": 1 }, + { "px": [400,240], "src": [176,192], "f": 0, "t": 443, "d": [84,445], "a": 1 }, + { "px": [208,17], "src": [32,144], "f": 0, "t": 326, "d": [75,41], "a": 1 }, + { "px": [224,17], "src": [16,144], "f": 0, "t": 325, "d": [75,42], "a": 1 }, + { "px": [240,17], "src": [16,144], "f": 0, "t": 325, "d": [75,43], "a": 1 }, + { "px": [256,16], "src": [32,144], "f": 0, "t": 326, "d": [75,44], "a": 1 }, + { "px": [272,16], "src": [32,144], "f": 0, "t": 326, "d": [75,45], "a": 1 }, + { "px": [288,17], "src": [32,144], "f": 0, "t": 326, "d": [75,46], "a": 1 }, + { "px": [304,17], "src": [32,144], "f": 0, "t": 326, "d": [75,47], "a": 1 }, + { "px": [352,17], "src": [16,144], "f": 0, "t": 325, "d": [75,50], "a": 1 }, + { "px": [368,17], "src": [16,144], "f": 0, "t": 325, "d": [75,51], "a": 1 }, + { "px": [192,96], "src": [16,144], "f": 0, "t": 325, "d": [75,180], "a": 1 }, + { "px": [48,80], "src": [48,96], "f": 0, "t": 219, "d": [9,143], "a": 1 }, + { "px": [80,96], "src": [64,96], "f": 0, "t": 220, "d": [9,173], "a": 1 }, + { "px": [96,160], "src": [64,96], "f": 0, "t": 220, "d": [9,286], "a": 1 }, + { "px": [112,160], "src": [64,96], "f": 0, "t": 220, "d": [9,287], "a": 1 }, + { "px": [144,176], "src": [48,96], "f": 0, "t": 219, "d": [9,317], "a": 1 }, + { "px": [160,176], "src": [48,96], "f": 0, "t": 219, "d": [9,318], "a": 1 }, + { "px": [176,176], "src": [48,96], "f": 0, "t": 219, "d": [9,319], "a": 1 }, + { "px": [192,176], "src": [48,96], "f": 0, "t": 219, "d": [9,320], "a": 1 }, + { "px": [208,176], "src": [16,96], "f": 0, "t": 217, "d": [9,321], "a": 1 }, + { "px": [224,176], "src": [64,96], "f": 0, "t": 220, "d": [9,322], "a": 1 }, + { "px": [240,176], "src": [64,96], "f": 0, "t": 220, "d": [9,323], "a": 1 }, + { "px": [288,176], "src": [16,96], "f": 0, "t": 217, "d": [9,326], "a": 1 }, + { "px": [304,176], "src": [16,96], "f": 0, "t": 217, "d": [9,327], "a": 1 }, + { "px": [18,0], "src": [0,128], "f": 1, "t": 288, "d": [10,1], "a": 1 }, + { "px": [160,0], "src": [0,128], "f": 0, "t": 288, "d": [10,10], "a": 1 }, + { "px": [16,16], "src": [0,128], "f": 1, "t": 288, "d": [10,29], "a": 1 }, + { "px": [158,16], "src": [0,112], "f": 0, "t": 252, "d": [10,38], "a": 1 }, + { "px": [16,32], "src": [0,128], "f": 1, "t": 288, "d": [10,57], "a": 1 }, + { "px": [192,32], "src": [0,128], "f": 1, "t": 288, "d": [10,68], "a": 1 }, + { "px": [384,32], "src": [0,128], "f": 0, "t": 288, "d": [10,80], "a": 1 }, + { "px": [159,48], "src": [0,128], "f": 0, "t": 288, "d": [10,94], "a": 1 }, + { "px": [193,48], "src": [0,128], "f": 1, "t": 288, "d": [10,96], "a": 1 }, + { "px": [384,48], "src": [0,128], "f": 0, "t": 288, "d": [10,108], "a": 1 }, + { "px": [33,64], "src": [0,112], "f": 1, "t": 252, "d": [10,114], "a": 1 }, + { "px": [193,64], "src": [0,128], "f": 1, "t": 288, "d": [10,124], "a": 1 }, + { "px": [382,64], "src": [0,112], "f": 0, "t": 252, "d": [10,136], "a": 1 }, + { "px": [176,80], "src": [0,128], "f": 0, "t": 288, "d": [10,151], "a": 1 }, + { "px": [192,80], "src": [0,128], "f": 1, "t": 288, "d": [10,152], "a": 1 }, + { "px": [384,80], "src": [0,128], "f": 0, "t": 288, "d": [10,164], "a": 1 }, + { "px": [336,96], "src": [0,128], "f": 1, "t": 288, "d": [10,189], "a": 1 }, + { "px": [383,96], "src": [0,128], "f": 0, "t": 288, "d": [10,192], "a": 1 }, + { "px": [318,112], "src": [0,128], "f": 0, "t": 288, "d": [10,216], "a": 1 }, + { "px": [336,112], "src": [0,128], "f": 1, "t": 288, "d": [10,217], "a": 1 }, + { "px": [384,112], "src": [0,128], "f": 0, "t": 288, "d": [10,220], "a": 1 }, + { "px": [82,128], "src": [0,128], "f": 1, "t": 288, "d": [10,229], "a": 1 }, + { "px": [318,128], "src": [0,112], "f": 0, "t": 252, "d": [10,244], "a": 1 }, + { "px": [336,128], "src": [0,128], "f": 1, "t": 288, "d": [10,245], "a": 1 }, + { "px": [384,128], "src": [0,112], "f": 0, "t": 252, "d": [10,248], "a": 1 }, + { "px": [81,144], "src": [0,112], "f": 1, "t": 252, "d": [10,257], "a": 1 }, + { "px": [319,144], "src": [0,112], "f": 0, "t": 252, "d": [10,272], "a": 1 }, + { "px": [336,144], "src": [0,128], "f": 1, "t": 288, "d": [10,273], "a": 1 }, + { "px": [383,144], "src": [0,112], "f": 0, "t": 252, "d": [10,276], "a": 1 }, + { "px": [319,160], "src": [0,128], "f": 0, "t": 288, "d": [10,300], "a": 1 }, + { "px": [336,160], "src": [0,128], "f": 1, "t": 288, "d": [10,301], "a": 1 }, + { "px": [384,160], "src": [0,128], "f": 0, "t": 288, "d": [10,304], "a": 1 }, + { "px": [338,176], "src": [0,112], "f": 1, "t": 252, "d": [10,329], "a": 1 }, + { "px": [384,176], "src": [0,128], "f": 0, "t": 288, "d": [10,332], "a": 1 }, + { "px": [337,192], "src": [0,112], "f": 1, "t": 252, "d": [10,357], "a": 1 }, + { "px": [383,192], "src": [0,112], "f": 0, "t": 252, "d": [10,360], "a": 1 }, + { "px": [338,208], "src": [0,128], "f": 1, "t": 288, "d": [10,385], "a": 1 }, + { "px": [384,208], "src": [0,128], "f": 0, "t": 288, "d": [10,388], "a": 1 }, + { "px": [337,224], "src": [0,128], "f": 1, "t": 288, "d": [10,413], "a": 1 }, + { "px": [383,224], "src": [0,112], "f": 0, "t": 252, "d": [10,416], "a": 1 }, + { "px": [338,240], "src": [0,128], "f": 1, "t": 288, "d": [10,441], "a": 1 }, + { "px": [382,240], "src": [0,128], "f": 0, "t": 288, "d": [10,444], "a": 1 }, + { "px": [320,32], "src": [0,144], "f": 0, "t": 324, "d": [77,76], "a": 1 }, + { "px": [336,32], "src": [0,144], "f": 1, "t": 324, "d": [77,77], "a": 1 }, + { "px": [160,64], "src": [0,144], "f": 0, "t": 324, "d": [77,122], "a": 1 }, + { "px": [176,96], "src": [0,144], "f": 0, "t": 324, "d": [77,179], "a": 1 }, + { "px": [96,112], "src": [0,144], "f": 1, "t": 324, "d": [77,202], "a": 1 }, + { "px": [144,32], "src": [0,96], "f": 0, "t": 216, "d": [11,65], "a": 1 }, + { "px": [32,48], "src": [0,96], "f": 1, "t": 216, "d": [11,86], "a": 1 }, + { "px": [64,80], "src": [0,96], "f": 1, "t": 216, "d": [11,144], "a": 1 }, + { "px": [320,80], "src": [0,96], "f": 0, "t": 216, "d": [11,160], "a": 1 }, + { "px": [336,80], "src": [0,96], "f": 1, "t": 216, "d": [11,161], "a": 1 }, + { "px": [96,96], "src": [0,96], "f": 1, "t": 216, "d": [11,174], "a": 1 }, + { "px": [208,96], "src": [0,96], "f": 1, "t": 216, "d": [11,181], "a": 1 }, + { "px": [304,96], "src": [0,96], "f": 0, "t": 216, "d": [11,187], "a": 1 }, + { "px": [128,160], "src": [0,96], "f": 1, "t": 216, "d": [11,288], "a": 1 }, + { "px": [256,160], "src": [0,96], "f": 0, "t": 216, "d": [11,296], "a": 1 }, + { "px": [272,160], "src": [0,96], "f": 1, "t": 216, "d": [11,297], "a": 1 }, + { "px": [192,16], "src": [48,144], "f": 0, "t": 327, "d": [76,40], "a": 1 }, + { "px": [320,16], "src": [48,144], "f": 1, "t": 327, "d": [76,48], "a": 1 }, + { "px": [336,16], "src": [48,144], "f": 0, "t": 327, "d": [76,49], "a": 1 }, + { "px": [384,16], "src": [48,144], "f": 1, "t": 327, "d": [76,52], "a": 1 }, + { "px": [160,32], "src": [48,144], "f": 1, "t": 327, "d": [76,66], "a": 1 }, + { "px": [176,64], "src": [48,144], "f": 1, "t": 327, "d": [76,123], "a": 1 }, + { "px": [320,96], "src": [48,144], "f": 1, "t": 327, "d": [76,188], "a": 1 }, + { "px": [80,112], "src": [48,144], "f": 0, "t": 327, "d": [76,201], "a": 1 }, + { "px": [160,32], "src": [64,144], "f": 1, "t": 328, "d": [14,66], "a": 1 }, + { "px": [16,48], "src": [64,144], "f": 0, "t": 328, "d": [14,85], "a": 1 }, + { "px": [32,80], "src": [64,144], "f": 0, "t": 328, "d": [14,142], "a": 1 }, + { "px": [64,96], "src": [64,144], "f": 0, "t": 328, "d": [14,172], "a": 1 }, + { "px": [192,96], "src": [64,144], "f": 0, "t": 328, "d": [14,180], "a": 1 }, + { "px": [320,96], "src": [64,144], "f": 1, "t": 328, "d": [14,188], "a": 1 }, + { "px": [80,160], "src": [64,144], "f": 0, "t": 328, "d": [14,285], "a": 1 }, + { "px": [128,176], "src": [64,144], "f": 0, "t": 328, "d": [14,316], "a": 1 }, + { "px": [256,176], "src": [64,144], "f": 1, "t": 328, "d": [14,324], "a": 1 }, + { "px": [272,176], "src": [64,144], "f": 0, "t": 328, "d": [14,325], "a": 1 }, + { "px": [320,176], "src": [64,144], "f": 1, "t": 328, "d": [14,328], "a": 1 }, + { "px": [48,0], "src": [0,224], "f": 0, "t": 504, "d": [28,3], "a": 1 }, + { "px": [64,0], "src": [0,224], "f": 0, "t": 504, "d": [28,4], "a": 1 }, + { "px": [96,0], "src": [0,224], "f": 0, "t": 504, "d": [28,6], "a": 1 }, + { "px": [48,16], "src": [0,224], "f": 0, "t": 504, "d": [28,31], "a": 1 }, + { "px": [64,16], "src": [0,224], "f": 0, "t": 504, "d": [28,32], "a": 1 }, + { "px": [96,16], "src": [0,224], "f": 0, "t": 504, "d": [28,34], "a": 1 }, + { "px": [112,16], "src": [0,224], "f": 0, "t": 504, "d": [28,35], "a": 1 }, + { "px": [32,32], "src": [0,224], "f": 0, "t": 504, "d": [28,58], "a": 1 }, + { "px": [80,32], "src": [0,224], "f": 0, "t": 504, "d": [28,61], "a": 1 }, + { "px": [96,32], "src": [0,224], "f": 0, "t": 504, "d": [28,62], "a": 1 }, + { "px": [112,32], "src": [0,224], "f": 0, "t": 504, "d": [28,63], "a": 1 }, + { "px": [80,48], "src": [0,224], "f": 0, "t": 504, "d": [28,89], "a": 1 }, + { "px": [96,48], "src": [0,224], "f": 0, "t": 504, "d": [28,90], "a": 1 }, + { "px": [112,48], "src": [0,224], "f": 0, "t": 504, "d": [28,91], "a": 1 }, + { "px": [128,48], "src": [0,224], "f": 0, "t": 504, "d": [28,92], "a": 1 }, + { "px": [48,64], "src": [0,224], "f": 0, "t": 504, "d": [28,115], "a": 1 }, + { "px": [96,64], "src": [0,224], "f": 0, "t": 504, "d": [28,118], "a": 1 }, + { "px": [112,64], "src": [0,224], "f": 0, "t": 504, "d": [28,119], "a": 1 }, + { "px": [144,64], "src": [0,224], "f": 0, "t": 504, "d": [28,121], "a": 1 }, + { "px": [80,80], "src": [0,224], "f": 0, "t": 504, "d": [28,145], "a": 1 }, + { "px": [96,80], "src": [0,224], "f": 0, "t": 504, "d": [28,146], "a": 1 }, + { "px": [112,80], "src": [0,224], "f": 0, "t": 504, "d": [28,147], "a": 1 }, + { "px": [128,80], "src": [0,224], "f": 0, "t": 504, "d": [28,148], "a": 1 }, + { "px": [112,96], "src": [0,224], "f": 0, "t": 504, "d": [28,175], "a": 1 }, + { "px": [160,96], "src": [0,224], "f": 0, "t": 504, "d": [28,178], "a": 1 }, + { "px": [224,96], "src": [0,224], "f": 0, "t": 504, "d": [28,182], "a": 1 }, + { "px": [240,96], "src": [0,224], "f": 0, "t": 504, "d": [28,183], "a": 1 }, + { "px": [272,96], "src": [0,224], "f": 0, "t": 504, "d": [28,185], "a": 1 }, + { "px": [112,112], "src": [0,224], "f": 0, "t": 504, "d": [28,203], "a": 1 }, + { "px": [128,112], "src": [0,224], "f": 0, "t": 504, "d": [28,204], "a": 1 }, + { "px": [144,112], "src": [0,224], "f": 0, "t": 504, "d": [28,205], "a": 1 }, + { "px": [160,112], "src": [0,224], "f": 0, "t": 504, "d": [28,206], "a": 1 }, + { "px": [176,112], "src": [0,224], "f": 0, "t": 504, "d": [28,207], "a": 1 }, + { "px": [192,112], "src": [0,224], "f": 0, "t": 504, "d": [28,208], "a": 1 }, + { "px": [224,112], "src": [0,224], "f": 0, "t": 504, "d": [28,210], "a": 1 }, + { "px": [304,112], "src": [0,224], "f": 0, "t": 504, "d": [28,215], "a": 1 }, + { "px": [96,128], "src": [0,224], "f": 0, "t": 504, "d": [28,230], "a": 1 }, + { "px": [112,128], "src": [0,224], "f": 0, "t": 504, "d": [28,231], "a": 1 }, + { "px": [128,128], "src": [0,224], "f": 0, "t": 504, "d": [28,232], "a": 1 }, + { "px": [144,128], "src": [0,224], "f": 0, "t": 504, "d": [28,233], "a": 1 }, + { "px": [272,128], "src": [0,224], "f": 0, "t": 504, "d": [28,241], "a": 1 }, + { "px": [288,128], "src": [0,224], "f": 0, "t": 504, "d": [28,242], "a": 1 }, + { "px": [304,128], "src": [0,224], "f": 0, "t": 504, "d": [28,243], "a": 1 }, + { "px": [96,144], "src": [0,224], "f": 0, "t": 504, "d": [28,258], "a": 1 }, + { "px": [112,144], "src": [0,224], "f": 0, "t": 504, "d": [28,259], "a": 1 }, + { "px": [128,144], "src": [0,224], "f": 0, "t": 504, "d": [28,260], "a": 1 }, + { "px": [144,144], "src": [0,224], "f": 0, "t": 504, "d": [28,261], "a": 1 }, + { "px": [240,144], "src": [0,224], "f": 0, "t": 504, "d": [28,267], "a": 1 }, + { "px": [256,144], "src": [0,224], "f": 0, "t": 504, "d": [28,268], "a": 1 }, + { "px": [272,144], "src": [0,224], "f": 0, "t": 504, "d": [28,269], "a": 1 }, + { "px": [288,144], "src": [0,224], "f": 0, "t": 504, "d": [28,270], "a": 1 }, + { "px": [304,144], "src": [0,224], "f": 0, "t": 504, "d": [28,271], "a": 1 }, + { "px": [144,160], "src": [0,224], "f": 0, "t": 504, "d": [28,289], "a": 1 }, + { "px": [288,160], "src": [0,224], "f": 0, "t": 504, "d": [28,298], "a": 1 }, + { "px": [304,160], "src": [0,224], "f": 0, "t": 504, "d": [28,299], "a": 1 }, + { "px": [32,0], "src": [32,224], "f": 0, "t": 506, "d": [74,2], "a": 1 }, + { "px": [80,0], "src": [32,240], "f": 0, "t": 542, "d": [74,5], "a": 1 }, + { "px": [112,0], "src": [32,240], "f": 0, "t": 542, "d": [74,7], "a": 1 }, + { "px": [128,0], "src": [16,224], "f": 0, "t": 505, "d": [74,8], "a": 1 }, + { "px": [144,0], "src": [16,240], "f": 0, "t": 541, "d": [74,9], "a": 1 }, + { "px": [32,16], "src": [32,224], "f": 0, "t": 506, "d": [74,30], "a": 1 }, + { "px": [80,16], "src": [16,224], "f": 0, "t": 505, "d": [74,33], "a": 1 }, + { "px": [128,16], "src": [32,240], "f": 0, "t": 542, "d": [74,36], "a": 1 }, + { "px": [144,16], "src": [16,224], "f": 0, "t": 505, "d": [74,37], "a": 1 }, + { "px": [48,32], "src": [32,240], "f": 0, "t": 542, "d": [74,59], "a": 1 }, + { "px": [64,32], "src": [16,240], "f": 0, "t": 541, "d": [74,60], "a": 1 }, + { "px": [128,32], "src": [32,224], "f": 0, "t": 506, "d": [74,64], "a": 1 }, + { "px": [48,48], "src": [16,224], "f": 0, "t": 505, "d": [74,87], "a": 1 }, + { "px": [64,48], "src": [32,224], "f": 0, "t": 506, "d": [74,88], "a": 1 }, + { "px": [144,48], "src": [16,224], "f": 0, "t": 505, "d": [74,93], "a": 1 }, + { "px": [64,64], "src": [16,240], "f": 0, "t": 541, "d": [74,116], "a": 1 }, + { "px": [80,64], "src": [16,224], "f": 0, "t": 505, "d": [74,117], "a": 1 }, + { "px": [128,64], "src": [16,240], "f": 0, "t": 541, "d": [74,120], "a": 1 }, + { "px": [144,80], "src": [32,240], "f": 0, "t": 542, "d": [74,149], "a": 1 }, + { "px": [160,80], "src": [16,224], "f": 0, "t": 505, "d": [74,150], "a": 1 }, + { "px": [128,96], "src": [16,224], "f": 0, "t": 505, "d": [74,176], "a": 1 }, + { "px": [144,96], "src": [16,240], "f": 0, "t": 541, "d": [74,177], "a": 1 }, + { "px": [256,96], "src": [32,224], "f": 0, "t": 506, "d": [74,184], "a": 1 }, + { "px": [288,96], "src": [16,240], "f": 0, "t": 541, "d": [74,186], "a": 1 }, + { "px": [208,112], "src": [16,240], "f": 0, "t": 541, "d": [74,209], "a": 1 }, + { "px": [240,112], "src": [16,224], "f": 0, "t": 505, "d": [74,211], "a": 1 }, + { "px": [256,112], "src": [16,224], "f": 0, "t": 505, "d": [74,212], "a": 1 }, + { "px": [272,112], "src": [16,224], "f": 0, "t": 505, "d": [74,213], "a": 1 }, + { "px": [288,112], "src": [32,224], "f": 0, "t": 506, "d": [74,214], "a": 1 }, + { "px": [160,128], "src": [16,240], "f": 0, "t": 541, "d": [74,234], "a": 1 }, + { "px": [176,128], "src": [32,240], "f": 0, "t": 542, "d": [74,235], "a": 1 }, + { "px": [192,128], "src": [16,240], "f": 0, "t": 541, "d": [74,236], "a": 1 }, + { "px": [208,128], "src": [32,224], "f": 0, "t": 506, "d": [74,237], "a": 1 }, + { "px": [224,128], "src": [32,224], "f": 0, "t": 506, "d": [74,238], "a": 1 }, + { "px": [240,128], "src": [32,240], "f": 0, "t": 542, "d": [74,239], "a": 1 }, + { "px": [256,128], "src": [32,224], "f": 0, "t": 506, "d": [74,240], "a": 1 }, + { "px": [160,144], "src": [16,240], "f": 0, "t": 541, "d": [74,262], "a": 1 }, + { "px": [176,144], "src": [32,224], "f": 0, "t": 506, "d": [74,263], "a": 1 }, + { "px": [192,144], "src": [32,240], "f": 0, "t": 542, "d": [74,264], "a": 1 }, + { "px": [208,144], "src": [16,240], "f": 0, "t": 541, "d": [74,265], "a": 1 }, + { "px": [224,144], "src": [16,224], "f": 0, "t": 505, "d": [74,266], "a": 1 }, + { "px": [160,160], "src": [16,240], "f": 0, "t": 541, "d": [74,290], "a": 1 }, + { "px": [176,160], "src": [16,224], "f": 0, "t": 505, "d": [74,291], "a": 1 }, + { "px": [192,160], "src": [32,240], "f": 0, "t": 542, "d": [74,292], "a": 1 }, + { "px": [208,160], "src": [32,240], "f": 0, "t": 542, "d": [74,293], "a": 1 }, + { "px": [224,160], "src": [16,224], "f": 0, "t": 505, "d": [74,294], "a": 1 }, + { "px": [240,160], "src": [16,240], "f": 0, "t": 541, "d": [74,295], "a": 1 }, + { "px": [224,80], "src": [0,208], "f": 0, "t": 468, "d": [21,154], "a": 1 }, + { "px": [240,81], "src": [32,208], "f": 0, "t": 470, "d": [21,155], "a": 1 }, + { "px": [256,80], "src": [32,208], "f": 0, "t": 470, "d": [21,156], "a": 1 }, + { "px": [272,81], "src": [32,208], "f": 0, "t": 470, "d": [21,157], "a": 1 }, + { "px": [288,80], "src": [32,208], "f": 0, "t": 470, "d": [21,158], "a": 1 }, + { "px": [144,16], "src": [192,48], "f": 0, "t": 120, "d": [111,37], "a": 1 }, + { "px": [32,32], "src": [176,48], "f": 0, "t": 119, "d": [111,58], "a": 1 }, + { "px": [48,64], "src": [160,48], "f": 0, "t": 118, "d": [111,115], "a": 1 }, + { "px": [80,80], "src": [176,48], "f": 0, "t": 119, "d": [111,145], "a": 1 }, + { "px": [96,144], "src": [176,48], "f": 0, "t": 119, "d": [111,258], "a": 1 }, + { "px": [112,144], "src": [160,48], "f": 0, "t": 118, "d": [111,259], "a": 1 }, + { "px": [128,144], "src": [192,48], "f": 0, "t": 120, "d": [111,260], "a": 1 }, + { "px": [256,144], "src": [176,48], "f": 0, "t": 119, "d": [111,268], "a": 1 }, + { "px": [144,160], "src": [176,48], "f": 0, "t": 119, "d": [111,289], "a": 1 }, + { "px": [160,160], "src": [208,48], "f": 0, "t": 121, "d": [111,290], "a": 1 }, + { "px": [176,160], "src": [208,48], "f": 0, "t": 121, "d": [111,291], "a": 1 }, + { "px": [208,160], "src": [176,48], "f": 0, "t": 119, "d": [111,293], "a": 1 }, + { "px": [224,160], "src": [160,48], "f": 0, "t": 118, "d": [111,294], "a": 1 }, + { "px": [240,160], "src": [176,48], "f": 0, "t": 119, "d": [111,295], "a": 1 }, + { "px": [288,160], "src": [208,48], "f": 0, "t": 121, "d": [111,298], "a": 1 }, + { "px": [304,160], "src": [176,48], "f": 0, "t": 119, "d": [111,299], "a": 1 }, + { "px": [144,16], "src": [208,48], "f": 0, "t": 121, "d": [99,37], "a": 1 }, + { "px": [64,64], "src": [160,48], "f": 0, "t": 118, "d": [99,116], "a": 1 }, + { "px": [78,81], "src": [176,48], "f": 0, "t": 119, "d": [99,145], "a": 1 }, + { "px": [96,81], "src": [160,48], "f": 0, "t": 118, "d": [99,146], "a": 1 }, + { "px": [161,80], "src": [176,48], "f": 2, "t": 119, "d": [99,150], "a": 1 }, + { "px": [206,111], "src": [176,48], "f": 2, "t": 119, "d": [99,209], "a": 1 }, + { "px": [302,112], "src": [160,48], "f": 2, "t": 118, "d": [99,215], "a": 1 }, + { "px": [97,128], "src": [208,48], "f": 2, "t": 121, "d": [99,230], "a": 1 }, + { "px": [96,144], "src": [192,48], "f": 0, "t": 120, "d": [99,258], "a": 1 }, + { "px": [128,145], "src": [160,48], "f": 0, "t": 118, "d": [99,260], "a": 1 }, + { "px": [145,160], "src": [208,48], "f": 0, "t": 121, "d": [99,289], "a": 1 }, + { "px": [162,160], "src": [192,48], "f": 0, "t": 120, "d": [99,290], "a": 1 }, + { "px": [175,160], "src": [208,48], "f": 0, "t": 121, "d": [99,291], "a": 1 }, + { "px": [210,160], "src": [192,48], "f": 0, "t": 120, "d": [99,293], "a": 1 }, + { "px": [239,161], "src": [208,48], "f": 0, "t": 121, "d": [99,295], "a": 1 }, + { "px": [208,32], "src": [80,112], "f": 0, "t": 257, "d": [95,69], "a": 1 }, + { "px": [304,32], "src": [80,128], "f": 1, "t": 293, "d": [95,75], "a": 1 }, + { "px": [352,32], "src": [80,112], "f": 0, "t": 257, "d": [95,78], "a": 1 }, + { "px": [368,32], "src": [80,128], "f": 1, "t": 293, "d": [95,79], "a": 1 }, + { "px": [144,48], "src": [80,112], "f": 1, "t": 257, "d": [95,93], "a": 1 }, + { "px": [160,80], "src": [80,128], "f": 1, "t": 293, "d": [95,150], "a": 1 }, + { "px": [304,112], "src": [80,128], "f": 1, "t": 293, "d": [95,215], "a": 1 }, + { "px": [96,128], "src": [80,128], "f": 0, "t": 293, "d": [95,230], "a": 1 }, + { "px": [144,16], "src": [80,144], "f": 1, "t": 329, "d": [96,37], "a": 1 }, + { "px": [32,32], "src": [80,144], "f": 0, "t": 329, "d": [96,58], "a": 1 }, + { "px": [48,64], "src": [80,144], "f": 0, "t": 329, "d": [96,115], "a": 1 }, + { "px": [80,80], "src": [80,144], "f": 0, "t": 329, "d": [96,145], "a": 1 }, + { "px": [208,80], "src": [80,144], "f": 0, "t": 329, "d": [96,153], "a": 1 }, + { "px": [304,80], "src": [80,144], "f": 1, "t": 329, "d": [96,159], "a": 1 }, + { "px": [96,144], "src": [80,160], "f": 0, "t": 365, "d": [96,258], "a": 1 }, + { "px": [144,160], "src": [80,144], "f": 0, "t": 329, "d": [96,289], "a": 1 }, + { "px": [240,160], "src": [80,144], "f": 1, "t": 329, "d": [96,295], "a": 1 }, + { "px": [288,160], "src": [80,160], "f": 0, "t": 365, "d": [96,298], "a": 1 }, + { "px": [304,160], "src": [80,160], "f": 1, "t": 365, "d": [96,299], "a": 1 }, + { "px": [144,16], "src": [112,112], "f": 0, "t": 259, "d": [97,37], "a": 1 }, + { "px": [32,32], "src": [128,112], "f": 0, "t": 260, "d": [97,58], "a": 1 }, + { "px": [48,66], "src": [32,80], "f": 0, "t": 182, "d": [97,115], "a": 1 }, + { "px": [64,65], "src": [32,80], "f": 0, "t": 182, "d": [97,116], "a": 1 }, + { "px": [320,66], "src": [144,112], "f": 0, "t": 261, "d": [97,132], "a": 1 }, + { "px": [336,66], "src": [112,112], "f": 0, "t": 259, "d": [97,133], "a": 1 }, + { "px": [80,80], "src": [128,112], "f": 0, "t": 260, "d": [97,145], "a": 1 }, + { "px": [96,81], "src": [144,112], "f": 0, "t": 261, "d": [97,146], "a": 1 }, + { "px": [208,82], "src": [144,112], "f": 0, "t": 261, "d": [97,153], "a": 1 }, + { "px": [304,81], "src": [32,80], "f": 0, "t": 182, "d": [97,159], "a": 1 }, + { "px": [112,145], "src": [144,112], "f": 0, "t": 261, "d": [97,259], "a": 1 }, + { "px": [128,146], "src": [48,80], "f": 0, "t": 183, "d": [97,260], "a": 1 }, + { "px": [256,145], "src": [16,80], "f": 0, "t": 181, "d": [97,268], "a": 1 }, + { "px": [272,144], "src": [0,80], "f": 0, "t": 180, "d": [97,269], "a": 1 }, + { "px": [144,162], "src": [128,112], "f": 0, "t": 260, "d": [97,289], "a": 1 }, + { "px": [160,161], "src": [32,80], "f": 0, "t": 182, "d": [97,290], "a": 1 }, + { "px": [176,160], "src": [16,80], "f": 0, "t": 181, "d": [97,291], "a": 1 }, + { "px": [192,162], "src": [32,80], "f": 0, "t": 182, "d": [97,292], "a": 1 }, + { "px": [208,160], "src": [128,112], "f": 0, "t": 260, "d": [97,293], "a": 1 }, + { "px": [224,160], "src": [16,80], "f": 0, "t": 181, "d": [97,294], "a": 1 }, + { "px": [240,161], "src": [48,80], "f": 0, "t": 183, "d": [97,295], "a": 1 }, + { "px": [288,160], "src": [32,80], "f": 0, "t": 182, "d": [97,298], "a": 1 }, + { "px": [304,160], "src": [32,80], "f": 0, "t": 182, "d": [97,299], "a": 1 }, + { "px": [144,0], "src": [64,112], "f": 1, "t": 256, "d": [98,9], "a": 1 }, + { "px": [32,16], "src": [64,112], "f": 0, "t": 256, "d": [98,30], "a": 1 }, + { "px": [144,16], "src": [64,112], "f": 1, "t": 256, "d": [98,37], "a": 1 }, + { "px": [32,32], "src": [64,112], "f": 0, "t": 256, "d": [98,58], "a": 1 }, + { "px": [128,32], "src": [64,128], "f": 1, "t": 292, "d": [98,64], "a": 1 }, + { "px": [208,32], "src": [64,112], "f": 0, "t": 256, "d": [98,69], "a": 1 }, + { "px": [304,32], "src": [64,112], "f": 1, "t": 256, "d": [98,75], "a": 1 }, + { "px": [352,32], "src": [64,128], "f": 0, "t": 292, "d": [98,78], "a": 1 }, + { "px": [208,48], "src": [64,128], "f": 0, "t": 292, "d": [98,97], "a": 1 }, + { "px": [368,48], "src": [64,128], "f": 1, "t": 292, "d": [98,107], "a": 1 }, + { "px": [48,64], "src": [64,128], "f": 0, "t": 292, "d": [98,115], "a": 1 }, + { "px": [144,64], "src": [64,112], "f": 1, "t": 256, "d": [98,121], "a": 1 }, + { "px": [208,64], "src": [64,128], "f": 0, "t": 292, "d": [98,125], "a": 1 }, + { "px": [80,80], "src": [64,128], "f": 0, "t": 292, "d": [98,145], "a": 1 }, + { "px": [160,80], "src": [64,128], "f": 1, "t": 292, "d": [98,150], "a": 1 }, + { "px": [208,80], "src": [64,128], "f": 0, "t": 292, "d": [98,153], "a": 1 }, + { "px": [304,80], "src": [64,128], "f": 1, "t": 292, "d": [98,159], "a": 1 }, + { "px": [352,80], "src": [64,112], "f": 0, "t": 256, "d": [98,162], "a": 1 }, + { "px": [368,80], "src": [64,128], "f": 1, "t": 292, "d": [98,163], "a": 1 }, + { "px": [160,96], "src": [64,112], "f": 1, "t": 256, "d": [98,178], "a": 1 }, + { "px": [224,96], "src": [64,128], "f": 0, "t": 292, "d": [98,182], "a": 1 }, + { "px": [288,96], "src": [64,112], "f": 1, "t": 256, "d": [98,186], "a": 1 }, + { "px": [352,96], "src": [64,128], "f": 0, "t": 292, "d": [98,190], "a": 1 }, + { "px": [368,96], "src": [64,128], "f": 1, "t": 292, "d": [98,191], "a": 1 }, + { "px": [112,112], "src": [64,112], "f": 0, "t": 256, "d": [98,203], "a": 1 }, + { "px": [304,112], "src": [64,128], "f": 1, "t": 292, "d": [98,215], "a": 1 }, + { "px": [352,112], "src": [64,112], "f": 0, "t": 256, "d": [98,218], "a": 1 }, + { "px": [368,112], "src": [64,112], "f": 1, "t": 256, "d": [98,219], "a": 1 }, + { "px": [96,128], "src": [64,128], "f": 0, "t": 292, "d": [98,230], "a": 1 }, + { "px": [304,128], "src": [64,128], "f": 1, "t": 292, "d": [98,243], "a": 1 }, + { "px": [352,128], "src": [64,112], "f": 0, "t": 256, "d": [98,246], "a": 1 }, + { "px": [368,128], "src": [64,128], "f": 1, "t": 292, "d": [98,247], "a": 1 }, + { "px": [96,144], "src": [64,128], "f": 0, "t": 292, "d": [98,258], "a": 1 }, + { "px": [304,144], "src": [64,112], "f": 1, "t": 256, "d": [98,271], "a": 1 }, + { "px": [368,144], "src": [64,112], "f": 1, "t": 256, "d": [98,275], "a": 1 }, + { "px": [144,160], "src": [64,128], "f": 0, "t": 292, "d": [98,289], "a": 1 }, + { "px": [240,160], "src": [64,112], "f": 1, "t": 256, "d": [98,295], "a": 1 }, + { "px": [288,160], "src": [64,128], "f": 0, "t": 292, "d": [98,298], "a": 1 }, + { "px": [304,160], "src": [64,112], "f": 1, "t": 256, "d": [98,299], "a": 1 }, + { "px": [352,160], "src": [64,112], "f": 0, "t": 256, "d": [98,302], "a": 1 }, + { "px": [368,160], "src": [64,128], "f": 1, "t": 292, "d": [98,303], "a": 1 }, + { "px": [352,176], "src": [64,128], "f": 0, "t": 292, "d": [98,330], "a": 1 }, + { "px": [368,176], "src": [64,112], "f": 1, "t": 256, "d": [98,331], "a": 1 }, + { "px": [352,192], "src": [64,112], "f": 0, "t": 256, "d": [98,358], "a": 1 }, + { "px": [352,208], "src": [64,128], "f": 0, "t": 292, "d": [98,386], "a": 1 }, + { "px": [368,208], "src": [64,128], "f": 1, "t": 292, "d": [98,387], "a": 1 }, + { "px": [352,224], "src": [64,112], "f": 0, "t": 256, "d": [98,414], "a": 1 }, + { "px": [368,224], "src": [64,112], "f": 1, "t": 256, "d": [98,415], "a": 1 }, + { "px": [352,240], "src": [64,112], "f": 0, "t": 256, "d": [98,442], "a": 1 }, + { "px": [336,48], "src": [96,80], "f": 0, "t": 186, "d": [93,105], "a": 1 }, + { "px": [208,32], "src": [112,96], "f": 0, "t": 223, "d": [101,69], "a": 1 }, + { "px": [224,32], "src": [112,96], "f": 0, "t": 223, "d": [101,70], "a": 1 }, + { "px": [240,32], "src": [112,96], "f": 0, "t": 223, "d": [101,71], "a": 1 }, + { "px": [256,32], "src": [128,96], "f": 0, "t": 224, "d": [101,72], "a": 1 }, + { "px": [272,32], "src": [112,96], "f": 0, "t": 223, "d": [101,73], "a": 1 }, + { "px": [288,32], "src": [128,96], "f": 0, "t": 224, "d": [101,74], "a": 1 }, + { "px": [304,32], "src": [112,96], "f": 0, "t": 223, "d": [101,75], "a": 1 }, + { "px": [352,32], "src": [112,96], "f": 0, "t": 223, "d": [101,78], "a": 1 }, + { "px": [368,32], "src": [128,96], "f": 0, "t": 224, "d": [101,79], "a": 1 }, + { "px": [144,48], "src": [112,96], "f": 0, "t": 223, "d": [101,93], "a": 1 }, + { "px": [320,48], "src": [128,96], "f": 0, "t": 224, "d": [101,104], "a": 1 }, + { "px": [336,48], "src": [128,96], "f": 0, "t": 224, "d": [101,105], "a": 1 }, + { "px": [160,80], "src": [112,96], "f": 0, "t": 223, "d": [101,150], "a": 1 }, + { "px": [176,112], "src": [112,96], "f": 0, "t": 223, "d": [101,207], "a": 1 }, + { "px": [192,112], "src": [128,96], "f": 0, "t": 224, "d": [101,208], "a": 1 }, + { "px": [208,112], "src": [112,96], "f": 0, "t": 223, "d": [101,209], "a": 1 }, + { "px": [304,112], "src": [128,96], "f": 0, "t": 224, "d": [101,215], "a": 1 }, + { "px": [96,128], "src": [128,96], "f": 0, "t": 224, "d": [101,230], "a": 1 }, + { "px": [320,0], "src": [192,208], "f": 0, "t": 480, "d": [104,20], "a": 1 }, + { "px": [384,0], "src": [208,208], "f": 0, "t": 481, "d": [104,24], "a": 1 }, + { "px": [400,0], "src": [208,208], "f": 0, "t": 481, "d": [104,25], "a": 1 }, + { "px": [432,0], "src": [208,208], "f": 0, "t": 481, "d": [104,27], "a": 1 }, + { "px": [432,16], "src": [176,208], "f": 0, "t": 479, "d": [104,55], "a": 1 }, + { "px": [432,32], "src": [176,208], "f": 0, "t": 479, "d": [104,83], "a": 1 }, + { "px": [0,48], "src": [176,208], "f": 0, "t": 479, "d": [104,84], "a": 1 }, + { "px": [416,48], "src": [192,208], "f": 0, "t": 480, "d": [104,110], "a": 1 }, + { "px": [432,48], "src": [208,208], "f": 0, "t": 481, "d": [104,111], "a": 1 }, + { "px": [416,64], "src": [208,208], "f": 0, "t": 481, "d": [104,138], "a": 1 }, + { "px": [0,80], "src": [192,208], "f": 0, "t": 480, "d": [104,140], "a": 1 }, + { "px": [16,80], "src": [192,208], "f": 0, "t": 480, "d": [104,141], "a": 1 }, + { "px": [432,80], "src": [192,208], "f": 0, "t": 480, "d": [104,167], "a": 1 }, + { "px": [16,96], "src": [176,208], "f": 0, "t": 479, "d": [104,169], "a": 1 }, + { "px": [32,96], "src": [176,208], "f": 0, "t": 479, "d": [104,170], "a": 1 }, + { "px": [432,96], "src": [192,208], "f": 0, "t": 480, "d": [104,195], "a": 1 }, + { "px": [16,112], "src": [192,208], "f": 0, "t": 480, "d": [104,197], "a": 1 }, + { "px": [432,112], "src": [192,208], "f": 0, "t": 480, "d": [104,223], "a": 1 }, + { "px": [0,128], "src": [176,208], "f": 0, "t": 479, "d": [104,224], "a": 1 }, + { "px": [32,128], "src": [208,208], "f": 0, "t": 481, "d": [104,226], "a": 1 }, + { "px": [416,128], "src": [192,208], "f": 0, "t": 480, "d": [104,250], "a": 1 }, + { "px": [432,128], "src": [208,208], "f": 0, "t": 481, "d": [104,251], "a": 1 }, + { "px": [32,144], "src": [208,208], "f": 0, "t": 481, "d": [104,254], "a": 1 }, + { "px": [48,144], "src": [192,208], "f": 0, "t": 480, "d": [104,255], "a": 1 }, + { "px": [416,144], "src": [192,208], "f": 0, "t": 480, "d": [104,278], "a": 1 }, + { "px": [432,144], "src": [208,208], "f": 0, "t": 481, "d": [104,279], "a": 1 }, + { "px": [48,160], "src": [176,208], "f": 0, "t": 479, "d": [104,283], "a": 1 }, + { "px": [64,160], "src": [208,208], "f": 0, "t": 481, "d": [104,284], "a": 1 }, + { "px": [416,160], "src": [192,208], "f": 0, "t": 480, "d": [104,306], "a": 1 }, + { "px": [16,176], "src": [192,208], "f": 0, "t": 480, "d": [104,309], "a": 1 }, + { "px": [32,176], "src": [176,208], "f": 0, "t": 479, "d": [104,310], "a": 1 }, + { "px": [48,176], "src": [208,208], "f": 0, "t": 481, "d": [104,311], "a": 1 }, + { "px": [80,176], "src": [192,208], "f": 0, "t": 480, "d": [104,313], "a": 1 }, + { "px": [416,176], "src": [176,208], "f": 0, "t": 479, "d": [104,334], "a": 1 }, + { "px": [432,176], "src": [192,208], "f": 0, "t": 480, "d": [104,335], "a": 1 }, + { "px": [0,192], "src": [192,208], "f": 0, "t": 480, "d": [104,336], "a": 1 }, + { "px": [32,192], "src": [176,208], "f": 0, "t": 479, "d": [104,338], "a": 1 }, + { "px": [48,192], "src": [176,208], "f": 0, "t": 479, "d": [104,339], "a": 1 }, + { "px": [112,192], "src": [192,208], "f": 0, "t": 480, "d": [104,343], "a": 1 }, + { "px": [128,192], "src": [208,208], "f": 0, "t": 481, "d": [104,344], "a": 1 }, + { "px": [256,192], "src": [192,208], "f": 0, "t": 480, "d": [104,352], "a": 1 }, + { "px": [272,192], "src": [192,208], "f": 0, "t": 480, "d": [104,353], "a": 1 }, + { "px": [432,192], "src": [208,208], "f": 0, "t": 481, "d": [104,363], "a": 1 }, + { "px": [0,208], "src": [208,208], "f": 0, "t": 481, "d": [104,364], "a": 1 }, + { "px": [48,208], "src": [176,208], "f": 0, "t": 479, "d": [104,367], "a": 1 }, + { "px": [64,208], "src": [176,208], "f": 0, "t": 479, "d": [104,368], "a": 1 }, + { "px": [112,208], "src": [208,208], "f": 0, "t": 481, "d": [104,371], "a": 1 }, + { "px": [160,208], "src": [208,208], "f": 0, "t": 481, "d": [104,374], "a": 1 }, + { "px": [192,208], "src": [208,208], "f": 0, "t": 481, "d": [104,376], "a": 1 }, + { "px": [208,208], "src": [208,208], "f": 0, "t": 481, "d": [104,377], "a": 1 }, + { "px": [224,208], "src": [192,208], "f": 0, "t": 480, "d": [104,378], "a": 1 }, + { "px": [256,208], "src": [176,208], "f": 0, "t": 479, "d": [104,380], "a": 1 }, + { "px": [288,208], "src": [176,208], "f": 0, "t": 479, "d": [104,382], "a": 1 }, + { "px": [304,208], "src": [192,208], "f": 0, "t": 480, "d": [104,383], "a": 1 }, + { "px": [416,208], "src": [192,208], "f": 0, "t": 480, "d": [104,390], "a": 1 }, + { "px": [0,224], "src": [176,208], "f": 0, "t": 479, "d": [104,392], "a": 1 }, + { "px": [16,224], "src": [176,208], "f": 0, "t": 479, "d": [104,393], "a": 1 }, + { "px": [32,224], "src": [176,208], "f": 0, "t": 479, "d": [104,394], "a": 1 }, + { "px": [48,224], "src": [192,208], "f": 0, "t": 480, "d": [104,395], "a": 1 }, + { "px": [64,224], "src": [176,208], "f": 0, "t": 479, "d": [104,396], "a": 1 }, + { "px": [80,224], "src": [208,208], "f": 0, "t": 481, "d": [104,397], "a": 1 }, + { "px": [112,224], "src": [208,208], "f": 0, "t": 481, "d": [104,399], "a": 1 }, + { "px": [128,224], "src": [176,208], "f": 0, "t": 479, "d": [104,400], "a": 1 }, + { "px": [144,224], "src": [208,208], "f": 0, "t": 481, "d": [104,401], "a": 1 }, + { "px": [160,224], "src": [192,208], "f": 0, "t": 480, "d": [104,402], "a": 1 }, + { "px": [176,224], "src": [176,208], "f": 0, "t": 479, "d": [104,403], "a": 1 }, + { "px": [192,224], "src": [176,208], "f": 0, "t": 479, "d": [104,404], "a": 1 }, + { "px": [208,224], "src": [208,208], "f": 0, "t": 481, "d": [104,405], "a": 1 }, + { "px": [240,224], "src": [192,208], "f": 0, "t": 480, "d": [104,407], "a": 1 }, + { "px": [256,224], "src": [192,208], "f": 0, "t": 480, "d": [104,408], "a": 1 }, + { "px": [288,224], "src": [192,208], "f": 0, "t": 480, "d": [104,410], "a": 1 }, + { "px": [304,224], "src": [192,208], "f": 0, "t": 480, "d": [104,411], "a": 1 }, + { "px": [416,224], "src": [192,208], "f": 0, "t": 480, "d": [104,418], "a": 1 }, + { "px": [432,224], "src": [208,208], "f": 0, "t": 481, "d": [104,419], "a": 1 }, + { "px": [0,240], "src": [192,208], "f": 0, "t": 480, "d": [104,420], "a": 1 }, + { "px": [32,240], "src": [176,208], "f": 0, "t": 479, "d": [104,422], "a": 1 }, + { "px": [48,240], "src": [192,208], "f": 0, "t": 480, "d": [104,423], "a": 1 }, + { "px": [64,240], "src": [192,208], "f": 0, "t": 480, "d": [104,424], "a": 1 }, + { "px": [80,240], "src": [192,208], "f": 0, "t": 480, "d": [104,425], "a": 1 }, + { "px": [96,240], "src": [176,208], "f": 0, "t": 479, "d": [104,426], "a": 1 }, + { "px": [112,240], "src": [176,208], "f": 0, "t": 479, "d": [104,427], "a": 1 }, + { "px": [144,240], "src": [176,208], "f": 0, "t": 479, "d": [104,429], "a": 1 }, + { "px": [160,240], "src": [176,208], "f": 0, "t": 479, "d": [104,430], "a": 1 }, + { "px": [176,240], "src": [208,208], "f": 0, "t": 481, "d": [104,431], "a": 1 }, + { "px": [192,240], "src": [192,208], "f": 0, "t": 480, "d": [104,432], "a": 1 }, + { "px": [208,240], "src": [192,208], "f": 0, "t": 480, "d": [104,433], "a": 1 }, + { "px": [256,240], "src": [208,208], "f": 0, "t": 481, "d": [104,436], "a": 1 }, + { "px": [272,240], "src": [208,208], "f": 0, "t": 481, "d": [104,437], "a": 1 }, + { "px": [288,240], "src": [208,208], "f": 0, "t": 481, "d": [104,438], "a": 1 }, + { "px": [0,0], "src": [272,176], "f": 0, "t": 413, "d": [108,0], "a": 1 }, + { "px": [176,0], "src": [272,176], "f": 0, "t": 413, "d": [108,11], "a": 1 }, + { "px": [192,0], "src": [272,176], "f": 0, "t": 413, "d": [108,12], "a": 1 }, + { "px": [208,0], "src": [272,176], "f": 0, "t": 413, "d": [108,13], "a": 1 }, + { "px": [224,0], "src": [272,176], "f": 0, "t": 413, "d": [108,14], "a": 1 }, + { "px": [240,0], "src": [272,176], "f": 0, "t": 413, "d": [108,15], "a": 1 }, + { "px": [256,0], "src": [272,176], "f": 0, "t": 413, "d": [108,16], "a": 1 }, + { "px": [272,0], "src": [272,176], "f": 0, "t": 413, "d": [108,17], "a": 1 }, + { "px": [288,0], "src": [272,176], "f": 0, "t": 413, "d": [108,18], "a": 1 }, + { "px": [304,0], "src": [272,176], "f": 0, "t": 413, "d": [108,19], "a": 1 }, + { "px": [320,0], "src": [272,176], "f": 0, "t": 413, "d": [108,20], "a": 1 }, + { "px": [336,0], "src": [272,176], "f": 0, "t": 413, "d": [108,21], "a": 1 }, + { "px": [352,0], "src": [272,176], "f": 0, "t": 413, "d": [108,22], "a": 1 }, + { "px": [368,0], "src": [272,176], "f": 0, "t": 413, "d": [108,23], "a": 1 }, + { "px": [384,0], "src": [272,176], "f": 0, "t": 413, "d": [108,24], "a": 1 }, + { "px": [400,0], "src": [272,176], "f": 0, "t": 413, "d": [108,25], "a": 1 }, + { "px": [416,0], "src": [272,176], "f": 0, "t": 413, "d": [108,26], "a": 1 }, + { "px": [432,0], "src": [272,176], "f": 0, "t": 413, "d": [108,27], "a": 1 }, + { "px": [0,16], "src": [272,176], "f": 0, "t": 413, "d": [108,28], "a": 1 }, + { "px": [176,16], "src": [272,176], "f": 0, "t": 413, "d": [108,39], "a": 1 }, + { "px": [400,16], "src": [272,176], "f": 0, "t": 413, "d": [108,53], "a": 1 }, + { "px": [416,16], "src": [272,176], "f": 0, "t": 413, "d": [108,54], "a": 1 }, + { "px": [432,16], "src": [272,176], "f": 0, "t": 413, "d": [108,55], "a": 1 }, + { "px": [0,32], "src": [272,176], "f": 0, "t": 413, "d": [108,56], "a": 1 }, + { "px": [176,32], "src": [272,176], "f": 0, "t": 413, "d": [108,67], "a": 1 }, + { "px": [400,32], "src": [272,176], "f": 0, "t": 413, "d": [108,81], "a": 1 }, + { "px": [416,32], "src": [272,176], "f": 0, "t": 413, "d": [108,82], "a": 1 }, + { "px": [432,32], "src": [272,176], "f": 0, "t": 413, "d": [108,83], "a": 1 }, + { "px": [0,48], "src": [272,176], "f": 0, "t": 413, "d": [108,84], "a": 1 }, + { "px": [176,48], "src": [272,176], "f": 0, "t": 413, "d": [108,95], "a": 1 }, + { "px": [400,48], "src": [272,176], "f": 0, "t": 413, "d": [108,109], "a": 1 }, + { "px": [416,48], "src": [272,176], "f": 0, "t": 413, "d": [108,110], "a": 1 }, + { "px": [432,48], "src": [272,176], "f": 0, "t": 413, "d": [108,111], "a": 1 }, + { "px": [0,64], "src": [272,176], "f": 0, "t": 413, "d": [108,112], "a": 1 }, + { "px": [16,64], "src": [272,176], "f": 0, "t": 413, "d": [108,113], "a": 1 }, + { "px": [400,64], "src": [272,176], "f": 0, "t": 413, "d": [108,137], "a": 1 }, + { "px": [416,64], "src": [272,176], "f": 0, "t": 413, "d": [108,138], "a": 1 }, + { "px": [432,64], "src": [272,176], "f": 0, "t": 413, "d": [108,139], "a": 1 }, + { "px": [0,80], "src": [272,176], "f": 0, "t": 413, "d": [108,140], "a": 1 }, + { "px": [16,80], "src": [272,176], "f": 0, "t": 413, "d": [108,141], "a": 1 }, + { "px": [400,80], "src": [272,176], "f": 0, "t": 413, "d": [108,165], "a": 1 }, + { "px": [416,80], "src": [272,176], "f": 0, "t": 413, "d": [108,166], "a": 1 }, + { "px": [432,80], "src": [272,176], "f": 0, "t": 413, "d": [108,167], "a": 1 }, + { "px": [0,96], "src": [272,176], "f": 0, "t": 413, "d": [108,168], "a": 1 }, + { "px": [16,96], "src": [272,176], "f": 0, "t": 413, "d": [108,169], "a": 1 }, + { "px": [32,96], "src": [272,176], "f": 0, "t": 413, "d": [108,170], "a": 1 }, + { "px": [48,96], "src": [272,176], "f": 0, "t": 413, "d": [108,171], "a": 1 }, + { "px": [400,96], "src": [272,176], "f": 0, "t": 413, "d": [108,193], "a": 1 }, + { "px": [416,96], "src": [272,176], "f": 0, "t": 413, "d": [108,194], "a": 1 }, + { "px": [432,96], "src": [272,176], "f": 0, "t": 413, "d": [108,195], "a": 1 }, + { "px": [0,112], "src": [272,176], "f": 0, "t": 413, "d": [108,196], "a": 1 }, + { "px": [16,112], "src": [272,176], "f": 0, "t": 413, "d": [108,197], "a": 1 }, + { "px": [32,112], "src": [272,176], "f": 0, "t": 413, "d": [108,198], "a": 1 }, + { "px": [48,112], "src": [272,176], "f": 0, "t": 413, "d": [108,199], "a": 1 }, + { "px": [64,112], "src": [272,176], "f": 0, "t": 413, "d": [108,200], "a": 1 }, + { "px": [400,112], "src": [272,176], "f": 0, "t": 413, "d": [108,221], "a": 1 }, + { "px": [416,112], "src": [272,176], "f": 0, "t": 413, "d": [108,222], "a": 1 }, + { "px": [432,112], "src": [272,176], "f": 0, "t": 413, "d": [108,223], "a": 1 }, + { "px": [0,128], "src": [272,176], "f": 0, "t": 413, "d": [108,224], "a": 1 }, + { "px": [16,128], "src": [272,176], "f": 0, "t": 413, "d": [108,225], "a": 1 }, + { "px": [32,128], "src": [272,176], "f": 0, "t": 413, "d": [108,226], "a": 1 }, + { "px": [48,128], "src": [272,176], "f": 0, "t": 413, "d": [108,227], "a": 1 }, + { "px": [64,128], "src": [272,176], "f": 0, "t": 413, "d": [108,228], "a": 1 }, + { "px": [400,128], "src": [272,176], "f": 0, "t": 413, "d": [108,249], "a": 1 }, + { "px": [416,128], "src": [272,176], "f": 0, "t": 413, "d": [108,250], "a": 1 }, + { "px": [432,128], "src": [272,176], "f": 0, "t": 413, "d": [108,251], "a": 1 }, + { "px": [0,144], "src": [272,176], "f": 0, "t": 413, "d": [108,252], "a": 1 }, + { "px": [16,144], "src": [272,176], "f": 0, "t": 413, "d": [108,253], "a": 1 }, + { "px": [32,144], "src": [272,176], "f": 0, "t": 413, "d": [108,254], "a": 1 }, + { "px": [48,144], "src": [272,176], "f": 0, "t": 413, "d": [108,255], "a": 1 }, + { "px": [64,144], "src": [272,176], "f": 0, "t": 413, "d": [108,256], "a": 1 }, + { "px": [400,144], "src": [272,176], "f": 0, "t": 413, "d": [108,277], "a": 1 }, + { "px": [416,144], "src": [272,176], "f": 0, "t": 413, "d": [108,278], "a": 1 }, + { "px": [432,144], "src": [272,176], "f": 0, "t": 413, "d": [108,279], "a": 1 }, + { "px": [0,160], "src": [272,176], "f": 0, "t": 413, "d": [108,280], "a": 1 }, + { "px": [16,160], "src": [272,176], "f": 0, "t": 413, "d": [108,281], "a": 1 }, + { "px": [32,160], "src": [272,176], "f": 0, "t": 413, "d": [108,282], "a": 1 }, + { "px": [48,160], "src": [272,176], "f": 0, "t": 413, "d": [108,283], "a": 1 }, + { "px": [64,160], "src": [272,176], "f": 0, "t": 413, "d": [108,284], "a": 1 }, + { "px": [400,160], "src": [272,176], "f": 0, "t": 413, "d": [108,305], "a": 1 }, + { "px": [416,160], "src": [272,176], "f": 0, "t": 413, "d": [108,306], "a": 1 }, + { "px": [432,160], "src": [272,176], "f": 0, "t": 413, "d": [108,307], "a": 1 }, + { "px": [0,176], "src": [272,176], "f": 0, "t": 413, "d": [108,308], "a": 1 }, + { "px": [16,176], "src": [272,176], "f": 0, "t": 413, "d": [108,309], "a": 1 }, + { "px": [32,176], "src": [272,176], "f": 0, "t": 413, "d": [108,310], "a": 1 }, + { "px": [48,176], "src": [272,176], "f": 0, "t": 413, "d": [108,311], "a": 1 }, + { "px": [64,176], "src": [272,176], "f": 0, "t": 413, "d": [108,312], "a": 1 }, + { "px": [80,176], "src": [272,176], "f": 0, "t": 413, "d": [108,313], "a": 1 }, + { "px": [96,176], "src": [272,176], "f": 0, "t": 413, "d": [108,314], "a": 1 }, + { "px": [112,176], "src": [272,176], "f": 0, "t": 413, "d": [108,315], "a": 1 }, + { "px": [400,176], "src": [272,176], "f": 0, "t": 413, "d": [108,333], "a": 1 }, + { "px": [416,176], "src": [272,176], "f": 0, "t": 413, "d": [108,334], "a": 1 }, + { "px": [432,176], "src": [272,176], "f": 0, "t": 413, "d": [108,335], "a": 1 }, + { "px": [0,192], "src": [272,176], "f": 0, "t": 413, "d": [108,336], "a": 1 }, + { "px": [16,192], "src": [272,176], "f": 0, "t": 413, "d": [108,337], "a": 1 }, + { "px": [32,192], "src": [272,176], "f": 0, "t": 413, "d": [108,338], "a": 1 }, + { "px": [48,192], "src": [272,176], "f": 0, "t": 413, "d": [108,339], "a": 1 }, + { "px": [64,192], "src": [272,176], "f": 0, "t": 413, "d": [108,340], "a": 1 }, + { "px": [80,192], "src": [272,176], "f": 0, "t": 413, "d": [108,341], "a": 1 }, + { "px": [96,192], "src": [272,176], "f": 0, "t": 413, "d": [108,342], "a": 1 }, + { "px": [112,192], "src": [272,176], "f": 0, "t": 413, "d": [108,343], "a": 1 }, + { "px": [128,192], "src": [272,176], "f": 0, "t": 413, "d": [108,344], "a": 1 }, + { "px": [144,192], "src": [272,176], "f": 0, "t": 413, "d": [108,345], "a": 1 }, + { "px": [160,192], "src": [272,176], "f": 0, "t": 413, "d": [108,346], "a": 1 }, + { "px": [176,192], "src": [272,176], "f": 0, "t": 413, "d": [108,347], "a": 1 }, + { "px": [192,192], "src": [272,176], "f": 0, "t": 413, "d": [108,348], "a": 1 }, + { "px": [208,192], "src": [272,176], "f": 0, "t": 413, "d": [108,349], "a": 1 }, + { "px": [224,192], "src": [272,176], "f": 0, "t": 413, "d": [108,350], "a": 1 }, + { "px": [240,192], "src": [272,176], "f": 0, "t": 413, "d": [108,351], "a": 1 }, + { "px": [256,192], "src": [272,176], "f": 0, "t": 413, "d": [108,352], "a": 1 }, + { "px": [272,192], "src": [272,176], "f": 0, "t": 413, "d": [108,353], "a": 1 }, + { "px": [288,192], "src": [272,176], "f": 0, "t": 413, "d": [108,354], "a": 1 }, + { "px": [304,192], "src": [272,176], "f": 0, "t": 413, "d": [108,355], "a": 1 }, + { "px": [320,192], "src": [272,176], "f": 0, "t": 413, "d": [108,356], "a": 1 }, + { "px": [400,192], "src": [272,176], "f": 0, "t": 413, "d": [108,361], "a": 1 }, + { "px": [416,192], "src": [272,176], "f": 0, "t": 413, "d": [108,362], "a": 1 }, + { "px": [432,192], "src": [272,176], "f": 0, "t": 413, "d": [108,363], "a": 1 }, + { "px": [0,208], "src": [272,176], "f": 0, "t": 413, "d": [108,364], "a": 1 }, + { "px": [16,208], "src": [272,176], "f": 0, "t": 413, "d": [108,365], "a": 1 }, + { "px": [32,208], "src": [272,176], "f": 0, "t": 413, "d": [108,366], "a": 1 }, + { "px": [48,208], "src": [272,176], "f": 0, "t": 413, "d": [108,367], "a": 1 }, + { "px": [64,208], "src": [272,176], "f": 0, "t": 413, "d": [108,368], "a": 1 }, + { "px": [80,208], "src": [272,176], "f": 0, "t": 413, "d": [108,369], "a": 1 }, + { "px": [96,208], "src": [272,176], "f": 0, "t": 413, "d": [108,370], "a": 1 }, + { "px": [112,208], "src": [272,176], "f": 0, "t": 413, "d": [108,371], "a": 1 }, + { "px": [128,208], "src": [272,176], "f": 0, "t": 413, "d": [108,372], "a": 1 }, + { "px": [144,208], "src": [272,176], "f": 0, "t": 413, "d": [108,373], "a": 1 }, + { "px": [160,208], "src": [272,176], "f": 0, "t": 413, "d": [108,374], "a": 1 }, + { "px": [176,208], "src": [272,176], "f": 0, "t": 413, "d": [108,375], "a": 1 }, + { "px": [192,208], "src": [272,176], "f": 0, "t": 413, "d": [108,376], "a": 1 }, + { "px": [208,208], "src": [272,176], "f": 0, "t": 413, "d": [108,377], "a": 1 }, + { "px": [224,208], "src": [272,176], "f": 0, "t": 413, "d": [108,378], "a": 1 }, + { "px": [240,208], "src": [272,176], "f": 0, "t": 413, "d": [108,379], "a": 1 }, + { "px": [256,208], "src": [272,176], "f": 0, "t": 413, "d": [108,380], "a": 1 }, + { "px": [272,208], "src": [272,176], "f": 0, "t": 413, "d": [108,381], "a": 1 }, + { "px": [288,208], "src": [272,176], "f": 0, "t": 413, "d": [108,382], "a": 1 }, + { "px": [304,208], "src": [272,176], "f": 0, "t": 413, "d": [108,383], "a": 1 }, + { "px": [320,208], "src": [272,176], "f": 0, "t": 413, "d": [108,384], "a": 1 }, + { "px": [400,208], "src": [272,176], "f": 0, "t": 413, "d": [108,389], "a": 1 }, + { "px": [416,208], "src": [272,176], "f": 0, "t": 413, "d": [108,390], "a": 1 }, + { "px": [432,208], "src": [272,176], "f": 0, "t": 413, "d": [108,391], "a": 1 }, + { "px": [0,224], "src": [272,176], "f": 0, "t": 413, "d": [108,392], "a": 1 }, + { "px": [16,224], "src": [272,176], "f": 0, "t": 413, "d": [108,393], "a": 1 }, + { "px": [32,224], "src": [272,176], "f": 0, "t": 413, "d": [108,394], "a": 1 }, + { "px": [48,224], "src": [272,176], "f": 0, "t": 413, "d": [108,395], "a": 1 }, + { "px": [64,224], "src": [272,176], "f": 0, "t": 413, "d": [108,396], "a": 1 }, + { "px": [80,224], "src": [272,176], "f": 0, "t": 413, "d": [108,397], "a": 1 }, + { "px": [96,224], "src": [272,176], "f": 0, "t": 413, "d": [108,398], "a": 1 }, + { "px": [112,224], "src": [272,176], "f": 0, "t": 413, "d": [108,399], "a": 1 }, + { "px": [128,224], "src": [272,176], "f": 0, "t": 413, "d": [108,400], "a": 1 }, + { "px": [144,224], "src": [272,176], "f": 0, "t": 413, "d": [108,401], "a": 1 }, + { "px": [160,224], "src": [272,176], "f": 0, "t": 413, "d": [108,402], "a": 1 }, + { "px": [176,224], "src": [272,176], "f": 0, "t": 413, "d": [108,403], "a": 1 }, + { "px": [192,224], "src": [272,176], "f": 0, "t": 413, "d": [108,404], "a": 1 }, + { "px": [208,224], "src": [272,176], "f": 0, "t": 413, "d": [108,405], "a": 1 }, + { "px": [224,224], "src": [272,176], "f": 0, "t": 413, "d": [108,406], "a": 1 }, + { "px": [240,224], "src": [272,176], "f": 0, "t": 413, "d": [108,407], "a": 1 }, + { "px": [256,224], "src": [272,176], "f": 0, "t": 413, "d": [108,408], "a": 1 }, + { "px": [272,224], "src": [272,176], "f": 0, "t": 413, "d": [108,409], "a": 1 }, + { "px": [288,224], "src": [272,176], "f": 0, "t": 413, "d": [108,410], "a": 1 }, + { "px": [304,224], "src": [272,176], "f": 0, "t": 413, "d": [108,411], "a": 1 }, + { "px": [320,224], "src": [272,176], "f": 0, "t": 413, "d": [108,412], "a": 1 }, + { "px": [400,224], "src": [272,176], "f": 0, "t": 413, "d": [108,417], "a": 1 }, + { "px": [416,224], "src": [272,176], "f": 0, "t": 413, "d": [108,418], "a": 1 }, + { "px": [432,224], "src": [272,176], "f": 0, "t": 413, "d": [108,419], "a": 1 }, + { "px": [0,240], "src": [272,176], "f": 0, "t": 413, "d": [108,420], "a": 1 }, + { "px": [16,240], "src": [272,176], "f": 0, "t": 413, "d": [108,421], "a": 1 }, + { "px": [32,240], "src": [272,176], "f": 0, "t": 413, "d": [108,422], "a": 1 }, + { "px": [48,240], "src": [272,176], "f": 0, "t": 413, "d": [108,423], "a": 1 }, + { "px": [64,240], "src": [272,176], "f": 0, "t": 413, "d": [108,424], "a": 1 }, + { "px": [80,240], "src": [272,176], "f": 0, "t": 413, "d": [108,425], "a": 1 }, + { "px": [96,240], "src": [272,176], "f": 0, "t": 413, "d": [108,426], "a": 1 }, + { "px": [112,240], "src": [272,176], "f": 0, "t": 413, "d": [108,427], "a": 1 }, + { "px": [128,240], "src": [272,176], "f": 0, "t": 413, "d": [108,428], "a": 1 }, + { "px": [144,240], "src": [272,176], "f": 0, "t": 413, "d": [108,429], "a": 1 }, + { "px": [160,240], "src": [272,176], "f": 0, "t": 413, "d": [108,430], "a": 1 }, + { "px": [176,240], "src": [272,176], "f": 0, "t": 413, "d": [108,431], "a": 1 }, + { "px": [192,240], "src": [272,176], "f": 0, "t": 413, "d": [108,432], "a": 1 }, + { "px": [208,240], "src": [272,176], "f": 0, "t": 413, "d": [108,433], "a": 1 }, + { "px": [224,240], "src": [272,176], "f": 0, "t": 413, "d": [108,434], "a": 1 }, + { "px": [240,240], "src": [272,176], "f": 0, "t": 413, "d": [108,435], "a": 1 }, + { "px": [256,240], "src": [272,176], "f": 0, "t": 413, "d": [108,436], "a": 1 }, + { "px": [272,240], "src": [272,176], "f": 0, "t": 413, "d": [108,437], "a": 1 }, + { "px": [288,240], "src": [272,176], "f": 0, "t": 413, "d": [108,438], "a": 1 }, + { "px": [304,240], "src": [272,176], "f": 0, "t": 413, "d": [108,439], "a": 1 }, + { "px": [320,240], "src": [272,176], "f": 0, "t": 413, "d": [108,440], "a": 1 }, + { "px": [400,240], "src": [272,176], "f": 0, "t": 413, "d": [108,445], "a": 1 }, + { "px": [416,240], "src": [272,176], "f": 0, "t": 413, "d": [108,446], "a": 1 }, + { "px": [432,240], "src": [272,176], "f": 0, "t": 413, "d": [108,447], "a": 1 }, + { "px": [192,16], "src": [272,192], "f": 0, "t": 449, "d": [109,40], "a": 1 }, + { "px": [320,16], "src": [272,192], "f": 1, "t": 449, "d": [109,48], "a": 1 }, + { "px": [336,16], "src": [272,192], "f": 0, "t": 449, "d": [109,49], "a": 1 }, + { "px": [384,16], "src": [272,192], "f": 1, "t": 449, "d": [109,52], "a": 1 }, + { "px": [160,32], "src": [272,192], "f": 1, "t": 449, "d": [109,66], "a": 1 }, + { "px": [160,32], "src": [272,192], "f": 3, "t": 449, "d": [109,66], "a": 1 }, + { "px": [16,48], "src": [272,192], "f": 2, "t": 449, "d": [109,85], "a": 1 }, + { "px": [176,64], "src": [272,192], "f": 1, "t": 449, "d": [109,123], "a": 1 }, + { "px": [32,80], "src": [272,192], "f": 2, "t": 449, "d": [109,142], "a": 1 }, + { "px": [64,96], "src": [272,192], "f": 2, "t": 449, "d": [109,172], "a": 1 }, + { "px": [192,96], "src": [272,192], "f": 2, "t": 449, "d": [109,180], "a": 1 }, + { "px": [320,96], "src": [272,192], "f": 1, "t": 449, "d": [109,188], "a": 1 }, + { "px": [320,96], "src": [272,192], "f": 3, "t": 449, "d": [109,188], "a": 1 }, + { "px": [80,112], "src": [272,192], "f": 0, "t": 449, "d": [109,201], "a": 1 }, + { "px": [80,160], "src": [272,192], "f": 2, "t": 449, "d": [109,285], "a": 1 }, + { "px": [128,176], "src": [272,192], "f": 2, "t": 449, "d": [109,316], "a": 1 }, + { "px": [256,176], "src": [272,192], "f": 3, "t": 449, "d": [109,324], "a": 1 }, + { "px": [272,176], "src": [272,192], "f": 2, "t": 449, "d": [109,325], "a": 1 }, + { "px": [320,176], "src": [272,192], "f": 3, "t": 449, "d": [109,328], "a": 1 } + ], + "seed": 6011873, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 28, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35a5630-66b0-11ec-9cd7-c7775bd98ec1", + "levelId": 4, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [32,0], "src": [48,192], "f": 0, "t": 435, "d": [51,2], "a": 1 }, + { "px": [64,0], "src": [48,192], "f": 0, "t": 435, "d": [51,4], "a": 1 }, + { "px": [112,0], "src": [48,192], "f": 0, "t": 435, "d": [51,7], "a": 1 }, + { "px": [128,0], "src": [48,192], "f": 0, "t": 435, "d": [51,8], "a": 1 }, + { "px": [144,0], "src": [64,192], "f": 0, "t": 436, "d": [51,9], "a": 1 }, + { "px": [32,16], "src": [64,192], "f": 0, "t": 436, "d": [51,30], "a": 1 }, + { "px": [48,16], "src": [64,192], "f": 0, "t": 436, "d": [51,31], "a": 1 }, + { "px": [64,16], "src": [80,192], "f": 0, "t": 437, "d": [51,32], "a": 1 }, + { "px": [80,16], "src": [80,192], "f": 0, "t": 437, "d": [51,33], "a": 1 }, + { "px": [96,16], "src": [80,192], "f": 0, "t": 437, "d": [51,34], "a": 1 }, + { "px": [112,16], "src": [64,192], "f": 0, "t": 436, "d": [51,35], "a": 1 }, + { "px": [128,16], "src": [48,192], "f": 0, "t": 435, "d": [51,36], "a": 1 }, + { "px": [144,16], "src": [80,192], "f": 0, "t": 437, "d": [51,37], "a": 1 }, + { "px": [32,32], "src": [48,192], "f": 0, "t": 435, "d": [51,58], "a": 1 }, + { "px": [48,32], "src": [80,192], "f": 0, "t": 437, "d": [51,59], "a": 1 }, + { "px": [64,32], "src": [48,192], "f": 0, "t": 435, "d": [51,60], "a": 1 }, + { "px": [80,32], "src": [64,192], "f": 0, "t": 436, "d": [51,61], "a": 1 }, + { "px": [96,32], "src": [80,192], "f": 0, "t": 437, "d": [51,62], "a": 1 }, + { "px": [112,32], "src": [48,192], "f": 0, "t": 435, "d": [51,63], "a": 1 }, + { "px": [224,32], "src": [80,192], "f": 0, "t": 437, "d": [51,70], "a": 1 }, + { "px": [240,32], "src": [64,192], "f": 0, "t": 436, "d": [51,71], "a": 1 }, + { "px": [48,48], "src": [80,192], "f": 0, "t": 437, "d": [51,87], "a": 1 }, + { "px": [80,48], "src": [64,192], "f": 0, "t": 436, "d": [51,89], "a": 1 }, + { "px": [96,48], "src": [48,192], "f": 0, "t": 435, "d": [51,90], "a": 1 }, + { "px": [112,48], "src": [64,192], "f": 0, "t": 436, "d": [51,91], "a": 1 }, + { "px": [208,48], "src": [80,192], "f": 0, "t": 437, "d": [51,97], "a": 1 }, + { "px": [224,48], "src": [64,192], "f": 0, "t": 436, "d": [51,98], "a": 1 }, + { "px": [240,48], "src": [64,192], "f": 0, "t": 436, "d": [51,99], "a": 1 }, + { "px": [336,48], "src": [48,192], "f": 0, "t": 435, "d": [51,105], "a": 1 }, + { "px": [208,64], "src": [80,192], "f": 0, "t": 437, "d": [51,125], "a": 1 }, + { "px": [224,64], "src": [48,192], "f": 0, "t": 435, "d": [51,126], "a": 1 }, + { "px": [240,64], "src": [64,192], "f": 0, "t": 436, "d": [51,127], "a": 1 }, + { "px": [336,64], "src": [48,192], "f": 0, "t": 435, "d": [51,133], "a": 1 }, + { "px": [352,64], "src": [80,192], "f": 0, "t": 437, "d": [51,134], "a": 1 }, + { "px": [160,80], "src": [48,192], "f": 0, "t": 435, "d": [51,150], "a": 1 }, + { "px": [224,80], "src": [64,192], "f": 0, "t": 436, "d": [51,154], "a": 1 }, + { "px": [272,80], "src": [48,192], "f": 0, "t": 435, "d": [51,157], "a": 1 }, + { "px": [304,80], "src": [48,192], "f": 0, "t": 435, "d": [51,159], "a": 1 }, + { "px": [160,96], "src": [80,192], "f": 0, "t": 437, "d": [51,178], "a": 1 }, + { "px": [224,96], "src": [80,192], "f": 0, "t": 437, "d": [51,182], "a": 1 }, + { "px": [256,96], "src": [48,192], "f": 0, "t": 435, "d": [51,184], "a": 1 }, + { "px": [272,96], "src": [48,192], "f": 0, "t": 435, "d": [51,185], "a": 1 }, + { "px": [288,96], "src": [80,192], "f": 0, "t": 437, "d": [51,186], "a": 1 }, + { "px": [128,112], "src": [48,192], "f": 0, "t": 435, "d": [51,204], "a": 1 }, + { "px": [144,112], "src": [80,192], "f": 0, "t": 437, "d": [51,205], "a": 1 }, + { "px": [160,112], "src": [80,192], "f": 0, "t": 437, "d": [51,206], "a": 1 }, + { "px": [176,112], "src": [64,192], "f": 0, "t": 436, "d": [51,207], "a": 1 }, + { "px": [240,112], "src": [80,192], "f": 0, "t": 437, "d": [51,211], "a": 1 }, + { "px": [256,112], "src": [48,192], "f": 0, "t": 435, "d": [51,212], "a": 1 }, + { "px": [352,112], "src": [80,192], "f": 0, "t": 437, "d": [51,218], "a": 1 }, + { "px": [128,128], "src": [48,192], "f": 0, "t": 435, "d": [51,232], "a": 1 }, + { "px": [144,128], "src": [80,192], "f": 0, "t": 437, "d": [51,233], "a": 1 }, + { "px": [160,128], "src": [64,192], "f": 0, "t": 436, "d": [51,234], "a": 1 }, + { "px": [240,128], "src": [64,192], "f": 0, "t": 436, "d": [51,239], "a": 1 }, + { "px": [304,128], "src": [64,192], "f": 0, "t": 436, "d": [51,243], "a": 1 }, + { "px": [352,128], "src": [64,192], "f": 0, "t": 436, "d": [51,246], "a": 1 }, + { "px": [368,128], "src": [48,192], "f": 0, "t": 435, "d": [51,247], "a": 1 }, + { "px": [112,144], "src": [80,192], "f": 0, "t": 437, "d": [51,259], "a": 1 }, + { "px": [128,144], "src": [80,192], "f": 0, "t": 437, "d": [51,260], "a": 1 }, + { "px": [144,144], "src": [80,192], "f": 0, "t": 437, "d": [51,261], "a": 1 }, + { "px": [160,144], "src": [48,192], "f": 0, "t": 435, "d": [51,262], "a": 1 }, + { "px": [208,144], "src": [64,192], "f": 0, "t": 436, "d": [51,265], "a": 1 }, + { "px": [224,144], "src": [64,192], "f": 0, "t": 436, "d": [51,266], "a": 1 }, + { "px": [240,144], "src": [48,192], "f": 0, "t": 435, "d": [51,267], "a": 1 }, + { "px": [288,144], "src": [48,192], "f": 0, "t": 435, "d": [51,270], "a": 1 }, + { "px": [368,144], "src": [48,192], "f": 0, "t": 435, "d": [51,275], "a": 1 }, + { "px": [192,160], "src": [80,192], "f": 0, "t": 437, "d": [51,292], "a": 1 }, + { "px": [208,160], "src": [80,192], "f": 0, "t": 437, "d": [51,293], "a": 1 }, + { "px": [224,160], "src": [64,192], "f": 0, "t": 436, "d": [51,294], "a": 1 }, + { "px": [240,160], "src": [64,192], "f": 0, "t": 436, "d": [51,295], "a": 1 }, + { "px": [288,160], "src": [80,192], "f": 0, "t": 437, "d": [51,298], "a": 1 }, + { "px": [352,208], "src": [48,192], "f": 0, "t": 435, "d": [51,386], "a": 1 }, + { "px": [352,224], "src": [80,192], "f": 0, "t": 437, "d": [51,414], "a": 1 }, + { "px": [368,224], "src": [48,192], "f": 0, "t": 435, "d": [51,415], "a": 1 }, + { "px": [368,240], "src": [80,192], "f": 0, "t": 437, "d": [51,443], "a": 1 }, + { "px": [352,32], "src": [96,192], "f": 0, "t": 438, "d": [85,78], "a": 1 }, + { "px": [288,48], "src": [128,192], "f": 0, "t": 440, "d": [85,102], "a": 1 }, + { "px": [304,48], "src": [128,192], "f": 0, "t": 440, "d": [85,103], "a": 1 }, + { "px": [208,80], "src": [128,192], "f": 0, "t": 440, "d": [85,153], "a": 1 }, + { "px": [240,80], "src": [96,192], "f": 0, "t": 438, "d": [85,155], "a": 1 }, + { "px": [48,0], "src": [32,192], "f": 0, "t": 434, "d": [102,3], "a": 1 }, + { "px": [80,0], "src": [32,192], "f": 0, "t": 434, "d": [102,5], "a": 1 }, + { "px": [96,0], "src": [32,192], "f": 0, "t": 434, "d": [102,6], "a": 1 }, + { "px": [128,32], "src": [32,192], "f": 0, "t": 434, "d": [102,64], "a": 1 }, + { "px": [208,32], "src": [16,192], "f": 0, "t": 433, "d": [102,69], "a": 1 }, + { "px": [272,32], "src": [0,192], "f": 0, "t": 432, "d": [102,73], "a": 1 }, + { "px": [288,32], "src": [16,192], "f": 0, "t": 433, "d": [102,74], "a": 1 }, + { "px": [304,32], "src": [0,192], "f": 0, "t": 432, "d": [102,75], "a": 1 }, + { "px": [368,32], "src": [16,192], "f": 0, "t": 433, "d": [102,79], "a": 1 }, + { "px": [64,48], "src": [0,192], "f": 0, "t": 432, "d": [102,88], "a": 1 }, + { "px": [128,48], "src": [32,192], "f": 0, "t": 434, "d": [102,92], "a": 1 }, + { "px": [144,48], "src": [32,192], "f": 0, "t": 434, "d": [102,93], "a": 1 }, + { "px": [272,48], "src": [16,192], "f": 0, "t": 433, "d": [102,101], "a": 1 }, + { "px": [352,48], "src": [0,192], "f": 0, "t": 432, "d": [102,106], "a": 1 }, + { "px": [368,48], "src": [16,192], "f": 0, "t": 433, "d": [102,107], "a": 1 }, + { "px": [48,64], "src": [32,192], "f": 0, "t": 434, "d": [102,115], "a": 1 }, + { "px": [64,64], "src": [32,192], "f": 0, "t": 434, "d": [102,116], "a": 1 }, + { "px": [80,64], "src": [0,192], "f": 0, "t": 432, "d": [102,117], "a": 1 }, + { "px": [96,64], "src": [16,192], "f": 0, "t": 433, "d": [102,118], "a": 1 }, + { "px": [112,64], "src": [16,192], "f": 0, "t": 433, "d": [102,119], "a": 1 }, + { "px": [128,64], "src": [0,192], "f": 0, "t": 432, "d": [102,120], "a": 1 }, + { "px": [144,64], "src": [32,192], "f": 0, "t": 434, "d": [102,121], "a": 1 }, + { "px": [272,64], "src": [32,192], "f": 0, "t": 434, "d": [102,129], "a": 1 }, + { "px": [288,64], "src": [0,192], "f": 0, "t": 432, "d": [102,130], "a": 1 }, + { "px": [304,64], "src": [32,192], "f": 0, "t": 434, "d": [102,131], "a": 1 }, + { "px": [368,64], "src": [0,192], "f": 0, "t": 432, "d": [102,135], "a": 1 }, + { "px": [80,80], "src": [0,192], "f": 0, "t": 432, "d": [102,145], "a": 1 }, + { "px": [96,80], "src": [16,192], "f": 0, "t": 433, "d": [102,146], "a": 1 }, + { "px": [112,80], "src": [0,192], "f": 0, "t": 432, "d": [102,147], "a": 1 }, + { "px": [128,80], "src": [0,192], "f": 0, "t": 432, "d": [102,148], "a": 1 }, + { "px": [144,80], "src": [0,192], "f": 0, "t": 432, "d": [102,149], "a": 1 }, + { "px": [288,80], "src": [32,192], "f": 0, "t": 434, "d": [102,158], "a": 1 }, + { "px": [352,80], "src": [16,192], "f": 0, "t": 433, "d": [102,162], "a": 1 }, + { "px": [368,80], "src": [32,192], "f": 0, "t": 434, "d": [102,163], "a": 1 }, + { "px": [112,96], "src": [32,192], "f": 0, "t": 434, "d": [102,175], "a": 1 }, + { "px": [128,96], "src": [0,192], "f": 0, "t": 432, "d": [102,176], "a": 1 }, + { "px": [144,96], "src": [32,192], "f": 0, "t": 434, "d": [102,177], "a": 1 }, + { "px": [240,96], "src": [0,192], "f": 0, "t": 432, "d": [102,183], "a": 1 }, + { "px": [352,96], "src": [0,192], "f": 0, "t": 432, "d": [102,190], "a": 1 }, + { "px": [368,96], "src": [32,192], "f": 0, "t": 434, "d": [102,191], "a": 1 }, + { "px": [112,112], "src": [0,192], "f": 0, "t": 432, "d": [102,203], "a": 1 }, + { "px": [192,112], "src": [0,192], "f": 0, "t": 432, "d": [102,208], "a": 1 }, + { "px": [208,112], "src": [16,192], "f": 0, "t": 433, "d": [102,209], "a": 1 }, + { "px": [224,112], "src": [32,192], "f": 0, "t": 434, "d": [102,210], "a": 1 }, + { "px": [272,112], "src": [0,192], "f": 0, "t": 432, "d": [102,213], "a": 1 }, + { "px": [288,112], "src": [32,192], "f": 0, "t": 434, "d": [102,214], "a": 1 }, + { "px": [304,112], "src": [16,192], "f": 0, "t": 433, "d": [102,215], "a": 1 }, + { "px": [368,112], "src": [0,192], "f": 0, "t": 432, "d": [102,219], "a": 1 }, + { "px": [96,128], "src": [0,192], "f": 0, "t": 432, "d": [102,230], "a": 1 }, + { "px": [112,128], "src": [32,192], "f": 0, "t": 434, "d": [102,231], "a": 1 }, + { "px": [176,128], "src": [16,192], "f": 0, "t": 433, "d": [102,235], "a": 1 }, + { "px": [192,128], "src": [16,192], "f": 0, "t": 433, "d": [102,236], "a": 1 }, + { "px": [208,128], "src": [16,192], "f": 0, "t": 433, "d": [102,237], "a": 1 }, + { "px": [224,128], "src": [32,192], "f": 0, "t": 434, "d": [102,238], "a": 1 }, + { "px": [256,128], "src": [0,192], "f": 0, "t": 432, "d": [102,240], "a": 1 }, + { "px": [272,128], "src": [0,192], "f": 0, "t": 432, "d": [102,241], "a": 1 }, + { "px": [288,128], "src": [32,192], "f": 0, "t": 434, "d": [102,242], "a": 1 }, + { "px": [96,144], "src": [0,192], "f": 0, "t": 432, "d": [102,258], "a": 1 }, + { "px": [176,144], "src": [0,192], "f": 0, "t": 432, "d": [102,263], "a": 1 }, + { "px": [192,144], "src": [16,192], "f": 0, "t": 433, "d": [102,264], "a": 1 }, + { "px": [256,144], "src": [0,192], "f": 0, "t": 432, "d": [102,268], "a": 1 }, + { "px": [272,144], "src": [16,192], "f": 0, "t": 433, "d": [102,269], "a": 1 }, + { "px": [304,144], "src": [32,192], "f": 0, "t": 434, "d": [102,271], "a": 1 }, + { "px": [352,144], "src": [0,192], "f": 0, "t": 432, "d": [102,274], "a": 1 }, + { "px": [144,160], "src": [32,192], "f": 0, "t": 434, "d": [102,289], "a": 1 }, + { "px": [160,160], "src": [32,192], "f": 0, "t": 434, "d": [102,290], "a": 1 }, + { "px": [176,160], "src": [0,192], "f": 0, "t": 432, "d": [102,291], "a": 1 }, + { "px": [304,160], "src": [0,192], "f": 0, "t": 432, "d": [102,299], "a": 1 }, + { "px": [352,160], "src": [16,192], "f": 0, "t": 433, "d": [102,302], "a": 1 }, + { "px": [368,160], "src": [0,192], "f": 0, "t": 432, "d": [102,303], "a": 1 }, + { "px": [352,176], "src": [32,192], "f": 0, "t": 434, "d": [102,330], "a": 1 }, + { "px": [368,176], "src": [32,192], "f": 0, "t": 434, "d": [102,331], "a": 1 }, + { "px": [352,192], "src": [0,192], "f": 0, "t": 432, "d": [102,358], "a": 1 }, + { "px": [368,192], "src": [16,192], "f": 0, "t": 433, "d": [102,359], "a": 1 }, + { "px": [368,208], "src": [16,192], "f": 0, "t": 433, "d": [102,387], "a": 1 }, + { "px": [352,240], "src": [0,192], "f": 0, "t": 432, "d": [102,442], "a": 1 }, + { "px": [256,32], "src": [160,208], "f": 0, "t": 478, "d": [70,72], "a": 1 }, + { "px": [256,48], "src": [160,208], "f": 0, "t": 478, "d": [70,100], "a": 1 }, + { "px": [320,48], "src": [160,208], "f": 0, "t": 478, "d": [70,104], "a": 1 }, + { "px": [256,64], "src": [160,208], "f": 0, "t": 478, "d": [70,128], "a": 1 }, + { "px": [320,64], "src": [160,208], "f": 0, "t": 478, "d": [70,132], "a": 1 }, + { "px": [256,80], "src": [160,208], "f": 0, "t": 478, "d": [70,156], "a": 1 }, + { "px": [128,16], "src": [240,176], "f": 3, "t": 411, "d": [91,36], "a": 1 }, + { "px": [48,32], "src": [240,176], "f": 2, "t": 411, "d": [91,59], "a": 1 }, + { "px": [128,48], "src": [240,176], "f": 1, "t": 411, "d": [91,92], "a": 1 }, + { "px": [304,48], "src": [240,176], "f": 1, "t": 411, "d": [91,103], "a": 1 }, + { "px": [352,48], "src": [240,176], "f": 0, "t": 411, "d": [91,106], "a": 1 }, + { "px": [80,64], "src": [240,176], "f": 2, "t": 411, "d": [91,117], "a": 1 }, + { "px": [304,64], "src": [240,176], "f": 3, "t": 411, "d": [91,131], "a": 1 }, + { "px": [352,64], "src": [240,176], "f": 2, "t": 411, "d": [91,134], "a": 1 }, + { "px": [112,80], "src": [240,176], "f": 2, "t": 411, "d": [91,147], "a": 1 }, + { "px": [144,80], "src": [240,176], "f": 1, "t": 411, "d": [91,149], "a": 1 }, + { "px": [224,80], "src": [240,176], "f": 2, "t": 411, "d": [91,154], "a": 1 }, + { "px": [288,80], "src": [240,176], "f": 3, "t": 411, "d": [91,158], "a": 1 }, + { "px": [160,112], "src": [240,176], "f": 1, "t": 411, "d": [91,206], "a": 1 }, + { "px": [224,112], "src": [240,176], "f": 0, "t": 411, "d": [91,210], "a": 1 }, + { "px": [288,112], "src": [240,176], "f": 1, "t": 411, "d": [91,214], "a": 1 }, + { "px": [112,128], "src": [240,176], "f": 0, "t": 411, "d": [91,231], "a": 1 }, + { "px": [144,144], "src": [240,176], "f": 2, "t": 411, "d": [91,261], "a": 1 }, + { "px": [240,144], "src": [240,176], "f": 3, "t": 411, "d": [91,267], "a": 1 }, + { "px": [288,144], "src": [240,176], "f": 2, "t": 411, "d": [91,270], "a": 1 }, + { "px": [32,0], "src": [208,176], "f": 0, "t": 409, "d": [89,2], "a": 1 }, + { "px": [144,0], "src": [208,176], "f": 1, "t": 409, "d": [89,9], "a": 1 }, + { "px": [32,16], "src": [208,176], "f": 0, "t": 409, "d": [89,30], "a": 1 }, + { "px": [144,16], "src": [208,176], "f": 1, "t": 409, "d": [89,37], "a": 1 }, + { "px": [32,32], "src": [208,176], "f": 0, "t": 409, "d": [89,58], "a": 1 }, + { "px": [128,32], "src": [208,176], "f": 1, "t": 409, "d": [89,64], "a": 1 }, + { "px": [208,32], "src": [208,176], "f": 0, "t": 409, "d": [89,69], "a": 1 }, + { "px": [304,32], "src": [208,176], "f": 1, "t": 409, "d": [89,75], "a": 1 }, + { "px": [352,32], "src": [208,176], "f": 0, "t": 409, "d": [89,78], "a": 1 }, + { "px": [368,32], "src": [208,176], "f": 1, "t": 409, "d": [89,79], "a": 1 }, + { "px": [48,48], "src": [208,176], "f": 0, "t": 409, "d": [89,87], "a": 1 }, + { "px": [144,48], "src": [208,176], "f": 1, "t": 409, "d": [89,93], "a": 1 }, + { "px": [208,48], "src": [208,176], "f": 0, "t": 409, "d": [89,97], "a": 1 }, + { "px": [368,48], "src": [208,176], "f": 1, "t": 409, "d": [89,107], "a": 1 }, + { "px": [48,64], "src": [208,176], "f": 0, "t": 409, "d": [89,115], "a": 1 }, + { "px": [144,64], "src": [208,176], "f": 1, "t": 409, "d": [89,121], "a": 1 }, + { "px": [208,64], "src": [208,176], "f": 0, "t": 409, "d": [89,125], "a": 1 }, + { "px": [368,64], "src": [208,176], "f": 1, "t": 409, "d": [89,135], "a": 1 }, + { "px": [80,80], "src": [208,176], "f": 0, "t": 409, "d": [89,145], "a": 1 }, + { "px": [160,80], "src": [208,176], "f": 1, "t": 409, "d": [89,150], "a": 1 }, + { "px": [208,80], "src": [208,176], "f": 0, "t": 409, "d": [89,153], "a": 1 }, + { "px": [304,80], "src": [208,176], "f": 1, "t": 409, "d": [89,159], "a": 1 }, + { "px": [352,80], "src": [208,176], "f": 0, "t": 409, "d": [89,162], "a": 1 }, + { "px": [368,80], "src": [208,176], "f": 1, "t": 409, "d": [89,163], "a": 1 }, + { "px": [112,96], "src": [208,176], "f": 0, "t": 409, "d": [89,175], "a": 1 }, + { "px": [160,96], "src": [208,176], "f": 1, "t": 409, "d": [89,178], "a": 1 }, + { "px": [224,96], "src": [208,176], "f": 0, "t": 409, "d": [89,182], "a": 1 }, + { "px": [288,96], "src": [208,176], "f": 1, "t": 409, "d": [89,186], "a": 1 }, + { "px": [352,96], "src": [208,176], "f": 0, "t": 409, "d": [89,190], "a": 1 }, + { "px": [368,96], "src": [208,176], "f": 1, "t": 409, "d": [89,191], "a": 1 }, + { "px": [112,112], "src": [208,176], "f": 0, "t": 409, "d": [89,203], "a": 1 }, + { "px": [304,112], "src": [208,176], "f": 1, "t": 409, "d": [89,215], "a": 1 }, + { "px": [352,112], "src": [208,176], "f": 0, "t": 409, "d": [89,218], "a": 1 }, + { "px": [368,112], "src": [208,176], "f": 1, "t": 409, "d": [89,219], "a": 1 }, + { "px": [96,128], "src": [208,176], "f": 0, "t": 409, "d": [89,230], "a": 1 }, + { "px": [304,128], "src": [208,176], "f": 1, "t": 409, "d": [89,243], "a": 1 }, + { "px": [352,128], "src": [208,176], "f": 0, "t": 409, "d": [89,246], "a": 1 }, + { "px": [368,128], "src": [208,176], "f": 1, "t": 409, "d": [89,247], "a": 1 }, + { "px": [96,144], "src": [208,176], "f": 0, "t": 409, "d": [89,258], "a": 1 }, + { "px": [304,144], "src": [208,176], "f": 1, "t": 409, "d": [89,271], "a": 1 }, + { "px": [352,144], "src": [208,176], "f": 0, "t": 409, "d": [89,274], "a": 1 }, + { "px": [368,144], "src": [208,176], "f": 1, "t": 409, "d": [89,275], "a": 1 }, + { "px": [144,160], "src": [208,176], "f": 0, "t": 409, "d": [89,289], "a": 1 }, + { "px": [240,160], "src": [208,176], "f": 1, "t": 409, "d": [89,295], "a": 1 }, + { "px": [288,160], "src": [208,176], "f": 0, "t": 409, "d": [89,298], "a": 1 }, + { "px": [304,160], "src": [208,176], "f": 1, "t": 409, "d": [89,299], "a": 1 }, + { "px": [352,160], "src": [208,176], "f": 0, "t": 409, "d": [89,302], "a": 1 }, + { "px": [368,160], "src": [208,176], "f": 1, "t": 409, "d": [89,303], "a": 1 }, + { "px": [352,176], "src": [208,176], "f": 0, "t": 409, "d": [89,330], "a": 1 }, + { "px": [368,176], "src": [208,176], "f": 1, "t": 409, "d": [89,331], "a": 1 }, + { "px": [352,192], "src": [208,176], "f": 0, "t": 409, "d": [89,358], "a": 1 }, + { "px": [368,192], "src": [208,176], "f": 1, "t": 409, "d": [89,359], "a": 1 }, + { "px": [352,208], "src": [208,176], "f": 0, "t": 409, "d": [89,386], "a": 1 }, + { "px": [368,208], "src": [208,176], "f": 1, "t": 409, "d": [89,387], "a": 1 }, + { "px": [352,224], "src": [208,176], "f": 0, "t": 409, "d": [89,414], "a": 1 }, + { "px": [368,224], "src": [208,176], "f": 1, "t": 409, "d": [89,415], "a": 1 }, + { "px": [352,240], "src": [208,176], "f": 0, "t": 409, "d": [89,442], "a": 1 }, + { "px": [368,240], "src": [208,176], "f": 1, "t": 409, "d": [89,443], "a": 1 }, + { "px": [144,16], "src": [224,176], "f": 2, "t": 410, "d": [88,37], "a": 1 }, + { "px": [32,32], "src": [224,176], "f": 2, "t": 410, "d": [88,58], "a": 1 }, + { "px": [208,32], "src": [224,176], "f": 0, "t": 410, "d": [88,69], "a": 1 }, + { "px": [224,32], "src": [224,176], "f": 0, "t": 410, "d": [88,70], "a": 1 }, + { "px": [240,32], "src": [224,176], "f": 0, "t": 410, "d": [88,71], "a": 1 }, + { "px": [256,32], "src": [224,176], "f": 0, "t": 410, "d": [88,72], "a": 1 }, + { "px": [272,32], "src": [224,176], "f": 0, "t": 410, "d": [88,73], "a": 1 }, + { "px": [288,32], "src": [224,176], "f": 0, "t": 410, "d": [88,74], "a": 1 }, + { "px": [304,32], "src": [224,176], "f": 0, "t": 410, "d": [88,75], "a": 1 }, + { "px": [352,32], "src": [224,176], "f": 0, "t": 410, "d": [88,78], "a": 1 }, + { "px": [368,32], "src": [224,176], "f": 0, "t": 410, "d": [88,79], "a": 1 }, + { "px": [144,48], "src": [224,176], "f": 0, "t": 410, "d": [88,93], "a": 1 }, + { "px": [320,48], "src": [224,176], "f": 0, "t": 410, "d": [88,104], "a": 1 }, + { "px": [336,48], "src": [224,176], "f": 0, "t": 410, "d": [88,105], "a": 1 }, + { "px": [48,64], "src": [224,176], "f": 2, "t": 410, "d": [88,115], "a": 1 }, + { "px": [64,64], "src": [224,176], "f": 2, "t": 410, "d": [88,116], "a": 1 }, + { "px": [320,64], "src": [224,176], "f": 2, "t": 410, "d": [88,132], "a": 1 }, + { "px": [336,64], "src": [224,176], "f": 2, "t": 410, "d": [88,133], "a": 1 }, + { "px": [80,80], "src": [224,176], "f": 2, "t": 410, "d": [88,145], "a": 1 }, + { "px": [96,80], "src": [224,176], "f": 2, "t": 410, "d": [88,146], "a": 1 }, + { "px": [160,80], "src": [224,176], "f": 0, "t": 410, "d": [88,150], "a": 1 }, + { "px": [208,80], "src": [224,176], "f": 2, "t": 410, "d": [88,153], "a": 1 }, + { "px": [304,80], "src": [224,176], "f": 2, "t": 410, "d": [88,159], "a": 1 }, + { "px": [176,112], "src": [224,176], "f": 0, "t": 410, "d": [88,207], "a": 1 }, + { "px": [192,112], "src": [224,176], "f": 0, "t": 410, "d": [88,208], "a": 1 }, + { "px": [208,112], "src": [224,176], "f": 0, "t": 410, "d": [88,209], "a": 1 }, + { "px": [304,112], "src": [224,176], "f": 0, "t": 410, "d": [88,215], "a": 1 }, + { "px": [96,128], "src": [224,176], "f": 0, "t": 410, "d": [88,230], "a": 1 }, + { "px": [96,144], "src": [224,176], "f": 2, "t": 410, "d": [88,258], "a": 1 }, + { "px": [112,144], "src": [224,176], "f": 2, "t": 410, "d": [88,259], "a": 1 }, + { "px": [128,144], "src": [224,176], "f": 2, "t": 410, "d": [88,260], "a": 1 }, + { "px": [256,144], "src": [224,176], "f": 2, "t": 410, "d": [88,268], "a": 1 }, + { "px": [272,144], "src": [224,176], "f": 2, "t": 410, "d": [88,269], "a": 1 }, + { "px": [144,160], "src": [224,176], "f": 2, "t": 410, "d": [88,289], "a": 1 }, + { "px": [160,160], "src": [224,176], "f": 2, "t": 410, "d": [88,290], "a": 1 }, + { "px": [176,160], "src": [224,176], "f": 2, "t": 410, "d": [88,291], "a": 1 }, + { "px": [192,160], "src": [224,176], "f": 2, "t": 410, "d": [88,292], "a": 1 }, + { "px": [208,160], "src": [224,176], "f": 2, "t": 410, "d": [88,293], "a": 1 }, + { "px": [224,160], "src": [224,176], "f": 2, "t": 410, "d": [88,294], "a": 1 }, + { "px": [240,160], "src": [224,176], "f": 2, "t": 410, "d": [88,295], "a": 1 }, + { "px": [288,160], "src": [224,176], "f": 2, "t": 410, "d": [88,298], "a": 1 }, + { "px": [304,160], "src": [224,176], "f": 2, "t": 410, "d": [88,299], "a": 1 } + ], + "seed": 2734618, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a359b9f0-66b0-11ec-9cd7-25dfb937d033", "dir": "n" }, { "levelIid": "a35acb61-66b0-11ec-9cd7-f76e35cfda30", "dir": "s" }, { "levelIid": "a35b8eb0-66b0-11ec-9cd7-3d16ec48af10", "dir": "s" } ] + }, + { + "identifier": "World_Level_5", + "iid": "a35a7d40-66b0-11ec-9cd7-b57d32c8e175", + "uid": 29, + "worldX": 656, + "worldY": -416, + "worldDepth": 1, + "pxWid": 320, + "pxHei": 288, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": true, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 20, + "__cHei": 18, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "490edf21-66b0-11ec-8fc6-f39ef63338fa", + "levelId": 29, + "layerDefUid": 119, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 2856046, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Plant", + "__grid": [4,14], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 48, "y": 304, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "f0d74b70-66b0-11ec-8fc6-0114fc134676", + "width": 20, + "height": 20, + "defUid": 116, + "px": [72,240], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Fruit", "__tile": { "tilesetUid": 117, "x": 48, "y": 304, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Fruit"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 2, "__tile": null, "defUid": 122, "realEditorValues": [{ "id": "V_Int", "params": [2] }] } + ] + }, + { + "__identifier": "Door", + "__grid": [17,6], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 160, "y": 32, "w": 16, "h": 16 }, + "__smartColor": "#00FF30", + "iid": "58a45ea0-8dc0-11ec-a525-2786470df187", + "width": 16, + "height": 16, + "defUid": 123, + "px": [280,112], + "fieldInstances": [{ "__identifier": "link", "__type": "EntityRef", "__value": { + "entityIid": "5c9ee4d0-8dc0-11ec-a525-4ddce479fcbc", + "layerIid": "490eb811-66b0-11ec-8fc6-9b9a3bead751", + "levelIid": "a359b9f0-66b0-11ec-9cd7-25dfb937d033", + "worldIid": "ca0e9bf0-c640-11ed-ad34-5d947c1a0a9f" + }, "__tile": null, "defUid": 124, "realEditorValues": [{ + "id": "V_String", + "params": ["5c9ee4d0-8dc0-11ec-a525-4ddce479fcbc"] + }] }] + } + ] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 20, + "__cHei": 18, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35a7d43-66b0-11ec-9cd7-4fbd87196695", + "levelId": 29, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0, + 0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1, + 1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,0, + 0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0, + 0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1, + 1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [96,0], "src": [16,16], "f": 0, "t": 37, "d": [8,6], "a": 1 }, + { "px": [128,0], "src": [16,32], "f": 0, "t": 73, "d": [8,8], "a": 1 }, + { "px": [144,0], "src": [16,32], "f": 0, "t": 73, "d": [8,9], "a": 1 }, + { "px": [160,0], "src": [16,32], "f": 0, "t": 73, "d": [8,10], "a": 1 }, + { "px": [176,0], "src": [16,32], "f": 0, "t": 73, "d": [8,11], "a": 1 }, + { "px": [208,0], "src": [16,32], "f": 0, "t": 73, "d": [8,13], "a": 1 }, + { "px": [272,0], "src": [16,32], "f": 0, "t": 73, "d": [8,17], "a": 1 }, + { "px": [0,16], "src": [16,16], "f": 0, "t": 37, "d": [8,20], "a": 1 }, + { "px": [80,16], "src": [16,32], "f": 0, "t": 73, "d": [8,25], "a": 1 }, + { "px": [96,16], "src": [16,16], "f": 0, "t": 37, "d": [8,26], "a": 1 }, + { "px": [112,16], "src": [16,16], "f": 0, "t": 37, "d": [8,27], "a": 1 }, + { "px": [256,16], "src": [16,32], "f": 0, "t": 73, "d": [8,36], "a": 1 }, + { "px": [272,16], "src": [16,32], "f": 0, "t": 73, "d": [8,37], "a": 1 }, + { "px": [32,32], "src": [16,32], "f": 0, "t": 73, "d": [8,42], "a": 1 }, + { "px": [80,32], "src": [16,32], "f": 0, "t": 73, "d": [8,45], "a": 1 }, + { "px": [176,32], "src": [16,16], "f": 0, "t": 37, "d": [8,51], "a": 1 }, + { "px": [208,32], "src": [16,16], "f": 0, "t": 37, "d": [8,53], "a": 1 }, + { "px": [224,32], "src": [16,32], "f": 0, "t": 73, "d": [8,54], "a": 1 }, + { "px": [240,32], "src": [16,32], "f": 0, "t": 73, "d": [8,55], "a": 1 }, + { "px": [256,32], "src": [16,32], "f": 0, "t": 73, "d": [8,56], "a": 1 }, + { "px": [272,32], "src": [16,16], "f": 0, "t": 37, "d": [8,57], "a": 1 }, + { "px": [0,48], "src": [16,32], "f": 0, "t": 73, "d": [8,60], "a": 1 }, + { "px": [16,48], "src": [16,16], "f": 0, "t": 37, "d": [8,61], "a": 1 }, + { "px": [32,48], "src": [16,32], "f": 0, "t": 73, "d": [8,62], "a": 1 }, + { "px": [48,48], "src": [16,32], "f": 0, "t": 73, "d": [8,63], "a": 1 }, + { "px": [64,48], "src": [16,16], "f": 0, "t": 37, "d": [8,64], "a": 1 }, + { "px": [80,48], "src": [16,32], "f": 0, "t": 73, "d": [8,65], "a": 1 }, + { "px": [96,48], "src": [16,16], "f": 0, "t": 37, "d": [8,66], "a": 1 }, + { "px": [176,48], "src": [16,32], "f": 0, "t": 73, "d": [8,71], "a": 1 }, + { "px": [192,48], "src": [16,16], "f": 0, "t": 37, "d": [8,72], "a": 1 }, + { "px": [288,48], "src": [16,16], "f": 0, "t": 37, "d": [8,78], "a": 1 }, + { "px": [304,48], "src": [16,16], "f": 0, "t": 37, "d": [8,79], "a": 1 }, + { "px": [0,64], "src": [16,16], "f": 0, "t": 37, "d": [8,80], "a": 1 }, + { "px": [112,64], "src": [16,16], "f": 0, "t": 37, "d": [8,87], "a": 1 }, + { "px": [192,64], "src": [16,32], "f": 0, "t": 73, "d": [8,92], "a": 1 }, + { "px": [304,64], "src": [16,32], "f": 0, "t": 73, "d": [8,99], "a": 1 }, + { "px": [128,80], "src": [16,16], "f": 0, "t": 37, "d": [8,108], "a": 1 }, + { "px": [192,80], "src": [16,16], "f": 0, "t": 37, "d": [8,112], "a": 1 }, + { "px": [304,80], "src": [16,16], "f": 0, "t": 37, "d": [8,119], "a": 1 }, + { "px": [128,96], "src": [16,16], "f": 0, "t": 37, "d": [8,128], "a": 1 }, + { "px": [144,96], "src": [16,32], "f": 0, "t": 73, "d": [8,129], "a": 1 }, + { "px": [176,96], "src": [16,16], "f": 0, "t": 37, "d": [8,131], "a": 1 }, + { "px": [192,96], "src": [16,32], "f": 0, "t": 73, "d": [8,132], "a": 1 }, + { "px": [304,96], "src": [16,32], "f": 0, "t": 73, "d": [8,139], "a": 1 }, + { "px": [48,112], "src": [16,32], "f": 0, "t": 73, "d": [8,143], "a": 1 }, + { "px": [64,112], "src": [16,32], "f": 0, "t": 73, "d": [8,144], "a": 1 }, + { "px": [128,112], "src": [16,16], "f": 0, "t": 37, "d": [8,148], "a": 1 }, + { "px": [144,112], "src": [16,16], "f": 0, "t": 37, "d": [8,149], "a": 1 }, + { "px": [160,112], "src": [16,16], "f": 0, "t": 37, "d": [8,150], "a": 1 }, + { "px": [176,112], "src": [16,16], "f": 0, "t": 37, "d": [8,151], "a": 1 }, + { "px": [304,112], "src": [16,32], "f": 0, "t": 73, "d": [8,159], "a": 1 }, + { "px": [16,128], "src": [16,32], "f": 0, "t": 73, "d": [8,161], "a": 1 }, + { "px": [32,128], "src": [16,32], "f": 0, "t": 73, "d": [8,162], "a": 1 }, + { "px": [48,128], "src": [16,32], "f": 0, "t": 73, "d": [8,163], "a": 1 }, + { "px": [144,128], "src": [16,16], "f": 0, "t": 37, "d": [8,169], "a": 1 }, + { "px": [160,128], "src": [16,32], "f": 0, "t": 73, "d": [8,170], "a": 1 }, + { "px": [272,128], "src": [16,16], "f": 0, "t": 37, "d": [8,177], "a": 1 }, + { "px": [288,128], "src": [16,16], "f": 0, "t": 37, "d": [8,178], "a": 1 }, + { "px": [16,144], "src": [16,32], "f": 0, "t": 73, "d": [8,181], "a": 1 }, + { "px": [272,144], "src": [16,32], "f": 0, "t": 73, "d": [8,197], "a": 1 }, + { "px": [288,144], "src": [16,16], "f": 0, "t": 37, "d": [8,198], "a": 1 }, + { "px": [16,160], "src": [16,32], "f": 0, "t": 73, "d": [8,201], "a": 1 }, + { "px": [272,160], "src": [16,32], "f": 0, "t": 73, "d": [8,217], "a": 1 }, + { "px": [288,160], "src": [16,32], "f": 0, "t": 73, "d": [8,218], "a": 1 }, + { "px": [0,176], "src": [16,32], "f": 0, "t": 73, "d": [8,220], "a": 1 }, + { "px": [16,176], "src": [16,32], "f": 0, "t": 73, "d": [8,221], "a": 1 }, + { "px": [272,176], "src": [16,16], "f": 0, "t": 37, "d": [8,237], "a": 1 }, + { "px": [304,176], "src": [16,16], "f": 0, "t": 37, "d": [8,239], "a": 1 }, + { "px": [16,192], "src": [16,16], "f": 0, "t": 37, "d": [8,241], "a": 1 }, + { "px": [272,192], "src": [16,16], "f": 0, "t": 37, "d": [8,257], "a": 1 }, + { "px": [0,208], "src": [16,16], "f": 0, "t": 37, "d": [8,260], "a": 1 }, + { "px": [16,208], "src": [16,32], "f": 0, "t": 73, "d": [8,261], "a": 1 }, + { "px": [160,208], "src": [16,16], "f": 0, "t": 37, "d": [8,270], "a": 1 }, + { "px": [176,208], "src": [16,16], "f": 0, "t": 37, "d": [8,271], "a": 1 }, + { "px": [192,208], "src": [16,16], "f": 0, "t": 37, "d": [8,272], "a": 1 }, + { "px": [208,208], "src": [16,32], "f": 0, "t": 73, "d": [8,273], "a": 1 }, + { "px": [256,208], "src": [16,16], "f": 0, "t": 37, "d": [8,276], "a": 1 }, + { "px": [272,208], "src": [16,32], "f": 0, "t": 73, "d": [8,277], "a": 1 }, + { "px": [288,208], "src": [16,32], "f": 0, "t": 73, "d": [8,278], "a": 1 }, + { "px": [0,224], "src": [16,32], "f": 0, "t": 73, "d": [8,280], "a": 1 }, + { "px": [16,224], "src": [16,32], "f": 0, "t": 73, "d": [8,281], "a": 1 }, + { "px": [144,224], "src": [16,32], "f": 0, "t": 73, "d": [8,289], "a": 1 }, + { "px": [160,224], "src": [16,16], "f": 0, "t": 37, "d": [8,290], "a": 1 }, + { "px": [176,224], "src": [16,32], "f": 0, "t": 73, "d": [8,291], "a": 1 }, + { "px": [240,224], "src": [16,16], "f": 0, "t": 37, "d": [8,295], "a": 1 }, + { "px": [256,224], "src": [16,32], "f": 0, "t": 73, "d": [8,296], "a": 1 }, + { "px": [288,224], "src": [16,16], "f": 0, "t": 37, "d": [8,298], "a": 1 }, + { "px": [16,240], "src": [16,32], "f": 0, "t": 73, "d": [8,301], "a": 1 }, + { "px": [144,240], "src": [16,16], "f": 0, "t": 37, "d": [8,309], "a": 1 }, + { "px": [256,240], "src": [16,32], "f": 0, "t": 73, "d": [8,316], "a": 1 }, + { "px": [0,256], "src": [16,32], "f": 0, "t": 73, "d": [8,320], "a": 1 }, + { "px": [32,256], "src": [16,16], "f": 0, "t": 37, "d": [8,322], "a": 1 }, + { "px": [80,256], "src": [16,16], "f": 0, "t": 37, "d": [8,325], "a": 1 }, + { "px": [96,256], "src": [16,16], "f": 0, "t": 37, "d": [8,326], "a": 1 }, + { "px": [112,256], "src": [16,16], "f": 0, "t": 37, "d": [8,327], "a": 1 }, + { "px": [144,256], "src": [16,32], "f": 0, "t": 73, "d": [8,329], "a": 1 }, + { "px": [16,272], "src": [16,32], "f": 0, "t": 73, "d": [8,341], "a": 1 }, + { "px": [256,272], "src": [16,16], "f": 0, "t": 37, "d": [8,356], "a": 1 }, + { "px": [272,272], "src": [16,16], "f": 0, "t": 37, "d": [8,357], "a": 1 }, + { "px": [0,0], "src": [144,192], "f": 0, "t": 441, "d": [84,0], "a": 1 }, + { "px": [224,0], "src": [176,192], "f": 0, "t": 443, "d": [84,14], "a": 1 }, + { "px": [240,0], "src": [144,192], "f": 0, "t": 441, "d": [84,15], "a": 1 }, + { "px": [16,16], "src": [144,192], "f": 0, "t": 441, "d": [84,21], "a": 1 }, + { "px": [32,16], "src": [144,192], "f": 0, "t": 441, "d": [84,22], "a": 1 }, + { "px": [160,16], "src": [176,192], "f": 0, "t": 443, "d": [84,30], "a": 1 }, + { "px": [224,16], "src": [144,192], "f": 0, "t": 441, "d": [84,34], "a": 1 }, + { "px": [240,16], "src": [144,192], "f": 0, "t": 441, "d": [84,35], "a": 1 }, + { "px": [48,32], "src": [192,192], "f": 0, "t": 444, "d": [84,43], "a": 1 }, + { "px": [64,32], "src": [192,192], "f": 0, "t": 444, "d": [84,44], "a": 1 }, + { "px": [96,32], "src": [160,192], "f": 0, "t": 442, "d": [84,46], "a": 1 }, + { "px": [128,32], "src": [144,192], "f": 0, "t": 441, "d": [84,48], "a": 1 }, + { "px": [176,64], "src": [160,192], "f": 0, "t": 442, "d": [84,91], "a": 1 }, + { "px": [176,80], "src": [192,192], "f": 0, "t": 444, "d": [84,111], "a": 1 }, + { "px": [0,128], "src": [176,192], "f": 0, "t": 443, "d": [84,160], "a": 1 }, + { "px": [304,144], "src": [192,192], "f": 0, "t": 444, "d": [84,199], "a": 1 }, + { "px": [0,160], "src": [144,192], "f": 0, "t": 441, "d": [84,200], "a": 1 }, + { "px": [288,176], "src": [176,192], "f": 0, "t": 443, "d": [84,238], "a": 1 }, + { "px": [0,192], "src": [160,192], "f": 0, "t": 442, "d": [84,240], "a": 1 }, + { "px": [304,192], "src": [176,192], "f": 0, "t": 443, "d": [84,259], "a": 1 }, + { "px": [224,224], "src": [176,192], "f": 0, "t": 443, "d": [84,294], "a": 1 }, + { "px": [208,240], "src": [192,192], "f": 0, "t": 444, "d": [84,313], "a": 1 }, + { "px": [224,240], "src": [192,192], "f": 0, "t": 444, "d": [84,314], "a": 1 }, + { "px": [48,256], "src": [192,192], "f": 0, "t": 444, "d": [84,323], "a": 1 }, + { "px": [64,256], "src": [192,192], "f": 0, "t": 444, "d": [84,324], "a": 1 }, + { "px": [128,256], "src": [176,192], "f": 0, "t": 443, "d": [84,328], "a": 1 }, + { "px": [176,256], "src": [144,192], "f": 0, "t": 441, "d": [84,331], "a": 1 }, + { "px": [208,256], "src": [144,192], "f": 0, "t": 441, "d": [84,333], "a": 1 }, + { "px": [64,272], "src": [144,192], "f": 0, "t": 441, "d": [84,344], "a": 1 }, + { "px": [128,272], "src": [160,192], "f": 0, "t": 442, "d": [84,348], "a": 1 }, + { "px": [224,32], "src": [16,144], "f": 0, "t": 325, "d": [75,54], "a": 1 }, + { "px": [240,33], "src": [32,144], "f": 0, "t": 326, "d": [75,55], "a": 1 }, + { "px": [256,33], "src": [32,144], "f": 0, "t": 326, "d": [75,56], "a": 1 }, + { "px": [32,48], "src": [16,144], "f": 0, "t": 325, "d": [75,62], "a": 1 }, + { "px": [48,48], "src": [16,144], "f": 0, "t": 325, "d": [75,63], "a": 1 }, + { "px": [64,49], "src": [16,144], "f": 0, "t": 325, "d": [75,64], "a": 1 }, + { "px": [80,49], "src": [32,144], "f": 0, "t": 326, "d": [75,65], "a": 1 }, + { "px": [0,65], "src": [32,144], "f": 0, "t": 326, "d": [75,80], "a": 1 }, + { "px": [48,128], "src": [32,144], "f": 0, "t": 326, "d": [75,163], "a": 1 }, + { "px": [144,128], "src": [32,144], "f": 0, "t": 326, "d": [75,169], "a": 1 }, + { "px": [160,128], "src": [16,144], "f": 0, "t": 325, "d": [75,170], "a": 1 }, + { "px": [0,112], "src": [48,96], "f": 0, "t": 219, "d": [9,140], "a": 1 }, + { "px": [16,112], "src": [48,96], "f": 0, "t": 219, "d": [9,141], "a": 1 }, + { "px": [32,112], "src": [48,96], "f": 0, "t": 219, "d": [9,142], "a": 1 }, + { "px": [272,112], "src": [48,96], "f": 0, "t": 219, "d": [9,157], "a": 1 }, + { "px": [288,112], "src": [64,96], "f": 0, "t": 220, "d": [9,158], "a": 1 }, + { "px": [176,192], "src": [64,96], "f": 0, "t": 220, "d": [9,251], "a": 1 }, + { "px": [192,192], "src": [48,96], "f": 0, "t": 219, "d": [9,252], "a": 1 }, + { "px": [224,208], "src": [64,96], "f": 0, "t": 220, "d": [9,274], "a": 1 }, + { "px": [240,208], "src": [64,96], "f": 0, "t": 220, "d": [9,275], "a": 1 }, + { "px": [32,240], "src": [48,96], "f": 0, "t": 219, "d": [9,302], "a": 1 }, + { "px": [48,240], "src": [48,96], "f": 0, "t": 219, "d": [9,303], "a": 1 }, + { "px": [64,240], "src": [48,96], "f": 0, "t": 219, "d": [9,304], "a": 1 }, + { "px": [80,240], "src": [64,96], "f": 0, "t": 220, "d": [9,305], "a": 1 }, + { "px": [96,240], "src": [48,96], "f": 0, "t": 219, "d": [9,306], "a": 1 }, + { "px": [112,240], "src": [48,96], "f": 0, "t": 219, "d": [9,307], "a": 1 }, + { "px": [128,240], "src": [48,96], "f": 0, "t": 219, "d": [9,308], "a": 1 }, + { "px": [193,64], "src": [0,112], "f": 1, "t": 252, "d": [10,92], "a": 1 }, + { "px": [192,80], "src": [0,112], "f": 1, "t": 252, "d": [10,112], "a": 1 }, + { "px": [303,80], "src": [0,128], "f": 0, "t": 288, "d": [10,119], "a": 1 }, + { "px": [127,96], "src": [0,128], "f": 0, "t": 288, "d": [10,128], "a": 1 }, + { "px": [192,96], "src": [0,112], "f": 1, "t": 252, "d": [10,132], "a": 1 }, + { "px": [304,96], "src": [0,112], "f": 0, "t": 252, "d": [10,139], "a": 1 }, + { "px": [128,112], "src": [0,128], "f": 0, "t": 288, "d": [10,148], "a": 1 }, + { "px": [272,144], "src": [0,112], "f": 0, "t": 252, "d": [10,197], "a": 1 }, + { "px": [18,160], "src": [0,128], "f": 1, "t": 288, "d": [10,201], "a": 1 }, + { "px": [272,160], "src": [0,128], "f": 0, "t": 288, "d": [10,217], "a": 1 }, + { "px": [18,176], "src": [0,128], "f": 1, "t": 288, "d": [10,221], "a": 1 }, + { "px": [271,176], "src": [0,128], "f": 0, "t": 288, "d": [10,237], "a": 1 }, + { "px": [16,192], "src": [0,128], "f": 1, "t": 288, "d": [10,241], "a": 1 }, + { "px": [16,208], "src": [0,112], "f": 1, "t": 252, "d": [10,261], "a": 1 }, + { "px": [16,224], "src": [0,112], "f": 1, "t": 252, "d": [10,281], "a": 1 }, + { "px": [142,224], "src": [0,128], "f": 0, "t": 288, "d": [10,289], "a": 1 }, + { "px": [208,48], "src": [0,144], "f": 1, "t": 324, "d": [77,73], "a": 1 }, + { "px": [272,48], "src": [0,144], "f": 0, "t": 324, "d": [77,77], "a": 1 }, + { "px": [16,64], "src": [0,144], "f": 1, "t": 324, "d": [77,81], "a": 1 }, + { "px": [96,64], "src": [0,144], "f": 0, "t": 324, "d": [77,86], "a": 1 }, + { "px": [288,64], "src": [0,144], "f": 0, "t": 324, "d": [77,98], "a": 1 }, + { "px": [112,80], "src": [0,144], "f": 0, "t": 324, "d": [77,107], "a": 1 }, + { "px": [192,112], "src": [0,144], "f": 1, "t": 324, "d": [77,152], "a": 1 }, + { "px": [64,128], "src": [0,144], "f": 1, "t": 324, "d": [77,164], "a": 1 }, + { "px": [128,128], "src": [0,144], "f": 0, "t": 324, "d": [77,168], "a": 1 }, + { "px": [176,128], "src": [0,144], "f": 1, "t": 324, "d": [77,171], "a": 1 }, + { "px": [256,128], "src": [0,144], "f": 0, "t": 324, "d": [77,176], "a": 1 }, + { "px": [32,144], "src": [0,144], "f": 1, "t": 324, "d": [77,182], "a": 1 }, + { "px": [48,96], "src": [0,96], "f": 0, "t": 216, "d": [11,123], "a": 1 }, + { "px": [64,96], "src": [0,96], "f": 1, "t": 216, "d": [11,124], "a": 1 }, + { "px": [80,112], "src": [0,96], "f": 1, "t": 216, "d": [11,145], "a": 1 }, + { "px": [256,112], "src": [0,96], "f": 0, "t": 216, "d": [11,156], "a": 1 }, + { "px": [160,192], "src": [0,96], "f": 0, "t": 216, "d": [11,250], "a": 1 }, + { "px": [208,192], "src": [0,96], "f": 1, "t": 216, "d": [11,253], "a": 1 }, + { "px": [256,192], "src": [0,96], "f": 0, "t": 216, "d": [11,256], "a": 1 }, + { "px": [144,208], "src": [0,96], "f": 0, "t": 216, "d": [11,269], "a": 1 }, + { "px": [208,32], "src": [48,144], "f": 0, "t": 327, "d": [76,53], "a": 1 }, + { "px": [272,32], "src": [48,144], "f": 1, "t": 327, "d": [76,57], "a": 1 }, + { "px": [16,48], "src": [48,144], "f": 0, "t": 327, "d": [76,61], "a": 1 }, + { "px": [96,48], "src": [48,144], "f": 1, "t": 327, "d": [76,66], "a": 1 }, + { "px": [192,48], "src": [48,144], "f": 0, "t": 327, "d": [76,72], "a": 1 }, + { "px": [288,48], "src": [48,144], "f": 1, "t": 327, "d": [76,78], "a": 1 }, + { "px": [112,64], "src": [48,144], "f": 1, "t": 327, "d": [76,87], "a": 1 }, + { "px": [304,64], "src": [48,144], "f": 1, "t": 327, "d": [76,99], "a": 1 }, + { "px": [128,80], "src": [48,144], "f": 1, "t": 327, "d": [76,108], "a": 1 }, + { "px": [64,112], "src": [48,144], "f": 0, "t": 327, "d": [76,144], "a": 1 }, + { "px": [176,112], "src": [48,144], "f": 0, "t": 327, "d": [76,151], "a": 1 }, + { "px": [32,128], "src": [48,144], "f": 0, "t": 327, "d": [76,162], "a": 1 }, + { "px": [272,128], "src": [48,144], "f": 1, "t": 327, "d": [76,177], "a": 1 }, + { "px": [16,144], "src": [48,144], "f": 0, "t": 327, "d": [76,181], "a": 1 }, + { "px": [48,112], "src": [64,144], "f": 1, "t": 328, "d": [14,143], "a": 1 }, + { "px": [64,112], "src": [64,144], "f": 0, "t": 328, "d": [14,144], "a": 1 }, + { "px": [304,112], "src": [64,144], "f": 1, "t": 328, "d": [14,159], "a": 1 }, + { "px": [272,192], "src": [64,144], "f": 1, "t": 328, "d": [14,257], "a": 1 }, + { "px": [160,208], "src": [64,144], "f": 1, "t": 328, "d": [14,270], "a": 1 }, + { "px": [208,208], "src": [64,144], "f": 0, "t": 328, "d": [14,273], "a": 1 }, + { "px": [256,208], "src": [64,144], "f": 1, "t": 328, "d": [14,276], "a": 1 }, + { "px": [16,240], "src": [64,144], "f": 0, "t": 328, "d": [14,301], "a": 1 }, + { "px": [144,240], "src": [64,144], "f": 1, "t": 328, "d": [14,309], "a": 1 }, + { "px": [32,208], "src": [0,224], "f": 0, "t": 504, "d": [28,262], "a": 1 }, + { "px": [96,208], "src": [0,224], "f": 0, "t": 504, "d": [28,266], "a": 1 }, + { "px": [128,208], "src": [0,224], "f": 0, "t": 504, "d": [28,268], "a": 1 }, + { "px": [32,224], "src": [0,224], "f": 0, "t": 504, "d": [28,282], "a": 1 }, + { "px": [48,224], "src": [0,224], "f": 0, "t": 504, "d": [28,283], "a": 1 }, + { "px": [48,208], "src": [32,240], "f": 0, "t": 542, "d": [74,263], "a": 1 }, + { "px": [64,208], "src": [32,224], "f": 0, "t": 506, "d": [74,264], "a": 1 }, + { "px": [80,208], "src": [16,240], "f": 0, "t": 541, "d": [74,265], "a": 1 }, + { "px": [112,208], "src": [32,224], "f": 0, "t": 506, "d": [74,267], "a": 1 }, + { "px": [64,224], "src": [32,240], "f": 0, "t": 542, "d": [74,284], "a": 1 }, + { "px": [80,224], "src": [32,240], "f": 0, "t": 542, "d": [74,285], "a": 1 }, + { "px": [96,224], "src": [16,224], "f": 0, "t": 505, "d": [74,286], "a": 1 }, + { "px": [112,224], "src": [32,224], "f": 0, "t": 506, "d": [74,287], "a": 1 }, + { "px": [128,224], "src": [16,224], "f": 0, "t": 505, "d": [74,288], "a": 1 }, + { "px": [32,193], "src": [32,208], "f": 0, "t": 470, "d": [21,242], "a": 1 }, + { "px": [48,192], "src": [32,208], "f": 0, "t": 470, "d": [21,243], "a": 1 }, + { "px": [64,192], "src": [0,208], "f": 0, "t": 468, "d": [21,244], "a": 1 }, + { "px": [80,193], "src": [0,208], "f": 0, "t": 468, "d": [21,245], "a": 1 }, + { "px": [96,193], "src": [32,208], "f": 0, "t": 470, "d": [21,246], "a": 1 }, + { "px": [112,193], "src": [32,208], "f": 0, "t": 470, "d": [21,247], "a": 1 }, + { "px": [128,193], "src": [32,208], "f": 0, "t": 470, "d": [21,248], "a": 1 }, + { "px": [32,224], "src": [176,48], "f": 0, "t": 119, "d": [111,282], "a": 1 }, + { "px": [48,224], "src": [208,48], "f": 0, "t": 121, "d": [111,283], "a": 1 }, + { "px": [64,224], "src": [192,48], "f": 0, "t": 120, "d": [111,284], "a": 1 }, + { "px": [80,224], "src": [192,48], "f": 0, "t": 120, "d": [111,285], "a": 1 }, + { "px": [128,224], "src": [208,48], "f": 0, "t": 121, "d": [111,288], "a": 1 }, + { "px": [31,224], "src": [208,48], "f": 0, "t": 121, "d": [99,282], "a": 1 }, + { "px": [64,224], "src": [208,48], "f": 0, "t": 121, "d": [99,284], "a": 1 }, + { "px": [82,224], "src": [176,48], "f": 0, "t": 119, "d": [99,285], "a": 1 }, + { "px": [129,225], "src": [192,48], "f": 0, "t": 120, "d": [99,288], "a": 1 }, + { "px": [224,48], "src": [80,112], "f": 0, "t": 257, "d": [95,74], "a": 1 }, + { "px": [256,48], "src": [80,112], "f": 1, "t": 257, "d": [95,76], "a": 1 }, + { "px": [32,64], "src": [80,128], "f": 0, "t": 293, "d": [95,82], "a": 1 }, + { "px": [80,64], "src": [80,112], "f": 1, "t": 257, "d": [95,85], "a": 1 }, + { "px": [208,64], "src": [80,112], "f": 0, "t": 257, "d": [95,93], "a": 1 }, + { "px": [272,64], "src": [80,128], "f": 1, "t": 293, "d": [95,97], "a": 1 }, + { "px": [96,80], "src": [80,128], "f": 1, "t": 293, "d": [95,106], "a": 1 }, + { "px": [288,80], "src": [80,128], "f": 1, "t": 293, "d": [95,118], "a": 1 }, + { "px": [112,96], "src": [80,112], "f": 1, "t": 257, "d": [95,127], "a": 1 }, + { "px": [80,128], "src": [80,112], "f": 0, "t": 257, "d": [95,165], "a": 1 }, + { "px": [192,128], "src": [80,128], "f": 0, "t": 293, "d": [95,172], "a": 1 }, + { "px": [48,144], "src": [80,128], "f": 0, "t": 293, "d": [95,183], "a": 1 }, + { "px": [256,144], "src": [80,112], "f": 1, "t": 257, "d": [95,196], "a": 1 }, + { "px": [32,160], "src": [80,128], "f": 0, "t": 293, "d": [95,202], "a": 1 }, + { "px": [32,96], "src": [80,160], "f": 1, "t": 365, "d": [96,122], "a": 1 }, + { "px": [80,96], "src": [80,144], "f": 0, "t": 329, "d": [96,125], "a": 1 }, + { "px": [288,96], "src": [80,160], "f": 1, "t": 365, "d": [96,138], "a": 1 }, + { "px": [256,176], "src": [80,160], "f": 1, "t": 365, "d": [96,236], "a": 1 }, + { "px": [144,192], "src": [80,144], "f": 1, "t": 329, "d": [96,249], "a": 1 }, + { "px": [224,192], "src": [80,160], "f": 0, "t": 365, "d": [96,254], "a": 1 }, + { "px": [240,192], "src": [80,160], "f": 1, "t": 365, "d": [96,255], "a": 1 }, + { "px": [32,224], "src": [80,160], "f": 0, "t": 365, "d": [96,282], "a": 1 }, + { "px": [128,224], "src": [80,160], "f": 1, "t": 365, "d": [96,288], "a": 1 }, + { "px": [0,97], "src": [144,112], "f": 0, "t": 261, "d": [97,120], "a": 1 }, + { "px": [16,96], "src": [32,80], "f": 0, "t": 182, "d": [97,121], "a": 1 }, + { "px": [32,97], "src": [0,80], "f": 0, "t": 180, "d": [97,122], "a": 1 }, + { "px": [256,98], "src": [112,112], "f": 0, "t": 259, "d": [97,136], "a": 1 }, + { "px": [272,98], "src": [112,112], "f": 0, "t": 259, "d": [97,137], "a": 1 }, + { "px": [288,98], "src": [0,80], "f": 0, "t": 180, "d": [97,138], "a": 1 }, + { "px": [160,177], "src": [0,80], "f": 0, "t": 180, "d": [97,230], "a": 1 }, + { "px": [192,178], "src": [128,112], "f": 0, "t": 260, "d": [97,232], "a": 1 }, + { "px": [208,176], "src": [48,80], "f": 0, "t": 183, "d": [97,233], "a": 1 }, + { "px": [144,192], "src": [48,80], "f": 0, "t": 183, "d": [97,249], "a": 1 }, + { "px": [32,225], "src": [144,112], "f": 0, "t": 261, "d": [97,282], "a": 1 }, + { "px": [64,226], "src": [32,80], "f": 0, "t": 182, "d": [97,284], "a": 1 }, + { "px": [96,224], "src": [144,112], "f": 0, "t": 261, "d": [97,286], "a": 1 }, + { "px": [128,225], "src": [32,80], "f": 0, "t": 182, "d": [97,288], "a": 1 }, + { "px": [224,48], "src": [64,112], "f": 0, "t": 256, "d": [98,74], "a": 1 }, + { "px": [256,48], "src": [64,128], "f": 1, "t": 292, "d": [98,76], "a": 1 }, + { "px": [80,64], "src": [64,112], "f": 1, "t": 256, "d": [98,85], "a": 1 }, + { "px": [208,64], "src": [64,128], "f": 0, "t": 292, "d": [98,93], "a": 1 }, + { "px": [272,64], "src": [64,112], "f": 1, "t": 256, "d": [98,97], "a": 1 }, + { "px": [96,80], "src": [64,128], "f": 1, "t": 292, "d": [98,106], "a": 1 }, + { "px": [80,96], "src": [64,112], "f": 0, "t": 256, "d": [98,125], "a": 1 }, + { "px": [208,96], "src": [64,112], "f": 0, "t": 256, "d": [98,133], "a": 1 }, + { "px": [288,96], "src": [64,128], "f": 1, "t": 292, "d": [98,138], "a": 1 }, + { "px": [96,112], "src": [64,112], "f": 0, "t": 256, "d": [98,146], "a": 1 }, + { "px": [112,112], "src": [64,128], "f": 1, "t": 292, "d": [98,147], "a": 1 }, + { "px": [208,112], "src": [64,112], "f": 0, "t": 256, "d": [98,153], "a": 1 }, + { "px": [240,112], "src": [64,128], "f": 1, "t": 292, "d": [98,155], "a": 1 }, + { "px": [112,128], "src": [64,128], "f": 1, "t": 292, "d": [98,167], "a": 1 }, + { "px": [192,128], "src": [64,112], "f": 0, "t": 256, "d": [98,172], "a": 1 }, + { "px": [240,128], "src": [64,128], "f": 1, "t": 292, "d": [98,175], "a": 1 }, + { "px": [48,144], "src": [64,128], "f": 0, "t": 292, "d": [98,183], "a": 1 }, + { "px": [32,160], "src": [64,112], "f": 0, "t": 256, "d": [98,202], "a": 1 }, + { "px": [256,176], "src": [64,112], "f": 1, "t": 256, "d": [98,236], "a": 1 }, + { "px": [32,192], "src": [64,128], "f": 0, "t": 292, "d": [98,242], "a": 1 }, + { "px": [144,192], "src": [64,128], "f": 1, "t": 292, "d": [98,249], "a": 1 }, + { "px": [224,192], "src": [64,112], "f": 0, "t": 256, "d": [98,254], "a": 1 }, + { "px": [240,192], "src": [64,128], "f": 1, "t": 292, "d": [98,255], "a": 1 }, + { "px": [32,208], "src": [64,112], "f": 0, "t": 256, "d": [98,262], "a": 1 }, + { "px": [128,208], "src": [64,128], "f": 1, "t": 292, "d": [98,268], "a": 1 }, + { "px": [32,224], "src": [64,128], "f": 0, "t": 292, "d": [98,282], "a": 1 }, + { "px": [128,224], "src": [64,112], "f": 1, "t": 256, "d": [98,288], "a": 1 }, + { "px": [256,48], "src": [128,96], "f": 0, "t": 224, "d": [93,76], "a": 1 }, + { "px": [80,64], "src": [112,96], "f": 0, "t": 223, "d": [93,85], "a": 1 }, + { "px": [208,64], "src": [96,96], "f": 0, "t": 222, "d": [93,93], "a": 1 }, + { "px": [0,80], "src": [112,80], "f": 0, "t": 187, "d": [93,100], "a": 1 }, + { "px": [96,80], "src": [128,96], "f": 0, "t": 224, "d": [93,106], "a": 1 }, + { "px": [48,144], "src": [112,96], "f": 0, "t": 223, "d": [93,183], "a": 1 }, + { "px": [128,144], "src": [96,80], "f": 0, "t": 186, "d": [93,188], "a": 1 }, + { "px": [32,160], "src": [128,96], "f": 0, "t": 224, "d": [93,202], "a": 1 }, + { "px": [240,48], "src": [112,96], "f": 0, "t": 223, "d": [101,75], "a": 1 }, + { "px": [256,48], "src": [112,96], "f": 0, "t": 223, "d": [101,76], "a": 1 }, + { "px": [32,64], "src": [112,96], "f": 0, "t": 223, "d": [101,82], "a": 1 }, + { "px": [48,64], "src": [112,96], "f": 0, "t": 223, "d": [101,83], "a": 1 }, + { "px": [64,64], "src": [112,96], "f": 0, "t": 223, "d": [101,84], "a": 1 }, + { "px": [80,64], "src": [128,96], "f": 0, "t": 224, "d": [101,85], "a": 1 }, + { "px": [208,64], "src": [112,96], "f": 0, "t": 223, "d": [101,93], "a": 1 }, + { "px": [272,64], "src": [128,96], "f": 0, "t": 224, "d": [101,97], "a": 1 }, + { "px": [0,80], "src": [128,96], "f": 0, "t": 224, "d": [101,100], "a": 1 }, + { "px": [16,80], "src": [128,96], "f": 0, "t": 224, "d": [101,101], "a": 1 }, + { "px": [96,80], "src": [128,96], "f": 0, "t": 224, "d": [101,106], "a": 1 }, + { "px": [288,80], "src": [112,96], "f": 0, "t": 223, "d": [101,118], "a": 1 }, + { "px": [112,96], "src": [112,96], "f": 0, "t": 223, "d": [101,127], "a": 1 }, + { "px": [80,128], "src": [128,96], "f": 0, "t": 224, "d": [101,165], "a": 1 }, + { "px": [192,128], "src": [128,96], "f": 0, "t": 224, "d": [101,172], "a": 1 }, + { "px": [64,144], "src": [112,96], "f": 0, "t": 223, "d": [101,184], "a": 1 }, + { "px": [128,144], "src": [128,96], "f": 0, "t": 224, "d": [101,188], "a": 1 }, + { "px": [144,144], "src": [128,96], "f": 0, "t": 224, "d": [101,189], "a": 1 }, + { "px": [160,144], "src": [128,96], "f": 0, "t": 224, "d": [101,190], "a": 1 }, + { "px": [176,144], "src": [112,96], "f": 0, "t": 223, "d": [101,191], "a": 1 }, + { "px": [256,144], "src": [128,96], "f": 0, "t": 224, "d": [101,196], "a": 1 }, + { "px": [32,160], "src": [112,96], "f": 0, "t": 223, "d": [101,202], "a": 1 }, + { "px": [16,0], "src": [176,208], "f": 0, "t": 479, "d": [104,1], "a": 1 }, + { "px": [32,0], "src": [208,208], "f": 0, "t": 481, "d": [104,2], "a": 1 }, + { "px": [48,0], "src": [192,208], "f": 0, "t": 480, "d": [104,3], "a": 1 }, + { "px": [64,0], "src": [208,208], "f": 0, "t": 481, "d": [104,4], "a": 1 }, + { "px": [80,0], "src": [176,208], "f": 0, "t": 479, "d": [104,5], "a": 1 }, + { "px": [112,0], "src": [192,208], "f": 0, "t": 480, "d": [104,7], "a": 1 }, + { "px": [192,0], "src": [192,208], "f": 0, "t": 480, "d": [104,12], "a": 1 }, + { "px": [256,0], "src": [208,208], "f": 0, "t": 481, "d": [104,16], "a": 1 }, + { "px": [288,0], "src": [208,208], "f": 0, "t": 481, "d": [104,18], "a": 1 }, + { "px": [304,0], "src": [208,208], "f": 0, "t": 481, "d": [104,19], "a": 1 }, + { "px": [48,16], "src": [192,208], "f": 0, "t": 480, "d": [104,23], "a": 1 }, + { "px": [64,16], "src": [208,208], "f": 0, "t": 481, "d": [104,24], "a": 1 }, + { "px": [128,16], "src": [192,208], "f": 0, "t": 480, "d": [104,28], "a": 1 }, + { "px": [144,16], "src": [192,208], "f": 0, "t": 480, "d": [104,29], "a": 1 }, + { "px": [176,16], "src": [208,208], "f": 0, "t": 481, "d": [104,31], "a": 1 }, + { "px": [192,16], "src": [208,208], "f": 0, "t": 481, "d": [104,32], "a": 1 }, + { "px": [208,16], "src": [176,208], "f": 0, "t": 479, "d": [104,33], "a": 1 }, + { "px": [288,16], "src": [192,208], "f": 0, "t": 480, "d": [104,38], "a": 1 }, + { "px": [304,16], "src": [176,208], "f": 0, "t": 479, "d": [104,39], "a": 1 }, + { "px": [0,32], "src": [192,208], "f": 0, "t": 480, "d": [104,40], "a": 1 }, + { "px": [16,32], "src": [208,208], "f": 0, "t": 481, "d": [104,41], "a": 1 }, + { "px": [112,32], "src": [176,208], "f": 0, "t": 479, "d": [104,47], "a": 1 }, + { "px": [144,32], "src": [176,208], "f": 0, "t": 479, "d": [104,49], "a": 1 }, + { "px": [160,32], "src": [192,208], "f": 0, "t": 480, "d": [104,50], "a": 1 }, + { "px": [192,32], "src": [192,208], "f": 0, "t": 480, "d": [104,52], "a": 1 }, + { "px": [288,32], "src": [192,208], "f": 0, "t": 480, "d": [104,58], "a": 1 }, + { "px": [304,32], "src": [208,208], "f": 0, "t": 481, "d": [104,59], "a": 1 }, + { "px": [112,48], "src": [192,208], "f": 0, "t": 480, "d": [104,67], "a": 1 }, + { "px": [128,48], "src": [208,208], "f": 0, "t": 481, "d": [104,68], "a": 1 }, + { "px": [144,48], "src": [192,208], "f": 0, "t": 480, "d": [104,69], "a": 1 }, + { "px": [160,48], "src": [192,208], "f": 0, "t": 480, "d": [104,70], "a": 1 }, + { "px": [128,64], "src": [208,208], "f": 0, "t": 481, "d": [104,88], "a": 1 }, + { "px": [144,64], "src": [176,208], "f": 0, "t": 479, "d": [104,89], "a": 1 }, + { "px": [160,64], "src": [208,208], "f": 0, "t": 481, "d": [104,90], "a": 1 }, + { "px": [144,80], "src": [176,208], "f": 0, "t": 479, "d": [104,109], "a": 1 }, + { "px": [160,80], "src": [176,208], "f": 0, "t": 479, "d": [104,110], "a": 1 }, + { "px": [160,96], "src": [192,208], "f": 0, "t": 480, "d": [104,130], "a": 1 }, + { "px": [304,128], "src": [208,208], "f": 0, "t": 481, "d": [104,179], "a": 1 }, + { "px": [0,144], "src": [176,208], "f": 0, "t": 479, "d": [104,180], "a": 1 }, + { "px": [304,160], "src": [176,208], "f": 0, "t": 479, "d": [104,219], "a": 1 }, + { "px": [288,192], "src": [192,208], "f": 0, "t": 480, "d": [104,258], "a": 1 }, + { "px": [304,208], "src": [192,208], "f": 0, "t": 480, "d": [104,279], "a": 1 }, + { "px": [192,224], "src": [208,208], "f": 0, "t": 481, "d": [104,292], "a": 1 }, + { "px": [208,224], "src": [192,208], "f": 0, "t": 480, "d": [104,293], "a": 1 }, + { "px": [272,224], "src": [176,208], "f": 0, "t": 479, "d": [104,297], "a": 1 }, + { "px": [304,224], "src": [176,208], "f": 0, "t": 479, "d": [104,299], "a": 1 }, + { "px": [0,240], "src": [176,208], "f": 0, "t": 479, "d": [104,300], "a": 1 }, + { "px": [160,240], "src": [192,208], "f": 0, "t": 480, "d": [104,310], "a": 1 }, + { "px": [176,240], "src": [176,208], "f": 0, "t": 479, "d": [104,311], "a": 1 }, + { "px": [192,240], "src": [192,208], "f": 0, "t": 480, "d": [104,312], "a": 1 }, + { "px": [240,240], "src": [192,208], "f": 0, "t": 480, "d": [104,315], "a": 1 }, + { "px": [272,240], "src": [176,208], "f": 0, "t": 479, "d": [104,317], "a": 1 }, + { "px": [288,240], "src": [192,208], "f": 0, "t": 480, "d": [104,318], "a": 1 }, + { "px": [304,240], "src": [176,208], "f": 0, "t": 479, "d": [104,319], "a": 1 }, + { "px": [16,256], "src": [208,208], "f": 0, "t": 481, "d": [104,321], "a": 1 }, + { "px": [160,256], "src": [208,208], "f": 0, "t": 481, "d": [104,330], "a": 1 }, + { "px": [192,256], "src": [176,208], "f": 0, "t": 479, "d": [104,332], "a": 1 }, + { "px": [224,256], "src": [208,208], "f": 0, "t": 481, "d": [104,334], "a": 1 }, + { "px": [240,256], "src": [192,208], "f": 0, "t": 480, "d": [104,335], "a": 1 }, + { "px": [256,256], "src": [192,208], "f": 0, "t": 480, "d": [104,336], "a": 1 }, + { "px": [272,256], "src": [208,208], "f": 0, "t": 481, "d": [104,337], "a": 1 }, + { "px": [288,256], "src": [208,208], "f": 0, "t": 481, "d": [104,338], "a": 1 }, + { "px": [304,256], "src": [192,208], "f": 0, "t": 480, "d": [104,339], "a": 1 }, + { "px": [0,272], "src": [208,208], "f": 0, "t": 481, "d": [104,340], "a": 1 }, + { "px": [32,272], "src": [208,208], "f": 0, "t": 481, "d": [104,342], "a": 1 }, + { "px": [48,272], "src": [208,208], "f": 0, "t": 481, "d": [104,343], "a": 1 }, + { "px": [80,272], "src": [192,208], "f": 0, "t": 480, "d": [104,345], "a": 1 }, + { "px": [96,272], "src": [192,208], "f": 0, "t": 480, "d": [104,346], "a": 1 }, + { "px": [112,272], "src": [176,208], "f": 0, "t": 479, "d": [104,347], "a": 1 }, + { "px": [144,272], "src": [208,208], "f": 0, "t": 481, "d": [104,349], "a": 1 }, + { "px": [160,272], "src": [208,208], "f": 0, "t": 481, "d": [104,350], "a": 1 }, + { "px": [176,272], "src": [192,208], "f": 0, "t": 480, "d": [104,351], "a": 1 }, + { "px": [192,272], "src": [176,208], "f": 0, "t": 479, "d": [104,352], "a": 1 }, + { "px": [208,272], "src": [208,208], "f": 0, "t": 481, "d": [104,353], "a": 1 }, + { "px": [224,272], "src": [192,208], "f": 0, "t": 480, "d": [104,354], "a": 1 }, + { "px": [240,272], "src": [176,208], "f": 0, "t": 479, "d": [104,355], "a": 1 }, + { "px": [288,272], "src": [208,208], "f": 0, "t": 481, "d": [104,358], "a": 1 }, + { "px": [304,272], "src": [192,208], "f": 0, "t": 480, "d": [104,359], "a": 1 }, + { "px": [0,0], "src": [272,176], "f": 0, "t": 413, "d": [108,0], "a": 1 }, + { "px": [16,0], "src": [272,176], "f": 0, "t": 413, "d": [108,1], "a": 1 }, + { "px": [32,0], "src": [272,176], "f": 0, "t": 413, "d": [108,2], "a": 1 }, + { "px": [48,0], "src": [272,176], "f": 0, "t": 413, "d": [108,3], "a": 1 }, + { "px": [64,0], "src": [272,176], "f": 0, "t": 413, "d": [108,4], "a": 1 }, + { "px": [80,0], "src": [272,176], "f": 0, "t": 413, "d": [108,5], "a": 1 }, + { "px": [96,0], "src": [272,176], "f": 0, "t": 413, "d": [108,6], "a": 1 }, + { "px": [112,0], "src": [272,176], "f": 0, "t": 413, "d": [108,7], "a": 1 }, + { "px": [128,0], "src": [272,176], "f": 0, "t": 413, "d": [108,8], "a": 1 }, + { "px": [144,0], "src": [272,176], "f": 0, "t": 413, "d": [108,9], "a": 1 }, + { "px": [160,0], "src": [272,176], "f": 0, "t": 413, "d": [108,10], "a": 1 }, + { "px": [176,0], "src": [272,176], "f": 0, "t": 413, "d": [108,11], "a": 1 }, + { "px": [192,0], "src": [272,176], "f": 0, "t": 413, "d": [108,12], "a": 1 }, + { "px": [208,0], "src": [272,176], "f": 0, "t": 413, "d": [108,13], "a": 1 }, + { "px": [224,0], "src": [272,176], "f": 0, "t": 413, "d": [108,14], "a": 1 }, + { "px": [240,0], "src": [272,176], "f": 0, "t": 413, "d": [108,15], "a": 1 }, + { "px": [256,0], "src": [272,176], "f": 0, "t": 413, "d": [108,16], "a": 1 }, + { "px": [272,0], "src": [272,176], "f": 0, "t": 413, "d": [108,17], "a": 1 }, + { "px": [288,0], "src": [272,176], "f": 0, "t": 413, "d": [108,18], "a": 1 }, + { "px": [304,0], "src": [272,176], "f": 0, "t": 413, "d": [108,19], "a": 1 }, + { "px": [0,16], "src": [272,176], "f": 0, "t": 413, "d": [108,20], "a": 1 }, + { "px": [16,16], "src": [272,176], "f": 0, "t": 413, "d": [108,21], "a": 1 }, + { "px": [32,16], "src": [272,176], "f": 0, "t": 413, "d": [108,22], "a": 1 }, + { "px": [48,16], "src": [272,176], "f": 0, "t": 413, "d": [108,23], "a": 1 }, + { "px": [64,16], "src": [272,176], "f": 0, "t": 413, "d": [108,24], "a": 1 }, + { "px": [80,16], "src": [272,176], "f": 0, "t": 413, "d": [108,25], "a": 1 }, + { "px": [96,16], "src": [272,176], "f": 0, "t": 413, "d": [108,26], "a": 1 }, + { "px": [112,16], "src": [272,176], "f": 0, "t": 413, "d": [108,27], "a": 1 }, + { "px": [128,16], "src": [272,176], "f": 0, "t": 413, "d": [108,28], "a": 1 }, + { "px": [144,16], "src": [272,176], "f": 0, "t": 413, "d": [108,29], "a": 1 }, + { "px": [160,16], "src": [272,176], "f": 0, "t": 413, "d": [108,30], "a": 1 }, + { "px": [176,16], "src": [272,176], "f": 0, "t": 413, "d": [108,31], "a": 1 }, + { "px": [192,16], "src": [272,176], "f": 0, "t": 413, "d": [108,32], "a": 1 }, + { "px": [208,16], "src": [272,176], "f": 0, "t": 413, "d": [108,33], "a": 1 }, + { "px": [224,16], "src": [272,176], "f": 0, "t": 413, "d": [108,34], "a": 1 }, + { "px": [240,16], "src": [272,176], "f": 0, "t": 413, "d": [108,35], "a": 1 }, + { "px": [256,16], "src": [272,176], "f": 0, "t": 413, "d": [108,36], "a": 1 }, + { "px": [272,16], "src": [272,176], "f": 0, "t": 413, "d": [108,37], "a": 1 }, + { "px": [288,16], "src": [272,176], "f": 0, "t": 413, "d": [108,38], "a": 1 }, + { "px": [304,16], "src": [272,176], "f": 0, "t": 413, "d": [108,39], "a": 1 }, + { "px": [0,32], "src": [272,176], "f": 0, "t": 413, "d": [108,40], "a": 1 }, + { "px": [16,32], "src": [272,176], "f": 0, "t": 413, "d": [108,41], "a": 1 }, + { "px": [32,32], "src": [272,176], "f": 0, "t": 413, "d": [108,42], "a": 1 }, + { "px": [48,32], "src": [272,176], "f": 0, "t": 413, "d": [108,43], "a": 1 }, + { "px": [64,32], "src": [272,176], "f": 0, "t": 413, "d": [108,44], "a": 1 }, + { "px": [80,32], "src": [272,176], "f": 0, "t": 413, "d": [108,45], "a": 1 }, + { "px": [96,32], "src": [272,176], "f": 0, "t": 413, "d": [108,46], "a": 1 }, + { "px": [112,32], "src": [272,176], "f": 0, "t": 413, "d": [108,47], "a": 1 }, + { "px": [128,32], "src": [272,176], "f": 0, "t": 413, "d": [108,48], "a": 1 }, + { "px": [144,32], "src": [272,176], "f": 0, "t": 413, "d": [108,49], "a": 1 }, + { "px": [160,32], "src": [272,176], "f": 0, "t": 413, "d": [108,50], "a": 1 }, + { "px": [176,32], "src": [272,176], "f": 0, "t": 413, "d": [108,51], "a": 1 }, + { "px": [192,32], "src": [272,176], "f": 0, "t": 413, "d": [108,52], "a": 1 }, + { "px": [288,32], "src": [272,176], "f": 0, "t": 413, "d": [108,58], "a": 1 }, + { "px": [304,32], "src": [272,176], "f": 0, "t": 413, "d": [108,59], "a": 1 }, + { "px": [0,48], "src": [272,176], "f": 0, "t": 413, "d": [108,60], "a": 1 }, + { "px": [112,48], "src": [272,176], "f": 0, "t": 413, "d": [108,67], "a": 1 }, + { "px": [128,48], "src": [272,176], "f": 0, "t": 413, "d": [108,68], "a": 1 }, + { "px": [144,48], "src": [272,176], "f": 0, "t": 413, "d": [108,69], "a": 1 }, + { "px": [160,48], "src": [272,176], "f": 0, "t": 413, "d": [108,70], "a": 1 }, + { "px": [176,48], "src": [272,176], "f": 0, "t": 413, "d": [108,71], "a": 1 }, + { "px": [304,48], "src": [272,176], "f": 0, "t": 413, "d": [108,79], "a": 1 }, + { "px": [128,64], "src": [272,176], "f": 0, "t": 413, "d": [108,88], "a": 1 }, + { "px": [144,64], "src": [272,176], "f": 0, "t": 413, "d": [108,89], "a": 1 }, + { "px": [160,64], "src": [272,176], "f": 0, "t": 413, "d": [108,90], "a": 1 }, + { "px": [176,64], "src": [272,176], "f": 0, "t": 413, "d": [108,91], "a": 1 }, + { "px": [144,80], "src": [272,176], "f": 0, "t": 413, "d": [108,109], "a": 1 }, + { "px": [160,80], "src": [272,176], "f": 0, "t": 413, "d": [108,110], "a": 1 }, + { "px": [176,80], "src": [272,176], "f": 0, "t": 413, "d": [108,111], "a": 1 }, + { "px": [144,96], "src": [272,176], "f": 0, "t": 413, "d": [108,129], "a": 1 }, + { "px": [160,96], "src": [272,176], "f": 0, "t": 413, "d": [108,130], "a": 1 }, + { "px": [176,96], "src": [272,176], "f": 0, "t": 413, "d": [108,131], "a": 1 }, + { "px": [144,112], "src": [272,176], "f": 0, "t": 413, "d": [108,149], "a": 1 }, + { "px": [160,112], "src": [272,176], "f": 0, "t": 413, "d": [108,150], "a": 1 }, + { "px": [0,128], "src": [272,176], "f": 0, "t": 413, "d": [108,160], "a": 1 }, + { "px": [16,128], "src": [272,176], "f": 0, "t": 413, "d": [108,161], "a": 1 }, + { "px": [288,128], "src": [272,176], "f": 0, "t": 413, "d": [108,178], "a": 1 }, + { "px": [304,128], "src": [272,176], "f": 0, "t": 413, "d": [108,179], "a": 1 }, + { "px": [0,144], "src": [272,176], "f": 0, "t": 413, "d": [108,180], "a": 1 }, + { "px": [288,144], "src": [272,176], "f": 0, "t": 413, "d": [108,198], "a": 1 }, + { "px": [304,144], "src": [272,176], "f": 0, "t": 413, "d": [108,199], "a": 1 }, + { "px": [0,160], "src": [272,176], "f": 0, "t": 413, "d": [108,200], "a": 1 }, + { "px": [288,160], "src": [272,176], "f": 0, "t": 413, "d": [108,218], "a": 1 }, + { "px": [304,160], "src": [272,176], "f": 0, "t": 413, "d": [108,219], "a": 1 }, + { "px": [0,176], "src": [272,176], "f": 0, "t": 413, "d": [108,220], "a": 1 }, + { "px": [288,176], "src": [272,176], "f": 0, "t": 413, "d": [108,238], "a": 1 }, + { "px": [304,176], "src": [272,176], "f": 0, "t": 413, "d": [108,239], "a": 1 }, + { "px": [0,192], "src": [272,176], "f": 0, "t": 413, "d": [108,240], "a": 1 }, + { "px": [288,192], "src": [272,176], "f": 0, "t": 413, "d": [108,258], "a": 1 }, + { "px": [304,192], "src": [272,176], "f": 0, "t": 413, "d": [108,259], "a": 1 }, + { "px": [0,208], "src": [272,176], "f": 0, "t": 413, "d": [108,260], "a": 1 }, + { "px": [176,208], "src": [272,176], "f": 0, "t": 413, "d": [108,271], "a": 1 }, + { "px": [192,208], "src": [272,176], "f": 0, "t": 413, "d": [108,272], "a": 1 }, + { "px": [272,208], "src": [272,176], "f": 0, "t": 413, "d": [108,277], "a": 1 }, + { "px": [288,208], "src": [272,176], "f": 0, "t": 413, "d": [108,278], "a": 1 }, + { "px": [304,208], "src": [272,176], "f": 0, "t": 413, "d": [108,279], "a": 1 }, + { "px": [0,224], "src": [272,176], "f": 0, "t": 413, "d": [108,280], "a": 1 }, + { "px": [160,224], "src": [272,176], "f": 0, "t": 413, "d": [108,290], "a": 1 }, + { "px": [176,224], "src": [272,176], "f": 0, "t": 413, "d": [108,291], "a": 1 }, + { "px": [192,224], "src": [272,176], "f": 0, "t": 413, "d": [108,292], "a": 1 }, + { "px": [208,224], "src": [272,176], "f": 0, "t": 413, "d": [108,293], "a": 1 }, + { "px": [224,224], "src": [272,176], "f": 0, "t": 413, "d": [108,294], "a": 1 }, + { "px": [240,224], "src": [272,176], "f": 0, "t": 413, "d": [108,295], "a": 1 }, + { "px": [256,224], "src": [272,176], "f": 0, "t": 413, "d": [108,296], "a": 1 }, + { "px": [272,224], "src": [272,176], "f": 0, "t": 413, "d": [108,297], "a": 1 }, + { "px": [288,224], "src": [272,176], "f": 0, "t": 413, "d": [108,298], "a": 1 }, + { "px": [304,224], "src": [272,176], "f": 0, "t": 413, "d": [108,299], "a": 1 }, + { "px": [0,240], "src": [272,176], "f": 0, "t": 413, "d": [108,300], "a": 1 }, + { "px": [160,240], "src": [272,176], "f": 0, "t": 413, "d": [108,310], "a": 1 }, + { "px": [176,240], "src": [272,176], "f": 0, "t": 413, "d": [108,311], "a": 1 }, + { "px": [192,240], "src": [272,176], "f": 0, "t": 413, "d": [108,312], "a": 1 }, + { "px": [208,240], "src": [272,176], "f": 0, "t": 413, "d": [108,313], "a": 1 }, + { "px": [224,240], "src": [272,176], "f": 0, "t": 413, "d": [108,314], "a": 1 }, + { "px": [240,240], "src": [272,176], "f": 0, "t": 413, "d": [108,315], "a": 1 }, + { "px": [256,240], "src": [272,176], "f": 0, "t": 413, "d": [108,316], "a": 1 }, + { "px": [272,240], "src": [272,176], "f": 0, "t": 413, "d": [108,317], "a": 1 }, + { "px": [288,240], "src": [272,176], "f": 0, "t": 413, "d": [108,318], "a": 1 }, + { "px": [304,240], "src": [272,176], "f": 0, "t": 413, "d": [108,319], "a": 1 }, + { "px": [0,256], "src": [272,176], "f": 0, "t": 413, "d": [108,320], "a": 1 }, + { "px": [16,256], "src": [272,176], "f": 0, "t": 413, "d": [108,321], "a": 1 }, + { "px": [32,256], "src": [272,176], "f": 0, "t": 413, "d": [108,322], "a": 1 }, + { "px": [48,256], "src": [272,176], "f": 0, "t": 413, "d": [108,323], "a": 1 }, + { "px": [64,256], "src": [272,176], "f": 0, "t": 413, "d": [108,324], "a": 1 }, + { "px": [80,256], "src": [272,176], "f": 0, "t": 413, "d": [108,325], "a": 1 }, + { "px": [96,256], "src": [272,176], "f": 0, "t": 413, "d": [108,326], "a": 1 }, + { "px": [112,256], "src": [272,176], "f": 0, "t": 413, "d": [108,327], "a": 1 }, + { "px": [128,256], "src": [272,176], "f": 0, "t": 413, "d": [108,328], "a": 1 }, + { "px": [144,256], "src": [272,176], "f": 0, "t": 413, "d": [108,329], "a": 1 }, + { "px": [160,256], "src": [272,176], "f": 0, "t": 413, "d": [108,330], "a": 1 }, + { "px": [176,256], "src": [272,176], "f": 0, "t": 413, "d": [108,331], "a": 1 }, + { "px": [192,256], "src": [272,176], "f": 0, "t": 413, "d": [108,332], "a": 1 }, + { "px": [208,256], "src": [272,176], "f": 0, "t": 413, "d": [108,333], "a": 1 }, + { "px": [224,256], "src": [272,176], "f": 0, "t": 413, "d": [108,334], "a": 1 }, + { "px": [240,256], "src": [272,176], "f": 0, "t": 413, "d": [108,335], "a": 1 }, + { "px": [256,256], "src": [272,176], "f": 0, "t": 413, "d": [108,336], "a": 1 }, + { "px": [272,256], "src": [272,176], "f": 0, "t": 413, "d": [108,337], "a": 1 }, + { "px": [288,256], "src": [272,176], "f": 0, "t": 413, "d": [108,338], "a": 1 }, + { "px": [304,256], "src": [272,176], "f": 0, "t": 413, "d": [108,339], "a": 1 }, + { "px": [0,272], "src": [272,176], "f": 0, "t": 413, "d": [108,340], "a": 1 }, + { "px": [16,272], "src": [272,176], "f": 0, "t": 413, "d": [108,341], "a": 1 }, + { "px": [32,272], "src": [272,176], "f": 0, "t": 413, "d": [108,342], "a": 1 }, + { "px": [48,272], "src": [272,176], "f": 0, "t": 413, "d": [108,343], "a": 1 }, + { "px": [64,272], "src": [272,176], "f": 0, "t": 413, "d": [108,344], "a": 1 }, + { "px": [80,272], "src": [272,176], "f": 0, "t": 413, "d": [108,345], "a": 1 }, + { "px": [96,272], "src": [272,176], "f": 0, "t": 413, "d": [108,346], "a": 1 }, + { "px": [112,272], "src": [272,176], "f": 0, "t": 413, "d": [108,347], "a": 1 }, + { "px": [128,272], "src": [272,176], "f": 0, "t": 413, "d": [108,348], "a": 1 }, + { "px": [144,272], "src": [272,176], "f": 0, "t": 413, "d": [108,349], "a": 1 }, + { "px": [160,272], "src": [272,176], "f": 0, "t": 413, "d": [108,350], "a": 1 }, + { "px": [176,272], "src": [272,176], "f": 0, "t": 413, "d": [108,351], "a": 1 }, + { "px": [192,272], "src": [272,176], "f": 0, "t": 413, "d": [108,352], "a": 1 }, + { "px": [208,272], "src": [272,176], "f": 0, "t": 413, "d": [108,353], "a": 1 }, + { "px": [224,272], "src": [272,176], "f": 0, "t": 413, "d": [108,354], "a": 1 }, + { "px": [240,272], "src": [272,176], "f": 0, "t": 413, "d": [108,355], "a": 1 }, + { "px": [256,272], "src": [272,176], "f": 0, "t": 413, "d": [108,356], "a": 1 }, + { "px": [272,272], "src": [272,176], "f": 0, "t": 413, "d": [108,357], "a": 1 }, + { "px": [288,272], "src": [272,176], "f": 0, "t": 413, "d": [108,358], "a": 1 }, + { "px": [304,272], "src": [272,176], "f": 0, "t": 413, "d": [108,359], "a": 1 }, + { "px": [208,32], "src": [272,192], "f": 0, "t": 449, "d": [109,53], "a": 1 }, + { "px": [272,32], "src": [272,192], "f": 1, "t": 449, "d": [109,57], "a": 1 }, + { "px": [16,48], "src": [272,192], "f": 0, "t": 449, "d": [109,61], "a": 1 }, + { "px": [96,48], "src": [272,192], "f": 1, "t": 449, "d": [109,66], "a": 1 }, + { "px": [192,48], "src": [272,192], "f": 0, "t": 449, "d": [109,72], "a": 1 }, + { "px": [288,48], "src": [272,192], "f": 1, "t": 449, "d": [109,78], "a": 1 }, + { "px": [112,64], "src": [272,192], "f": 1, "t": 449, "d": [109,87], "a": 1 }, + { "px": [304,64], "src": [272,192], "f": 1, "t": 449, "d": [109,99], "a": 1 }, + { "px": [128,80], "src": [272,192], "f": 1, "t": 449, "d": [109,108], "a": 1 }, + { "px": [48,112], "src": [272,192], "f": 3, "t": 449, "d": [109,143], "a": 1 }, + { "px": [64,112], "src": [272,192], "f": 0, "t": 449, "d": [109,144], "a": 1 }, + { "px": [64,112], "src": [272,192], "f": 2, "t": 449, "d": [109,144], "a": 1 }, + { "px": [176,112], "src": [272,192], "f": 0, "t": 449, "d": [109,151], "a": 1 }, + { "px": [304,112], "src": [272,192], "f": 3, "t": 449, "d": [109,159], "a": 1 }, + { "px": [32,128], "src": [272,192], "f": 0, "t": 449, "d": [109,162], "a": 1 }, + { "px": [272,128], "src": [272,192], "f": 1, "t": 449, "d": [109,177], "a": 1 }, + { "px": [16,144], "src": [272,192], "f": 0, "t": 449, "d": [109,181], "a": 1 }, + { "px": [272,192], "src": [272,192], "f": 3, "t": 449, "d": [109,257], "a": 1 }, + { "px": [160,208], "src": [272,192], "f": 3, "t": 449, "d": [109,270], "a": 1 }, + { "px": [208,208], "src": [272,192], "f": 2, "t": 449, "d": [109,273], "a": 1 }, + { "px": [256,208], "src": [272,192], "f": 3, "t": 449, "d": [109,276], "a": 1 }, + { "px": [16,240], "src": [272,192], "f": 2, "t": 449, "d": [109,301], "a": 1 }, + { "px": [144,240], "src": [272,192], "f": 3, "t": 449, "d": [109,309], "a": 1 } + ], + "seed": 2084235, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 20, + "__cHei": 18, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35aa450-66b0-11ec-9cd7-41525757209e", + "levelId": 29, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [208,64], "src": [48,192], "f": 0, "t": 435, "d": [51,93], "a": 1 }, + { "px": [96,80], "src": [64,192], "f": 0, "t": 436, "d": [51,106], "a": 1 }, + { "px": [208,80], "src": [80,192], "f": 0, "t": 437, "d": [51,113], "a": 1 }, + { "px": [80,96], "src": [64,192], "f": 0, "t": 436, "d": [51,125], "a": 1 }, + { "px": [272,96], "src": [64,192], "f": 0, "t": 436, "d": [51,137], "a": 1 }, + { "px": [288,96], "src": [80,192], "f": 0, "t": 437, "d": [51,138], "a": 1 }, + { "px": [96,112], "src": [48,192], "f": 0, "t": 435, "d": [51,146], "a": 1 }, + { "px": [240,112], "src": [64,192], "f": 0, "t": 436, "d": [51,155], "a": 1 }, + { "px": [80,128], "src": [64,192], "f": 0, "t": 436, "d": [51,165], "a": 1 }, + { "px": [96,128], "src": [64,192], "f": 0, "t": 436, "d": [51,166], "a": 1 }, + { "px": [208,128], "src": [64,192], "f": 0, "t": 436, "d": [51,173], "a": 1 }, + { "px": [240,128], "src": [80,192], "f": 0, "t": 437, "d": [51,175], "a": 1 }, + { "px": [80,144], "src": [80,192], "f": 0, "t": 437, "d": [51,185], "a": 1 }, + { "px": [96,144], "src": [80,192], "f": 0, "t": 437, "d": [51,186], "a": 1 }, + { "px": [160,144], "src": [80,192], "f": 0, "t": 437, "d": [51,190], "a": 1 }, + { "px": [176,144], "src": [64,192], "f": 0, "t": 436, "d": [51,191], "a": 1 }, + { "px": [208,144], "src": [48,192], "f": 0, "t": 435, "d": [51,193], "a": 1 }, + { "px": [32,160], "src": [80,192], "f": 0, "t": 437, "d": [51,202], "a": 1 }, + { "px": [80,160], "src": [80,192], "f": 0, "t": 437, "d": [51,205], "a": 1 }, + { "px": [32,176], "src": [48,192], "f": 0, "t": 435, "d": [51,222], "a": 1 }, + { "px": [80,176], "src": [48,192], "f": 0, "t": 435, "d": [51,225], "a": 1 }, + { "px": [176,176], "src": [48,192], "f": 0, "t": 435, "d": [51,231], "a": 1 }, + { "px": [48,192], "src": [64,192], "f": 0, "t": 436, "d": [51,243], "a": 1 }, + { "px": [96,192], "src": [48,192], "f": 0, "t": 435, "d": [51,246], "a": 1 }, + { "px": [80,208], "src": [64,192], "f": 0, "t": 436, "d": [51,265], "a": 1 }, + { "px": [96,208], "src": [48,192], "f": 0, "t": 435, "d": [51,266], "a": 1 }, + { "px": [32,224], "src": [48,192], "f": 0, "t": 435, "d": [51,282], "a": 1 }, + { "px": [48,224], "src": [80,192], "f": 0, "t": 437, "d": [51,283], "a": 1 }, + { "px": [80,224], "src": [48,192], "f": 0, "t": 435, "d": [51,285], "a": 1 }, + { "px": [96,224], "src": [64,192], "f": 0, "t": 436, "d": [51,286], "a": 1 }, + { "px": [112,224], "src": [48,192], "f": 0, "t": 435, "d": [51,287], "a": 1 }, + { "px": [272,64], "src": [128,192], "f": 0, "t": 440, "d": [85,97], "a": 1 }, + { "px": [80,80], "src": [112,192], "f": 0, "t": 439, "d": [85,105], "a": 1 }, + { "px": [288,80], "src": [96,192], "f": 0, "t": 438, "d": [85,118], "a": 1 }, + { "px": [224,128], "src": [96,192], "f": 0, "t": 438, "d": [85,174], "a": 1 }, + { "px": [48,144], "src": [112,192], "f": 0, "t": 439, "d": [85,183], "a": 1 }, + { "px": [224,144], "src": [128,192], "f": 0, "t": 440, "d": [85,194], "a": 1 }, + { "px": [160,160], "src": [128,192], "f": 0, "t": 440, "d": [85,210], "a": 1 }, + { "px": [176,160], "src": [128,192], "f": 0, "t": 440, "d": [85,211], "a": 1 }, + { "px": [208,160], "src": [96,192], "f": 0, "t": 438, "d": [85,213], "a": 1 }, + { "px": [224,160], "src": [112,192], "f": 0, "t": 439, "d": [85,214], "a": 1 }, + { "px": [48,176], "src": [112,192], "f": 0, "t": 439, "d": [85,223], "a": 1 }, + { "px": [160,176], "src": [96,192], "f": 0, "t": 438, "d": [85,230], "a": 1 }, + { "px": [208,176], "src": [112,192], "f": 0, "t": 439, "d": [85,233], "a": 1 }, + { "px": [224,48], "src": [32,192], "f": 0, "t": 434, "d": [102,74], "a": 1 }, + { "px": [240,48], "src": [16,192], "f": 0, "t": 433, "d": [102,75], "a": 1 }, + { "px": [32,64], "src": [0,192], "f": 0, "t": 432, "d": [102,82], "a": 1 }, + { "px": [48,64], "src": [32,192], "f": 0, "t": 434, "d": [102,83], "a": 1 }, + { "px": [80,64], "src": [0,192], "f": 0, "t": 432, "d": [102,85], "a": 1 }, + { "px": [224,64], "src": [0,192], "f": 0, "t": 432, "d": [102,94], "a": 1 }, + { "px": [240,64], "src": [32,192], "f": 0, "t": 434, "d": [102,95], "a": 1 }, + { "px": [16,80], "src": [32,192], "f": 0, "t": 434, "d": [102,101], "a": 1 }, + { "px": [32,80], "src": [16,192], "f": 0, "t": 433, "d": [102,102], "a": 1 }, + { "px": [48,80], "src": [0,192], "f": 0, "t": 432, "d": [102,103], "a": 1 }, + { "px": [224,80], "src": [32,192], "f": 0, "t": 434, "d": [102,114], "a": 1 }, + { "px": [240,80], "src": [32,192], "f": 0, "t": 434, "d": [102,115], "a": 1 }, + { "px": [272,80], "src": [0,192], "f": 0, "t": 432, "d": [102,117], "a": 1 }, + { "px": [16,96], "src": [32,192], "f": 0, "t": 434, "d": [102,121], "a": 1 }, + { "px": [32,96], "src": [0,192], "f": 0, "t": 432, "d": [102,122], "a": 1 }, + { "px": [96,96], "src": [16,192], "f": 0, "t": 433, "d": [102,126], "a": 1 }, + { "px": [112,96], "src": [0,192], "f": 0, "t": 432, "d": [102,127], "a": 1 }, + { "px": [208,96], "src": [32,192], "f": 0, "t": 434, "d": [102,133], "a": 1 }, + { "px": [224,96], "src": [0,192], "f": 0, "t": 432, "d": [102,134], "a": 1 }, + { "px": [240,96], "src": [0,192], "f": 0, "t": 432, "d": [102,135], "a": 1 }, + { "px": [112,112], "src": [32,192], "f": 0, "t": 434, "d": [102,147], "a": 1 }, + { "px": [208,112], "src": [0,192], "f": 0, "t": 432, "d": [102,153], "a": 1 }, + { "px": [224,112], "src": [0,192], "f": 0, "t": 432, "d": [102,154], "a": 1 }, + { "px": [112,128], "src": [0,192], "f": 0, "t": 432, "d": [102,167], "a": 1 }, + { "px": [112,144], "src": [16,192], "f": 0, "t": 433, "d": [102,187], "a": 1 }, + { "px": [144,144], "src": [16,192], "f": 0, "t": 433, "d": [102,189], "a": 1 }, + { "px": [240,144], "src": [16,192], "f": 0, "t": 433, "d": [102,195], "a": 1 }, + { "px": [48,160], "src": [32,192], "f": 0, "t": 434, "d": [102,203], "a": 1 }, + { "px": [96,160], "src": [0,192], "f": 0, "t": 432, "d": [102,206], "a": 1 }, + { "px": [112,160], "src": [16,192], "f": 0, "t": 433, "d": [102,207], "a": 1 }, + { "px": [144,160], "src": [16,192], "f": 0, "t": 433, "d": [102,209], "a": 1 }, + { "px": [240,160], "src": [0,192], "f": 0, "t": 432, "d": [102,215], "a": 1 }, + { "px": [96,176], "src": [16,192], "f": 0, "t": 433, "d": [102,226], "a": 1 }, + { "px": [112,176], "src": [32,192], "f": 0, "t": 434, "d": [102,227], "a": 1 }, + { "px": [144,176], "src": [0,192], "f": 0, "t": 432, "d": [102,229], "a": 1 }, + { "px": [224,176], "src": [32,192], "f": 0, "t": 434, "d": [102,234], "a": 1 }, + { "px": [240,176], "src": [32,192], "f": 0, "t": 434, "d": [102,235], "a": 1 }, + { "px": [32,192], "src": [16,192], "f": 0, "t": 433, "d": [102,242], "a": 1 }, + { "px": [80,192], "src": [0,192], "f": 0, "t": 432, "d": [102,245], "a": 1 }, + { "px": [112,192], "src": [32,192], "f": 0, "t": 434, "d": [102,247], "a": 1 }, + { "px": [144,192], "src": [32,192], "f": 0, "t": 434, "d": [102,249], "a": 1 }, + { "px": [224,192], "src": [16,192], "f": 0, "t": 433, "d": [102,254], "a": 1 }, + { "px": [240,192], "src": [32,192], "f": 0, "t": 434, "d": [102,255], "a": 1 }, + { "px": [32,208], "src": [32,192], "f": 0, "t": 434, "d": [102,262], "a": 1 }, + { "px": [48,208], "src": [32,192], "f": 0, "t": 434, "d": [102,263], "a": 1 }, + { "px": [64,208], "src": [32,192], "f": 0, "t": 434, "d": [102,264], "a": 1 }, + { "px": [112,208], "src": [16,192], "f": 0, "t": 433, "d": [102,267], "a": 1 }, + { "px": [128,208], "src": [32,192], "f": 0, "t": 434, "d": [102,268], "a": 1 }, + { "px": [64,224], "src": [16,192], "f": 0, "t": 433, "d": [102,284], "a": 1 }, + { "px": [128,224], "src": [16,192], "f": 0, "t": 433, "d": [102,288], "a": 1 }, + { "px": [256,48], "src": [160,208], "f": 0, "t": 478, "d": [70,76], "a": 1 }, + { "px": [64,64], "src": [160,208], "f": 0, "t": 478, "d": [70,84], "a": 1 }, + { "px": [256,64], "src": [160,208], "f": 0, "t": 478, "d": [70,96], "a": 1 }, + { "px": [0,80], "src": [160,208], "f": 0, "t": 478, "d": [70,100], "a": 1 }, + { "px": [64,80], "src": [160,208], "f": 0, "t": 478, "d": [70,104], "a": 1 }, + { "px": [256,80], "src": [160,208], "f": 0, "t": 478, "d": [70,116], "a": 1 }, + { "px": [0,96], "src": [160,208], "f": 0, "t": 478, "d": [70,120], "a": 1 }, + { "px": [256,96], "src": [160,208], "f": 0, "t": 478, "d": [70,136], "a": 1 }, + { "px": [192,128], "src": [160,208], "f": 0, "t": 478, "d": [70,172], "a": 1 }, + { "px": [64,144], "src": [160,208], "f": 0, "t": 478, "d": [70,184], "a": 1 }, + { "px": [128,144], "src": [160,208], "f": 0, "t": 478, "d": [70,188], "a": 1 }, + { "px": [192,144], "src": [160,208], "f": 0, "t": 478, "d": [70,192], "a": 1 }, + { "px": [256,144], "src": [160,208], "f": 0, "t": 478, "d": [70,196], "a": 1 }, + { "px": [64,160], "src": [160,208], "f": 0, "t": 478, "d": [70,204], "a": 1 }, + { "px": [128,160], "src": [160,208], "f": 0, "t": 478, "d": [70,208], "a": 1 }, + { "px": [192,160], "src": [160,208], "f": 0, "t": 478, "d": [70,212], "a": 1 }, + { "px": [256,160], "src": [160,208], "f": 0, "t": 478, "d": [70,216], "a": 1 }, + { "px": [64,176], "src": [160,208], "f": 0, "t": 478, "d": [70,224], "a": 1 }, + { "px": [128,176], "src": [160,208], "f": 0, "t": 478, "d": [70,228], "a": 1 }, + { "px": [192,176], "src": [160,208], "f": 0, "t": 478, "d": [70,232], "a": 1 }, + { "px": [256,176], "src": [160,208], "f": 0, "t": 478, "d": [70,236], "a": 1 }, + { "px": [64,192], "src": [160,208], "f": 0, "t": 478, "d": [70,244], "a": 1 }, + { "px": [128,192], "src": [160,208], "f": 0, "t": 478, "d": [70,248], "a": 1 }, + { "px": [224,64], "src": [240,176], "f": 0, "t": 411, "d": [91,94], "a": 1 }, + { "px": [256,64], "src": [240,176], "f": 1, "t": 411, "d": [91,96], "a": 1 }, + { "px": [32,80], "src": [240,176], "f": 0, "t": 411, "d": [91,102], "a": 1 }, + { "px": [32,80], "src": [240,176], "f": 3, "t": 411, "d": [91,102], "a": 1 }, + { "px": [80,80], "src": [240,176], "f": 1, "t": 411, "d": [91,105], "a": 1 }, + { "px": [80,80], "src": [240,176], "f": 2, "t": 411, "d": [91,105], "a": 1 }, + { "px": [272,80], "src": [240,176], "f": 1, "t": 411, "d": [91,117], "a": 1 }, + { "px": [96,96], "src": [240,176], "f": 1, "t": 411, "d": [91,126], "a": 1 }, + { "px": [96,96], "src": [240,176], "f": 2, "t": 411, "d": [91,126], "a": 1 }, + { "px": [240,96], "src": [240,176], "f": 3, "t": 411, "d": [91,135], "a": 1 }, + { "px": [96,128], "src": [240,176], "f": 0, "t": 411, "d": [91,166], "a": 1 }, + { "px": [208,128], "src": [240,176], "f": 0, "t": 411, "d": [91,173], "a": 1 }, + { "px": [80,144], "src": [240,176], "f": 0, "t": 411, "d": [91,185], "a": 1 }, + { "px": [112,144], "src": [240,176], "f": 1, "t": 411, "d": [91,187], "a": 1 }, + { "px": [192,144], "src": [240,176], "f": 0, "t": 411, "d": [91,192], "a": 1 }, + { "px": [240,144], "src": [240,176], "f": 1, "t": 411, "d": [91,195], "a": 1 }, + { "px": [48,160], "src": [240,176], "f": 0, "t": 411, "d": [91,203], "a": 1 }, + { "px": [144,176], "src": [240,176], "f": 3, "t": 411, "d": [91,229], "a": 1 }, + { "px": [224,176], "src": [240,176], "f": 2, "t": 411, "d": [91,234], "a": 1 }, + { "px": [240,176], "src": [240,176], "f": 3, "t": 411, "d": [91,235], "a": 1 }, + { "px": [128,192], "src": [240,176], "f": 3, "t": 411, "d": [91,248], "a": 1 }, + { "px": [224,48], "src": [208,176], "f": 0, "t": 409, "d": [89,74], "a": 1 }, + { "px": [256,48], "src": [208,176], "f": 1, "t": 409, "d": [89,76], "a": 1 }, + { "px": [32,64], "src": [208,176], "f": 0, "t": 409, "d": [89,82], "a": 1 }, + { "px": [80,64], "src": [208,176], "f": 1, "t": 409, "d": [89,85], "a": 1 }, + { "px": [208,64], "src": [208,176], "f": 0, "t": 409, "d": [89,93], "a": 1 }, + { "px": [272,64], "src": [208,176], "f": 1, "t": 409, "d": [89,97], "a": 1 }, + { "px": [96,80], "src": [208,176], "f": 1, "t": 409, "d": [89,106], "a": 1 }, + { "px": [208,80], "src": [208,176], "f": 0, "t": 409, "d": [89,113], "a": 1 }, + { "px": [288,80], "src": [208,176], "f": 1, "t": 409, "d": [89,118], "a": 1 }, + { "px": [32,96], "src": [208,176], "f": 1, "t": 409, "d": [89,122], "a": 1 }, + { "px": [80,96], "src": [208,176], "f": 0, "t": 409, "d": [89,125], "a": 1 }, + { "px": [112,96], "src": [208,176], "f": 1, "t": 409, "d": [89,127], "a": 1 }, + { "px": [208,96], "src": [208,176], "f": 0, "t": 409, "d": [89,133], "a": 1 }, + { "px": [288,96], "src": [208,176], "f": 1, "t": 409, "d": [89,138], "a": 1 }, + { "px": [96,112], "src": [208,176], "f": 0, "t": 409, "d": [89,146], "a": 1 }, + { "px": [112,112], "src": [208,176], "f": 1, "t": 409, "d": [89,147], "a": 1 }, + { "px": [208,112], "src": [208,176], "f": 0, "t": 409, "d": [89,153], "a": 1 }, + { "px": [240,112], "src": [208,176], "f": 1, "t": 409, "d": [89,155], "a": 1 }, + { "px": [80,128], "src": [208,176], "f": 0, "t": 409, "d": [89,165], "a": 1 }, + { "px": [112,128], "src": [208,176], "f": 1, "t": 409, "d": [89,167], "a": 1 }, + { "px": [192,128], "src": [208,176], "f": 0, "t": 409, "d": [89,172], "a": 1 }, + { "px": [240,128], "src": [208,176], "f": 1, "t": 409, "d": [89,175], "a": 1 }, + { "px": [48,144], "src": [208,176], "f": 0, "t": 409, "d": [89,183], "a": 1 }, + { "px": [256,144], "src": [208,176], "f": 1, "t": 409, "d": [89,196], "a": 1 }, + { "px": [32,160], "src": [208,176], "f": 0, "t": 409, "d": [89,202], "a": 1 }, + { "px": [256,160], "src": [208,176], "f": 1, "t": 409, "d": [89,216], "a": 1 }, + { "px": [32,176], "src": [208,176], "f": 0, "t": 409, "d": [89,222], "a": 1 }, + { "px": [256,176], "src": [208,176], "f": 1, "t": 409, "d": [89,236], "a": 1 }, + { "px": [32,192], "src": [208,176], "f": 0, "t": 409, "d": [89,242], "a": 1 }, + { "px": [144,192], "src": [208,176], "f": 1, "t": 409, "d": [89,249], "a": 1 }, + { "px": [224,192], "src": [208,176], "f": 0, "t": 409, "d": [89,254], "a": 1 }, + { "px": [240,192], "src": [208,176], "f": 1, "t": 409, "d": [89,255], "a": 1 }, + { "px": [32,208], "src": [208,176], "f": 0, "t": 409, "d": [89,262], "a": 1 }, + { "px": [128,208], "src": [208,176], "f": 1, "t": 409, "d": [89,268], "a": 1 }, + { "px": [32,224], "src": [208,176], "f": 0, "t": 409, "d": [89,282], "a": 1 }, + { "px": [128,224], "src": [208,176], "f": 1, "t": 409, "d": [89,288], "a": 1 }, + { "px": [224,48], "src": [224,176], "f": 0, "t": 410, "d": [88,74], "a": 1 }, + { "px": [240,48], "src": [224,176], "f": 0, "t": 410, "d": [88,75], "a": 1 }, + { "px": [256,48], "src": [224,176], "f": 0, "t": 410, "d": [88,76], "a": 1 }, + { "px": [32,64], "src": [224,176], "f": 0, "t": 410, "d": [88,82], "a": 1 }, + { "px": [48,64], "src": [224,176], "f": 0, "t": 410, "d": [88,83], "a": 1 }, + { "px": [64,64], "src": [224,176], "f": 0, "t": 410, "d": [88,84], "a": 1 }, + { "px": [80,64], "src": [224,176], "f": 0, "t": 410, "d": [88,85], "a": 1 }, + { "px": [208,64], "src": [224,176], "f": 0, "t": 410, "d": [88,93], "a": 1 }, + { "px": [272,64], "src": [224,176], "f": 0, "t": 410, "d": [88,97], "a": 1 }, + { "px": [0,80], "src": [224,176], "f": 0, "t": 410, "d": [88,100], "a": 1 }, + { "px": [16,80], "src": [224,176], "f": 0, "t": 410, "d": [88,101], "a": 1 }, + { "px": [48,80], "src": [224,176], "f": 2, "t": 410, "d": [88,103], "a": 1 }, + { "px": [64,80], "src": [224,176], "f": 2, "t": 410, "d": [88,104], "a": 1 }, + { "px": [96,80], "src": [224,176], "f": 0, "t": 410, "d": [88,106], "a": 1 }, + { "px": [288,80], "src": [224,176], "f": 0, "t": 410, "d": [88,118], "a": 1 }, + { "px": [0,96], "src": [224,176], "f": 2, "t": 410, "d": [88,120], "a": 1 }, + { "px": [16,96], "src": [224,176], "f": 2, "t": 410, "d": [88,121], "a": 1 }, + { "px": [32,96], "src": [224,176], "f": 2, "t": 410, "d": [88,122], "a": 1 }, + { "px": [80,96], "src": [224,176], "f": 2, "t": 410, "d": [88,125], "a": 1 }, + { "px": [112,96], "src": [224,176], "f": 0, "t": 410, "d": [88,127], "a": 1 }, + { "px": [256,96], "src": [224,176], "f": 2, "t": 410, "d": [88,136], "a": 1 }, + { "px": [272,96], "src": [224,176], "f": 2, "t": 410, "d": [88,137], "a": 1 }, + { "px": [288,96], "src": [224,176], "f": 2, "t": 410, "d": [88,138], "a": 1 }, + { "px": [80,128], "src": [224,176], "f": 0, "t": 410, "d": [88,165], "a": 1 }, + { "px": [192,128], "src": [224,176], "f": 0, "t": 410, "d": [88,172], "a": 1 }, + { "px": [48,144], "src": [224,176], "f": 0, "t": 410, "d": [88,183], "a": 1 }, + { "px": [64,144], "src": [224,176], "f": 0, "t": 410, "d": [88,184], "a": 1 }, + { "px": [128,144], "src": [224,176], "f": 0, "t": 410, "d": [88,188], "a": 1 }, + { "px": [144,144], "src": [224,176], "f": 0, "t": 410, "d": [88,189], "a": 1 }, + { "px": [160,144], "src": [224,176], "f": 0, "t": 410, "d": [88,190], "a": 1 }, + { "px": [176,144], "src": [224,176], "f": 0, "t": 410, "d": [88,191], "a": 1 }, + { "px": [256,144], "src": [224,176], "f": 0, "t": 410, "d": [88,196], "a": 1 }, + { "px": [32,160], "src": [224,176], "f": 0, "t": 410, "d": [88,202], "a": 1 }, + { "px": [160,176], "src": [224,176], "f": 2, "t": 410, "d": [88,230], "a": 1 }, + { "px": [176,176], "src": [224,176], "f": 2, "t": 410, "d": [88,231], "a": 1 }, + { "px": [192,176], "src": [224,176], "f": 2, "t": 410, "d": [88,232], "a": 1 }, + { "px": [208,176], "src": [224,176], "f": 2, "t": 410, "d": [88,233], "a": 1 }, + { "px": [256,176], "src": [224,176], "f": 2, "t": 410, "d": [88,236], "a": 1 }, + { "px": [144,192], "src": [224,176], "f": 2, "t": 410, "d": [88,249], "a": 1 }, + { "px": [224,192], "src": [224,176], "f": 2, "t": 410, "d": [88,254], "a": 1 }, + { "px": [240,192], "src": [224,176], "f": 2, "t": 410, "d": [88,255], "a": 1 }, + { "px": [32,224], "src": [224,176], "f": 2, "t": 410, "d": [88,282], "a": 1 }, + { "px": [48,224], "src": [224,176], "f": 2, "t": 410, "d": [88,283], "a": 1 }, + { "px": [64,224], "src": [224,176], "f": 2, "t": 410, "d": [88,284], "a": 1 }, + { "px": [80,224], "src": [224,176], "f": 2, "t": 410, "d": [88,285], "a": 1 }, + { "px": [96,224], "src": [224,176], "f": 2, "t": 410, "d": [88,286], "a": 1 }, + { "px": [112,224], "src": [224,176], "f": 2, "t": 410, "d": [88,287], "a": 1 }, + { "px": [128,224], "src": [224,176], "f": 2, "t": 410, "d": [88,288], "a": 1 } + ], + "seed": 1571034, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [{ "levelIid": "5cbed650-66b0-11ec-895f-23240977178f", "dir": "w" }] + }, + { + "identifier": "Dead_end_west", + "iid": "a35aa451-66b0-11ec-9cd7-438de356526d", + "uid": 30, + "worldX": -480, + "worldY": -288, + "worldDepth": 0, + "pxWid": 256, + "pxHei": 288, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 16, + "__cHei": 18, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "490f0630-66b0-11ec-8fc6-e5cfe59ee459", + "levelId": 30, + "layerDefUid": 119, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 9060739, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Plant", + "__grid": [11,15], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "e3136e10-66b0-11ec-8fc6-1dfe1e43cabd", + "width": 20, + "height": 20, + "defUid": 116, + "px": [184,256], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Water_shroom", "__tile": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Water_shroom"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + } + ] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 16, + "__cHei": 18, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35aa454-66b0-11ec-9cd7-1b45eef09dcc", + "levelId": 30, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0, + 0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1, + 1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1, + 1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1, + 1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1, + 1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [96,0], "src": [16,16], "f": 0, "t": 37, "d": [8,6], "a": 1 }, + { "px": [128,0], "src": [16,32], "f": 0, "t": 73, "d": [8,8], "a": 1 }, + { "px": [144,0], "src": [16,32], "f": 0, "t": 73, "d": [8,9], "a": 1 }, + { "px": [160,0], "src": [16,32], "f": 0, "t": 73, "d": [8,10], "a": 1 }, + { "px": [176,0], "src": [16,32], "f": 0, "t": 73, "d": [8,11], "a": 1 }, + { "px": [208,0], "src": [16,32], "f": 0, "t": 73, "d": [8,13], "a": 1 }, + { "px": [0,16], "src": [16,16], "f": 0, "t": 37, "d": [8,16], "a": 1 }, + { "px": [80,16], "src": [16,32], "f": 0, "t": 73, "d": [8,21], "a": 1 }, + { "px": [96,16], "src": [16,16], "f": 0, "t": 37, "d": [8,22], "a": 1 }, + { "px": [112,16], "src": [16,16], "f": 0, "t": 37, "d": [8,23], "a": 1 }, + { "px": [176,16], "src": [16,16], "f": 0, "t": 37, "d": [8,27], "a": 1 }, + { "px": [192,16], "src": [16,16], "f": 0, "t": 37, "d": [8,28], "a": 1 }, + { "px": [208,16], "src": [16,16], "f": 0, "t": 37, "d": [8,29], "a": 1 }, + { "px": [144,32], "src": [16,32], "f": 0, "t": 73, "d": [8,41], "a": 1 }, + { "px": [160,32], "src": [16,16], "f": 0, "t": 37, "d": [8,42], "a": 1 }, + { "px": [176,32], "src": [16,16], "f": 0, "t": 37, "d": [8,43], "a": 1 }, + { "px": [192,32], "src": [16,32], "f": 0, "t": 73, "d": [8,44], "a": 1 }, + { "px": [208,32], "src": [16,16], "f": 0, "t": 37, "d": [8,45], "a": 1 }, + { "px": [224,32], "src": [16,32], "f": 0, "t": 73, "d": [8,46], "a": 1 }, + { "px": [240,32], "src": [16,32], "f": 0, "t": 73, "d": [8,47], "a": 1 }, + { "px": [48,48], "src": [16,32], "f": 0, "t": 73, "d": [8,51], "a": 1 }, + { "px": [64,48], "src": [16,16], "f": 0, "t": 37, "d": [8,52], "a": 1 }, + { "px": [144,48], "src": [16,16], "f": 0, "t": 37, "d": [8,57], "a": 1 }, + { "px": [48,64], "src": [16,32], "f": 0, "t": 73, "d": [8,67], "a": 1 }, + { "px": [96,64], "src": [16,16], "f": 0, "t": 37, "d": [8,70], "a": 1 }, + { "px": [112,64], "src": [16,16], "f": 0, "t": 37, "d": [8,71], "a": 1 }, + { "px": [128,64], "src": [16,32], "f": 0, "t": 73, "d": [8,72], "a": 1 }, + { "px": [80,80], "src": [16,16], "f": 0, "t": 37, "d": [8,85], "a": 1 }, + { "px": [16,96], "src": [16,16], "f": 0, "t": 37, "d": [8,97], "a": 1 }, + { "px": [48,96], "src": [16,32], "f": 0, "t": 73, "d": [8,99], "a": 1 }, + { "px": [64,96], "src": [16,16], "f": 0, "t": 37, "d": [8,100], "a": 1 }, + { "px": [192,96], "src": [16,32], "f": 0, "t": 73, "d": [8,108], "a": 1 }, + { "px": [208,96], "src": [16,32], "f": 0, "t": 73, "d": [8,109], "a": 1 }, + { "px": [224,96], "src": [16,32], "f": 0, "t": 73, "d": [8,110], "a": 1 }, + { "px": [240,96], "src": [16,16], "f": 0, "t": 37, "d": [8,111], "a": 1 }, + { "px": [32,112], "src": [16,32], "f": 0, "t": 73, "d": [8,114], "a": 1 }, + { "px": [48,112], "src": [16,32], "f": 0, "t": 73, "d": [8,115], "a": 1 }, + { "px": [64,112], "src": [16,32], "f": 0, "t": 73, "d": [8,116], "a": 1 }, + { "px": [176,112], "src": [16,16], "f": 0, "t": 37, "d": [8,123], "a": 1 }, + { "px": [16,128], "src": [16,32], "f": 0, "t": 73, "d": [8,129], "a": 1 }, + { "px": [48,128], "src": [16,32], "f": 0, "t": 73, "d": [8,131], "a": 1 }, + { "px": [64,128], "src": [16,32], "f": 0, "t": 73, "d": [8,132], "a": 1 }, + { "px": [192,128], "src": [16,32], "f": 0, "t": 73, "d": [8,140], "a": 1 }, + { "px": [48,144], "src": [16,32], "f": 0, "t": 73, "d": [8,147], "a": 1 }, + { "px": [64,144], "src": [16,32], "f": 0, "t": 73, "d": [8,148], "a": 1 }, + { "px": [192,144], "src": [16,32], "f": 0, "t": 73, "d": [8,156], "a": 1 }, + { "px": [208,144], "src": [16,32], "f": 0, "t": 73, "d": [8,157], "a": 1 }, + { "px": [32,160], "src": [16,32], "f": 0, "t": 73, "d": [8,162], "a": 1 }, + { "px": [48,160], "src": [16,32], "f": 0, "t": 73, "d": [8,163], "a": 1 }, + { "px": [64,160], "src": [16,16], "f": 0, "t": 37, "d": [8,164], "a": 1 }, + { "px": [192,160], "src": [16,16], "f": 0, "t": 37, "d": [8,172], "a": 1 }, + { "px": [48,176], "src": [16,16], "f": 0, "t": 37, "d": [8,179], "a": 1 }, + { "px": [208,176], "src": [16,32], "f": 0, "t": 73, "d": [8,189], "a": 1 }, + { "px": [32,192], "src": [16,32], "f": 0, "t": 73, "d": [8,194], "a": 1 }, + { "px": [48,192], "src": [16,32], "f": 0, "t": 73, "d": [8,195], "a": 1 }, + { "px": [224,192], "src": [16,16], "f": 0, "t": 37, "d": [8,206], "a": 1 }, + { "px": [48,208], "src": [16,16], "f": 0, "t": 37, "d": [8,211], "a": 1 }, + { "px": [224,208], "src": [16,32], "f": 0, "t": 73, "d": [8,222], "a": 1 }, + { "px": [240,208], "src": [16,32], "f": 0, "t": 73, "d": [8,223], "a": 1 }, + { "px": [0,224], "src": [16,32], "f": 0, "t": 73, "d": [8,224], "a": 1 }, + { "px": [48,224], "src": [16,32], "f": 0, "t": 73, "d": [8,227], "a": 1 }, + { "px": [224,224], "src": [16,32], "f": 0, "t": 73, "d": [8,238], "a": 1 }, + { "px": [240,224], "src": [16,16], "f": 0, "t": 37, "d": [8,239], "a": 1 }, + { "px": [48,240], "src": [16,16], "f": 0, "t": 37, "d": [8,243], "a": 1 }, + { "px": [224,240], "src": [16,32], "f": 0, "t": 73, "d": [8,254], "a": 1 }, + { "px": [0,256], "src": [16,32], "f": 0, "t": 73, "d": [8,256], "a": 1 }, + { "px": [80,256], "src": [16,16], "f": 0, "t": 37, "d": [8,261], "a": 1 }, + { "px": [96,256], "src": [16,16], "f": 0, "t": 37, "d": [8,262], "a": 1 }, + { "px": [112,256], "src": [16,16], "f": 0, "t": 37, "d": [8,263], "a": 1 }, + { "px": [128,256], "src": [16,16], "f": 0, "t": 37, "d": [8,264], "a": 1 }, + { "px": [224,256], "src": [16,32], "f": 0, "t": 73, "d": [8,270], "a": 1 }, + { "px": [16,272], "src": [16,32], "f": 0, "t": 73, "d": [8,273], "a": 1 }, + { "px": [0,0], "src": [144,192], "f": 0, "t": 441, "d": [84,0], "a": 1 }, + { "px": [224,0], "src": [176,192], "f": 0, "t": 443, "d": [84,14], "a": 1 }, + { "px": [240,0], "src": [144,192], "f": 0, "t": 441, "d": [84,15], "a": 1 }, + { "px": [16,16], "src": [144,192], "f": 0, "t": 441, "d": [84,17], "a": 1 }, + { "px": [32,16], "src": [144,192], "f": 0, "t": 441, "d": [84,18], "a": 1 }, + { "px": [160,16], "src": [176,192], "f": 0, "t": 443, "d": [84,26], "a": 1 }, + { "px": [224,16], "src": [144,192], "f": 0, "t": 441, "d": [84,30], "a": 1 }, + { "px": [240,16], "src": [144,192], "f": 0, "t": 441, "d": [84,31], "a": 1 }, + { "px": [96,32], "src": [160,192], "f": 0, "t": 442, "d": [84,38], "a": 1 }, + { "px": [128,32], "src": [144,192], "f": 0, "t": 441, "d": [84,40], "a": 1 }, + { "px": [112,48], "src": [176,192], "f": 0, "t": 443, "d": [84,55], "a": 1 }, + { "px": [128,48], "src": [192,192], "f": 0, "t": 444, "d": [84,56], "a": 1 }, + { "px": [0,96], "src": [192,192], "f": 0, "t": 444, "d": [84,96], "a": 1 }, + { "px": [224,144], "src": [192,192], "f": 0, "t": 444, "d": [84,158], "a": 1 }, + { "px": [0,160], "src": [144,192], "f": 0, "t": 441, "d": [84,160], "a": 1 }, + { "px": [208,160], "src": [192,192], "f": 0, "t": 444, "d": [84,173], "a": 1 }, + { "px": [224,160], "src": [176,192], "f": 0, "t": 443, "d": [84,174], "a": 1 }, + { "px": [240,160], "src": [192,192], "f": 0, "t": 444, "d": [84,175], "a": 1 }, + { "px": [224,176], "src": [160,192], "f": 0, "t": 442, "d": [84,190], "a": 1 }, + { "px": [32,208], "src": [144,192], "f": 0, "t": 441, "d": [84,210], "a": 1 }, + { "px": [32,224], "src": [144,192], "f": 0, "t": 441, "d": [84,226], "a": 1 }, + { "px": [240,240], "src": [160,192], "f": 0, "t": 442, "d": [84,255], "a": 1 }, + { "px": [64,256], "src": [192,192], "f": 0, "t": 444, "d": [84,260], "a": 1 }, + { "px": [64,272], "src": [144,192], "f": 0, "t": 441, "d": [84,276], "a": 1 }, + { "px": [128,272], "src": [160,192], "f": 0, "t": 442, "d": [84,280], "a": 1 }, + { "px": [144,272], "src": [176,192], "f": 0, "t": 443, "d": [84,281], "a": 1 }, + { "px": [160,272], "src": [192,192], "f": 0, "t": 444, "d": [84,282], "a": 1 }, + { "px": [176,272], "src": [176,192], "f": 0, "t": 443, "d": [84,283], "a": 1 }, + { "px": [192,272], "src": [160,192], "f": 0, "t": 442, "d": [84,284], "a": 1 }, + { "px": [208,272], "src": [192,192], "f": 0, "t": 444, "d": [84,285], "a": 1 }, + { "px": [160,32], "src": [16,144], "f": 0, "t": 325, "d": [75,42], "a": 1 }, + { "px": [176,33], "src": [32,144], "f": 0, "t": 326, "d": [75,43], "a": 1 }, + { "px": [192,33], "src": [32,144], "f": 0, "t": 326, "d": [75,44], "a": 1 }, + { "px": [208,33], "src": [32,144], "f": 0, "t": 326, "d": [75,45], "a": 1 }, + { "px": [224,32], "src": [16,144], "f": 0, "t": 325, "d": [75,46], "a": 1 }, + { "px": [240,33], "src": [32,144], "f": 0, "t": 326, "d": [75,47], "a": 1 }, + { "px": [112,65], "src": [16,144], "f": 0, "t": 325, "d": [75,71], "a": 1 }, + { "px": [128,65], "src": [16,144], "f": 0, "t": 325, "d": [75,72], "a": 1 }, + { "px": [208,80], "src": [16,96], "f": 0, "t": 217, "d": [9,93], "a": 1 }, + { "px": [224,80], "src": [16,96], "f": 0, "t": 217, "d": [9,94], "a": 1 }, + { "px": [240,80], "src": [16,96], "f": 0, "t": 217, "d": [9,95], "a": 1 }, + { "px": [64,240], "src": [48,96], "f": 0, "t": 219, "d": [9,244], "a": 1 }, + { "px": [80,240], "src": [64,96], "f": 0, "t": 220, "d": [9,245], "a": 1 }, + { "px": [96,240], "src": [48,96], "f": 0, "t": 219, "d": [9,246], "a": 1 }, + { "px": [112,240], "src": [48,96], "f": 0, "t": 219, "d": [9,247], "a": 1 }, + { "px": [144,256], "src": [16,96], "f": 0, "t": 217, "d": [9,265], "a": 1 }, + { "px": [160,256], "src": [64,96], "f": 0, "t": 220, "d": [9,266], "a": 1 }, + { "px": [176,256], "src": [48,96], "f": 0, "t": 219, "d": [9,267], "a": 1 }, + { "px": [192,256], "src": [16,96], "f": 0, "t": 217, "d": [9,268], "a": 1 }, + { "px": [208,256], "src": [64,96], "f": 0, "t": 220, "d": [9,269], "a": 1 }, + { "px": [145,48], "src": [0,128], "f": 1, "t": 288, "d": [10,57], "a": 1 }, + { "px": [66,112], "src": [0,112], "f": 1, "t": 252, "d": [10,116], "a": 1 }, + { "px": [65,128], "src": [0,112], "f": 1, "t": 252, "d": [10,132], "a": 1 }, + { "px": [65,144], "src": [0,112], "f": 1, "t": 252, "d": [10,148], "a": 1 }, + { "px": [192,144], "src": [0,112], "f": 0, "t": 252, "d": [10,156], "a": 1 }, + { "px": [64,160], "src": [0,128], "f": 1, "t": 288, "d": [10,164], "a": 1 }, + { "px": [192,160], "src": [0,128], "f": 0, "t": 288, "d": [10,172], "a": 1 }, + { "px": [48,192], "src": [0,128], "f": 1, "t": 288, "d": [10,195], "a": 1 }, + { "px": [49,208], "src": [0,128], "f": 1, "t": 288, "d": [10,211], "a": 1 }, + { "px": [222,208], "src": [0,128], "f": 0, "t": 288, "d": [10,222], "a": 1 }, + { "px": [48,224], "src": [0,112], "f": 1, "t": 252, "d": [10,227], "a": 1 }, + { "px": [224,224], "src": [0,112], "f": 0, "t": 252, "d": [10,238], "a": 1 }, + { "px": [223,240], "src": [0,128], "f": 0, "t": 288, "d": [10,254], "a": 1 }, + { "px": [144,64], "src": [0,144], "f": 1, "t": 324, "d": [77,73], "a": 1 }, + { "px": [96,80], "src": [0,144], "f": 1, "t": 324, "d": [77,86], "a": 1 }, + { "px": [80,96], "src": [0,144], "f": 1, "t": 324, "d": [77,101], "a": 1 }, + { "px": [176,128], "src": [0,144], "f": 0, "t": 324, "d": [77,139], "a": 1 }, + { "px": [64,176], "src": [0,144], "f": 1, "t": 324, "d": [77,180], "a": 1 }, + { "px": [192,176], "src": [0,144], "f": 0, "t": 324, "d": [77,188], "a": 1 }, + { "px": [208,192], "src": [0,144], "f": 0, "t": 324, "d": [77,205], "a": 1 }, + { "px": [192,80], "src": [0,96], "f": 0, "t": 216, "d": [11,92], "a": 1 }, + { "px": [176,96], "src": [0,96], "f": 0, "t": 216, "d": [11,107], "a": 1 }, + { "px": [160,112], "src": [0,96], "f": 0, "t": 216, "d": [11,122], "a": 1 }, + { "px": [128,240], "src": [0,96], "f": 1, "t": 216, "d": [11,248], "a": 1 }, + { "px": [144,32], "src": [48,144], "f": 0, "t": 327, "d": [76,41], "a": 1 }, + { "px": [96,64], "src": [48,144], "f": 0, "t": 327, "d": [76,70], "a": 1 }, + { "px": [80,80], "src": [48,144], "f": 0, "t": 327, "d": [76,85], "a": 1 }, + { "px": [64,96], "src": [48,144], "f": 0, "t": 327, "d": [76,100], "a": 1 }, + { "px": [176,112], "src": [48,144], "f": 1, "t": 327, "d": [76,123], "a": 1 }, + { "px": [192,128], "src": [48,144], "f": 1, "t": 327, "d": [76,140], "a": 1 }, + { "px": [48,176], "src": [48,144], "f": 0, "t": 327, "d": [76,179], "a": 1 }, + { "px": [208,176], "src": [48,144], "f": 1, "t": 327, "d": [76,189], "a": 1 }, + { "px": [224,192], "src": [48,144], "f": 1, "t": 327, "d": [76,206], "a": 1 }, + { "px": [192,96], "src": [64,144], "f": 1, "t": 328, "d": [14,108], "a": 1 }, + { "px": [176,112], "src": [64,144], "f": 1, "t": 328, "d": [14,123], "a": 1 }, + { "px": [48,240], "src": [64,144], "f": 0, "t": 328, "d": [14,243], "a": 1 }, + { "px": [128,256], "src": [64,144], "f": 0, "t": 328, "d": [14,264], "a": 1 }, + { "px": [224,256], "src": [64,144], "f": 1, "t": 328, "d": [14,270], "a": 1 }, + { "px": [80,176], "src": [0,224], "f": 0, "t": 504, "d": [28,181], "a": 1 }, + { "px": [96,176], "src": [0,224], "f": 0, "t": 504, "d": [28,182], "a": 1 }, + { "px": [112,176], "src": [0,224], "f": 0, "t": 504, "d": [28,183], "a": 1 }, + { "px": [128,176], "src": [0,224], "f": 0, "t": 504, "d": [28,184], "a": 1 }, + { "px": [144,176], "src": [0,224], "f": 0, "t": 504, "d": [28,185], "a": 1 }, + { "px": [80,192], "src": [0,224], "f": 0, "t": 504, "d": [28,197], "a": 1 }, + { "px": [96,192], "src": [0,224], "f": 0, "t": 504, "d": [28,198], "a": 1 }, + { "px": [112,192], "src": [0,224], "f": 0, "t": 504, "d": [28,199], "a": 1 }, + { "px": [128,192], "src": [0,224], "f": 0, "t": 504, "d": [28,200], "a": 1 }, + { "px": [144,192], "src": [0,224], "f": 0, "t": 504, "d": [28,201], "a": 1 }, + { "px": [192,192], "src": [0,224], "f": 0, "t": 504, "d": [28,204], "a": 1 }, + { "px": [96,208], "src": [0,224], "f": 0, "t": 504, "d": [28,214], "a": 1 }, + { "px": [128,208], "src": [0,224], "f": 0, "t": 504, "d": [28,216], "a": 1 }, + { "px": [176,208], "src": [0,224], "f": 0, "t": 504, "d": [28,219], "a": 1 }, + { "px": [192,208], "src": [0,224], "f": 0, "t": 504, "d": [28,220], "a": 1 }, + { "px": [208,208], "src": [0,224], "f": 0, "t": 504, "d": [28,221], "a": 1 }, + { "px": [176,224], "src": [0,224], "f": 0, "t": 504, "d": [28,235], "a": 1 }, + { "px": [192,224], "src": [0,224], "f": 0, "t": 504, "d": [28,236], "a": 1 }, + { "px": [208,224], "src": [0,224], "f": 0, "t": 504, "d": [28,237], "a": 1 }, + { "px": [176,240], "src": [0,224], "f": 0, "t": 504, "d": [28,251], "a": 1 }, + { "px": [192,240], "src": [0,224], "f": 0, "t": 504, "d": [28,252], "a": 1 }, + { "px": [160,176], "src": [32,240], "f": 0, "t": 542, "d": [74,186], "a": 1 }, + { "px": [176,176], "src": [16,224], "f": 0, "t": 505, "d": [74,187], "a": 1 }, + { "px": [64,192], "src": [32,224], "f": 0, "t": 506, "d": [74,196], "a": 1 }, + { "px": [160,192], "src": [32,224], "f": 0, "t": 506, "d": [74,202], "a": 1 }, + { "px": [176,192], "src": [16,224], "f": 0, "t": 505, "d": [74,203], "a": 1 }, + { "px": [64,208], "src": [32,224], "f": 0, "t": 506, "d": [74,212], "a": 1 }, + { "px": [80,208], "src": [16,240], "f": 0, "t": 541, "d": [74,213], "a": 1 }, + { "px": [112,208], "src": [32,224], "f": 0, "t": 506, "d": [74,215], "a": 1 }, + { "px": [144,208], "src": [16,224], "f": 0, "t": 505, "d": [74,217], "a": 1 }, + { "px": [160,208], "src": [32,224], "f": 0, "t": 506, "d": [74,218], "a": 1 }, + { "px": [64,224], "src": [32,240], "f": 0, "t": 542, "d": [74,228], "a": 1 }, + { "px": [80,224], "src": [32,240], "f": 0, "t": 542, "d": [74,229], "a": 1 }, + { "px": [96,224], "src": [16,224], "f": 0, "t": 505, "d": [74,230], "a": 1 }, + { "px": [112,224], "src": [32,224], "f": 0, "t": 506, "d": [74,231], "a": 1 }, + { "px": [128,224], "src": [16,224], "f": 0, "t": 505, "d": [74,232], "a": 1 }, + { "px": [144,224], "src": [32,240], "f": 0, "t": 542, "d": [74,233], "a": 1 }, + { "px": [160,224], "src": [32,224], "f": 0, "t": 506, "d": [74,234], "a": 1 }, + { "px": [144,240], "src": [16,240], "f": 0, "t": 541, "d": [74,249], "a": 1 }, + { "px": [160,240], "src": [16,240], "f": 0, "t": 541, "d": [74,250], "a": 1 }, + { "px": [208,240], "src": [16,240], "f": 0, "t": 541, "d": [74,253], "a": 1 }, + { "px": [80,161], "src": [32,208], "f": 0, "t": 470, "d": [21,165], "a": 1 }, + { "px": [96,160], "src": [0,208], "f": 0, "t": 468, "d": [21,166], "a": 1 }, + { "px": [112,161], "src": [0,208], "f": 0, "t": 468, "d": [21,167], "a": 1 }, + { "px": [128,160], "src": [16,208], "f": 0, "t": 469, "d": [21,168], "a": 1 }, + { "px": [144,160], "src": [0,208], "f": 0, "t": 468, "d": [21,169], "a": 1 }, + { "px": [160,161], "src": [32,208], "f": 0, "t": 470, "d": [21,170], "a": 1 }, + { "px": [176,161], "src": [16,208], "f": 0, "t": 469, "d": [21,171], "a": 1 }, + { "px": [64,224], "src": [192,48], "f": 0, "t": 120, "d": [111,228], "a": 1 }, + { "px": [80,224], "src": [192,48], "f": 0, "t": 120, "d": [111,229], "a": 1 }, + { "px": [128,224], "src": [208,48], "f": 0, "t": 121, "d": [111,232], "a": 1 }, + { "px": [144,240], "src": [192,48], "f": 0, "t": 120, "d": [111,249], "a": 1 }, + { "px": [160,240], "src": [176,48], "f": 0, "t": 119, "d": [111,250], "a": 1 }, + { "px": [192,240], "src": [192,48], "f": 0, "t": 120, "d": [111,252], "a": 1 }, + { "px": [208,240], "src": [160,48], "f": 0, "t": 118, "d": [111,253], "a": 1 }, + { "px": [209,208], "src": [160,48], "f": 2, "t": 118, "d": [99,221], "a": 1 }, + { "px": [64,224], "src": [208,48], "f": 0, "t": 121, "d": [99,228], "a": 1 }, + { "px": [82,224], "src": [176,48], "f": 0, "t": 119, "d": [99,229], "a": 1 }, + { "px": [129,225], "src": [192,48], "f": 0, "t": 120, "d": [99,232], "a": 1 }, + { "px": [143,241], "src": [176,48], "f": 0, "t": 119, "d": [99,249], "a": 1 }, + { "px": [159,240], "src": [176,48], "f": 0, "t": 119, "d": [99,250], "a": 1 }, + { "px": [174,241], "src": [160,48], "f": 0, "t": 118, "d": [99,251], "a": 1 }, + { "px": [160,48], "src": [80,128], "f": 0, "t": 293, "d": [95,58], "a": 1 }, + { "px": [112,80], "src": [80,112], "f": 0, "t": 257, "d": [95,87], "a": 1 }, + { "px": [96,96], "src": [80,128], "f": 0, "t": 293, "d": [95,102], "a": 1 }, + { "px": [80,112], "src": [80,128], "f": 0, "t": 293, "d": [95,117], "a": 1 }, + { "px": [160,128], "src": [80,112], "f": 1, "t": 257, "d": [95,138], "a": 1 }, + { "px": [176,144], "src": [80,128], "f": 1, "t": 293, "d": [95,155], "a": 1 }, + { "px": [64,192], "src": [80,128], "f": 0, "t": 293, "d": [95,196], "a": 1 }, + { "px": [192,192], "src": [80,128], "f": 1, "t": 293, "d": [95,204], "a": 1 }, + { "px": [208,208], "src": [80,112], "f": 1, "t": 257, "d": [95,221], "a": 1 }, + { "px": [176,80], "src": [80,144], "f": 1, "t": 329, "d": [96,91], "a": 1 }, + { "px": [160,96], "src": [80,144], "f": 1, "t": 329, "d": [96,106], "a": 1 }, + { "px": [64,224], "src": [80,144], "f": 0, "t": 329, "d": [96,228], "a": 1 }, + { "px": [144,240], "src": [80,160], "f": 0, "t": 365, "d": [96,249], "a": 1 }, + { "px": [208,240], "src": [80,160], "f": 1, "t": 365, "d": [96,253], "a": 1 }, + { "px": [192,64], "src": [32,80], "f": 0, "t": 182, "d": [97,76], "a": 1 }, + { "px": [208,66], "src": [16,80], "f": 0, "t": 181, "d": [97,77], "a": 1 }, + { "px": [224,65], "src": [32,80], "f": 0, "t": 182, "d": [97,78], "a": 1 }, + { "px": [240,64], "src": [16,80], "f": 0, "t": 181, "d": [97,79], "a": 1 }, + { "px": [176,81], "src": [32,80], "f": 0, "t": 182, "d": [97,91], "a": 1 }, + { "px": [160,97], "src": [16,80], "f": 0, "t": 181, "d": [97,106], "a": 1 }, + { "px": [64,226], "src": [32,80], "f": 0, "t": 182, "d": [97,228], "a": 1 }, + { "px": [96,224], "src": [144,112], "f": 0, "t": 261, "d": [97,230], "a": 1 }, + { "px": [128,225], "src": [32,80], "f": 0, "t": 182, "d": [97,232], "a": 1 }, + { "px": [144,241], "src": [48,80], "f": 0, "t": 183, "d": [97,249], "a": 1 }, + { "px": [160,241], "src": [144,112], "f": 0, "t": 261, "d": [97,250], "a": 1 }, + { "px": [176,241], "src": [48,80], "f": 0, "t": 183, "d": [97,251], "a": 1 }, + { "px": [208,241], "src": [32,80], "f": 0, "t": 182, "d": [97,253], "a": 1 }, + { "px": [160,64], "src": [64,112], "f": 0, "t": 256, "d": [98,74], "a": 1 }, + { "px": [96,96], "src": [64,112], "f": 0, "t": 256, "d": [98,102], "a": 1 }, + { "px": [160,96], "src": [64,112], "f": 1, "t": 256, "d": [98,106], "a": 1 }, + { "px": [80,112], "src": [64,112], "f": 0, "t": 256, "d": [98,117], "a": 1 }, + { "px": [144,112], "src": [64,128], "f": 1, "t": 292, "d": [98,121], "a": 1 }, + { "px": [80,144], "src": [64,112], "f": 0, "t": 256, "d": [98,149], "a": 1 }, + { "px": [176,144], "src": [64,112], "f": 1, "t": 256, "d": [98,155], "a": 1 }, + { "px": [80,160], "src": [64,128], "f": 0, "t": 292, "d": [98,165], "a": 1 }, + { "px": [176,176], "src": [64,128], "f": 1, "t": 292, "d": [98,187], "a": 1 }, + { "px": [64,192], "src": [64,128], "f": 0, "t": 292, "d": [98,196], "a": 1 }, + { "px": [192,192], "src": [64,112], "f": 1, "t": 256, "d": [98,204], "a": 1 }, + { "px": [208,208], "src": [64,128], "f": 1, "t": 292, "d": [98,221], "a": 1 }, + { "px": [64,224], "src": [64,128], "f": 0, "t": 292, "d": [98,228], "a": 1 }, + { "px": [208,224], "src": [64,112], "f": 1, "t": 256, "d": [98,237], "a": 1 }, + { "px": [144,240], "src": [64,112], "f": 0, "t": 256, "d": [98,249], "a": 1 }, + { "px": [208,240], "src": [64,112], "f": 1, "t": 256, "d": [98,253], "a": 1 }, + { "px": [176,48], "src": [128,80], "f": 0, "t": 188, "d": [93,59], "a": 1 }, + { "px": [208,48], "src": [128,80], "f": 0, "t": 188, "d": [93,61], "a": 1 }, + { "px": [144,80], "src": [128,80], "f": 0, "t": 188, "d": [93,89], "a": 1 }, + { "px": [160,48], "src": [128,96], "f": 0, "t": 224, "d": [101,58], "a": 1 }, + { "px": [192,48], "src": [112,96], "f": 0, "t": 223, "d": [101,60], "a": 1 }, + { "px": [208,48], "src": [128,96], "f": 0, "t": 224, "d": [101,61], "a": 1 }, + { "px": [240,48], "src": [112,96], "f": 0, "t": 223, "d": [101,63], "a": 1 }, + { "px": [112,80], "src": [128,96], "f": 0, "t": 224, "d": [101,87], "a": 1 }, + { "px": [128,80], "src": [128,96], "f": 0, "t": 224, "d": [101,88], "a": 1 }, + { "px": [144,80], "src": [128,96], "f": 0, "t": 224, "d": [101,89], "a": 1 }, + { "px": [96,96], "src": [128,96], "f": 0, "t": 224, "d": [101,102], "a": 1 }, + { "px": [80,112], "src": [128,96], "f": 0, "t": 224, "d": [101,117], "a": 1 }, + { "px": [160,128], "src": [112,96], "f": 0, "t": 223, "d": [101,138], "a": 1 }, + { "px": [176,144], "src": [112,96], "f": 0, "t": 223, "d": [101,155], "a": 1 }, + { "px": [64,192], "src": [128,96], "f": 0, "t": 224, "d": [101,196], "a": 1 }, + { "px": [192,192], "src": [128,96], "f": 0, "t": 224, "d": [101,204], "a": 1 }, + { "px": [208,208], "src": [112,96], "f": 0, "t": 223, "d": [101,221], "a": 1 }, + { "px": [16,0], "src": [176,208], "f": 0, "t": 479, "d": [104,1], "a": 1 }, + { "px": [32,0], "src": [208,208], "f": 0, "t": 481, "d": [104,2], "a": 1 }, + { "px": [48,0], "src": [192,208], "f": 0, "t": 480, "d": [104,3], "a": 1 }, + { "px": [64,0], "src": [208,208], "f": 0, "t": 481, "d": [104,4], "a": 1 }, + { "px": [80,0], "src": [176,208], "f": 0, "t": 479, "d": [104,5], "a": 1 }, + { "px": [112,0], "src": [192,208], "f": 0, "t": 480, "d": [104,7], "a": 1 }, + { "px": [192,0], "src": [192,208], "f": 0, "t": 480, "d": [104,12], "a": 1 }, + { "px": [48,16], "src": [192,208], "f": 0, "t": 480, "d": [104,19], "a": 1 }, + { "px": [64,16], "src": [208,208], "f": 0, "t": 481, "d": [104,20], "a": 1 }, + { "px": [128,16], "src": [192,208], "f": 0, "t": 480, "d": [104,24], "a": 1 }, + { "px": [144,16], "src": [192,208], "f": 0, "t": 480, "d": [104,25], "a": 1 }, + { "px": [0,32], "src": [192,208], "f": 0, "t": 480, "d": [104,32], "a": 1 }, + { "px": [16,32], "src": [208,208], "f": 0, "t": 481, "d": [104,33], "a": 1 }, + { "px": [32,32], "src": [176,208], "f": 0, "t": 479, "d": [104,34], "a": 1 }, + { "px": [48,32], "src": [208,208], "f": 0, "t": 481, "d": [104,35], "a": 1 }, + { "px": [64,32], "src": [176,208], "f": 0, "t": 479, "d": [104,36], "a": 1 }, + { "px": [80,32], "src": [208,208], "f": 0, "t": 481, "d": [104,37], "a": 1 }, + { "px": [112,32], "src": [176,208], "f": 0, "t": 479, "d": [104,39], "a": 1 }, + { "px": [0,48], "src": [176,208], "f": 0, "t": 479, "d": [104,48], "a": 1 }, + { "px": [16,48], "src": [176,208], "f": 0, "t": 479, "d": [104,49], "a": 1 }, + { "px": [32,48], "src": [208,208], "f": 0, "t": 481, "d": [104,50], "a": 1 }, + { "px": [80,48], "src": [192,208], "f": 0, "t": 480, "d": [104,53], "a": 1 }, + { "px": [96,48], "src": [176,208], "f": 0, "t": 479, "d": [104,54], "a": 1 }, + { "px": [0,64], "src": [176,208], "f": 0, "t": 479, "d": [104,64], "a": 1 }, + { "px": [16,64], "src": [192,208], "f": 0, "t": 480, "d": [104,65], "a": 1 }, + { "px": [32,64], "src": [208,208], "f": 0, "t": 481, "d": [104,66], "a": 1 }, + { "px": [64,64], "src": [192,208], "f": 0, "t": 480, "d": [104,68], "a": 1 }, + { "px": [80,64], "src": [192,208], "f": 0, "t": 480, "d": [104,69], "a": 1 }, + { "px": [0,80], "src": [176,208], "f": 0, "t": 479, "d": [104,80], "a": 1 }, + { "px": [16,80], "src": [192,208], "f": 0, "t": 480, "d": [104,81], "a": 1 }, + { "px": [32,80], "src": [208,208], "f": 0, "t": 481, "d": [104,82], "a": 1 }, + { "px": [48,80], "src": [176,208], "f": 0, "t": 479, "d": [104,83], "a": 1 }, + { "px": [64,80], "src": [192,208], "f": 0, "t": 480, "d": [104,84], "a": 1 }, + { "px": [32,96], "src": [208,208], "f": 0, "t": 481, "d": [104,98], "a": 1 }, + { "px": [0,112], "src": [176,208], "f": 0, "t": 479, "d": [104,112], "a": 1 }, + { "px": [16,112], "src": [176,208], "f": 0, "t": 479, "d": [104,113], "a": 1 }, + { "px": [192,112], "src": [176,208], "f": 0, "t": 479, "d": [104,124], "a": 1 }, + { "px": [208,112], "src": [192,208], "f": 0, "t": 480, "d": [104,125], "a": 1 }, + { "px": [224,112], "src": [192,208], "f": 0, "t": 480, "d": [104,126], "a": 1 }, + { "px": [240,112], "src": [192,208], "f": 0, "t": 480, "d": [104,127], "a": 1 }, + { "px": [0,128], "src": [192,208], "f": 0, "t": 480, "d": [104,128], "a": 1 }, + { "px": [32,128], "src": [176,208], "f": 0, "t": 479, "d": [104,130], "a": 1 }, + { "px": [208,128], "src": [192,208], "f": 0, "t": 480, "d": [104,141], "a": 1 }, + { "px": [224,128], "src": [176,208], "f": 0, "t": 479, "d": [104,142], "a": 1 }, + { "px": [240,128], "src": [192,208], "f": 0, "t": 480, "d": [104,143], "a": 1 }, + { "px": [0,144], "src": [176,208], "f": 0, "t": 479, "d": [104,144], "a": 1 }, + { "px": [16,144], "src": [192,208], "f": 0, "t": 480, "d": [104,145], "a": 1 }, + { "px": [32,144], "src": [192,208], "f": 0, "t": 480, "d": [104,146], "a": 1 }, + { "px": [240,144], "src": [176,208], "f": 0, "t": 479, "d": [104,159], "a": 1 }, + { "px": [16,160], "src": [208,208], "f": 0, "t": 481, "d": [104,161], "a": 1 }, + { "px": [0,176], "src": [192,208], "f": 0, "t": 480, "d": [104,176], "a": 1 }, + { "px": [16,176], "src": [176,208], "f": 0, "t": 479, "d": [104,177], "a": 1 }, + { "px": [32,176], "src": [192,208], "f": 0, "t": 480, "d": [104,178], "a": 1 }, + { "px": [240,176], "src": [208,208], "f": 0, "t": 481, "d": [104,191], "a": 1 }, + { "px": [0,192], "src": [176,208], "f": 0, "t": 479, "d": [104,192], "a": 1 }, + { "px": [16,192], "src": [208,208], "f": 0, "t": 481, "d": [104,193], "a": 1 }, + { "px": [240,192], "src": [192,208], "f": 0, "t": 480, "d": [104,207], "a": 1 }, + { "px": [0,208], "src": [192,208], "f": 0, "t": 480, "d": [104,208], "a": 1 }, + { "px": [16,208], "src": [192,208], "f": 0, "t": 480, "d": [104,209], "a": 1 }, + { "px": [16,224], "src": [192,208], "f": 0, "t": 480, "d": [104,225], "a": 1 }, + { "px": [0,240], "src": [176,208], "f": 0, "t": 479, "d": [104,240], "a": 1 }, + { "px": [16,240], "src": [192,208], "f": 0, "t": 480, "d": [104,241], "a": 1 }, + { "px": [32,240], "src": [192,208], "f": 0, "t": 480, "d": [104,242], "a": 1 }, + { "px": [16,256], "src": [208,208], "f": 0, "t": 481, "d": [104,257], "a": 1 }, + { "px": [32,256], "src": [208,208], "f": 0, "t": 481, "d": [104,258], "a": 1 }, + { "px": [48,256], "src": [208,208], "f": 0, "t": 481, "d": [104,259], "a": 1 }, + { "px": [240,256], "src": [192,208], "f": 0, "t": 480, "d": [104,271], "a": 1 }, + { "px": [0,272], "src": [208,208], "f": 0, "t": 481, "d": [104,272], "a": 1 }, + { "px": [32,272], "src": [208,208], "f": 0, "t": 481, "d": [104,274], "a": 1 }, + { "px": [48,272], "src": [208,208], "f": 0, "t": 481, "d": [104,275], "a": 1 }, + { "px": [80,272], "src": [192,208], "f": 0, "t": 480, "d": [104,277], "a": 1 }, + { "px": [96,272], "src": [192,208], "f": 0, "t": 480, "d": [104,278], "a": 1 }, + { "px": [112,272], "src": [176,208], "f": 0, "t": 479, "d": [104,279], "a": 1 }, + { "px": [224,272], "src": [192,208], "f": 0, "t": 480, "d": [104,286], "a": 1 }, + { "px": [240,272], "src": [176,208], "f": 0, "t": 479, "d": [104,287], "a": 1 }, + { "px": [0,0], "src": [272,176], "f": 0, "t": 413, "d": [108,0], "a": 1 }, + { "px": [16,0], "src": [272,176], "f": 0, "t": 413, "d": [108,1], "a": 1 }, + { "px": [32,0], "src": [272,176], "f": 0, "t": 413, "d": [108,2], "a": 1 }, + { "px": [48,0], "src": [272,176], "f": 0, "t": 413, "d": [108,3], "a": 1 }, + { "px": [64,0], "src": [272,176], "f": 0, "t": 413, "d": [108,4], "a": 1 }, + { "px": [80,0], "src": [272,176], "f": 0, "t": 413, "d": [108,5], "a": 1 }, + { "px": [96,0], "src": [272,176], "f": 0, "t": 413, "d": [108,6], "a": 1 }, + { "px": [112,0], "src": [272,176], "f": 0, "t": 413, "d": [108,7], "a": 1 }, + { "px": [128,0], "src": [272,176], "f": 0, "t": 413, "d": [108,8], "a": 1 }, + { "px": [144,0], "src": [272,176], "f": 0, "t": 413, "d": [108,9], "a": 1 }, + { "px": [160,0], "src": [272,176], "f": 0, "t": 413, "d": [108,10], "a": 1 }, + { "px": [176,0], "src": [272,176], "f": 0, "t": 413, "d": [108,11], "a": 1 }, + { "px": [192,0], "src": [272,176], "f": 0, "t": 413, "d": [108,12], "a": 1 }, + { "px": [208,0], "src": [272,176], "f": 0, "t": 413, "d": [108,13], "a": 1 }, + { "px": [224,0], "src": [272,176], "f": 0, "t": 413, "d": [108,14], "a": 1 }, + { "px": [240,0], "src": [272,176], "f": 0, "t": 413, "d": [108,15], "a": 1 }, + { "px": [0,16], "src": [272,176], "f": 0, "t": 413, "d": [108,16], "a": 1 }, + { "px": [16,16], "src": [272,176], "f": 0, "t": 413, "d": [108,17], "a": 1 }, + { "px": [32,16], "src": [272,176], "f": 0, "t": 413, "d": [108,18], "a": 1 }, + { "px": [48,16], "src": [272,176], "f": 0, "t": 413, "d": [108,19], "a": 1 }, + { "px": [64,16], "src": [272,176], "f": 0, "t": 413, "d": [108,20], "a": 1 }, + { "px": [80,16], "src": [272,176], "f": 0, "t": 413, "d": [108,21], "a": 1 }, + { "px": [96,16], "src": [272,176], "f": 0, "t": 413, "d": [108,22], "a": 1 }, + { "px": [112,16], "src": [272,176], "f": 0, "t": 413, "d": [108,23], "a": 1 }, + { "px": [128,16], "src": [272,176], "f": 0, "t": 413, "d": [108,24], "a": 1 }, + { "px": [144,16], "src": [272,176], "f": 0, "t": 413, "d": [108,25], "a": 1 }, + { "px": [160,16], "src": [272,176], "f": 0, "t": 413, "d": [108,26], "a": 1 }, + { "px": [176,16], "src": [272,176], "f": 0, "t": 413, "d": [108,27], "a": 1 }, + { "px": [192,16], "src": [272,176], "f": 0, "t": 413, "d": [108,28], "a": 1 }, + { "px": [208,16], "src": [272,176], "f": 0, "t": 413, "d": [108,29], "a": 1 }, + { "px": [224,16], "src": [272,176], "f": 0, "t": 413, "d": [108,30], "a": 1 }, + { "px": [240,16], "src": [272,176], "f": 0, "t": 413, "d": [108,31], "a": 1 }, + { "px": [0,32], "src": [272,176], "f": 0, "t": 413, "d": [108,32], "a": 1 }, + { "px": [16,32], "src": [272,176], "f": 0, "t": 413, "d": [108,33], "a": 1 }, + { "px": [32,32], "src": [272,176], "f": 0, "t": 413, "d": [108,34], "a": 1 }, + { "px": [48,32], "src": [272,176], "f": 0, "t": 413, "d": [108,35], "a": 1 }, + { "px": [64,32], "src": [272,176], "f": 0, "t": 413, "d": [108,36], "a": 1 }, + { "px": [80,32], "src": [272,176], "f": 0, "t": 413, "d": [108,37], "a": 1 }, + { "px": [96,32], "src": [272,176], "f": 0, "t": 413, "d": [108,38], "a": 1 }, + { "px": [112,32], "src": [272,176], "f": 0, "t": 413, "d": [108,39], "a": 1 }, + { "px": [128,32], "src": [272,176], "f": 0, "t": 413, "d": [108,40], "a": 1 }, + { "px": [0,48], "src": [272,176], "f": 0, "t": 413, "d": [108,48], "a": 1 }, + { "px": [16,48], "src": [272,176], "f": 0, "t": 413, "d": [108,49], "a": 1 }, + { "px": [32,48], "src": [272,176], "f": 0, "t": 413, "d": [108,50], "a": 1 }, + { "px": [48,48], "src": [272,176], "f": 0, "t": 413, "d": [108,51], "a": 1 }, + { "px": [64,48], "src": [272,176], "f": 0, "t": 413, "d": [108,52], "a": 1 }, + { "px": [80,48], "src": [272,176], "f": 0, "t": 413, "d": [108,53], "a": 1 }, + { "px": [96,48], "src": [272,176], "f": 0, "t": 413, "d": [108,54], "a": 1 }, + { "px": [112,48], "src": [272,176], "f": 0, "t": 413, "d": [108,55], "a": 1 }, + { "px": [128,48], "src": [272,176], "f": 0, "t": 413, "d": [108,56], "a": 1 }, + { "px": [0,64], "src": [272,176], "f": 0, "t": 413, "d": [108,64], "a": 1 }, + { "px": [16,64], "src": [272,176], "f": 0, "t": 413, "d": [108,65], "a": 1 }, + { "px": [32,64], "src": [272,176], "f": 0, "t": 413, "d": [108,66], "a": 1 }, + { "px": [48,64], "src": [272,176], "f": 0, "t": 413, "d": [108,67], "a": 1 }, + { "px": [64,64], "src": [272,176], "f": 0, "t": 413, "d": [108,68], "a": 1 }, + { "px": [80,64], "src": [272,176], "f": 0, "t": 413, "d": [108,69], "a": 1 }, + { "px": [0,80], "src": [272,176], "f": 0, "t": 413, "d": [108,80], "a": 1 }, + { "px": [16,80], "src": [272,176], "f": 0, "t": 413, "d": [108,81], "a": 1 }, + { "px": [32,80], "src": [272,176], "f": 0, "t": 413, "d": [108,82], "a": 1 }, + { "px": [48,80], "src": [272,176], "f": 0, "t": 413, "d": [108,83], "a": 1 }, + { "px": [64,80], "src": [272,176], "f": 0, "t": 413, "d": [108,84], "a": 1 }, + { "px": [0,96], "src": [272,176], "f": 0, "t": 413, "d": [108,96], "a": 1 }, + { "px": [16,96], "src": [272,176], "f": 0, "t": 413, "d": [108,97], "a": 1 }, + { "px": [32,96], "src": [272,176], "f": 0, "t": 413, "d": [108,98], "a": 1 }, + { "px": [48,96], "src": [272,176], "f": 0, "t": 413, "d": [108,99], "a": 1 }, + { "px": [208,96], "src": [272,176], "f": 0, "t": 413, "d": [108,109], "a": 1 }, + { "px": [224,96], "src": [272,176], "f": 0, "t": 413, "d": [108,110], "a": 1 }, + { "px": [240,96], "src": [272,176], "f": 0, "t": 413, "d": [108,111], "a": 1 }, + { "px": [0,112], "src": [272,176], "f": 0, "t": 413, "d": [108,112], "a": 1 }, + { "px": [16,112], "src": [272,176], "f": 0, "t": 413, "d": [108,113], "a": 1 }, + { "px": [32,112], "src": [272,176], "f": 0, "t": 413, "d": [108,114], "a": 1 }, + { "px": [48,112], "src": [272,176], "f": 0, "t": 413, "d": [108,115], "a": 1 }, + { "px": [192,112], "src": [272,176], "f": 0, "t": 413, "d": [108,124], "a": 1 }, + { "px": [208,112], "src": [272,176], "f": 0, "t": 413, "d": [108,125], "a": 1 }, + { "px": [224,112], "src": [272,176], "f": 0, "t": 413, "d": [108,126], "a": 1 }, + { "px": [240,112], "src": [272,176], "f": 0, "t": 413, "d": [108,127], "a": 1 }, + { "px": [0,128], "src": [272,176], "f": 0, "t": 413, "d": [108,128], "a": 1 }, + { "px": [16,128], "src": [272,176], "f": 0, "t": 413, "d": [108,129], "a": 1 }, + { "px": [32,128], "src": [272,176], "f": 0, "t": 413, "d": [108,130], "a": 1 }, + { "px": [48,128], "src": [272,176], "f": 0, "t": 413, "d": [108,131], "a": 1 }, + { "px": [208,128], "src": [272,176], "f": 0, "t": 413, "d": [108,141], "a": 1 }, + { "px": [224,128], "src": [272,176], "f": 0, "t": 413, "d": [108,142], "a": 1 }, + { "px": [240,128], "src": [272,176], "f": 0, "t": 413, "d": [108,143], "a": 1 }, + { "px": [0,144], "src": [272,176], "f": 0, "t": 413, "d": [108,144], "a": 1 }, + { "px": [16,144], "src": [272,176], "f": 0, "t": 413, "d": [108,145], "a": 1 }, + { "px": [32,144], "src": [272,176], "f": 0, "t": 413, "d": [108,146], "a": 1 }, + { "px": [48,144], "src": [272,176], "f": 0, "t": 413, "d": [108,147], "a": 1 }, + { "px": [208,144], "src": [272,176], "f": 0, "t": 413, "d": [108,157], "a": 1 }, + { "px": [224,144], "src": [272,176], "f": 0, "t": 413, "d": [108,158], "a": 1 }, + { "px": [240,144], "src": [272,176], "f": 0, "t": 413, "d": [108,159], "a": 1 }, + { "px": [0,160], "src": [272,176], "f": 0, "t": 413, "d": [108,160], "a": 1 }, + { "px": [16,160], "src": [272,176], "f": 0, "t": 413, "d": [108,161], "a": 1 }, + { "px": [32,160], "src": [272,176], "f": 0, "t": 413, "d": [108,162], "a": 1 }, + { "px": [48,160], "src": [272,176], "f": 0, "t": 413, "d": [108,163], "a": 1 }, + { "px": [208,160], "src": [272,176], "f": 0, "t": 413, "d": [108,173], "a": 1 }, + { "px": [224,160], "src": [272,176], "f": 0, "t": 413, "d": [108,174], "a": 1 }, + { "px": [240,160], "src": [272,176], "f": 0, "t": 413, "d": [108,175], "a": 1 }, + { "px": [0,176], "src": [272,176], "f": 0, "t": 413, "d": [108,176], "a": 1 }, + { "px": [16,176], "src": [272,176], "f": 0, "t": 413, "d": [108,177], "a": 1 }, + { "px": [32,176], "src": [272,176], "f": 0, "t": 413, "d": [108,178], "a": 1 }, + { "px": [224,176], "src": [272,176], "f": 0, "t": 413, "d": [108,190], "a": 1 }, + { "px": [240,176], "src": [272,176], "f": 0, "t": 413, "d": [108,191], "a": 1 }, + { "px": [0,192], "src": [272,176], "f": 0, "t": 413, "d": [108,192], "a": 1 }, + { "px": [16,192], "src": [272,176], "f": 0, "t": 413, "d": [108,193], "a": 1 }, + { "px": [32,192], "src": [272,176], "f": 0, "t": 413, "d": [108,194], "a": 1 }, + { "px": [240,192], "src": [272,176], "f": 0, "t": 413, "d": [108,207], "a": 1 }, + { "px": [0,208], "src": [272,176], "f": 0, "t": 413, "d": [108,208], "a": 1 }, + { "px": [16,208], "src": [272,176], "f": 0, "t": 413, "d": [108,209], "a": 1 }, + { "px": [32,208], "src": [272,176], "f": 0, "t": 413, "d": [108,210], "a": 1 }, + { "px": [240,208], "src": [272,176], "f": 0, "t": 413, "d": [108,223], "a": 1 }, + { "px": [0,224], "src": [272,176], "f": 0, "t": 413, "d": [108,224], "a": 1 }, + { "px": [16,224], "src": [272,176], "f": 0, "t": 413, "d": [108,225], "a": 1 }, + { "px": [32,224], "src": [272,176], "f": 0, "t": 413, "d": [108,226], "a": 1 }, + { "px": [240,224], "src": [272,176], "f": 0, "t": 413, "d": [108,239], "a": 1 }, + { "px": [0,240], "src": [272,176], "f": 0, "t": 413, "d": [108,240], "a": 1 }, + { "px": [16,240], "src": [272,176], "f": 0, "t": 413, "d": [108,241], "a": 1 }, + { "px": [32,240], "src": [272,176], "f": 0, "t": 413, "d": [108,242], "a": 1 }, + { "px": [240,240], "src": [272,176], "f": 0, "t": 413, "d": [108,255], "a": 1 }, + { "px": [0,256], "src": [272,176], "f": 0, "t": 413, "d": [108,256], "a": 1 }, + { "px": [16,256], "src": [272,176], "f": 0, "t": 413, "d": [108,257], "a": 1 }, + { "px": [32,256], "src": [272,176], "f": 0, "t": 413, "d": [108,258], "a": 1 }, + { "px": [48,256], "src": [272,176], "f": 0, "t": 413, "d": [108,259], "a": 1 }, + { "px": [64,256], "src": [272,176], "f": 0, "t": 413, "d": [108,260], "a": 1 }, + { "px": [80,256], "src": [272,176], "f": 0, "t": 413, "d": [108,261], "a": 1 }, + { "px": [96,256], "src": [272,176], "f": 0, "t": 413, "d": [108,262], "a": 1 }, + { "px": [112,256], "src": [272,176], "f": 0, "t": 413, "d": [108,263], "a": 1 }, + { "px": [240,256], "src": [272,176], "f": 0, "t": 413, "d": [108,271], "a": 1 }, + { "px": [0,272], "src": [272,176], "f": 0, "t": 413, "d": [108,272], "a": 1 }, + { "px": [16,272], "src": [272,176], "f": 0, "t": 413, "d": [108,273], "a": 1 }, + { "px": [32,272], "src": [272,176], "f": 0, "t": 413, "d": [108,274], "a": 1 }, + { "px": [48,272], "src": [272,176], "f": 0, "t": 413, "d": [108,275], "a": 1 }, + { "px": [64,272], "src": [272,176], "f": 0, "t": 413, "d": [108,276], "a": 1 }, + { "px": [80,272], "src": [272,176], "f": 0, "t": 413, "d": [108,277], "a": 1 }, + { "px": [96,272], "src": [272,176], "f": 0, "t": 413, "d": [108,278], "a": 1 }, + { "px": [112,272], "src": [272,176], "f": 0, "t": 413, "d": [108,279], "a": 1 }, + { "px": [128,272], "src": [272,176], "f": 0, "t": 413, "d": [108,280], "a": 1 }, + { "px": [144,272], "src": [272,176], "f": 0, "t": 413, "d": [108,281], "a": 1 }, + { "px": [160,272], "src": [272,176], "f": 0, "t": 413, "d": [108,282], "a": 1 }, + { "px": [176,272], "src": [272,176], "f": 0, "t": 413, "d": [108,283], "a": 1 }, + { "px": [192,272], "src": [272,176], "f": 0, "t": 413, "d": [108,284], "a": 1 }, + { "px": [208,272], "src": [272,176], "f": 0, "t": 413, "d": [108,285], "a": 1 }, + { "px": [224,272], "src": [272,176], "f": 0, "t": 413, "d": [108,286], "a": 1 }, + { "px": [240,272], "src": [272,176], "f": 0, "t": 413, "d": [108,287], "a": 1 }, + { "px": [144,32], "src": [272,192], "f": 0, "t": 449, "d": [109,41], "a": 1 }, + { "px": [96,64], "src": [272,192], "f": 0, "t": 449, "d": [109,70], "a": 1 }, + { "px": [80,80], "src": [272,192], "f": 0, "t": 449, "d": [109,85], "a": 1 }, + { "px": [64,96], "src": [272,192], "f": 0, "t": 449, "d": [109,100], "a": 1 }, + { "px": [192,96], "src": [272,192], "f": 3, "t": 449, "d": [109,108], "a": 1 }, + { "px": [176,112], "src": [272,192], "f": 1, "t": 449, "d": [109,123], "a": 1 }, + { "px": [176,112], "src": [272,192], "f": 3, "t": 449, "d": [109,123], "a": 1 }, + { "px": [192,128], "src": [272,192], "f": 1, "t": 449, "d": [109,140], "a": 1 }, + { "px": [48,176], "src": [272,192], "f": 0, "t": 449, "d": [109,179], "a": 1 }, + { "px": [208,176], "src": [272,192], "f": 1, "t": 449, "d": [109,189], "a": 1 }, + { "px": [224,192], "src": [272,192], "f": 1, "t": 449, "d": [109,206], "a": 1 }, + { "px": [48,240], "src": [272,192], "f": 2, "t": 449, "d": [109,243], "a": 1 }, + { "px": [128,256], "src": [272,192], "f": 2, "t": 449, "d": [109,264], "a": 1 }, + { "px": [224,256], "src": [272,192], "f": 3, "t": 449, "d": [109,270], "a": 1 } + ], + "seed": 2084235, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 18, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35acb60-66b0-11ec-9cd7-6330ee1b8a00", + "levelId": 30, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [208,48], "src": [64,192], "f": 0, "t": 436, "d": [51,61], "a": 1 }, + { "px": [224,48], "src": [80,192], "f": 0, "t": 437, "d": [51,62], "a": 1 }, + { "px": [240,48], "src": [64,192], "f": 0, "t": 436, "d": [51,63], "a": 1 }, + { "px": [208,64], "src": [64,192], "f": 0, "t": 436, "d": [51,77], "a": 1 }, + { "px": [224,64], "src": [80,192], "f": 0, "t": 437, "d": [51,78], "a": 1 }, + { "px": [240,64], "src": [64,192], "f": 0, "t": 436, "d": [51,79], "a": 1 }, + { "px": [176,80], "src": [64,192], "f": 0, "t": 436, "d": [51,91], "a": 1 }, + { "px": [160,96], "src": [48,192], "f": 0, "t": 435, "d": [51,106], "a": 1 }, + { "px": [80,128], "src": [80,192], "f": 0, "t": 437, "d": [51,133], "a": 1 }, + { "px": [96,160], "src": [48,192], "f": 0, "t": 435, "d": [51,166], "a": 1 }, + { "px": [80,176], "src": [64,192], "f": 0, "t": 436, "d": [51,181], "a": 1 }, + { "px": [96,176], "src": [80,192], "f": 0, "t": 437, "d": [51,182], "a": 1 }, + { "px": [112,176], "src": [80,192], "f": 0, "t": 437, "d": [51,183], "a": 1 }, + { "px": [160,176], "src": [80,192], "f": 0, "t": 437, "d": [51,186], "a": 1 }, + { "px": [64,192], "src": [48,192], "f": 0, "t": 435, "d": [51,196], "a": 1 }, + { "px": [80,192], "src": [64,192], "f": 0, "t": 436, "d": [51,197], "a": 1 }, + { "px": [96,192], "src": [80,192], "f": 0, "t": 437, "d": [51,198], "a": 1 }, + { "px": [112,192], "src": [64,192], "f": 0, "t": 436, "d": [51,199], "a": 1 }, + { "px": [160,192], "src": [64,192], "f": 0, "t": 436, "d": [51,202], "a": 1 }, + { "px": [176,192], "src": [64,192], "f": 0, "t": 436, "d": [51,203], "a": 1 }, + { "px": [64,208], "src": [64,192], "f": 0, "t": 436, "d": [51,212], "a": 1 }, + { "px": [160,208], "src": [48,192], "f": 0, "t": 435, "d": [51,218], "a": 1 }, + { "px": [176,208], "src": [80,192], "f": 0, "t": 437, "d": [51,219], "a": 1 }, + { "px": [192,208], "src": [64,192], "f": 0, "t": 436, "d": [51,220], "a": 1 }, + { "px": [208,208], "src": [64,192], "f": 0, "t": 436, "d": [51,221], "a": 1 }, + { "px": [64,224], "src": [64,192], "f": 0, "t": 436, "d": [51,228], "a": 1 }, + { "px": [160,224], "src": [64,192], "f": 0, "t": 436, "d": [51,234], "a": 1 }, + { "px": [176,224], "src": [48,192], "f": 0, "t": 435, "d": [51,235], "a": 1 }, + { "px": [192,224], "src": [80,192], "f": 0, "t": 437, "d": [51,236], "a": 1 }, + { "px": [208,224], "src": [48,192], "f": 0, "t": 435, "d": [51,237], "a": 1 }, + { "px": [160,240], "src": [48,192], "f": 0, "t": 435, "d": [51,250], "a": 1 }, + { "px": [176,240], "src": [48,192], "f": 0, "t": 435, "d": [51,251], "a": 1 }, + { "px": [192,240], "src": [64,192], "f": 0, "t": 436, "d": [51,252], "a": 1 }, + { "px": [208,240], "src": [48,192], "f": 0, "t": 435, "d": [51,253], "a": 1 }, + { "px": [160,48], "src": [112,192], "f": 0, "t": 439, "d": [85,58], "a": 1 }, + { "px": [176,48], "src": [128,192], "f": 0, "t": 440, "d": [85,59], "a": 1 }, + { "px": [160,64], "src": [112,192], "f": 0, "t": 439, "d": [85,74], "a": 1 }, + { "px": [160,80], "src": [128,192], "f": 0, "t": 440, "d": [85,90], "a": 1 }, + { "px": [96,128], "src": [96,192], "f": 0, "t": 438, "d": [85,134], "a": 1 }, + { "px": [112,128], "src": [96,192], "f": 0, "t": 438, "d": [85,135], "a": 1 }, + { "px": [80,144], "src": [96,192], "f": 0, "t": 438, "d": [85,149], "a": 1 }, + { "px": [96,144], "src": [96,192], "f": 0, "t": 438, "d": [85,150], "a": 1 }, + { "px": [112,144], "src": [96,192], "f": 0, "t": 438, "d": [85,151], "a": 1 }, + { "px": [144,144], "src": [96,192], "f": 0, "t": 438, "d": [85,153], "a": 1 }, + { "px": [80,160], "src": [112,192], "f": 0, "t": 439, "d": [85,165], "a": 1 }, + { "px": [112,160], "src": [128,192], "f": 0, "t": 440, "d": [85,167], "a": 1 }, + { "px": [176,64], "src": [16,192], "f": 0, "t": 433, "d": [102,75], "a": 1 }, + { "px": [112,80], "src": [16,192], "f": 0, "t": 433, "d": [102,87], "a": 1 }, + { "px": [144,80], "src": [16,192], "f": 0, "t": 433, "d": [102,89], "a": 1 }, + { "px": [96,96], "src": [32,192], "f": 0, "t": 434, "d": [102,102], "a": 1 }, + { "px": [112,96], "src": [32,192], "f": 0, "t": 434, "d": [102,103], "a": 1 }, + { "px": [144,96], "src": [32,192], "f": 0, "t": 434, "d": [102,105], "a": 1 }, + { "px": [80,112], "src": [16,192], "f": 0, "t": 433, "d": [102,117], "a": 1 }, + { "px": [96,112], "src": [16,192], "f": 0, "t": 433, "d": [102,118], "a": 1 }, + { "px": [112,112], "src": [32,192], "f": 0, "t": 434, "d": [102,119], "a": 1 }, + { "px": [144,112], "src": [16,192], "f": 0, "t": 433, "d": [102,121], "a": 1 }, + { "px": [144,128], "src": [32,192], "f": 0, "t": 434, "d": [102,137], "a": 1 }, + { "px": [160,128], "src": [0,192], "f": 0, "t": 432, "d": [102,138], "a": 1 }, + { "px": [160,144], "src": [0,192], "f": 0, "t": 432, "d": [102,154], "a": 1 }, + { "px": [176,144], "src": [32,192], "f": 0, "t": 434, "d": [102,155], "a": 1 }, + { "px": [144,160], "src": [32,192], "f": 0, "t": 434, "d": [102,169], "a": 1 }, + { "px": [160,160], "src": [16,192], "f": 0, "t": 433, "d": [102,170], "a": 1 }, + { "px": [176,160], "src": [32,192], "f": 0, "t": 434, "d": [102,171], "a": 1 }, + { "px": [128,176], "src": [32,192], "f": 0, "t": 434, "d": [102,184], "a": 1 }, + { "px": [144,176], "src": [16,192], "f": 0, "t": 433, "d": [102,185], "a": 1 }, + { "px": [176,176], "src": [0,192], "f": 0, "t": 432, "d": [102,187], "a": 1 }, + { "px": [128,192], "src": [0,192], "f": 0, "t": 432, "d": [102,200], "a": 1 }, + { "px": [144,192], "src": [32,192], "f": 0, "t": 434, "d": [102,201], "a": 1 }, + { "px": [192,192], "src": [0,192], "f": 0, "t": 432, "d": [102,204], "a": 1 }, + { "px": [80,208], "src": [0,192], "f": 0, "t": 432, "d": [102,213], "a": 1 }, + { "px": [96,208], "src": [0,192], "f": 0, "t": 432, "d": [102,214], "a": 1 }, + { "px": [112,208], "src": [16,192], "f": 0, "t": 433, "d": [102,215], "a": 1 }, + { "px": [128,208], "src": [0,192], "f": 0, "t": 432, "d": [102,216], "a": 1 }, + { "px": [144,208], "src": [16,192], "f": 0, "t": 433, "d": [102,217], "a": 1 }, + { "px": [80,224], "src": [32,192], "f": 0, "t": 434, "d": [102,229], "a": 1 }, + { "px": [96,224], "src": [0,192], "f": 0, "t": 432, "d": [102,230], "a": 1 }, + { "px": [112,224], "src": [32,192], "f": 0, "t": 434, "d": [102,231], "a": 1 }, + { "px": [128,224], "src": [16,192], "f": 0, "t": 433, "d": [102,232], "a": 1 }, + { "px": [144,224], "src": [16,192], "f": 0, "t": 433, "d": [102,233], "a": 1 }, + { "px": [144,240], "src": [32,192], "f": 0, "t": 434, "d": [102,249], "a": 1 }, + { "px": [192,48], "src": [160,208], "f": 0, "t": 478, "d": [70,60], "a": 1 }, + { "px": [192,64], "src": [160,208], "f": 0, "t": 478, "d": [70,76], "a": 1 }, + { "px": [128,80], "src": [160,208], "f": 0, "t": 478, "d": [70,88], "a": 1 }, + { "px": [128,96], "src": [160,208], "f": 0, "t": 478, "d": [70,104], "a": 1 }, + { "px": [128,112], "src": [160,208], "f": 0, "t": 478, "d": [70,120], "a": 1 }, + { "px": [128,128], "src": [160,208], "f": 0, "t": 478, "d": [70,136], "a": 1 }, + { "px": [128,144], "src": [160,208], "f": 0, "t": 478, "d": [70,152], "a": 1 }, + { "px": [128,160], "src": [160,208], "f": 0, "t": 478, "d": [70,168], "a": 1 }, + { "px": [176,64], "src": [240,176], "f": 3, "t": 411, "d": [91,75], "a": 1 }, + { "px": [160,80], "src": [240,176], "f": 0, "t": 411, "d": [91,90], "a": 1 }, + { "px": [160,80], "src": [240,176], "f": 3, "t": 411, "d": [91,90], "a": 1 }, + { "px": [112,96], "src": [240,176], "f": 0, "t": 411, "d": [91,103], "a": 1 }, + { "px": [144,96], "src": [240,176], "f": 3, "t": 411, "d": [91,105], "a": 1 }, + { "px": [96,112], "src": [240,176], "f": 0, "t": 411, "d": [91,118], "a": 1 }, + { "px": [144,128], "src": [240,176], "f": 1, "t": 411, "d": [91,137], "a": 1 }, + { "px": [160,144], "src": [240,176], "f": 1, "t": 411, "d": [91,154], "a": 1 }, + { "px": [80,192], "src": [240,176], "f": 0, "t": 411, "d": [91,197], "a": 1 }, + { "px": [176,192], "src": [240,176], "f": 1, "t": 411, "d": [91,203], "a": 1 }, + { "px": [192,208], "src": [240,176], "f": 1, "t": 411, "d": [91,220], "a": 1 }, + { "px": [144,224], "src": [240,176], "f": 2, "t": 411, "d": [91,233], "a": 1 }, + { "px": [160,48], "src": [208,176], "f": 0, "t": 409, "d": [89,58], "a": 1 }, + { "px": [160,64], "src": [208,176], "f": 0, "t": 409, "d": [89,74], "a": 1 }, + { "px": [112,80], "src": [208,176], "f": 0, "t": 409, "d": [89,87], "a": 1 }, + { "px": [176,80], "src": [208,176], "f": 1, "t": 409, "d": [89,91], "a": 1 }, + { "px": [96,96], "src": [208,176], "f": 0, "t": 409, "d": [89,102], "a": 1 }, + { "px": [160,96], "src": [208,176], "f": 1, "t": 409, "d": [89,106], "a": 1 }, + { "px": [80,112], "src": [208,176], "f": 0, "t": 409, "d": [89,117], "a": 1 }, + { "px": [144,112], "src": [208,176], "f": 1, "t": 409, "d": [89,121], "a": 1 }, + { "px": [80,128], "src": [208,176], "f": 0, "t": 409, "d": [89,133], "a": 1 }, + { "px": [160,128], "src": [208,176], "f": 1, "t": 409, "d": [89,138], "a": 1 }, + { "px": [80,144], "src": [208,176], "f": 0, "t": 409, "d": [89,149], "a": 1 }, + { "px": [176,144], "src": [208,176], "f": 1, "t": 409, "d": [89,155], "a": 1 }, + { "px": [80,160], "src": [208,176], "f": 0, "t": 409, "d": [89,165], "a": 1 }, + { "px": [176,160], "src": [208,176], "f": 1, "t": 409, "d": [89,171], "a": 1 }, + { "px": [80,176], "src": [208,176], "f": 0, "t": 409, "d": [89,181], "a": 1 }, + { "px": [176,176], "src": [208,176], "f": 1, "t": 409, "d": [89,187], "a": 1 }, + { "px": [64,192], "src": [208,176], "f": 0, "t": 409, "d": [89,196], "a": 1 }, + { "px": [192,192], "src": [208,176], "f": 1, "t": 409, "d": [89,204], "a": 1 }, + { "px": [64,208], "src": [208,176], "f": 0, "t": 409, "d": [89,212], "a": 1 }, + { "px": [208,208], "src": [208,176], "f": 1, "t": 409, "d": [89,221], "a": 1 }, + { "px": [64,224], "src": [208,176], "f": 0, "t": 409, "d": [89,228], "a": 1 }, + { "px": [208,224], "src": [208,176], "f": 1, "t": 409, "d": [89,237], "a": 1 }, + { "px": [144,240], "src": [208,176], "f": 0, "t": 409, "d": [89,249], "a": 1 }, + { "px": [208,240], "src": [208,176], "f": 1, "t": 409, "d": [89,253], "a": 1 }, + { "px": [160,48], "src": [224,176], "f": 0, "t": 410, "d": [88,58], "a": 1 }, + { "px": [176,48], "src": [224,176], "f": 0, "t": 410, "d": [88,59], "a": 1 }, + { "px": [192,48], "src": [224,176], "f": 0, "t": 410, "d": [88,60], "a": 1 }, + { "px": [208,48], "src": [224,176], "f": 0, "t": 410, "d": [88,61], "a": 1 }, + { "px": [224,48], "src": [224,176], "f": 0, "t": 410, "d": [88,62], "a": 1 }, + { "px": [240,48], "src": [224,176], "f": 0, "t": 410, "d": [88,63], "a": 1 }, + { "px": [192,64], "src": [224,176], "f": 2, "t": 410, "d": [88,76], "a": 1 }, + { "px": [208,64], "src": [224,176], "f": 2, "t": 410, "d": [88,77], "a": 1 }, + { "px": [224,64], "src": [224,176], "f": 2, "t": 410, "d": [88,78], "a": 1 }, + { "px": [240,64], "src": [224,176], "f": 2, "t": 410, "d": [88,79], "a": 1 }, + { "px": [112,80], "src": [224,176], "f": 0, "t": 410, "d": [88,87], "a": 1 }, + { "px": [128,80], "src": [224,176], "f": 0, "t": 410, "d": [88,88], "a": 1 }, + { "px": [144,80], "src": [224,176], "f": 0, "t": 410, "d": [88,89], "a": 1 }, + { "px": [176,80], "src": [224,176], "f": 2, "t": 410, "d": [88,91], "a": 1 }, + { "px": [96,96], "src": [224,176], "f": 0, "t": 410, "d": [88,102], "a": 1 }, + { "px": [160,96], "src": [224,176], "f": 2, "t": 410, "d": [88,106], "a": 1 }, + { "px": [80,112], "src": [224,176], "f": 0, "t": 410, "d": [88,117], "a": 1 }, + { "px": [160,128], "src": [224,176], "f": 0, "t": 410, "d": [88,138], "a": 1 }, + { "px": [176,144], "src": [224,176], "f": 0, "t": 410, "d": [88,155], "a": 1 }, + { "px": [64,192], "src": [224,176], "f": 0, "t": 410, "d": [88,196], "a": 1 }, + { "px": [192,192], "src": [224,176], "f": 0, "t": 410, "d": [88,204], "a": 1 }, + { "px": [208,208], "src": [224,176], "f": 0, "t": 410, "d": [88,221], "a": 1 }, + { "px": [64,224], "src": [224,176], "f": 2, "t": 410, "d": [88,228], "a": 1 }, + { "px": [80,224], "src": [224,176], "f": 2, "t": 410, "d": [88,229], "a": 1 }, + { "px": [96,224], "src": [224,176], "f": 2, "t": 410, "d": [88,230], "a": 1 }, + { "px": [112,224], "src": [224,176], "f": 2, "t": 410, "d": [88,231], "a": 1 }, + { "px": [128,224], "src": [224,176], "f": 2, "t": 410, "d": [88,232], "a": 1 }, + { "px": [144,240], "src": [224,176], "f": 2, "t": 410, "d": [88,249], "a": 1 }, + { "px": [160,240], "src": [224,176], "f": 2, "t": 410, "d": [88,250], "a": 1 }, + { "px": [176,240], "src": [224,176], "f": 2, "t": 410, "d": [88,251], "a": 1 }, + { "px": [192,240], "src": [224,176], "f": 2, "t": 410, "d": [88,252], "a": 1 }, + { "px": [208,240], "src": [224,176], "f": 2, "t": 410, "d": [88,253], "a": 1 } + ], + "seed": 9891180, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [{ "levelIid": "a35992e0-66b0-11ec-9cd7-8b2ebd1b98e2", "dir": "e" }] + }, + { + "identifier": "Pit", + "iid": "a35acb61-66b0-11ec-9cd7-f76e35cfda30", + "uid": 41, + "worldX": 592, + "worldY": 128, + "worldDepth": 0, + "pxWid": 400, + "pxHei": 224, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 25, + "__cHei": 14, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "490f0631-66b0-11ec-8fc6-81050d38dfd0", + "levelId": 41, + "layerDefUid": 119, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 4592876, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Plant", + "__grid": [10,9], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "dc494d20-66b0-11ec-8fc6-5d62b5efd8bd", + "width": 20, + "height": 20, + "defUid": 116, + "px": [168,160], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Water_shroom", "__tile": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Water_shroom"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + } + ] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 25, + "__cHei": 14, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35b4092-66b0-11ec-9cd7-4dd1127583a6", + "levelId": 41, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, + 0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2, + 1,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + + ], + "autoLayerTiles": [ + { "px": [16,0], "src": [16,32], "f": 0, "t": 73, "d": [8,1], "a": 1 }, + { "px": [96,0], "src": [16,32], "f": 0, "t": 73, "d": [8,6], "a": 1 }, + { "px": [176,0], "src": [16,32], "f": 0, "t": 73, "d": [8,11], "a": 1 }, + { "px": [224,0], "src": [16,32], "f": 0, "t": 73, "d": [8,14], "a": 1 }, + { "px": [240,0], "src": [16,32], "f": 0, "t": 73, "d": [8,15], "a": 1 }, + { "px": [288,0], "src": [16,16], "f": 0, "t": 37, "d": [8,18], "a": 1 }, + { "px": [384,0], "src": [16,16], "f": 0, "t": 37, "d": [8,24], "a": 1 }, + { "px": [16,16], "src": [16,16], "f": 0, "t": 37, "d": [8,26], "a": 1 }, + { "px": [32,16], "src": [16,16], "f": 0, "t": 37, "d": [8,27], "a": 1 }, + { "px": [64,16], "src": [16,16], "f": 0, "t": 37, "d": [8,29], "a": 1 }, + { "px": [176,16], "src": [16,32], "f": 0, "t": 73, "d": [8,36], "a": 1 }, + { "px": [224,16], "src": [16,32], "f": 0, "t": 73, "d": [8,39], "a": 1 }, + { "px": [272,16], "src": [16,32], "f": 0, "t": 73, "d": [8,42], "a": 1 }, + { "px": [288,16], "src": [16,32], "f": 0, "t": 73, "d": [8,43], "a": 1 }, + { "px": [32,32], "src": [16,32], "f": 0, "t": 73, "d": [8,52], "a": 1 }, + { "px": [48,32], "src": [16,16], "f": 0, "t": 37, "d": [8,53], "a": 1 }, + { "px": [64,32], "src": [16,32], "f": 0, "t": 73, "d": [8,54], "a": 1 }, + { "px": [80,32], "src": [16,32], "f": 0, "t": 73, "d": [8,55], "a": 1 }, + { "px": [96,32], "src": [16,32], "f": 0, "t": 73, "d": [8,56], "a": 1 }, + { "px": [112,32], "src": [16,16], "f": 0, "t": 37, "d": [8,57], "a": 1 }, + { "px": [128,32], "src": [16,32], "f": 0, "t": 73, "d": [8,58], "a": 1 }, + { "px": [160,32], "src": [16,32], "f": 0, "t": 73, "d": [8,60], "a": 1 }, + { "px": [176,32], "src": [16,32], "f": 0, "t": 73, "d": [8,61], "a": 1 }, + { "px": [240,32], "src": [16,16], "f": 0, "t": 37, "d": [8,65], "a": 1 }, + { "px": [256,32], "src": [16,32], "f": 0, "t": 73, "d": [8,66], "a": 1 }, + { "px": [32,48], "src": [16,16], "f": 0, "t": 37, "d": [8,77], "a": 1 }, + { "px": [48,48], "src": [16,16], "f": 0, "t": 37, "d": [8,78], "a": 1 }, + { "px": [64,48], "src": [16,32], "f": 0, "t": 73, "d": [8,79], "a": 1 }, + { "px": [80,48], "src": [16,32], "f": 0, "t": 73, "d": [8,80], "a": 1 }, + { "px": [96,48], "src": [16,32], "f": 0, "t": 73, "d": [8,81], "a": 1 }, + { "px": [112,48], "src": [16,32], "f": 0, "t": 73, "d": [8,82], "a": 1 }, + { "px": [128,48], "src": [16,32], "f": 0, "t": 73, "d": [8,83], "a": 1 }, + { "px": [144,48], "src": [16,32], "f": 0, "t": 73, "d": [8,84], "a": 1 }, + { "px": [160,48], "src": [16,16], "f": 0, "t": 37, "d": [8,85], "a": 1 }, + { "px": [256,48], "src": [16,16], "f": 0, "t": 37, "d": [8,91], "a": 1 }, + { "px": [272,48], "src": [16,16], "f": 0, "t": 37, "d": [8,92], "a": 1 }, + { "px": [320,48], "src": [16,16], "f": 0, "t": 37, "d": [8,95], "a": 1 }, + { "px": [336,48], "src": [16,32], "f": 0, "t": 73, "d": [8,96], "a": 1 }, + { "px": [0,64], "src": [16,32], "f": 0, "t": 73, "d": [8,100], "a": 1 }, + { "px": [16,64], "src": [16,32], "f": 0, "t": 73, "d": [8,101], "a": 1 }, + { "px": [32,64], "src": [16,16], "f": 0, "t": 37, "d": [8,102], "a": 1 }, + { "px": [272,64], "src": [16,32], "f": 0, "t": 73, "d": [8,117], "a": 1 }, + { "px": [288,64], "src": [16,32], "f": 0, "t": 73, "d": [8,118], "a": 1 }, + { "px": [304,64], "src": [16,32], "f": 0, "t": 73, "d": [8,119], "a": 1 }, + { "px": [320,64], "src": [16,16], "f": 0, "t": 37, "d": [8,120], "a": 1 }, + { "px": [336,64], "src": [16,32], "f": 0, "t": 73, "d": [8,121], "a": 1 }, + { "px": [352,64], "src": [16,16], "f": 0, "t": 37, "d": [8,122], "a": 1 }, + { "px": [368,80], "src": [16,16], "f": 0, "t": 37, "d": [8,148], "a": 1 }, + { "px": [368,96], "src": [16,16], "f": 0, "t": 37, "d": [8,173], "a": 1 }, + { "px": [384,96], "src": [16,32], "f": 0, "t": 73, "d": [8,174], "a": 1 }, + { "px": [368,112], "src": [16,16], "f": 0, "t": 37, "d": [8,198], "a": 1 }, + { "px": [384,112], "src": [16,32], "f": 0, "t": 73, "d": [8,199], "a": 1 }, + { "px": [368,128], "src": [16,16], "f": 0, "t": 37, "d": [8,223], "a": 1 }, + { "px": [384,128], "src": [16,32], "f": 0, "t": 73, "d": [8,224], "a": 1 }, + { "px": [368,144], "src": [16,32], "f": 0, "t": 73, "d": [8,248], "a": 1 }, + { "px": [16,160], "src": [16,16], "f": 0, "t": 37, "d": [8,251], "a": 1 }, + { "px": [48,160], "src": [16,16], "f": 0, "t": 37, "d": [8,253], "a": 1 }, + { "px": [240,160], "src": [16,16], "f": 0, "t": 37, "d": [8,265], "a": 1 }, + { "px": [256,160], "src": [16,32], "f": 0, "t": 73, "d": [8,266], "a": 1 }, + { "px": [272,160], "src": [16,16], "f": 0, "t": 37, "d": [8,267], "a": 1 }, + { "px": [288,160], "src": [16,16], "f": 0, "t": 37, "d": [8,268], "a": 1 }, + { "px": [320,160], "src": [16,16], "f": 0, "t": 37, "d": [8,270], "a": 1 }, + { "px": [352,160], "src": [16,16], "f": 0, "t": 37, "d": [8,272], "a": 1 }, + { "px": [64,176], "src": [16,32], "f": 0, "t": 73, "d": [8,279], "a": 1 }, + { "px": [96,176], "src": [16,32], "f": 0, "t": 73, "d": [8,281], "a": 1 }, + { "px": [112,176], "src": [16,32], "f": 0, "t": 73, "d": [8,282], "a": 1 }, + { "px": [160,176], "src": [16,32], "f": 0, "t": 73, "d": [8,285], "a": 1 }, + { "px": [240,176], "src": [16,32], "f": 0, "t": 73, "d": [8,290], "a": 1 }, + { "px": [304,176], "src": [16,32], "f": 0, "t": 73, "d": [8,294], "a": 1 }, + { "px": [80,192], "src": [16,32], "f": 0, "t": 73, "d": [8,305], "a": 1 }, + { "px": [192,192], "src": [16,16], "f": 0, "t": 37, "d": [8,312], "a": 1 }, + { "px": [224,192], "src": [16,16], "f": 0, "t": 37, "d": [8,314], "a": 1 }, + { "px": [16,208], "src": [16,16], "f": 0, "t": 37, "d": [8,326], "a": 1 }, + { "px": [32,208], "src": [16,16], "f": 0, "t": 37, "d": [8,327], "a": 1 }, + { "px": [64,208], "src": [16,16], "f": 0, "t": 37, "d": [8,329], "a": 1 }, + { "px": [256,208], "src": [16,32], "f": 0, "t": 73, "d": [8,341], "a": 1 }, + { "px": [336,208], "src": [16,16], "f": 0, "t": 37, "d": [8,346], "a": 1 }, + { "px": [384,208], "src": [16,16], "f": 0, "t": 37, "d": [8,349], "a": 1 }, + { "px": [48,0], "src": [176,192], "f": 0, "t": 443, "d": [84,3], "a": 1 }, + { "px": [128,0], "src": [192,192], "f": 0, "t": 444, "d": [84,8], "a": 1 }, + { "px": [144,0], "src": [144,192], "f": 0, "t": 441, "d": [84,9], "a": 1 }, + { "px": [160,0], "src": [144,192], "f": 0, "t": 441, "d": [84,10], "a": 1 }, + { "px": [368,0], "src": [144,192], "f": 0, "t": 441, "d": [84,23], "a": 1 }, + { "px": [160,16], "src": [160,192], "f": 0, "t": 442, "d": [84,35], "a": 1 }, + { "px": [240,16], "src": [144,192], "f": 0, "t": 441, "d": [84,40], "a": 1 }, + { "px": [0,32], "src": [176,192], "f": 0, "t": 443, "d": [84,50], "a": 1 }, + { "px": [336,32], "src": [176,192], "f": 0, "t": 443, "d": [84,71], "a": 1 }, + { "px": [352,32], "src": [176,192], "f": 0, "t": 443, "d": [84,72], "a": 1 }, + { "px": [368,32], "src": [176,192], "f": 0, "t": 443, "d": [84,73], "a": 1 }, + { "px": [0,48], "src": [144,192], "f": 0, "t": 441, "d": [84,75], "a": 1 }, + { "px": [16,48], "src": [160,192], "f": 0, "t": 442, "d": [84,76], "a": 1 }, + { "px": [352,48], "src": [192,192], "f": 0, "t": 444, "d": [84,97], "a": 1 }, + { "px": [368,64], "src": [176,192], "f": 0, "t": 443, "d": [84,123], "a": 1 }, + { "px": [384,64], "src": [176,192], "f": 0, "t": 443, "d": [84,124], "a": 1 }, + { "px": [384,80], "src": [160,192], "f": 0, "t": 442, "d": [84,149], "a": 1 }, + { "px": [0,160], "src": [176,192], "f": 0, "t": 443, "d": [84,250], "a": 1 }, + { "px": [32,160], "src": [160,192], "f": 0, "t": 442, "d": [84,252], "a": 1 }, + { "px": [80,176], "src": [176,192], "f": 0, "t": 443, "d": [84,280], "a": 1 }, + { "px": [336,176], "src": [192,192], "f": 0, "t": 444, "d": [84,296], "a": 1 }, + { "px": [16,192], "src": [176,192], "f": 0, "t": 443, "d": [84,301], "a": 1 }, + { "px": [128,192], "src": [192,192], "f": 0, "t": 444, "d": [84,308], "a": 1 }, + { "px": [144,192], "src": [176,192], "f": 0, "t": 443, "d": [84,309], "a": 1 }, + { "px": [176,192], "src": [176,192], "f": 0, "t": 443, "d": [84,311], "a": 1 }, + { "px": [208,192], "src": [144,192], "f": 0, "t": 441, "d": [84,313], "a": 1 }, + { "px": [352,192], "src": [160,192], "f": 0, "t": 442, "d": [84,322], "a": 1 }, + { "px": [0,208], "src": [160,192], "f": 0, "t": 442, "d": [84,325], "a": 1 }, + { "px": [176,208], "src": [176,192], "f": 0, "t": 443, "d": [84,336], "a": 1 }, + { "px": [352,208], "src": [160,192], "f": 0, "t": 442, "d": [84,347], "a": 1 }, + { "px": [64,49], "src": [16,144], "f": 0, "t": 325, "d": [75,79], "a": 1 }, + { "px": [80,49], "src": [32,144], "f": 0, "t": 326, "d": [75,80], "a": 1 }, + { "px": [96,48], "src": [16,144], "f": 0, "t": 325, "d": [75,81], "a": 1 }, + { "px": [112,49], "src": [32,144], "f": 0, "t": 326, "d": [75,82], "a": 1 }, + { "px": [128,48], "src": [16,144], "f": 0, "t": 325, "d": [75,83], "a": 1 }, + { "px": [0,64], "src": [16,144], "f": 0, "t": 325, "d": [75,100], "a": 1 }, + { "px": [16,64], "src": [16,144], "f": 0, "t": 325, "d": [75,101], "a": 1 }, + { "px": [32,64], "src": [16,144], "f": 0, "t": 325, "d": [75,102], "a": 1 }, + { "px": [272,65], "src": [32,144], "f": 0, "t": 326, "d": [75,117], "a": 1 }, + { "px": [320,65], "src": [16,144], "f": 0, "t": 325, "d": [75,120], "a": 1 }, + { "px": [336,65], "src": [32,144], "f": 0, "t": 326, "d": [75,121], "a": 1 }, + { "px": [0,144], "src": [48,96], "f": 0, "t": 219, "d": [9,225], "a": 1 }, + { "px": [16,144], "src": [16,96], "f": 0, "t": 217, "d": [9,226], "a": 1 }, + { "px": [32,144], "src": [16,96], "f": 0, "t": 217, "d": [9,227], "a": 1 }, + { "px": [256,144], "src": [64,96], "f": 0, "t": 220, "d": [9,241], "a": 1 }, + { "px": [272,144], "src": [16,96], "f": 0, "t": 217, "d": [9,242], "a": 1 }, + { "px": [64,160], "src": [64,96], "f": 0, "t": 220, "d": [9,254], "a": 1 }, + { "px": [80,160], "src": [48,96], "f": 0, "t": 219, "d": [9,255], "a": 1 }, + { "px": [96,160], "src": [16,96], "f": 0, "t": 217, "d": [9,256], "a": 1 }, + { "px": [304,160], "src": [64,96], "f": 0, "t": 220, "d": [9,269], "a": 1 }, + { "px": [336,160], "src": [16,96], "f": 0, "t": 217, "d": [9,271], "a": 1 }, + { "px": [128,176], "src": [16,96], "f": 0, "t": 217, "d": [9,283], "a": 1 }, + { "px": [144,176], "src": [16,96], "f": 0, "t": 217, "d": [9,284], "a": 1 }, + { "px": [176,176], "src": [64,96], "f": 0, "t": 220, "d": [9,286], "a": 1 }, + { "px": [192,176], "src": [16,96], "f": 0, "t": 217, "d": [9,287], "a": 1 }, + { "px": [208,176], "src": [16,96], "f": 0, "t": 217, "d": [9,288], "a": 1 }, + { "px": [224,176], "src": [16,96], "f": 0, "t": 217, "d": [9,289], "a": 1 }, + { "px": [178,0], "src": [0,112], "f": 1, "t": 252, "d": [10,11], "a": 1 }, + { "px": [222,0], "src": [0,128], "f": 0, "t": 288, "d": [10,14], "a": 1 }, + { "px": [178,16], "src": [0,112], "f": 1, "t": 252, "d": [10,36], "a": 1 }, + { "px": [224,16], "src": [0,128], "f": 0, "t": 288, "d": [10,39], "a": 1 }, + { "px": [178,32], "src": [0,112], "f": 1, "t": 252, "d": [10,61], "a": 1 }, + { "px": [367,96], "src": [0,112], "f": 0, "t": 252, "d": [10,173], "a": 1 }, + { "px": [368,112], "src": [0,112], "f": 0, "t": 252, "d": [10,198], "a": 1 }, + { "px": [368,128], "src": [0,128], "f": 0, "t": 288, "d": [10,223], "a": 1 }, + { "px": [239,160], "src": [0,128], "f": 0, "t": 288, "d": [10,265], "a": 1 }, + { "px": [224,32], "src": [0,144], "f": 0, "t": 324, "d": [77,64], "a": 1 }, + { "px": [176,48], "src": [0,144], "f": 1, "t": 324, "d": [77,86], "a": 1 }, + { "px": [240,48], "src": [0,144], "f": 0, "t": 324, "d": [77,90], "a": 1 }, + { "px": [48,64], "src": [0,144], "f": 1, "t": 324, "d": [77,103], "a": 1 }, + { "px": [144,64], "src": [0,144], "f": 0, "t": 324, "d": [77,109], "a": 1 }, + { "px": [160,64], "src": [0,144], "f": 1, "t": 324, "d": [77,110], "a": 1 }, + { "px": [256,64], "src": [0,144], "f": 0, "t": 324, "d": [77,116], "a": 1 }, + { "px": [288,80], "src": [0,144], "f": 0, "t": 324, "d": [77,143], "a": 1 }, + { "px": [304,80], "src": [0,144], "f": 1, "t": 324, "d": [77,144], "a": 1 }, + { "px": [352,80], "src": [0,144], "f": 0, "t": 324, "d": [77,147], "a": 1 }, + { "px": [48,144], "src": [0,96], "f": 1, "t": 216, "d": [11,228], "a": 1 }, + { "px": [240,144], "src": [0,96], "f": 0, "t": 216, "d": [11,240], "a": 1 }, + { "px": [288,144], "src": [0,96], "f": 1, "t": 216, "d": [11,243], "a": 1 }, + { "px": [320,144], "src": [0,96], "f": 0, "t": 216, "d": [11,245], "a": 1 }, + { "px": [352,144], "src": [0,96], "f": 0, "t": 216, "d": [11,247], "a": 1 }, + { "px": [112,160], "src": [0,96], "f": 1, "t": 216, "d": [11,257], "a": 1 }, + { "px": [160,160], "src": [0,96], "f": 0, "t": 216, "d": [11,260], "a": 1 }, + { "px": [240,32], "src": [48,144], "f": 1, "t": 327, "d": [76,65], "a": 1 }, + { "px": [48,48], "src": [48,144], "f": 0, "t": 327, "d": [76,78], "a": 1 }, + { "px": [144,48], "src": [48,144], "f": 1, "t": 327, "d": [76,84], "a": 1 }, + { "px": [160,48], "src": [48,144], "f": 0, "t": 327, "d": [76,85], "a": 1 }, + { "px": [256,48], "src": [48,144], "f": 1, "t": 327, "d": [76,91], "a": 1 }, + { "px": [288,64], "src": [48,144], "f": 1, "t": 327, "d": [76,118], "a": 1 }, + { "px": [304,64], "src": [48,144], "f": 0, "t": 327, "d": [76,119], "a": 1 }, + { "px": [352,64], "src": [48,144], "f": 1, "t": 327, "d": [76,122], "a": 1 }, + { "px": [368,80], "src": [48,144], "f": 1, "t": 327, "d": [76,148], "a": 1 }, + { "px": [368,144], "src": [64,144], "f": 1, "t": 328, "d": [14,248], "a": 1 }, + { "px": [48,160], "src": [64,144], "f": 0, "t": 328, "d": [14,253], "a": 1 }, + { "px": [288,160], "src": [64,144], "f": 0, "t": 328, "d": [14,268], "a": 1 }, + { "px": [320,160], "src": [64,144], "f": 0, "t": 328, "d": [14,270], "a": 1 }, + { "px": [320,160], "src": [64,144], "f": 1, "t": 328, "d": [14,270], "a": 1 }, + { "px": [352,160], "src": [64,144], "f": 1, "t": 328, "d": [14,272], "a": 1 }, + { "px": [112,176], "src": [64,144], "f": 0, "t": 328, "d": [14,282], "a": 1 }, + { "px": [160,176], "src": [64,144], "f": 0, "t": 328, "d": [14,285], "a": 1 }, + { "px": [160,176], "src": [64,144], "f": 1, "t": 328, "d": [14,285], "a": 1 }, + { "px": [240,176], "src": [64,144], "f": 1, "t": 328, "d": [14,290], "a": 1 }, + { "px": [16,128], "src": [0,224], "f": 0, "t": 504, "d": [28,201], "a": 1 }, + { "px": [32,128], "src": [0,224], "f": 0, "t": 504, "d": [28,202], "a": 1 }, + { "px": [48,128], "src": [0,224], "f": 0, "t": 504, "d": [28,203], "a": 1 }, + { "px": [96,128], "src": [0,224], "f": 0, "t": 504, "d": [28,206], "a": 1 }, + { "px": [112,128], "src": [0,224], "f": 0, "t": 504, "d": [28,207], "a": 1 }, + { "px": [128,128], "src": [0,224], "f": 0, "t": 504, "d": [28,208], "a": 1 }, + { "px": [176,128], "src": [0,224], "f": 0, "t": 504, "d": [28,211], "a": 1 }, + { "px": [192,128], "src": [0,224], "f": 0, "t": 504, "d": [28,212], "a": 1 }, + { "px": [208,128], "src": [0,224], "f": 0, "t": 504, "d": [28,213], "a": 1 }, + { "px": [224,128], "src": [0,224], "f": 0, "t": 504, "d": [28,214], "a": 1 }, + { "px": [256,128], "src": [0,224], "f": 0, "t": 504, "d": [28,216], "a": 1 }, + { "px": [272,128], "src": [0,224], "f": 0, "t": 504, "d": [28,217], "a": 1 }, + { "px": [288,128], "src": [0,224], "f": 0, "t": 504, "d": [28,218], "a": 1 }, + { "px": [304,128], "src": [0,224], "f": 0, "t": 504, "d": [28,219], "a": 1 }, + { "px": [320,128], "src": [0,224], "f": 0, "t": 504, "d": [28,220], "a": 1 }, + { "px": [336,128], "src": [0,224], "f": 0, "t": 504, "d": [28,221], "a": 1 }, + { "px": [80,144], "src": [0,224], "f": 0, "t": 504, "d": [28,230], "a": 1 }, + { "px": [96,144], "src": [0,224], "f": 0, "t": 504, "d": [28,231], "a": 1 }, + { "px": [112,144], "src": [0,224], "f": 0, "t": 504, "d": [28,232], "a": 1 }, + { "px": [128,144], "src": [0,224], "f": 0, "t": 504, "d": [28,233], "a": 1 }, + { "px": [192,144], "src": [0,224], "f": 0, "t": 504, "d": [28,237], "a": 1 }, + { "px": [208,144], "src": [0,224], "f": 0, "t": 504, "d": [28,238], "a": 1 }, + { "px": [304,144], "src": [0,224], "f": 0, "t": 504, "d": [28,244], "a": 1 }, + { "px": [128,160], "src": [0,224], "f": 0, "t": 504, "d": [28,258], "a": 1 }, + { "px": [176,160], "src": [0,224], "f": 0, "t": 504, "d": [28,261], "a": 1 }, + { "px": [192,160], "src": [0,224], "f": 0, "t": 504, "d": [28,262], "a": 1 }, + { "px": [208,160], "src": [0,224], "f": 0, "t": 504, "d": [28,263], "a": 1 }, + { "px": [224,160], "src": [0,224], "f": 0, "t": 504, "d": [28,264], "a": 1 }, + { "px": [0,128], "src": [32,224], "f": 0, "t": 506, "d": [74,200], "a": 1 }, + { "px": [64,128], "src": [16,240], "f": 0, "t": 541, "d": [74,204], "a": 1 }, + { "px": [80,128], "src": [32,224], "f": 0, "t": 506, "d": [74,205], "a": 1 }, + { "px": [144,128], "src": [16,224], "f": 0, "t": 505, "d": [74,209], "a": 1 }, + { "px": [160,128], "src": [16,240], "f": 0, "t": 541, "d": [74,210], "a": 1 }, + { "px": [240,128], "src": [16,240], "f": 0, "t": 541, "d": [74,215], "a": 1 }, + { "px": [352,128], "src": [32,224], "f": 0, "t": 506, "d": [74,222], "a": 1 }, + { "px": [64,144], "src": [16,224], "f": 0, "t": 505, "d": [74,229], "a": 1 }, + { "px": [144,144], "src": [32,240], "f": 0, "t": 542, "d": [74,234], "a": 1 }, + { "px": [160,144], "src": [16,224], "f": 0, "t": 505, "d": [74,235], "a": 1 }, + { "px": [176,144], "src": [16,240], "f": 0, "t": 541, "d": [74,236], "a": 1 }, + { "px": [224,144], "src": [32,224], "f": 0, "t": 506, "d": [74,239], "a": 1 }, + { "px": [336,144], "src": [16,240], "f": 0, "t": 541, "d": [74,246], "a": 1 }, + { "px": [144,160], "src": [32,240], "f": 0, "t": 542, "d": [74,259], "a": 1 }, + { "px": [0,112], "src": [16,208], "f": 0, "t": 469, "d": [21,175], "a": 1 }, + { "px": [16,113], "src": [16,208], "f": 0, "t": 469, "d": [21,176], "a": 1 }, + { "px": [32,112], "src": [32,208], "f": 0, "t": 470, "d": [21,177], "a": 1 }, + { "px": [48,113], "src": [0,208], "f": 0, "t": 468, "d": [21,178], "a": 1 }, + { "px": [64,112], "src": [0,208], "f": 0, "t": 468, "d": [21,179], "a": 1 }, + { "px": [80,112], "src": [32,208], "f": 0, "t": 470, "d": [21,180], "a": 1 }, + { "px": [96,112], "src": [0,208], "f": 0, "t": 468, "d": [21,181], "a": 1 }, + { "px": [112,112], "src": [0,208], "f": 0, "t": 468, "d": [21,182], "a": 1 }, + { "px": [128,113], "src": [32,208], "f": 0, "t": 470, "d": [21,183], "a": 1 }, + { "px": [144,112], "src": [16,208], "f": 0, "t": 469, "d": [21,184], "a": 1 }, + { "px": [160,113], "src": [0,208], "f": 0, "t": 468, "d": [21,185], "a": 1 }, + { "px": [176,112], "src": [0,208], "f": 0, "t": 468, "d": [21,186], "a": 1 }, + { "px": [192,113], "src": [32,208], "f": 0, "t": 470, "d": [21,187], "a": 1 }, + { "px": [208,112], "src": [0,208], "f": 0, "t": 468, "d": [21,188], "a": 1 }, + { "px": [224,112], "src": [0,208], "f": 0, "t": 468, "d": [21,189], "a": 1 }, + { "px": [240,113], "src": [0,208], "f": 0, "t": 468, "d": [21,190], "a": 1 }, + { "px": [256,112], "src": [16,208], "f": 0, "t": 469, "d": [21,191], "a": 1 }, + { "px": [272,112], "src": [16,208], "f": 0, "t": 469, "d": [21,192], "a": 1 }, + { "px": [288,113], "src": [16,208], "f": 0, "t": 469, "d": [21,193], "a": 1 }, + { "px": [304,113], "src": [16,208], "f": 0, "t": 469, "d": [21,194], "a": 1 }, + { "px": [320,113], "src": [32,208], "f": 0, "t": 470, "d": [21,195], "a": 1 }, + { "px": [336,112], "src": [32,208], "f": 0, "t": 470, "d": [21,196], "a": 1 }, + { "px": [352,112], "src": [32,208], "f": 0, "t": 470, "d": [21,197], "a": 1 }, + { "px": [16,128], "src": [160,48], "f": 0, "t": 118, "d": [111,201], "a": 1 }, + { "px": [48,128], "src": [160,48], "f": 0, "t": 118, "d": [111,203], "a": 1 }, + { "px": [240,128], "src": [176,48], "f": 0, "t": 119, "d": [111,215], "a": 1 }, + { "px": [256,128], "src": [160,48], "f": 0, "t": 118, "d": [111,216], "a": 1 }, + { "px": [272,128], "src": [192,48], "f": 0, "t": 120, "d": [111,217], "a": 1 }, + { "px": [288,128], "src": [192,48], "f": 0, "t": 120, "d": [111,218], "a": 1 }, + { "px": [320,128], "src": [208,48], "f": 0, "t": 121, "d": [111,220], "a": 1 }, + { "px": [352,128], "src": [192,48], "f": 0, "t": 120, "d": [111,222], "a": 1 }, + { "px": [64,144], "src": [208,48], "f": 0, "t": 121, "d": [111,229], "a": 1 }, + { "px": [80,144], "src": [176,48], "f": 0, "t": 119, "d": [111,230], "a": 1 }, + { "px": [96,144], "src": [176,48], "f": 0, "t": 119, "d": [111,231], "a": 1 }, + { "px": [304,144], "src": [192,48], "f": 0, "t": 120, "d": [111,244], "a": 1 }, + { "px": [336,144], "src": [192,48], "f": 0, "t": 120, "d": [111,246], "a": 1 }, + { "px": [128,160], "src": [176,48], "f": 0, "t": 119, "d": [111,258], "a": 1 }, + { "px": [176,160], "src": [176,48], "f": 0, "t": 119, "d": [111,261], "a": 1 }, + { "px": [192,160], "src": [208,48], "f": 0, "t": 121, "d": [111,262], "a": 1 }, + { "px": [208,160], "src": [160,48], "f": 0, "t": 118, "d": [111,263], "a": 1 }, + { "px": [224,160], "src": [160,48], "f": 0, "t": 118, "d": [111,264], "a": 1 }, + { "px": [18,129], "src": [208,48], "f": 0, "t": 121, "d": [99,201], "a": 1 }, + { "px": [254,128], "src": [160,48], "f": 0, "t": 118, "d": [99,216], "a": 1 }, + { "px": [350,128], "src": [192,48], "f": 0, "t": 120, "d": [99,222], "a": 1 }, + { "px": [82,144], "src": [192,48], "f": 0, "t": 120, "d": [99,230], "a": 1 }, + { "px": [94,144], "src": [208,48], "f": 0, "t": 121, "d": [99,231], "a": 1 }, + { "px": [161,145], "src": [192,48], "f": 0, "t": 120, "d": [99,235], "a": 1 }, + { "px": [146,161], "src": [176,48], "f": 0, "t": 119, "d": [99,259], "a": 1 }, + { "px": [192,160], "src": [208,48], "f": 0, "t": 121, "d": [99,262], "a": 1 }, + { "px": [209,160], "src": [160,48], "f": 0, "t": 118, "d": [99,263], "a": 1 }, + { "px": [222,161], "src": [176,48], "f": 0, "t": 119, "d": [99,264], "a": 1 }, + { "px": [224,48], "src": [80,128], "f": 1, "t": 293, "d": [95,89], "a": 1 }, + { "px": [64,64], "src": [80,128], "f": 0, "t": 293, "d": [95,104], "a": 1 }, + { "px": [128,64], "src": [80,128], "f": 1, "t": 293, "d": [95,108], "a": 1 }, + { "px": [176,64], "src": [80,112], "f": 0, "t": 257, "d": [95,111], "a": 1 }, + { "px": [240,64], "src": [80,112], "f": 1, "t": 257, "d": [95,115], "a": 1 }, + { "px": [272,80], "src": [80,112], "f": 1, "t": 257, "d": [95,142], "a": 1 }, + { "px": [320,80], "src": [80,112], "f": 0, "t": 257, "d": [95,145], "a": 1 }, + { "px": [336,80], "src": [80,112], "f": 1, "t": 257, "d": [95,146], "a": 1 }, + { "px": [352,96], "src": [80,128], "f": 1, "t": 293, "d": [95,172], "a": 1 }, + { "px": [352,128], "src": [80,160], "f": 1, "t": 365, "d": [96,222], "a": 1 }, + { "px": [64,144], "src": [80,144], "f": 0, "t": 329, "d": [96,229], "a": 1 }, + { "px": [304,144], "src": [80,160], "f": 0, "t": 365, "d": [96,244], "a": 1 }, + { "px": [304,144], "src": [80,160], "f": 1, "t": 365, "d": [96,244], "a": 1 }, + { "px": [336,144], "src": [80,160], "f": 0, "t": 365, "d": [96,246], "a": 1 }, + { "px": [336,144], "src": [80,160], "f": 1, "t": 365, "d": [96,246], "a": 1 }, + { "px": [128,160], "src": [80,144], "f": 0, "t": 329, "d": [96,258], "a": 1 }, + { "px": [144,160], "src": [80,160], "f": 1, "t": 365, "d": [96,259], "a": 1 }, + { "px": [176,160], "src": [80,144], "f": 0, "t": 329, "d": [96,261], "a": 1 }, + { "px": [224,160], "src": [80,144], "f": 1, "t": 329, "d": [96,264], "a": 1 }, + { "px": [0,129], "src": [16,80], "f": 0, "t": 181, "d": [97,200], "a": 1 }, + { "px": [16,128], "src": [32,80], "f": 0, "t": 182, "d": [97,201], "a": 1 }, + { "px": [32,129], "src": [48,80], "f": 0, "t": 183, "d": [97,202], "a": 1 }, + { "px": [48,129], "src": [0,80], "f": 0, "t": 180, "d": [97,203], "a": 1 }, + { "px": [240,130], "src": [0,80], "f": 0, "t": 180, "d": [97,215], "a": 1 }, + { "px": [256,129], "src": [32,80], "f": 0, "t": 182, "d": [97,216], "a": 1 }, + { "px": [272,129], "src": [112,112], "f": 0, "t": 259, "d": [97,217], "a": 1 }, + { "px": [288,130], "src": [32,80], "f": 0, "t": 182, "d": [97,218], "a": 1 }, + { "px": [320,129], "src": [144,112], "f": 0, "t": 261, "d": [97,220], "a": 1 }, + { "px": [64,145], "src": [128,112], "f": 0, "t": 260, "d": [97,229], "a": 1 }, + { "px": [80,144], "src": [128,112], "f": 0, "t": 260, "d": [97,230], "a": 1 }, + { "px": [96,146], "src": [112,112], "f": 0, "t": 259, "d": [97,231], "a": 1 }, + { "px": [112,144], "src": [112,112], "f": 0, "t": 259, "d": [97,232], "a": 1 }, + { "px": [160,145], "src": [32,80], "f": 0, "t": 182, "d": [97,235], "a": 1 }, + { "px": [304,145], "src": [128,112], "f": 0, "t": 260, "d": [97,244], "a": 1 }, + { "px": [336,146], "src": [112,112], "f": 0, "t": 259, "d": [97,246], "a": 1 }, + { "px": [144,160], "src": [32,80], "f": 0, "t": 182, "d": [97,259], "a": 1 }, + { "px": [176,162], "src": [0,80], "f": 0, "t": 180, "d": [97,261], "a": 1 }, + { "px": [192,160], "src": [144,112], "f": 0, "t": 261, "d": [97,262], "a": 1 }, + { "px": [224,162], "src": [128,112], "f": 0, "t": 260, "d": [97,264], "a": 1 }, + { "px": [192,0], "src": [64,112], "f": 0, "t": 256, "d": [98,12], "a": 1 }, + { "px": [208,0], "src": [64,128], "f": 1, "t": 292, "d": [98,13], "a": 1 }, + { "px": [192,16], "src": [64,128], "f": 0, "t": 292, "d": [98,37], "a": 1 }, + { "px": [208,16], "src": [64,112], "f": 1, "t": 256, "d": [98,38], "a": 1 }, + { "px": [192,48], "src": [64,128], "f": 0, "t": 292, "d": [98,87], "a": 1 }, + { "px": [224,48], "src": [64,112], "f": 1, "t": 256, "d": [98,89], "a": 1 }, + { "px": [64,64], "src": [64,112], "f": 0, "t": 256, "d": [98,104], "a": 1 }, + { "px": [176,64], "src": [64,128], "f": 0, "t": 292, "d": [98,111], "a": 1 }, + { "px": [240,64], "src": [64,112], "f": 1, "t": 256, "d": [98,115], "a": 1 }, + { "px": [272,80], "src": [64,112], "f": 1, "t": 256, "d": [98,142], "a": 1 }, + { "px": [320,80], "src": [64,112], "f": 0, "t": 256, "d": [98,145], "a": 1 }, + { "px": [336,80], "src": [64,128], "f": 1, "t": 292, "d": [98,146], "a": 1 }, + { "px": [352,96], "src": [64,128], "f": 1, "t": 292, "d": [98,172], "a": 1 }, + { "px": [352,112], "src": [64,112], "f": 1, "t": 256, "d": [98,197], "a": 1 }, + { "px": [352,128], "src": [64,128], "f": 1, "t": 292, "d": [98,222], "a": 1 }, + { "px": [64,144], "src": [64,128], "f": 0, "t": 292, "d": [98,229], "a": 1 }, + { "px": [224,144], "src": [64,128], "f": 1, "t": 292, "d": [98,239], "a": 1 }, + { "px": [336,144], "src": [64,112], "f": 0, "t": 256, "d": [98,246], "a": 1 }, + { "px": [336,144], "src": [64,112], "f": 1, "t": 256, "d": [98,246], "a": 1 }, + { "px": [128,160], "src": [64,112], "f": 0, "t": 256, "d": [98,258], "a": 1 }, + { "px": [144,160], "src": [64,112], "f": 1, "t": 256, "d": [98,259], "a": 1 }, + { "px": [80,64], "src": [112,80], "f": 0, "t": 187, "d": [93,105], "a": 1 }, + { "px": [176,64], "src": [128,96], "f": 0, "t": 224, "d": [93,111], "a": 1 }, + { "px": [16,80], "src": [96,96], "f": 0, "t": 222, "d": [93,126], "a": 1 }, + { "px": [32,80], "src": [128,80], "f": 0, "t": 188, "d": [93,127], "a": 1 }, + { "px": [160,80], "src": [128,80], "f": 0, "t": 188, "d": [93,135], "a": 1 }, + { "px": [224,48], "src": [128,96], "f": 0, "t": 224, "d": [101,89], "a": 1 }, + { "px": [64,64], "src": [128,96], "f": 0, "t": 224, "d": [101,104], "a": 1 }, + { "px": [80,64], "src": [128,96], "f": 0, "t": 224, "d": [101,105], "a": 1 }, + { "px": [96,64], "src": [128,96], "f": 0, "t": 224, "d": [101,106], "a": 1 }, + { "px": [112,64], "src": [112,96], "f": 0, "t": 223, "d": [101,107], "a": 1 }, + { "px": [128,64], "src": [112,96], "f": 0, "t": 223, "d": [101,108], "a": 1 }, + { "px": [176,64], "src": [112,96], "f": 0, "t": 223, "d": [101,111], "a": 1 }, + { "px": [240,64], "src": [112,96], "f": 0, "t": 223, "d": [101,115], "a": 1 }, + { "px": [0,80], "src": [112,96], "f": 0, "t": 223, "d": [101,125], "a": 1 }, + { "px": [16,80], "src": [112,96], "f": 0, "t": 223, "d": [101,126], "a": 1 }, + { "px": [32,80], "src": [128,96], "f": 0, "t": 224, "d": [101,127], "a": 1 }, + { "px": [48,80], "src": [112,96], "f": 0, "t": 223, "d": [101,128], "a": 1 }, + { "px": [144,80], "src": [112,96], "f": 0, "t": 223, "d": [101,134], "a": 1 }, + { "px": [160,80], "src": [128,96], "f": 0, "t": 224, "d": [101,135], "a": 1 }, + { "px": [256,80], "src": [128,96], "f": 0, "t": 224, "d": [101,141], "a": 1 }, + { "px": [272,80], "src": [128,96], "f": 0, "t": 224, "d": [101,142], "a": 1 }, + { "px": [320,80], "src": [112,96], "f": 0, "t": 223, "d": [101,145], "a": 1 }, + { "px": [336,80], "src": [112,96], "f": 0, "t": 223, "d": [101,146], "a": 1 }, + { "px": [288,96], "src": [128,96], "f": 0, "t": 224, "d": [101,168], "a": 1 }, + { "px": [304,96], "src": [128,96], "f": 0, "t": 224, "d": [101,169], "a": 1 }, + { "px": [352,96], "src": [112,96], "f": 0, "t": 223, "d": [101,172], "a": 1 }, + { "px": [0,0], "src": [208,208], "f": 0, "t": 481, "d": [104,0], "a": 1 }, + { "px": [32,0], "src": [176,208], "f": 0, "t": 479, "d": [104,2], "a": 1 }, + { "px": [64,0], "src": [176,208], "f": 0, "t": 479, "d": [104,4], "a": 1 }, + { "px": [80,0], "src": [176,208], "f": 0, "t": 479, "d": [104,5], "a": 1 }, + { "px": [112,0], "src": [192,208], "f": 0, "t": 480, "d": [104,7], "a": 1 }, + { "px": [256,0], "src": [208,208], "f": 0, "t": 481, "d": [104,16], "a": 1 }, + { "px": [272,0], "src": [208,208], "f": 0, "t": 481, "d": [104,17], "a": 1 }, + { "px": [304,0], "src": [192,208], "f": 0, "t": 480, "d": [104,19], "a": 1 }, + { "px": [320,0], "src": [176,208], "f": 0, "t": 479, "d": [104,20], "a": 1 }, + { "px": [336,0], "src": [208,208], "f": 0, "t": 481, "d": [104,21], "a": 1 }, + { "px": [352,0], "src": [208,208], "f": 0, "t": 481, "d": [104,22], "a": 1 }, + { "px": [0,16], "src": [176,208], "f": 0, "t": 479, "d": [104,25], "a": 1 }, + { "px": [48,16], "src": [192,208], "f": 0, "t": 480, "d": [104,28], "a": 1 }, + { "px": [80,16], "src": [208,208], "f": 0, "t": 481, "d": [104,30], "a": 1 }, + { "px": [96,16], "src": [192,208], "f": 0, "t": 480, "d": [104,31], "a": 1 }, + { "px": [112,16], "src": [208,208], "f": 0, "t": 481, "d": [104,32], "a": 1 }, + { "px": [128,16], "src": [176,208], "f": 0, "t": 479, "d": [104,33], "a": 1 }, + { "px": [144,16], "src": [176,208], "f": 0, "t": 479, "d": [104,34], "a": 1 }, + { "px": [256,16], "src": [208,208], "f": 0, "t": 481, "d": [104,41], "a": 1 }, + { "px": [304,16], "src": [192,208], "f": 0, "t": 480, "d": [104,44], "a": 1 }, + { "px": [320,16], "src": [176,208], "f": 0, "t": 479, "d": [104,45], "a": 1 }, + { "px": [336,16], "src": [208,208], "f": 0, "t": 481, "d": [104,46], "a": 1 }, + { "px": [352,16], "src": [176,208], "f": 0, "t": 479, "d": [104,47], "a": 1 }, + { "px": [368,16], "src": [192,208], "f": 0, "t": 480, "d": [104,48], "a": 1 }, + { "px": [384,16], "src": [192,208], "f": 0, "t": 480, "d": [104,49], "a": 1 }, + { "px": [16,32], "src": [176,208], "f": 0, "t": 479, "d": [104,51], "a": 1 }, + { "px": [144,32], "src": [176,208], "f": 0, "t": 479, "d": [104,59], "a": 1 }, + { "px": [272,32], "src": [208,208], "f": 0, "t": 481, "d": [104,67], "a": 1 }, + { "px": [288,32], "src": [176,208], "f": 0, "t": 479, "d": [104,68], "a": 1 }, + { "px": [304,32], "src": [192,208], "f": 0, "t": 480, "d": [104,69], "a": 1 }, + { "px": [320,32], "src": [208,208], "f": 0, "t": 481, "d": [104,70], "a": 1 }, + { "px": [384,32], "src": [208,208], "f": 0, "t": 481, "d": [104,74], "a": 1 }, + { "px": [288,48], "src": [192,208], "f": 0, "t": 480, "d": [104,93], "a": 1 }, + { "px": [304,48], "src": [176,208], "f": 0, "t": 479, "d": [104,94], "a": 1 }, + { "px": [368,48], "src": [208,208], "f": 0, "t": 481, "d": [104,98], "a": 1 }, + { "px": [384,48], "src": [176,208], "f": 0, "t": 479, "d": [104,99], "a": 1 }, + { "px": [384,144], "src": [192,208], "f": 0, "t": 480, "d": [104,249], "a": 1 }, + { "px": [368,160], "src": [192,208], "f": 0, "t": 480, "d": [104,273], "a": 1 }, + { "px": [384,160], "src": [192,208], "f": 0, "t": 480, "d": [104,274], "a": 1 }, + { "px": [0,176], "src": [208,208], "f": 0, "t": 481, "d": [104,275], "a": 1 }, + { "px": [16,176], "src": [208,208], "f": 0, "t": 481, "d": [104,276], "a": 1 }, + { "px": [32,176], "src": [192,208], "f": 0, "t": 480, "d": [104,277], "a": 1 }, + { "px": [48,176], "src": [192,208], "f": 0, "t": 480, "d": [104,278], "a": 1 }, + { "px": [256,176], "src": [192,208], "f": 0, "t": 480, "d": [104,291], "a": 1 }, + { "px": [272,176], "src": [192,208], "f": 0, "t": 480, "d": [104,292], "a": 1 }, + { "px": [288,176], "src": [176,208], "f": 0, "t": 479, "d": [104,293], "a": 1 }, + { "px": [320,176], "src": [208,208], "f": 0, "t": 481, "d": [104,295], "a": 1 }, + { "px": [352,176], "src": [208,208], "f": 0, "t": 481, "d": [104,297], "a": 1 }, + { "px": [368,176], "src": [192,208], "f": 0, "t": 480, "d": [104,298], "a": 1 }, + { "px": [384,176], "src": [208,208], "f": 0, "t": 481, "d": [104,299], "a": 1 }, + { "px": [0,192], "src": [192,208], "f": 0, "t": 480, "d": [104,300], "a": 1 }, + { "px": [32,192], "src": [176,208], "f": 0, "t": 479, "d": [104,302], "a": 1 }, + { "px": [48,192], "src": [208,208], "f": 0, "t": 481, "d": [104,303], "a": 1 }, + { "px": [64,192], "src": [208,208], "f": 0, "t": 481, "d": [104,304], "a": 1 }, + { "px": [96,192], "src": [192,208], "f": 0, "t": 480, "d": [104,306], "a": 1 }, + { "px": [112,192], "src": [192,208], "f": 0, "t": 480, "d": [104,307], "a": 1 }, + { "px": [160,192], "src": [208,208], "f": 0, "t": 481, "d": [104,310], "a": 1 }, + { "px": [240,192], "src": [208,208], "f": 0, "t": 481, "d": [104,315], "a": 1 }, + { "px": [256,192], "src": [192,208], "f": 0, "t": 480, "d": [104,316], "a": 1 }, + { "px": [272,192], "src": [192,208], "f": 0, "t": 480, "d": [104,317], "a": 1 }, + { "px": [288,192], "src": [208,208], "f": 0, "t": 481, "d": [104,318], "a": 1 }, + { "px": [304,192], "src": [176,208], "f": 0, "t": 479, "d": [104,319], "a": 1 }, + { "px": [320,192], "src": [208,208], "f": 0, "t": 481, "d": [104,320], "a": 1 }, + { "px": [336,192], "src": [176,208], "f": 0, "t": 479, "d": [104,321], "a": 1 }, + { "px": [368,192], "src": [192,208], "f": 0, "t": 480, "d": [104,323], "a": 1 }, + { "px": [384,192], "src": [176,208], "f": 0, "t": 479, "d": [104,324], "a": 1 }, + { "px": [48,208], "src": [176,208], "f": 0, "t": 479, "d": [104,328], "a": 1 }, + { "px": [80,208], "src": [192,208], "f": 0, "t": 480, "d": [104,330], "a": 1 }, + { "px": [96,208], "src": [176,208], "f": 0, "t": 479, "d": [104,331], "a": 1 }, + { "px": [112,208], "src": [192,208], "f": 0, "t": 480, "d": [104,332], "a": 1 }, + { "px": [128,208], "src": [192,208], "f": 0, "t": 480, "d": [104,333], "a": 1 }, + { "px": [144,208], "src": [192,208], "f": 0, "t": 480, "d": [104,334], "a": 1 }, + { "px": [160,208], "src": [208,208], "f": 0, "t": 481, "d": [104,335], "a": 1 }, + { "px": [192,208], "src": [192,208], "f": 0, "t": 480, "d": [104,337], "a": 1 }, + { "px": [208,208], "src": [208,208], "f": 0, "t": 481, "d": [104,338], "a": 1 }, + { "px": [224,208], "src": [176,208], "f": 0, "t": 479, "d": [104,339], "a": 1 }, + { "px": [240,208], "src": [176,208], "f": 0, "t": 479, "d": [104,340], "a": 1 }, + { "px": [272,208], "src": [208,208], "f": 0, "t": 481, "d": [104,342], "a": 1 }, + { "px": [288,208], "src": [192,208], "f": 0, "t": 480, "d": [104,343], "a": 1 }, + { "px": [304,208], "src": [176,208], "f": 0, "t": 479, "d": [104,344], "a": 1 }, + { "px": [320,208], "src": [192,208], "f": 0, "t": 480, "d": [104,345], "a": 1 }, + { "px": [368,208], "src": [192,208], "f": 0, "t": 480, "d": [104,348], "a": 1 }, + { "px": [0,0], "src": [272,176], "f": 0, "t": 413, "d": [108,0], "a": 1 }, + { "px": [16,0], "src": [272,176], "f": 0, "t": 413, "d": [108,1], "a": 1 }, + { "px": [32,0], "src": [272,176], "f": 0, "t": 413, "d": [108,2], "a": 1 }, + { "px": [48,0], "src": [272,176], "f": 0, "t": 413, "d": [108,3], "a": 1 }, + { "px": [64,0], "src": [272,176], "f": 0, "t": 413, "d": [108,4], "a": 1 }, + { "px": [80,0], "src": [272,176], "f": 0, "t": 413, "d": [108,5], "a": 1 }, + { "px": [96,0], "src": [272,176], "f": 0, "t": 413, "d": [108,6], "a": 1 }, + { "px": [112,0], "src": [272,176], "f": 0, "t": 413, "d": [108,7], "a": 1 }, + { "px": [128,0], "src": [272,176], "f": 0, "t": 413, "d": [108,8], "a": 1 }, + { "px": [144,0], "src": [272,176], "f": 0, "t": 413, "d": [108,9], "a": 1 }, + { "px": [160,0], "src": [272,176], "f": 0, "t": 413, "d": [108,10], "a": 1 }, + { "px": [240,0], "src": [272,176], "f": 0, "t": 413, "d": [108,15], "a": 1 }, + { "px": [256,0], "src": [272,176], "f": 0, "t": 413, "d": [108,16], "a": 1 }, + { "px": [272,0], "src": [272,176], "f": 0, "t": 413, "d": [108,17], "a": 1 }, + { "px": [288,0], "src": [272,176], "f": 0, "t": 413, "d": [108,18], "a": 1 }, + { "px": [304,0], "src": [272,176], "f": 0, "t": 413, "d": [108,19], "a": 1 }, + { "px": [320,0], "src": [272,176], "f": 0, "t": 413, "d": [108,20], "a": 1 }, + { "px": [336,0], "src": [272,176], "f": 0, "t": 413, "d": [108,21], "a": 1 }, + { "px": [352,0], "src": [272,176], "f": 0, "t": 413, "d": [108,22], "a": 1 }, + { "px": [368,0], "src": [272,176], "f": 0, "t": 413, "d": [108,23], "a": 1 }, + { "px": [384,0], "src": [272,176], "f": 0, "t": 413, "d": [108,24], "a": 1 }, + { "px": [0,16], "src": [272,176], "f": 0, "t": 413, "d": [108,25], "a": 1 }, + { "px": [16,16], "src": [272,176], "f": 0, "t": 413, "d": [108,26], "a": 1 }, + { "px": [32,16], "src": [272,176], "f": 0, "t": 413, "d": [108,27], "a": 1 }, + { "px": [48,16], "src": [272,176], "f": 0, "t": 413, "d": [108,28], "a": 1 }, + { "px": [64,16], "src": [272,176], "f": 0, "t": 413, "d": [108,29], "a": 1 }, + { "px": [80,16], "src": [272,176], "f": 0, "t": 413, "d": [108,30], "a": 1 }, + { "px": [96,16], "src": [272,176], "f": 0, "t": 413, "d": [108,31], "a": 1 }, + { "px": [112,16], "src": [272,176], "f": 0, "t": 413, "d": [108,32], "a": 1 }, + { "px": [128,16], "src": [272,176], "f": 0, "t": 413, "d": [108,33], "a": 1 }, + { "px": [144,16], "src": [272,176], "f": 0, "t": 413, "d": [108,34], "a": 1 }, + { "px": [160,16], "src": [272,176], "f": 0, "t": 413, "d": [108,35], "a": 1 }, + { "px": [240,16], "src": [272,176], "f": 0, "t": 413, "d": [108,40], "a": 1 }, + { "px": [256,16], "src": [272,176], "f": 0, "t": 413, "d": [108,41], "a": 1 }, + { "px": [272,16], "src": [272,176], "f": 0, "t": 413, "d": [108,42], "a": 1 }, + { "px": [288,16], "src": [272,176], "f": 0, "t": 413, "d": [108,43], "a": 1 }, + { "px": [304,16], "src": [272,176], "f": 0, "t": 413, "d": [108,44], "a": 1 }, + { "px": [320,16], "src": [272,176], "f": 0, "t": 413, "d": [108,45], "a": 1 }, + { "px": [336,16], "src": [272,176], "f": 0, "t": 413, "d": [108,46], "a": 1 }, + { "px": [352,16], "src": [272,176], "f": 0, "t": 413, "d": [108,47], "a": 1 }, + { "px": [368,16], "src": [272,176], "f": 0, "t": 413, "d": [108,48], "a": 1 }, + { "px": [384,16], "src": [272,176], "f": 0, "t": 413, "d": [108,49], "a": 1 }, + { "px": [0,32], "src": [272,176], "f": 0, "t": 413, "d": [108,50], "a": 1 }, + { "px": [16,32], "src": [272,176], "f": 0, "t": 413, "d": [108,51], "a": 1 }, + { "px": [32,32], "src": [272,176], "f": 0, "t": 413, "d": [108,52], "a": 1 }, + { "px": [48,32], "src": [272,176], "f": 0, "t": 413, "d": [108,53], "a": 1 }, + { "px": [64,32], "src": [272,176], "f": 0, "t": 413, "d": [108,54], "a": 1 }, + { "px": [80,32], "src": [272,176], "f": 0, "t": 413, "d": [108,55], "a": 1 }, + { "px": [96,32], "src": [272,176], "f": 0, "t": 413, "d": [108,56], "a": 1 }, + { "px": [112,32], "src": [272,176], "f": 0, "t": 413, "d": [108,57], "a": 1 }, + { "px": [128,32], "src": [272,176], "f": 0, "t": 413, "d": [108,58], "a": 1 }, + { "px": [144,32], "src": [272,176], "f": 0, "t": 413, "d": [108,59], "a": 1 }, + { "px": [160,32], "src": [272,176], "f": 0, "t": 413, "d": [108,60], "a": 1 }, + { "px": [256,32], "src": [272,176], "f": 0, "t": 413, "d": [108,66], "a": 1 }, + { "px": [272,32], "src": [272,176], "f": 0, "t": 413, "d": [108,67], "a": 1 }, + { "px": [288,32], "src": [272,176], "f": 0, "t": 413, "d": [108,68], "a": 1 }, + { "px": [304,32], "src": [272,176], "f": 0, "t": 413, "d": [108,69], "a": 1 }, + { "px": [320,32], "src": [272,176], "f": 0, "t": 413, "d": [108,70], "a": 1 }, + { "px": [336,32], "src": [272,176], "f": 0, "t": 413, "d": [108,71], "a": 1 }, + { "px": [352,32], "src": [272,176], "f": 0, "t": 413, "d": [108,72], "a": 1 }, + { "px": [368,32], "src": [272,176], "f": 0, "t": 413, "d": [108,73], "a": 1 }, + { "px": [384,32], "src": [272,176], "f": 0, "t": 413, "d": [108,74], "a": 1 }, + { "px": [0,48], "src": [272,176], "f": 0, "t": 413, "d": [108,75], "a": 1 }, + { "px": [16,48], "src": [272,176], "f": 0, "t": 413, "d": [108,76], "a": 1 }, + { "px": [32,48], "src": [272,176], "f": 0, "t": 413, "d": [108,77], "a": 1 }, + { "px": [272,48], "src": [272,176], "f": 0, "t": 413, "d": [108,92], "a": 1 }, + { "px": [288,48], "src": [272,176], "f": 0, "t": 413, "d": [108,93], "a": 1 }, + { "px": [304,48], "src": [272,176], "f": 0, "t": 413, "d": [108,94], "a": 1 }, + { "px": [320,48], "src": [272,176], "f": 0, "t": 413, "d": [108,95], "a": 1 }, + { "px": [336,48], "src": [272,176], "f": 0, "t": 413, "d": [108,96], "a": 1 }, + { "px": [352,48], "src": [272,176], "f": 0, "t": 413, "d": [108,97], "a": 1 }, + { "px": [368,48], "src": [272,176], "f": 0, "t": 413, "d": [108,98], "a": 1 }, + { "px": [384,48], "src": [272,176], "f": 0, "t": 413, "d": [108,99], "a": 1 }, + { "px": [368,64], "src": [272,176], "f": 0, "t": 413, "d": [108,123], "a": 1 }, + { "px": [384,64], "src": [272,176], "f": 0, "t": 413, "d": [108,124], "a": 1 }, + { "px": [384,80], "src": [272,176], "f": 0, "t": 413, "d": [108,149], "a": 1 }, + { "px": [384,96], "src": [272,176], "f": 0, "t": 413, "d": [108,174], "a": 1 }, + { "px": [384,112], "src": [272,176], "f": 0, "t": 413, "d": [108,199], "a": 1 }, + { "px": [384,128], "src": [272,176], "f": 0, "t": 413, "d": [108,224], "a": 1 }, + { "px": [384,144], "src": [272,176], "f": 0, "t": 413, "d": [108,249], "a": 1 }, + { "px": [0,160], "src": [272,176], "f": 0, "t": 413, "d": [108,250], "a": 1 }, + { "px": [16,160], "src": [272,176], "f": 0, "t": 413, "d": [108,251], "a": 1 }, + { "px": [32,160], "src": [272,176], "f": 0, "t": 413, "d": [108,252], "a": 1 }, + { "px": [256,160], "src": [272,176], "f": 0, "t": 413, "d": [108,266], "a": 1 }, + { "px": [272,160], "src": [272,176], "f": 0, "t": 413, "d": [108,267], "a": 1 }, + { "px": [368,160], "src": [272,176], "f": 0, "t": 413, "d": [108,273], "a": 1 }, + { "px": [384,160], "src": [272,176], "f": 0, "t": 413, "d": [108,274], "a": 1 }, + { "px": [0,176], "src": [272,176], "f": 0, "t": 413, "d": [108,275], "a": 1 }, + { "px": [16,176], "src": [272,176], "f": 0, "t": 413, "d": [108,276], "a": 1 }, + { "px": [32,176], "src": [272,176], "f": 0, "t": 413, "d": [108,277], "a": 1 }, + { "px": [48,176], "src": [272,176], "f": 0, "t": 413, "d": [108,278], "a": 1 }, + { "px": [64,176], "src": [272,176], "f": 0, "t": 413, "d": [108,279], "a": 1 }, + { "px": [80,176], "src": [272,176], "f": 0, "t": 413, "d": [108,280], "a": 1 }, + { "px": [96,176], "src": [272,176], "f": 0, "t": 413, "d": [108,281], "a": 1 }, + { "px": [256,176], "src": [272,176], "f": 0, "t": 413, "d": [108,291], "a": 1 }, + { "px": [272,176], "src": [272,176], "f": 0, "t": 413, "d": [108,292], "a": 1 }, + { "px": [288,176], "src": [272,176], "f": 0, "t": 413, "d": [108,293], "a": 1 }, + { "px": [304,176], "src": [272,176], "f": 0, "t": 413, "d": [108,294], "a": 1 }, + { "px": [320,176], "src": [272,176], "f": 0, "t": 413, "d": [108,295], "a": 1 }, + { "px": [336,176], "src": [272,176], "f": 0, "t": 413, "d": [108,296], "a": 1 }, + { "px": [352,176], "src": [272,176], "f": 0, "t": 413, "d": [108,297], "a": 1 }, + { "px": [368,176], "src": [272,176], "f": 0, "t": 413, "d": [108,298], "a": 1 }, + { "px": [384,176], "src": [272,176], "f": 0, "t": 413, "d": [108,299], "a": 1 }, + { "px": [0,192], "src": [272,176], "f": 0, "t": 413, "d": [108,300], "a": 1 }, + { "px": [16,192], "src": [272,176], "f": 0, "t": 413, "d": [108,301], "a": 1 }, + { "px": [32,192], "src": [272,176], "f": 0, "t": 413, "d": [108,302], "a": 1 }, + { "px": [48,192], "src": [272,176], "f": 0, "t": 413, "d": [108,303], "a": 1 }, + { "px": [64,192], "src": [272,176], "f": 0, "t": 413, "d": [108,304], "a": 1 }, + { "px": [80,192], "src": [272,176], "f": 0, "t": 413, "d": [108,305], "a": 1 }, + { "px": [96,192], "src": [272,176], "f": 0, "t": 413, "d": [108,306], "a": 1 }, + { "px": [112,192], "src": [272,176], "f": 0, "t": 413, "d": [108,307], "a": 1 }, + { "px": [128,192], "src": [272,176], "f": 0, "t": 413, "d": [108,308], "a": 1 }, + { "px": [144,192], "src": [272,176], "f": 0, "t": 413, "d": [108,309], "a": 1 }, + { "px": [160,192], "src": [272,176], "f": 0, "t": 413, "d": [108,310], "a": 1 }, + { "px": [176,192], "src": [272,176], "f": 0, "t": 413, "d": [108,311], "a": 1 }, + { "px": [192,192], "src": [272,176], "f": 0, "t": 413, "d": [108,312], "a": 1 }, + { "px": [208,192], "src": [272,176], "f": 0, "t": 413, "d": [108,313], "a": 1 }, + { "px": [224,192], "src": [272,176], "f": 0, "t": 413, "d": [108,314], "a": 1 }, + { "px": [240,192], "src": [272,176], "f": 0, "t": 413, "d": [108,315], "a": 1 }, + { "px": [256,192], "src": [272,176], "f": 0, "t": 413, "d": [108,316], "a": 1 }, + { "px": [272,192], "src": [272,176], "f": 0, "t": 413, "d": [108,317], "a": 1 }, + { "px": [288,192], "src": [272,176], "f": 0, "t": 413, "d": [108,318], "a": 1 }, + { "px": [304,192], "src": [272,176], "f": 0, "t": 413, "d": [108,319], "a": 1 }, + { "px": [320,192], "src": [272,176], "f": 0, "t": 413, "d": [108,320], "a": 1 }, + { "px": [336,192], "src": [272,176], "f": 0, "t": 413, "d": [108,321], "a": 1 }, + { "px": [352,192], "src": [272,176], "f": 0, "t": 413, "d": [108,322], "a": 1 }, + { "px": [368,192], "src": [272,176], "f": 0, "t": 413, "d": [108,323], "a": 1 }, + { "px": [384,192], "src": [272,176], "f": 0, "t": 413, "d": [108,324], "a": 1 }, + { "px": [0,208], "src": [272,176], "f": 0, "t": 413, "d": [108,325], "a": 1 }, + { "px": [16,208], "src": [272,176], "f": 0, "t": 413, "d": [108,326], "a": 1 }, + { "px": [32,208], "src": [272,176], "f": 0, "t": 413, "d": [108,327], "a": 1 }, + { "px": [48,208], "src": [272,176], "f": 0, "t": 413, "d": [108,328], "a": 1 }, + { "px": [64,208], "src": [272,176], "f": 0, "t": 413, "d": [108,329], "a": 1 }, + { "px": [80,208], "src": [272,176], "f": 0, "t": 413, "d": [108,330], "a": 1 }, + { "px": [96,208], "src": [272,176], "f": 0, "t": 413, "d": [108,331], "a": 1 }, + { "px": [112,208], "src": [272,176], "f": 0, "t": 413, "d": [108,332], "a": 1 }, + { "px": [128,208], "src": [272,176], "f": 0, "t": 413, "d": [108,333], "a": 1 }, + { "px": [144,208], "src": [272,176], "f": 0, "t": 413, "d": [108,334], "a": 1 }, + { "px": [160,208], "src": [272,176], "f": 0, "t": 413, "d": [108,335], "a": 1 }, + { "px": [176,208], "src": [272,176], "f": 0, "t": 413, "d": [108,336], "a": 1 }, + { "px": [192,208], "src": [272,176], "f": 0, "t": 413, "d": [108,337], "a": 1 }, + { "px": [208,208], "src": [272,176], "f": 0, "t": 413, "d": [108,338], "a": 1 }, + { "px": [224,208], "src": [272,176], "f": 0, "t": 413, "d": [108,339], "a": 1 }, + { "px": [240,208], "src": [272,176], "f": 0, "t": 413, "d": [108,340], "a": 1 }, + { "px": [256,208], "src": [272,176], "f": 0, "t": 413, "d": [108,341], "a": 1 }, + { "px": [272,208], "src": [272,176], "f": 0, "t": 413, "d": [108,342], "a": 1 }, + { "px": [288,208], "src": [272,176], "f": 0, "t": 413, "d": [108,343], "a": 1 }, + { "px": [304,208], "src": [272,176], "f": 0, "t": 413, "d": [108,344], "a": 1 }, + { "px": [320,208], "src": [272,176], "f": 0, "t": 413, "d": [108,345], "a": 1 }, + { "px": [336,208], "src": [272,176], "f": 0, "t": 413, "d": [108,346], "a": 1 }, + { "px": [352,208], "src": [272,176], "f": 0, "t": 413, "d": [108,347], "a": 1 }, + { "px": [368,208], "src": [272,176], "f": 0, "t": 413, "d": [108,348], "a": 1 }, + { "px": [384,208], "src": [272,176], "f": 0, "t": 413, "d": [108,349], "a": 1 }, + { "px": [240,32], "src": [272,192], "f": 1, "t": 449, "d": [109,65], "a": 1 }, + { "px": [48,48], "src": [272,192], "f": 0, "t": 449, "d": [109,78], "a": 1 }, + { "px": [144,48], "src": [272,192], "f": 1, "t": 449, "d": [109,84], "a": 1 }, + { "px": [160,48], "src": [272,192], "f": 0, "t": 449, "d": [109,85], "a": 1 }, + { "px": [256,48], "src": [272,192], "f": 1, "t": 449, "d": [109,91], "a": 1 }, + { "px": [288,64], "src": [272,192], "f": 1, "t": 449, "d": [109,118], "a": 1 }, + { "px": [304,64], "src": [272,192], "f": 0, "t": 449, "d": [109,119], "a": 1 }, + { "px": [352,64], "src": [272,192], "f": 1, "t": 449, "d": [109,122], "a": 1 }, + { "px": [368,80], "src": [272,192], "f": 1, "t": 449, "d": [109,148], "a": 1 }, + { "px": [368,144], "src": [272,192], "f": 3, "t": 449, "d": [109,248], "a": 1 }, + { "px": [48,160], "src": [272,192], "f": 2, "t": 449, "d": [109,253], "a": 1 }, + { "px": [288,160], "src": [272,192], "f": 2, "t": 449, "d": [109,268], "a": 1 }, + { "px": [320,160], "src": [272,192], "f": 2, "t": 449, "d": [109,270], "a": 1 }, + { "px": [320,160], "src": [272,192], "f": 3, "t": 449, "d": [109,270], "a": 1 }, + { "px": [352,160], "src": [272,192], "f": 3, "t": 449, "d": [109,272], "a": 1 }, + { "px": [112,176], "src": [272,192], "f": 2, "t": 449, "d": [109,282], "a": 1 }, + { "px": [160,176], "src": [272,192], "f": 2, "t": 449, "d": [109,285], "a": 1 }, + { "px": [160,176], "src": [272,192], "f": 3, "t": 449, "d": [109,285], "a": 1 }, + { "px": [240,176], "src": [272,192], "f": 3, "t": 449, "d": [109,290], "a": 1 } + ], + "seed": 7984049, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 25, + "__cHei": 14, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35b67a0-66b0-11ec-9cd7-9b1295a4bed4", + "levelId": 41, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [208,0], "src": [64,192], "f": 0, "t": 436, "d": [51,13], "a": 1 }, + { "px": [208,16], "src": [48,192], "f": 0, "t": 435, "d": [51,38], "a": 1 }, + { "px": [208,32], "src": [48,192], "f": 0, "t": 435, "d": [51,63], "a": 1 }, + { "px": [208,64], "src": [48,192], "f": 0, "t": 435, "d": [51,113], "a": 1 }, + { "px": [240,64], "src": [48,192], "f": 0, "t": 435, "d": [51,115], "a": 1 }, + { "px": [16,80], "src": [64,192], "f": 0, "t": 436, "d": [51,126], "a": 1 }, + { "px": [32,80], "src": [64,192], "f": 0, "t": 436, "d": [51,127], "a": 1 }, + { "px": [48,80], "src": [64,192], "f": 0, "t": 436, "d": [51,128], "a": 1 }, + { "px": [272,80], "src": [80,192], "f": 0, "t": 437, "d": [51,142], "a": 1 }, + { "px": [16,96], "src": [48,192], "f": 0, "t": 435, "d": [51,151], "a": 1 }, + { "px": [32,96], "src": [48,192], "f": 0, "t": 435, "d": [51,152], "a": 1 }, + { "px": [48,96], "src": [80,192], "f": 0, "t": 437, "d": [51,153], "a": 1 }, + { "px": [112,96], "src": [80,192], "f": 0, "t": 437, "d": [51,157], "a": 1 }, + { "px": [144,96], "src": [80,192], "f": 0, "t": 437, "d": [51,159], "a": 1 }, + { "px": [224,96], "src": [64,192], "f": 0, "t": 436, "d": [51,164], "a": 1 }, + { "px": [272,96], "src": [64,192], "f": 0, "t": 436, "d": [51,167], "a": 1 }, + { "px": [288,96], "src": [48,192], "f": 0, "t": 435, "d": [51,168], "a": 1 }, + { "px": [304,96], "src": [64,192], "f": 0, "t": 436, "d": [51,169], "a": 1 }, + { "px": [16,112], "src": [64,192], "f": 0, "t": 436, "d": [51,176], "a": 1 }, + { "px": [144,112], "src": [80,192], "f": 0, "t": 437, "d": [51,184], "a": 1 }, + { "px": [176,112], "src": [64,192], "f": 0, "t": 436, "d": [51,186], "a": 1 }, + { "px": [208,112], "src": [64,192], "f": 0, "t": 436, "d": [51,188], "a": 1 }, + { "px": [224,112], "src": [80,192], "f": 0, "t": 437, "d": [51,189], "a": 1 }, + { "px": [240,112], "src": [80,192], "f": 0, "t": 437, "d": [51,190], "a": 1 }, + { "px": [336,112], "src": [80,192], "f": 0, "t": 437, "d": [51,196], "a": 1 }, + { "px": [96,128], "src": [64,192], "f": 0, "t": 436, "d": [51,206], "a": 1 }, + { "px": [112,128], "src": [80,192], "f": 0, "t": 437, "d": [51,207], "a": 1 }, + { "px": [128,128], "src": [48,192], "f": 0, "t": 435, "d": [51,208], "a": 1 }, + { "px": [144,128], "src": [80,192], "f": 0, "t": 437, "d": [51,209], "a": 1 }, + { "px": [160,128], "src": [80,192], "f": 0, "t": 437, "d": [51,210], "a": 1 }, + { "px": [176,128], "src": [64,192], "f": 0, "t": 436, "d": [51,211], "a": 1 }, + { "px": [192,128], "src": [80,192], "f": 0, "t": 437, "d": [51,212], "a": 1 }, + { "px": [208,128], "src": [48,192], "f": 0, "t": 435, "d": [51,213], "a": 1 }, + { "px": [224,128], "src": [48,192], "f": 0, "t": 435, "d": [51,214], "a": 1 }, + { "px": [240,128], "src": [48,192], "f": 0, "t": 435, "d": [51,215], "a": 1 }, + { "px": [256,128], "src": [80,192], "f": 0, "t": 437, "d": [51,216], "a": 1 }, + { "px": [320,128], "src": [64,192], "f": 0, "t": 436, "d": [51,220], "a": 1 }, + { "px": [336,128], "src": [80,192], "f": 0, "t": 437, "d": [51,221], "a": 1 }, + { "px": [352,128], "src": [64,192], "f": 0, "t": 436, "d": [51,222], "a": 1 }, + { "px": [64,144], "src": [64,192], "f": 0, "t": 436, "d": [51,229], "a": 1 }, + { "px": [96,144], "src": [80,192], "f": 0, "t": 437, "d": [51,231], "a": 1 }, + { "px": [112,144], "src": [48,192], "f": 0, "t": 435, "d": [51,232], "a": 1 }, + { "px": [160,144], "src": [48,192], "f": 0, "t": 435, "d": [51,235], "a": 1 }, + { "px": [176,144], "src": [64,192], "f": 0, "t": 436, "d": [51,236], "a": 1 }, + { "px": [192,144], "src": [80,192], "f": 0, "t": 437, "d": [51,237], "a": 1 }, + { "px": [208,144], "src": [64,192], "f": 0, "t": 436, "d": [51,238], "a": 1 }, + { "px": [224,144], "src": [80,192], "f": 0, "t": 437, "d": [51,239], "a": 1 }, + { "px": [336,144], "src": [80,192], "f": 0, "t": 437, "d": [51,246], "a": 1 }, + { "px": [208,48], "src": [112,192], "f": 0, "t": 439, "d": [85,88], "a": 1 }, + { "px": [224,48], "src": [112,192], "f": 0, "t": 439, "d": [85,89], "a": 1 }, + { "px": [224,64], "src": [112,192], "f": 0, "t": 439, "d": [85,114], "a": 1 }, + { "px": [224,80], "src": [112,192], "f": 0, "t": 439, "d": [85,139], "a": 1 }, + { "px": [240,80], "src": [112,192], "f": 0, "t": 439, "d": [85,140], "a": 1 }, + { "px": [208,96], "src": [112,192], "f": 0, "t": 439, "d": [85,163], "a": 1 }, + { "px": [112,112], "src": [112,192], "f": 0, "t": 439, "d": [85,182], "a": 1 }, + { "px": [352,112], "src": [96,192], "f": 0, "t": 438, "d": [85,197], "a": 1 }, + { "px": [80,64], "src": [0,192], "f": 0, "t": 432, "d": [102,105], "a": 1 }, + { "px": [96,64], "src": [32,192], "f": 0, "t": 434, "d": [102,106], "a": 1 }, + { "px": [112,64], "src": [0,192], "f": 0, "t": 432, "d": [102,107], "a": 1 }, + { "px": [176,64], "src": [0,192], "f": 0, "t": 432, "d": [102,111], "a": 1 }, + { "px": [80,80], "src": [32,192], "f": 0, "t": 434, "d": [102,130], "a": 1 }, + { "px": [96,80], "src": [0,192], "f": 0, "t": 432, "d": [102,131], "a": 1 }, + { "px": [112,80], "src": [16,192], "f": 0, "t": 433, "d": [102,132], "a": 1 }, + { "px": [144,80], "src": [16,192], "f": 0, "t": 433, "d": [102,134], "a": 1 }, + { "px": [160,80], "src": [32,192], "f": 0, "t": 434, "d": [102,135], "a": 1 }, + { "px": [176,80], "src": [0,192], "f": 0, "t": 432, "d": [102,136], "a": 1 }, + { "px": [208,80], "src": [16,192], "f": 0, "t": 433, "d": [102,138], "a": 1 }, + { "px": [336,80], "src": [16,192], "f": 0, "t": 433, "d": [102,146], "a": 1 }, + { "px": [80,96], "src": [32,192], "f": 0, "t": 434, "d": [102,155], "a": 1 }, + { "px": [96,96], "src": [16,192], "f": 0, "t": 433, "d": [102,156], "a": 1 }, + { "px": [160,96], "src": [16,192], "f": 0, "t": 433, "d": [102,160], "a": 1 }, + { "px": [176,96], "src": [0,192], "f": 0, "t": 432, "d": [102,161], "a": 1 }, + { "px": [240,96], "src": [32,192], "f": 0, "t": 434, "d": [102,165], "a": 1 }, + { "px": [336,96], "src": [16,192], "f": 0, "t": 433, "d": [102,171], "a": 1 }, + { "px": [352,96], "src": [0,192], "f": 0, "t": 432, "d": [102,172], "a": 1 }, + { "px": [32,112], "src": [16,192], "f": 0, "t": 433, "d": [102,177], "a": 1 }, + { "px": [48,112], "src": [16,192], "f": 0, "t": 433, "d": [102,178], "a": 1 }, + { "px": [80,112], "src": [0,192], "f": 0, "t": 432, "d": [102,180], "a": 1 }, + { "px": [96,112], "src": [32,192], "f": 0, "t": 434, "d": [102,181], "a": 1 }, + { "px": [160,112], "src": [0,192], "f": 0, "t": 432, "d": [102,185], "a": 1 }, + { "px": [272,112], "src": [32,192], "f": 0, "t": 434, "d": [102,192], "a": 1 }, + { "px": [288,112], "src": [32,192], "f": 0, "t": 434, "d": [102,193], "a": 1 }, + { "px": [304,112], "src": [0,192], "f": 0, "t": 432, "d": [102,194], "a": 1 }, + { "px": [0,128], "src": [32,192], "f": 0, "t": 434, "d": [102,200], "a": 1 }, + { "px": [16,128], "src": [0,192], "f": 0, "t": 432, "d": [102,201], "a": 1 }, + { "px": [32,128], "src": [32,192], "f": 0, "t": 434, "d": [102,202], "a": 1 }, + { "px": [48,128], "src": [32,192], "f": 0, "t": 434, "d": [102,203], "a": 1 }, + { "px": [64,128], "src": [32,192], "f": 0, "t": 434, "d": [102,204], "a": 1 }, + { "px": [80,128], "src": [16,192], "f": 0, "t": 433, "d": [102,205], "a": 1 }, + { "px": [272,128], "src": [32,192], "f": 0, "t": 434, "d": [102,217], "a": 1 }, + { "px": [288,128], "src": [0,192], "f": 0, "t": 432, "d": [102,218], "a": 1 }, + { "px": [304,128], "src": [32,192], "f": 0, "t": 434, "d": [102,219], "a": 1 }, + { "px": [80,144], "src": [0,192], "f": 0, "t": 432, "d": [102,230], "a": 1 }, + { "px": [128,144], "src": [0,192], "f": 0, "t": 432, "d": [102,233], "a": 1 }, + { "px": [144,144], "src": [16,192], "f": 0, "t": 433, "d": [102,234], "a": 1 }, + { "px": [304,144], "src": [16,192], "f": 0, "t": 433, "d": [102,244], "a": 1 }, + { "px": [128,160], "src": [0,192], "f": 0, "t": 432, "d": [102,258], "a": 1 }, + { "px": [144,160], "src": [16,192], "f": 0, "t": 433, "d": [102,259], "a": 1 }, + { "px": [176,160], "src": [32,192], "f": 0, "t": 434, "d": [102,261], "a": 1 }, + { "px": [192,160], "src": [0,192], "f": 0, "t": 432, "d": [102,262], "a": 1 }, + { "px": [208,160], "src": [0,192], "f": 0, "t": 432, "d": [102,263], "a": 1 }, + { "px": [224,160], "src": [0,192], "f": 0, "t": 432, "d": [102,264], "a": 1 }, + { "px": [192,0], "src": [160,208], "f": 0, "t": 478, "d": [70,12], "a": 1 }, + { "px": [192,16], "src": [160,208], "f": 0, "t": 478, "d": [70,37], "a": 1 }, + { "px": [192,32], "src": [160,208], "f": 0, "t": 478, "d": [70,62], "a": 1 }, + { "px": [192,48], "src": [160,208], "f": 0, "t": 478, "d": [70,87], "a": 1 }, + { "px": [64,64], "src": [160,208], "f": 0, "t": 478, "d": [70,104], "a": 1 }, + { "px": [128,64], "src": [160,208], "f": 0, "t": 478, "d": [70,108], "a": 1 }, + { "px": [192,64], "src": [160,208], "f": 0, "t": 478, "d": [70,112], "a": 1 }, + { "px": [0,80], "src": [160,208], "f": 0, "t": 478, "d": [70,125], "a": 1 }, + { "px": [64,80], "src": [160,208], "f": 0, "t": 478, "d": [70,129], "a": 1 }, + { "px": [128,80], "src": [160,208], "f": 0, "t": 478, "d": [70,133], "a": 1 }, + { "px": [192,80], "src": [160,208], "f": 0, "t": 478, "d": [70,137], "a": 1 }, + { "px": [256,80], "src": [160,208], "f": 0, "t": 478, "d": [70,141], "a": 1 }, + { "px": [320,80], "src": [160,208], "f": 0, "t": 478, "d": [70,145], "a": 1 }, + { "px": [0,96], "src": [160,208], "f": 0, "t": 478, "d": [70,150], "a": 1 }, + { "px": [64,96], "src": [160,208], "f": 0, "t": 478, "d": [70,154], "a": 1 }, + { "px": [128,96], "src": [160,208], "f": 0, "t": 478, "d": [70,158], "a": 1 }, + { "px": [192,96], "src": [160,208], "f": 0, "t": 478, "d": [70,162], "a": 1 }, + { "px": [256,96], "src": [160,208], "f": 0, "t": 478, "d": [70,166], "a": 1 }, + { "px": [320,96], "src": [160,208], "f": 0, "t": 478, "d": [70,170], "a": 1 }, + { "px": [0,112], "src": [160,208], "f": 0, "t": 478, "d": [70,175], "a": 1 }, + { "px": [64,112], "src": [160,208], "f": 0, "t": 478, "d": [70,179], "a": 1 }, + { "px": [128,112], "src": [160,208], "f": 0, "t": 478, "d": [70,183], "a": 1 }, + { "px": [192,112], "src": [160,208], "f": 0, "t": 478, "d": [70,187], "a": 1 }, + { "px": [256,112], "src": [160,208], "f": 0, "t": 478, "d": [70,191], "a": 1 }, + { "px": [320,112], "src": [160,208], "f": 0, "t": 478, "d": [70,195], "a": 1 }, + { "px": [208,48], "src": [240,176], "f": 1, "t": 411, "d": [91,88], "a": 1 }, + { "px": [192,64], "src": [240,176], "f": 0, "t": 411, "d": [91,112], "a": 1 }, + { "px": [224,64], "src": [240,176], "f": 1, "t": 411, "d": [91,114], "a": 1 }, + { "px": [64,80], "src": [240,176], "f": 0, "t": 411, "d": [91,129], "a": 1 }, + { "px": [128,80], "src": [240,176], "f": 1, "t": 411, "d": [91,133], "a": 1 }, + { "px": [176,80], "src": [240,176], "f": 0, "t": 411, "d": [91,136], "a": 1 }, + { "px": [240,80], "src": [240,176], "f": 1, "t": 411, "d": [91,140], "a": 1 }, + { "px": [272,96], "src": [240,176], "f": 1, "t": 411, "d": [91,167], "a": 1 }, + { "px": [320,96], "src": [240,176], "f": 0, "t": 411, "d": [91,170], "a": 1 }, + { "px": [336,96], "src": [240,176], "f": 1, "t": 411, "d": [91,171], "a": 1 }, + { "px": [64,128], "src": [240,176], "f": 2, "t": 411, "d": [91,204], "a": 1 }, + { "px": [224,128], "src": [240,176], "f": 3, "t": 411, "d": [91,214], "a": 1 }, + { "px": [304,128], "src": [240,176], "f": 2, "t": 411, "d": [91,219], "a": 1 }, + { "px": [304,128], "src": [240,176], "f": 3, "t": 411, "d": [91,219], "a": 1 }, + { "px": [336,128], "src": [240,176], "f": 2, "t": 411, "d": [91,221], "a": 1 }, + { "px": [336,128], "src": [240,176], "f": 3, "t": 411, "d": [91,221], "a": 1 }, + { "px": [128,144], "src": [240,176], "f": 2, "t": 411, "d": [91,233], "a": 1 }, + { "px": [144,144], "src": [240,176], "f": 3, "t": 411, "d": [91,234], "a": 1 }, + { "px": [176,144], "src": [240,176], "f": 2, "t": 411, "d": [91,236], "a": 1 }, + { "px": [192,0], "src": [208,176], "f": 0, "t": 409, "d": [89,12], "a": 1 }, + { "px": [208,0], "src": [208,176], "f": 1, "t": 409, "d": [89,13], "a": 1 }, + { "px": [192,16], "src": [208,176], "f": 0, "t": 409, "d": [89,37], "a": 1 }, + { "px": [208,16], "src": [208,176], "f": 1, "t": 409, "d": [89,38], "a": 1 }, + { "px": [192,32], "src": [208,176], "f": 0, "t": 409, "d": [89,62], "a": 1 }, + { "px": [208,32], "src": [208,176], "f": 1, "t": 409, "d": [89,63], "a": 1 }, + { "px": [192,48], "src": [208,176], "f": 0, "t": 409, "d": [89,87], "a": 1 }, + { "px": [224,48], "src": [208,176], "f": 1, "t": 409, "d": [89,89], "a": 1 }, + { "px": [64,64], "src": [208,176], "f": 0, "t": 409, "d": [89,104], "a": 1 }, + { "px": [128,64], "src": [208,176], "f": 1, "t": 409, "d": [89,108], "a": 1 }, + { "px": [176,64], "src": [208,176], "f": 0, "t": 409, "d": [89,111], "a": 1 }, + { "px": [240,64], "src": [208,176], "f": 1, "t": 409, "d": [89,115], "a": 1 }, + { "px": [272,80], "src": [208,176], "f": 1, "t": 409, "d": [89,142], "a": 1 }, + { "px": [320,80], "src": [208,176], "f": 0, "t": 409, "d": [89,145], "a": 1 }, + { "px": [336,80], "src": [208,176], "f": 1, "t": 409, "d": [89,146], "a": 1 }, + { "px": [352,96], "src": [208,176], "f": 1, "t": 409, "d": [89,172], "a": 1 }, + { "px": [352,112], "src": [208,176], "f": 1, "t": 409, "d": [89,197], "a": 1 }, + { "px": [352,128], "src": [208,176], "f": 1, "t": 409, "d": [89,222], "a": 1 }, + { "px": [64,144], "src": [208,176], "f": 0, "t": 409, "d": [89,229], "a": 1 }, + { "px": [224,144], "src": [208,176], "f": 1, "t": 409, "d": [89,239], "a": 1 }, + { "px": [304,144], "src": [208,176], "f": 0, "t": 409, "d": [89,244], "a": 1 }, + { "px": [304,144], "src": [208,176], "f": 1, "t": 409, "d": [89,244], "a": 1 }, + { "px": [336,144], "src": [208,176], "f": 0, "t": 409, "d": [89,246], "a": 1 }, + { "px": [336,144], "src": [208,176], "f": 1, "t": 409, "d": [89,246], "a": 1 }, + { "px": [128,160], "src": [208,176], "f": 0, "t": 409, "d": [89,258], "a": 1 }, + { "px": [144,160], "src": [208,176], "f": 1, "t": 409, "d": [89,259], "a": 1 }, + { "px": [176,160], "src": [208,176], "f": 0, "t": 409, "d": [89,261], "a": 1 }, + { "px": [224,160], "src": [208,176], "f": 1, "t": 409, "d": [89,264], "a": 1 }, + { "px": [224,48], "src": [224,176], "f": 0, "t": 410, "d": [88,89], "a": 1 }, + { "px": [64,64], "src": [224,176], "f": 0, "t": 410, "d": [88,104], "a": 1 }, + { "px": [80,64], "src": [224,176], "f": 0, "t": 410, "d": [88,105], "a": 1 }, + { "px": [96,64], "src": [224,176], "f": 0, "t": 410, "d": [88,106], "a": 1 }, + { "px": [112,64], "src": [224,176], "f": 0, "t": 410, "d": [88,107], "a": 1 }, + { "px": [128,64], "src": [224,176], "f": 0, "t": 410, "d": [88,108], "a": 1 }, + { "px": [176,64], "src": [224,176], "f": 0, "t": 410, "d": [88,111], "a": 1 }, + { "px": [240,64], "src": [224,176], "f": 0, "t": 410, "d": [88,115], "a": 1 }, + { "px": [0,80], "src": [224,176], "f": 0, "t": 410, "d": [88,125], "a": 1 }, + { "px": [16,80], "src": [224,176], "f": 0, "t": 410, "d": [88,126], "a": 1 }, + { "px": [32,80], "src": [224,176], "f": 0, "t": 410, "d": [88,127], "a": 1 }, + { "px": [48,80], "src": [224,176], "f": 0, "t": 410, "d": [88,128], "a": 1 }, + { "px": [144,80], "src": [224,176], "f": 0, "t": 410, "d": [88,134], "a": 1 }, + { "px": [160,80], "src": [224,176], "f": 0, "t": 410, "d": [88,135], "a": 1 }, + { "px": [256,80], "src": [224,176], "f": 0, "t": 410, "d": [88,141], "a": 1 }, + { "px": [272,80], "src": [224,176], "f": 0, "t": 410, "d": [88,142], "a": 1 }, + { "px": [320,80], "src": [224,176], "f": 0, "t": 410, "d": [88,145], "a": 1 }, + { "px": [336,80], "src": [224,176], "f": 0, "t": 410, "d": [88,146], "a": 1 }, + { "px": [288,96], "src": [224,176], "f": 0, "t": 410, "d": [88,168], "a": 1 }, + { "px": [304,96], "src": [224,176], "f": 0, "t": 410, "d": [88,169], "a": 1 }, + { "px": [352,96], "src": [224,176], "f": 0, "t": 410, "d": [88,172], "a": 1 }, + { "px": [0,128], "src": [224,176], "f": 2, "t": 410, "d": [88,200], "a": 1 }, + { "px": [16,128], "src": [224,176], "f": 2, "t": 410, "d": [88,201], "a": 1 }, + { "px": [32,128], "src": [224,176], "f": 2, "t": 410, "d": [88,202], "a": 1 }, + { "px": [48,128], "src": [224,176], "f": 2, "t": 410, "d": [88,203], "a": 1 }, + { "px": [240,128], "src": [224,176], "f": 2, "t": 410, "d": [88,215], "a": 1 }, + { "px": [256,128], "src": [224,176], "f": 2, "t": 410, "d": [88,216], "a": 1 }, + { "px": [272,128], "src": [224,176], "f": 2, "t": 410, "d": [88,217], "a": 1 }, + { "px": [288,128], "src": [224,176], "f": 2, "t": 410, "d": [88,218], "a": 1 }, + { "px": [320,128], "src": [224,176], "f": 2, "t": 410, "d": [88,220], "a": 1 }, + { "px": [352,128], "src": [224,176], "f": 2, "t": 410, "d": [88,222], "a": 1 }, + { "px": [64,144], "src": [224,176], "f": 2, "t": 410, "d": [88,229], "a": 1 }, + { "px": [80,144], "src": [224,176], "f": 2, "t": 410, "d": [88,230], "a": 1 }, + { "px": [96,144], "src": [224,176], "f": 2, "t": 410, "d": [88,231], "a": 1 }, + { "px": [112,144], "src": [224,176], "f": 2, "t": 410, "d": [88,232], "a": 1 }, + { "px": [160,144], "src": [224,176], "f": 2, "t": 410, "d": [88,235], "a": 1 }, + { "px": [304,144], "src": [224,176], "f": 2, "t": 410, "d": [88,244], "a": 1 }, + { "px": [336,144], "src": [224,176], "f": 2, "t": 410, "d": [88,246], "a": 1 }, + { "px": [128,160], "src": [224,176], "f": 2, "t": 410, "d": [88,258], "a": 1 }, + { "px": [144,160], "src": [224,176], "f": 2, "t": 410, "d": [88,259], "a": 1 }, + { "px": [176,160], "src": [224,176], "f": 2, "t": 410, "d": [88,261], "a": 1 }, + { "px": [192,160], "src": [224,176], "f": 2, "t": 410, "d": [88,262], "a": 1 }, + { "px": [208,160], "src": [224,176], "f": 2, "t": 410, "d": [88,263], "a": 1 }, + { "px": [224,160], "src": [224,176], "f": 2, "t": 410, "d": [88,264], "a": 1 } + ], + "seed": 3519311, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a35a2f20-66b0-11ec-9cd7-db6f994e2834", "dir": "n" }, { "levelIid": "a35b8eb0-66b0-11ec-9cd7-3d16ec48af10", "dir": "w" } ] + }, + { + "identifier": "Secret_hideout", + "iid": "a35b8eb0-66b0-11ec-9cd7-3d16ec48af10", + "uid": 42, + "worldX": 320, + "worldY": 128, + "worldDepth": 0, + "pxWid": 272, + "pxHei": 176, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 17, + "__cHei": 11, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "490f2d40-66b0-11ec-8fc6-15226e62f245", + "levelId": 42, + "layerDefUid": 119, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 7922058, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Plant", + "__grid": [5,7], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 48, "y": 288, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "dfdcd420-66b0-11ec-8fc6-d3872b388a2a", + "width": 20, + "height": 20, + "defUid": 116, + "px": [88,128], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Golden", "__tile": { "tilesetUid": 117, "x": 48, "y": 288, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Golden"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [null] } + ] + }, + { + "__identifier": "Plant", + "__grid": [9,7], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 48, "y": 288, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "340fda10-66b0-11ec-8fc6-ff45663f8d26", + "width": 20, + "height": 20, + "defUid": 116, + "px": [152,128], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Golden", "__tile": { "tilesetUid": 117, "x": 48, "y": 288, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Golden"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [null] } + ] + }, + { + "__identifier": "Plant", + "__grid": [3,6], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 48, "y": 288, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "ac192aa0-7820-11ed-b9f3-85d24353256d", + "width": 20, + "height": 20, + "defUid": 116, + "px": [56,112], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Golden", "__tile": { "tilesetUid": 117, "x": 48, "y": 288, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Golden"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [null] } + ] + } + ] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 17, + "__cHei": 11, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35b8eb3-66b0-11ec-9cd7-6768dbed34ee", + "levelId": 42, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1, + 1,1,0,0,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [0,0], "src": [16,32], "f": 0, "t": 73, "d": [8,0], "a": 1 }, + { "px": [16,0], "src": [16,16], "f": 0, "t": 37, "d": [8,1], "a": 1 }, + { "px": [96,0], "src": [16,16], "f": 0, "t": 37, "d": [8,6], "a": 1 }, + { "px": [112,0], "src": [16,32], "f": 0, "t": 73, "d": [8,7], "a": 1 }, + { "px": [128,0], "src": [16,16], "f": 0, "t": 37, "d": [8,8], "a": 1 }, + { "px": [176,0], "src": [16,32], "f": 0, "t": 73, "d": [8,11], "a": 1 }, + { "px": [192,0], "src": [16,16], "f": 0, "t": 37, "d": [8,12], "a": 1 }, + { "px": [16,16], "src": [16,32], "f": 0, "t": 73, "d": [8,18], "a": 1 }, + { "px": [64,16], "src": [16,32], "f": 0, "t": 73, "d": [8,21], "a": 1 }, + { "px": [80,16], "src": [16,32], "f": 0, "t": 73, "d": [8,22], "a": 1 }, + { "px": [96,16], "src": [16,16], "f": 0, "t": 37, "d": [8,23], "a": 1 }, + { "px": [112,16], "src": [16,32], "f": 0, "t": 73, "d": [8,24], "a": 1 }, + { "px": [128,16], "src": [16,16], "f": 0, "t": 37, "d": [8,25], "a": 1 }, + { "px": [144,16], "src": [16,32], "f": 0, "t": 73, "d": [8,26], "a": 1 }, + { "px": [160,16], "src": [16,16], "f": 0, "t": 37, "d": [8,27], "a": 1 }, + { "px": [192,16], "src": [16,16], "f": 0, "t": 37, "d": [8,29], "a": 1 }, + { "px": [32,32], "src": [16,16], "f": 0, "t": 37, "d": [8,36], "a": 1 }, + { "px": [48,32], "src": [16,16], "f": 0, "t": 37, "d": [8,37], "a": 1 }, + { "px": [176,32], "src": [16,32], "f": 0, "t": 73, "d": [8,45], "a": 1 }, + { "px": [32,48], "src": [16,32], "f": 0, "t": 73, "d": [8,53], "a": 1 }, + { "px": [192,48], "src": [16,16], "f": 0, "t": 37, "d": [8,63], "a": 1 }, + { "px": [208,48], "src": [16,32], "f": 0, "t": 73, "d": [8,64], "a": 1 }, + { "px": [224,48], "src": [16,16], "f": 0, "t": 37, "d": [8,65], "a": 1 }, + { "px": [240,48], "src": [16,32], "f": 0, "t": 73, "d": [8,66], "a": 1 }, + { "px": [16,64], "src": [16,32], "f": 0, "t": 73, "d": [8,69], "a": 1 }, + { "px": [32,64], "src": [16,32], "f": 0, "t": 73, "d": [8,70], "a": 1 }, + { "px": [208,64], "src": [16,32], "f": 0, "t": 73, "d": [8,81], "a": 1 }, + { "px": [224,64], "src": [16,32], "f": 0, "t": 73, "d": [8,82], "a": 1 }, + { "px": [240,64], "src": [16,16], "f": 0, "t": 37, "d": [8,83], "a": 1 }, + { "px": [256,64], "src": [16,32], "f": 0, "t": 73, "d": [8,84], "a": 1 }, + { "px": [16,80], "src": [16,32], "f": 0, "t": 73, "d": [8,86], "a": 1 }, + { "px": [32,80], "src": [16,16], "f": 0, "t": 37, "d": [8,87], "a": 1 }, + { "px": [16,96], "src": [16,32], "f": 0, "t": 73, "d": [8,103], "a": 1 }, + { "px": [32,96], "src": [16,16], "f": 0, "t": 37, "d": [8,104], "a": 1 }, + { "px": [32,112], "src": [16,16], "f": 0, "t": 37, "d": [8,121], "a": 1 }, + { "px": [32,128], "src": [16,32], "f": 0, "t": 73, "d": [8,138], "a": 1 }, + { "px": [48,128], "src": [16,16], "f": 0, "t": 37, "d": [8,139], "a": 1 }, + { "px": [176,128], "src": [16,32], "f": 0, "t": 73, "d": [8,147], "a": 1 }, + { "px": [192,128], "src": [16,16], "f": 0, "t": 37, "d": [8,148], "a": 1 }, + { "px": [16,144], "src": [16,32], "f": 0, "t": 73, "d": [8,154], "a": 1 }, + { "px": [32,144], "src": [16,32], "f": 0, "t": 73, "d": [8,155], "a": 1 }, + { "px": [64,144], "src": [16,16], "f": 0, "t": 37, "d": [8,157], "a": 1 }, + { "px": [80,144], "src": [16,32], "f": 0, "t": 73, "d": [8,158], "a": 1 }, + { "px": [128,144], "src": [16,16], "f": 0, "t": 37, "d": [8,161], "a": 1 }, + { "px": [192,144], "src": [16,32], "f": 0, "t": 73, "d": [8,165], "a": 1 }, + { "px": [32,160], "src": [16,32], "f": 0, "t": 73, "d": [8,172], "a": 1 }, + { "px": [80,160], "src": [16,16], "f": 0, "t": 37, "d": [8,175], "a": 1 }, + { "px": [96,160], "src": [16,32], "f": 0, "t": 73, "d": [8,176], "a": 1 }, + { "px": [176,160], "src": [16,32], "f": 0, "t": 73, "d": [8,181], "a": 1 }, + { "px": [208,160], "src": [16,16], "f": 0, "t": 37, "d": [8,183], "a": 1 }, + { "px": [224,160], "src": [16,16], "f": 0, "t": 37, "d": [8,184], "a": 1 }, + { "px": [80,0], "src": [192,192], "f": 0, "t": 444, "d": [84,5], "a": 1 }, + { "px": [144,0], "src": [160,192], "f": 0, "t": 442, "d": [84,9], "a": 1 }, + { "px": [240,0], "src": [176,192], "f": 0, "t": 443, "d": [84,15], "a": 1 }, + { "px": [32,16], "src": [144,192], "f": 0, "t": 441, "d": [84,19], "a": 1 }, + { "px": [256,48], "src": [192,192], "f": 0, "t": 444, "d": [84,67], "a": 1 }, + { "px": [0,80], "src": [176,192], "f": 0, "t": 443, "d": [84,85], "a": 1 }, + { "px": [144,144], "src": [160,192], "f": 0, "t": 442, "d": [84,162], "a": 1 }, + { "px": [160,144], "src": [192,192], "f": 0, "t": 444, "d": [84,163], "a": 1 }, + { "px": [0,160], "src": [176,192], "f": 0, "t": 443, "d": [84,170], "a": 1 }, + { "px": [112,160], "src": [176,192], "f": 0, "t": 443, "d": [84,177], "a": 1 }, + { "px": [128,160], "src": [160,192], "f": 0, "t": 442, "d": [84,178], "a": 1 }, + { "px": [160,160], "src": [160,192], "f": 0, "t": 442, "d": [84,180], "a": 1 }, + { "px": [240,160], "src": [144,192], "f": 0, "t": 441, "d": [84,185], "a": 1 }, + { "px": [256,160], "src": [192,192], "f": 0, "t": 444, "d": [84,186], "a": 1 }, + { "px": [80,16], "src": [16,144], "f": 0, "t": 325, "d": [75,22], "a": 1 }, + { "px": [96,16], "src": [16,144], "f": 0, "t": 325, "d": [75,23], "a": 1 }, + { "px": [112,17], "src": [16,144], "f": 0, "t": 325, "d": [75,24], "a": 1 }, + { "px": [128,16], "src": [16,144], "f": 0, "t": 325, "d": [75,25], "a": 1 }, + { "px": [144,16], "src": [16,144], "f": 0, "t": 325, "d": [75,26], "a": 1 }, + { "px": [208,64], "src": [16,144], "f": 0, "t": 325, "d": [75,81], "a": 1 }, + { "px": [224,64], "src": [16,144], "f": 0, "t": 325, "d": [75,82], "a": 1 }, + { "px": [240,65], "src": [32,144], "f": 0, "t": 326, "d": [75,83], "a": 1 }, + { "px": [256,64], "src": [16,144], "f": 0, "t": 325, "d": [75,84], "a": 1 }, + { "px": [64,128], "src": [64,96], "f": 0, "t": 220, "d": [9,140], "a": 1 }, + { "px": [144,128], "src": [16,96], "f": 0, "t": 217, "d": [9,145], "a": 1 }, + { "px": [160,128], "src": [48,96], "f": 0, "t": 219, "d": [9,146], "a": 1 }, + { "px": [96,144], "src": [16,96], "f": 0, "t": 217, "d": [9,159], "a": 1 }, + { "px": [112,144], "src": [64,96], "f": 0, "t": 220, "d": [9,160], "a": 1 }, + { "px": [208,144], "src": [64,96], "f": 0, "t": 220, "d": [9,166], "a": 1 }, + { "px": [224,144], "src": [16,96], "f": 0, "t": 217, "d": [9,167], "a": 1 }, + { "px": [240,144], "src": [64,96], "f": 0, "t": 220, "d": [9,168], "a": 1 }, + { "px": [256,144], "src": [16,96], "f": 0, "t": 217, "d": [9,169], "a": 1 }, + { "px": [32,64], "src": [0,128], "f": 1, "t": 288, "d": [10,70], "a": 1 }, + { "px": [34,80], "src": [0,128], "f": 1, "t": 288, "d": [10,87], "a": 1 }, + { "px": [34,96], "src": [0,128], "f": 1, "t": 288, "d": [10,104], "a": 1 }, + { "px": [193,128], "src": [0,112], "f": 1, "t": 252, "d": [10,148], "a": 1 }, + { "px": [64,32], "src": [0,144], "f": 1, "t": 324, "d": [77,38], "a": 1 }, + { "px": [160,32], "src": [0,144], "f": 0, "t": 324, "d": [77,44], "a": 1 }, + { "px": [48,48], "src": [0,144], "f": 1, "t": 324, "d": [77,54], "a": 1 }, + { "px": [176,48], "src": [0,144], "f": 0, "t": 324, "d": [77,62], "a": 1 }, + { "px": [192,64], "src": [0,144], "f": 0, "t": 324, "d": [77,80], "a": 1 }, + { "px": [48,112], "src": [0,96], "f": 1, "t": 216, "d": [11,122], "a": 1 }, + { "px": [176,112], "src": [0,96], "f": 0, "t": 216, "d": [11,130], "a": 1 }, + { "px": [192,112], "src": [0,96], "f": 1, "t": 216, "d": [11,131], "a": 1 }, + { "px": [80,128], "src": [0,96], "f": 1, "t": 216, "d": [11,141], "a": 1 }, + { "px": [128,128], "src": [0,96], "f": 0, "t": 216, "d": [11,144], "a": 1 }, + { "px": [64,16], "src": [48,144], "f": 0, "t": 327, "d": [76,21], "a": 1 }, + { "px": [160,16], "src": [48,144], "f": 1, "t": 327, "d": [76,27], "a": 1 }, + { "px": [48,32], "src": [48,144], "f": 0, "t": 327, "d": [76,37], "a": 1 }, + { "px": [176,32], "src": [48,144], "f": 1, "t": 327, "d": [76,45], "a": 1 }, + { "px": [32,48], "src": [48,144], "f": 0, "t": 327, "d": [76,53], "a": 1 }, + { "px": [192,48], "src": [48,144], "f": 1, "t": 327, "d": [76,63], "a": 1 }, + { "px": [32,112], "src": [64,144], "f": 0, "t": 328, "d": [14,121], "a": 1 }, + { "px": [48,128], "src": [64,144], "f": 0, "t": 328, "d": [14,139], "a": 1 }, + { "px": [176,128], "src": [64,144], "f": 1, "t": 328, "d": [14,147], "a": 1 }, + { "px": [80,144], "src": [64,144], "f": 0, "t": 328, "d": [14,158], "a": 1 }, + { "px": [128,144], "src": [64,144], "f": 1, "t": 328, "d": [14,161], "a": 1 }, + { "px": [192,144], "src": [64,144], "f": 0, "t": 328, "d": [14,165], "a": 1 }, + { "px": [208,128], "src": [0,224], "f": 0, "t": 504, "d": [28,149], "a": 1 }, + { "px": [224,128], "src": [0,224], "f": 0, "t": 504, "d": [28,150], "a": 1 }, + { "px": [240,128], "src": [0,224], "f": 0, "t": 504, "d": [28,151], "a": 1 }, + { "px": [256,128], "src": [0,224], "f": 0, "t": 504, "d": [28,152], "a": 1 }, + { "px": [208,112], "src": [0,208], "f": 0, "t": 468, "d": [21,132], "a": 1 }, + { "px": [224,113], "src": [16,208], "f": 0, "t": 469, "d": [21,133], "a": 1 }, + { "px": [240,113], "src": [0,208], "f": 0, "t": 468, "d": [21,134], "a": 1 }, + { "px": [256,113], "src": [16,208], "f": 0, "t": 469, "d": [21,135], "a": 1 }, + { "px": [240,128], "src": [176,48], "f": 0, "t": 119, "d": [111,151], "a": 1 }, + { "px": [256,128], "src": [208,48], "f": 0, "t": 121, "d": [111,152], "a": 1 }, + { "px": [209,128], "src": [208,48], "f": 0, "t": 121, "d": [99,149], "a": 1 }, + { "px": [239,129], "src": [176,48], "f": 0, "t": 119, "d": [99,151], "a": 1 }, + { "px": [80,32], "src": [80,112], "f": 0, "t": 257, "d": [95,39], "a": 1 }, + { "px": [144,32], "src": [80,112], "f": 1, "t": 257, "d": [95,43], "a": 1 }, + { "px": [64,48], "src": [80,128], "f": 0, "t": 293, "d": [95,55], "a": 1 }, + { "px": [160,48], "src": [80,128], "f": 1, "t": 293, "d": [95,61], "a": 1 }, + { "px": [48,64], "src": [80,112], "f": 0, "t": 257, "d": [95,71], "a": 1 }, + { "px": [176,64], "src": [80,128], "f": 1, "t": 293, "d": [95,79], "a": 1 }, + { "px": [48,96], "src": [80,144], "f": 0, "t": 329, "d": [96,105], "a": 1 }, + { "px": [64,112], "src": [80,160], "f": 0, "t": 365, "d": [96,123], "a": 1 }, + { "px": [160,112], "src": [80,144], "f": 1, "t": 329, "d": [96,129], "a": 1 }, + { "px": [96,128], "src": [80,144], "f": 0, "t": 329, "d": [96,142], "a": 1 }, + { "px": [112,128], "src": [80,160], "f": 1, "t": 365, "d": [96,143], "a": 1 }, + { "px": [208,128], "src": [80,144], "f": 0, "t": 329, "d": [96,149], "a": 1 }, + { "px": [48,97], "src": [128,112], "f": 0, "t": 260, "d": [97,105], "a": 1 }, + { "px": [176,96], "src": [112,112], "f": 0, "t": 259, "d": [97,113], "a": 1 }, + { "px": [192,97], "src": [128,112], "f": 0, "t": 260, "d": [97,114], "a": 1 }, + { "px": [64,112], "src": [128,112], "f": 0, "t": 260, "d": [97,123], "a": 1 }, + { "px": [80,114], "src": [144,112], "f": 0, "t": 261, "d": [97,124], "a": 1 }, + { "px": [128,112], "src": [16,80], "f": 0, "t": 181, "d": [97,127], "a": 1 }, + { "px": [144,112], "src": [112,112], "f": 0, "t": 259, "d": [97,128], "a": 1 }, + { "px": [160,114], "src": [144,112], "f": 0, "t": 261, "d": [97,129], "a": 1 }, + { "px": [96,128], "src": [0,80], "f": 0, "t": 180, "d": [97,142], "a": 1 }, + { "px": [112,129], "src": [0,80], "f": 0, "t": 180, "d": [97,143], "a": 1 }, + { "px": [208,130], "src": [128,112], "f": 0, "t": 260, "d": [97,149], "a": 1 }, + { "px": [224,129], "src": [128,112], "f": 0, "t": 260, "d": [97,150], "a": 1 }, + { "px": [256,129], "src": [16,80], "f": 0, "t": 181, "d": [97,152], "a": 1 }, + { "px": [80,32], "src": [64,128], "f": 0, "t": 292, "d": [98,39], "a": 1 }, + { "px": [64,48], "src": [64,112], "f": 0, "t": 256, "d": [98,55], "a": 1 }, + { "px": [48,64], "src": [64,112], "f": 0, "t": 256, "d": [98,71], "a": 1 }, + { "px": [176,64], "src": [64,128], "f": 1, "t": 292, "d": [98,79], "a": 1 }, + { "px": [48,96], "src": [64,128], "f": 0, "t": 292, "d": [98,105], "a": 1 }, + { "px": [64,112], "src": [64,112], "f": 0, "t": 256, "d": [98,123], "a": 1 }, + { "px": [112,128], "src": [64,128], "f": 1, "t": 292, "d": [98,143], "a": 1 }, + { "px": [208,128], "src": [64,128], "f": 0, "t": 292, "d": [98,149], "a": 1 }, + { "px": [64,48], "src": [112,80], "f": 0, "t": 187, "d": [93,55], "a": 1 }, + { "px": [240,80], "src": [112,80], "f": 0, "t": 187, "d": [93,100], "a": 1 }, + { "px": [80,32], "src": [112,96], "f": 0, "t": 223, "d": [101,39], "a": 1 }, + { "px": [112,32], "src": [112,96], "f": 0, "t": 223, "d": [101,41], "a": 1 }, + { "px": [128,32], "src": [128,96], "f": 0, "t": 224, "d": [101,42], "a": 1 }, + { "px": [144,32], "src": [112,96], "f": 0, "t": 223, "d": [101,43], "a": 1 }, + { "px": [64,48], "src": [128,96], "f": 0, "t": 224, "d": [101,55], "a": 1 }, + { "px": [160,48], "src": [128,96], "f": 0, "t": 224, "d": [101,61], "a": 1 }, + { "px": [48,64], "src": [112,96], "f": 0, "t": 223, "d": [101,71], "a": 1 }, + { "px": [176,64], "src": [112,96], "f": 0, "t": 223, "d": [101,79], "a": 1 }, + { "px": [192,80], "src": [112,96], "f": 0, "t": 223, "d": [101,97], "a": 1 }, + { "px": [208,80], "src": [112,96], "f": 0, "t": 223, "d": [101,98], "a": 1 }, + { "px": [224,80], "src": [112,96], "f": 0, "t": 223, "d": [101,99], "a": 1 }, + { "px": [240,80], "src": [128,96], "f": 0, "t": 224, "d": [101,100], "a": 1 }, + { "px": [256,80], "src": [112,96], "f": 0, "t": 223, "d": [101,101], "a": 1 }, + { "px": [32,0], "src": [208,208], "f": 0, "t": 481, "d": [104,2], "a": 1 }, + { "px": [48,0], "src": [192,208], "f": 0, "t": 480, "d": [104,3], "a": 1 }, + { "px": [64,0], "src": [208,208], "f": 0, "t": 481, "d": [104,4], "a": 1 }, + { "px": [160,0], "src": [208,208], "f": 0, "t": 481, "d": [104,10], "a": 1 }, + { "px": [208,0], "src": [192,208], "f": 0, "t": 480, "d": [104,13], "a": 1 }, + { "px": [224,0], "src": [192,208], "f": 0, "t": 480, "d": [104,14], "a": 1 }, + { "px": [256,0], "src": [176,208], "f": 0, "t": 479, "d": [104,16], "a": 1 }, + { "px": [0,16], "src": [192,208], "f": 0, "t": 480, "d": [104,17], "a": 1 }, + { "px": [48,16], "src": [208,208], "f": 0, "t": 481, "d": [104,20], "a": 1 }, + { "px": [176,16], "src": [192,208], "f": 0, "t": 480, "d": [104,28], "a": 1 }, + { "px": [208,16], "src": [176,208], "f": 0, "t": 479, "d": [104,30], "a": 1 }, + { "px": [224,16], "src": [192,208], "f": 0, "t": 480, "d": [104,31], "a": 1 }, + { "px": [240,16], "src": [208,208], "f": 0, "t": 481, "d": [104,32], "a": 1 }, + { "px": [256,16], "src": [192,208], "f": 0, "t": 480, "d": [104,33], "a": 1 }, + { "px": [0,32], "src": [208,208], "f": 0, "t": 481, "d": [104,34], "a": 1 }, + { "px": [16,32], "src": [176,208], "f": 0, "t": 479, "d": [104,35], "a": 1 }, + { "px": [192,32], "src": [192,208], "f": 0, "t": 480, "d": [104,46], "a": 1 }, + { "px": [208,32], "src": [176,208], "f": 0, "t": 479, "d": [104,47], "a": 1 }, + { "px": [224,32], "src": [192,208], "f": 0, "t": 480, "d": [104,48], "a": 1 }, + { "px": [240,32], "src": [208,208], "f": 0, "t": 481, "d": [104,49], "a": 1 }, + { "px": [256,32], "src": [192,208], "f": 0, "t": 480, "d": [104,50], "a": 1 }, + { "px": [0,48], "src": [176,208], "f": 0, "t": 479, "d": [104,51], "a": 1 }, + { "px": [16,48], "src": [176,208], "f": 0, "t": 479, "d": [104,52], "a": 1 }, + { "px": [0,64], "src": [208,208], "f": 0, "t": 481, "d": [104,68], "a": 1 }, + { "px": [0,96], "src": [192,208], "f": 0, "t": 480, "d": [104,102], "a": 1 }, + { "px": [0,112], "src": [192,208], "f": 0, "t": 480, "d": [104,119], "a": 1 }, + { "px": [16,112], "src": [192,208], "f": 0, "t": 480, "d": [104,120], "a": 1 }, + { "px": [0,128], "src": [208,208], "f": 0, "t": 481, "d": [104,136], "a": 1 }, + { "px": [16,128], "src": [192,208], "f": 0, "t": 480, "d": [104,137], "a": 1 }, + { "px": [0,144], "src": [208,208], "f": 0, "t": 481, "d": [104,153], "a": 1 }, + { "px": [48,144], "src": [192,208], "f": 0, "t": 480, "d": [104,156], "a": 1 }, + { "px": [176,144], "src": [208,208], "f": 0, "t": 481, "d": [104,164], "a": 1 }, + { "px": [16,160], "src": [192,208], "f": 0, "t": 480, "d": [104,171], "a": 1 }, + { "px": [48,160], "src": [176,208], "f": 0, "t": 479, "d": [104,173], "a": 1 }, + { "px": [64,160], "src": [208,208], "f": 0, "t": 481, "d": [104,174], "a": 1 }, + { "px": [144,160], "src": [208,208], "f": 0, "t": 481, "d": [104,179], "a": 1 }, + { "px": [192,160], "src": [192,208], "f": 0, "t": 480, "d": [104,182], "a": 1 }, + { "px": [0,0], "src": [272,176], "f": 0, "t": 413, "d": [108,0], "a": 1 }, + { "px": [16,0], "src": [272,176], "f": 0, "t": 413, "d": [108,1], "a": 1 }, + { "px": [32,0], "src": [272,176], "f": 0, "t": 413, "d": [108,2], "a": 1 }, + { "px": [48,0], "src": [272,176], "f": 0, "t": 413, "d": [108,3], "a": 1 }, + { "px": [64,0], "src": [272,176], "f": 0, "t": 413, "d": [108,4], "a": 1 }, + { "px": [80,0], "src": [272,176], "f": 0, "t": 413, "d": [108,5], "a": 1 }, + { "px": [96,0], "src": [272,176], "f": 0, "t": 413, "d": [108,6], "a": 1 }, + { "px": [112,0], "src": [272,176], "f": 0, "t": 413, "d": [108,7], "a": 1 }, + { "px": [128,0], "src": [272,176], "f": 0, "t": 413, "d": [108,8], "a": 1 }, + { "px": [144,0], "src": [272,176], "f": 0, "t": 413, "d": [108,9], "a": 1 }, + { "px": [160,0], "src": [272,176], "f": 0, "t": 413, "d": [108,10], "a": 1 }, + { "px": [176,0], "src": [272,176], "f": 0, "t": 413, "d": [108,11], "a": 1 }, + { "px": [192,0], "src": [272,176], "f": 0, "t": 413, "d": [108,12], "a": 1 }, + { "px": [208,0], "src": [272,176], "f": 0, "t": 413, "d": [108,13], "a": 1 }, + { "px": [224,0], "src": [272,176], "f": 0, "t": 413, "d": [108,14], "a": 1 }, + { "px": [240,0], "src": [272,176], "f": 0, "t": 413, "d": [108,15], "a": 1 }, + { "px": [256,0], "src": [272,176], "f": 0, "t": 413, "d": [108,16], "a": 1 }, + { "px": [0,16], "src": [272,176], "f": 0, "t": 413, "d": [108,17], "a": 1 }, + { "px": [16,16], "src": [272,176], "f": 0, "t": 413, "d": [108,18], "a": 1 }, + { "px": [32,16], "src": [272,176], "f": 0, "t": 413, "d": [108,19], "a": 1 }, + { "px": [48,16], "src": [272,176], "f": 0, "t": 413, "d": [108,20], "a": 1 }, + { "px": [176,16], "src": [272,176], "f": 0, "t": 413, "d": [108,28], "a": 1 }, + { "px": [192,16], "src": [272,176], "f": 0, "t": 413, "d": [108,29], "a": 1 }, + { "px": [208,16], "src": [272,176], "f": 0, "t": 413, "d": [108,30], "a": 1 }, + { "px": [224,16], "src": [272,176], "f": 0, "t": 413, "d": [108,31], "a": 1 }, + { "px": [240,16], "src": [272,176], "f": 0, "t": 413, "d": [108,32], "a": 1 }, + { "px": [256,16], "src": [272,176], "f": 0, "t": 413, "d": [108,33], "a": 1 }, + { "px": [0,32], "src": [272,176], "f": 0, "t": 413, "d": [108,34], "a": 1 }, + { "px": [16,32], "src": [272,176], "f": 0, "t": 413, "d": [108,35], "a": 1 }, + { "px": [32,32], "src": [272,176], "f": 0, "t": 413, "d": [108,36], "a": 1 }, + { "px": [192,32], "src": [272,176], "f": 0, "t": 413, "d": [108,46], "a": 1 }, + { "px": [208,32], "src": [272,176], "f": 0, "t": 413, "d": [108,47], "a": 1 }, + { "px": [224,32], "src": [272,176], "f": 0, "t": 413, "d": [108,48], "a": 1 }, + { "px": [240,32], "src": [272,176], "f": 0, "t": 413, "d": [108,49], "a": 1 }, + { "px": [256,32], "src": [272,176], "f": 0, "t": 413, "d": [108,50], "a": 1 }, + { "px": [0,48], "src": [272,176], "f": 0, "t": 413, "d": [108,51], "a": 1 }, + { "px": [16,48], "src": [272,176], "f": 0, "t": 413, "d": [108,52], "a": 1 }, + { "px": [208,48], "src": [272,176], "f": 0, "t": 413, "d": [108,64], "a": 1 }, + { "px": [224,48], "src": [272,176], "f": 0, "t": 413, "d": [108,65], "a": 1 }, + { "px": [240,48], "src": [272,176], "f": 0, "t": 413, "d": [108,66], "a": 1 }, + { "px": [256,48], "src": [272,176], "f": 0, "t": 413, "d": [108,67], "a": 1 }, + { "px": [0,64], "src": [272,176], "f": 0, "t": 413, "d": [108,68], "a": 1 }, + { "px": [16,64], "src": [272,176], "f": 0, "t": 413, "d": [108,69], "a": 1 }, + { "px": [0,80], "src": [272,176], "f": 0, "t": 413, "d": [108,85], "a": 1 }, + { "px": [16,80], "src": [272,176], "f": 0, "t": 413, "d": [108,86], "a": 1 }, + { "px": [0,96], "src": [272,176], "f": 0, "t": 413, "d": [108,102], "a": 1 }, + { "px": [16,96], "src": [272,176], "f": 0, "t": 413, "d": [108,103], "a": 1 }, + { "px": [0,112], "src": [272,176], "f": 0, "t": 413, "d": [108,119], "a": 1 }, + { "px": [16,112], "src": [272,176], "f": 0, "t": 413, "d": [108,120], "a": 1 }, + { "px": [0,128], "src": [272,176], "f": 0, "t": 413, "d": [108,136], "a": 1 }, + { "px": [16,128], "src": [272,176], "f": 0, "t": 413, "d": [108,137], "a": 1 }, + { "px": [32,128], "src": [272,176], "f": 0, "t": 413, "d": [108,138], "a": 1 }, + { "px": [0,144], "src": [272,176], "f": 0, "t": 413, "d": [108,153], "a": 1 }, + { "px": [16,144], "src": [272,176], "f": 0, "t": 413, "d": [108,154], "a": 1 }, + { "px": [32,144], "src": [272,176], "f": 0, "t": 413, "d": [108,155], "a": 1 }, + { "px": [48,144], "src": [272,176], "f": 0, "t": 413, "d": [108,156], "a": 1 }, + { "px": [64,144], "src": [272,176], "f": 0, "t": 413, "d": [108,157], "a": 1 }, + { "px": [144,144], "src": [272,176], "f": 0, "t": 413, "d": [108,162], "a": 1 }, + { "px": [160,144], "src": [272,176], "f": 0, "t": 413, "d": [108,163], "a": 1 }, + { "px": [176,144], "src": [272,176], "f": 0, "t": 413, "d": [108,164], "a": 1 }, + { "px": [0,160], "src": [272,176], "f": 0, "t": 413, "d": [108,170], "a": 1 }, + { "px": [16,160], "src": [272,176], "f": 0, "t": 413, "d": [108,171], "a": 1 }, + { "px": [32,160], "src": [272,176], "f": 0, "t": 413, "d": [108,172], "a": 1 }, + { "px": [48,160], "src": [272,176], "f": 0, "t": 413, "d": [108,173], "a": 1 }, + { "px": [64,160], "src": [272,176], "f": 0, "t": 413, "d": [108,174], "a": 1 }, + { "px": [80,160], "src": [272,176], "f": 0, "t": 413, "d": [108,175], "a": 1 }, + { "px": [96,160], "src": [272,176], "f": 0, "t": 413, "d": [108,176], "a": 1 }, + { "px": [112,160], "src": [272,176], "f": 0, "t": 413, "d": [108,177], "a": 1 }, + { "px": [128,160], "src": [272,176], "f": 0, "t": 413, "d": [108,178], "a": 1 }, + { "px": [144,160], "src": [272,176], "f": 0, "t": 413, "d": [108,179], "a": 1 }, + { "px": [160,160], "src": [272,176], "f": 0, "t": 413, "d": [108,180], "a": 1 }, + { "px": [176,160], "src": [272,176], "f": 0, "t": 413, "d": [108,181], "a": 1 }, + { "px": [192,160], "src": [272,176], "f": 0, "t": 413, "d": [108,182], "a": 1 }, + { "px": [208,160], "src": [272,176], "f": 0, "t": 413, "d": [108,183], "a": 1 }, + { "px": [224,160], "src": [272,176], "f": 0, "t": 413, "d": [108,184], "a": 1 }, + { "px": [240,160], "src": [272,176], "f": 0, "t": 413, "d": [108,185], "a": 1 }, + { "px": [256,160], "src": [272,176], "f": 0, "t": 413, "d": [108,186], "a": 1 }, + { "px": [64,16], "src": [272,192], "f": 0, "t": 449, "d": [109,21], "a": 1 }, + { "px": [160,16], "src": [272,192], "f": 1, "t": 449, "d": [109,27], "a": 1 }, + { "px": [48,32], "src": [272,192], "f": 0, "t": 449, "d": [109,37], "a": 1 }, + { "px": [176,32], "src": [272,192], "f": 1, "t": 449, "d": [109,45], "a": 1 }, + { "px": [32,48], "src": [272,192], "f": 0, "t": 449, "d": [109,53], "a": 1 }, + { "px": [192,48], "src": [272,192], "f": 1, "t": 449, "d": [109,63], "a": 1 }, + { "px": [32,112], "src": [272,192], "f": 2, "t": 449, "d": [109,121], "a": 1 }, + { "px": [48,128], "src": [272,192], "f": 2, "t": 449, "d": [109,139], "a": 1 }, + { "px": [176,128], "src": [272,192], "f": 3, "t": 449, "d": [109,147], "a": 1 }, + { "px": [80,144], "src": [272,192], "f": 2, "t": 449, "d": [109,158], "a": 1 }, + { "px": [128,144], "src": [272,192], "f": 3, "t": 449, "d": [109,161], "a": 1 }, + { "px": [192,144], "src": [272,192], "f": 2, "t": 449, "d": [109,165], "a": 1 } + ], + "seed": 4280771, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 17, + "__cHei": 11, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "a35b8eb4-66b0-11ec-9cd7-711c38613221", + "levelId": 42, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [112,48], "src": [64,192], "f": 0, "t": 436, "d": [51,58], "a": 1 }, + { "px": [160,48], "src": [80,192], "f": 0, "t": 437, "d": [51,61], "a": 1 }, + { "px": [80,64], "src": [48,192], "f": 0, "t": 435, "d": [51,73], "a": 1 }, + { "px": [96,64], "src": [80,192], "f": 0, "t": 437, "d": [51,74], "a": 1 }, + { "px": [144,64], "src": [64,192], "f": 0, "t": 436, "d": [51,77], "a": 1 }, + { "px": [160,64], "src": [80,192], "f": 0, "t": 437, "d": [51,78], "a": 1 }, + { "px": [176,64], "src": [64,192], "f": 0, "t": 436, "d": [51,79], "a": 1 }, + { "px": [48,80], "src": [64,192], "f": 0, "t": 436, "d": [51,88], "a": 1 }, + { "px": [80,80], "src": [64,192], "f": 0, "t": 436, "d": [51,90], "a": 1 }, + { "px": [96,80], "src": [64,192], "f": 0, "t": 436, "d": [51,91], "a": 1 }, + { "px": [112,80], "src": [48,192], "f": 0, "t": 435, "d": [51,92], "a": 1 }, + { "px": [96,96], "src": [64,192], "f": 0, "t": 436, "d": [51,108], "a": 1 }, + { "px": [112,96], "src": [48,192], "f": 0, "t": 435, "d": [51,109], "a": 1 }, + { "px": [144,96], "src": [80,192], "f": 0, "t": 437, "d": [51,111], "a": 1 }, + { "px": [176,96], "src": [80,192], "f": 0, "t": 437, "d": [51,113], "a": 1 }, + { "px": [144,112], "src": [48,192], "f": 0, "t": 435, "d": [51,128], "a": 1 }, + { "px": [80,48], "src": [112,192], "f": 0, "t": 439, "d": [85,56], "a": 1 }, + { "px": [112,64], "src": [128,192], "f": 0, "t": 440, "d": [85,75], "a": 1 }, + { "px": [176,80], "src": [128,192], "f": 0, "t": 440, "d": [85,96], "a": 1 }, + { "px": [48,96], "src": [112,192], "f": 0, "t": 439, "d": [85,105], "a": 1 }, + { "px": [240,96], "src": [128,192], "f": 0, "t": 440, "d": [85,117], "a": 1 }, + { "px": [80,32], "src": [32,192], "f": 0, "t": 434, "d": [102,39], "a": 1 }, + { "px": [96,32], "src": [32,192], "f": 0, "t": 434, "d": [102,40], "a": 1 }, + { "px": [112,32], "src": [16,192], "f": 0, "t": 433, "d": [102,41], "a": 1 }, + { "px": [144,32], "src": [16,192], "f": 0, "t": 433, "d": [102,43], "a": 1 }, + { "px": [96,48], "src": [0,192], "f": 0, "t": 432, "d": [102,57], "a": 1 }, + { "px": [144,48], "src": [32,192], "f": 0, "t": 434, "d": [102,60], "a": 1 }, + { "px": [48,64], "src": [0,192], "f": 0, "t": 432, "d": [102,71], "a": 1 }, + { "px": [144,80], "src": [16,192], "f": 0, "t": 433, "d": [102,94], "a": 1 }, + { "px": [160,80], "src": [0,192], "f": 0, "t": 432, "d": [102,95], "a": 1 }, + { "px": [208,80], "src": [0,192], "f": 0, "t": 432, "d": [102,98], "a": 1 }, + { "px": [224,80], "src": [0,192], "f": 0, "t": 432, "d": [102,99], "a": 1 }, + { "px": [240,80], "src": [0,192], "f": 0, "t": 432, "d": [102,100], "a": 1 }, + { "px": [80,96], "src": [32,192], "f": 0, "t": 434, "d": [102,107], "a": 1 }, + { "px": [160,96], "src": [0,192], "f": 0, "t": 432, "d": [102,112], "a": 1 }, + { "px": [208,96], "src": [16,192], "f": 0, "t": 433, "d": [102,115], "a": 1 }, + { "px": [224,96], "src": [32,192], "f": 0, "t": 434, "d": [102,116], "a": 1 }, + { "px": [80,112], "src": [32,192], "f": 0, "t": 434, "d": [102,124], "a": 1 }, + { "px": [96,112], "src": [32,192], "f": 0, "t": 434, "d": [102,125], "a": 1 }, + { "px": [112,112], "src": [16,192], "f": 0, "t": 433, "d": [102,126], "a": 1 }, + { "px": [160,112], "src": [16,192], "f": 0, "t": 433, "d": [102,129], "a": 1 }, + { "px": [208,112], "src": [32,192], "f": 0, "t": 434, "d": [102,132], "a": 1 }, + { "px": [224,112], "src": [32,192], "f": 0, "t": 434, "d": [102,133], "a": 1 }, + { "px": [240,112], "src": [0,192], "f": 0, "t": 432, "d": [102,134], "a": 1 }, + { "px": [96,128], "src": [16,192], "f": 0, "t": 433, "d": [102,142], "a": 1 }, + { "px": [112,128], "src": [32,192], "f": 0, "t": 434, "d": [102,143], "a": 1 }, + { "px": [208,128], "src": [16,192], "f": 0, "t": 433, "d": [102,149], "a": 1 }, + { "px": [224,128], "src": [16,192], "f": 0, "t": 433, "d": [102,150], "a": 1 }, + { "px": [240,128], "src": [32,192], "f": 0, "t": 434, "d": [102,151], "a": 1 }, + { "px": [256,128], "src": [32,192], "f": 0, "t": 434, "d": [102,152], "a": 1 }, + { "px": [128,32], "src": [160,208], "f": 0, "t": 478, "d": [70,42], "a": 1 }, + { "px": [64,48], "src": [160,208], "f": 0, "t": 478, "d": [70,55], "a": 1 }, + { "px": [128,48], "src": [160,208], "f": 0, "t": 478, "d": [70,59], "a": 1 }, + { "px": [64,64], "src": [160,208], "f": 0, "t": 478, "d": [70,72], "a": 1 }, + { "px": [128,64], "src": [160,208], "f": 0, "t": 478, "d": [70,76], "a": 1 }, + { "px": [64,80], "src": [160,208], "f": 0, "t": 478, "d": [70,89], "a": 1 }, + { "px": [128,80], "src": [160,208], "f": 0, "t": 478, "d": [70,93], "a": 1 }, + { "px": [192,80], "src": [160,208], "f": 0, "t": 478, "d": [70,97], "a": 1 }, + { "px": [256,80], "src": [160,208], "f": 0, "t": 478, "d": [70,101], "a": 1 }, + { "px": [64,96], "src": [160,208], "f": 0, "t": 478, "d": [70,106], "a": 1 }, + { "px": [128,96], "src": [160,208], "f": 0, "t": 478, "d": [70,110], "a": 1 }, + { "px": [192,96], "src": [160,208], "f": 0, "t": 478, "d": [70,114], "a": 1 }, + { "px": [256,96], "src": [160,208], "f": 0, "t": 478, "d": [70,118], "a": 1 }, + { "px": [64,112], "src": [160,208], "f": 0, "t": 478, "d": [70,123], "a": 1 }, + { "px": [128,112], "src": [160,208], "f": 0, "t": 478, "d": [70,127], "a": 1 }, + { "px": [256,112], "src": [160,208], "f": 0, "t": 478, "d": [70,135], "a": 1 }, + { "px": [80,48], "src": [240,176], "f": 0, "t": 411, "d": [91,56], "a": 1 }, + { "px": [144,48], "src": [240,176], "f": 1, "t": 411, "d": [91,60], "a": 1 }, + { "px": [64,64], "src": [240,176], "f": 0, "t": 411, "d": [91,72], "a": 1 }, + { "px": [160,64], "src": [240,176], "f": 1, "t": 411, "d": [91,78], "a": 1 }, + { "px": [176,80], "src": [240,176], "f": 1, "t": 411, "d": [91,96], "a": 1 }, + { "px": [64,96], "src": [240,176], "f": 2, "t": 411, "d": [91,106], "a": 1 }, + { "px": [160,96], "src": [240,176], "f": 3, "t": 411, "d": [91,112], "a": 1 }, + { "px": [208,96], "src": [240,176], "f": 2, "t": 411, "d": [91,115], "a": 1 }, + { "px": [96,112], "src": [240,176], "f": 2, "t": 411, "d": [91,125], "a": 1 }, + { "px": [112,112], "src": [240,176], "f": 3, "t": 411, "d": [91,126], "a": 1 }, + { "px": [80,32], "src": [208,176], "f": 0, "t": 409, "d": [89,39], "a": 1 }, + { "px": [144,32], "src": [208,176], "f": 1, "t": 409, "d": [89,43], "a": 1 }, + { "px": [64,48], "src": [208,176], "f": 0, "t": 409, "d": [89,55], "a": 1 }, + { "px": [160,48], "src": [208,176], "f": 1, "t": 409, "d": [89,61], "a": 1 }, + { "px": [48,64], "src": [208,176], "f": 0, "t": 409, "d": [89,71], "a": 1 }, + { "px": [176,64], "src": [208,176], "f": 1, "t": 409, "d": [89,79], "a": 1 }, + { "px": [48,80], "src": [208,176], "f": 0, "t": 409, "d": [89,88], "a": 1 }, + { "px": [48,96], "src": [208,176], "f": 0, "t": 409, "d": [89,105], "a": 1 }, + { "px": [64,112], "src": [208,176], "f": 0, "t": 409, "d": [89,123], "a": 1 }, + { "px": [160,112], "src": [208,176], "f": 1, "t": 409, "d": [89,129], "a": 1 }, + { "px": [208,112], "src": [208,176], "f": 0, "t": 409, "d": [89,132], "a": 1 }, + { "px": [96,128], "src": [208,176], "f": 0, "t": 409, "d": [89,142], "a": 1 }, + { "px": [112,128], "src": [208,176], "f": 1, "t": 409, "d": [89,143], "a": 1 }, + { "px": [208,128], "src": [208,176], "f": 0, "t": 409, "d": [89,149], "a": 1 }, + { "px": [80,32], "src": [224,176], "f": 0, "t": 410, "d": [88,39], "a": 1 }, + { "px": [96,32], "src": [224,176], "f": 0, "t": 410, "d": [88,40], "a": 1 }, + { "px": [112,32], "src": [224,176], "f": 0, "t": 410, "d": [88,41], "a": 1 }, + { "px": [128,32], "src": [224,176], "f": 0, "t": 410, "d": [88,42], "a": 1 }, + { "px": [144,32], "src": [224,176], "f": 0, "t": 410, "d": [88,43], "a": 1 }, + { "px": [64,48], "src": [224,176], "f": 0, "t": 410, "d": [88,55], "a": 1 }, + { "px": [160,48], "src": [224,176], "f": 0, "t": 410, "d": [88,61], "a": 1 }, + { "px": [48,64], "src": [224,176], "f": 0, "t": 410, "d": [88,71], "a": 1 }, + { "px": [176,64], "src": [224,176], "f": 0, "t": 410, "d": [88,79], "a": 1 }, + { "px": [192,80], "src": [224,176], "f": 0, "t": 410, "d": [88,97], "a": 1 }, + { "px": [208,80], "src": [224,176], "f": 0, "t": 410, "d": [88,98], "a": 1 }, + { "px": [224,80], "src": [224,176], "f": 0, "t": 410, "d": [88,99], "a": 1 }, + { "px": [240,80], "src": [224,176], "f": 0, "t": 410, "d": [88,100], "a": 1 }, + { "px": [256,80], "src": [224,176], "f": 0, "t": 410, "d": [88,101], "a": 1 }, + { "px": [48,96], "src": [224,176], "f": 2, "t": 410, "d": [88,105], "a": 1 }, + { "px": [176,96], "src": [224,176], "f": 2, "t": 410, "d": [88,113], "a": 1 }, + { "px": [192,96], "src": [224,176], "f": 2, "t": 410, "d": [88,114], "a": 1 }, + { "px": [64,112], "src": [224,176], "f": 2, "t": 410, "d": [88,123], "a": 1 }, + { "px": [80,112], "src": [224,176], "f": 2, "t": 410, "d": [88,124], "a": 1 }, + { "px": [128,112], "src": [224,176], "f": 2, "t": 410, "d": [88,127], "a": 1 }, + { "px": [144,112], "src": [224,176], "f": 2, "t": 410, "d": [88,128], "a": 1 }, + { "px": [160,112], "src": [224,176], "f": 2, "t": 410, "d": [88,129], "a": 1 }, + { "px": [96,128], "src": [224,176], "f": 2, "t": 410, "d": [88,142], "a": 1 }, + { "px": [112,128], "src": [224,176], "f": 2, "t": 410, "d": [88,143], "a": 1 }, + { "px": [208,128], "src": [224,176], "f": 2, "t": 410, "d": [88,149], "a": 1 }, + { "px": [224,128], "src": [224,176], "f": 2, "t": 410, "d": [88,150], "a": 1 }, + { "px": [240,128], "src": [224,176], "f": 2, "t": 410, "d": [88,151], "a": 1 }, + { "px": [256,128], "src": [224,176], "f": 2, "t": 410, "d": [88,152], "a": 1 } + ], + "seed": 3562072, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a35a2f20-66b0-11ec-9cd7-db6f994e2834", "dir": "n" }, { "levelIid": "a35acb61-66b0-11ec-9cd7-f76e35cfda30", "dir": "e" } ] + }, + { + "identifier": "World_Level_9", + "iid": "5cbed650-66b0-11ec-895f-23240977178f", + "uid": 112, + "worldX": -80, + "worldY": -560, + "worldDepth": 1, + "pxWid": 736, + "pxHei": 352, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": true, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 46, + "__cHei": 22, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "490f2d41-66b0-11ec-8fc6-e909dfc0010a", + "levelId": 112, + "layerDefUid": 119, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 3306830, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Plant", + "__grid": [23,11], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 0, "y": 336, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "464c9560-66b0-11ec-8fc6-bb54b59cd6ba", + "width": 20, + "height": 20, + "defUid": 116, + "px": [376,192], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Root", "__tile": { "tilesetUid": 117, "x": 0, "y": 336, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Root"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + } + ] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 46, + "__cHei": 22, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "5cbed651-66b0-11ec-895f-33adf067cadc", + "levelId": 112, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1, + 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,2,2,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, + 1,1,2,2,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [512,0], "src": [16,16], "f": 0, "t": 37, "d": [8,32], "a": 1 }, + { "px": [528,0], "src": [16,16], "f": 0, "t": 37, "d": [8,33], "a": 1 }, + { "px": [624,0], "src": [16,16], "f": 0, "t": 37, "d": [8,39], "a": 1 }, + { "px": [688,0], "src": [16,16], "f": 0, "t": 37, "d": [8,43], "a": 1 }, + { "px": [512,16], "src": [16,32], "f": 0, "t": 73, "d": [8,78], "a": 1 }, + { "px": [640,16], "src": [16,32], "f": 0, "t": 73, "d": [8,86], "a": 1 }, + { "px": [672,16], "src": [16,32], "f": 0, "t": 73, "d": [8,88], "a": 1 }, + { "px": [688,16], "src": [16,32], "f": 0, "t": 73, "d": [8,89], "a": 1 }, + { "px": [720,16], "src": [16,16], "f": 0, "t": 37, "d": [8,91], "a": 1 }, + { "px": [496,32], "src": [16,16], "f": 0, "t": 37, "d": [8,123], "a": 1 }, + { "px": [528,32], "src": [16,16], "f": 0, "t": 37, "d": [8,125], "a": 1 }, + { "px": [544,32], "src": [16,32], "f": 0, "t": 73, "d": [8,126], "a": 1 }, + { "px": [640,32], "src": [16,16], "f": 0, "t": 37, "d": [8,132], "a": 1 }, + { "px": [688,32], "src": [16,32], "f": 0, "t": 73, "d": [8,135], "a": 1 }, + { "px": [704,32], "src": [16,32], "f": 0, "t": 73, "d": [8,136], "a": 1 }, + { "px": [720,32], "src": [16,16], "f": 0, "t": 37, "d": [8,137], "a": 1 }, + { "px": [496,48], "src": [16,16], "f": 0, "t": 37, "d": [8,169], "a": 1 }, + { "px": [512,48], "src": [16,32], "f": 0, "t": 73, "d": [8,170], "a": 1 }, + { "px": [624,48], "src": [16,16], "f": 0, "t": 37, "d": [8,177], "a": 1 }, + { "px": [688,48], "src": [16,16], "f": 0, "t": 37, "d": [8,181], "a": 1 }, + { "px": [496,64], "src": [16,32], "f": 0, "t": 73, "d": [8,215], "a": 1 }, + { "px": [592,64], "src": [16,32], "f": 0, "t": 73, "d": [8,221], "a": 1 }, + { "px": [656,64], "src": [16,32], "f": 0, "t": 73, "d": [8,225], "a": 1 }, + { "px": [480,80], "src": [16,16], "f": 0, "t": 37, "d": [8,260], "a": 1 }, + { "px": [496,80], "src": [16,16], "f": 0, "t": 37, "d": [8,261], "a": 1 }, + { "px": [512,80], "src": [16,16], "f": 0, "t": 37, "d": [8,262], "a": 1 }, + { "px": [688,80], "src": [16,16], "f": 0, "t": 37, "d": [8,273], "a": 1 }, + { "px": [480,96], "src": [16,16], "f": 0, "t": 37, "d": [8,306], "a": 1 }, + { "px": [512,96], "src": [16,16], "f": 0, "t": 37, "d": [8,308], "a": 1 }, + { "px": [544,96], "src": [16,32], "f": 0, "t": 73, "d": [8,310], "a": 1 }, + { "px": [560,96], "src": [16,16], "f": 0, "t": 37, "d": [8,311], "a": 1 }, + { "px": [576,96], "src": [16,16], "f": 0, "t": 37, "d": [8,312], "a": 1 }, + { "px": [592,96], "src": [16,16], "f": 0, "t": 37, "d": [8,313], "a": 1 }, + { "px": [608,96], "src": [16,32], "f": 0, "t": 73, "d": [8,314], "a": 1 }, + { "px": [656,96], "src": [16,32], "f": 0, "t": 73, "d": [8,317], "a": 1 }, + { "px": [688,96], "src": [16,32], "f": 0, "t": 73, "d": [8,319], "a": 1 }, + { "px": [720,96], "src": [16,32], "f": 0, "t": 73, "d": [8,321], "a": 1 }, + { "px": [480,112], "src": [16,32], "f": 0, "t": 73, "d": [8,352], "a": 1 }, + { "px": [496,112], "src": [16,32], "f": 0, "t": 73, "d": [8,353], "a": 1 }, + { "px": [512,112], "src": [16,32], "f": 0, "t": 73, "d": [8,354], "a": 1 }, + { "px": [528,112], "src": [16,32], "f": 0, "t": 73, "d": [8,355], "a": 1 }, + { "px": [608,112], "src": [16,32], "f": 0, "t": 73, "d": [8,360], "a": 1 }, + { "px": [624,112], "src": [16,16], "f": 0, "t": 37, "d": [8,361], "a": 1 }, + { "px": [640,112], "src": [16,16], "f": 0, "t": 37, "d": [8,362], "a": 1 }, + { "px": [672,112], "src": [16,32], "f": 0, "t": 73, "d": [8,364], "a": 1 }, + { "px": [688,112], "src": [16,32], "f": 0, "t": 73, "d": [8,365], "a": 1 }, + { "px": [496,128], "src": [16,16], "f": 0, "t": 37, "d": [8,399], "a": 1 }, + { "px": [512,128], "src": [16,16], "f": 0, "t": 37, "d": [8,400], "a": 1 }, + { "px": [640,128], "src": [16,16], "f": 0, "t": 37, "d": [8,408], "a": 1 }, + { "px": [656,128], "src": [16,32], "f": 0, "t": 73, "d": [8,409], "a": 1 }, + { "px": [688,128], "src": [16,16], "f": 0, "t": 37, "d": [8,411], "a": 1 }, + { "px": [720,128], "src": [16,32], "f": 0, "t": 73, "d": [8,413], "a": 1 }, + { "px": [656,144], "src": [16,32], "f": 0, "t": 73, "d": [8,455], "a": 1 }, + { "px": [672,144], "src": [16,32], "f": 0, "t": 73, "d": [8,456], "a": 1 }, + { "px": [688,144], "src": [16,32], "f": 0, "t": 73, "d": [8,457], "a": 1 }, + { "px": [672,160], "src": [16,16], "f": 0, "t": 37, "d": [8,502], "a": 1 }, + { "px": [688,160], "src": [16,32], "f": 0, "t": 73, "d": [8,503], "a": 1 }, + { "px": [464,176], "src": [16,32], "f": 0, "t": 73, "d": [8,535], "a": 1 }, + { "px": [480,176], "src": [16,32], "f": 0, "t": 73, "d": [8,536], "a": 1 }, + { "px": [496,176], "src": [16,32], "f": 0, "t": 73, "d": [8,537], "a": 1 }, + { "px": [672,176], "src": [16,32], "f": 0, "t": 73, "d": [8,548], "a": 1 }, + { "px": [688,176], "src": [16,16], "f": 0, "t": 37, "d": [8,549], "a": 1 }, + { "px": [432,192], "src": [16,16], "f": 0, "t": 37, "d": [8,579], "a": 1 }, + { "px": [448,192], "src": [16,32], "f": 0, "t": 73, "d": [8,580], "a": 1 }, + { "px": [512,192], "src": [16,16], "f": 0, "t": 37, "d": [8,584], "a": 1 }, + { "px": [688,192], "src": [16,32], "f": 0, "t": 73, "d": [8,595], "a": 1 }, + { "px": [704,192], "src": [16,16], "f": 0, "t": 37, "d": [8,596], "a": 1 }, + { "px": [720,192], "src": [16,16], "f": 0, "t": 37, "d": [8,597], "a": 1 }, + { "px": [368,208], "src": [16,32], "f": 0, "t": 73, "d": [8,621], "a": 1 }, + { "px": [384,208], "src": [16,16], "f": 0, "t": 37, "d": [8,622], "a": 1 }, + { "px": [400,208], "src": [16,32], "f": 0, "t": 73, "d": [8,623], "a": 1 }, + { "px": [512,208], "src": [16,32], "f": 0, "t": 73, "d": [8,630], "a": 1 }, + { "px": [528,208], "src": [16,16], "f": 0, "t": 37, "d": [8,631], "a": 1 }, + { "px": [704,208], "src": [16,16], "f": 0, "t": 37, "d": [8,642], "a": 1 }, + { "px": [720,208], "src": [16,16], "f": 0, "t": 37, "d": [8,643], "a": 1 }, + { "px": [416,224], "src": [16,32], "f": 0, "t": 73, "d": [8,670], "a": 1 }, + { "px": [448,224], "src": [16,16], "f": 0, "t": 37, "d": [8,672], "a": 1 }, + { "px": [528,224], "src": [16,32], "f": 0, "t": 73, "d": [8,677], "a": 1 }, + { "px": [416,240], "src": [16,32], "f": 0, "t": 73, "d": [8,716], "a": 1 }, + { "px": [432,240], "src": [16,16], "f": 0, "t": 37, "d": [8,717], "a": 1 }, + { "px": [528,240], "src": [16,16], "f": 0, "t": 37, "d": [8,723], "a": 1 }, + { "px": [544,240], "src": [16,16], "f": 0, "t": 37, "d": [8,724], "a": 1 }, + { "px": [432,256], "src": [16,32], "f": 0, "t": 73, "d": [8,763], "a": 1 }, + { "px": [448,256], "src": [16,16], "f": 0, "t": 37, "d": [8,764], "a": 1 }, + { "px": [496,256], "src": [16,32], "f": 0, "t": 73, "d": [8,767], "a": 1 }, + { "px": [512,256], "src": [16,32], "f": 0, "t": 73, "d": [8,768], "a": 1 }, + { "px": [544,256], "src": [16,32], "f": 0, "t": 73, "d": [8,770], "a": 1 }, + { "px": [560,256], "src": [16,16], "f": 0, "t": 37, "d": [8,771], "a": 1 }, + { "px": [688,256], "src": [16,32], "f": 0, "t": 73, "d": [8,779], "a": 1 }, + { "px": [704,256], "src": [16,16], "f": 0, "t": 37, "d": [8,780], "a": 1 }, + { "px": [720,256], "src": [16,16], "f": 0, "t": 37, "d": [8,781], "a": 1 }, + { "px": [432,272], "src": [16,32], "f": 0, "t": 73, "d": [8,809], "a": 1 }, + { "px": [448,272], "src": [16,16], "f": 0, "t": 37, "d": [8,810], "a": 1 }, + { "px": [496,272], "src": [16,16], "f": 0, "t": 37, "d": [8,813], "a": 1 }, + { "px": [512,272], "src": [16,32], "f": 0, "t": 73, "d": [8,814], "a": 1 }, + { "px": [544,272], "src": [16,16], "f": 0, "t": 37, "d": [8,816], "a": 1 }, + { "px": [560,272], "src": [16,32], "f": 0, "t": 73, "d": [8,817], "a": 1 }, + { "px": [672,272], "src": [16,16], "f": 0, "t": 37, "d": [8,824], "a": 1 }, + { "px": [688,272], "src": [16,32], "f": 0, "t": 73, "d": [8,825], "a": 1 }, + { "px": [432,288], "src": [16,16], "f": 0, "t": 37, "d": [8,855], "a": 1 }, + { "px": [448,288], "src": [16,32], "f": 0, "t": 73, "d": [8,856], "a": 1 }, + { "px": [480,288], "src": [16,32], "f": 0, "t": 73, "d": [8,858], "a": 1 }, + { "px": [528,288], "src": [16,32], "f": 0, "t": 73, "d": [8,861], "a": 1 }, + { "px": [544,288], "src": [16,32], "f": 0, "t": 73, "d": [8,862], "a": 1 }, + { "px": [560,288], "src": [16,32], "f": 0, "t": 73, "d": [8,863], "a": 1 }, + { "px": [576,288], "src": [16,16], "f": 0, "t": 37, "d": [8,864], "a": 1 }, + { "px": [656,288], "src": [16,32], "f": 0, "t": 73, "d": [8,869], "a": 1 }, + { "px": [704,288], "src": [16,16], "f": 0, "t": 37, "d": [8,872], "a": 1 }, + { "px": [432,304], "src": [16,16], "f": 0, "t": 37, "d": [8,901], "a": 1 }, + { "px": [448,304], "src": [16,16], "f": 0, "t": 37, "d": [8,902], "a": 1 }, + { "px": [576,304], "src": [16,16], "f": 0, "t": 37, "d": [8,910], "a": 1 }, + { "px": [640,304], "src": [16,16], "f": 0, "t": 37, "d": [8,914], "a": 1 }, + { "px": [656,304], "src": [16,32], "f": 0, "t": 73, "d": [8,915], "a": 1 }, + { "px": [720,304], "src": [16,32], "f": 0, "t": 73, "d": [8,919], "a": 1 }, + { "px": [432,320], "src": [16,32], "f": 0, "t": 73, "d": [8,947], "a": 1 }, + { "px": [448,320], "src": [16,32], "f": 0, "t": 73, "d": [8,948], "a": 1 }, + { "px": [592,320], "src": [16,32], "f": 0, "t": 73, "d": [8,957], "a": 1 }, + { "px": [640,320], "src": [16,16], "f": 0, "t": 37, "d": [8,960], "a": 1 }, + { "px": [704,320], "src": [16,16], "f": 0, "t": 37, "d": [8,964], "a": 1 }, + { "px": [432,336], "src": [16,16], "f": 0, "t": 37, "d": [8,993], "a": 1 }, + { "px": [448,336], "src": [16,32], "f": 0, "t": 73, "d": [8,994], "a": 1 }, + { "px": [544,336], "src": [16,16], "f": 0, "t": 37, "d": [8,1000], "a": 1 }, + { "px": [576,336], "src": [16,16], "f": 0, "t": 37, "d": [8,1002], "a": 1 }, + { "px": [624,336], "src": [16,32], "f": 0, "t": 73, "d": [8,1005], "a": 1 }, + { "px": [640,0], "src": [192,192], "f": 0, "t": 444, "d": [84,40], "a": 1 }, + { "px": [512,32], "src": [144,192], "f": 0, "t": 441, "d": [84,124], "a": 1 }, + { "px": [592,32], "src": [144,192], "f": 0, "t": 441, "d": [84,129], "a": 1 }, + { "px": [560,48], "src": [160,192], "f": 0, "t": 442, "d": [84,173], "a": 1 }, + { "px": [592,48], "src": [144,192], "f": 0, "t": 441, "d": [84,175], "a": 1 }, + { "px": [624,64], "src": [144,192], "f": 0, "t": 441, "d": [84,223], "a": 1 }, + { "px": [560,80], "src": [176,192], "f": 0, "t": 443, "d": [84,265], "a": 1 }, + { "px": [576,80], "src": [160,192], "f": 0, "t": 442, "d": [84,266], "a": 1 }, + { "px": [608,80], "src": [176,192], "f": 0, "t": 443, "d": [84,268], "a": 1 }, + { "px": [496,96], "src": [160,192], "f": 0, "t": 442, "d": [84,307], "a": 1 }, + { "px": [624,96], "src": [160,192], "f": 0, "t": 442, "d": [84,315], "a": 1 }, + { "px": [656,112], "src": [160,192], "f": 0, "t": 442, "d": [84,363], "a": 1 }, + { "px": [704,144], "src": [160,192], "f": 0, "t": 442, "d": [84,458], "a": 1 }, + { "px": [416,208], "src": [144,192], "f": 0, "t": 441, "d": [84,624], "a": 1 }, + { "px": [432,224], "src": [144,192], "f": 0, "t": 441, "d": [84,671], "a": 1 }, + { "px": [448,240], "src": [144,192], "f": 0, "t": 441, "d": [84,718], "a": 1 }, + { "px": [480,256], "src": [160,192], "f": 0, "t": 442, "d": [84,766], "a": 1 }, + { "px": [480,320], "src": [144,192], "f": 0, "t": 441, "d": [84,950], "a": 1 }, + { "px": [560,336], "src": [160,192], "f": 0, "t": 442, "d": [84,1001], "a": 1 }, + { "px": [608,336], "src": [176,192], "f": 0, "t": 443, "d": [84,1004], "a": 1 }, + { "px": [704,336], "src": [176,192], "f": 0, "t": 443, "d": [84,1010], "a": 1 }, + { "px": [560,97], "src": [16,144], "f": 0, "t": 325, "d": [75,311], "a": 1 }, + { "px": [576,97], "src": [32,144], "f": 0, "t": 326, "d": [75,312], "a": 1 }, + { "px": [608,112], "src": [16,144], "f": 0, "t": 325, "d": [75,360], "a": 1 }, + { "px": [624,112], "src": [16,144], "f": 0, "t": 325, "d": [75,361], "a": 1 }, + { "px": [496,129], "src": [16,144], "f": 0, "t": 325, "d": [75,399], "a": 1 }, + { "px": [512,128], "src": [16,144], "f": 0, "t": 325, "d": [75,400], "a": 1 }, + { "px": [656,145], "src": [32,144], "f": 0, "t": 326, "d": [75,455], "a": 1 }, + { "px": [368,208], "src": [16,144], "f": 0, "t": 325, "d": [75,621], "a": 1 }, + { "px": [384,209], "src": [16,144], "f": 0, "t": 325, "d": [75,622], "a": 1 }, + { "px": [704,209], "src": [16,144], "f": 0, "t": 325, "d": [75,642], "a": 1 }, + { "px": [720,208], "src": [32,144], "f": 0, "t": 326, "d": [75,643], "a": 1 }, + { "px": [480,160], "src": [16,96], "f": 0, "t": 217, "d": [9,490], "a": 1 }, + { "px": [448,176], "src": [64,96], "f": 0, "t": 220, "d": [9,534], "a": 1 }, + { "px": [368,192], "src": [48,96], "f": 0, "t": 219, "d": [9,575], "a": 1 }, + { "px": [384,192], "src": [64,96], "f": 0, "t": 220, "d": [9,576], "a": 1 }, + { "px": [400,192], "src": [16,96], "f": 0, "t": 217, "d": [9,577], "a": 1 }, + { "px": [416,192], "src": [16,96], "f": 0, "t": 217, "d": [9,578], "a": 1 }, + { "px": [704,240], "src": [64,96], "f": 0, "t": 220, "d": [9,734], "a": 1 }, + { "px": [720,240], "src": [16,96], "f": 0, "t": 217, "d": [9,735], "a": 1 }, + { "px": [608,320], "src": [64,96], "f": 0, "t": 220, "d": [9,958], "a": 1 }, + { "px": [624,320], "src": [64,96], "f": 0, "t": 220, "d": [9,959], "a": 1 }, + { "px": [510,0], "src": [0,128], "f": 0, "t": 288, "d": [10,32], "a": 1 }, + { "px": [495,32], "src": [0,112], "f": 0, "t": 252, "d": [10,123], "a": 1 }, + { "px": [494,48], "src": [0,128], "f": 0, "t": 288, "d": [10,169], "a": 1 }, + { "px": [478,80], "src": [0,128], "f": 0, "t": 288, "d": [10,260], "a": 1 }, + { "px": [480,96], "src": [0,128], "f": 0, "t": 288, "d": [10,306], "a": 1 }, + { "px": [479,112], "src": [0,112], "f": 0, "t": 252, "d": [10,352], "a": 1 }, + { "px": [638,128], "src": [0,128], "f": 0, "t": 288, "d": [10,408], "a": 1 }, + { "px": [671,160], "src": [0,112], "f": 0, "t": 252, "d": [10,502], "a": 1 }, + { "px": [672,176], "src": [0,112], "f": 0, "t": 252, "d": [10,548], "a": 1 }, + { "px": [529,208], "src": [0,112], "f": 1, "t": 252, "d": [10,631], "a": 1 }, + { "px": [415,240], "src": [0,128], "f": 0, "t": 288, "d": [10,716], "a": 1 }, + { "px": [562,256], "src": [0,128], "f": 1, "t": 288, "d": [10,771], "a": 1 }, + { "px": [431,272], "src": [0,128], "f": 0, "t": 288, "d": [10,809], "a": 1 }, + { "px": [430,288], "src": [0,112], "f": 0, "t": 252, "d": [10,855], "a": 1 }, + { "px": [578,288], "src": [0,128], "f": 1, "t": 288, "d": [10,864], "a": 1 }, + { "px": [430,304], "src": [0,128], "f": 0, "t": 288, "d": [10,901], "a": 1 }, + { "px": [639,304], "src": [0,112], "f": 0, "t": 252, "d": [10,914], "a": 1 }, + { "px": [431,320], "src": [0,128], "f": 0, "t": 288, "d": [10,947], "a": 1 }, + { "px": [432,336], "src": [0,112], "f": 0, "t": 252, "d": [10,993], "a": 1 }, + { "px": [544,112], "src": [0,144], "f": 1, "t": 324, "d": [77,356], "a": 1 }, + { "px": [592,112], "src": [0,144], "f": 0, "t": 324, "d": [77,359], "a": 1 }, + { "px": [480,128], "src": [0,144], "f": 0, "t": 324, "d": [77,398], "a": 1 }, + { "px": [528,128], "src": [0,144], "f": 1, "t": 324, "d": [77,401], "a": 1 }, + { "px": [640,144], "src": [0,144], "f": 0, "t": 324, "d": [77,454], "a": 1 }, + { "px": [672,192], "src": [0,144], "f": 0, "t": 324, "d": [77,594], "a": 1 }, + { "px": [352,208], "src": [0,144], "f": 0, "t": 324, "d": [77,620], "a": 1 }, + { "px": [688,208], "src": [0,144], "f": 0, "t": 324, "d": [77,641], "a": 1 }, + { "px": [400,224], "src": [0,144], "f": 0, "t": 324, "d": [77,669], "a": 1 }, + { "px": [416,256], "src": [0,144], "f": 0, "t": 324, "d": [77,762], "a": 1 }, + { "px": [496,16], "src": [0,96], "f": 0, "t": 216, "d": [11,77], "a": 1 }, + { "px": [480,64], "src": [0,96], "f": 0, "t": 216, "d": [11,214], "a": 1 }, + { "px": [464,160], "src": [0,96], "f": 0, "t": 216, "d": [11,489], "a": 1 }, + { "px": [496,160], "src": [0,96], "f": 1, "t": 216, "d": [11,491], "a": 1 }, + { "px": [432,176], "src": [0,96], "f": 0, "t": 216, "d": [11,533], "a": 1 }, + { "px": [512,176], "src": [0,96], "f": 1, "t": 216, "d": [11,538], "a": 1 }, + { "px": [352,192], "src": [0,96], "f": 0, "t": 216, "d": [11,574], "a": 1 }, + { "px": [528,192], "src": [0,96], "f": 1, "t": 216, "d": [11,585], "a": 1 }, + { "px": [544,224], "src": [0,96], "f": 1, "t": 216, "d": [11,678], "a": 1 }, + { "px": [560,240], "src": [0,96], "f": 1, "t": 216, "d": [11,725], "a": 1 }, + { "px": [688,240], "src": [0,96], "f": 0, "t": 216, "d": [11,733], "a": 1 }, + { "px": [672,256], "src": [0,96], "f": 0, "t": 216, "d": [11,778], "a": 1 }, + { "px": [576,272], "src": [0,96], "f": 1, "t": 216, "d": [11,818], "a": 1 }, + { "px": [656,272], "src": [0,96], "f": 0, "t": 216, "d": [11,823], "a": 1 }, + { "px": [640,288], "src": [0,96], "f": 0, "t": 216, "d": [11,868], "a": 1 }, + { "px": [592,304], "src": [0,96], "f": 1, "t": 216, "d": [11,911], "a": 1 }, + { "px": [544,96], "src": [48,144], "f": 0, "t": 327, "d": [76,310], "a": 1 }, + { "px": [592,96], "src": [48,144], "f": 1, "t": 327, "d": [76,313], "a": 1 }, + { "px": [528,112], "src": [48,144], "f": 0, "t": 327, "d": [76,355], "a": 1 }, + { "px": [640,112], "src": [48,144], "f": 1, "t": 327, "d": [76,362], "a": 1 }, + { "px": [672,144], "src": [48,144], "f": 1, "t": 327, "d": [76,456], "a": 1 }, + { "px": [688,192], "src": [48,144], "f": 1, "t": 327, "d": [76,595], "a": 1 }, + { "px": [400,208], "src": [48,144], "f": 1, "t": 327, "d": [76,623], "a": 1 }, + { "px": [416,224], "src": [48,144], "f": 1, "t": 327, "d": [76,670], "a": 1 }, + { "px": [432,256], "src": [48,144], "f": 1, "t": 327, "d": [76,763], "a": 1 }, + { "px": [512,16], "src": [64,144], "f": 1, "t": 328, "d": [14,78], "a": 1 }, + { "px": [496,64], "src": [64,144], "f": 1, "t": 328, "d": [14,215], "a": 1 }, + { "px": [464,176], "src": [64,144], "f": 1, "t": 328, "d": [14,535], "a": 1 }, + { "px": [496,176], "src": [64,144], "f": 0, "t": 328, "d": [14,537], "a": 1 }, + { "px": [432,192], "src": [64,144], "f": 1, "t": 328, "d": [14,579], "a": 1 }, + { "px": [512,192], "src": [64,144], "f": 0, "t": 328, "d": [14,584], "a": 1 }, + { "px": [528,224], "src": [64,144], "f": 0, "t": 328, "d": [14,677], "a": 1 }, + { "px": [544,240], "src": [64,144], "f": 0, "t": 328, "d": [14,724], "a": 1 }, + { "px": [688,256], "src": [64,144], "f": 1, "t": 328, "d": [14,779], "a": 1 }, + { "px": [560,272], "src": [64,144], "f": 0, "t": 328, "d": [14,817], "a": 1 }, + { "px": [672,272], "src": [64,144], "f": 1, "t": 328, "d": [14,824], "a": 1 }, + { "px": [656,288], "src": [64,144], "f": 1, "t": 328, "d": [14,869], "a": 1 }, + { "px": [576,304], "src": [64,144], "f": 0, "t": 328, "d": [14,910], "a": 1 }, + { "px": [592,320], "src": [64,144], "f": 0, "t": 328, "d": [14,957], "a": 1 }, + { "px": [640,320], "src": [64,144], "f": 1, "t": 328, "d": [14,960], "a": 1 }, + { "px": [576,256], "src": [0,224], "f": 0, "t": 504, "d": [28,772], "a": 1 }, + { "px": [592,256], "src": [0,224], "f": 0, "t": 504, "d": [28,773], "a": 1 }, + { "px": [592,272], "src": [0,224], "f": 0, "t": 504, "d": [28,819], "a": 1 }, + { "px": [608,272], "src": [0,224], "f": 0, "t": 504, "d": [28,820], "a": 1 }, + { "px": [624,272], "src": [0,224], "f": 0, "t": 504, "d": [28,821], "a": 1 }, + { "px": [592,288], "src": [0,224], "f": 0, "t": 504, "d": [28,865], "a": 1 }, + { "px": [608,288], "src": [0,224], "f": 0, "t": 504, "d": [28,866], "a": 1 }, + { "px": [624,288], "src": [0,224], "f": 0, "t": 504, "d": [28,867], "a": 1 }, + { "px": [608,304], "src": [0,224], "f": 0, "t": 504, "d": [28,912], "a": 1 }, + { "px": [624,304], "src": [0,224], "f": 0, "t": 504, "d": [28,913], "a": 1 }, + { "px": [608,256], "src": [16,240], "f": 0, "t": 541, "d": [74,774], "a": 1 }, + { "px": [624,256], "src": [16,224], "f": 0, "t": 505, "d": [74,775], "a": 1 }, + { "px": [640,256], "src": [32,224], "f": 0, "t": 506, "d": [74,776], "a": 1 }, + { "px": [656,256], "src": [16,224], "f": 0, "t": 505, "d": [74,777], "a": 1 }, + { "px": [640,272], "src": [16,240], "f": 0, "t": 541, "d": [74,822], "a": 1 }, + { "px": [576,241], "src": [0,208], "f": 0, "t": 468, "d": [21,726], "a": 1 }, + { "px": [592,240], "src": [32,208], "f": 0, "t": 470, "d": [21,727], "a": 1 }, + { "px": [608,241], "src": [32,208], "f": 0, "t": 470, "d": [21,728], "a": 1 }, + { "px": [624,240], "src": [0,208], "f": 0, "t": 468, "d": [21,729], "a": 1 }, + { "px": [640,241], "src": [16,208], "f": 0, "t": 469, "d": [21,730], "a": 1 }, + { "px": [656,240], "src": [32,208], "f": 0, "t": 470, "d": [21,731], "a": 1 }, + { "px": [576,256], "src": [192,48], "f": 0, "t": 120, "d": [111,772], "a": 1 }, + { "px": [656,256], "src": [176,48], "f": 0, "t": 119, "d": [111,777], "a": 1 }, + { "px": [640,272], "src": [160,48], "f": 0, "t": 118, "d": [111,822], "a": 1 }, + { "px": [608,304], "src": [176,48], "f": 0, "t": 119, "d": [111,912], "a": 1 }, + { "px": [624,304], "src": [176,48], "f": 0, "t": 119, "d": [111,913], "a": 1 }, + { "px": [658,256], "src": [176,48], "f": 0, "t": 119, "d": [99,777], "a": 1 }, + { "px": [641,272], "src": [176,48], "f": 0, "t": 119, "d": [99,822], "a": 1 }, + { "px": [623,304], "src": [192,48], "f": 0, "t": 120, "d": [99,913], "a": 1 }, + { "px": [560,112], "src": [80,128], "f": 0, "t": 293, "d": [95,357], "a": 1 }, + { "px": [576,112], "src": [80,112], "f": 1, "t": 257, "d": [95,358], "a": 1 }, + { "px": [544,128], "src": [80,128], "f": 0, "t": 293, "d": [95,402], "a": 1 }, + { "px": [624,128], "src": [80,112], "f": 1, "t": 257, "d": [95,407], "a": 1 }, + { "px": [656,160], "src": [80,128], "f": 1, "t": 293, "d": [95,501], "a": 1 }, + { "px": [672,208], "src": [80,128], "f": 1, "t": 293, "d": [95,640], "a": 1 }, + { "px": [384,224], "src": [80,128], "f": 1, "t": 293, "d": [95,668], "a": 1 }, + { "px": [400,240], "src": [80,112], "f": 1, "t": 257, "d": [95,715], "a": 1 }, + { "px": [416,272], "src": [80,128], "f": 1, "t": 293, "d": [95,808], "a": 1 }, + { "px": [496,0], "src": [80,144], "f": 1, "t": 329, "d": [96,31], "a": 1 }, + { "px": [480,48], "src": [80,160], "f": 1, "t": 365, "d": [96,168], "a": 1 }, + { "px": [448,160], "src": [80,144], "f": 1, "t": 329, "d": [96,488], "a": 1 }, + { "px": [512,160], "src": [80,144], "f": 0, "t": 329, "d": [96,492], "a": 1 }, + { "px": [416,176], "src": [80,144], "f": 1, "t": 329, "d": [96,532], "a": 1 }, + { "px": [528,176], "src": [80,144], "f": 0, "t": 329, "d": [96,539], "a": 1 }, + { "px": [544,208], "src": [80,144], "f": 0, "t": 329, "d": [96,632], "a": 1 }, + { "px": [560,224], "src": [80,144], "f": 0, "t": 329, "d": [96,679], "a": 1 }, + { "px": [672,240], "src": [80,160], "f": 1, "t": 365, "d": [96,732], "a": 1 }, + { "px": [576,256], "src": [80,144], "f": 0, "t": 329, "d": [96,772], "a": 1 }, + { "px": [656,256], "src": [80,160], "f": 1, "t": 365, "d": [96,777], "a": 1 }, + { "px": [640,272], "src": [80,144], "f": 1, "t": 329, "d": [96,822], "a": 1 }, + { "px": [592,288], "src": [80,160], "f": 0, "t": 365, "d": [96,865], "a": 1 }, + { "px": [608,304], "src": [80,160], "f": 0, "t": 365, "d": [96,912], "a": 1 }, + { "px": [624,304], "src": [80,160], "f": 1, "t": 365, "d": [96,913], "a": 1 }, + { "px": [496,2], "src": [16,80], "f": 0, "t": 181, "d": [97,31], "a": 1 }, + { "px": [480,50], "src": [32,80], "f": 0, "t": 182, "d": [97,168], "a": 1 }, + { "px": [464,144], "src": [32,80], "f": 0, "t": 182, "d": [97,443], "a": 1 }, + { "px": [480,145], "src": [32,80], "f": 0, "t": 182, "d": [97,444], "a": 1 }, + { "px": [496,144], "src": [16,80], "f": 0, "t": 181, "d": [97,445], "a": 1 }, + { "px": [432,160], "src": [48,80], "f": 0, "t": 183, "d": [97,487], "a": 1 }, + { "px": [448,160], "src": [32,80], "f": 0, "t": 182, "d": [97,488], "a": 1 }, + { "px": [512,161], "src": [48,80], "f": 0, "t": 183, "d": [97,492], "a": 1 }, + { "px": [352,177], "src": [144,112], "f": 0, "t": 261, "d": [97,528], "a": 1 }, + { "px": [368,176], "src": [112,112], "f": 0, "t": 259, "d": [97,529], "a": 1 }, + { "px": [400,178], "src": [112,112], "f": 0, "t": 259, "d": [97,531], "a": 1 }, + { "px": [416,176], "src": [112,112], "f": 0, "t": 259, "d": [97,532], "a": 1 }, + { "px": [544,210], "src": [32,80], "f": 0, "t": 182, "d": [97,632], "a": 1 }, + { "px": [560,225], "src": [16,80], "f": 0, "t": 181, "d": [97,679], "a": 1 }, + { "px": [688,225], "src": [112,112], "f": 0, "t": 259, "d": [97,687], "a": 1 }, + { "px": [704,225], "src": [112,112], "f": 0, "t": 259, "d": [97,688], "a": 1 }, + { "px": [720,226], "src": [144,112], "f": 0, "t": 261, "d": [97,689], "a": 1 }, + { "px": [576,258], "src": [16,80], "f": 0, "t": 181, "d": [97,772], "a": 1 }, + { "px": [656,256], "src": [16,80], "f": 0, "t": 181, "d": [97,777], "a": 1 }, + { "px": [640,272], "src": [144,112], "f": 0, "t": 261, "d": [97,822], "a": 1 }, + { "px": [608,305], "src": [48,80], "f": 0, "t": 183, "d": [97,912], "a": 1 }, + { "px": [624,305], "src": [48,80], "f": 0, "t": 183, "d": [97,913], "a": 1 }, + { "px": [480,16], "src": [64,128], "f": 1, "t": 292, "d": [98,76], "a": 1 }, + { "px": [480,32], "src": [64,128], "f": 1, "t": 292, "d": [98,122], "a": 1 }, + { "px": [480,48], "src": [64,128], "f": 1, "t": 292, "d": [98,168], "a": 1 }, + { "px": [464,64], "src": [64,128], "f": 1, "t": 292, "d": [98,213], "a": 1 }, + { "px": [464,80], "src": [64,128], "f": 1, "t": 292, "d": [98,259], "a": 1 }, + { "px": [464,96], "src": [64,112], "f": 1, "t": 256, "d": [98,305], "a": 1 }, + { "px": [464,112], "src": [64,128], "f": 1, "t": 292, "d": [98,351], "a": 1 }, + { "px": [576,112], "src": [64,128], "f": 1, "t": 292, "d": [98,358], "a": 1 }, + { "px": [624,128], "src": [64,112], "f": 1, "t": 256, "d": [98,407], "a": 1 }, + { "px": [624,144], "src": [64,112], "f": 1, "t": 256, "d": [98,453], "a": 1 }, + { "px": [448,160], "src": [64,128], "f": 1, "t": 292, "d": [98,488], "a": 1 }, + { "px": [656,160], "src": [64,112], "f": 1, "t": 256, "d": [98,501], "a": 1 }, + { "px": [416,176], "src": [64,112], "f": 1, "t": 256, "d": [98,532], "a": 1 }, + { "px": [528,176], "src": [64,128], "f": 0, "t": 292, "d": [98,539], "a": 1 }, + { "px": [656,176], "src": [64,112], "f": 1, "t": 256, "d": [98,547], "a": 1 }, + { "px": [544,208], "src": [64,112], "f": 0, "t": 256, "d": [98,632], "a": 1 }, + { "px": [672,208], "src": [64,112], "f": 1, "t": 256, "d": [98,640], "a": 1 }, + { "px": [384,224], "src": [64,112], "f": 1, "t": 256, "d": [98,668], "a": 1 }, + { "px": [400,240], "src": [64,128], "f": 1, "t": 292, "d": [98,715], "a": 1 }, + { "px": [576,240], "src": [64,112], "f": 0, "t": 256, "d": [98,726], "a": 1 }, + { "px": [672,240], "src": [64,128], "f": 1, "t": 292, "d": [98,732], "a": 1 }, + { "px": [576,256], "src": [64,112], "f": 0, "t": 256, "d": [98,772], "a": 1 }, + { "px": [656,256], "src": [64,128], "f": 1, "t": 292, "d": [98,777], "a": 1 }, + { "px": [592,272], "src": [64,128], "f": 0, "t": 292, "d": [98,819], "a": 1 }, + { "px": [592,288], "src": [64,112], "f": 0, "t": 256, "d": [98,865], "a": 1 }, + { "px": [624,288], "src": [64,112], "f": 1, "t": 256, "d": [98,867], "a": 1 }, + { "px": [416,304], "src": [64,112], "f": 1, "t": 256, "d": [98,900], "a": 1 }, + { "px": [608,304], "src": [64,112], "f": 0, "t": 256, "d": [98,912], "a": 1 }, + { "px": [624,304], "src": [64,112], "f": 1, "t": 256, "d": [98,913], "a": 1 }, + { "px": [416,320], "src": [64,112], "f": 1, "t": 256, "d": [98,946], "a": 1 }, + { "px": [416,336], "src": [64,128], "f": 1, "t": 292, "d": [98,992], "a": 1 }, + { "px": [576,112], "src": [112,96], "f": 0, "t": 223, "d": [93,358], "a": 1 }, + { "px": [608,128], "src": [128,80], "f": 0, "t": 188, "d": [93,406], "a": 1 }, + { "px": [624,128], "src": [96,96], "f": 0, "t": 222, "d": [93,407], "a": 1 }, + { "px": [512,144], "src": [128,80], "f": 0, "t": 188, "d": [93,446], "a": 1 }, + { "px": [528,144], "src": [112,80], "f": 0, "t": 187, "d": [93,447], "a": 1 }, + { "px": [640,160], "src": [96,80], "f": 0, "t": 186, "d": [93,500], "a": 1 }, + { "px": [656,160], "src": [96,80], "f": 0, "t": 186, "d": [93,501], "a": 1 }, + { "px": [560,112], "src": [112,96], "f": 0, "t": 223, "d": [101,357], "a": 1 }, + { "px": [576,112], "src": [112,96], "f": 0, "t": 223, "d": [101,358], "a": 1 }, + { "px": [544,128], "src": [128,96], "f": 0, "t": 224, "d": [101,402], "a": 1 }, + { "px": [592,128], "src": [128,96], "f": 0, "t": 224, "d": [101,405], "a": 1 }, + { "px": [608,128], "src": [128,96], "f": 0, "t": 224, "d": [101,406], "a": 1 }, + { "px": [624,128], "src": [112,96], "f": 0, "t": 223, "d": [101,407], "a": 1 }, + { "px": [480,144], "src": [112,96], "f": 0, "t": 223, "d": [101,444], "a": 1 }, + { "px": [512,144], "src": [128,96], "f": 0, "t": 224, "d": [101,446], "a": 1 }, + { "px": [528,144], "src": [128,96], "f": 0, "t": 224, "d": [101,447], "a": 1 }, + { "px": [640,160], "src": [128,96], "f": 0, "t": 224, "d": [101,500], "a": 1 }, + { "px": [656,160], "src": [128,96], "f": 0, "t": 224, "d": [101,501], "a": 1 }, + { "px": [672,208], "src": [128,96], "f": 0, "t": 224, "d": [101,640], "a": 1 }, + { "px": [352,224], "src": [112,96], "f": 0, "t": 223, "d": [101,666], "a": 1 }, + { "px": [368,224], "src": [128,96], "f": 0, "t": 224, "d": [101,667], "a": 1 }, + { "px": [384,224], "src": [128,96], "f": 0, "t": 224, "d": [101,668], "a": 1 }, + { "px": [688,224], "src": [128,96], "f": 0, "t": 224, "d": [101,687], "a": 1 }, + { "px": [704,224], "src": [112,96], "f": 0, "t": 223, "d": [101,688], "a": 1 }, + { "px": [720,224], "src": [112,96], "f": 0, "t": 223, "d": [101,689], "a": 1 }, + { "px": [400,240], "src": [112,96], "f": 0, "t": 223, "d": [101,715], "a": 1 }, + { "px": [416,272], "src": [128,96], "f": 0, "t": 224, "d": [101,808], "a": 1 }, + { "px": [544,0], "src": [192,208], "f": 0, "t": 480, "d": [104,34], "a": 1 }, + { "px": [560,0], "src": [176,208], "f": 0, "t": 479, "d": [104,35], "a": 1 }, + { "px": [576,0], "src": [208,208], "f": 0, "t": 481, "d": [104,36], "a": 1 }, + { "px": [592,0], "src": [176,208], "f": 0, "t": 479, "d": [104,37], "a": 1 }, + { "px": [608,0], "src": [208,208], "f": 0, "t": 481, "d": [104,38], "a": 1 }, + { "px": [656,0], "src": [208,208], "f": 0, "t": 481, "d": [104,41], "a": 1 }, + { "px": [672,0], "src": [208,208], "f": 0, "t": 481, "d": [104,42], "a": 1 }, + { "px": [704,0], "src": [176,208], "f": 0, "t": 479, "d": [104,44], "a": 1 }, + { "px": [720,0], "src": [176,208], "f": 0, "t": 479, "d": [104,45], "a": 1 }, + { "px": [528,16], "src": [208,208], "f": 0, "t": 481, "d": [104,79], "a": 1 }, + { "px": [544,16], "src": [192,208], "f": 0, "t": 480, "d": [104,80], "a": 1 }, + { "px": [560,16], "src": [176,208], "f": 0, "t": 479, "d": [104,81], "a": 1 }, + { "px": [576,16], "src": [192,208], "f": 0, "t": 480, "d": [104,82], "a": 1 }, + { "px": [592,16], "src": [176,208], "f": 0, "t": 479, "d": [104,83], "a": 1 }, + { "px": [608,16], "src": [192,208], "f": 0, "t": 480, "d": [104,84], "a": 1 }, + { "px": [624,16], "src": [176,208], "f": 0, "t": 479, "d": [104,85], "a": 1 }, + { "px": [656,16], "src": [192,208], "f": 0, "t": 480, "d": [104,87], "a": 1 }, + { "px": [704,16], "src": [208,208], "f": 0, "t": 481, "d": [104,90], "a": 1 }, + { "px": [560,32], "src": [192,208], "f": 0, "t": 480, "d": [104,127], "a": 1 }, + { "px": [576,32], "src": [176,208], "f": 0, "t": 479, "d": [104,128], "a": 1 }, + { "px": [608,32], "src": [176,208], "f": 0, "t": 479, "d": [104,130], "a": 1 }, + { "px": [624,32], "src": [192,208], "f": 0, "t": 480, "d": [104,131], "a": 1 }, + { "px": [656,32], "src": [176,208], "f": 0, "t": 479, "d": [104,133], "a": 1 }, + { "px": [672,32], "src": [192,208], "f": 0, "t": 480, "d": [104,134], "a": 1 }, + { "px": [528,48], "src": [192,208], "f": 0, "t": 480, "d": [104,171], "a": 1 }, + { "px": [544,48], "src": [176,208], "f": 0, "t": 479, "d": [104,172], "a": 1 }, + { "px": [576,48], "src": [176,208], "f": 0, "t": 479, "d": [104,174], "a": 1 }, + { "px": [608,48], "src": [208,208], "f": 0, "t": 481, "d": [104,176], "a": 1 }, + { "px": [640,48], "src": [192,208], "f": 0, "t": 480, "d": [104,178], "a": 1 }, + { "px": [656,48], "src": [192,208], "f": 0, "t": 480, "d": [104,179], "a": 1 }, + { "px": [672,48], "src": [192,208], "f": 0, "t": 480, "d": [104,180], "a": 1 }, + { "px": [704,48], "src": [192,208], "f": 0, "t": 480, "d": [104,182], "a": 1 }, + { "px": [720,48], "src": [208,208], "f": 0, "t": 481, "d": [104,183], "a": 1 }, + { "px": [512,64], "src": [192,208], "f": 0, "t": 480, "d": [104,216], "a": 1 }, + { "px": [528,64], "src": [192,208], "f": 0, "t": 480, "d": [104,217], "a": 1 }, + { "px": [544,64], "src": [208,208], "f": 0, "t": 481, "d": [104,218], "a": 1 }, + { "px": [560,64], "src": [208,208], "f": 0, "t": 481, "d": [104,219], "a": 1 }, + { "px": [576,64], "src": [176,208], "f": 0, "t": 479, "d": [104,220], "a": 1 }, + { "px": [608,64], "src": [208,208], "f": 0, "t": 481, "d": [104,222], "a": 1 }, + { "px": [640,64], "src": [176,208], "f": 0, "t": 479, "d": [104,224], "a": 1 }, + { "px": [672,64], "src": [176,208], "f": 0, "t": 479, "d": [104,226], "a": 1 }, + { "px": [688,64], "src": [176,208], "f": 0, "t": 479, "d": [104,227], "a": 1 }, + { "px": [704,64], "src": [208,208], "f": 0, "t": 481, "d": [104,228], "a": 1 }, + { "px": [720,64], "src": [176,208], "f": 0, "t": 479, "d": [104,229], "a": 1 }, + { "px": [528,80], "src": [208,208], "f": 0, "t": 481, "d": [104,263], "a": 1 }, + { "px": [544,80], "src": [208,208], "f": 0, "t": 481, "d": [104,264], "a": 1 }, + { "px": [592,80], "src": [176,208], "f": 0, "t": 479, "d": [104,267], "a": 1 }, + { "px": [624,80], "src": [176,208], "f": 0, "t": 479, "d": [104,269], "a": 1 }, + { "px": [640,80], "src": [208,208], "f": 0, "t": 481, "d": [104,270], "a": 1 }, + { "px": [656,80], "src": [176,208], "f": 0, "t": 479, "d": [104,271], "a": 1 }, + { "px": [672,80], "src": [192,208], "f": 0, "t": 480, "d": [104,272], "a": 1 }, + { "px": [704,80], "src": [208,208], "f": 0, "t": 481, "d": [104,274], "a": 1 }, + { "px": [720,80], "src": [208,208], "f": 0, "t": 481, "d": [104,275], "a": 1 }, + { "px": [528,96], "src": [208,208], "f": 0, "t": 481, "d": [104,309], "a": 1 }, + { "px": [640,96], "src": [176,208], "f": 0, "t": 479, "d": [104,316], "a": 1 }, + { "px": [672,96], "src": [176,208], "f": 0, "t": 479, "d": [104,318], "a": 1 }, + { "px": [704,96], "src": [192,208], "f": 0, "t": 480, "d": [104,320], "a": 1 }, + { "px": [704,112], "src": [192,208], "f": 0, "t": 480, "d": [104,366], "a": 1 }, + { "px": [720,112], "src": [176,208], "f": 0, "t": 479, "d": [104,367], "a": 1 }, + { "px": [672,128], "src": [176,208], "f": 0, "t": 479, "d": [104,410], "a": 1 }, + { "px": [704,128], "src": [176,208], "f": 0, "t": 479, "d": [104,412], "a": 1 }, + { "px": [720,144], "src": [208,208], "f": 0, "t": 481, "d": [104,459], "a": 1 }, + { "px": [704,160], "src": [192,208], "f": 0, "t": 480, "d": [104,504], "a": 1 }, + { "px": [720,160], "src": [176,208], "f": 0, "t": 479, "d": [104,505], "a": 1 }, + { "px": [704,176], "src": [192,208], "f": 0, "t": 480, "d": [104,550], "a": 1 }, + { "px": [720,176], "src": [192,208], "f": 0, "t": 480, "d": [104,551], "a": 1 }, + { "px": [464,192], "src": [176,208], "f": 0, "t": 479, "d": [104,581], "a": 1 }, + { "px": [480,192], "src": [176,208], "f": 0, "t": 479, "d": [104,582], "a": 1 }, + { "px": [496,192], "src": [208,208], "f": 0, "t": 481, "d": [104,583], "a": 1 }, + { "px": [432,208], "src": [192,208], "f": 0, "t": 480, "d": [104,625], "a": 1 }, + { "px": [448,208], "src": [208,208], "f": 0, "t": 481, "d": [104,626], "a": 1 }, + { "px": [464,208], "src": [208,208], "f": 0, "t": 481, "d": [104,627], "a": 1 }, + { "px": [480,208], "src": [176,208], "f": 0, "t": 479, "d": [104,628], "a": 1 }, + { "px": [496,208], "src": [208,208], "f": 0, "t": 481, "d": [104,629], "a": 1 }, + { "px": [464,224], "src": [176,208], "f": 0, "t": 479, "d": [104,673], "a": 1 }, + { "px": [480,224], "src": [176,208], "f": 0, "t": 479, "d": [104,674], "a": 1 }, + { "px": [496,224], "src": [192,208], "f": 0, "t": 480, "d": [104,675], "a": 1 }, + { "px": [512,224], "src": [192,208], "f": 0, "t": 480, "d": [104,676], "a": 1 }, + { "px": [464,240], "src": [192,208], "f": 0, "t": 480, "d": [104,719], "a": 1 }, + { "px": [480,240], "src": [208,208], "f": 0, "t": 481, "d": [104,720], "a": 1 }, + { "px": [496,240], "src": [176,208], "f": 0, "t": 479, "d": [104,721], "a": 1 }, + { "px": [512,240], "src": [208,208], "f": 0, "t": 481, "d": [104,722], "a": 1 }, + { "px": [464,256], "src": [176,208], "f": 0, "t": 479, "d": [104,765], "a": 1 }, + { "px": [528,256], "src": [192,208], "f": 0, "t": 480, "d": [104,769], "a": 1 }, + { "px": [464,272], "src": [176,208], "f": 0, "t": 479, "d": [104,811], "a": 1 }, + { "px": [480,272], "src": [176,208], "f": 0, "t": 479, "d": [104,812], "a": 1 }, + { "px": [528,272], "src": [208,208], "f": 0, "t": 481, "d": [104,815], "a": 1 }, + { "px": [704,272], "src": [208,208], "f": 0, "t": 481, "d": [104,826], "a": 1 }, + { "px": [720,272], "src": [176,208], "f": 0, "t": 479, "d": [104,827], "a": 1 }, + { "px": [464,288], "src": [208,208], "f": 0, "t": 481, "d": [104,857], "a": 1 }, + { "px": [496,288], "src": [208,208], "f": 0, "t": 481, "d": [104,859], "a": 1 }, + { "px": [512,288], "src": [208,208], "f": 0, "t": 481, "d": [104,860], "a": 1 }, + { "px": [672,288], "src": [192,208], "f": 0, "t": 480, "d": [104,870], "a": 1 }, + { "px": [688,288], "src": [176,208], "f": 0, "t": 479, "d": [104,871], "a": 1 }, + { "px": [720,288], "src": [192,208], "f": 0, "t": 480, "d": [104,873], "a": 1 }, + { "px": [464,304], "src": [176,208], "f": 0, "t": 479, "d": [104,903], "a": 1 }, + { "px": [480,304], "src": [208,208], "f": 0, "t": 481, "d": [104,904], "a": 1 }, + { "px": [496,304], "src": [176,208], "f": 0, "t": 479, "d": [104,905], "a": 1 }, + { "px": [512,304], "src": [208,208], "f": 0, "t": 481, "d": [104,906], "a": 1 }, + { "px": [528,304], "src": [176,208], "f": 0, "t": 479, "d": [104,907], "a": 1 }, + { "px": [544,304], "src": [208,208], "f": 0, "t": 481, "d": [104,908], "a": 1 }, + { "px": [560,304], "src": [176,208], "f": 0, "t": 479, "d": [104,909], "a": 1 }, + { "px": [672,304], "src": [192,208], "f": 0, "t": 480, "d": [104,916], "a": 1 }, + { "px": [688,304], "src": [208,208], "f": 0, "t": 481, "d": [104,917], "a": 1 }, + { "px": [704,304], "src": [208,208], "f": 0, "t": 481, "d": [104,918], "a": 1 }, + { "px": [464,320], "src": [176,208], "f": 0, "t": 479, "d": [104,949], "a": 1 }, + { "px": [496,320], "src": [192,208], "f": 0, "t": 480, "d": [104,951], "a": 1 }, + { "px": [512,320], "src": [208,208], "f": 0, "t": 481, "d": [104,952], "a": 1 }, + { "px": [528,320], "src": [208,208], "f": 0, "t": 481, "d": [104,953], "a": 1 }, + { "px": [544,320], "src": [208,208], "f": 0, "t": 481, "d": [104,954], "a": 1 }, + { "px": [560,320], "src": [192,208], "f": 0, "t": 480, "d": [104,955], "a": 1 }, + { "px": [576,320], "src": [208,208], "f": 0, "t": 481, "d": [104,956], "a": 1 }, + { "px": [656,320], "src": [192,208], "f": 0, "t": 480, "d": [104,961], "a": 1 }, + { "px": [672,320], "src": [208,208], "f": 0, "t": 481, "d": [104,962], "a": 1 }, + { "px": [688,320], "src": [208,208], "f": 0, "t": 481, "d": [104,963], "a": 1 }, + { "px": [720,320], "src": [176,208], "f": 0, "t": 479, "d": [104,965], "a": 1 }, + { "px": [464,336], "src": [208,208], "f": 0, "t": 481, "d": [104,995], "a": 1 }, + { "px": [480,336], "src": [208,208], "f": 0, "t": 481, "d": [104,996], "a": 1 }, + { "px": [496,336], "src": [192,208], "f": 0, "t": 480, "d": [104,997], "a": 1 }, + { "px": [512,336], "src": [176,208], "f": 0, "t": 479, "d": [104,998], "a": 1 }, + { "px": [528,336], "src": [208,208], "f": 0, "t": 481, "d": [104,999], "a": 1 }, + { "px": [592,336], "src": [208,208], "f": 0, "t": 481, "d": [104,1003], "a": 1 }, + { "px": [640,336], "src": [176,208], "f": 0, "t": 479, "d": [104,1006], "a": 1 }, + { "px": [656,336], "src": [176,208], "f": 0, "t": 479, "d": [104,1007], "a": 1 }, + { "px": [672,336], "src": [208,208], "f": 0, "t": 481, "d": [104,1008], "a": 1 }, + { "px": [688,336], "src": [176,208], "f": 0, "t": 479, "d": [104,1009], "a": 1 }, + { "px": [720,336], "src": [208,208], "f": 0, "t": 481, "d": [104,1011], "a": 1 }, + { "px": [528,0], "src": [272,176], "f": 0, "t": 413, "d": [108,33], "a": 1 }, + { "px": [544,0], "src": [272,176], "f": 0, "t": 413, "d": [108,34], "a": 1 }, + { "px": [560,0], "src": [272,176], "f": 0, "t": 413, "d": [108,35], "a": 1 }, + { "px": [576,0], "src": [272,176], "f": 0, "t": 413, "d": [108,36], "a": 1 }, + { "px": [592,0], "src": [272,176], "f": 0, "t": 413, "d": [108,37], "a": 1 }, + { "px": [608,0], "src": [272,176], "f": 0, "t": 413, "d": [108,38], "a": 1 }, + { "px": [624,0], "src": [272,176], "f": 0, "t": 413, "d": [108,39], "a": 1 }, + { "px": [640,0], "src": [272,176], "f": 0, "t": 413, "d": [108,40], "a": 1 }, + { "px": [656,0], "src": [272,176], "f": 0, "t": 413, "d": [108,41], "a": 1 }, + { "px": [672,0], "src": [272,176], "f": 0, "t": 413, "d": [108,42], "a": 1 }, + { "px": [688,0], "src": [272,176], "f": 0, "t": 413, "d": [108,43], "a": 1 }, + { "px": [704,0], "src": [272,176], "f": 0, "t": 413, "d": [108,44], "a": 1 }, + { "px": [720,0], "src": [272,176], "f": 0, "t": 413, "d": [108,45], "a": 1 }, + { "px": [528,16], "src": [272,176], "f": 0, "t": 413, "d": [108,79], "a": 1 }, + { "px": [544,16], "src": [272,176], "f": 0, "t": 413, "d": [108,80], "a": 1 }, + { "px": [560,16], "src": [272,176], "f": 0, "t": 413, "d": [108,81], "a": 1 }, + { "px": [576,16], "src": [272,176], "f": 0, "t": 413, "d": [108,82], "a": 1 }, + { "px": [592,16], "src": [272,176], "f": 0, "t": 413, "d": [108,83], "a": 1 }, + { "px": [608,16], "src": [272,176], "f": 0, "t": 413, "d": [108,84], "a": 1 }, + { "px": [624,16], "src": [272,176], "f": 0, "t": 413, "d": [108,85], "a": 1 }, + { "px": [640,16], "src": [272,176], "f": 0, "t": 413, "d": [108,86], "a": 1 }, + { "px": [656,16], "src": [272,176], "f": 0, "t": 413, "d": [108,87], "a": 1 }, + { "px": [672,16], "src": [272,176], "f": 0, "t": 413, "d": [108,88], "a": 1 }, + { "px": [688,16], "src": [272,176], "f": 0, "t": 413, "d": [108,89], "a": 1 }, + { "px": [704,16], "src": [272,176], "f": 0, "t": 413, "d": [108,90], "a": 1 }, + { "px": [720,16], "src": [272,176], "f": 0, "t": 413, "d": [108,91], "a": 1 }, + { "px": [512,32], "src": [272,176], "f": 0, "t": 413, "d": [108,124], "a": 1 }, + { "px": [528,32], "src": [272,176], "f": 0, "t": 413, "d": [108,125], "a": 1 }, + { "px": [544,32], "src": [272,176], "f": 0, "t": 413, "d": [108,126], "a": 1 }, + { "px": [560,32], "src": [272,176], "f": 0, "t": 413, "d": [108,127], "a": 1 }, + { "px": [576,32], "src": [272,176], "f": 0, "t": 413, "d": [108,128], "a": 1 }, + { "px": [592,32], "src": [272,176], "f": 0, "t": 413, "d": [108,129], "a": 1 }, + { "px": [608,32], "src": [272,176], "f": 0, "t": 413, "d": [108,130], "a": 1 }, + { "px": [624,32], "src": [272,176], "f": 0, "t": 413, "d": [108,131], "a": 1 }, + { "px": [640,32], "src": [272,176], "f": 0, "t": 413, "d": [108,132], "a": 1 }, + { "px": [656,32], "src": [272,176], "f": 0, "t": 413, "d": [108,133], "a": 1 }, + { "px": [672,32], "src": [272,176], "f": 0, "t": 413, "d": [108,134], "a": 1 }, + { "px": [688,32], "src": [272,176], "f": 0, "t": 413, "d": [108,135], "a": 1 }, + { "px": [704,32], "src": [272,176], "f": 0, "t": 413, "d": [108,136], "a": 1 }, + { "px": [720,32], "src": [272,176], "f": 0, "t": 413, "d": [108,137], "a": 1 }, + { "px": [512,48], "src": [272,176], "f": 0, "t": 413, "d": [108,170], "a": 1 }, + { "px": [528,48], "src": [272,176], "f": 0, "t": 413, "d": [108,171], "a": 1 }, + { "px": [544,48], "src": [272,176], "f": 0, "t": 413, "d": [108,172], "a": 1 }, + { "px": [560,48], "src": [272,176], "f": 0, "t": 413, "d": [108,173], "a": 1 }, + { "px": [576,48], "src": [272,176], "f": 0, "t": 413, "d": [108,174], "a": 1 }, + { "px": [592,48], "src": [272,176], "f": 0, "t": 413, "d": [108,175], "a": 1 }, + { "px": [608,48], "src": [272,176], "f": 0, "t": 413, "d": [108,176], "a": 1 }, + { "px": [624,48], "src": [272,176], "f": 0, "t": 413, "d": [108,177], "a": 1 }, + { "px": [640,48], "src": [272,176], "f": 0, "t": 413, "d": [108,178], "a": 1 }, + { "px": [656,48], "src": [272,176], "f": 0, "t": 413, "d": [108,179], "a": 1 }, + { "px": [672,48], "src": [272,176], "f": 0, "t": 413, "d": [108,180], "a": 1 }, + { "px": [688,48], "src": [272,176], "f": 0, "t": 413, "d": [108,181], "a": 1 }, + { "px": [704,48], "src": [272,176], "f": 0, "t": 413, "d": [108,182], "a": 1 }, + { "px": [720,48], "src": [272,176], "f": 0, "t": 413, "d": [108,183], "a": 1 }, + { "px": [512,64], "src": [272,176], "f": 0, "t": 413, "d": [108,216], "a": 1 }, + { "px": [528,64], "src": [272,176], "f": 0, "t": 413, "d": [108,217], "a": 1 }, + { "px": [544,64], "src": [272,176], "f": 0, "t": 413, "d": [108,218], "a": 1 }, + { "px": [560,64], "src": [272,176], "f": 0, "t": 413, "d": [108,219], "a": 1 }, + { "px": [576,64], "src": [272,176], "f": 0, "t": 413, "d": [108,220], "a": 1 }, + { "px": [592,64], "src": [272,176], "f": 0, "t": 413, "d": [108,221], "a": 1 }, + { "px": [608,64], "src": [272,176], "f": 0, "t": 413, "d": [108,222], "a": 1 }, + { "px": [624,64], "src": [272,176], "f": 0, "t": 413, "d": [108,223], "a": 1 }, + { "px": [640,64], "src": [272,176], "f": 0, "t": 413, "d": [108,224], "a": 1 }, + { "px": [656,64], "src": [272,176], "f": 0, "t": 413, "d": [108,225], "a": 1 }, + { "px": [672,64], "src": [272,176], "f": 0, "t": 413, "d": [108,226], "a": 1 }, + { "px": [688,64], "src": [272,176], "f": 0, "t": 413, "d": [108,227], "a": 1 }, + { "px": [704,64], "src": [272,176], "f": 0, "t": 413, "d": [108,228], "a": 1 }, + { "px": [720,64], "src": [272,176], "f": 0, "t": 413, "d": [108,229], "a": 1 }, + { "px": [496,80], "src": [272,176], "f": 0, "t": 413, "d": [108,261], "a": 1 }, + { "px": [512,80], "src": [272,176], "f": 0, "t": 413, "d": [108,262], "a": 1 }, + { "px": [528,80], "src": [272,176], "f": 0, "t": 413, "d": [108,263], "a": 1 }, + { "px": [544,80], "src": [272,176], "f": 0, "t": 413, "d": [108,264], "a": 1 }, + { "px": [560,80], "src": [272,176], "f": 0, "t": 413, "d": [108,265], "a": 1 }, + { "px": [576,80], "src": [272,176], "f": 0, "t": 413, "d": [108,266], "a": 1 }, + { "px": [592,80], "src": [272,176], "f": 0, "t": 413, "d": [108,267], "a": 1 }, + { "px": [608,80], "src": [272,176], "f": 0, "t": 413, "d": [108,268], "a": 1 }, + { "px": [624,80], "src": [272,176], "f": 0, "t": 413, "d": [108,269], "a": 1 }, + { "px": [640,80], "src": [272,176], "f": 0, "t": 413, "d": [108,270], "a": 1 }, + { "px": [656,80], "src": [272,176], "f": 0, "t": 413, "d": [108,271], "a": 1 }, + { "px": [672,80], "src": [272,176], "f": 0, "t": 413, "d": [108,272], "a": 1 }, + { "px": [688,80], "src": [272,176], "f": 0, "t": 413, "d": [108,273], "a": 1 }, + { "px": [704,80], "src": [272,176], "f": 0, "t": 413, "d": [108,274], "a": 1 }, + { "px": [720,80], "src": [272,176], "f": 0, "t": 413, "d": [108,275], "a": 1 }, + { "px": [496,96], "src": [272,176], "f": 0, "t": 413, "d": [108,307], "a": 1 }, + { "px": [512,96], "src": [272,176], "f": 0, "t": 413, "d": [108,308], "a": 1 }, + { "px": [528,96], "src": [272,176], "f": 0, "t": 413, "d": [108,309], "a": 1 }, + { "px": [608,96], "src": [272,176], "f": 0, "t": 413, "d": [108,314], "a": 1 }, + { "px": [624,96], "src": [272,176], "f": 0, "t": 413, "d": [108,315], "a": 1 }, + { "px": [640,96], "src": [272,176], "f": 0, "t": 413, "d": [108,316], "a": 1 }, + { "px": [656,96], "src": [272,176], "f": 0, "t": 413, "d": [108,317], "a": 1 }, + { "px": [672,96], "src": [272,176], "f": 0, "t": 413, "d": [108,318], "a": 1 }, + { "px": [688,96], "src": [272,176], "f": 0, "t": 413, "d": [108,319], "a": 1 }, + { "px": [704,96], "src": [272,176], "f": 0, "t": 413, "d": [108,320], "a": 1 }, + { "px": [720,96], "src": [272,176], "f": 0, "t": 413, "d": [108,321], "a": 1 }, + { "px": [496,112], "src": [272,176], "f": 0, "t": 413, "d": [108,353], "a": 1 }, + { "px": [512,112], "src": [272,176], "f": 0, "t": 413, "d": [108,354], "a": 1 }, + { "px": [656,112], "src": [272,176], "f": 0, "t": 413, "d": [108,363], "a": 1 }, + { "px": [672,112], "src": [272,176], "f": 0, "t": 413, "d": [108,364], "a": 1 }, + { "px": [688,112], "src": [272,176], "f": 0, "t": 413, "d": [108,365], "a": 1 }, + { "px": [704,112], "src": [272,176], "f": 0, "t": 413, "d": [108,366], "a": 1 }, + { "px": [720,112], "src": [272,176], "f": 0, "t": 413, "d": [108,367], "a": 1 }, + { "px": [656,128], "src": [272,176], "f": 0, "t": 413, "d": [108,409], "a": 1 }, + { "px": [672,128], "src": [272,176], "f": 0, "t": 413, "d": [108,410], "a": 1 }, + { "px": [688,128], "src": [272,176], "f": 0, "t": 413, "d": [108,411], "a": 1 }, + { "px": [704,128], "src": [272,176], "f": 0, "t": 413, "d": [108,412], "a": 1 }, + { "px": [720,128], "src": [272,176], "f": 0, "t": 413, "d": [108,413], "a": 1 }, + { "px": [688,144], "src": [272,176], "f": 0, "t": 413, "d": [108,457], "a": 1 }, + { "px": [704,144], "src": [272,176], "f": 0, "t": 413, "d": [108,458], "a": 1 }, + { "px": [720,144], "src": [272,176], "f": 0, "t": 413, "d": [108,459], "a": 1 }, + { "px": [688,160], "src": [272,176], "f": 0, "t": 413, "d": [108,503], "a": 1 }, + { "px": [704,160], "src": [272,176], "f": 0, "t": 413, "d": [108,504], "a": 1 }, + { "px": [720,160], "src": [272,176], "f": 0, "t": 413, "d": [108,505], "a": 1 }, + { "px": [480,176], "src": [272,176], "f": 0, "t": 413, "d": [108,536], "a": 1 }, + { "px": [688,176], "src": [272,176], "f": 0, "t": 413, "d": [108,549], "a": 1 }, + { "px": [704,176], "src": [272,176], "f": 0, "t": 413, "d": [108,550], "a": 1 }, + { "px": [720,176], "src": [272,176], "f": 0, "t": 413, "d": [108,551], "a": 1 }, + { "px": [448,192], "src": [272,176], "f": 0, "t": 413, "d": [108,580], "a": 1 }, + { "px": [464,192], "src": [272,176], "f": 0, "t": 413, "d": [108,581], "a": 1 }, + { "px": [480,192], "src": [272,176], "f": 0, "t": 413, "d": [108,582], "a": 1 }, + { "px": [496,192], "src": [272,176], "f": 0, "t": 413, "d": [108,583], "a": 1 }, + { "px": [704,192], "src": [272,176], "f": 0, "t": 413, "d": [108,596], "a": 1 }, + { "px": [720,192], "src": [272,176], "f": 0, "t": 413, "d": [108,597], "a": 1 }, + { "px": [416,208], "src": [272,176], "f": 0, "t": 413, "d": [108,624], "a": 1 }, + { "px": [432,208], "src": [272,176], "f": 0, "t": 413, "d": [108,625], "a": 1 }, + { "px": [448,208], "src": [272,176], "f": 0, "t": 413, "d": [108,626], "a": 1 }, + { "px": [464,208], "src": [272,176], "f": 0, "t": 413, "d": [108,627], "a": 1 }, + { "px": [480,208], "src": [272,176], "f": 0, "t": 413, "d": [108,628], "a": 1 }, + { "px": [496,208], "src": [272,176], "f": 0, "t": 413, "d": [108,629], "a": 1 }, + { "px": [512,208], "src": [272,176], "f": 0, "t": 413, "d": [108,630], "a": 1 }, + { "px": [432,224], "src": [272,176], "f": 0, "t": 413, "d": [108,671], "a": 1 }, + { "px": [448,224], "src": [272,176], "f": 0, "t": 413, "d": [108,672], "a": 1 }, + { "px": [464,224], "src": [272,176], "f": 0, "t": 413, "d": [108,673], "a": 1 }, + { "px": [480,224], "src": [272,176], "f": 0, "t": 413, "d": [108,674], "a": 1 }, + { "px": [496,224], "src": [272,176], "f": 0, "t": 413, "d": [108,675], "a": 1 }, + { "px": [512,224], "src": [272,176], "f": 0, "t": 413, "d": [108,676], "a": 1 }, + { "px": [432,240], "src": [272,176], "f": 0, "t": 413, "d": [108,717], "a": 1 }, + { "px": [448,240], "src": [272,176], "f": 0, "t": 413, "d": [108,718], "a": 1 }, + { "px": [464,240], "src": [272,176], "f": 0, "t": 413, "d": [108,719], "a": 1 }, + { "px": [480,240], "src": [272,176], "f": 0, "t": 413, "d": [108,720], "a": 1 }, + { "px": [496,240], "src": [272,176], "f": 0, "t": 413, "d": [108,721], "a": 1 }, + { "px": [512,240], "src": [272,176], "f": 0, "t": 413, "d": [108,722], "a": 1 }, + { "px": [528,240], "src": [272,176], "f": 0, "t": 413, "d": [108,723], "a": 1 }, + { "px": [448,256], "src": [272,176], "f": 0, "t": 413, "d": [108,764], "a": 1 }, + { "px": [464,256], "src": [272,176], "f": 0, "t": 413, "d": [108,765], "a": 1 }, + { "px": [480,256], "src": [272,176], "f": 0, "t": 413, "d": [108,766], "a": 1 }, + { "px": [496,256], "src": [272,176], "f": 0, "t": 413, "d": [108,767], "a": 1 }, + { "px": [512,256], "src": [272,176], "f": 0, "t": 413, "d": [108,768], "a": 1 }, + { "px": [528,256], "src": [272,176], "f": 0, "t": 413, "d": [108,769], "a": 1 }, + { "px": [544,256], "src": [272,176], "f": 0, "t": 413, "d": [108,770], "a": 1 }, + { "px": [704,256], "src": [272,176], "f": 0, "t": 413, "d": [108,780], "a": 1 }, + { "px": [720,256], "src": [272,176], "f": 0, "t": 413, "d": [108,781], "a": 1 }, + { "px": [448,272], "src": [272,176], "f": 0, "t": 413, "d": [108,810], "a": 1 }, + { "px": [464,272], "src": [272,176], "f": 0, "t": 413, "d": [108,811], "a": 1 }, + { "px": [480,272], "src": [272,176], "f": 0, "t": 413, "d": [108,812], "a": 1 }, + { "px": [496,272], "src": [272,176], "f": 0, "t": 413, "d": [108,813], "a": 1 }, + { "px": [512,272], "src": [272,176], "f": 0, "t": 413, "d": [108,814], "a": 1 }, + { "px": [528,272], "src": [272,176], "f": 0, "t": 413, "d": [108,815], "a": 1 }, + { "px": [544,272], "src": [272,176], "f": 0, "t": 413, "d": [108,816], "a": 1 }, + { "px": [688,272], "src": [272,176], "f": 0, "t": 413, "d": [108,825], "a": 1 }, + { "px": [704,272], "src": [272,176], "f": 0, "t": 413, "d": [108,826], "a": 1 }, + { "px": [720,272], "src": [272,176], "f": 0, "t": 413, "d": [108,827], "a": 1 }, + { "px": [448,288], "src": [272,176], "f": 0, "t": 413, "d": [108,856], "a": 1 }, + { "px": [464,288], "src": [272,176], "f": 0, "t": 413, "d": [108,857], "a": 1 }, + { "px": [480,288], "src": [272,176], "f": 0, "t": 413, "d": [108,858], "a": 1 }, + { "px": [496,288], "src": [272,176], "f": 0, "t": 413, "d": [108,859], "a": 1 }, + { "px": [512,288], "src": [272,176], "f": 0, "t": 413, "d": [108,860], "a": 1 }, + { "px": [528,288], "src": [272,176], "f": 0, "t": 413, "d": [108,861], "a": 1 }, + { "px": [544,288], "src": [272,176], "f": 0, "t": 413, "d": [108,862], "a": 1 }, + { "px": [560,288], "src": [272,176], "f": 0, "t": 413, "d": [108,863], "a": 1 }, + { "px": [672,288], "src": [272,176], "f": 0, "t": 413, "d": [108,870], "a": 1 }, + { "px": [688,288], "src": [272,176], "f": 0, "t": 413, "d": [108,871], "a": 1 }, + { "px": [704,288], "src": [272,176], "f": 0, "t": 413, "d": [108,872], "a": 1 }, + { "px": [720,288], "src": [272,176], "f": 0, "t": 413, "d": [108,873], "a": 1 }, + { "px": [448,304], "src": [272,176], "f": 0, "t": 413, "d": [108,902], "a": 1 }, + { "px": [464,304], "src": [272,176], "f": 0, "t": 413, "d": [108,903], "a": 1 }, + { "px": [480,304], "src": [272,176], "f": 0, "t": 413, "d": [108,904], "a": 1 }, + { "px": [496,304], "src": [272,176], "f": 0, "t": 413, "d": [108,905], "a": 1 }, + { "px": [512,304], "src": [272,176], "f": 0, "t": 413, "d": [108,906], "a": 1 }, + { "px": [528,304], "src": [272,176], "f": 0, "t": 413, "d": [108,907], "a": 1 }, + { "px": [544,304], "src": [272,176], "f": 0, "t": 413, "d": [108,908], "a": 1 }, + { "px": [560,304], "src": [272,176], "f": 0, "t": 413, "d": [108,909], "a": 1 }, + { "px": [656,304], "src": [272,176], "f": 0, "t": 413, "d": [108,915], "a": 1 }, + { "px": [672,304], "src": [272,176], "f": 0, "t": 413, "d": [108,916], "a": 1 }, + { "px": [688,304], "src": [272,176], "f": 0, "t": 413, "d": [108,917], "a": 1 }, + { "px": [704,304], "src": [272,176], "f": 0, "t": 413, "d": [108,918], "a": 1 }, + { "px": [720,304], "src": [272,176], "f": 0, "t": 413, "d": [108,919], "a": 1 }, + { "px": [448,320], "src": [272,176], "f": 0, "t": 413, "d": [108,948], "a": 1 }, + { "px": [464,320], "src": [272,176], "f": 0, "t": 413, "d": [108,949], "a": 1 }, + { "px": [480,320], "src": [272,176], "f": 0, "t": 413, "d": [108,950], "a": 1 }, + { "px": [496,320], "src": [272,176], "f": 0, "t": 413, "d": [108,951], "a": 1 }, + { "px": [512,320], "src": [272,176], "f": 0, "t": 413, "d": [108,952], "a": 1 }, + { "px": [528,320], "src": [272,176], "f": 0, "t": 413, "d": [108,953], "a": 1 }, + { "px": [544,320], "src": [272,176], "f": 0, "t": 413, "d": [108,954], "a": 1 }, + { "px": [560,320], "src": [272,176], "f": 0, "t": 413, "d": [108,955], "a": 1 }, + { "px": [576,320], "src": [272,176], "f": 0, "t": 413, "d": [108,956], "a": 1 }, + { "px": [656,320], "src": [272,176], "f": 0, "t": 413, "d": [108,961], "a": 1 }, + { "px": [672,320], "src": [272,176], "f": 0, "t": 413, "d": [108,962], "a": 1 }, + { "px": [688,320], "src": [272,176], "f": 0, "t": 413, "d": [108,963], "a": 1 }, + { "px": [704,320], "src": [272,176], "f": 0, "t": 413, "d": [108,964], "a": 1 }, + { "px": [720,320], "src": [272,176], "f": 0, "t": 413, "d": [108,965], "a": 1 }, + { "px": [448,336], "src": [272,176], "f": 0, "t": 413, "d": [108,994], "a": 1 }, + { "px": [464,336], "src": [272,176], "f": 0, "t": 413, "d": [108,995], "a": 1 }, + { "px": [480,336], "src": [272,176], "f": 0, "t": 413, "d": [108,996], "a": 1 }, + { "px": [496,336], "src": [272,176], "f": 0, "t": 413, "d": [108,997], "a": 1 }, + { "px": [512,336], "src": [272,176], "f": 0, "t": 413, "d": [108,998], "a": 1 }, + { "px": [528,336], "src": [272,176], "f": 0, "t": 413, "d": [108,999], "a": 1 }, + { "px": [544,336], "src": [272,176], "f": 0, "t": 413, "d": [108,1000], "a": 1 }, + { "px": [560,336], "src": [272,176], "f": 0, "t": 413, "d": [108,1001], "a": 1 }, + { "px": [576,336], "src": [272,176], "f": 0, "t": 413, "d": [108,1002], "a": 1 }, + { "px": [592,336], "src": [272,176], "f": 0, "t": 413, "d": [108,1003], "a": 1 }, + { "px": [608,336], "src": [272,176], "f": 0, "t": 413, "d": [108,1004], "a": 1 }, + { "px": [624,336], "src": [272,176], "f": 0, "t": 413, "d": [108,1005], "a": 1 }, + { "px": [640,336], "src": [272,176], "f": 0, "t": 413, "d": [108,1006], "a": 1 }, + { "px": [656,336], "src": [272,176], "f": 0, "t": 413, "d": [108,1007], "a": 1 }, + { "px": [672,336], "src": [272,176], "f": 0, "t": 413, "d": [108,1008], "a": 1 }, + { "px": [688,336], "src": [272,176], "f": 0, "t": 413, "d": [108,1009], "a": 1 }, + { "px": [704,336], "src": [272,176], "f": 0, "t": 413, "d": [108,1010], "a": 1 }, + { "px": [720,336], "src": [272,176], "f": 0, "t": 413, "d": [108,1011], "a": 1 }, + { "px": [512,16], "src": [272,192], "f": 3, "t": 449, "d": [109,78], "a": 1 }, + { "px": [496,64], "src": [272,192], "f": 3, "t": 449, "d": [109,215], "a": 1 }, + { "px": [544,96], "src": [272,192], "f": 0, "t": 449, "d": [109,310], "a": 1 }, + { "px": [592,96], "src": [272,192], "f": 1, "t": 449, "d": [109,313], "a": 1 }, + { "px": [528,112], "src": [272,192], "f": 0, "t": 449, "d": [109,355], "a": 1 }, + { "px": [640,112], "src": [272,192], "f": 1, "t": 449, "d": [109,362], "a": 1 }, + { "px": [672,144], "src": [272,192], "f": 1, "t": 449, "d": [109,456], "a": 1 }, + { "px": [464,176], "src": [272,192], "f": 3, "t": 449, "d": [109,535], "a": 1 }, + { "px": [496,176], "src": [272,192], "f": 2, "t": 449, "d": [109,537], "a": 1 }, + { "px": [432,192], "src": [272,192], "f": 3, "t": 449, "d": [109,579], "a": 1 }, + { "px": [512,192], "src": [272,192], "f": 2, "t": 449, "d": [109,584], "a": 1 }, + { "px": [688,192], "src": [272,192], "f": 1, "t": 449, "d": [109,595], "a": 1 }, + { "px": [400,208], "src": [272,192], "f": 1, "t": 449, "d": [109,623], "a": 1 }, + { "px": [416,224], "src": [272,192], "f": 1, "t": 449, "d": [109,670], "a": 1 }, + { "px": [528,224], "src": [272,192], "f": 2, "t": 449, "d": [109,677], "a": 1 }, + { "px": [544,240], "src": [272,192], "f": 2, "t": 449, "d": [109,724], "a": 1 }, + { "px": [432,256], "src": [272,192], "f": 1, "t": 449, "d": [109,763], "a": 1 }, + { "px": [688,256], "src": [272,192], "f": 3, "t": 449, "d": [109,779], "a": 1 }, + { "px": [560,272], "src": [272,192], "f": 2, "t": 449, "d": [109,817], "a": 1 }, + { "px": [672,272], "src": [272,192], "f": 3, "t": 449, "d": [109,824], "a": 1 }, + { "px": [656,288], "src": [272,192], "f": 3, "t": 449, "d": [109,869], "a": 1 }, + { "px": [576,304], "src": [272,192], "f": 2, "t": 449, "d": [109,910], "a": 1 }, + { "px": [592,320], "src": [272,192], "f": 2, "t": 449, "d": [109,957], "a": 1 }, + { "px": [640,320], "src": [272,192], "f": 3, "t": 449, "d": [109,960], "a": 1 } + ], + "seed": 4658657, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 46, + "__cHei": 22, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "5cbed652-66b0-11ec-895f-b58b5306cfd1", + "levelId": 112, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [96,0], "src": [80,192], "f": 0, "t": 437, "d": [51,6], "a": 1 }, + { "px": [144,0], "src": [64,192], "f": 0, "t": 436, "d": [51,9], "a": 1 }, + { "px": [208,0], "src": [64,192], "f": 0, "t": 436, "d": [51,13], "a": 1 }, + { "px": [304,0], "src": [80,192], "f": 0, "t": 437, "d": [51,19], "a": 1 }, + { "px": [336,0], "src": [64,192], "f": 0, "t": 436, "d": [51,21], "a": 1 }, + { "px": [352,0], "src": [80,192], "f": 0, "t": 437, "d": [51,22], "a": 1 }, + { "px": [416,0], "src": [80,192], "f": 0, "t": 437, "d": [51,26], "a": 1 }, + { "px": [464,0], "src": [80,192], "f": 0, "t": 437, "d": [51,29], "a": 1 }, + { "px": [48,16], "src": [80,192], "f": 0, "t": 437, "d": [51,49], "a": 1 }, + { "px": [80,16], "src": [48,192], "f": 0, "t": 435, "d": [51,51], "a": 1 }, + { "px": [96,16], "src": [48,192], "f": 0, "t": 435, "d": [51,52], "a": 1 }, + { "px": [336,16], "src": [64,192], "f": 0, "t": 436, "d": [51,67], "a": 1 }, + { "px": [400,16], "src": [48,192], "f": 0, "t": 435, "d": [51,71], "a": 1 }, + { "px": [464,16], "src": [80,192], "f": 0, "t": 437, "d": [51,75], "a": 1 }, + { "px": [480,16], "src": [64,192], "f": 0, "t": 436, "d": [51,76], "a": 1 }, + { "px": [32,32], "src": [48,192], "f": 0, "t": 435, "d": [51,94], "a": 1 }, + { "px": [48,32], "src": [80,192], "f": 0, "t": 437, "d": [51,95], "a": 1 }, + { "px": [80,32], "src": [48,192], "f": 0, "t": 435, "d": [51,97], "a": 1 }, + { "px": [96,32], "src": [64,192], "f": 0, "t": 436, "d": [51,98], "a": 1 }, + { "px": [304,32], "src": [80,192], "f": 0, "t": 437, "d": [51,111], "a": 1 }, + { "px": [336,32], "src": [64,192], "f": 0, "t": 436, "d": [51,113], "a": 1 }, + { "px": [368,32], "src": [48,192], "f": 0, "t": 435, "d": [51,115], "a": 1 }, + { "px": [400,32], "src": [48,192], "f": 0, "t": 435, "d": [51,117], "a": 1 }, + { "px": [416,32], "src": [80,192], "f": 0, "t": 437, "d": [51,118], "a": 1 }, + { "px": [432,32], "src": [80,192], "f": 0, "t": 437, "d": [51,119], "a": 1 }, + { "px": [48,48], "src": [80,192], "f": 0, "t": 437, "d": [51,141], "a": 1 }, + { "px": [80,48], "src": [48,192], "f": 0, "t": 435, "d": [51,143], "a": 1 }, + { "px": [96,48], "src": [64,192], "f": 0, "t": 436, "d": [51,144], "a": 1 }, + { "px": [176,48], "src": [64,192], "f": 0, "t": 436, "d": [51,149], "a": 1 }, + { "px": [304,48], "src": [48,192], "f": 0, "t": 435, "d": [51,157], "a": 1 }, + { "px": [336,48], "src": [64,192], "f": 0, "t": 436, "d": [51,159], "a": 1 }, + { "px": [352,48], "src": [64,192], "f": 0, "t": 436, "d": [51,160], "a": 1 }, + { "px": [368,48], "src": [64,192], "f": 0, "t": 436, "d": [51,161], "a": 1 }, + { "px": [400,48], "src": [80,192], "f": 0, "t": 437, "d": [51,163], "a": 1 }, + { "px": [432,48], "src": [48,192], "f": 0, "t": 435, "d": [51,165], "a": 1 }, + { "px": [80,64], "src": [64,192], "f": 0, "t": 436, "d": [51,189], "a": 1 }, + { "px": [96,64], "src": [48,192], "f": 0, "t": 435, "d": [51,190], "a": 1 }, + { "px": [144,64], "src": [80,192], "f": 0, "t": 437, "d": [51,193], "a": 1 }, + { "px": [160,64], "src": [64,192], "f": 0, "t": 436, "d": [51,194], "a": 1 }, + { "px": [208,64], "src": [80,192], "f": 0, "t": 437, "d": [51,197], "a": 1 }, + { "px": [240,64], "src": [48,192], "f": 0, "t": 435, "d": [51,199], "a": 1 }, + { "px": [272,64], "src": [80,192], "f": 0, "t": 437, "d": [51,201], "a": 1 }, + { "px": [464,64], "src": [48,192], "f": 0, "t": 435, "d": [51,213], "a": 1 }, + { "px": [80,80], "src": [48,192], "f": 0, "t": 435, "d": [51,235], "a": 1 }, + { "px": [96,80], "src": [48,192], "f": 0, "t": 435, "d": [51,236], "a": 1 }, + { "px": [176,80], "src": [48,192], "f": 0, "t": 435, "d": [51,241], "a": 1 }, + { "px": [208,80], "src": [64,192], "f": 0, "t": 436, "d": [51,243], "a": 1 }, + { "px": [272,80], "src": [80,192], "f": 0, "t": 437, "d": [51,247], "a": 1 }, + { "px": [288,80], "src": [64,192], "f": 0, "t": 436, "d": [51,248], "a": 1 }, + { "px": [304,80], "src": [80,192], "f": 0, "t": 437, "d": [51,249], "a": 1 }, + { "px": [336,80], "src": [64,192], "f": 0, "t": 436, "d": [51,251], "a": 1 }, + { "px": [352,80], "src": [64,192], "f": 0, "t": 436, "d": [51,252], "a": 1 }, + { "px": [368,80], "src": [64,192], "f": 0, "t": 436, "d": [51,253], "a": 1 }, + { "px": [16,96], "src": [80,192], "f": 0, "t": 437, "d": [51,277], "a": 1 }, + { "px": [80,96], "src": [80,192], "f": 0, "t": 437, "d": [51,281], "a": 1 }, + { "px": [96,96], "src": [64,192], "f": 0, "t": 436, "d": [51,282], "a": 1 }, + { "px": [160,96], "src": [48,192], "f": 0, "t": 435, "d": [51,286], "a": 1 }, + { "px": [272,96], "src": [64,192], "f": 0, "t": 436, "d": [51,293], "a": 1 }, + { "px": [288,96], "src": [48,192], "f": 0, "t": 435, "d": [51,294], "a": 1 }, + { "px": [336,96], "src": [64,192], "f": 0, "t": 436, "d": [51,297], "a": 1 }, + { "px": [352,96], "src": [80,192], "f": 0, "t": 437, "d": [51,298], "a": 1 }, + { "px": [368,96], "src": [80,192], "f": 0, "t": 437, "d": [51,299], "a": 1 }, + { "px": [400,96], "src": [64,192], "f": 0, "t": 436, "d": [51,301], "a": 1 }, + { "px": [80,112], "src": [80,192], "f": 0, "t": 437, "d": [51,327], "a": 1 }, + { "px": [96,112], "src": [48,192], "f": 0, "t": 435, "d": [51,328], "a": 1 }, + { "px": [160,112], "src": [48,192], "f": 0, "t": 435, "d": [51,332], "a": 1 }, + { "px": [176,112], "src": [80,192], "f": 0, "t": 437, "d": [51,333], "a": 1 }, + { "px": [208,112], "src": [80,192], "f": 0, "t": 437, "d": [51,335], "a": 1 }, + { "px": [272,112], "src": [80,192], "f": 0, "t": 437, "d": [51,339], "a": 1 }, + { "px": [288,112], "src": [80,192], "f": 0, "t": 437, "d": [51,340], "a": 1 }, + { "px": [368,112], "src": [80,192], "f": 0, "t": 437, "d": [51,345], "a": 1 }, + { "px": [560,112], "src": [48,192], "f": 0, "t": 435, "d": [51,357], "a": 1 }, + { "px": [48,128], "src": [80,192], "f": 0, "t": 437, "d": [51,371], "a": 1 }, + { "px": [144,128], "src": [48,192], "f": 0, "t": 435, "d": [51,377], "a": 1 }, + { "px": [160,128], "src": [80,192], "f": 0, "t": 437, "d": [51,378], "a": 1 }, + { "px": [240,128], "src": [64,192], "f": 0, "t": 436, "d": [51,383], "a": 1 }, + { "px": [368,128], "src": [64,192], "f": 0, "t": 436, "d": [51,391], "a": 1 }, + { "px": [544,128], "src": [80,192], "f": 0, "t": 437, "d": [51,402], "a": 1 }, + { "px": [16,144], "src": [48,192], "f": 0, "t": 435, "d": [51,415], "a": 1 }, + { "px": [32,144], "src": [80,192], "f": 0, "t": 437, "d": [51,416], "a": 1 }, + { "px": [48,144], "src": [48,192], "f": 0, "t": 435, "d": [51,417], "a": 1 }, + { "px": [112,144], "src": [64,192], "f": 0, "t": 436, "d": [51,421], "a": 1 }, + { "px": [144,144], "src": [64,192], "f": 0, "t": 436, "d": [51,423], "a": 1 }, + { "px": [208,144], "src": [64,192], "f": 0, "t": 436, "d": [51,427], "a": 1 }, + { "px": [240,144], "src": [48,192], "f": 0, "t": 435, "d": [51,429], "a": 1 }, + { "px": [432,144], "src": [80,192], "f": 0, "t": 437, "d": [51,441], "a": 1 }, + { "px": [496,144], "src": [64,192], "f": 0, "t": 436, "d": [51,445], "a": 1 }, + { "px": [528,144], "src": [64,192], "f": 0, "t": 436, "d": [51,447], "a": 1 }, + { "px": [16,160], "src": [48,192], "f": 0, "t": 435, "d": [51,461], "a": 1 }, + { "px": [304,160], "src": [80,192], "f": 0, "t": 437, "d": [51,479], "a": 1 }, + { "px": [336,160], "src": [64,192], "f": 0, "t": 436, "d": [51,481], "a": 1 }, + { "px": [352,160], "src": [64,192], "f": 0, "t": 436, "d": [51,482], "a": 1 }, + { "px": [368,160], "src": [48,192], "f": 0, "t": 435, "d": [51,483], "a": 1 }, + { "px": [400,160], "src": [48,192], "f": 0, "t": 435, "d": [51,485], "a": 1 }, + { "px": [416,160], "src": [48,192], "f": 0, "t": 435, "d": [51,486], "a": 1 }, + { "px": [432,160], "src": [64,192], "f": 0, "t": 436, "d": [51,487], "a": 1 }, + { "px": [592,160], "src": [80,192], "f": 0, "t": 437, "d": [51,497], "a": 1 }, + { "px": [608,160], "src": [48,192], "f": 0, "t": 435, "d": [51,498], "a": 1 }, + { "px": [656,160], "src": [80,192], "f": 0, "t": 437, "d": [51,501], "a": 1 }, + { "px": [16,176], "src": [48,192], "f": 0, "t": 435, "d": [51,507], "a": 1 }, + { "px": [80,176], "src": [64,192], "f": 0, "t": 436, "d": [51,511], "a": 1 }, + { "px": [96,176], "src": [48,192], "f": 0, "t": 435, "d": [51,512], "a": 1 }, + { "px": [336,176], "src": [48,192], "f": 0, "t": 435, "d": [51,527], "a": 1 }, + { "px": [352,176], "src": [64,192], "f": 0, "t": 436, "d": [51,528], "a": 1 }, + { "px": [368,176], "src": [48,192], "f": 0, "t": 435, "d": [51,529], "a": 1 }, + { "px": [400,176], "src": [48,192], "f": 0, "t": 435, "d": [51,531], "a": 1 }, + { "px": [624,176], "src": [80,192], "f": 0, "t": 437, "d": [51,545], "a": 1 }, + { "px": [240,192], "src": [80,192], "f": 0, "t": 437, "d": [51,567], "a": 1 }, + { "px": [560,192], "src": [48,192], "f": 0, "t": 435, "d": [51,587], "a": 1 }, + { "px": [624,192], "src": [64,192], "f": 0, "t": 436, "d": [51,591], "a": 1 }, + { "px": [240,208], "src": [80,192], "f": 0, "t": 437, "d": [51,613], "a": 1 }, + { "px": [304,208], "src": [80,192], "f": 0, "t": 437, "d": [51,617], "a": 1 }, + { "px": [544,208], "src": [64,192], "f": 0, "t": 436, "d": [51,632], "a": 1 }, + { "px": [560,208], "src": [64,192], "f": 0, "t": 436, "d": [51,633], "a": 1 }, + { "px": [592,208], "src": [80,192], "f": 0, "t": 437, "d": [51,635], "a": 1 }, + { "px": [608,208], "src": [80,192], "f": 0, "t": 437, "d": [51,636], "a": 1 }, + { "px": [48,224], "src": [64,192], "f": 0, "t": 436, "d": [51,647], "a": 1 }, + { "px": [80,224], "src": [80,192], "f": 0, "t": 437, "d": [51,649], "a": 1 }, + { "px": [96,224], "src": [64,192], "f": 0, "t": 436, "d": [51,650], "a": 1 }, + { "px": [144,224], "src": [64,192], "f": 0, "t": 436, "d": [51,653], "a": 1 }, + { "px": [176,224], "src": [80,192], "f": 0, "t": 437, "d": [51,655], "a": 1 }, + { "px": [224,224], "src": [48,192], "f": 0, "t": 435, "d": [51,658], "a": 1 }, + { "px": [560,224], "src": [48,192], "f": 0, "t": 435, "d": [51,679], "a": 1 }, + { "px": [592,224], "src": [64,192], "f": 0, "t": 436, "d": [51,681], "a": 1 }, + { "px": [608,224], "src": [80,192], "f": 0, "t": 437, "d": [51,682], "a": 1 }, + { "px": [96,240], "src": [80,192], "f": 0, "t": 437, "d": [51,696], "a": 1 }, + { "px": [160,240], "src": [64,192], "f": 0, "t": 436, "d": [51,700], "a": 1 }, + { "px": [176,240], "src": [48,192], "f": 0, "t": 435, "d": [51,701], "a": 1 }, + { "px": [272,240], "src": [80,192], "f": 0, "t": 437, "d": [51,707], "a": 1 }, + { "px": [352,240], "src": [80,192], "f": 0, "t": 437, "d": [51,712], "a": 1 }, + { "px": [368,240], "src": [48,192], "f": 0, "t": 435, "d": [51,713], "a": 1 }, + { "px": [96,256], "src": [64,192], "f": 0, "t": 436, "d": [51,742], "a": 1 }, + { "px": [160,256], "src": [64,192], "f": 0, "t": 436, "d": [51,746], "a": 1 }, + { "px": [304,256], "src": [64,192], "f": 0, "t": 436, "d": [51,755], "a": 1 }, + { "px": [352,256], "src": [64,192], "f": 0, "t": 436, "d": [51,758], "a": 1 }, + { "px": [368,256], "src": [80,192], "f": 0, "t": 437, "d": [51,759], "a": 1 }, + { "px": [592,256], "src": [48,192], "f": 0, "t": 435, "d": [51,773], "a": 1 }, + { "px": [608,256], "src": [80,192], "f": 0, "t": 437, "d": [51,774], "a": 1 }, + { "px": [640,256], "src": [48,192], "f": 0, "t": 435, "d": [51,776], "a": 1 }, + { "px": [656,256], "src": [48,192], "f": 0, "t": 435, "d": [51,777], "a": 1 }, + { "px": [80,272], "src": [80,192], "f": 0, "t": 437, "d": [51,787], "a": 1 }, + { "px": [336,272], "src": [48,192], "f": 0, "t": 435, "d": [51,803], "a": 1 }, + { "px": [352,272], "src": [64,192], "f": 0, "t": 436, "d": [51,804], "a": 1 }, + { "px": [368,272], "src": [48,192], "f": 0, "t": 435, "d": [51,805], "a": 1 }, + { "px": [400,272], "src": [80,192], "f": 0, "t": 437, "d": [51,807], "a": 1 }, + { "px": [416,272], "src": [48,192], "f": 0, "t": 435, "d": [51,808], "a": 1 }, + { "px": [592,272], "src": [80,192], "f": 0, "t": 437, "d": [51,819], "a": 1 }, + { "px": [608,272], "src": [64,192], "f": 0, "t": 436, "d": [51,820], "a": 1 }, + { "px": [624,272], "src": [80,192], "f": 0, "t": 437, "d": [51,821], "a": 1 }, + { "px": [640,272], "src": [48,192], "f": 0, "t": 435, "d": [51,822], "a": 1 }, + { "px": [16,288], "src": [64,192], "f": 0, "t": 436, "d": [51,829], "a": 1 }, + { "px": [160,288], "src": [64,192], "f": 0, "t": 436, "d": [51,838], "a": 1 }, + { "px": [208,288], "src": [64,192], "f": 0, "t": 436, "d": [51,841], "a": 1 }, + { "px": [272,288], "src": [48,192], "f": 0, "t": 435, "d": [51,845], "a": 1 }, + { "px": [288,288], "src": [64,192], "f": 0, "t": 436, "d": [51,846], "a": 1 }, + { "px": [336,288], "src": [48,192], "f": 0, "t": 435, "d": [51,849], "a": 1 }, + { "px": [368,288], "src": [48,192], "f": 0, "t": 435, "d": [51,851], "a": 1 }, + { "px": [400,288], "src": [80,192], "f": 0, "t": 437, "d": [51,853], "a": 1 }, + { "px": [416,288], "src": [48,192], "f": 0, "t": 435, "d": [51,854], "a": 1 }, + { "px": [608,288], "src": [80,192], "f": 0, "t": 437, "d": [51,866], "a": 1 }, + { "px": [624,288], "src": [48,192], "f": 0, "t": 435, "d": [51,867], "a": 1 }, + { "px": [112,304], "src": [64,192], "f": 0, "t": 436, "d": [51,881], "a": 1 }, + { "px": [208,304], "src": [80,192], "f": 0, "t": 437, "d": [51,887], "a": 1 }, + { "px": [224,304], "src": [48,192], "f": 0, "t": 435, "d": [51,888], "a": 1 }, + { "px": [272,304], "src": [64,192], "f": 0, "t": 436, "d": [51,891], "a": 1 }, + { "px": [288,304], "src": [48,192], "f": 0, "t": 435, "d": [51,892], "a": 1 }, + { "px": [304,304], "src": [64,192], "f": 0, "t": 436, "d": [51,893], "a": 1 }, + { "px": [336,304], "src": [80,192], "f": 0, "t": 437, "d": [51,895], "a": 1 }, + { "px": [416,304], "src": [48,192], "f": 0, "t": 435, "d": [51,900], "a": 1 }, + { "px": [624,304], "src": [48,192], "f": 0, "t": 435, "d": [51,913], "a": 1 }, + { "px": [112,320], "src": [80,192], "f": 0, "t": 437, "d": [51,927], "a": 1 }, + { "px": [224,320], "src": [48,192], "f": 0, "t": 435, "d": [51,934], "a": 1 }, + { "px": [272,320], "src": [80,192], "f": 0, "t": 437, "d": [51,937], "a": 1 }, + { "px": [288,320], "src": [48,192], "f": 0, "t": 435, "d": [51,938], "a": 1 }, + { "px": [304,320], "src": [80,192], "f": 0, "t": 437, "d": [51,939], "a": 1 }, + { "px": [16,336], "src": [80,192], "f": 0, "t": 437, "d": [51,967], "a": 1 }, + { "px": [32,336], "src": [64,192], "f": 0, "t": 436, "d": [51,968], "a": 1 }, + { "px": [48,336], "src": [64,192], "f": 0, "t": 436, "d": [51,969], "a": 1 }, + { "px": [240,336], "src": [64,192], "f": 0, "t": 436, "d": [51,981], "a": 1 }, + { "px": [272,336], "src": [80,192], "f": 0, "t": 437, "d": [51,983], "a": 1 }, + { "px": [288,336], "src": [64,192], "f": 0, "t": 436, "d": [51,984], "a": 1 }, + { "px": [304,336], "src": [80,192], "f": 0, "t": 437, "d": [51,985], "a": 1 }, + { "px": [400,336], "src": [48,192], "f": 0, "t": 435, "d": [51,991], "a": 1 }, + { "px": [16,0], "src": [96,192], "f": 0, "t": 438, "d": [85,1], "a": 1 }, + { "px": [32,0], "src": [96,192], "f": 0, "t": 438, "d": [85,2], "a": 1 }, + { "px": [48,0], "src": [112,192], "f": 0, "t": 439, "d": [85,3], "a": 1 }, + { "px": [80,0], "src": [96,192], "f": 0, "t": 438, "d": [85,5], "a": 1 }, + { "px": [224,0], "src": [128,192], "f": 0, "t": 440, "d": [85,14], "a": 1 }, + { "px": [16,16], "src": [112,192], "f": 0, "t": 439, "d": [85,47], "a": 1 }, + { "px": [32,16], "src": [112,192], "f": 0, "t": 439, "d": [85,48], "a": 1 }, + { "px": [208,16], "src": [112,192], "f": 0, "t": 439, "d": [85,59], "a": 1 }, + { "px": [352,16], "src": [128,192], "f": 0, "t": 440, "d": [85,68], "a": 1 }, + { "px": [368,16], "src": [128,192], "f": 0, "t": 440, "d": [85,69], "a": 1 }, + { "px": [16,32], "src": [112,192], "f": 0, "t": 439, "d": [85,93], "a": 1 }, + { "px": [352,32], "src": [112,192], "f": 0, "t": 439, "d": [85,114], "a": 1 }, + { "px": [32,48], "src": [96,192], "f": 0, "t": 438, "d": [85,140], "a": 1 }, + { "px": [144,48], "src": [96,192], "f": 0, "t": 438, "d": [85,147], "a": 1 }, + { "px": [416,48], "src": [112,192], "f": 0, "t": 439, "d": [85,164], "a": 1 }, + { "px": [464,48], "src": [112,192], "f": 0, "t": 439, "d": [85,167], "a": 1 }, + { "px": [16,64], "src": [96,192], "f": 0, "t": 438, "d": [85,185], "a": 1 }, + { "px": [32,64], "src": [128,192], "f": 0, "t": 440, "d": [85,186], "a": 1 }, + { "px": [176,64], "src": [128,192], "f": 0, "t": 440, "d": [85,195], "a": 1 }, + { "px": [224,64], "src": [96,192], "f": 0, "t": 438, "d": [85,198], "a": 1 }, + { "px": [304,64], "src": [112,192], "f": 0, "t": 439, "d": [85,203], "a": 1 }, + { "px": [16,80], "src": [96,192], "f": 0, "t": 438, "d": [85,231], "a": 1 }, + { "px": [160,80], "src": [128,192], "f": 0, "t": 440, "d": [85,240], "a": 1 }, + { "px": [240,80], "src": [128,192], "f": 0, "t": 440, "d": [85,245], "a": 1 }, + { "px": [464,80], "src": [96,192], "f": 0, "t": 438, "d": [85,259], "a": 1 }, + { "px": [48,96], "src": [96,192], "f": 0, "t": 438, "d": [85,279], "a": 1 }, + { "px": [176,96], "src": [96,192], "f": 0, "t": 438, "d": [85,287], "a": 1 }, + { "px": [464,96], "src": [128,192], "f": 0, "t": 440, "d": [85,305], "a": 1 }, + { "px": [16,112], "src": [112,192], "f": 0, "t": 439, "d": [85,323], "a": 1 }, + { "px": [32,112], "src": [128,192], "f": 0, "t": 440, "d": [85,324], "a": 1 }, + { "px": [464,112], "src": [96,192], "f": 0, "t": 438, "d": [85,351], "a": 1 }, + { "px": [32,128], "src": [112,192], "f": 0, "t": 439, "d": [85,370], "a": 1 }, + { "px": [80,128], "src": [96,192], "f": 0, "t": 438, "d": [85,373], "a": 1 }, + { "px": [224,128], "src": [96,192], "f": 0, "t": 438, "d": [85,382], "a": 1 }, + { "px": [272,128], "src": [112,192], "f": 0, "t": 439, "d": [85,385], "a": 1 }, + { "px": [464,128], "src": [128,192], "f": 0, "t": 440, "d": [85,397], "a": 1 }, + { "px": [624,128], "src": [112,192], "f": 0, "t": 439, "d": [85,407], "a": 1 }, + { "px": [224,144], "src": [96,192], "f": 0, "t": 438, "d": [85,428], "a": 1 }, + { "px": [544,144], "src": [112,192], "f": 0, "t": 439, "d": [85,448], "a": 1 }, + { "px": [624,144], "src": [96,192], "f": 0, "t": 438, "d": [85,453], "a": 1 }, + { "px": [96,160], "src": [96,192], "f": 0, "t": 438, "d": [85,466], "a": 1 }, + { "px": [112,160], "src": [96,192], "f": 0, "t": 438, "d": [85,467], "a": 1 }, + { "px": [208,160], "src": [128,192], "f": 0, "t": 440, "d": [85,473], "a": 1 }, + { "px": [224,160], "src": [112,192], "f": 0, "t": 439, "d": [85,474], "a": 1 }, + { "px": [288,160], "src": [112,192], "f": 0, "t": 439, "d": [85,478], "a": 1 }, + { "px": [528,160], "src": [96,192], "f": 0, "t": 438, "d": [85,493], "a": 1 }, + { "px": [544,160], "src": [128,192], "f": 0, "t": 440, "d": [85,494], "a": 1 }, + { "px": [624,160], "src": [112,192], "f": 0, "t": 439, "d": [85,499], "a": 1 }, + { "px": [16,192], "src": [128,192], "f": 0, "t": 440, "d": [85,553], "a": 1 }, + { "px": [32,192], "src": [128,192], "f": 0, "t": 440, "d": [85,554], "a": 1 }, + { "px": [48,192], "src": [128,192], "f": 0, "t": 440, "d": [85,555], "a": 1 }, + { "px": [80,192], "src": [112,192], "f": 0, "t": 439, "d": [85,557], "a": 1 }, + { "px": [96,192], "src": [112,192], "f": 0, "t": 439, "d": [85,558], "a": 1 }, + { "px": [160,192], "src": [112,192], "f": 0, "t": 439, "d": [85,562], "a": 1 }, + { "px": [176,192], "src": [128,192], "f": 0, "t": 440, "d": [85,563], "a": 1 }, + { "px": [16,208], "src": [96,192], "f": 0, "t": 438, "d": [85,599], "a": 1 }, + { "px": [32,208], "src": [96,192], "f": 0, "t": 438, "d": [85,600], "a": 1 }, + { "px": [80,208], "src": [112,192], "f": 0, "t": 439, "d": [85,603], "a": 1 }, + { "px": [160,208], "src": [112,192], "f": 0, "t": 439, "d": [85,608], "a": 1 }, + { "px": [176,208], "src": [96,192], "f": 0, "t": 438, "d": [85,609], "a": 1 }, + { "px": [224,208], "src": [112,192], "f": 0, "t": 439, "d": [85,612], "a": 1 }, + { "px": [624,208], "src": [112,192], "f": 0, "t": 439, "d": [85,637], "a": 1 }, + { "px": [160,224], "src": [128,192], "f": 0, "t": 440, "d": [85,654], "a": 1 }, + { "px": [208,224], "src": [112,192], "f": 0, "t": 439, "d": [85,657], "a": 1 }, + { "px": [240,224], "src": [128,192], "f": 0, "t": 440, "d": [85,659], "a": 1 }, + { "px": [272,224], "src": [96,192], "f": 0, "t": 438, "d": [85,661], "a": 1 }, + { "px": [304,224], "src": [128,192], "f": 0, "t": 440, "d": [85,663], "a": 1 }, + { "px": [368,224], "src": [128,192], "f": 0, "t": 440, "d": [85,667], "a": 1 }, + { "px": [624,224], "src": [128,192], "f": 0, "t": 440, "d": [85,683], "a": 1 }, + { "px": [80,240], "src": [96,192], "f": 0, "t": 438, "d": [85,695], "a": 1 }, + { "px": [400,240], "src": [96,192], "f": 0, "t": 438, "d": [85,715], "a": 1 }, + { "px": [672,240], "src": [128,192], "f": 0, "t": 440, "d": [85,732], "a": 1 }, + { "px": [80,256], "src": [112,192], "f": 0, "t": 439, "d": [85,741], "a": 1 }, + { "px": [48,272], "src": [112,192], "f": 0, "t": 439, "d": [85,785], "a": 1 }, + { "px": [32,288], "src": [128,192], "f": 0, "t": 440, "d": [85,830], "a": 1 }, + { "px": [48,288], "src": [128,192], "f": 0, "t": 440, "d": [85,831], "a": 1 }, + { "px": [144,288], "src": [112,192], "f": 0, "t": 439, "d": [85,837], "a": 1 }, + { "px": [96,304], "src": [96,192], "f": 0, "t": 438, "d": [85,880], "a": 1 }, + { "px": [96,320], "src": [96,192], "f": 0, "t": 438, "d": [85,926], "a": 1 }, + { "px": [416,336], "src": [96,192], "f": 0, "t": 438, "d": [85,992], "a": 1 }, + { "px": [112,0], "src": [16,192], "f": 0, "t": 433, "d": [102,7], "a": 1 }, + { "px": [160,0], "src": [0,192], "f": 0, "t": 432, "d": [102,10], "a": 1 }, + { "px": [176,0], "src": [32,192], "f": 0, "t": 434, "d": [102,11], "a": 1 }, + { "px": [240,0], "src": [32,192], "f": 0, "t": 434, "d": [102,15], "a": 1 }, + { "px": [272,0], "src": [32,192], "f": 0, "t": 434, "d": [102,17], "a": 1 }, + { "px": [288,0], "src": [32,192], "f": 0, "t": 434, "d": [102,18], "a": 1 }, + { "px": [368,0], "src": [0,192], "f": 0, "t": 432, "d": [102,23], "a": 1 }, + { "px": [400,0], "src": [32,192], "f": 0, "t": 434, "d": [102,25], "a": 1 }, + { "px": [432,0], "src": [32,192], "f": 0, "t": 434, "d": [102,27], "a": 1 }, + { "px": [480,0], "src": [0,192], "f": 0, "t": 432, "d": [102,30], "a": 1 }, + { "px": [496,0], "src": [32,192], "f": 0, "t": 434, "d": [102,31], "a": 1 }, + { "px": [112,16], "src": [16,192], "f": 0, "t": 433, "d": [102,53], "a": 1 }, + { "px": [144,16], "src": [0,192], "f": 0, "t": 432, "d": [102,55], "a": 1 }, + { "px": [160,16], "src": [0,192], "f": 0, "t": 432, "d": [102,56], "a": 1 }, + { "px": [176,16], "src": [0,192], "f": 0, "t": 432, "d": [102,57], "a": 1 }, + { "px": [224,16], "src": [0,192], "f": 0, "t": 432, "d": [102,60], "a": 1 }, + { "px": [240,16], "src": [16,192], "f": 0, "t": 433, "d": [102,61], "a": 1 }, + { "px": [272,16], "src": [0,192], "f": 0, "t": 432, "d": [102,63], "a": 1 }, + { "px": [288,16], "src": [0,192], "f": 0, "t": 432, "d": [102,64], "a": 1 }, + { "px": [304,16], "src": [32,192], "f": 0, "t": 434, "d": [102,65], "a": 1 }, + { "px": [416,16], "src": [32,192], "f": 0, "t": 434, "d": [102,72], "a": 1 }, + { "px": [432,16], "src": [32,192], "f": 0, "t": 434, "d": [102,73], "a": 1 }, + { "px": [112,32], "src": [16,192], "f": 0, "t": 433, "d": [102,99], "a": 1 }, + { "px": [144,32], "src": [0,192], "f": 0, "t": 432, "d": [102,101], "a": 1 }, + { "px": [160,32], "src": [16,192], "f": 0, "t": 433, "d": [102,102], "a": 1 }, + { "px": [176,32], "src": [16,192], "f": 0, "t": 433, "d": [102,103], "a": 1 }, + { "px": [208,32], "src": [0,192], "f": 0, "t": 432, "d": [102,105], "a": 1 }, + { "px": [224,32], "src": [0,192], "f": 0, "t": 432, "d": [102,106], "a": 1 }, + { "px": [240,32], "src": [16,192], "f": 0, "t": 433, "d": [102,107], "a": 1 }, + { "px": [272,32], "src": [0,192], "f": 0, "t": 432, "d": [102,109], "a": 1 }, + { "px": [288,32], "src": [16,192], "f": 0, "t": 433, "d": [102,110], "a": 1 }, + { "px": [464,32], "src": [16,192], "f": 0, "t": 433, "d": [102,121], "a": 1 }, + { "px": [480,32], "src": [16,192], "f": 0, "t": 433, "d": [102,122], "a": 1 }, + { "px": [16,48], "src": [0,192], "f": 0, "t": 432, "d": [102,139], "a": 1 }, + { "px": [112,48], "src": [32,192], "f": 0, "t": 434, "d": [102,145], "a": 1 }, + { "px": [160,48], "src": [32,192], "f": 0, "t": 434, "d": [102,148], "a": 1 }, + { "px": [208,48], "src": [0,192], "f": 0, "t": 432, "d": [102,151], "a": 1 }, + { "px": [224,48], "src": [16,192], "f": 0, "t": 433, "d": [102,152], "a": 1 }, + { "px": [240,48], "src": [16,192], "f": 0, "t": 433, "d": [102,153], "a": 1 }, + { "px": [272,48], "src": [0,192], "f": 0, "t": 432, "d": [102,155], "a": 1 }, + { "px": [288,48], "src": [16,192], "f": 0, "t": 433, "d": [102,156], "a": 1 }, + { "px": [480,48], "src": [0,192], "f": 0, "t": 432, "d": [102,168], "a": 1 }, + { "px": [48,64], "src": [32,192], "f": 0, "t": 434, "d": [102,187], "a": 1 }, + { "px": [112,64], "src": [16,192], "f": 0, "t": 433, "d": [102,191], "a": 1 }, + { "px": [288,64], "src": [0,192], "f": 0, "t": 432, "d": [102,202], "a": 1 }, + { "px": [336,64], "src": [32,192], "f": 0, "t": 434, "d": [102,205], "a": 1 }, + { "px": [352,64], "src": [32,192], "f": 0, "t": 434, "d": [102,206], "a": 1 }, + { "px": [368,64], "src": [32,192], "f": 0, "t": 434, "d": [102,207], "a": 1 }, + { "px": [400,64], "src": [16,192], "f": 0, "t": 433, "d": [102,209], "a": 1 }, + { "px": [416,64], "src": [0,192], "f": 0, "t": 432, "d": [102,210], "a": 1 }, + { "px": [432,64], "src": [16,192], "f": 0, "t": 433, "d": [102,211], "a": 1 }, + { "px": [32,80], "src": [16,192], "f": 0, "t": 433, "d": [102,232], "a": 1 }, + { "px": [48,80], "src": [16,192], "f": 0, "t": 433, "d": [102,233], "a": 1 }, + { "px": [112,80], "src": [0,192], "f": 0, "t": 432, "d": [102,237], "a": 1 }, + { "px": [144,80], "src": [0,192], "f": 0, "t": 432, "d": [102,239], "a": 1 }, + { "px": [224,80], "src": [0,192], "f": 0, "t": 432, "d": [102,244], "a": 1 }, + { "px": [400,80], "src": [32,192], "f": 0, "t": 434, "d": [102,255], "a": 1 }, + { "px": [416,80], "src": [32,192], "f": 0, "t": 434, "d": [102,256], "a": 1 }, + { "px": [432,80], "src": [16,192], "f": 0, "t": 433, "d": [102,257], "a": 1 }, + { "px": [32,96], "src": [0,192], "f": 0, "t": 432, "d": [102,278], "a": 1 }, + { "px": [112,96], "src": [16,192], "f": 0, "t": 433, "d": [102,283], "a": 1 }, + { "px": [144,96], "src": [16,192], "f": 0, "t": 433, "d": [102,285], "a": 1 }, + { "px": [208,96], "src": [0,192], "f": 0, "t": 432, "d": [102,289], "a": 1 }, + { "px": [224,96], "src": [0,192], "f": 0, "t": 432, "d": [102,290], "a": 1 }, + { "px": [240,96], "src": [16,192], "f": 0, "t": 433, "d": [102,291], "a": 1 }, + { "px": [304,96], "src": [32,192], "f": 0, "t": 434, "d": [102,295], "a": 1 }, + { "px": [416,96], "src": [32,192], "f": 0, "t": 434, "d": [102,302], "a": 1 }, + { "px": [432,96], "src": [0,192], "f": 0, "t": 432, "d": [102,303], "a": 1 }, + { "px": [48,112], "src": [16,192], "f": 0, "t": 433, "d": [102,325], "a": 1 }, + { "px": [112,112], "src": [0,192], "f": 0, "t": 432, "d": [102,329], "a": 1 }, + { "px": [144,112], "src": [32,192], "f": 0, "t": 434, "d": [102,331], "a": 1 }, + { "px": [224,112], "src": [0,192], "f": 0, "t": 432, "d": [102,336], "a": 1 }, + { "px": [240,112], "src": [32,192], "f": 0, "t": 434, "d": [102,337], "a": 1 }, + { "px": [304,112], "src": [32,192], "f": 0, "t": 434, "d": [102,341], "a": 1 }, + { "px": [336,112], "src": [0,192], "f": 0, "t": 432, "d": [102,343], "a": 1 }, + { "px": [352,112], "src": [32,192], "f": 0, "t": 434, "d": [102,344], "a": 1 }, + { "px": [400,112], "src": [32,192], "f": 0, "t": 434, "d": [102,347], "a": 1 }, + { "px": [416,112], "src": [16,192], "f": 0, "t": 433, "d": [102,348], "a": 1 }, + { "px": [432,112], "src": [32,192], "f": 0, "t": 434, "d": [102,349], "a": 1 }, + { "px": [16,128], "src": [16,192], "f": 0, "t": 433, "d": [102,369], "a": 1 }, + { "px": [96,128], "src": [32,192], "f": 0, "t": 434, "d": [102,374], "a": 1 }, + { "px": [112,128], "src": [32,192], "f": 0, "t": 434, "d": [102,375], "a": 1 }, + { "px": [176,128], "src": [0,192], "f": 0, "t": 432, "d": [102,379], "a": 1 }, + { "px": [208,128], "src": [0,192], "f": 0, "t": 432, "d": [102,381], "a": 1 }, + { "px": [288,128], "src": [16,192], "f": 0, "t": 433, "d": [102,386], "a": 1 }, + { "px": [304,128], "src": [32,192], "f": 0, "t": 434, "d": [102,387], "a": 1 }, + { "px": [336,128], "src": [16,192], "f": 0, "t": 433, "d": [102,389], "a": 1 }, + { "px": [352,128], "src": [32,192], "f": 0, "t": 434, "d": [102,390], "a": 1 }, + { "px": [400,128], "src": [0,192], "f": 0, "t": 432, "d": [102,393], "a": 1 }, + { "px": [416,128], "src": [16,192], "f": 0, "t": 433, "d": [102,394], "a": 1 }, + { "px": [432,128], "src": [16,192], "f": 0, "t": 433, "d": [102,395], "a": 1 }, + { "px": [560,128], "src": [0,192], "f": 0, "t": 432, "d": [102,403], "a": 1 }, + { "px": [592,128], "src": [32,192], "f": 0, "t": 434, "d": [102,405], "a": 1 }, + { "px": [608,128], "src": [16,192], "f": 0, "t": 433, "d": [102,406], "a": 1 }, + { "px": [80,144], "src": [16,192], "f": 0, "t": 433, "d": [102,419], "a": 1 }, + { "px": [96,144], "src": [0,192], "f": 0, "t": 432, "d": [102,420], "a": 1 }, + { "px": [160,144], "src": [32,192], "f": 0, "t": 434, "d": [102,424], "a": 1 }, + { "px": [176,144], "src": [32,192], "f": 0, "t": 434, "d": [102,425], "a": 1 }, + { "px": [272,144], "src": [0,192], "f": 0, "t": 432, "d": [102,431], "a": 1 }, + { "px": [288,144], "src": [0,192], "f": 0, "t": 432, "d": [102,432], "a": 1 }, + { "px": [304,144], "src": [0,192], "f": 0, "t": 432, "d": [102,433], "a": 1 }, + { "px": [336,144], "src": [0,192], "f": 0, "t": 432, "d": [102,435], "a": 1 }, + { "px": [352,144], "src": [16,192], "f": 0, "t": 433, "d": [102,436], "a": 1 }, + { "px": [368,144], "src": [32,192], "f": 0, "t": 434, "d": [102,437], "a": 1 }, + { "px": [400,144], "src": [16,192], "f": 0, "t": 433, "d": [102,439], "a": 1 }, + { "px": [416,144], "src": [32,192], "f": 0, "t": 434, "d": [102,440], "a": 1 }, + { "px": [464,144], "src": [16,192], "f": 0, "t": 433, "d": [102,443], "a": 1 }, + { "px": [480,144], "src": [16,192], "f": 0, "t": 433, "d": [102,444], "a": 1 }, + { "px": [560,144], "src": [32,192], "f": 0, "t": 434, "d": [102,449], "a": 1 }, + { "px": [592,144], "src": [32,192], "f": 0, "t": 434, "d": [102,451], "a": 1 }, + { "px": [608,144], "src": [0,192], "f": 0, "t": 432, "d": [102,452], "a": 1 }, + { "px": [32,160], "src": [32,192], "f": 0, "t": 434, "d": [102,462], "a": 1 }, + { "px": [48,160], "src": [16,192], "f": 0, "t": 433, "d": [102,463], "a": 1 }, + { "px": [80,160], "src": [16,192], "f": 0, "t": 433, "d": [102,465], "a": 1 }, + { "px": [144,160], "src": [16,192], "f": 0, "t": 433, "d": [102,469], "a": 1 }, + { "px": [160,160], "src": [16,192], "f": 0, "t": 433, "d": [102,470], "a": 1 }, + { "px": [176,160], "src": [32,192], "f": 0, "t": 434, "d": [102,471], "a": 1 }, + { "px": [240,160], "src": [32,192], "f": 0, "t": 434, "d": [102,475], "a": 1 }, + { "px": [272,160], "src": [16,192], "f": 0, "t": 433, "d": [102,477], "a": 1 }, + { "px": [560,160], "src": [32,192], "f": 0, "t": 434, "d": [102,495], "a": 1 }, + { "px": [32,176], "src": [16,192], "f": 0, "t": 433, "d": [102,508], "a": 1 }, + { "px": [48,176], "src": [0,192], "f": 0, "t": 432, "d": [102,509], "a": 1 }, + { "px": [112,176], "src": [16,192], "f": 0, "t": 433, "d": [102,513], "a": 1 }, + { "px": [144,176], "src": [16,192], "f": 0, "t": 433, "d": [102,515], "a": 1 }, + { "px": [160,176], "src": [0,192], "f": 0, "t": 432, "d": [102,516], "a": 1 }, + { "px": [176,176], "src": [16,192], "f": 0, "t": 433, "d": [102,517], "a": 1 }, + { "px": [208,176], "src": [16,192], "f": 0, "t": 433, "d": [102,519], "a": 1 }, + { "px": [224,176], "src": [32,192], "f": 0, "t": 434, "d": [102,520], "a": 1 }, + { "px": [240,176], "src": [0,192], "f": 0, "t": 432, "d": [102,521], "a": 1 }, + { "px": [272,176], "src": [0,192], "f": 0, "t": 432, "d": [102,523], "a": 1 }, + { "px": [288,176], "src": [32,192], "f": 0, "t": 434, "d": [102,524], "a": 1 }, + { "px": [304,176], "src": [16,192], "f": 0, "t": 433, "d": [102,525], "a": 1 }, + { "px": [416,176], "src": [0,192], "f": 0, "t": 432, "d": [102,532], "a": 1 }, + { "px": [528,176], "src": [16,192], "f": 0, "t": 433, "d": [102,539], "a": 1 }, + { "px": [544,176], "src": [16,192], "f": 0, "t": 433, "d": [102,540], "a": 1 }, + { "px": [560,176], "src": [32,192], "f": 0, "t": 434, "d": [102,541], "a": 1 }, + { "px": [592,176], "src": [32,192], "f": 0, "t": 434, "d": [102,543], "a": 1 }, + { "px": [608,176], "src": [16,192], "f": 0, "t": 433, "d": [102,544], "a": 1 }, + { "px": [656,176], "src": [0,192], "f": 0, "t": 432, "d": [102,547], "a": 1 }, + { "px": [112,192], "src": [0,192], "f": 0, "t": 432, "d": [102,559], "a": 1 }, + { "px": [144,192], "src": [0,192], "f": 0, "t": 432, "d": [102,561], "a": 1 }, + { "px": [208,192], "src": [0,192], "f": 0, "t": 432, "d": [102,565], "a": 1 }, + { "px": [224,192], "src": [16,192], "f": 0, "t": 433, "d": [102,566], "a": 1 }, + { "px": [272,192], "src": [32,192], "f": 0, "t": 434, "d": [102,569], "a": 1 }, + { "px": [288,192], "src": [16,192], "f": 0, "t": 433, "d": [102,570], "a": 1 }, + { "px": [304,192], "src": [16,192], "f": 0, "t": 433, "d": [102,571], "a": 1 }, + { "px": [336,192], "src": [16,192], "f": 0, "t": 433, "d": [102,573], "a": 1 }, + { "px": [544,192], "src": [16,192], "f": 0, "t": 433, "d": [102,586], "a": 1 }, + { "px": [592,192], "src": [16,192], "f": 0, "t": 433, "d": [102,589], "a": 1 }, + { "px": [608,192], "src": [16,192], "f": 0, "t": 433, "d": [102,590], "a": 1 }, + { "px": [656,192], "src": [32,192], "f": 0, "t": 434, "d": [102,593], "a": 1 }, + { "px": [48,208], "src": [16,192], "f": 0, "t": 433, "d": [102,601], "a": 1 }, + { "px": [96,208], "src": [0,192], "f": 0, "t": 432, "d": [102,604], "a": 1 }, + { "px": [112,208], "src": [32,192], "f": 0, "t": 434, "d": [102,605], "a": 1 }, + { "px": [144,208], "src": [0,192], "f": 0, "t": 432, "d": [102,607], "a": 1 }, + { "px": [208,208], "src": [16,192], "f": 0, "t": 433, "d": [102,611], "a": 1 }, + { "px": [272,208], "src": [0,192], "f": 0, "t": 432, "d": [102,615], "a": 1 }, + { "px": [288,208], "src": [32,192], "f": 0, "t": 434, "d": [102,616], "a": 1 }, + { "px": [336,208], "src": [32,192], "f": 0, "t": 434, "d": [102,619], "a": 1 }, + { "px": [656,208], "src": [0,192], "f": 0, "t": 432, "d": [102,639], "a": 1 }, + { "px": [672,208], "src": [32,192], "f": 0, "t": 434, "d": [102,640], "a": 1 }, + { "px": [16,224], "src": [32,192], "f": 0, "t": 434, "d": [102,645], "a": 1 }, + { "px": [32,224], "src": [16,192], "f": 0, "t": 433, "d": [102,646], "a": 1 }, + { "px": [112,224], "src": [0,192], "f": 0, "t": 432, "d": [102,651], "a": 1 }, + { "px": [288,224], "src": [16,192], "f": 0, "t": 433, "d": [102,662], "a": 1 }, + { "px": [336,224], "src": [16,192], "f": 0, "t": 433, "d": [102,665], "a": 1 }, + { "px": [352,224], "src": [0,192], "f": 0, "t": 432, "d": [102,666], "a": 1 }, + { "px": [656,224], "src": [0,192], "f": 0, "t": 432, "d": [102,685], "a": 1 }, + { "px": [672,224], "src": [32,192], "f": 0, "t": 434, "d": [102,686], "a": 1 }, + { "px": [688,224], "src": [16,192], "f": 0, "t": 433, "d": [102,687], "a": 1 }, + { "px": [720,224], "src": [16,192], "f": 0, "t": 433, "d": [102,689], "a": 1 }, + { "px": [16,240], "src": [32,192], "f": 0, "t": 434, "d": [102,691], "a": 1 }, + { "px": [32,240], "src": [32,192], "f": 0, "t": 434, "d": [102,692], "a": 1 }, + { "px": [48,240], "src": [32,192], "f": 0, "t": 434, "d": [102,693], "a": 1 }, + { "px": [112,240], "src": [16,192], "f": 0, "t": 433, "d": [102,697], "a": 1 }, + { "px": [144,240], "src": [16,192], "f": 0, "t": 433, "d": [102,699], "a": 1 }, + { "px": [208,240], "src": [16,192], "f": 0, "t": 433, "d": [102,703], "a": 1 }, + { "px": [224,240], "src": [0,192], "f": 0, "t": 432, "d": [102,704], "a": 1 }, + { "px": [240,240], "src": [16,192], "f": 0, "t": 433, "d": [102,705], "a": 1 }, + { "px": [288,240], "src": [32,192], "f": 0, "t": 434, "d": [102,708], "a": 1 }, + { "px": [304,240], "src": [0,192], "f": 0, "t": 432, "d": [102,709], "a": 1 }, + { "px": [336,240], "src": [32,192], "f": 0, "t": 434, "d": [102,711], "a": 1 }, + { "px": [592,240], "src": [0,192], "f": 0, "t": 432, "d": [102,727], "a": 1 }, + { "px": [608,240], "src": [0,192], "f": 0, "t": 432, "d": [102,728], "a": 1 }, + { "px": [624,240], "src": [32,192], "f": 0, "t": 434, "d": [102,729], "a": 1 }, + { "px": [656,240], "src": [16,192], "f": 0, "t": 433, "d": [102,731], "a": 1 }, + { "px": [16,256], "src": [16,192], "f": 0, "t": 433, "d": [102,737], "a": 1 }, + { "px": [32,256], "src": [16,192], "f": 0, "t": 433, "d": [102,738], "a": 1 }, + { "px": [48,256], "src": [16,192], "f": 0, "t": 433, "d": [102,739], "a": 1 }, + { "px": [112,256], "src": [0,192], "f": 0, "t": 432, "d": [102,743], "a": 1 }, + { "px": [144,256], "src": [16,192], "f": 0, "t": 433, "d": [102,745], "a": 1 }, + { "px": [176,256], "src": [16,192], "f": 0, "t": 433, "d": [102,747], "a": 1 }, + { "px": [208,256], "src": [32,192], "f": 0, "t": 434, "d": [102,749], "a": 1 }, + { "px": [224,256], "src": [32,192], "f": 0, "t": 434, "d": [102,750], "a": 1 }, + { "px": [240,256], "src": [16,192], "f": 0, "t": 433, "d": [102,751], "a": 1 }, + { "px": [272,256], "src": [32,192], "f": 0, "t": 434, "d": [102,753], "a": 1 }, + { "px": [288,256], "src": [16,192], "f": 0, "t": 433, "d": [102,754], "a": 1 }, + { "px": [336,256], "src": [0,192], "f": 0, "t": 432, "d": [102,757], "a": 1 }, + { "px": [400,256], "src": [0,192], "f": 0, "t": 432, "d": [102,761], "a": 1 }, + { "px": [576,256], "src": [32,192], "f": 0, "t": 434, "d": [102,772], "a": 1 }, + { "px": [624,256], "src": [32,192], "f": 0, "t": 434, "d": [102,775], "a": 1 }, + { "px": [16,272], "src": [0,192], "f": 0, "t": 432, "d": [102,783], "a": 1 }, + { "px": [32,272], "src": [32,192], "f": 0, "t": 434, "d": [102,784], "a": 1 }, + { "px": [96,272], "src": [16,192], "f": 0, "t": 433, "d": [102,788], "a": 1 }, + { "px": [112,272], "src": [0,192], "f": 0, "t": 432, "d": [102,789], "a": 1 }, + { "px": [144,272], "src": [0,192], "f": 0, "t": 432, "d": [102,791], "a": 1 }, + { "px": [160,272], "src": [32,192], "f": 0, "t": 434, "d": [102,792], "a": 1 }, + { "px": [176,272], "src": [0,192], "f": 0, "t": 432, "d": [102,793], "a": 1 }, + { "px": [208,272], "src": [16,192], "f": 0, "t": 433, "d": [102,795], "a": 1 }, + { "px": [224,272], "src": [0,192], "f": 0, "t": 432, "d": [102,796], "a": 1 }, + { "px": [240,272], "src": [16,192], "f": 0, "t": 433, "d": [102,797], "a": 1 }, + { "px": [272,272], "src": [32,192], "f": 0, "t": 434, "d": [102,799], "a": 1 }, + { "px": [288,272], "src": [0,192], "f": 0, "t": 432, "d": [102,800], "a": 1 }, + { "px": [304,272], "src": [32,192], "f": 0, "t": 434, "d": [102,801], "a": 1 }, + { "px": [80,288], "src": [32,192], "f": 0, "t": 434, "d": [102,833], "a": 1 }, + { "px": [96,288], "src": [16,192], "f": 0, "t": 433, "d": [102,834], "a": 1 }, + { "px": [112,288], "src": [0,192], "f": 0, "t": 432, "d": [102,835], "a": 1 }, + { "px": [176,288], "src": [0,192], "f": 0, "t": 432, "d": [102,839], "a": 1 }, + { "px": [224,288], "src": [0,192], "f": 0, "t": 432, "d": [102,842], "a": 1 }, + { "px": [240,288], "src": [16,192], "f": 0, "t": 433, "d": [102,843], "a": 1 }, + { "px": [304,288], "src": [0,192], "f": 0, "t": 432, "d": [102,847], "a": 1 }, + { "px": [352,288], "src": [32,192], "f": 0, "t": 434, "d": [102,850], "a": 1 }, + { "px": [592,288], "src": [16,192], "f": 0, "t": 433, "d": [102,865], "a": 1 }, + { "px": [16,304], "src": [32,192], "f": 0, "t": 434, "d": [102,875], "a": 1 }, + { "px": [32,304], "src": [16,192], "f": 0, "t": 433, "d": [102,876], "a": 1 }, + { "px": [48,304], "src": [0,192], "f": 0, "t": 432, "d": [102,877], "a": 1 }, + { "px": [80,304], "src": [32,192], "f": 0, "t": 434, "d": [102,879], "a": 1 }, + { "px": [144,304], "src": [32,192], "f": 0, "t": 434, "d": [102,883], "a": 1 }, + { "px": [160,304], "src": [32,192], "f": 0, "t": 434, "d": [102,884], "a": 1 }, + { "px": [176,304], "src": [0,192], "f": 0, "t": 432, "d": [102,885], "a": 1 }, + { "px": [240,304], "src": [0,192], "f": 0, "t": 432, "d": [102,889], "a": 1 }, + { "px": [352,304], "src": [32,192], "f": 0, "t": 434, "d": [102,896], "a": 1 }, + { "px": [368,304], "src": [32,192], "f": 0, "t": 434, "d": [102,897], "a": 1 }, + { "px": [400,304], "src": [16,192], "f": 0, "t": 433, "d": [102,899], "a": 1 }, + { "px": [608,304], "src": [0,192], "f": 0, "t": 432, "d": [102,912], "a": 1 }, + { "px": [16,320], "src": [0,192], "f": 0, "t": 432, "d": [102,921], "a": 1 }, + { "px": [32,320], "src": [32,192], "f": 0, "t": 434, "d": [102,922], "a": 1 }, + { "px": [48,320], "src": [0,192], "f": 0, "t": 432, "d": [102,923], "a": 1 }, + { "px": [80,320], "src": [0,192], "f": 0, "t": 432, "d": [102,925], "a": 1 }, + { "px": [144,320], "src": [32,192], "f": 0, "t": 434, "d": [102,929], "a": 1 }, + { "px": [160,320], "src": [32,192], "f": 0, "t": 434, "d": [102,930], "a": 1 }, + { "px": [176,320], "src": [32,192], "f": 0, "t": 434, "d": [102,931], "a": 1 }, + { "px": [208,320], "src": [16,192], "f": 0, "t": 433, "d": [102,933], "a": 1 }, + { "px": [240,320], "src": [16,192], "f": 0, "t": 433, "d": [102,935], "a": 1 }, + { "px": [336,320], "src": [16,192], "f": 0, "t": 433, "d": [102,941], "a": 1 }, + { "px": [352,320], "src": [0,192], "f": 0, "t": 432, "d": [102,942], "a": 1 }, + { "px": [368,320], "src": [16,192], "f": 0, "t": 433, "d": [102,943], "a": 1 }, + { "px": [400,320], "src": [16,192], "f": 0, "t": 433, "d": [102,945], "a": 1 }, + { "px": [416,320], "src": [32,192], "f": 0, "t": 434, "d": [102,946], "a": 1 }, + { "px": [80,336], "src": [16,192], "f": 0, "t": 433, "d": [102,971], "a": 1 }, + { "px": [96,336], "src": [0,192], "f": 0, "t": 432, "d": [102,972], "a": 1 }, + { "px": [112,336], "src": [32,192], "f": 0, "t": 434, "d": [102,973], "a": 1 }, + { "px": [144,336], "src": [0,192], "f": 0, "t": 432, "d": [102,975], "a": 1 }, + { "px": [160,336], "src": [32,192], "f": 0, "t": 434, "d": [102,976], "a": 1 }, + { "px": [176,336], "src": [0,192], "f": 0, "t": 432, "d": [102,977], "a": 1 }, + { "px": [208,336], "src": [32,192], "f": 0, "t": 434, "d": [102,979], "a": 1 }, + { "px": [224,336], "src": [0,192], "f": 0, "t": 432, "d": [102,980], "a": 1 }, + { "px": [336,336], "src": [32,192], "f": 0, "t": 434, "d": [102,987], "a": 1 }, + { "px": [352,336], "src": [32,192], "f": 0, "t": 434, "d": [102,988], "a": 1 }, + { "px": [368,336], "src": [0,192], "f": 0, "t": 432, "d": [102,989], "a": 1 }, + { "px": [0,0], "src": [160,208], "f": 0, "t": 478, "d": [70,0], "a": 1 }, + { "px": [64,0], "src": [160,208], "f": 0, "t": 478, "d": [70,4], "a": 1 }, + { "px": [128,0], "src": [160,208], "f": 0, "t": 478, "d": [70,8], "a": 1 }, + { "px": [192,0], "src": [160,208], "f": 0, "t": 478, "d": [70,12], "a": 1 }, + { "px": [256,0], "src": [160,208], "f": 0, "t": 478, "d": [70,16], "a": 1 }, + { "px": [320,0], "src": [160,208], "f": 0, "t": 478, "d": [70,20], "a": 1 }, + { "px": [384,0], "src": [160,208], "f": 0, "t": 478, "d": [70,24], "a": 1 }, + { "px": [448,0], "src": [160,208], "f": 0, "t": 478, "d": [70,28], "a": 1 }, + { "px": [0,16], "src": [160,208], "f": 0, "t": 478, "d": [70,46], "a": 1 }, + { "px": [64,16], "src": [160,208], "f": 0, "t": 478, "d": [70,50], "a": 1 }, + { "px": [128,16], "src": [160,208], "f": 0, "t": 478, "d": [70,54], "a": 1 }, + { "px": [192,16], "src": [160,208], "f": 0, "t": 478, "d": [70,58], "a": 1 }, + { "px": [256,16], "src": [160,208], "f": 0, "t": 478, "d": [70,62], "a": 1 }, + { "px": [320,16], "src": [160,208], "f": 0, "t": 478, "d": [70,66], "a": 1 }, + { "px": [384,16], "src": [160,208], "f": 0, "t": 478, "d": [70,70], "a": 1 }, + { "px": [448,16], "src": [160,208], "f": 0, "t": 478, "d": [70,74], "a": 1 }, + { "px": [0,32], "src": [160,208], "f": 0, "t": 478, "d": [70,92], "a": 1 }, + { "px": [64,32], "src": [160,208], "f": 0, "t": 478, "d": [70,96], "a": 1 }, + { "px": [128,32], "src": [160,208], "f": 0, "t": 478, "d": [70,100], "a": 1 }, + { "px": [192,32], "src": [160,208], "f": 0, "t": 478, "d": [70,104], "a": 1 }, + { "px": [256,32], "src": [160,208], "f": 0, "t": 478, "d": [70,108], "a": 1 }, + { "px": [320,32], "src": [160,208], "f": 0, "t": 478, "d": [70,112], "a": 1 }, + { "px": [384,32], "src": [160,208], "f": 0, "t": 478, "d": [70,116], "a": 1 }, + { "px": [448,32], "src": [160,208], "f": 0, "t": 478, "d": [70,120], "a": 1 }, + { "px": [0,48], "src": [160,208], "f": 0, "t": 478, "d": [70,138], "a": 1 }, + { "px": [64,48], "src": [160,208], "f": 0, "t": 478, "d": [70,142], "a": 1 }, + { "px": [128,48], "src": [160,208], "f": 0, "t": 478, "d": [70,146], "a": 1 }, + { "px": [192,48], "src": [160,208], "f": 0, "t": 478, "d": [70,150], "a": 1 }, + { "px": [256,48], "src": [160,208], "f": 0, "t": 478, "d": [70,154], "a": 1 }, + { "px": [320,48], "src": [160,208], "f": 0, "t": 478, "d": [70,158], "a": 1 }, + { "px": [384,48], "src": [160,208], "f": 0, "t": 478, "d": [70,162], "a": 1 }, + { "px": [448,48], "src": [160,208], "f": 0, "t": 478, "d": [70,166], "a": 1 }, + { "px": [0,64], "src": [160,208], "f": 0, "t": 478, "d": [70,184], "a": 1 }, + { "px": [64,64], "src": [160,208], "f": 0, "t": 478, "d": [70,188], "a": 1 }, + { "px": [128,64], "src": [160,208], "f": 0, "t": 478, "d": [70,192], "a": 1 }, + { "px": [192,64], "src": [160,208], "f": 0, "t": 478, "d": [70,196], "a": 1 }, + { "px": [256,64], "src": [160,208], "f": 0, "t": 478, "d": [70,200], "a": 1 }, + { "px": [320,64], "src": [160,208], "f": 0, "t": 478, "d": [70,204], "a": 1 }, + { "px": [384,64], "src": [160,208], "f": 0, "t": 478, "d": [70,208], "a": 1 }, + { "px": [448,64], "src": [160,208], "f": 0, "t": 478, "d": [70,212], "a": 1 }, + { "px": [0,80], "src": [160,208], "f": 0, "t": 478, "d": [70,230], "a": 1 }, + { "px": [64,80], "src": [160,208], "f": 0, "t": 478, "d": [70,234], "a": 1 }, + { "px": [128,80], "src": [160,208], "f": 0, "t": 478, "d": [70,238], "a": 1 }, + { "px": [192,80], "src": [160,208], "f": 0, "t": 478, "d": [70,242], "a": 1 }, + { "px": [256,80], "src": [160,208], "f": 0, "t": 478, "d": [70,246], "a": 1 }, + { "px": [320,80], "src": [160,208], "f": 0, "t": 478, "d": [70,250], "a": 1 }, + { "px": [384,80], "src": [160,208], "f": 0, "t": 478, "d": [70,254], "a": 1 }, + { "px": [448,80], "src": [160,208], "f": 0, "t": 478, "d": [70,258], "a": 1 }, + { "px": [0,96], "src": [160,208], "f": 0, "t": 478, "d": [70,276], "a": 1 }, + { "px": [64,96], "src": [160,208], "f": 0, "t": 478, "d": [70,280], "a": 1 }, + { "px": [128,96], "src": [160,208], "f": 0, "t": 478, "d": [70,284], "a": 1 }, + { "px": [192,96], "src": [160,208], "f": 0, "t": 478, "d": [70,288], "a": 1 }, + { "px": [256,96], "src": [160,208], "f": 0, "t": 478, "d": [70,292], "a": 1 }, + { "px": [320,96], "src": [160,208], "f": 0, "t": 478, "d": [70,296], "a": 1 }, + { "px": [384,96], "src": [160,208], "f": 0, "t": 478, "d": [70,300], "a": 1 }, + { "px": [448,96], "src": [160,208], "f": 0, "t": 478, "d": [70,304], "a": 1 }, + { "px": [0,112], "src": [160,208], "f": 0, "t": 478, "d": [70,322], "a": 1 }, + { "px": [64,112], "src": [160,208], "f": 0, "t": 478, "d": [70,326], "a": 1 }, + { "px": [128,112], "src": [160,208], "f": 0, "t": 478, "d": [70,330], "a": 1 }, + { "px": [192,112], "src": [160,208], "f": 0, "t": 478, "d": [70,334], "a": 1 }, + { "px": [256,112], "src": [160,208], "f": 0, "t": 478, "d": [70,338], "a": 1 }, + { "px": [320,112], "src": [160,208], "f": 0, "t": 478, "d": [70,342], "a": 1 }, + { "px": [384,112], "src": [160,208], "f": 0, "t": 478, "d": [70,346], "a": 1 }, + { "px": [448,112], "src": [160,208], "f": 0, "t": 478, "d": [70,350], "a": 1 }, + { "px": [576,112], "src": [160,208], "f": 0, "t": 478, "d": [70,358], "a": 1 }, + { "px": [0,128], "src": [160,208], "f": 0, "t": 478, "d": [70,368], "a": 1 }, + { "px": [64,128], "src": [160,208], "f": 0, "t": 478, "d": [70,372], "a": 1 }, + { "px": [128,128], "src": [160,208], "f": 0, "t": 478, "d": [70,376], "a": 1 }, + { "px": [192,128], "src": [160,208], "f": 0, "t": 478, "d": [70,380], "a": 1 }, + { "px": [256,128], "src": [160,208], "f": 0, "t": 478, "d": [70,384], "a": 1 }, + { "px": [320,128], "src": [160,208], "f": 0, "t": 478, "d": [70,388], "a": 1 }, + { "px": [384,128], "src": [160,208], "f": 0, "t": 478, "d": [70,392], "a": 1 }, + { "px": [448,128], "src": [160,208], "f": 0, "t": 478, "d": [70,396], "a": 1 }, + { "px": [576,128], "src": [160,208], "f": 0, "t": 478, "d": [70,404], "a": 1 }, + { "px": [0,144], "src": [160,208], "f": 0, "t": 478, "d": [70,414], "a": 1 }, + { "px": [64,144], "src": [160,208], "f": 0, "t": 478, "d": [70,418], "a": 1 }, + { "px": [128,144], "src": [160,208], "f": 0, "t": 478, "d": [70,422], "a": 1 }, + { "px": [192,144], "src": [160,208], "f": 0, "t": 478, "d": [70,426], "a": 1 }, + { "px": [256,144], "src": [160,208], "f": 0, "t": 478, "d": [70,430], "a": 1 }, + { "px": [320,144], "src": [160,208], "f": 0, "t": 478, "d": [70,434], "a": 1 }, + { "px": [384,144], "src": [160,208], "f": 0, "t": 478, "d": [70,438], "a": 1 }, + { "px": [448,144], "src": [160,208], "f": 0, "t": 478, "d": [70,442], "a": 1 }, + { "px": [512,144], "src": [160,208], "f": 0, "t": 478, "d": [70,446], "a": 1 }, + { "px": [576,144], "src": [160,208], "f": 0, "t": 478, "d": [70,450], "a": 1 }, + { "px": [0,160], "src": [160,208], "f": 0, "t": 478, "d": [70,460], "a": 1 }, + { "px": [64,160], "src": [160,208], "f": 0, "t": 478, "d": [70,464], "a": 1 }, + { "px": [128,160], "src": [160,208], "f": 0, "t": 478, "d": [70,468], "a": 1 }, + { "px": [192,160], "src": [160,208], "f": 0, "t": 478, "d": [70,472], "a": 1 }, + { "px": [256,160], "src": [160,208], "f": 0, "t": 478, "d": [70,476], "a": 1 }, + { "px": [320,160], "src": [160,208], "f": 0, "t": 478, "d": [70,480], "a": 1 }, + { "px": [384,160], "src": [160,208], "f": 0, "t": 478, "d": [70,484], "a": 1 }, + { "px": [448,160], "src": [160,208], "f": 0, "t": 478, "d": [70,488], "a": 1 }, + { "px": [512,160], "src": [160,208], "f": 0, "t": 478, "d": [70,492], "a": 1 }, + { "px": [576,160], "src": [160,208], "f": 0, "t": 478, "d": [70,496], "a": 1 }, + { "px": [640,160], "src": [160,208], "f": 0, "t": 478, "d": [70,500], "a": 1 }, + { "px": [0,176], "src": [160,208], "f": 0, "t": 478, "d": [70,506], "a": 1 }, + { "px": [64,176], "src": [160,208], "f": 0, "t": 478, "d": [70,510], "a": 1 }, + { "px": [128,176], "src": [160,208], "f": 0, "t": 478, "d": [70,514], "a": 1 }, + { "px": [192,176], "src": [160,208], "f": 0, "t": 478, "d": [70,518], "a": 1 }, + { "px": [256,176], "src": [160,208], "f": 0, "t": 478, "d": [70,522], "a": 1 }, + { "px": [320,176], "src": [160,208], "f": 0, "t": 478, "d": [70,526], "a": 1 }, + { "px": [384,176], "src": [160,208], "f": 0, "t": 478, "d": [70,530], "a": 1 }, + { "px": [576,176], "src": [160,208], "f": 0, "t": 478, "d": [70,542], "a": 1 }, + { "px": [640,176], "src": [160,208], "f": 0, "t": 478, "d": [70,546], "a": 1 }, + { "px": [0,192], "src": [160,208], "f": 0, "t": 478, "d": [70,552], "a": 1 }, + { "px": [64,192], "src": [160,208], "f": 0, "t": 478, "d": [70,556], "a": 1 }, + { "px": [128,192], "src": [160,208], "f": 0, "t": 478, "d": [70,560], "a": 1 }, + { "px": [192,192], "src": [160,208], "f": 0, "t": 478, "d": [70,564], "a": 1 }, + { "px": [256,192], "src": [160,208], "f": 0, "t": 478, "d": [70,568], "a": 1 }, + { "px": [320,192], "src": [160,208], "f": 0, "t": 478, "d": [70,572], "a": 1 }, + { "px": [576,192], "src": [160,208], "f": 0, "t": 478, "d": [70,588], "a": 1 }, + { "px": [640,192], "src": [160,208], "f": 0, "t": 478, "d": [70,592], "a": 1 }, + { "px": [0,208], "src": [160,208], "f": 0, "t": 478, "d": [70,598], "a": 1 }, + { "px": [64,208], "src": [160,208], "f": 0, "t": 478, "d": [70,602], "a": 1 }, + { "px": [128,208], "src": [160,208], "f": 0, "t": 478, "d": [70,606], "a": 1 }, + { "px": [192,208], "src": [160,208], "f": 0, "t": 478, "d": [70,610], "a": 1 }, + { "px": [256,208], "src": [160,208], "f": 0, "t": 478, "d": [70,614], "a": 1 }, + { "px": [320,208], "src": [160,208], "f": 0, "t": 478, "d": [70,618], "a": 1 }, + { "px": [576,208], "src": [160,208], "f": 0, "t": 478, "d": [70,634], "a": 1 }, + { "px": [640,208], "src": [160,208], "f": 0, "t": 478, "d": [70,638], "a": 1 }, + { "px": [0,224], "src": [160,208], "f": 0, "t": 478, "d": [70,644], "a": 1 }, + { "px": [64,224], "src": [160,208], "f": 0, "t": 478, "d": [70,648], "a": 1 }, + { "px": [128,224], "src": [160,208], "f": 0, "t": 478, "d": [70,652], "a": 1 }, + { "px": [192,224], "src": [160,208], "f": 0, "t": 478, "d": [70,656], "a": 1 }, + { "px": [256,224], "src": [160,208], "f": 0, "t": 478, "d": [70,660], "a": 1 }, + { "px": [320,224], "src": [160,208], "f": 0, "t": 478, "d": [70,664], "a": 1 }, + { "px": [384,224], "src": [160,208], "f": 0, "t": 478, "d": [70,668], "a": 1 }, + { "px": [576,224], "src": [160,208], "f": 0, "t": 478, "d": [70,680], "a": 1 }, + { "px": [640,224], "src": [160,208], "f": 0, "t": 478, "d": [70,684], "a": 1 }, + { "px": [704,224], "src": [160,208], "f": 0, "t": 478, "d": [70,688], "a": 1 }, + { "px": [0,240], "src": [160,208], "f": 0, "t": 478, "d": [70,690], "a": 1 }, + { "px": [64,240], "src": [160,208], "f": 0, "t": 478, "d": [70,694], "a": 1 }, + { "px": [128,240], "src": [160,208], "f": 0, "t": 478, "d": [70,698], "a": 1 }, + { "px": [192,240], "src": [160,208], "f": 0, "t": 478, "d": [70,702], "a": 1 }, + { "px": [256,240], "src": [160,208], "f": 0, "t": 478, "d": [70,706], "a": 1 }, + { "px": [320,240], "src": [160,208], "f": 0, "t": 478, "d": [70,710], "a": 1 }, + { "px": [384,240], "src": [160,208], "f": 0, "t": 478, "d": [70,714], "a": 1 }, + { "px": [576,240], "src": [160,208], "f": 0, "t": 478, "d": [70,726], "a": 1 }, + { "px": [640,240], "src": [160,208], "f": 0, "t": 478, "d": [70,730], "a": 1 }, + { "px": [0,256], "src": [160,208], "f": 0, "t": 478, "d": [70,736], "a": 1 }, + { "px": [64,256], "src": [160,208], "f": 0, "t": 478, "d": [70,740], "a": 1 }, + { "px": [128,256], "src": [160,208], "f": 0, "t": 478, "d": [70,744], "a": 1 }, + { "px": [192,256], "src": [160,208], "f": 0, "t": 478, "d": [70,748], "a": 1 }, + { "px": [256,256], "src": [160,208], "f": 0, "t": 478, "d": [70,752], "a": 1 }, + { "px": [320,256], "src": [160,208], "f": 0, "t": 478, "d": [70,756], "a": 1 }, + { "px": [384,256], "src": [160,208], "f": 0, "t": 478, "d": [70,760], "a": 1 }, + { "px": [0,272], "src": [160,208], "f": 0, "t": 478, "d": [70,782], "a": 1 }, + { "px": [64,272], "src": [160,208], "f": 0, "t": 478, "d": [70,786], "a": 1 }, + { "px": [128,272], "src": [160,208], "f": 0, "t": 478, "d": [70,790], "a": 1 }, + { "px": [192,272], "src": [160,208], "f": 0, "t": 478, "d": [70,794], "a": 1 }, + { "px": [256,272], "src": [160,208], "f": 0, "t": 478, "d": [70,798], "a": 1 }, + { "px": [320,272], "src": [160,208], "f": 0, "t": 478, "d": [70,802], "a": 1 }, + { "px": [384,272], "src": [160,208], "f": 0, "t": 478, "d": [70,806], "a": 1 }, + { "px": [0,288], "src": [160,208], "f": 0, "t": 478, "d": [70,828], "a": 1 }, + { "px": [64,288], "src": [160,208], "f": 0, "t": 478, "d": [70,832], "a": 1 }, + { "px": [128,288], "src": [160,208], "f": 0, "t": 478, "d": [70,836], "a": 1 }, + { "px": [192,288], "src": [160,208], "f": 0, "t": 478, "d": [70,840], "a": 1 }, + { "px": [256,288], "src": [160,208], "f": 0, "t": 478, "d": [70,844], "a": 1 }, + { "px": [320,288], "src": [160,208], "f": 0, "t": 478, "d": [70,848], "a": 1 }, + { "px": [384,288], "src": [160,208], "f": 0, "t": 478, "d": [70,852], "a": 1 }, + { "px": [0,304], "src": [160,208], "f": 0, "t": 478, "d": [70,874], "a": 1 }, + { "px": [64,304], "src": [160,208], "f": 0, "t": 478, "d": [70,878], "a": 1 }, + { "px": [128,304], "src": [160,208], "f": 0, "t": 478, "d": [70,882], "a": 1 }, + { "px": [192,304], "src": [160,208], "f": 0, "t": 478, "d": [70,886], "a": 1 }, + { "px": [256,304], "src": [160,208], "f": 0, "t": 478, "d": [70,890], "a": 1 }, + { "px": [320,304], "src": [160,208], "f": 0, "t": 478, "d": [70,894], "a": 1 }, + { "px": [384,304], "src": [160,208], "f": 0, "t": 478, "d": [70,898], "a": 1 }, + { "px": [0,320], "src": [160,208], "f": 0, "t": 478, "d": [70,920], "a": 1 }, + { "px": [64,320], "src": [160,208], "f": 0, "t": 478, "d": [70,924], "a": 1 }, + { "px": [128,320], "src": [160,208], "f": 0, "t": 478, "d": [70,928], "a": 1 }, + { "px": [192,320], "src": [160,208], "f": 0, "t": 478, "d": [70,932], "a": 1 }, + { "px": [256,320], "src": [160,208], "f": 0, "t": 478, "d": [70,936], "a": 1 }, + { "px": [320,320], "src": [160,208], "f": 0, "t": 478, "d": [70,940], "a": 1 }, + { "px": [384,320], "src": [160,208], "f": 0, "t": 478, "d": [70,944], "a": 1 }, + { "px": [0,336], "src": [160,208], "f": 0, "t": 478, "d": [70,966], "a": 1 }, + { "px": [64,336], "src": [160,208], "f": 0, "t": 478, "d": [70,970], "a": 1 }, + { "px": [128,336], "src": [160,208], "f": 0, "t": 478, "d": [70,974], "a": 1 }, + { "px": [192,336], "src": [160,208], "f": 0, "t": 478, "d": [70,978], "a": 1 }, + { "px": [256,336], "src": [160,208], "f": 0, "t": 478, "d": [70,982], "a": 1 }, + { "px": [320,336], "src": [160,208], "f": 0, "t": 478, "d": [70,986], "a": 1 }, + { "px": [384,336], "src": [160,208], "f": 0, "t": 478, "d": [70,990], "a": 1 }, + { "px": [480,0], "src": [240,176], "f": 3, "t": 411, "d": [91,30], "a": 1 }, + { "px": [464,48], "src": [240,176], "f": 3, "t": 411, "d": [91,167], "a": 1 }, + { "px": [560,128], "src": [240,176], "f": 0, "t": 411, "d": [91,403], "a": 1 }, + { "px": [576,128], "src": [240,176], "f": 1, "t": 411, "d": [91,404], "a": 1 }, + { "px": [448,144], "src": [240,176], "f": 3, "t": 411, "d": [91,442], "a": 1 }, + { "px": [464,144], "src": [240,176], "f": 1, "t": 411, "d": [91,443], "a": 1 }, + { "px": [512,144], "src": [240,176], "f": 2, "t": 411, "d": [91,446], "a": 1 }, + { "px": [544,144], "src": [240,176], "f": 0, "t": 411, "d": [91,448], "a": 1 }, + { "px": [416,160], "src": [240,176], "f": 3, "t": 411, "d": [91,486], "a": 1 }, + { "px": [528,160], "src": [240,176], "f": 2, "t": 411, "d": [91,493], "a": 1 }, + { "px": [624,160], "src": [240,176], "f": 1, "t": 411, "d": [91,499], "a": 1 }, + { "px": [336,176], "src": [240,176], "f": 3, "t": 411, "d": [91,527], "a": 1 }, + { "px": [544,176], "src": [240,176], "f": 2, "t": 411, "d": [91,540], "a": 1 }, + { "px": [560,208], "src": [240,176], "f": 2, "t": 411, "d": [91,633], "a": 1 }, + { "px": [656,208], "src": [240,176], "f": 1, "t": 411, "d": [91,639], "a": 1 }, + { "px": [336,224], "src": [240,176], "f": 1, "t": 411, "d": [91,665], "a": 1 }, + { "px": [576,224], "src": [240,176], "f": 2, "t": 411, "d": [91,680], "a": 1 }, + { "px": [672,224], "src": [240,176], "f": 1, "t": 411, "d": [91,686], "a": 1 }, + { "px": [672,224], "src": [240,176], "f": 3, "t": 411, "d": [91,686], "a": 1 }, + { "px": [384,240], "src": [240,176], "f": 1, "t": 411, "d": [91,714], "a": 1 }, + { "px": [656,240], "src": [240,176], "f": 3, "t": 411, "d": [91,731], "a": 1 }, + { "px": [592,256], "src": [240,176], "f": 2, "t": 411, "d": [91,773], "a": 1 }, + { "px": [640,256], "src": [240,176], "f": 3, "t": 411, "d": [91,776], "a": 1 }, + { "px": [400,272], "src": [240,176], "f": 1, "t": 411, "d": [91,807], "a": 1 }, + { "px": [624,272], "src": [240,176], "f": 3, "t": 411, "d": [91,821], "a": 1 }, + { "px": [608,288], "src": [240,176], "f": 2, "t": 411, "d": [91,866], "a": 1 }, + { "px": [496,0], "src": [208,176], "f": 1, "t": 409, "d": [89,31], "a": 1 }, + { "px": [480,16], "src": [208,176], "f": 1, "t": 409, "d": [89,76], "a": 1 }, + { "px": [480,32], "src": [208,176], "f": 1, "t": 409, "d": [89,122], "a": 1 }, + { "px": [480,48], "src": [208,176], "f": 1, "t": 409, "d": [89,168], "a": 1 }, + { "px": [464,64], "src": [208,176], "f": 1, "t": 409, "d": [89,213], "a": 1 }, + { "px": [464,80], "src": [208,176], "f": 1, "t": 409, "d": [89,259], "a": 1 }, + { "px": [464,96], "src": [208,176], "f": 1, "t": 409, "d": [89,305], "a": 1 }, + { "px": [464,112], "src": [208,176], "f": 1, "t": 409, "d": [89,351], "a": 1 }, + { "px": [560,112], "src": [208,176], "f": 0, "t": 409, "d": [89,357], "a": 1 }, + { "px": [576,112], "src": [208,176], "f": 1, "t": 409, "d": [89,358], "a": 1 }, + { "px": [464,128], "src": [208,176], "f": 1, "t": 409, "d": [89,397], "a": 1 }, + { "px": [544,128], "src": [208,176], "f": 0, "t": 409, "d": [89,402], "a": 1 }, + { "px": [624,128], "src": [208,176], "f": 1, "t": 409, "d": [89,407], "a": 1 }, + { "px": [624,144], "src": [208,176], "f": 1, "t": 409, "d": [89,453], "a": 1 }, + { "px": [448,160], "src": [208,176], "f": 1, "t": 409, "d": [89,488], "a": 1 }, + { "px": [512,160], "src": [208,176], "f": 0, "t": 409, "d": [89,492], "a": 1 }, + { "px": [656,160], "src": [208,176], "f": 1, "t": 409, "d": [89,501], "a": 1 }, + { "px": [416,176], "src": [208,176], "f": 1, "t": 409, "d": [89,532], "a": 1 }, + { "px": [528,176], "src": [208,176], "f": 0, "t": 409, "d": [89,539], "a": 1 }, + { "px": [656,176], "src": [208,176], "f": 1, "t": 409, "d": [89,547], "a": 1 }, + { "px": [336,192], "src": [208,176], "f": 1, "t": 409, "d": [89,573], "a": 1 }, + { "px": [544,192], "src": [208,176], "f": 0, "t": 409, "d": [89,586], "a": 1 }, + { "px": [656,192], "src": [208,176], "f": 1, "t": 409, "d": [89,593], "a": 1 }, + { "px": [336,208], "src": [208,176], "f": 1, "t": 409, "d": [89,619], "a": 1 }, + { "px": [544,208], "src": [208,176], "f": 0, "t": 409, "d": [89,632], "a": 1 }, + { "px": [672,208], "src": [208,176], "f": 1, "t": 409, "d": [89,640], "a": 1 }, + { "px": [384,224], "src": [208,176], "f": 1, "t": 409, "d": [89,668], "a": 1 }, + { "px": [560,224], "src": [208,176], "f": 0, "t": 409, "d": [89,679], "a": 1 }, + { "px": [400,240], "src": [208,176], "f": 1, "t": 409, "d": [89,715], "a": 1 }, + { "px": [576,240], "src": [208,176], "f": 0, "t": 409, "d": [89,726], "a": 1 }, + { "px": [672,240], "src": [208,176], "f": 1, "t": 409, "d": [89,732], "a": 1 }, + { "px": [400,256], "src": [208,176], "f": 1, "t": 409, "d": [89,761], "a": 1 }, + { "px": [576,256], "src": [208,176], "f": 0, "t": 409, "d": [89,772], "a": 1 }, + { "px": [656,256], "src": [208,176], "f": 1, "t": 409, "d": [89,777], "a": 1 }, + { "px": [416,272], "src": [208,176], "f": 1, "t": 409, "d": [89,808], "a": 1 }, + { "px": [592,272], "src": [208,176], "f": 0, "t": 409, "d": [89,819], "a": 1 }, + { "px": [640,272], "src": [208,176], "f": 1, "t": 409, "d": [89,822], "a": 1 }, + { "px": [416,288], "src": [208,176], "f": 1, "t": 409, "d": [89,854], "a": 1 }, + { "px": [592,288], "src": [208,176], "f": 0, "t": 409, "d": [89,865], "a": 1 }, + { "px": [624,288], "src": [208,176], "f": 1, "t": 409, "d": [89,867], "a": 1 }, + { "px": [416,304], "src": [208,176], "f": 1, "t": 409, "d": [89,900], "a": 1 }, + { "px": [608,304], "src": [208,176], "f": 0, "t": 409, "d": [89,912], "a": 1 }, + { "px": [624,304], "src": [208,176], "f": 1, "t": 409, "d": [89,913], "a": 1 }, + { "px": [416,320], "src": [208,176], "f": 1, "t": 409, "d": [89,946], "a": 1 }, + { "px": [416,336], "src": [208,176], "f": 1, "t": 409, "d": [89,992], "a": 1 }, + { "px": [496,0], "src": [224,176], "f": 2, "t": 410, "d": [88,31], "a": 1 }, + { "px": [480,48], "src": [224,176], "f": 2, "t": 410, "d": [88,168], "a": 1 }, + { "px": [560,112], "src": [224,176], "f": 0, "t": 410, "d": [88,357], "a": 1 }, + { "px": [576,112], "src": [224,176], "f": 0, "t": 410, "d": [88,358], "a": 1 }, + { "px": [544,128], "src": [224,176], "f": 0, "t": 410, "d": [88,402], "a": 1 }, + { "px": [592,128], "src": [224,176], "f": 0, "t": 410, "d": [88,405], "a": 1 }, + { "px": [608,128], "src": [224,176], "f": 0, "t": 410, "d": [88,406], "a": 1 }, + { "px": [624,128], "src": [224,176], "f": 0, "t": 410, "d": [88,407], "a": 1 }, + { "px": [464,144], "src": [224,176], "f": 2, "t": 410, "d": [88,443], "a": 1 }, + { "px": [480,144], "src": [224,176], "f": 0, "t": 410, "d": [88,444], "a": 1 }, + { "px": [480,144], "src": [224,176], "f": 2, "t": 410, "d": [88,444], "a": 1 }, + { "px": [496,144], "src": [224,176], "f": 0, "t": 410, "d": [88,445], "a": 1 }, + { "px": [496,144], "src": [224,176], "f": 2, "t": 410, "d": [88,445], "a": 1 }, + { "px": [512,144], "src": [224,176], "f": 0, "t": 410, "d": [88,446], "a": 1 }, + { "px": [528,144], "src": [224,176], "f": 0, "t": 410, "d": [88,447], "a": 1 }, + { "px": [432,160], "src": [224,176], "f": 2, "t": 410, "d": [88,487], "a": 1 }, + { "px": [448,160], "src": [224,176], "f": 2, "t": 410, "d": [88,488], "a": 1 }, + { "px": [512,160], "src": [224,176], "f": 2, "t": 410, "d": [88,492], "a": 1 }, + { "px": [640,160], "src": [224,176], "f": 0, "t": 410, "d": [88,500], "a": 1 }, + { "px": [656,160], "src": [224,176], "f": 0, "t": 410, "d": [88,501], "a": 1 }, + { "px": [352,176], "src": [224,176], "f": 2, "t": 410, "d": [88,528], "a": 1 }, + { "px": [368,176], "src": [224,176], "f": 2, "t": 410, "d": [88,529], "a": 1 }, + { "px": [384,176], "src": [224,176], "f": 2, "t": 410, "d": [88,530], "a": 1 }, + { "px": [400,176], "src": [224,176], "f": 2, "t": 410, "d": [88,531], "a": 1 }, + { "px": [416,176], "src": [224,176], "f": 2, "t": 410, "d": [88,532], "a": 1 }, + { "px": [528,176], "src": [224,176], "f": 2, "t": 410, "d": [88,539], "a": 1 }, + { "px": [544,208], "src": [224,176], "f": 2, "t": 410, "d": [88,632], "a": 1 }, + { "px": [672,208], "src": [224,176], "f": 0, "t": 410, "d": [88,640], "a": 1 }, + { "px": [352,224], "src": [224,176], "f": 0, "t": 410, "d": [88,666], "a": 1 }, + { "px": [368,224], "src": [224,176], "f": 0, "t": 410, "d": [88,667], "a": 1 }, + { "px": [384,224], "src": [224,176], "f": 0, "t": 410, "d": [88,668], "a": 1 }, + { "px": [560,224], "src": [224,176], "f": 2, "t": 410, "d": [88,679], "a": 1 }, + { "px": [688,224], "src": [224,176], "f": 0, "t": 410, "d": [88,687], "a": 1 }, + { "px": [688,224], "src": [224,176], "f": 2, "t": 410, "d": [88,687], "a": 1 }, + { "px": [704,224], "src": [224,176], "f": 0, "t": 410, "d": [88,688], "a": 1 }, + { "px": [704,224], "src": [224,176], "f": 2, "t": 410, "d": [88,688], "a": 1 }, + { "px": [720,224], "src": [224,176], "f": 0, "t": 410, "d": [88,689], "a": 1 }, + { "px": [720,224], "src": [224,176], "f": 2, "t": 410, "d": [88,689], "a": 1 }, + { "px": [400,240], "src": [224,176], "f": 0, "t": 410, "d": [88,715], "a": 1 }, + { "px": [672,240], "src": [224,176], "f": 2, "t": 410, "d": [88,732], "a": 1 }, + { "px": [576,256], "src": [224,176], "f": 2, "t": 410, "d": [88,772], "a": 1 }, + { "px": [656,256], "src": [224,176], "f": 2, "t": 410, "d": [88,777], "a": 1 }, + { "px": [416,272], "src": [224,176], "f": 0, "t": 410, "d": [88,808], "a": 1 }, + { "px": [640,272], "src": [224,176], "f": 2, "t": 410, "d": [88,822], "a": 1 }, + { "px": [592,288], "src": [224,176], "f": 2, "t": 410, "d": [88,865], "a": 1 }, + { "px": [608,304], "src": [224,176], "f": 2, "t": 410, "d": [88,912], "a": 1 }, + { "px": [624,304], "src": [224,176], "f": 2, "t": 410, "d": [88,913], "a": 1 } + ], + "seed": 6403646, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a35a7d40-66b0-11ec-9cd7-b57d32c8e175", "dir": "e" }, { "levelIid": "b7a1be70-66b0-11ec-895f-f7a843c40618", "dir": "s" } ] + }, + { + "identifier": "World_Level_10", + "iid": "720af480-66b0-11ec-895f-a114f0383ca2", + "uid": 113, + "worldX": -48, + "worldY": -160, + "worldDepth": -1, + "pxWid": 640, + "pxHei": 304, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": true, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 40, + "__cHei": 19, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "490f5450-66b0-11ec-8fc6-dd62cc585254", + "levelId": 113, + "layerDefUid": 119, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 948033, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Plant", + "__grid": [18,13], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "f50abbf0-66b0-11ec-8fc6-c5d946a7cef2", + "width": 20, + "height": 20, + "defUid": 116, + "px": [296,224], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Water_shroom", "__tile": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Water_shroom"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + }, + { + "__identifier": "Plant", + "__grid": [7,7], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "f6462220-66b0-11ec-8fc6-6b22bff34df9", + "width": 20, + "height": 20, + "defUid": 116, + "px": [120,128], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Water_shroom", "__tile": { "tilesetUid": 117, "x": 32, "y": 336, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Water_shroom"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + }, + { + "__identifier": "Door", + "__grid": [7,12], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 160, "y": 32, "w": 16, "h": 16 }, + "__smartColor": "#00FF30", + "iid": "33bf7c00-8dc0-11ec-a525-05f96cc4b971", + "width": 16, + "height": 16, + "defUid": 123, + "px": [112,208], + "fieldInstances": [{ "__identifier": "link", "__type": "EntityRef", "__value": { + "entityIid": "2a789b40-8dc0-11ec-a525-a942e9459e5c", + "layerIid": "490e69f0-66b0-11ec-8fc6-99491c0ace0c", + "levelIid": "a3591db0-66b0-11ec-9cd7-43878cf4d0ab", + "worldIid": "ca0e9bf0-c640-11ed-ad34-5d947c1a0a9f" + }, "__tile": null, "defUid": 124, "realEditorValues": [{ + "id": "V_String", + "params": ["2a789b40-8dc0-11ec-a525-a942e9459e5c"] + }] }] + } + ] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 40, + "__cHei": 19, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "720af481-66b0-11ec-895f-11a2756b8694", + "levelId": 113, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,2,2,2,2,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [32,0], "src": [16,32], "f": 0, "t": 73, "d": [8,2], "a": 1 }, + { "px": [64,0], "src": [16,16], "f": 0, "t": 37, "d": [8,4], "a": 1 }, + { "px": [112,0], "src": [16,32], "f": 0, "t": 73, "d": [8,7], "a": 1 }, + { "px": [256,0], "src": [16,32], "f": 0, "t": 73, "d": [8,16], "a": 1 }, + { "px": [448,0], "src": [16,16], "f": 0, "t": 37, "d": [8,28], "a": 1 }, + { "px": [464,0], "src": [16,16], "f": 0, "t": 37, "d": [8,29], "a": 1 }, + { "px": [480,0], "src": [16,16], "f": 0, "t": 37, "d": [8,30], "a": 1 }, + { "px": [496,0], "src": [16,32], "f": 0, "t": 73, "d": [8,31], "a": 1 }, + { "px": [16,16], "src": [16,16], "f": 0, "t": 37, "d": [8,41], "a": 1 }, + { "px": [48,16], "src": [16,32], "f": 0, "t": 73, "d": [8,43], "a": 1 }, + { "px": [112,16], "src": [16,16], "f": 0, "t": 37, "d": [8,47], "a": 1 }, + { "px": [128,16], "src": [16,32], "f": 0, "t": 73, "d": [8,48], "a": 1 }, + { "px": [384,16], "src": [16,16], "f": 0, "t": 37, "d": [8,64], "a": 1 }, + { "px": [432,16], "src": [16,32], "f": 0, "t": 73, "d": [8,67], "a": 1 }, + { "px": [512,16], "src": [16,16], "f": 0, "t": 37, "d": [8,72], "a": 1 }, + { "px": [528,16], "src": [16,16], "f": 0, "t": 37, "d": [8,73], "a": 1 }, + { "px": [544,16], "src": [16,16], "f": 0, "t": 37, "d": [8,74], "a": 1 }, + { "px": [576,16], "src": [16,16], "f": 0, "t": 37, "d": [8,76], "a": 1 }, + { "px": [592,16], "src": [16,16], "f": 0, "t": 37, "d": [8,77], "a": 1 }, + { "px": [0,32], "src": [16,32], "f": 0, "t": 73, "d": [8,80], "a": 1 }, + { "px": [32,32], "src": [16,32], "f": 0, "t": 73, "d": [8,82], "a": 1 }, + { "px": [48,32], "src": [16,16], "f": 0, "t": 37, "d": [8,83], "a": 1 }, + { "px": [112,32], "src": [16,32], "f": 0, "t": 73, "d": [8,87], "a": 1 }, + { "px": [128,32], "src": [16,16], "f": 0, "t": 37, "d": [8,88], "a": 1 }, + { "px": [144,32], "src": [16,16], "f": 0, "t": 37, "d": [8,89], "a": 1 }, + { "px": [272,32], "src": [16,16], "f": 0, "t": 37, "d": [8,97], "a": 1 }, + { "px": [416,32], "src": [16,16], "f": 0, "t": 37, "d": [8,106], "a": 1 }, + { "px": [432,32], "src": [16,32], "f": 0, "t": 73, "d": [8,107], "a": 1 }, + { "px": [528,32], "src": [16,16], "f": 0, "t": 37, "d": [8,113], "a": 1 }, + { "px": [544,32], "src": [16,32], "f": 0, "t": 73, "d": [8,114], "a": 1 }, + { "px": [576,32], "src": [16,16], "f": 0, "t": 37, "d": [8,116], "a": 1 }, + { "px": [48,48], "src": [16,16], "f": 0, "t": 37, "d": [8,123], "a": 1 }, + { "px": [80,48], "src": [16,16], "f": 0, "t": 37, "d": [8,125], "a": 1 }, + { "px": [96,48], "src": [16,32], "f": 0, "t": 73, "d": [8,126], "a": 1 }, + { "px": [112,48], "src": [16,32], "f": 0, "t": 73, "d": [8,127], "a": 1 }, + { "px": [128,48], "src": [16,16], "f": 0, "t": 37, "d": [8,128], "a": 1 }, + { "px": [144,48], "src": [16,32], "f": 0, "t": 73, "d": [8,129], "a": 1 }, + { "px": [160,48], "src": [16,32], "f": 0, "t": 73, "d": [8,130], "a": 1 }, + { "px": [176,48], "src": [16,16], "f": 0, "t": 37, "d": [8,131], "a": 1 }, + { "px": [192,48], "src": [16,16], "f": 0, "t": 37, "d": [8,132], "a": 1 }, + { "px": [208,48], "src": [16,32], "f": 0, "t": 73, "d": [8,133], "a": 1 }, + { "px": [224,48], "src": [16,16], "f": 0, "t": 37, "d": [8,134], "a": 1 }, + { "px": [240,48], "src": [16,16], "f": 0, "t": 37, "d": [8,135], "a": 1 }, + { "px": [256,48], "src": [16,16], "f": 0, "t": 37, "d": [8,136], "a": 1 }, + { "px": [288,48], "src": [16,16], "f": 0, "t": 37, "d": [8,138], "a": 1 }, + { "px": [304,48], "src": [16,32], "f": 0, "t": 73, "d": [8,139], "a": 1 }, + { "px": [400,48], "src": [16,16], "f": 0, "t": 37, "d": [8,145], "a": 1 }, + { "px": [416,48], "src": [16,16], "f": 0, "t": 37, "d": [8,146], "a": 1 }, + { "px": [432,48], "src": [16,32], "f": 0, "t": 73, "d": [8,147], "a": 1 }, + { "px": [560,48], "src": [16,16], "f": 0, "t": 37, "d": [8,155], "a": 1 }, + { "px": [0,64], "src": [16,32], "f": 0, "t": 73, "d": [8,160], "a": 1 }, + { "px": [64,64], "src": [16,16], "f": 0, "t": 37, "d": [8,164], "a": 1 }, + { "px": [272,64], "src": [16,32], "f": 0, "t": 73, "d": [8,177], "a": 1 }, + { "px": [288,64], "src": [16,16], "f": 0, "t": 37, "d": [8,178], "a": 1 }, + { "px": [384,64], "src": [16,16], "f": 0, "t": 37, "d": [8,184], "a": 1 }, + { "px": [416,64], "src": [16,16], "f": 0, "t": 37, "d": [8,186], "a": 1 }, + { "px": [432,64], "src": [16,32], "f": 0, "t": 73, "d": [8,187], "a": 1 }, + { "px": [464,64], "src": [16,16], "f": 0, "t": 37, "d": [8,189], "a": 1 }, + { "px": [560,64], "src": [16,16], "f": 0, "t": 37, "d": [8,195], "a": 1 }, + { "px": [576,64], "src": [16,16], "f": 0, "t": 37, "d": [8,196], "a": 1 }, + { "px": [16,80], "src": [16,16], "f": 0, "t": 37, "d": [8,201], "a": 1 }, + { "px": [48,80], "src": [16,16], "f": 0, "t": 37, "d": [8,203], "a": 1 }, + { "px": [64,80], "src": [16,32], "f": 0, "t": 73, "d": [8,204], "a": 1 }, + { "px": [304,80], "src": [16,16], "f": 0, "t": 37, "d": [8,219], "a": 1 }, + { "px": [320,80], "src": [16,32], "f": 0, "t": 73, "d": [8,220], "a": 1 }, + { "px": [336,80], "src": [16,32], "f": 0, "t": 73, "d": [8,221], "a": 1 }, + { "px": [352,80], "src": [16,32], "f": 0, "t": 73, "d": [8,222], "a": 1 }, + { "px": [368,80], "src": [16,32], "f": 0, "t": 73, "d": [8,223], "a": 1 }, + { "px": [384,80], "src": [16,32], "f": 0, "t": 73, "d": [8,224], "a": 1 }, + { "px": [432,80], "src": [16,32], "f": 0, "t": 73, "d": [8,227], "a": 1 }, + { "px": [448,80], "src": [16,16], "f": 0, "t": 37, "d": [8,228], "a": 1 }, + { "px": [464,80], "src": [16,16], "f": 0, "t": 37, "d": [8,229], "a": 1 }, + { "px": [560,80], "src": [16,32], "f": 0, "t": 73, "d": [8,235], "a": 1 }, + { "px": [16,96], "src": [16,16], "f": 0, "t": 37, "d": [8,241], "a": 1 }, + { "px": [32,96], "src": [16,16], "f": 0, "t": 37, "d": [8,242], "a": 1 }, + { "px": [48,96], "src": [16,16], "f": 0, "t": 37, "d": [8,243], "a": 1 }, + { "px": [64,96], "src": [16,16], "f": 0, "t": 37, "d": [8,244], "a": 1 }, + { "px": [384,96], "src": [16,32], "f": 0, "t": 73, "d": [8,264], "a": 1 }, + { "px": [400,96], "src": [16,32], "f": 0, "t": 73, "d": [8,265], "a": 1 }, + { "px": [416,96], "src": [16,32], "f": 0, "t": 73, "d": [8,266], "a": 1 }, + { "px": [432,96], "src": [16,16], "f": 0, "t": 37, "d": [8,267], "a": 1 }, + { "px": [448,96], "src": [16,16], "f": 0, "t": 37, "d": [8,268], "a": 1 }, + { "px": [496,96], "src": [16,16], "f": 0, "t": 37, "d": [8,271], "a": 1 }, + { "px": [544,96], "src": [16,16], "f": 0, "t": 37, "d": [8,274], "a": 1 }, + { "px": [576,96], "src": [16,32], "f": 0, "t": 73, "d": [8,276], "a": 1 }, + { "px": [608,96], "src": [16,32], "f": 0, "t": 73, "d": [8,278], "a": 1 }, + { "px": [624,96], "src": [16,16], "f": 0, "t": 37, "d": [8,279], "a": 1 }, + { "px": [64,112], "src": [16,16], "f": 0, "t": 37, "d": [8,284], "a": 1 }, + { "px": [448,112], "src": [16,16], "f": 0, "t": 37, "d": [8,308], "a": 1 }, + { "px": [464,112], "src": [16,16], "f": 0, "t": 37, "d": [8,309], "a": 1 }, + { "px": [480,112], "src": [16,32], "f": 0, "t": 73, "d": [8,310], "a": 1 }, + { "px": [496,112], "src": [16,16], "f": 0, "t": 37, "d": [8,311], "a": 1 }, + { "px": [512,112], "src": [16,16], "f": 0, "t": 37, "d": [8,312], "a": 1 }, + { "px": [528,112], "src": [16,16], "f": 0, "t": 37, "d": [8,313], "a": 1 }, + { "px": [592,112], "src": [16,32], "f": 0, "t": 73, "d": [8,317], "a": 1 }, + { "px": [624,112], "src": [16,32], "f": 0, "t": 73, "d": [8,319], "a": 1 }, + { "px": [0,128], "src": [16,16], "f": 0, "t": 37, "d": [8,320], "a": 1 }, + { "px": [80,128], "src": [16,16], "f": 0, "t": 37, "d": [8,325], "a": 1 }, + { "px": [176,128], "src": [16,16], "f": 0, "t": 37, "d": [8,331], "a": 1 }, + { "px": [528,128], "src": [16,16], "f": 0, "t": 37, "d": [8,353], "a": 1 }, + { "px": [96,144], "src": [16,16], "f": 0, "t": 37, "d": [8,366], "a": 1 }, + { "px": [112,144], "src": [16,16], "f": 0, "t": 37, "d": [8,367], "a": 1 }, + { "px": [128,144], "src": [16,32], "f": 0, "t": 73, "d": [8,368], "a": 1 }, + { "px": [144,144], "src": [16,32], "f": 0, "t": 73, "d": [8,369], "a": 1 }, + { "px": [528,144], "src": [16,32], "f": 0, "t": 73, "d": [8,393], "a": 1 }, + { "px": [544,144], "src": [16,16], "f": 0, "t": 37, "d": [8,394], "a": 1 }, + { "px": [16,160], "src": [16,32], "f": 0, "t": 73, "d": [8,401], "a": 1 }, + { "px": [48,160], "src": [16,16], "f": 0, "t": 37, "d": [8,403], "a": 1 }, + { "px": [80,160], "src": [16,32], "f": 0, "t": 73, "d": [8,405], "a": 1 }, + { "px": [528,160], "src": [16,32], "f": 0, "t": 73, "d": [8,433], "a": 1 }, + { "px": [0,176], "src": [16,16], "f": 0, "t": 37, "d": [8,440], "a": 1 }, + { "px": [64,176], "src": [16,16], "f": 0, "t": 37, "d": [8,444], "a": 1 }, + { "px": [80,176], "src": [16,16], "f": 0, "t": 37, "d": [8,445], "a": 1 }, + { "px": [448,176], "src": [16,32], "f": 0, "t": 73, "d": [8,468], "a": 1 }, + { "px": [528,176], "src": [16,32], "f": 0, "t": 73, "d": [8,473], "a": 1 }, + { "px": [80,192], "src": [16,32], "f": 0, "t": 73, "d": [8,485], "a": 1 }, + { "px": [432,192], "src": [16,16], "f": 0, "t": 37, "d": [8,507], "a": 1 }, + { "px": [448,192], "src": [16,32], "f": 0, "t": 73, "d": [8,508], "a": 1 }, + { "px": [464,192], "src": [16,16], "f": 0, "t": 37, "d": [8,509], "a": 1 }, + { "px": [480,192], "src": [16,16], "f": 0, "t": 37, "d": [8,510], "a": 1 }, + { "px": [528,192], "src": [16,32], "f": 0, "t": 73, "d": [8,513], "a": 1 }, + { "px": [608,192], "src": [16,16], "f": 0, "t": 37, "d": [8,518], "a": 1 }, + { "px": [624,192], "src": [16,16], "f": 0, "t": 37, "d": [8,519], "a": 1 }, + { "px": [80,208], "src": [16,32], "f": 0, "t": 73, "d": [8,525], "a": 1 }, + { "px": [432,208], "src": [16,16], "f": 0, "t": 37, "d": [8,547], "a": 1 }, + { "px": [464,208], "src": [16,32], "f": 0, "t": 73, "d": [8,549], "a": 1 }, + { "px": [496,208], "src": [16,32], "f": 0, "t": 73, "d": [8,551], "a": 1 }, + { "px": [512,208], "src": [16,32], "f": 0, "t": 73, "d": [8,552], "a": 1 }, + { "px": [544,208], "src": [16,32], "f": 0, "t": 73, "d": [8,554], "a": 1 }, + { "px": [0,224], "src": [16,32], "f": 0, "t": 73, "d": [8,560], "a": 1 }, + { "px": [80,224], "src": [16,16], "f": 0, "t": 37, "d": [8,565], "a": 1 }, + { "px": [384,224], "src": [16,32], "f": 0, "t": 73, "d": [8,584], "a": 1 }, + { "px": [400,224], "src": [16,16], "f": 0, "t": 37, "d": [8,585], "a": 1 }, + { "px": [416,224], "src": [16,16], "f": 0, "t": 37, "d": [8,586], "a": 1 }, + { "px": [448,224], "src": [16,16], "f": 0, "t": 37, "d": [8,588], "a": 1 }, + { "px": [112,240], "src": [16,16], "f": 0, "t": 37, "d": [8,607], "a": 1 }, + { "px": [176,240], "src": [16,16], "f": 0, "t": 37, "d": [8,611], "a": 1 }, + { "px": [192,240], "src": [16,16], "f": 0, "t": 37, "d": [8,612], "a": 1 }, + { "px": [224,240], "src": [16,32], "f": 0, "t": 73, "d": [8,614], "a": 1 }, + { "px": [256,240], "src": [16,32], "f": 0, "t": 73, "d": [8,616], "a": 1 }, + { "px": [272,240], "src": [16,32], "f": 0, "t": 73, "d": [8,617], "a": 1 }, + { "px": [336,240], "src": [16,16], "f": 0, "t": 37, "d": [8,621], "a": 1 }, + { "px": [352,240], "src": [16,32], "f": 0, "t": 73, "d": [8,622], "a": 1 }, + { "px": [368,240], "src": [16,32], "f": 0, "t": 73, "d": [8,623], "a": 1 }, + { "px": [448,240], "src": [16,16], "f": 0, "t": 37, "d": [8,628], "a": 1 }, + { "px": [544,240], "src": [16,16], "f": 0, "t": 37, "d": [8,634], "a": 1 }, + { "px": [576,240], "src": [16,32], "f": 0, "t": 73, "d": [8,636], "a": 1 }, + { "px": [192,256], "src": [16,16], "f": 0, "t": 37, "d": [8,652], "a": 1 }, + { "px": [288,256], "src": [16,16], "f": 0, "t": 37, "d": [8,658], "a": 1 }, + { "px": [352,256], "src": [16,16], "f": 0, "t": 37, "d": [8,662], "a": 1 }, + { "px": [544,256], "src": [16,16], "f": 0, "t": 37, "d": [8,674], "a": 1 }, + { "px": [560,256], "src": [16,16], "f": 0, "t": 37, "d": [8,675], "a": 1 }, + { "px": [576,256], "src": [16,32], "f": 0, "t": 73, "d": [8,676], "a": 1 }, + { "px": [16,272], "src": [16,32], "f": 0, "t": 73, "d": [8,681], "a": 1 }, + { "px": [32,272], "src": [16,32], "f": 0, "t": 73, "d": [8,682], "a": 1 }, + { "px": [80,272], "src": [16,32], "f": 0, "t": 73, "d": [8,685], "a": 1 }, + { "px": [96,272], "src": [16,32], "f": 0, "t": 73, "d": [8,686], "a": 1 }, + { "px": [144,272], "src": [16,32], "f": 0, "t": 73, "d": [8,689], "a": 1 }, + { "px": [192,272], "src": [16,32], "f": 0, "t": 73, "d": [8,692], "a": 1 }, + { "px": [256,272], "src": [16,32], "f": 0, "t": 73, "d": [8,696], "a": 1 }, + { "px": [320,272], "src": [16,32], "f": 0, "t": 73, "d": [8,700], "a": 1 }, + { "px": [480,272], "src": [16,32], "f": 0, "t": 73, "d": [8,710], "a": 1 }, + { "px": [576,272], "src": [16,32], "f": 0, "t": 73, "d": [8,716], "a": 1 }, + { "px": [592,272], "src": [16,16], "f": 0, "t": 37, "d": [8,717], "a": 1 }, + { "px": [624,272], "src": [16,32], "f": 0, "t": 73, "d": [8,719], "a": 1 }, + { "px": [48,288], "src": [16,16], "f": 0, "t": 37, "d": [8,723], "a": 1 }, + { "px": [144,288], "src": [16,32], "f": 0, "t": 73, "d": [8,729], "a": 1 }, + { "px": [160,288], "src": [16,32], "f": 0, "t": 73, "d": [8,730], "a": 1 }, + { "px": [288,288], "src": [16,16], "f": 0, "t": 37, "d": [8,738], "a": 1 }, + { "px": [352,288], "src": [16,32], "f": 0, "t": 73, "d": [8,742], "a": 1 }, + { "px": [416,288], "src": [16,32], "f": 0, "t": 73, "d": [8,746], "a": 1 }, + { "px": [512,288], "src": [16,32], "f": 0, "t": 73, "d": [8,752], "a": 1 }, + { "px": [528,288], "src": [16,32], "f": 0, "t": 73, "d": [8,753], "a": 1 }, + { "px": [592,288], "src": [16,16], "f": 0, "t": 37, "d": [8,757], "a": 1 }, + { "px": [608,288], "src": [16,32], "f": 0, "t": 73, "d": [8,758], "a": 1 }, + { "px": [624,288], "src": [16,32], "f": 0, "t": 73, "d": [8,759], "a": 1 }, + { "px": [192,0], "src": [192,192], "f": 0, "t": 444, "d": [84,12], "a": 1 }, + { "px": [288,0], "src": [192,192], "f": 0, "t": 444, "d": [84,18], "a": 1 }, + { "px": [320,0], "src": [192,192], "f": 0, "t": 444, "d": [84,20], "a": 1 }, + { "px": [432,0], "src": [160,192], "f": 0, "t": 442, "d": [84,27], "a": 1 }, + { "px": [544,0], "src": [160,192], "f": 0, "t": 442, "d": [84,34], "a": 1 }, + { "px": [560,0], "src": [192,192], "f": 0, "t": 444, "d": [84,35], "a": 1 }, + { "px": [592,0], "src": [176,192], "f": 0, "t": 443, "d": [84,37], "a": 1 }, + { "px": [144,16], "src": [192,192], "f": 0, "t": 444, "d": [84,49], "a": 1 }, + { "px": [176,16], "src": [160,192], "f": 0, "t": 442, "d": [84,51], "a": 1 }, + { "px": [208,16], "src": [192,192], "f": 0, "t": 444, "d": [84,53], "a": 1 }, + { "px": [240,16], "src": [160,192], "f": 0, "t": 442, "d": [84,55], "a": 1 }, + { "px": [272,16], "src": [192,192], "f": 0, "t": 444, "d": [84,57], "a": 1 }, + { "px": [96,32], "src": [160,192], "f": 0, "t": 442, "d": [84,86], "a": 1 }, + { "px": [160,32], "src": [160,192], "f": 0, "t": 442, "d": [84,90], "a": 1 }, + { "px": [176,32], "src": [160,192], "f": 0, "t": 442, "d": [84,91], "a": 1 }, + { "px": [192,32], "src": [160,192], "f": 0, "t": 442, "d": [84,92], "a": 1 }, + { "px": [208,32], "src": [176,192], "f": 0, "t": 443, "d": [84,93], "a": 1 }, + { "px": [224,32], "src": [144,192], "f": 0, "t": 441, "d": [84,94], "a": 1 }, + { "px": [240,32], "src": [144,192], "f": 0, "t": 441, "d": [84,95], "a": 1 }, + { "px": [272,48], "src": [192,192], "f": 0, "t": 444, "d": [84,137], "a": 1 }, + { "px": [336,48], "src": [144,192], "f": 0, "t": 441, "d": [84,141], "a": 1 }, + { "px": [304,64], "src": [192,192], "f": 0, "t": 444, "d": [84,179], "a": 1 }, + { "px": [320,64], "src": [192,192], "f": 0, "t": 444, "d": [84,180], "a": 1 }, + { "px": [336,64], "src": [144,192], "f": 0, "t": 441, "d": [84,181], "a": 1 }, + { "px": [352,64], "src": [160,192], "f": 0, "t": 442, "d": [84,182], "a": 1 }, + { "px": [400,80], "src": [144,192], "f": 0, "t": 441, "d": [84,225], "a": 1 }, + { "px": [416,80], "src": [144,192], "f": 0, "t": 441, "d": [84,226], "a": 1 }, + { "px": [576,80], "src": [192,192], "f": 0, "t": 444, "d": [84,236], "a": 1 }, + { "px": [480,96], "src": [192,192], "f": 0, "t": 444, "d": [84,270], "a": 1 }, + { "px": [576,128], "src": [176,192], "f": 0, "t": 443, "d": [84,356], "a": 1 }, + { "px": [608,128], "src": [144,192], "f": 0, "t": 441, "d": [84,358], "a": 1 }, + { "px": [64,144], "src": [192,192], "f": 0, "t": 444, "d": [84,364], "a": 1 }, + { "px": [576,144], "src": [144,192], "f": 0, "t": 441, "d": [84,396], "a": 1 }, + { "px": [608,144], "src": [160,192], "f": 0, "t": 442, "d": [84,398], "a": 1 }, + { "px": [544,160], "src": [192,192], "f": 0, "t": 444, "d": [84,434], "a": 1 }, + { "px": [608,160], "src": [192,192], "f": 0, "t": 444, "d": [84,438], "a": 1 }, + { "px": [544,176], "src": [192,192], "f": 0, "t": 444, "d": [84,474], "a": 1 }, + { "px": [560,176], "src": [176,192], "f": 0, "t": 443, "d": [84,475], "a": 1 }, + { "px": [64,192], "src": [176,192], "f": 0, "t": 443, "d": [84,484], "a": 1 }, + { "px": [592,192], "src": [160,192], "f": 0, "t": 442, "d": [84,517], "a": 1 }, + { "px": [64,208], "src": [192,192], "f": 0, "t": 444, "d": [84,524], "a": 1 }, + { "px": [528,208], "src": [144,192], "f": 0, "t": 441, "d": [84,553], "a": 1 }, + { "px": [576,208], "src": [192,192], "f": 0, "t": 444, "d": [84,556], "a": 1 }, + { "px": [624,208], "src": [160,192], "f": 0, "t": 442, "d": [84,559], "a": 1 }, + { "px": [608,224], "src": [176,192], "f": 0, "t": 443, "d": [84,598], "a": 1 }, + { "px": [64,240], "src": [144,192], "f": 0, "t": 441, "d": [84,604], "a": 1 }, + { "px": [96,240], "src": [160,192], "f": 0, "t": 442, "d": [84,606], "a": 1 }, + { "px": [128,240], "src": [160,192], "f": 0, "t": 442, "d": [84,608], "a": 1 }, + { "px": [144,240], "src": [192,192], "f": 0, "t": 444, "d": [84,609], "a": 1 }, + { "px": [160,240], "src": [192,192], "f": 0, "t": 444, "d": [84,610], "a": 1 }, + { "px": [208,240], "src": [192,192], "f": 0, "t": 444, "d": [84,613], "a": 1 }, + { "px": [240,240], "src": [160,192], "f": 0, "t": 442, "d": [84,615], "a": 1 }, + { "px": [288,240], "src": [176,192], "f": 0, "t": 443, "d": [84,618], "a": 1 }, + { "px": [304,240], "src": [176,192], "f": 0, "t": 443, "d": [84,619], "a": 1 }, + { "px": [320,240], "src": [192,192], "f": 0, "t": 444, "d": [84,620], "a": 1 }, + { "px": [496,240], "src": [144,192], "f": 0, "t": 441, "d": [84,631], "a": 1 }, + { "px": [624,240], "src": [144,192], "f": 0, "t": 441, "d": [84,639], "a": 1 }, + { "px": [0,256], "src": [160,192], "f": 0, "t": 442, "d": [84,640], "a": 1 }, + { "px": [240,256], "src": [144,192], "f": 0, "t": 441, "d": [84,655], "a": 1 }, + { "px": [256,256], "src": [192,192], "f": 0, "t": 444, "d": [84,656], "a": 1 }, + { "px": [304,256], "src": [144,192], "f": 0, "t": 441, "d": [84,659], "a": 1 }, + { "px": [320,256], "src": [160,192], "f": 0, "t": 442, "d": [84,660], "a": 1 }, + { "px": [416,256], "src": [192,192], "f": 0, "t": 444, "d": [84,666], "a": 1 }, + { "px": [480,256], "src": [160,192], "f": 0, "t": 442, "d": [84,670], "a": 1 }, + { "px": [496,256], "src": [144,192], "f": 0, "t": 441, "d": [84,671], "a": 1 }, + { "px": [512,256], "src": [192,192], "f": 0, "t": 444, "d": [84,672], "a": 1 }, + { "px": [112,272], "src": [160,192], "f": 0, "t": 442, "d": [84,687], "a": 1 }, + { "px": [240,272], "src": [176,192], "f": 0, "t": 443, "d": [84,695], "a": 1 }, + { "px": [304,272], "src": [144,192], "f": 0, "t": 441, "d": [84,699], "a": 1 }, + { "px": [368,272], "src": [144,192], "f": 0, "t": 441, "d": [84,703], "a": 1 }, + { "px": [96,288], "src": [192,192], "f": 0, "t": 444, "d": [84,726], "a": 1 }, + { "px": [128,288], "src": [176,192], "f": 0, "t": 443, "d": [84,728], "a": 1 }, + { "px": [224,288], "src": [160,192], "f": 0, "t": 442, "d": [84,734], "a": 1 }, + { "px": [240,288], "src": [160,192], "f": 0, "t": 442, "d": [84,735], "a": 1 }, + { "px": [272,288], "src": [160,192], "f": 0, "t": 442, "d": [84,737], "a": 1 }, + { "px": [320,288], "src": [176,192], "f": 0, "t": 443, "d": [84,740], "a": 1 }, + { "px": [336,288], "src": [144,192], "f": 0, "t": 441, "d": [84,741], "a": 1 }, + { "px": [432,288], "src": [160,192], "f": 0, "t": 442, "d": [84,747], "a": 1 }, + { "px": [464,288], "src": [144,192], "f": 0, "t": 441, "d": [84,749], "a": 1 }, + { "px": [464,0], "src": [32,144], "f": 0, "t": 326, "d": [75,29], "a": 1 }, + { "px": [480,0], "src": [16,144], "f": 0, "t": 325, "d": [75,30], "a": 1 }, + { "px": [528,33], "src": [16,144], "f": 0, "t": 325, "d": [75,113], "a": 1 }, + { "px": [96,48], "src": [32,144], "f": 0, "t": 326, "d": [75,126], "a": 1 }, + { "px": [112,48], "src": [16,144], "f": 0, "t": 325, "d": [75,127], "a": 1 }, + { "px": [128,49], "src": [32,144], "f": 0, "t": 326, "d": [75,128], "a": 1 }, + { "px": [144,49], "src": [32,144], "f": 0, "t": 326, "d": [75,129], "a": 1 }, + { "px": [160,48], "src": [32,144], "f": 0, "t": 326, "d": [75,130], "a": 1 }, + { "px": [176,49], "src": [32,144], "f": 0, "t": 326, "d": [75,131], "a": 1 }, + { "px": [192,48], "src": [16,144], "f": 0, "t": 325, "d": [75,132], "a": 1 }, + { "px": [208,49], "src": [32,144], "f": 0, "t": 326, "d": [75,133], "a": 1 }, + { "px": [224,48], "src": [32,144], "f": 0, "t": 326, "d": [75,134], "a": 1 }, + { "px": [240,48], "src": [16,144], "f": 0, "t": 325, "d": [75,135], "a": 1 }, + { "px": [272,64], "src": [16,144], "f": 0, "t": 325, "d": [75,177], "a": 1 }, + { "px": [304,81], "src": [32,144], "f": 0, "t": 326, "d": [75,219], "a": 1 }, + { "px": [320,81], "src": [32,144], "f": 0, "t": 326, "d": [75,220], "a": 1 }, + { "px": [336,81], "src": [16,144], "f": 0, "t": 325, "d": [75,221], "a": 1 }, + { "px": [352,81], "src": [32,144], "f": 0, "t": 326, "d": [75,222], "a": 1 }, + { "px": [384,97], "src": [32,144], "f": 0, "t": 326, "d": [75,264], "a": 1 }, + { "px": [400,97], "src": [32,144], "f": 0, "t": 326, "d": [75,265], "a": 1 }, + { "px": [416,96], "src": [16,144], "f": 0, "t": 325, "d": [75,266], "a": 1 }, + { "px": [448,112], "src": [32,144], "f": 0, "t": 326, "d": [75,308], "a": 1 }, + { "px": [480,112], "src": [16,144], "f": 0, "t": 325, "d": [75,310], "a": 1 }, + { "px": [496,113], "src": [32,144], "f": 0, "t": 326, "d": [75,311], "a": 1 }, + { "px": [176,129], "src": [16,144], "f": 0, "t": 325, "d": [75,331], "a": 1 }, + { "px": [112,145], "src": [16,144], "f": 0, "t": 325, "d": [75,367], "a": 1 }, + { "px": [128,144], "src": [32,144], "f": 0, "t": 326, "d": [75,368], "a": 1 }, + { "px": [144,144], "src": [32,144], "f": 0, "t": 326, "d": [75,369], "a": 1 }, + { "px": [448,64], "src": [64,96], "f": 0, "t": 220, "d": [9,188], "a": 1 }, + { "px": [480,80], "src": [16,96], "f": 0, "t": 217, "d": [9,230], "a": 1 }, + { "px": [512,96], "src": [16,96], "f": 0, "t": 217, "d": [9,272], "a": 1 }, + { "px": [528,96], "src": [64,96], "f": 0, "t": 220, "d": [9,273], "a": 1 }, + { "px": [192,112], "src": [16,96], "f": 0, "t": 217, "d": [9,292], "a": 1 }, + { "px": [96,128], "src": [16,96], "f": 0, "t": 217, "d": [9,326], "a": 1 }, + { "px": [112,128], "src": [64,96], "f": 0, "t": 220, "d": [9,327], "a": 1 }, + { "px": [128,128], "src": [48,96], "f": 0, "t": 219, "d": [9,328], "a": 1 }, + { "px": [144,128], "src": [48,96], "f": 0, "t": 219, "d": [9,329], "a": 1 }, + { "px": [160,128], "src": [16,96], "f": 0, "t": 217, "d": [9,330], "a": 1 }, + { "px": [464,176], "src": [48,96], "f": 0, "t": 219, "d": [9,469], "a": 1 }, + { "px": [496,192], "src": [48,96], "f": 0, "t": 219, "d": [9,511], "a": 1 }, + { "px": [512,192], "src": [64,96], "f": 0, "t": 220, "d": [9,512], "a": 1 }, + { "px": [400,208], "src": [48,96], "f": 0, "t": 219, "d": [9,545], "a": 1 }, + { "px": [416,208], "src": [64,96], "f": 0, "t": 220, "d": [9,546], "a": 1 }, + { "px": [96,224], "src": [16,96], "f": 0, "t": 217, "d": [9,566], "a": 1 }, + { "px": [112,224], "src": [16,96], "f": 0, "t": 217, "d": [9,567], "a": 1 }, + { "px": [128,224], "src": [64,96], "f": 0, "t": 220, "d": [9,568], "a": 1 }, + { "px": [144,224], "src": [16,96], "f": 0, "t": 217, "d": [9,569], "a": 1 }, + { "px": [160,224], "src": [64,96], "f": 0, "t": 220, "d": [9,570], "a": 1 }, + { "px": [176,224], "src": [64,96], "f": 0, "t": 220, "d": [9,571], "a": 1 }, + { "px": [192,224], "src": [16,96], "f": 0, "t": 217, "d": [9,572], "a": 1 }, + { "px": [208,224], "src": [64,96], "f": 0, "t": 220, "d": [9,573], "a": 1 }, + { "px": [224,224], "src": [64,96], "f": 0, "t": 220, "d": [9,574], "a": 1 }, + { "px": [240,224], "src": [48,96], "f": 0, "t": 219, "d": [9,575], "a": 1 }, + { "px": [256,224], "src": [48,96], "f": 0, "t": 219, "d": [9,576], "a": 1 }, + { "px": [272,224], "src": [16,96], "f": 0, "t": 217, "d": [9,577], "a": 1 }, + { "px": [288,224], "src": [16,96], "f": 0, "t": 217, "d": [9,578], "a": 1 }, + { "px": [304,224], "src": [16,96], "f": 0, "t": 217, "d": [9,579], "a": 1 }, + { "px": [320,224], "src": [16,96], "f": 0, "t": 217, "d": [9,580], "a": 1 }, + { "px": [336,224], "src": [16,96], "f": 0, "t": 217, "d": [9,581], "a": 1 }, + { "px": [352,224], "src": [16,96], "f": 0, "t": 217, "d": [9,582], "a": 1 }, + { "px": [368,224], "src": [48,96], "f": 0, "t": 219, "d": [9,583], "a": 1 }, + { "px": [433,32], "src": [0,112], "f": 1, "t": 252, "d": [10,107], "a": 1 }, + { "px": [434,48], "src": [0,112], "f": 1, "t": 252, "d": [10,147], "a": 1 }, + { "px": [464,64], "src": [0,112], "f": 1, "t": 252, "d": [10,189], "a": 1 }, + { "px": [560,64], "src": [0,128], "f": 0, "t": 288, "d": [10,195], "a": 1 }, + { "px": [64,80], "src": [0,128], "f": 1, "t": 288, "d": [10,204], "a": 1 }, + { "px": [66,96], "src": [0,128], "f": 1, "t": 288, "d": [10,244], "a": 1 }, + { "px": [528,144], "src": [0,112], "f": 0, "t": 252, "d": [10,393], "a": 1 }, + { "px": [528,160], "src": [0,128], "f": 0, "t": 288, "d": [10,433], "a": 1 }, + { "px": [80,176], "src": [0,128], "f": 1, "t": 288, "d": [10,445], "a": 1 }, + { "px": [527,176], "src": [0,128], "f": 0, "t": 288, "d": [10,473], "a": 1 }, + { "px": [82,192], "src": [0,128], "f": 1, "t": 288, "d": [10,485], "a": 1 }, + { "px": [431,192], "src": [0,128], "f": 0, "t": 288, "d": [10,507], "a": 1 }, + { "px": [80,208], "src": [0,128], "f": 1, "t": 288, "d": [10,525], "a": 1 }, + { "px": [448,16], "src": [0,144], "f": 1, "t": 324, "d": [77,68], "a": 1 }, + { "px": [496,16], "src": [0,144], "f": 0, "t": 324, "d": [77,71], "a": 1 }, + { "px": [512,32], "src": [0,144], "f": 0, "t": 324, "d": [77,112], "a": 1 }, + { "px": [544,48], "src": [0,144], "f": 0, "t": 324, "d": [77,154], "a": 1 }, + { "px": [80,64], "src": [0,144], "f": 1, "t": 324, "d": [77,165], "a": 1 }, + { "px": [256,64], "src": [0,144], "f": 0, "t": 324, "d": [77,176], "a": 1 }, + { "px": [288,80], "src": [0,144], "f": 0, "t": 324, "d": [77,218], "a": 1 }, + { "px": [368,96], "src": [0,144], "f": 0, "t": 324, "d": [77,263], "a": 1 }, + { "px": [432,112], "src": [0,144], "f": 0, "t": 324, "d": [77,307], "a": 1 }, + { "px": [192,128], "src": [0,144], "f": 1, "t": 324, "d": [77,332], "a": 1 }, + { "px": [464,128], "src": [0,144], "f": 0, "t": 324, "d": [77,349], "a": 1 }, + { "px": [512,128], "src": [0,144], "f": 0, "t": 324, "d": [77,352], "a": 1 }, + { "px": [160,144], "src": [0,144], "f": 1, "t": 324, "d": [77,370], "a": 1 }, + { "px": [96,160], "src": [0,144], "f": 1, "t": 324, "d": [77,406], "a": 1 }, + { "px": [464,48], "src": [0,96], "f": 0, "t": 216, "d": [11,149], "a": 1 }, + { "px": [496,80], "src": [0,96], "f": 1, "t": 216, "d": [11,231], "a": 1 }, + { "px": [544,80], "src": [0,96], "f": 0, "t": 216, "d": [11,234], "a": 1 }, + { "px": [80,112], "src": [0,96], "f": 1, "t": 216, "d": [11,285], "a": 1 }, + { "px": [176,112], "src": [0,96], "f": 0, "t": 216, "d": [11,291], "a": 1 }, + { "px": [208,112], "src": [0,96], "f": 1, "t": 216, "d": [11,293], "a": 1 }, + { "px": [448,160], "src": [0,96], "f": 0, "t": 216, "d": [11,428], "a": 1 }, + { "px": [432,176], "src": [0,96], "f": 0, "t": 216, "d": [11,467], "a": 1 }, + { "px": [480,176], "src": [0,96], "f": 1, "t": 216, "d": [11,470], "a": 1 }, + { "px": [384,208], "src": [0,96], "f": 0, "t": 216, "d": [11,544], "a": 1 }, + { "px": [448,0], "src": [48,144], "f": 0, "t": 327, "d": [76,28], "a": 1 }, + { "px": [496,0], "src": [48,144], "f": 1, "t": 327, "d": [76,31], "a": 1 }, + { "px": [432,16], "src": [48,144], "f": 0, "t": 327, "d": [76,67], "a": 1 }, + { "px": [512,16], "src": [48,144], "f": 1, "t": 327, "d": [76,72], "a": 1 }, + { "px": [544,32], "src": [48,144], "f": 1, "t": 327, "d": [76,114], "a": 1 }, + { "px": [80,48], "src": [48,144], "f": 0, "t": 327, "d": [76,125], "a": 1 }, + { "px": [256,48], "src": [48,144], "f": 1, "t": 327, "d": [76,136], "a": 1 }, + { "px": [560,48], "src": [48,144], "f": 1, "t": 327, "d": [76,155], "a": 1 }, + { "px": [64,64], "src": [48,144], "f": 0, "t": 327, "d": [76,164], "a": 1 }, + { "px": [288,64], "src": [48,144], "f": 1, "t": 327, "d": [76,178], "a": 1 }, + { "px": [368,80], "src": [48,144], "f": 1, "t": 327, "d": [76,223], "a": 1 }, + { "px": [432,96], "src": [48,144], "f": 1, "t": 327, "d": [76,267], "a": 1 }, + { "px": [192,112], "src": [48,144], "f": 0, "t": 327, "d": [76,292], "a": 1 }, + { "px": [464,112], "src": [48,144], "f": 0, "t": 327, "d": [76,309], "a": 1 }, + { "px": [464,112], "src": [48,144], "f": 1, "t": 327, "d": [76,309], "a": 1 }, + { "px": [512,112], "src": [48,144], "f": 1, "t": 327, "d": [76,312], "a": 1 }, + { "px": [160,128], "src": [48,144], "f": 0, "t": 327, "d": [76,330], "a": 1 }, + { "px": [528,128], "src": [48,144], "f": 1, "t": 327, "d": [76,353], "a": 1 }, + { "px": [96,144], "src": [48,144], "f": 0, "t": 327, "d": [76,366], "a": 1 }, + { "px": [80,160], "src": [48,144], "f": 0, "t": 327, "d": [76,405], "a": 1 }, + { "px": [432,64], "src": [64,144], "f": 0, "t": 328, "d": [14,187], "a": 1 }, + { "px": [464,64], "src": [64,144], "f": 1, "t": 328, "d": [14,189], "a": 1 }, + { "px": [464,80], "src": [64,144], "f": 0, "t": 328, "d": [14,229], "a": 1 }, + { "px": [560,80], "src": [64,144], "f": 1, "t": 328, "d": [14,235], "a": 1 }, + { "px": [496,96], "src": [64,144], "f": 0, "t": 328, "d": [14,271], "a": 1 }, + { "px": [544,96], "src": [64,144], "f": 1, "t": 328, "d": [14,274], "a": 1 }, + { "px": [64,112], "src": [64,144], "f": 0, "t": 328, "d": [14,284], "a": 1 }, + { "px": [80,128], "src": [64,144], "f": 0, "t": 328, "d": [14,325], "a": 1 }, + { "px": [176,128], "src": [64,144], "f": 1, "t": 328, "d": [14,331], "a": 1 }, + { "px": [448,176], "src": [64,144], "f": 0, "t": 328, "d": [14,468], "a": 1 }, + { "px": [448,176], "src": [64,144], "f": 1, "t": 328, "d": [14,468], "a": 1 }, + { "px": [480,192], "src": [64,144], "f": 0, "t": 328, "d": [14,510], "a": 1 }, + { "px": [528,192], "src": [64,144], "f": 1, "t": 328, "d": [14,513], "a": 1 }, + { "px": [432,208], "src": [64,144], "f": 1, "t": 328, "d": [14,547], "a": 1 }, + { "px": [80,224], "src": [64,144], "f": 0, "t": 328, "d": [14,565], "a": 1 }, + { "px": [384,224], "src": [64,144], "f": 1, "t": 328, "d": [14,584], "a": 1 }, + { "px": [496,64], "src": [0,224], "f": 0, "t": 504, "d": [28,191], "a": 1 }, + { "px": [544,64], "src": [0,224], "f": 0, "t": 504, "d": [28,194], "a": 1 }, + { "px": [512,80], "src": [0,224], "f": 0, "t": 504, "d": [28,232], "a": 1 }, + { "px": [528,80], "src": [0,224], "f": 0, "t": 504, "d": [28,233], "a": 1 }, + { "px": [96,112], "src": [0,224], "f": 0, "t": 504, "d": [28,286], "a": 1 }, + { "px": [112,112], "src": [0,224], "f": 0, "t": 504, "d": [28,287], "a": 1 }, + { "px": [144,112], "src": [0,224], "f": 0, "t": 504, "d": [28,289], "a": 1 }, + { "px": [160,112], "src": [0,224], "f": 0, "t": 504, "d": [28,290], "a": 1 }, + { "px": [96,176], "src": [0,224], "f": 0, "t": 504, "d": [28,446], "a": 1 }, + { "px": [176,176], "src": [0,224], "f": 0, "t": 504, "d": [28,451], "a": 1 }, + { "px": [192,176], "src": [0,224], "f": 0, "t": 504, "d": [28,452], "a": 1 }, + { "px": [208,176], "src": [0,224], "f": 0, "t": 504, "d": [28,453], "a": 1 }, + { "px": [224,176], "src": [0,224], "f": 0, "t": 504, "d": [28,454], "a": 1 }, + { "px": [240,176], "src": [0,224], "f": 0, "t": 504, "d": [28,455], "a": 1 }, + { "px": [256,176], "src": [0,224], "f": 0, "t": 504, "d": [28,456], "a": 1 }, + { "px": [272,176], "src": [0,224], "f": 0, "t": 504, "d": [28,457], "a": 1 }, + { "px": [288,176], "src": [0,224], "f": 0, "t": 504, "d": [28,458], "a": 1 }, + { "px": [304,176], "src": [0,224], "f": 0, "t": 504, "d": [28,459], "a": 1 }, + { "px": [320,176], "src": [0,224], "f": 0, "t": 504, "d": [28,460], "a": 1 }, + { "px": [352,176], "src": [0,224], "f": 0, "t": 504, "d": [28,462], "a": 1 }, + { "px": [368,176], "src": [0,224], "f": 0, "t": 504, "d": [28,463], "a": 1 }, + { "px": [384,176], "src": [0,224], "f": 0, "t": 504, "d": [28,464], "a": 1 }, + { "px": [400,176], "src": [0,224], "f": 0, "t": 504, "d": [28,465], "a": 1 }, + { "px": [416,176], "src": [0,224], "f": 0, "t": 504, "d": [28,466], "a": 1 }, + { "px": [496,176], "src": [0,224], "f": 0, "t": 504, "d": [28,471], "a": 1 }, + { "px": [96,192], "src": [0,224], "f": 0, "t": 504, "d": [28,486], "a": 1 }, + { "px": [144,192], "src": [0,224], "f": 0, "t": 504, "d": [28,489], "a": 1 }, + { "px": [160,192], "src": [0,224], "f": 0, "t": 504, "d": [28,490], "a": 1 }, + { "px": [176,192], "src": [0,224], "f": 0, "t": 504, "d": [28,491], "a": 1 }, + { "px": [192,192], "src": [0,224], "f": 0, "t": 504, "d": [28,492], "a": 1 }, + { "px": [208,192], "src": [0,224], "f": 0, "t": 504, "d": [28,493], "a": 1 }, + { "px": [224,192], "src": [0,224], "f": 0, "t": 504, "d": [28,494], "a": 1 }, + { "px": [240,192], "src": [0,224], "f": 0, "t": 504, "d": [28,495], "a": 1 }, + { "px": [256,192], "src": [0,224], "f": 0, "t": 504, "d": [28,496], "a": 1 }, + { "px": [272,192], "src": [0,224], "f": 0, "t": 504, "d": [28,497], "a": 1 }, + { "px": [288,192], "src": [0,224], "f": 0, "t": 504, "d": [28,498], "a": 1 }, + { "px": [304,192], "src": [0,224], "f": 0, "t": 504, "d": [28,499], "a": 1 }, + { "px": [320,192], "src": [0,224], "f": 0, "t": 504, "d": [28,500], "a": 1 }, + { "px": [336,192], "src": [0,224], "f": 0, "t": 504, "d": [28,501], "a": 1 }, + { "px": [368,192], "src": [0,224], "f": 0, "t": 504, "d": [28,503], "a": 1 }, + { "px": [384,192], "src": [0,224], "f": 0, "t": 504, "d": [28,504], "a": 1 }, + { "px": [400,192], "src": [0,224], "f": 0, "t": 504, "d": [28,505], "a": 1 }, + { "px": [416,192], "src": [0,224], "f": 0, "t": 504, "d": [28,506], "a": 1 }, + { "px": [96,208], "src": [0,224], "f": 0, "t": 504, "d": [28,526], "a": 1 }, + { "px": [128,208], "src": [0,224], "f": 0, "t": 504, "d": [28,528], "a": 1 }, + { "px": [160,208], "src": [0,224], "f": 0, "t": 504, "d": [28,530], "a": 1 }, + { "px": [176,208], "src": [0,224], "f": 0, "t": 504, "d": [28,531], "a": 1 }, + { "px": [192,208], "src": [0,224], "f": 0, "t": 504, "d": [28,532], "a": 1 }, + { "px": [208,208], "src": [0,224], "f": 0, "t": 504, "d": [28,533], "a": 1 }, + { "px": [224,208], "src": [0,224], "f": 0, "t": 504, "d": [28,534], "a": 1 }, + { "px": [240,208], "src": [0,224], "f": 0, "t": 504, "d": [28,535], "a": 1 }, + { "px": [256,208], "src": [0,224], "f": 0, "t": 504, "d": [28,536], "a": 1 }, + { "px": [272,208], "src": [0,224], "f": 0, "t": 504, "d": [28,537], "a": 1 }, + { "px": [288,208], "src": [0,224], "f": 0, "t": 504, "d": [28,538], "a": 1 }, + { "px": [304,208], "src": [0,224], "f": 0, "t": 504, "d": [28,539], "a": 1 }, + { "px": [320,208], "src": [0,224], "f": 0, "t": 504, "d": [28,540], "a": 1 }, + { "px": [336,208], "src": [0,224], "f": 0, "t": 504, "d": [28,541], "a": 1 }, + { "px": [352,208], "src": [0,224], "f": 0, "t": 504, "d": [28,542], "a": 1 }, + { "px": [368,208], "src": [0,224], "f": 0, "t": 504, "d": [28,543], "a": 1 }, + { "px": [480,64], "src": [32,240], "f": 0, "t": 542, "d": [74,190], "a": 1 }, + { "px": [512,64], "src": [32,224], "f": 0, "t": 506, "d": [74,192], "a": 1 }, + { "px": [528,64], "src": [16,240], "f": 0, "t": 541, "d": [74,193], "a": 1 }, + { "px": [128,112], "src": [32,224], "f": 0, "t": 506, "d": [74,288], "a": 1 }, + { "px": [112,176], "src": [32,240], "f": 0, "t": 542, "d": [74,447], "a": 1 }, + { "px": [128,176], "src": [16,224], "f": 0, "t": 505, "d": [74,448], "a": 1 }, + { "px": [144,176], "src": [32,240], "f": 0, "t": 542, "d": [74,449], "a": 1 }, + { "px": [160,176], "src": [32,224], "f": 0, "t": 506, "d": [74,450], "a": 1 }, + { "px": [336,176], "src": [16,224], "f": 0, "t": 505, "d": [74,461], "a": 1 }, + { "px": [512,176], "src": [16,224], "f": 0, "t": 505, "d": [74,472], "a": 1 }, + { "px": [112,192], "src": [16,224], "f": 0, "t": 505, "d": [74,487], "a": 1 }, + { "px": [128,192], "src": [16,224], "f": 0, "t": 505, "d": [74,488], "a": 1 }, + { "px": [352,192], "src": [32,240], "f": 0, "t": 542, "d": [74,502], "a": 1 }, + { "px": [112,208], "src": [32,224], "f": 0, "t": 506, "d": [74,527], "a": 1 }, + { "px": [144,208], "src": [16,224], "f": 0, "t": 505, "d": [74,529], "a": 1 }, + { "px": [480,48], "src": [32,208], "f": 0, "t": 470, "d": [21,150], "a": 1 }, + { "px": [496,49], "src": [32,208], "f": 0, "t": 470, "d": [21,151], "a": 1 }, + { "px": [512,48], "src": [0,208], "f": 0, "t": 468, "d": [21,152], "a": 1 }, + { "px": [528,49], "src": [0,208], "f": 0, "t": 468, "d": [21,153], "a": 1 }, + { "px": [96,96], "src": [32,208], "f": 0, "t": 470, "d": [21,246], "a": 1 }, + { "px": [112,97], "src": [0,208], "f": 0, "t": 468, "d": [21,247], "a": 1 }, + { "px": [128,97], "src": [32,208], "f": 0, "t": 470, "d": [21,248], "a": 1 }, + { "px": [144,97], "src": [16,208], "f": 0, "t": 469, "d": [21,249], "a": 1 }, + { "px": [160,97], "src": [32,208], "f": 0, "t": 470, "d": [21,250], "a": 1 }, + { "px": [112,160], "src": [16,208], "f": 0, "t": 469, "d": [21,407], "a": 1 }, + { "px": [128,160], "src": [32,208], "f": 0, "t": 470, "d": [21,408], "a": 1 }, + { "px": [144,161], "src": [0,208], "f": 0, "t": 468, "d": [21,409], "a": 1 }, + { "px": [160,161], "src": [0,208], "f": 0, "t": 468, "d": [21,410], "a": 1 }, + { "px": [176,160], "src": [32,208], "f": 0, "t": 470, "d": [21,411], "a": 1 }, + { "px": [192,160], "src": [0,208], "f": 0, "t": 468, "d": [21,412], "a": 1 }, + { "px": [208,160], "src": [0,208], "f": 0, "t": 468, "d": [21,413], "a": 1 }, + { "px": [224,161], "src": [0,208], "f": 0, "t": 468, "d": [21,414], "a": 1 }, + { "px": [240,160], "src": [0,208], "f": 0, "t": 468, "d": [21,415], "a": 1 }, + { "px": [256,161], "src": [0,208], "f": 0, "t": 468, "d": [21,416], "a": 1 }, + { "px": [272,160], "src": [32,208], "f": 0, "t": 470, "d": [21,417], "a": 1 }, + { "px": [288,161], "src": [0,208], "f": 0, "t": 468, "d": [21,418], "a": 1 }, + { "px": [304,160], "src": [16,208], "f": 0, "t": 469, "d": [21,419], "a": 1 }, + { "px": [320,160], "src": [16,208], "f": 0, "t": 469, "d": [21,420], "a": 1 }, + { "px": [336,160], "src": [32,208], "f": 0, "t": 470, "d": [21,421], "a": 1 }, + { "px": [352,161], "src": [32,208], "f": 0, "t": 470, "d": [21,422], "a": 1 }, + { "px": [368,161], "src": [32,208], "f": 0, "t": 470, "d": [21,423], "a": 1 }, + { "px": [384,160], "src": [16,208], "f": 0, "t": 469, "d": [21,424], "a": 1 }, + { "px": [400,160], "src": [16,208], "f": 0, "t": 469, "d": [21,425], "a": 1 }, + { "px": [416,161], "src": [32,208], "f": 0, "t": 470, "d": [21,426], "a": 1 }, + { "px": [496,161], "src": [0,208], "f": 0, "t": 468, "d": [21,431], "a": 1 }, + { "px": [512,161], "src": [0,208], "f": 0, "t": 468, "d": [21,432], "a": 1 }, + { "px": [496,64], "src": [208,48], "f": 0, "t": 121, "d": [111,191], "a": 1 }, + { "px": [544,64], "src": [192,48], "f": 0, "t": 120, "d": [111,194], "a": 1 }, + { "px": [512,80], "src": [192,48], "f": 0, "t": 120, "d": [111,232], "a": 1 }, + { "px": [96,112], "src": [176,48], "f": 0, "t": 119, "d": [111,286], "a": 1 }, + { "px": [112,112], "src": [208,48], "f": 0, "t": 121, "d": [111,287], "a": 1 }, + { "px": [128,112], "src": [160,48], "f": 0, "t": 118, "d": [111,288], "a": 1 }, + { "px": [144,112], "src": [160,48], "f": 0, "t": 118, "d": [111,289], "a": 1 }, + { "px": [160,112], "src": [160,48], "f": 0, "t": 118, "d": [111,290], "a": 1 }, + { "px": [512,176], "src": [160,48], "f": 0, "t": 118, "d": [111,472], "a": 1 }, + { "px": [384,192], "src": [160,48], "f": 0, "t": 118, "d": [111,504], "a": 1 }, + { "px": [400,192], "src": [208,48], "f": 0, "t": 121, "d": [111,505], "a": 1 }, + { "px": [96,208], "src": [176,48], "f": 0, "t": 119, "d": [111,526], "a": 1 }, + { "px": [128,208], "src": [192,48], "f": 0, "t": 120, "d": [111,528], "a": 1 }, + { "px": [160,208], "src": [176,48], "f": 0, "t": 119, "d": [111,530], "a": 1 }, + { "px": [192,208], "src": [176,48], "f": 0, "t": 119, "d": [111,532], "a": 1 }, + { "px": [208,208], "src": [208,48], "f": 0, "t": 121, "d": [111,533], "a": 1 }, + { "px": [224,208], "src": [208,48], "f": 0, "t": 121, "d": [111,534], "a": 1 }, + { "px": [240,208], "src": [208,48], "f": 0, "t": 121, "d": [111,535], "a": 1 }, + { "px": [256,208], "src": [160,48], "f": 0, "t": 118, "d": [111,536], "a": 1 }, + { "px": [272,208], "src": [176,48], "f": 0, "t": 119, "d": [111,537], "a": 1 }, + { "px": [304,208], "src": [160,48], "f": 0, "t": 118, "d": [111,539], "a": 1 }, + { "px": [320,208], "src": [176,48], "f": 0, "t": 119, "d": [111,540], "a": 1 }, + { "px": [352,208], "src": [160,48], "f": 0, "t": 118, "d": [111,542], "a": 1 }, + { "px": [497,64], "src": [160,48], "f": 0, "t": 118, "d": [99,191], "a": 1 }, + { "px": [514,80], "src": [192,48], "f": 0, "t": 120, "d": [99,232], "a": 1 }, + { "px": [160,112], "src": [160,48], "f": 0, "t": 118, "d": [99,290], "a": 1 }, + { "px": [94,176], "src": [176,48], "f": 2, "t": 119, "d": [99,446], "a": 1 }, + { "px": [498,176], "src": [208,48], "f": 0, "t": 121, "d": [99,471], "a": 1 }, + { "px": [98,208], "src": [192,48], "f": 0, "t": 120, "d": [99,526], "a": 1 }, + { "px": [111,208], "src": [208,48], "f": 0, "t": 121, "d": [99,527], "a": 1 }, + { "px": [130,208], "src": [208,48], "f": 0, "t": 121, "d": [99,528], "a": 1 }, + { "px": [142,209], "src": [176,48], "f": 0, "t": 119, "d": [99,529], "a": 1 }, + { "px": [193,209], "src": [160,48], "f": 0, "t": 118, "d": [99,532], "a": 1 }, + { "px": [208,208], "src": [208,48], "f": 0, "t": 121, "d": [99,533], "a": 1 }, + { "px": [226,208], "src": [192,48], "f": 0, "t": 120, "d": [99,534], "a": 1 }, + { "px": [270,209], "src": [192,48], "f": 0, "t": 120, "d": [99,537], "a": 1 }, + { "px": [320,208], "src": [160,48], "f": 0, "t": 118, "d": [99,540], "a": 1 }, + { "px": [335,209], "src": [208,48], "f": 0, "t": 121, "d": [99,541], "a": 1 }, + { "px": [352,208], "src": [208,48], "f": 0, "t": 121, "d": [99,542], "a": 1 }, + { "px": [367,208], "src": [192,48], "f": 0, "t": 120, "d": [99,543], "a": 1 }, + { "px": [464,16], "src": [80,128], "f": 0, "t": 293, "d": [95,69], "a": 1 }, + { "px": [480,16], "src": [80,112], "f": 1, "t": 257, "d": [95,70], "a": 1 }, + { "px": [448,32], "src": [80,112], "f": 0, "t": 257, "d": [95,108], "a": 1 }, + { "px": [496,32], "src": [80,112], "f": 1, "t": 257, "d": [95,111], "a": 1 }, + { "px": [528,48], "src": [80,112], "f": 1, "t": 257, "d": [95,153], "a": 1 }, + { "px": [96,64], "src": [80,128], "f": 0, "t": 293, "d": [95,166], "a": 1 }, + { "px": [240,64], "src": [80,112], "f": 1, "t": 257, "d": [95,175], "a": 1 }, + { "px": [544,64], "src": [80,112], "f": 1, "t": 257, "d": [95,194], "a": 1 }, + { "px": [80,80], "src": [80,112], "f": 0, "t": 257, "d": [95,205], "a": 1 }, + { "px": [272,80], "src": [80,112], "f": 1, "t": 257, "d": [95,217], "a": 1 }, + { "px": [352,96], "src": [80,128], "f": 1, "t": 293, "d": [95,262], "a": 1 }, + { "px": [416,112], "src": [80,112], "f": 1, "t": 257, "d": [95,306], "a": 1 }, + { "px": [208,128], "src": [80,128], "f": 0, "t": 293, "d": [95,333], "a": 1 }, + { "px": [448,128], "src": [80,112], "f": 1, "t": 257, "d": [95,348], "a": 1 }, + { "px": [480,128], "src": [80,112], "f": 0, "t": 257, "d": [95,350], "a": 1 }, + { "px": [496,128], "src": [80,112], "f": 1, "t": 257, "d": [95,351], "a": 1 }, + { "px": [176,144], "src": [80,112], "f": 0, "t": 257, "d": [95,371], "a": 1 }, + { "px": [512,144], "src": [80,128], "f": 1, "t": 293, "d": [95,392], "a": 1 }, + { "px": [112,160], "src": [80,128], "f": 0, "t": 293, "d": [95,407], "a": 1 }, + { "px": [96,176], "src": [80,112], "f": 0, "t": 257, "d": [95,446], "a": 1 }, + { "px": [448,48], "src": [80,144], "f": 0, "t": 329, "d": [96,148], "a": 1 }, + { "px": [448,48], "src": [80,144], "f": 1, "t": 329, "d": [96,148], "a": 1 }, + { "px": [480,64], "src": [80,160], "f": 0, "t": 365, "d": [96,190], "a": 1 }, + { "px": [544,64], "src": [80,160], "f": 1, "t": 365, "d": [96,194], "a": 1 }, + { "px": [512,80], "src": [80,160], "f": 0, "t": 365, "d": [96,232], "a": 1 }, + { "px": [528,80], "src": [80,160], "f": 1, "t": 365, "d": [96,233], "a": 1 }, + { "px": [80,96], "src": [80,160], "f": 0, "t": 365, "d": [96,245], "a": 1 }, + { "px": [96,112], "src": [80,160], "f": 0, "t": 365, "d": [96,286], "a": 1 }, + { "px": [160,112], "src": [80,160], "f": 1, "t": 365, "d": [96,290], "a": 1 }, + { "px": [432,160], "src": [80,160], "f": 1, "t": 365, "d": [96,427], "a": 1 }, + { "px": [464,160], "src": [80,144], "f": 0, "t": 329, "d": [96,429], "a": 1 }, + { "px": [496,176], "src": [80,144], "f": 0, "t": 329, "d": [96,471], "a": 1 }, + { "px": [512,176], "src": [80,144], "f": 1, "t": 329, "d": [96,472], "a": 1 }, + { "px": [416,192], "src": [80,160], "f": 1, "t": 365, "d": [96,506], "a": 1 }, + { "px": [96,208], "src": [80,144], "f": 0, "t": 329, "d": [96,526], "a": 1 }, + { "px": [368,208], "src": [80,160], "f": 1, "t": 365, "d": [96,543], "a": 1 }, + { "px": [464,34], "src": [32,80], "f": 0, "t": 182, "d": [97,109], "a": 1 }, + { "px": [448,50], "src": [144,112], "f": 0, "t": 261, "d": [97,148], "a": 1 }, + { "px": [480,66], "src": [112,112], "f": 0, "t": 259, "d": [97,190], "a": 1 }, + { "px": [496,66], "src": [112,112], "f": 0, "t": 259, "d": [97,191], "a": 1 }, + { "px": [544,66], "src": [48,80], "f": 0, "t": 183, "d": [97,194], "a": 1 }, + { "px": [512,80], "src": [0,80], "f": 0, "t": 180, "d": [97,232], "a": 1 }, + { "px": [528,82], "src": [112,112], "f": 0, "t": 259, "d": [97,233], "a": 1 }, + { "px": [176,96], "src": [32,80], "f": 0, "t": 182, "d": [97,251], "a": 1 }, + { "px": [192,96], "src": [144,112], "f": 0, "t": 261, "d": [97,252], "a": 1 }, + { "px": [208,96], "src": [32,80], "f": 0, "t": 182, "d": [97,253], "a": 1 }, + { "px": [96,112], "src": [112,112], "f": 0, "t": 259, "d": [97,286], "a": 1 }, + { "px": [112,114], "src": [0,80], "f": 0, "t": 180, "d": [97,287], "a": 1 }, + { "px": [128,114], "src": [32,80], "f": 0, "t": 182, "d": [97,288], "a": 1 }, + { "px": [144,114], "src": [48,80], "f": 0, "t": 183, "d": [97,289], "a": 1 }, + { "px": [160,114], "src": [112,112], "f": 0, "t": 259, "d": [97,290], "a": 1 }, + { "px": [432,161], "src": [48,80], "f": 0, "t": 183, "d": [97,427], "a": 1 }, + { "px": [480,162], "src": [0,80], "f": 0, "t": 180, "d": [97,430], "a": 1 }, + { "px": [496,177], "src": [128,112], "f": 0, "t": 260, "d": [97,471], "a": 1 }, + { "px": [512,178], "src": [112,112], "f": 0, "t": 259, "d": [97,472], "a": 1 }, + { "px": [400,194], "src": [144,112], "f": 0, "t": 261, "d": [97,505], "a": 1 }, + { "px": [416,192], "src": [128,112], "f": 0, "t": 260, "d": [97,506], "a": 1 }, + { "px": [96,210], "src": [16,80], "f": 0, "t": 181, "d": [97,526], "a": 1 }, + { "px": [112,210], "src": [32,80], "f": 0, "t": 182, "d": [97,527], "a": 1 }, + { "px": [128,210], "src": [144,112], "f": 0, "t": 261, "d": [97,528], "a": 1 }, + { "px": [144,208], "src": [112,112], "f": 0, "t": 259, "d": [97,529], "a": 1 }, + { "px": [160,209], "src": [112,112], "f": 0, "t": 259, "d": [97,530], "a": 1 }, + { "px": [176,210], "src": [112,112], "f": 0, "t": 259, "d": [97,531], "a": 1 }, + { "px": [192,208], "src": [16,80], "f": 0, "t": 181, "d": [97,532], "a": 1 }, + { "px": [208,209], "src": [48,80], "f": 0, "t": 183, "d": [97,533], "a": 1 }, + { "px": [224,210], "src": [16,80], "f": 0, "t": 181, "d": [97,534], "a": 1 }, + { "px": [240,208], "src": [48,80], "f": 0, "t": 183, "d": [97,535], "a": 1 }, + { "px": [256,210], "src": [112,112], "f": 0, "t": 259, "d": [97,536], "a": 1 }, + { "px": [272,209], "src": [128,112], "f": 0, "t": 260, "d": [97,537], "a": 1 }, + { "px": [288,209], "src": [0,80], "f": 0, "t": 180, "d": [97,538], "a": 1 }, + { "px": [304,209], "src": [128,112], "f": 0, "t": 260, "d": [97,539], "a": 1 }, + { "px": [320,210], "src": [128,112], "f": 0, "t": 260, "d": [97,540], "a": 1 }, + { "px": [336,209], "src": [144,112], "f": 0, "t": 261, "d": [97,541], "a": 1 }, + { "px": [352,209], "src": [112,112], "f": 0, "t": 259, "d": [97,542], "a": 1 }, + { "px": [368,208], "src": [48,80], "f": 0, "t": 183, "d": [97,543], "a": 1 }, + { "px": [464,16], "src": [64,128], "f": 0, "t": 292, "d": [98,69], "a": 1 }, + { "px": [480,16], "src": [64,112], "f": 1, "t": 256, "d": [98,70], "a": 1 }, + { "px": [496,32], "src": [64,112], "f": 1, "t": 256, "d": [98,111], "a": 1 }, + { "px": [448,48], "src": [64,112], "f": 0, "t": 256, "d": [98,148], "a": 1 }, + { "px": [448,48], "src": [64,112], "f": 1, "t": 256, "d": [98,148], "a": 1 }, + { "px": [480,48], "src": [64,112], "f": 0, "t": 256, "d": [98,150], "a": 1 }, + { "px": [480,64], "src": [64,112], "f": 0, "t": 256, "d": [98,190], "a": 1 }, + { "px": [544,64], "src": [64,112], "f": 1, "t": 256, "d": [98,194], "a": 1 }, + { "px": [80,80], "src": [64,112], "f": 0, "t": 256, "d": [98,205], "a": 1 }, + { "px": [272,80], "src": [64,128], "f": 1, "t": 292, "d": [98,217], "a": 1 }, + { "px": [512,80], "src": [64,112], "f": 0, "t": 256, "d": [98,232], "a": 1 }, + { "px": [80,96], "src": [64,112], "f": 0, "t": 256, "d": [98,245], "a": 1 }, + { "px": [352,96], "src": [64,112], "f": 1, "t": 256, "d": [98,262], "a": 1 }, + { "px": [96,112], "src": [64,128], "f": 0, "t": 292, "d": [98,286], "a": 1 }, + { "px": [160,112], "src": [64,112], "f": 1, "t": 256, "d": [98,290], "a": 1 }, + { "px": [224,112], "src": [64,128], "f": 0, "t": 292, "d": [98,294], "a": 1 }, + { "px": [416,112], "src": [64,112], "f": 1, "t": 256, "d": [98,306], "a": 1 }, + { "px": [480,128], "src": [64,112], "f": 0, "t": 256, "d": [98,350], "a": 1 }, + { "px": [176,144], "src": [64,128], "f": 0, "t": 292, "d": [98,371], "a": 1 }, + { "px": [512,144], "src": [64,128], "f": 1, "t": 292, "d": [98,392], "a": 1 }, + { "px": [112,160], "src": [64,112], "f": 0, "t": 256, "d": [98,407], "a": 1 }, + { "px": [432,160], "src": [64,112], "f": 1, "t": 256, "d": [98,427], "a": 1 }, + { "px": [464,160], "src": [64,128], "f": 0, "t": 292, "d": [98,429], "a": 1 }, + { "px": [512,160], "src": [64,128], "f": 1, "t": 292, "d": [98,432], "a": 1 }, + { "px": [96,176], "src": [64,112], "f": 0, "t": 256, "d": [98,446], "a": 1 }, + { "px": [416,176], "src": [64,128], "f": 1, "t": 292, "d": [98,466], "a": 1 }, + { "px": [496,176], "src": [64,128], "f": 0, "t": 292, "d": [98,471], "a": 1 }, + { "px": [416,192], "src": [64,128], "f": 1, "t": 292, "d": [98,506], "a": 1 }, + { "px": [96,208], "src": [64,112], "f": 0, "t": 256, "d": [98,526], "a": 1 }, + { "px": [368,208], "src": [64,128], "f": 1, "t": 292, "d": [98,543], "a": 1 }, + { "px": [96,64], "src": [96,96], "f": 0, "t": 222, "d": [93,166], "a": 1 }, + { "px": [128,64], "src": [112,96], "f": 0, "t": 223, "d": [93,168], "a": 1 }, + { "px": [144,64], "src": [128,96], "f": 0, "t": 224, "d": [93,169], "a": 1 }, + { "px": [80,80], "src": [96,80], "f": 0, "t": 186, "d": [93,205], "a": 1 }, + { "px": [256,80], "src": [96,80], "f": 0, "t": 186, "d": [93,216], "a": 1 }, + { "px": [416,112], "src": [96,80], "f": 0, "t": 186, "d": [93,306], "a": 1 }, + { "px": [176,144], "src": [128,96], "f": 0, "t": 224, "d": [93,371], "a": 1 }, + { "px": [512,144], "src": [112,80], "f": 0, "t": 187, "d": [93,392], "a": 1 }, + { "px": [464,16], "src": [112,96], "f": 0, "t": 223, "d": [101,69], "a": 1 }, + { "px": [480,16], "src": [112,96], "f": 0, "t": 223, "d": [101,70], "a": 1 }, + { "px": [448,32], "src": [112,96], "f": 0, "t": 223, "d": [101,108], "a": 1 }, + { "px": [496,32], "src": [112,96], "f": 0, "t": 223, "d": [101,111], "a": 1 }, + { "px": [512,48], "src": [128,96], "f": 0, "t": 224, "d": [101,152], "a": 1 }, + { "px": [528,48], "src": [112,96], "f": 0, "t": 223, "d": [101,153], "a": 1 }, + { "px": [96,64], "src": [112,96], "f": 0, "t": 223, "d": [101,166], "a": 1 }, + { "px": [112,64], "src": [112,96], "f": 0, "t": 223, "d": [101,167], "a": 1 }, + { "px": [128,64], "src": [112,96], "f": 0, "t": 223, "d": [101,168], "a": 1 }, + { "px": [144,64], "src": [112,96], "f": 0, "t": 223, "d": [101,169], "a": 1 }, + { "px": [160,64], "src": [112,96], "f": 0, "t": 223, "d": [101,170], "a": 1 }, + { "px": [176,64], "src": [112,96], "f": 0, "t": 223, "d": [101,171], "a": 1 }, + { "px": [192,64], "src": [112,96], "f": 0, "t": 223, "d": [101,172], "a": 1 }, + { "px": [208,64], "src": [128,96], "f": 0, "t": 224, "d": [101,173], "a": 1 }, + { "px": [224,64], "src": [112,96], "f": 0, "t": 223, "d": [101,174], "a": 1 }, + { "px": [240,64], "src": [112,96], "f": 0, "t": 223, "d": [101,175], "a": 1 }, + { "px": [544,64], "src": [128,96], "f": 0, "t": 224, "d": [101,194], "a": 1 }, + { "px": [80,80], "src": [128,96], "f": 0, "t": 224, "d": [101,205], "a": 1 }, + { "px": [256,80], "src": [128,96], "f": 0, "t": 224, "d": [101,216], "a": 1 }, + { "px": [272,80], "src": [128,96], "f": 0, "t": 224, "d": [101,217], "a": 1 }, + { "px": [288,96], "src": [112,96], "f": 0, "t": 223, "d": [101,258], "a": 1 }, + { "px": [304,96], "src": [112,96], "f": 0, "t": 223, "d": [101,259], "a": 1 }, + { "px": [336,96], "src": [112,96], "f": 0, "t": 223, "d": [101,261], "a": 1 }, + { "px": [352,96], "src": [112,96], "f": 0, "t": 223, "d": [101,262], "a": 1 }, + { "px": [368,112], "src": [128,96], "f": 0, "t": 224, "d": [101,303], "a": 1 }, + { "px": [384,112], "src": [128,96], "f": 0, "t": 224, "d": [101,304], "a": 1 }, + { "px": [400,112], "src": [128,96], "f": 0, "t": 224, "d": [101,305], "a": 1 }, + { "px": [416,112], "src": [128,96], "f": 0, "t": 224, "d": [101,306], "a": 1 }, + { "px": [208,128], "src": [128,96], "f": 0, "t": 224, "d": [101,333], "a": 1 }, + { "px": [432,128], "src": [128,96], "f": 0, "t": 224, "d": [101,347], "a": 1 }, + { "px": [448,128], "src": [128,96], "f": 0, "t": 224, "d": [101,348], "a": 1 }, + { "px": [480,128], "src": [112,96], "f": 0, "t": 223, "d": [101,350], "a": 1 }, + { "px": [496,128], "src": [112,96], "f": 0, "t": 223, "d": [101,351], "a": 1 }, + { "px": [176,144], "src": [112,96], "f": 0, "t": 223, "d": [101,371], "a": 1 }, + { "px": [192,144], "src": [112,96], "f": 0, "t": 223, "d": [101,372], "a": 1 }, + { "px": [464,144], "src": [128,96], "f": 0, "t": 224, "d": [101,389], "a": 1 }, + { "px": [512,144], "src": [128,96], "f": 0, "t": 224, "d": [101,392], "a": 1 }, + { "px": [128,160], "src": [128,96], "f": 0, "t": 224, "d": [101,408], "a": 1 }, + { "px": [144,160], "src": [112,96], "f": 0, "t": 223, "d": [101,409], "a": 1 }, + { "px": [160,160], "src": [128,96], "f": 0, "t": 224, "d": [101,410], "a": 1 }, + { "px": [96,176], "src": [112,96], "f": 0, "t": 223, "d": [101,446], "a": 1 }, + { "px": [0,0], "src": [192,208], "f": 0, "t": 480, "d": [104,0], "a": 1 }, + { "px": [16,0], "src": [208,208], "f": 0, "t": 481, "d": [104,1], "a": 1 }, + { "px": [48,0], "src": [176,208], "f": 0, "t": 479, "d": [104,3], "a": 1 }, + { "px": [80,0], "src": [208,208], "f": 0, "t": 481, "d": [104,5], "a": 1 }, + { "px": [96,0], "src": [208,208], "f": 0, "t": 481, "d": [104,6], "a": 1 }, + { "px": [128,0], "src": [176,208], "f": 0, "t": 479, "d": [104,8], "a": 1 }, + { "px": [144,0], "src": [176,208], "f": 0, "t": 479, "d": [104,9], "a": 1 }, + { "px": [160,0], "src": [176,208], "f": 0, "t": 479, "d": [104,10], "a": 1 }, + { "px": [176,0], "src": [208,208], "f": 0, "t": 481, "d": [104,11], "a": 1 }, + { "px": [208,0], "src": [192,208], "f": 0, "t": 480, "d": [104,13], "a": 1 }, + { "px": [224,0], "src": [176,208], "f": 0, "t": 479, "d": [104,14], "a": 1 }, + { "px": [240,0], "src": [208,208], "f": 0, "t": 481, "d": [104,15], "a": 1 }, + { "px": [272,0], "src": [192,208], "f": 0, "t": 480, "d": [104,17], "a": 1 }, + { "px": [304,0], "src": [176,208], "f": 0, "t": 479, "d": [104,19], "a": 1 }, + { "px": [336,0], "src": [192,208], "f": 0, "t": 480, "d": [104,21], "a": 1 }, + { "px": [352,0], "src": [176,208], "f": 0, "t": 479, "d": [104,22], "a": 1 }, + { "px": [368,0], "src": [208,208], "f": 0, "t": 481, "d": [104,23], "a": 1 }, + { "px": [384,0], "src": [176,208], "f": 0, "t": 479, "d": [104,24], "a": 1 }, + { "px": [400,0], "src": [192,208], "f": 0, "t": 480, "d": [104,25], "a": 1 }, + { "px": [416,0], "src": [176,208], "f": 0, "t": 479, "d": [104,26], "a": 1 }, + { "px": [512,0], "src": [176,208], "f": 0, "t": 479, "d": [104,32], "a": 1 }, + { "px": [528,0], "src": [208,208], "f": 0, "t": 481, "d": [104,33], "a": 1 }, + { "px": [576,0], "src": [208,208], "f": 0, "t": 481, "d": [104,36], "a": 1 }, + { "px": [608,0], "src": [208,208], "f": 0, "t": 481, "d": [104,38], "a": 1 }, + { "px": [624,0], "src": [192,208], "f": 0, "t": 480, "d": [104,39], "a": 1 }, + { "px": [0,16], "src": [192,208], "f": 0, "t": 480, "d": [104,40], "a": 1 }, + { "px": [32,16], "src": [208,208], "f": 0, "t": 481, "d": [104,42], "a": 1 }, + { "px": [64,16], "src": [208,208], "f": 0, "t": 481, "d": [104,44], "a": 1 }, + { "px": [80,16], "src": [176,208], "f": 0, "t": 479, "d": [104,45], "a": 1 }, + { "px": [96,16], "src": [208,208], "f": 0, "t": 481, "d": [104,46], "a": 1 }, + { "px": [160,16], "src": [176,208], "f": 0, "t": 479, "d": [104,50], "a": 1 }, + { "px": [192,16], "src": [208,208], "f": 0, "t": 481, "d": [104,52], "a": 1 }, + { "px": [224,16], "src": [208,208], "f": 0, "t": 481, "d": [104,54], "a": 1 }, + { "px": [256,16], "src": [208,208], "f": 0, "t": 481, "d": [104,56], "a": 1 }, + { "px": [288,16], "src": [192,208], "f": 0, "t": 480, "d": [104,58], "a": 1 }, + { "px": [304,16], "src": [192,208], "f": 0, "t": 480, "d": [104,59], "a": 1 }, + { "px": [320,16], "src": [192,208], "f": 0, "t": 480, "d": [104,60], "a": 1 }, + { "px": [336,16], "src": [192,208], "f": 0, "t": 480, "d": [104,61], "a": 1 }, + { "px": [352,16], "src": [208,208], "f": 0, "t": 481, "d": [104,62], "a": 1 }, + { "px": [368,16], "src": [192,208], "f": 0, "t": 480, "d": [104,63], "a": 1 }, + { "px": [400,16], "src": [208,208], "f": 0, "t": 481, "d": [104,65], "a": 1 }, + { "px": [416,16], "src": [192,208], "f": 0, "t": 480, "d": [104,66], "a": 1 }, + { "px": [560,16], "src": [192,208], "f": 0, "t": 480, "d": [104,75], "a": 1 }, + { "px": [608,16], "src": [208,208], "f": 0, "t": 481, "d": [104,78], "a": 1 }, + { "px": [624,16], "src": [176,208], "f": 0, "t": 479, "d": [104,79], "a": 1 }, + { "px": [16,32], "src": [192,208], "f": 0, "t": 480, "d": [104,81], "a": 1 }, + { "px": [64,32], "src": [176,208], "f": 0, "t": 479, "d": [104,84], "a": 1 }, + { "px": [80,32], "src": [176,208], "f": 0, "t": 479, "d": [104,85], "a": 1 }, + { "px": [256,32], "src": [176,208], "f": 0, "t": 479, "d": [104,96], "a": 1 }, + { "px": [288,32], "src": [192,208], "f": 0, "t": 480, "d": [104,98], "a": 1 }, + { "px": [304,32], "src": [192,208], "f": 0, "t": 480, "d": [104,99], "a": 1 }, + { "px": [320,32], "src": [176,208], "f": 0, "t": 479, "d": [104,100], "a": 1 }, + { "px": [336,32], "src": [192,208], "f": 0, "t": 480, "d": [104,101], "a": 1 }, + { "px": [352,32], "src": [208,208], "f": 0, "t": 481, "d": [104,102], "a": 1 }, + { "px": [368,32], "src": [192,208], "f": 0, "t": 480, "d": [104,103], "a": 1 }, + { "px": [384,32], "src": [176,208], "f": 0, "t": 479, "d": [104,104], "a": 1 }, + { "px": [400,32], "src": [176,208], "f": 0, "t": 479, "d": [104,105], "a": 1 }, + { "px": [560,32], "src": [176,208], "f": 0, "t": 479, "d": [104,115], "a": 1 }, + { "px": [592,32], "src": [208,208], "f": 0, "t": 481, "d": [104,117], "a": 1 }, + { "px": [608,32], "src": [192,208], "f": 0, "t": 480, "d": [104,118], "a": 1 }, + { "px": [624,32], "src": [192,208], "f": 0, "t": 480, "d": [104,119], "a": 1 }, + { "px": [0,48], "src": [176,208], "f": 0, "t": 479, "d": [104,120], "a": 1 }, + { "px": [16,48], "src": [192,208], "f": 0, "t": 480, "d": [104,121], "a": 1 }, + { "px": [32,48], "src": [176,208], "f": 0, "t": 479, "d": [104,122], "a": 1 }, + { "px": [64,48], "src": [192,208], "f": 0, "t": 480, "d": [104,124], "a": 1 }, + { "px": [320,48], "src": [208,208], "f": 0, "t": 481, "d": [104,140], "a": 1 }, + { "px": [352,48], "src": [208,208], "f": 0, "t": 481, "d": [104,142], "a": 1 }, + { "px": [368,48], "src": [192,208], "f": 0, "t": 480, "d": [104,143], "a": 1 }, + { "px": [384,48], "src": [208,208], "f": 0, "t": 481, "d": [104,144], "a": 1 }, + { "px": [576,48], "src": [176,208], "f": 0, "t": 479, "d": [104,156], "a": 1 }, + { "px": [592,48], "src": [192,208], "f": 0, "t": 480, "d": [104,157], "a": 1 }, + { "px": [608,48], "src": [192,208], "f": 0, "t": 480, "d": [104,158], "a": 1 }, + { "px": [624,48], "src": [176,208], "f": 0, "t": 479, "d": [104,159], "a": 1 }, + { "px": [16,64], "src": [208,208], "f": 0, "t": 481, "d": [104,161], "a": 1 }, + { "px": [32,64], "src": [176,208], "f": 0, "t": 479, "d": [104,162], "a": 1 }, + { "px": [48,64], "src": [176,208], "f": 0, "t": 479, "d": [104,163], "a": 1 }, + { "px": [368,64], "src": [208,208], "f": 0, "t": 481, "d": [104,183], "a": 1 }, + { "px": [400,64], "src": [176,208], "f": 0, "t": 479, "d": [104,185], "a": 1 }, + { "px": [592,64], "src": [176,208], "f": 0, "t": 479, "d": [104,197], "a": 1 }, + { "px": [608,64], "src": [176,208], "f": 0, "t": 479, "d": [104,198], "a": 1 }, + { "px": [624,64], "src": [208,208], "f": 0, "t": 481, "d": [104,199], "a": 1 }, + { "px": [0,80], "src": [208,208], "f": 0, "t": 481, "d": [104,200], "a": 1 }, + { "px": [32,80], "src": [192,208], "f": 0, "t": 480, "d": [104,202], "a": 1 }, + { "px": [592,80], "src": [176,208], "f": 0, "t": 479, "d": [104,237], "a": 1 }, + { "px": [608,80], "src": [208,208], "f": 0, "t": 481, "d": [104,238], "a": 1 }, + { "px": [624,80], "src": [192,208], "f": 0, "t": 480, "d": [104,239], "a": 1 }, + { "px": [0,96], "src": [176,208], "f": 0, "t": 479, "d": [104,240], "a": 1 }, + { "px": [464,96], "src": [192,208], "f": 0, "t": 480, "d": [104,269], "a": 1 }, + { "px": [560,96], "src": [208,208], "f": 0, "t": 481, "d": [104,275], "a": 1 }, + { "px": [592,96], "src": [176,208], "f": 0, "t": 479, "d": [104,277], "a": 1 }, + { "px": [0,112], "src": [192,208], "f": 0, "t": 480, "d": [104,280], "a": 1 }, + { "px": [16,112], "src": [208,208], "f": 0, "t": 481, "d": [104,281], "a": 1 }, + { "px": [32,112], "src": [208,208], "f": 0, "t": 481, "d": [104,282], "a": 1 }, + { "px": [48,112], "src": [192,208], "f": 0, "t": 480, "d": [104,283], "a": 1 }, + { "px": [544,112], "src": [192,208], "f": 0, "t": 480, "d": [104,314], "a": 1 }, + { "px": [560,112], "src": [176,208], "f": 0, "t": 479, "d": [104,315], "a": 1 }, + { "px": [576,112], "src": [208,208], "f": 0, "t": 481, "d": [104,316], "a": 1 }, + { "px": [608,112], "src": [176,208], "f": 0, "t": 479, "d": [104,318], "a": 1 }, + { "px": [16,128], "src": [192,208], "f": 0, "t": 480, "d": [104,321], "a": 1 }, + { "px": [32,128], "src": [176,208], "f": 0, "t": 479, "d": [104,322], "a": 1 }, + { "px": [48,128], "src": [176,208], "f": 0, "t": 479, "d": [104,323], "a": 1 }, + { "px": [64,128], "src": [208,208], "f": 0, "t": 481, "d": [104,324], "a": 1 }, + { "px": [544,128], "src": [176,208], "f": 0, "t": 479, "d": [104,354], "a": 1 }, + { "px": [560,128], "src": [192,208], "f": 0, "t": 480, "d": [104,355], "a": 1 }, + { "px": [592,128], "src": [208,208], "f": 0, "t": 481, "d": [104,357], "a": 1 }, + { "px": [624,128], "src": [176,208], "f": 0, "t": 479, "d": [104,359], "a": 1 }, + { "px": [0,144], "src": [176,208], "f": 0, "t": 479, "d": [104,360], "a": 1 }, + { "px": [16,144], "src": [192,208], "f": 0, "t": 480, "d": [104,361], "a": 1 }, + { "px": [32,144], "src": [208,208], "f": 0, "t": 481, "d": [104,362], "a": 1 }, + { "px": [48,144], "src": [208,208], "f": 0, "t": 481, "d": [104,363], "a": 1 }, + { "px": [80,144], "src": [192,208], "f": 0, "t": 480, "d": [104,365], "a": 1 }, + { "px": [560,144], "src": [176,208], "f": 0, "t": 479, "d": [104,395], "a": 1 }, + { "px": [592,144], "src": [176,208], "f": 0, "t": 479, "d": [104,397], "a": 1 }, + { "px": [624,144], "src": [208,208], "f": 0, "t": 481, "d": [104,399], "a": 1 }, + { "px": [0,160], "src": [176,208], "f": 0, "t": 479, "d": [104,400], "a": 1 }, + { "px": [32,160], "src": [176,208], "f": 0, "t": 479, "d": [104,402], "a": 1 }, + { "px": [64,160], "src": [208,208], "f": 0, "t": 481, "d": [104,404], "a": 1 }, + { "px": [560,160], "src": [208,208], "f": 0, "t": 481, "d": [104,435], "a": 1 }, + { "px": [576,160], "src": [176,208], "f": 0, "t": 479, "d": [104,436], "a": 1 }, + { "px": [592,160], "src": [176,208], "f": 0, "t": 479, "d": [104,437], "a": 1 }, + { "px": [624,160], "src": [208,208], "f": 0, "t": 481, "d": [104,439], "a": 1 }, + { "px": [16,176], "src": [192,208], "f": 0, "t": 480, "d": [104,441], "a": 1 }, + { "px": [32,176], "src": [176,208], "f": 0, "t": 479, "d": [104,442], "a": 1 }, + { "px": [48,176], "src": [192,208], "f": 0, "t": 480, "d": [104,443], "a": 1 }, + { "px": [576,176], "src": [208,208], "f": 0, "t": 481, "d": [104,476], "a": 1 }, + { "px": [592,176], "src": [192,208], "f": 0, "t": 480, "d": [104,477], "a": 1 }, + { "px": [608,176], "src": [176,208], "f": 0, "t": 479, "d": [104,478], "a": 1 }, + { "px": [624,176], "src": [192,208], "f": 0, "t": 480, "d": [104,479], "a": 1 }, + { "px": [0,192], "src": [192,208], "f": 0, "t": 480, "d": [104,480], "a": 1 }, + { "px": [16,192], "src": [208,208], "f": 0, "t": 481, "d": [104,481], "a": 1 }, + { "px": [32,192], "src": [208,208], "f": 0, "t": 481, "d": [104,482], "a": 1 }, + { "px": [48,192], "src": [208,208], "f": 0, "t": 481, "d": [104,483], "a": 1 }, + { "px": [544,192], "src": [192,208], "f": 0, "t": 480, "d": [104,514], "a": 1 }, + { "px": [560,192], "src": [176,208], "f": 0, "t": 479, "d": [104,515], "a": 1 }, + { "px": [576,192], "src": [176,208], "f": 0, "t": 479, "d": [104,516], "a": 1 }, + { "px": [0,208], "src": [176,208], "f": 0, "t": 479, "d": [104,520], "a": 1 }, + { "px": [16,208], "src": [208,208], "f": 0, "t": 481, "d": [104,521], "a": 1 }, + { "px": [32,208], "src": [192,208], "f": 0, "t": 480, "d": [104,522], "a": 1 }, + { "px": [48,208], "src": [208,208], "f": 0, "t": 481, "d": [104,523], "a": 1 }, + { "px": [448,208], "src": [192,208], "f": 0, "t": 480, "d": [104,548], "a": 1 }, + { "px": [480,208], "src": [208,208], "f": 0, "t": 481, "d": [104,550], "a": 1 }, + { "px": [560,208], "src": [176,208], "f": 0, "t": 479, "d": [104,555], "a": 1 }, + { "px": [592,208], "src": [192,208], "f": 0, "t": 480, "d": [104,557], "a": 1 }, + { "px": [608,208], "src": [176,208], "f": 0, "t": 479, "d": [104,558], "a": 1 }, + { "px": [16,224], "src": [176,208], "f": 0, "t": 479, "d": [104,561], "a": 1 }, + { "px": [32,224], "src": [176,208], "f": 0, "t": 479, "d": [104,562], "a": 1 }, + { "px": [48,224], "src": [176,208], "f": 0, "t": 479, "d": [104,563], "a": 1 }, + { "px": [64,224], "src": [208,208], "f": 0, "t": 481, "d": [104,564], "a": 1 }, + { "px": [432,224], "src": [176,208], "f": 0, "t": 479, "d": [104,587], "a": 1 }, + { "px": [464,224], "src": [176,208], "f": 0, "t": 479, "d": [104,589], "a": 1 }, + { "px": [480,224], "src": [208,208], "f": 0, "t": 481, "d": [104,590], "a": 1 }, + { "px": [496,224], "src": [176,208], "f": 0, "t": 479, "d": [104,591], "a": 1 }, + { "px": [512,224], "src": [176,208], "f": 0, "t": 479, "d": [104,592], "a": 1 }, + { "px": [528,224], "src": [208,208], "f": 0, "t": 481, "d": [104,593], "a": 1 }, + { "px": [544,224], "src": [208,208], "f": 0, "t": 481, "d": [104,594], "a": 1 }, + { "px": [560,224], "src": [176,208], "f": 0, "t": 479, "d": [104,595], "a": 1 }, + { "px": [576,224], "src": [176,208], "f": 0, "t": 479, "d": [104,596], "a": 1 }, + { "px": [592,224], "src": [176,208], "f": 0, "t": 479, "d": [104,597], "a": 1 }, + { "px": [624,224], "src": [192,208], "f": 0, "t": 480, "d": [104,599], "a": 1 }, + { "px": [0,240], "src": [176,208], "f": 0, "t": 479, "d": [104,600], "a": 1 }, + { "px": [16,240], "src": [208,208], "f": 0, "t": 481, "d": [104,601], "a": 1 }, + { "px": [32,240], "src": [176,208], "f": 0, "t": 479, "d": [104,602], "a": 1 }, + { "px": [48,240], "src": [192,208], "f": 0, "t": 480, "d": [104,603], "a": 1 }, + { "px": [80,240], "src": [192,208], "f": 0, "t": 480, "d": [104,605], "a": 1 }, + { "px": [384,240], "src": [208,208], "f": 0, "t": 481, "d": [104,624], "a": 1 }, + { "px": [400,240], "src": [192,208], "f": 0, "t": 480, "d": [104,625], "a": 1 }, + { "px": [416,240], "src": [176,208], "f": 0, "t": 479, "d": [104,626], "a": 1 }, + { "px": [432,240], "src": [208,208], "f": 0, "t": 481, "d": [104,627], "a": 1 }, + { "px": [464,240], "src": [208,208], "f": 0, "t": 481, "d": [104,629], "a": 1 }, + { "px": [480,240], "src": [208,208], "f": 0, "t": 481, "d": [104,630], "a": 1 }, + { "px": [512,240], "src": [208,208], "f": 0, "t": 481, "d": [104,632], "a": 1 }, + { "px": [528,240], "src": [176,208], "f": 0, "t": 479, "d": [104,633], "a": 1 }, + { "px": [560,240], "src": [176,208], "f": 0, "t": 479, "d": [104,635], "a": 1 }, + { "px": [592,240], "src": [176,208], "f": 0, "t": 479, "d": [104,637], "a": 1 }, + { "px": [608,240], "src": [192,208], "f": 0, "t": 480, "d": [104,638], "a": 1 }, + { "px": [16,256], "src": [192,208], "f": 0, "t": 480, "d": [104,641], "a": 1 }, + { "px": [32,256], "src": [208,208], "f": 0, "t": 481, "d": [104,642], "a": 1 }, + { "px": [48,256], "src": [208,208], "f": 0, "t": 481, "d": [104,643], "a": 1 }, + { "px": [64,256], "src": [208,208], "f": 0, "t": 481, "d": [104,644], "a": 1 }, + { "px": [80,256], "src": [176,208], "f": 0, "t": 479, "d": [104,645], "a": 1 }, + { "px": [96,256], "src": [208,208], "f": 0, "t": 481, "d": [104,646], "a": 1 }, + { "px": [112,256], "src": [192,208], "f": 0, "t": 480, "d": [104,647], "a": 1 }, + { "px": [128,256], "src": [176,208], "f": 0, "t": 479, "d": [104,648], "a": 1 }, + { "px": [144,256], "src": [192,208], "f": 0, "t": 480, "d": [104,649], "a": 1 }, + { "px": [160,256], "src": [192,208], "f": 0, "t": 480, "d": [104,650], "a": 1 }, + { "px": [176,256], "src": [176,208], "f": 0, "t": 479, "d": [104,651], "a": 1 }, + { "px": [208,256], "src": [208,208], "f": 0, "t": 481, "d": [104,653], "a": 1 }, + { "px": [224,256], "src": [192,208], "f": 0, "t": 480, "d": [104,654], "a": 1 }, + { "px": [272,256], "src": [192,208], "f": 0, "t": 480, "d": [104,657], "a": 1 }, + { "px": [336,256], "src": [208,208], "f": 0, "t": 481, "d": [104,661], "a": 1 }, + { "px": [368,256], "src": [192,208], "f": 0, "t": 480, "d": [104,663], "a": 1 }, + { "px": [384,256], "src": [208,208], "f": 0, "t": 481, "d": [104,664], "a": 1 }, + { "px": [400,256], "src": [208,208], "f": 0, "t": 481, "d": [104,665], "a": 1 }, + { "px": [432,256], "src": [192,208], "f": 0, "t": 480, "d": [104,667], "a": 1 }, + { "px": [448,256], "src": [192,208], "f": 0, "t": 480, "d": [104,668], "a": 1 }, + { "px": [464,256], "src": [176,208], "f": 0, "t": 479, "d": [104,669], "a": 1 }, + { "px": [528,256], "src": [192,208], "f": 0, "t": 480, "d": [104,673], "a": 1 }, + { "px": [592,256], "src": [208,208], "f": 0, "t": 481, "d": [104,677], "a": 1 }, + { "px": [608,256], "src": [176,208], "f": 0, "t": 479, "d": [104,678], "a": 1 }, + { "px": [624,256], "src": [208,208], "f": 0, "t": 481, "d": [104,679], "a": 1 }, + { "px": [0,272], "src": [176,208], "f": 0, "t": 479, "d": [104,680], "a": 1 }, + { "px": [48,272], "src": [192,208], "f": 0, "t": 480, "d": [104,683], "a": 1 }, + { "px": [64,272], "src": [208,208], "f": 0, "t": 481, "d": [104,684], "a": 1 }, + { "px": [128,272], "src": [176,208], "f": 0, "t": 479, "d": [104,688], "a": 1 }, + { "px": [160,272], "src": [208,208], "f": 0, "t": 481, "d": [104,690], "a": 1 }, + { "px": [176,272], "src": [208,208], "f": 0, "t": 481, "d": [104,691], "a": 1 }, + { "px": [208,272], "src": [176,208], "f": 0, "t": 479, "d": [104,693], "a": 1 }, + { "px": [224,272], "src": [192,208], "f": 0, "t": 480, "d": [104,694], "a": 1 }, + { "px": [272,272], "src": [176,208], "f": 0, "t": 479, "d": [104,697], "a": 1 }, + { "px": [288,272], "src": [208,208], "f": 0, "t": 481, "d": [104,698], "a": 1 }, + { "px": [336,272], "src": [192,208], "f": 0, "t": 480, "d": [104,701], "a": 1 }, + { "px": [352,272], "src": [192,208], "f": 0, "t": 480, "d": [104,702], "a": 1 }, + { "px": [384,272], "src": [176,208], "f": 0, "t": 479, "d": [104,704], "a": 1 }, + { "px": [400,272], "src": [208,208], "f": 0, "t": 481, "d": [104,705], "a": 1 }, + { "px": [416,272], "src": [176,208], "f": 0, "t": 479, "d": [104,706], "a": 1 }, + { "px": [432,272], "src": [208,208], "f": 0, "t": 481, "d": [104,707], "a": 1 }, + { "px": [448,272], "src": [192,208], "f": 0, "t": 480, "d": [104,708], "a": 1 }, + { "px": [464,272], "src": [208,208], "f": 0, "t": 481, "d": [104,709], "a": 1 }, + { "px": [496,272], "src": [208,208], "f": 0, "t": 481, "d": [104,711], "a": 1 }, + { "px": [512,272], "src": [192,208], "f": 0, "t": 480, "d": [104,712], "a": 1 }, + { "px": [528,272], "src": [176,208], "f": 0, "t": 479, "d": [104,713], "a": 1 }, + { "px": [544,272], "src": [208,208], "f": 0, "t": 481, "d": [104,714], "a": 1 }, + { "px": [560,272], "src": [176,208], "f": 0, "t": 479, "d": [104,715], "a": 1 }, + { "px": [608,272], "src": [192,208], "f": 0, "t": 480, "d": [104,718], "a": 1 }, + { "px": [0,288], "src": [176,208], "f": 0, "t": 479, "d": [104,720], "a": 1 }, + { "px": [16,288], "src": [176,208], "f": 0, "t": 479, "d": [104,721], "a": 1 }, + { "px": [32,288], "src": [192,208], "f": 0, "t": 480, "d": [104,722], "a": 1 }, + { "px": [64,288], "src": [176,208], "f": 0, "t": 479, "d": [104,724], "a": 1 }, + { "px": [80,288], "src": [176,208], "f": 0, "t": 479, "d": [104,725], "a": 1 }, + { "px": [112,288], "src": [192,208], "f": 0, "t": 480, "d": [104,727], "a": 1 }, + { "px": [176,288], "src": [176,208], "f": 0, "t": 479, "d": [104,731], "a": 1 }, + { "px": [192,288], "src": [176,208], "f": 0, "t": 479, "d": [104,732], "a": 1 }, + { "px": [208,288], "src": [176,208], "f": 0, "t": 479, "d": [104,733], "a": 1 }, + { "px": [256,288], "src": [176,208], "f": 0, "t": 479, "d": [104,736], "a": 1 }, + { "px": [304,288], "src": [176,208], "f": 0, "t": 479, "d": [104,739], "a": 1 }, + { "px": [368,288], "src": [208,208], "f": 0, "t": 481, "d": [104,743], "a": 1 }, + { "px": [384,288], "src": [192,208], "f": 0, "t": 480, "d": [104,744], "a": 1 }, + { "px": [400,288], "src": [192,208], "f": 0, "t": 480, "d": [104,745], "a": 1 }, + { "px": [448,288], "src": [176,208], "f": 0, "t": 479, "d": [104,748], "a": 1 }, + { "px": [480,288], "src": [192,208], "f": 0, "t": 480, "d": [104,750], "a": 1 }, + { "px": [496,288], "src": [176,208], "f": 0, "t": 479, "d": [104,751], "a": 1 }, + { "px": [544,288], "src": [176,208], "f": 0, "t": 479, "d": [104,754], "a": 1 }, + { "px": [560,288], "src": [176,208], "f": 0, "t": 479, "d": [104,755], "a": 1 }, + { "px": [576,288], "src": [192,208], "f": 0, "t": 480, "d": [104,756], "a": 1 }, + { "px": [0,0], "src": [272,176], "f": 0, "t": 413, "d": [108,0], "a": 1 }, + { "px": [16,0], "src": [272,176], "f": 0, "t": 413, "d": [108,1], "a": 1 }, + { "px": [32,0], "src": [272,176], "f": 0, "t": 413, "d": [108,2], "a": 1 }, + { "px": [48,0], "src": [272,176], "f": 0, "t": 413, "d": [108,3], "a": 1 }, + { "px": [64,0], "src": [272,176], "f": 0, "t": 413, "d": [108,4], "a": 1 }, + { "px": [80,0], "src": [272,176], "f": 0, "t": 413, "d": [108,5], "a": 1 }, + { "px": [96,0], "src": [272,176], "f": 0, "t": 413, "d": [108,6], "a": 1 }, + { "px": [112,0], "src": [272,176], "f": 0, "t": 413, "d": [108,7], "a": 1 }, + { "px": [128,0], "src": [272,176], "f": 0, "t": 413, "d": [108,8], "a": 1 }, + { "px": [144,0], "src": [272,176], "f": 0, "t": 413, "d": [108,9], "a": 1 }, + { "px": [160,0], "src": [272,176], "f": 0, "t": 413, "d": [108,10], "a": 1 }, + { "px": [176,0], "src": [272,176], "f": 0, "t": 413, "d": [108,11], "a": 1 }, + { "px": [192,0], "src": [272,176], "f": 0, "t": 413, "d": [108,12], "a": 1 }, + { "px": [208,0], "src": [272,176], "f": 0, "t": 413, "d": [108,13], "a": 1 }, + { "px": [224,0], "src": [272,176], "f": 0, "t": 413, "d": [108,14], "a": 1 }, + { "px": [240,0], "src": [272,176], "f": 0, "t": 413, "d": [108,15], "a": 1 }, + { "px": [256,0], "src": [272,176], "f": 0, "t": 413, "d": [108,16], "a": 1 }, + { "px": [272,0], "src": [272,176], "f": 0, "t": 413, "d": [108,17], "a": 1 }, + { "px": [288,0], "src": [272,176], "f": 0, "t": 413, "d": [108,18], "a": 1 }, + { "px": [304,0], "src": [272,176], "f": 0, "t": 413, "d": [108,19], "a": 1 }, + { "px": [320,0], "src": [272,176], "f": 0, "t": 413, "d": [108,20], "a": 1 }, + { "px": [336,0], "src": [272,176], "f": 0, "t": 413, "d": [108,21], "a": 1 }, + { "px": [352,0], "src": [272,176], "f": 0, "t": 413, "d": [108,22], "a": 1 }, + { "px": [368,0], "src": [272,176], "f": 0, "t": 413, "d": [108,23], "a": 1 }, + { "px": [384,0], "src": [272,176], "f": 0, "t": 413, "d": [108,24], "a": 1 }, + { "px": [400,0], "src": [272,176], "f": 0, "t": 413, "d": [108,25], "a": 1 }, + { "px": [416,0], "src": [272,176], "f": 0, "t": 413, "d": [108,26], "a": 1 }, + { "px": [432,0], "src": [272,176], "f": 0, "t": 413, "d": [108,27], "a": 1 }, + { "px": [512,0], "src": [272,176], "f": 0, "t": 413, "d": [108,32], "a": 1 }, + { "px": [528,0], "src": [272,176], "f": 0, "t": 413, "d": [108,33], "a": 1 }, + { "px": [544,0], "src": [272,176], "f": 0, "t": 413, "d": [108,34], "a": 1 }, + { "px": [560,0], "src": [272,176], "f": 0, "t": 413, "d": [108,35], "a": 1 }, + { "px": [576,0], "src": [272,176], "f": 0, "t": 413, "d": [108,36], "a": 1 }, + { "px": [592,0], "src": [272,176], "f": 0, "t": 413, "d": [108,37], "a": 1 }, + { "px": [608,0], "src": [272,176], "f": 0, "t": 413, "d": [108,38], "a": 1 }, + { "px": [624,0], "src": [272,176], "f": 0, "t": 413, "d": [108,39], "a": 1 }, + { "px": [0,16], "src": [272,176], "f": 0, "t": 413, "d": [108,40], "a": 1 }, + { "px": [16,16], "src": [272,176], "f": 0, "t": 413, "d": [108,41], "a": 1 }, + { "px": [32,16], "src": [272,176], "f": 0, "t": 413, "d": [108,42], "a": 1 }, + { "px": [48,16], "src": [272,176], "f": 0, "t": 413, "d": [108,43], "a": 1 }, + { "px": [64,16], "src": [272,176], "f": 0, "t": 413, "d": [108,44], "a": 1 }, + { "px": [80,16], "src": [272,176], "f": 0, "t": 413, "d": [108,45], "a": 1 }, + { "px": [96,16], "src": [272,176], "f": 0, "t": 413, "d": [108,46], "a": 1 }, + { "px": [112,16], "src": [272,176], "f": 0, "t": 413, "d": [108,47], "a": 1 }, + { "px": [128,16], "src": [272,176], "f": 0, "t": 413, "d": [108,48], "a": 1 }, + { "px": [144,16], "src": [272,176], "f": 0, "t": 413, "d": [108,49], "a": 1 }, + { "px": [160,16], "src": [272,176], "f": 0, "t": 413, "d": [108,50], "a": 1 }, + { "px": [176,16], "src": [272,176], "f": 0, "t": 413, "d": [108,51], "a": 1 }, + { "px": [192,16], "src": [272,176], "f": 0, "t": 413, "d": [108,52], "a": 1 }, + { "px": [208,16], "src": [272,176], "f": 0, "t": 413, "d": [108,53], "a": 1 }, + { "px": [224,16], "src": [272,176], "f": 0, "t": 413, "d": [108,54], "a": 1 }, + { "px": [240,16], "src": [272,176], "f": 0, "t": 413, "d": [108,55], "a": 1 }, + { "px": [256,16], "src": [272,176], "f": 0, "t": 413, "d": [108,56], "a": 1 }, + { "px": [272,16], "src": [272,176], "f": 0, "t": 413, "d": [108,57], "a": 1 }, + { "px": [288,16], "src": [272,176], "f": 0, "t": 413, "d": [108,58], "a": 1 }, + { "px": [304,16], "src": [272,176], "f": 0, "t": 413, "d": [108,59], "a": 1 }, + { "px": [320,16], "src": [272,176], "f": 0, "t": 413, "d": [108,60], "a": 1 }, + { "px": [336,16], "src": [272,176], "f": 0, "t": 413, "d": [108,61], "a": 1 }, + { "px": [352,16], "src": [272,176], "f": 0, "t": 413, "d": [108,62], "a": 1 }, + { "px": [368,16], "src": [272,176], "f": 0, "t": 413, "d": [108,63], "a": 1 }, + { "px": [384,16], "src": [272,176], "f": 0, "t": 413, "d": [108,64], "a": 1 }, + { "px": [400,16], "src": [272,176], "f": 0, "t": 413, "d": [108,65], "a": 1 }, + { "px": [416,16], "src": [272,176], "f": 0, "t": 413, "d": [108,66], "a": 1 }, + { "px": [528,16], "src": [272,176], "f": 0, "t": 413, "d": [108,73], "a": 1 }, + { "px": [544,16], "src": [272,176], "f": 0, "t": 413, "d": [108,74], "a": 1 }, + { "px": [560,16], "src": [272,176], "f": 0, "t": 413, "d": [108,75], "a": 1 }, + { "px": [576,16], "src": [272,176], "f": 0, "t": 413, "d": [108,76], "a": 1 }, + { "px": [592,16], "src": [272,176], "f": 0, "t": 413, "d": [108,77], "a": 1 }, + { "px": [608,16], "src": [272,176], "f": 0, "t": 413, "d": [108,78], "a": 1 }, + { "px": [624,16], "src": [272,176], "f": 0, "t": 413, "d": [108,79], "a": 1 }, + { "px": [0,32], "src": [272,176], "f": 0, "t": 413, "d": [108,80], "a": 1 }, + { "px": [16,32], "src": [272,176], "f": 0, "t": 413, "d": [108,81], "a": 1 }, + { "px": [32,32], "src": [272,176], "f": 0, "t": 413, "d": [108,82], "a": 1 }, + { "px": [48,32], "src": [272,176], "f": 0, "t": 413, "d": [108,83], "a": 1 }, + { "px": [64,32], "src": [272,176], "f": 0, "t": 413, "d": [108,84], "a": 1 }, + { "px": [80,32], "src": [272,176], "f": 0, "t": 413, "d": [108,85], "a": 1 }, + { "px": [96,32], "src": [272,176], "f": 0, "t": 413, "d": [108,86], "a": 1 }, + { "px": [112,32], "src": [272,176], "f": 0, "t": 413, "d": [108,87], "a": 1 }, + { "px": [128,32], "src": [272,176], "f": 0, "t": 413, "d": [108,88], "a": 1 }, + { "px": [144,32], "src": [272,176], "f": 0, "t": 413, "d": [108,89], "a": 1 }, + { "px": [160,32], "src": [272,176], "f": 0, "t": 413, "d": [108,90], "a": 1 }, + { "px": [176,32], "src": [272,176], "f": 0, "t": 413, "d": [108,91], "a": 1 }, + { "px": [192,32], "src": [272,176], "f": 0, "t": 413, "d": [108,92], "a": 1 }, + { "px": [208,32], "src": [272,176], "f": 0, "t": 413, "d": [108,93], "a": 1 }, + { "px": [224,32], "src": [272,176], "f": 0, "t": 413, "d": [108,94], "a": 1 }, + { "px": [240,32], "src": [272,176], "f": 0, "t": 413, "d": [108,95], "a": 1 }, + { "px": [256,32], "src": [272,176], "f": 0, "t": 413, "d": [108,96], "a": 1 }, + { "px": [272,32], "src": [272,176], "f": 0, "t": 413, "d": [108,97], "a": 1 }, + { "px": [288,32], "src": [272,176], "f": 0, "t": 413, "d": [108,98], "a": 1 }, + { "px": [304,32], "src": [272,176], "f": 0, "t": 413, "d": [108,99], "a": 1 }, + { "px": [320,32], "src": [272,176], "f": 0, "t": 413, "d": [108,100], "a": 1 }, + { "px": [336,32], "src": [272,176], "f": 0, "t": 413, "d": [108,101], "a": 1 }, + { "px": [352,32], "src": [272,176], "f": 0, "t": 413, "d": [108,102], "a": 1 }, + { "px": [368,32], "src": [272,176], "f": 0, "t": 413, "d": [108,103], "a": 1 }, + { "px": [384,32], "src": [272,176], "f": 0, "t": 413, "d": [108,104], "a": 1 }, + { "px": [400,32], "src": [272,176], "f": 0, "t": 413, "d": [108,105], "a": 1 }, + { "px": [416,32], "src": [272,176], "f": 0, "t": 413, "d": [108,106], "a": 1 }, + { "px": [560,32], "src": [272,176], "f": 0, "t": 413, "d": [108,115], "a": 1 }, + { "px": [576,32], "src": [272,176], "f": 0, "t": 413, "d": [108,116], "a": 1 }, + { "px": [592,32], "src": [272,176], "f": 0, "t": 413, "d": [108,117], "a": 1 }, + { "px": [608,32], "src": [272,176], "f": 0, "t": 413, "d": [108,118], "a": 1 }, + { "px": [624,32], "src": [272,176], "f": 0, "t": 413, "d": [108,119], "a": 1 }, + { "px": [0,48], "src": [272,176], "f": 0, "t": 413, "d": [108,120], "a": 1 }, + { "px": [16,48], "src": [272,176], "f": 0, "t": 413, "d": [108,121], "a": 1 }, + { "px": [32,48], "src": [272,176], "f": 0, "t": 413, "d": [108,122], "a": 1 }, + { "px": [48,48], "src": [272,176], "f": 0, "t": 413, "d": [108,123], "a": 1 }, + { "px": [64,48], "src": [272,176], "f": 0, "t": 413, "d": [108,124], "a": 1 }, + { "px": [272,48], "src": [272,176], "f": 0, "t": 413, "d": [108,137], "a": 1 }, + { "px": [288,48], "src": [272,176], "f": 0, "t": 413, "d": [108,138], "a": 1 }, + { "px": [304,48], "src": [272,176], "f": 0, "t": 413, "d": [108,139], "a": 1 }, + { "px": [320,48], "src": [272,176], "f": 0, "t": 413, "d": [108,140], "a": 1 }, + { "px": [336,48], "src": [272,176], "f": 0, "t": 413, "d": [108,141], "a": 1 }, + { "px": [352,48], "src": [272,176], "f": 0, "t": 413, "d": [108,142], "a": 1 }, + { "px": [368,48], "src": [272,176], "f": 0, "t": 413, "d": [108,143], "a": 1 }, + { "px": [384,48], "src": [272,176], "f": 0, "t": 413, "d": [108,144], "a": 1 }, + { "px": [400,48], "src": [272,176], "f": 0, "t": 413, "d": [108,145], "a": 1 }, + { "px": [416,48], "src": [272,176], "f": 0, "t": 413, "d": [108,146], "a": 1 }, + { "px": [576,48], "src": [272,176], "f": 0, "t": 413, "d": [108,156], "a": 1 }, + { "px": [592,48], "src": [272,176], "f": 0, "t": 413, "d": [108,157], "a": 1 }, + { "px": [608,48], "src": [272,176], "f": 0, "t": 413, "d": [108,158], "a": 1 }, + { "px": [624,48], "src": [272,176], "f": 0, "t": 413, "d": [108,159], "a": 1 }, + { "px": [0,64], "src": [272,176], "f": 0, "t": 413, "d": [108,160], "a": 1 }, + { "px": [16,64], "src": [272,176], "f": 0, "t": 413, "d": [108,161], "a": 1 }, + { "px": [32,64], "src": [272,176], "f": 0, "t": 413, "d": [108,162], "a": 1 }, + { "px": [48,64], "src": [272,176], "f": 0, "t": 413, "d": [108,163], "a": 1 }, + { "px": [304,64], "src": [272,176], "f": 0, "t": 413, "d": [108,179], "a": 1 }, + { "px": [320,64], "src": [272,176], "f": 0, "t": 413, "d": [108,180], "a": 1 }, + { "px": [336,64], "src": [272,176], "f": 0, "t": 413, "d": [108,181], "a": 1 }, + { "px": [352,64], "src": [272,176], "f": 0, "t": 413, "d": [108,182], "a": 1 }, + { "px": [368,64], "src": [272,176], "f": 0, "t": 413, "d": [108,183], "a": 1 }, + { "px": [384,64], "src": [272,176], "f": 0, "t": 413, "d": [108,184], "a": 1 }, + { "px": [400,64], "src": [272,176], "f": 0, "t": 413, "d": [108,185], "a": 1 }, + { "px": [416,64], "src": [272,176], "f": 0, "t": 413, "d": [108,186], "a": 1 }, + { "px": [576,64], "src": [272,176], "f": 0, "t": 413, "d": [108,196], "a": 1 }, + { "px": [592,64], "src": [272,176], "f": 0, "t": 413, "d": [108,197], "a": 1 }, + { "px": [608,64], "src": [272,176], "f": 0, "t": 413, "d": [108,198], "a": 1 }, + { "px": [624,64], "src": [272,176], "f": 0, "t": 413, "d": [108,199], "a": 1 }, + { "px": [0,80], "src": [272,176], "f": 0, "t": 413, "d": [108,200], "a": 1 }, + { "px": [16,80], "src": [272,176], "f": 0, "t": 413, "d": [108,201], "a": 1 }, + { "px": [32,80], "src": [272,176], "f": 0, "t": 413, "d": [108,202], "a": 1 }, + { "px": [48,80], "src": [272,176], "f": 0, "t": 413, "d": [108,203], "a": 1 }, + { "px": [384,80], "src": [272,176], "f": 0, "t": 413, "d": [108,224], "a": 1 }, + { "px": [400,80], "src": [272,176], "f": 0, "t": 413, "d": [108,225], "a": 1 }, + { "px": [416,80], "src": [272,176], "f": 0, "t": 413, "d": [108,226], "a": 1 }, + { "px": [432,80], "src": [272,176], "f": 0, "t": 413, "d": [108,227], "a": 1 }, + { "px": [448,80], "src": [272,176], "f": 0, "t": 413, "d": [108,228], "a": 1 }, + { "px": [576,80], "src": [272,176], "f": 0, "t": 413, "d": [108,236], "a": 1 }, + { "px": [592,80], "src": [272,176], "f": 0, "t": 413, "d": [108,237], "a": 1 }, + { "px": [608,80], "src": [272,176], "f": 0, "t": 413, "d": [108,238], "a": 1 }, + { "px": [624,80], "src": [272,176], "f": 0, "t": 413, "d": [108,239], "a": 1 }, + { "px": [0,96], "src": [272,176], "f": 0, "t": 413, "d": [108,240], "a": 1 }, + { "px": [16,96], "src": [272,176], "f": 0, "t": 413, "d": [108,241], "a": 1 }, + { "px": [32,96], "src": [272,176], "f": 0, "t": 413, "d": [108,242], "a": 1 }, + { "px": [48,96], "src": [272,176], "f": 0, "t": 413, "d": [108,243], "a": 1 }, + { "px": [448,96], "src": [272,176], "f": 0, "t": 413, "d": [108,268], "a": 1 }, + { "px": [464,96], "src": [272,176], "f": 0, "t": 413, "d": [108,269], "a": 1 }, + { "px": [480,96], "src": [272,176], "f": 0, "t": 413, "d": [108,270], "a": 1 }, + { "px": [560,96], "src": [272,176], "f": 0, "t": 413, "d": [108,275], "a": 1 }, + { "px": [576,96], "src": [272,176], "f": 0, "t": 413, "d": [108,276], "a": 1 }, + { "px": [592,96], "src": [272,176], "f": 0, "t": 413, "d": [108,277], "a": 1 }, + { "px": [608,96], "src": [272,176], "f": 0, "t": 413, "d": [108,278], "a": 1 }, + { "px": [624,96], "src": [272,176], "f": 0, "t": 413, "d": [108,279], "a": 1 }, + { "px": [0,112], "src": [272,176], "f": 0, "t": 413, "d": [108,280], "a": 1 }, + { "px": [16,112], "src": [272,176], "f": 0, "t": 413, "d": [108,281], "a": 1 }, + { "px": [32,112], "src": [272,176], "f": 0, "t": 413, "d": [108,282], "a": 1 }, + { "px": [48,112], "src": [272,176], "f": 0, "t": 413, "d": [108,283], "a": 1 }, + { "px": [528,112], "src": [272,176], "f": 0, "t": 413, "d": [108,313], "a": 1 }, + { "px": [544,112], "src": [272,176], "f": 0, "t": 413, "d": [108,314], "a": 1 }, + { "px": [560,112], "src": [272,176], "f": 0, "t": 413, "d": [108,315], "a": 1 }, + { "px": [576,112], "src": [272,176], "f": 0, "t": 413, "d": [108,316], "a": 1 }, + { "px": [592,112], "src": [272,176], "f": 0, "t": 413, "d": [108,317], "a": 1 }, + { "px": [608,112], "src": [272,176], "f": 0, "t": 413, "d": [108,318], "a": 1 }, + { "px": [624,112], "src": [272,176], "f": 0, "t": 413, "d": [108,319], "a": 1 }, + { "px": [0,128], "src": [272,176], "f": 0, "t": 413, "d": [108,320], "a": 1 }, + { "px": [16,128], "src": [272,176], "f": 0, "t": 413, "d": [108,321], "a": 1 }, + { "px": [32,128], "src": [272,176], "f": 0, "t": 413, "d": [108,322], "a": 1 }, + { "px": [48,128], "src": [272,176], "f": 0, "t": 413, "d": [108,323], "a": 1 }, + { "px": [64,128], "src": [272,176], "f": 0, "t": 413, "d": [108,324], "a": 1 }, + { "px": [544,128], "src": [272,176], "f": 0, "t": 413, "d": [108,354], "a": 1 }, + { "px": [560,128], "src": [272,176], "f": 0, "t": 413, "d": [108,355], "a": 1 }, + { "px": [576,128], "src": [272,176], "f": 0, "t": 413, "d": [108,356], "a": 1 }, + { "px": [592,128], "src": [272,176], "f": 0, "t": 413, "d": [108,357], "a": 1 }, + { "px": [608,128], "src": [272,176], "f": 0, "t": 413, "d": [108,358], "a": 1 }, + { "px": [624,128], "src": [272,176], "f": 0, "t": 413, "d": [108,359], "a": 1 }, + { "px": [0,144], "src": [272,176], "f": 0, "t": 413, "d": [108,360], "a": 1 }, + { "px": [16,144], "src": [272,176], "f": 0, "t": 413, "d": [108,361], "a": 1 }, + { "px": [32,144], "src": [272,176], "f": 0, "t": 413, "d": [108,362], "a": 1 }, + { "px": [48,144], "src": [272,176], "f": 0, "t": 413, "d": [108,363], "a": 1 }, + { "px": [64,144], "src": [272,176], "f": 0, "t": 413, "d": [108,364], "a": 1 }, + { "px": [80,144], "src": [272,176], "f": 0, "t": 413, "d": [108,365], "a": 1 }, + { "px": [544,144], "src": [272,176], "f": 0, "t": 413, "d": [108,394], "a": 1 }, + { "px": [560,144], "src": [272,176], "f": 0, "t": 413, "d": [108,395], "a": 1 }, + { "px": [576,144], "src": [272,176], "f": 0, "t": 413, "d": [108,396], "a": 1 }, + { "px": [592,144], "src": [272,176], "f": 0, "t": 413, "d": [108,397], "a": 1 }, + { "px": [608,144], "src": [272,176], "f": 0, "t": 413, "d": [108,398], "a": 1 }, + { "px": [624,144], "src": [272,176], "f": 0, "t": 413, "d": [108,399], "a": 1 }, + { "px": [0,160], "src": [272,176], "f": 0, "t": 413, "d": [108,400], "a": 1 }, + { "px": [16,160], "src": [272,176], "f": 0, "t": 413, "d": [108,401], "a": 1 }, + { "px": [32,160], "src": [272,176], "f": 0, "t": 413, "d": [108,402], "a": 1 }, + { "px": [48,160], "src": [272,176], "f": 0, "t": 413, "d": [108,403], "a": 1 }, + { "px": [64,160], "src": [272,176], "f": 0, "t": 413, "d": [108,404], "a": 1 }, + { "px": [544,160], "src": [272,176], "f": 0, "t": 413, "d": [108,434], "a": 1 }, + { "px": [560,160], "src": [272,176], "f": 0, "t": 413, "d": [108,435], "a": 1 }, + { "px": [576,160], "src": [272,176], "f": 0, "t": 413, "d": [108,436], "a": 1 }, + { "px": [592,160], "src": [272,176], "f": 0, "t": 413, "d": [108,437], "a": 1 }, + { "px": [608,160], "src": [272,176], "f": 0, "t": 413, "d": [108,438], "a": 1 }, + { "px": [624,160], "src": [272,176], "f": 0, "t": 413, "d": [108,439], "a": 1 }, + { "px": [0,176], "src": [272,176], "f": 0, "t": 413, "d": [108,440], "a": 1 }, + { "px": [16,176], "src": [272,176], "f": 0, "t": 413, "d": [108,441], "a": 1 }, + { "px": [32,176], "src": [272,176], "f": 0, "t": 413, "d": [108,442], "a": 1 }, + { "px": [48,176], "src": [272,176], "f": 0, "t": 413, "d": [108,443], "a": 1 }, + { "px": [64,176], "src": [272,176], "f": 0, "t": 413, "d": [108,444], "a": 1 }, + { "px": [544,176], "src": [272,176], "f": 0, "t": 413, "d": [108,474], "a": 1 }, + { "px": [560,176], "src": [272,176], "f": 0, "t": 413, "d": [108,475], "a": 1 }, + { "px": [576,176], "src": [272,176], "f": 0, "t": 413, "d": [108,476], "a": 1 }, + { "px": [592,176], "src": [272,176], "f": 0, "t": 413, "d": [108,477], "a": 1 }, + { "px": [608,176], "src": [272,176], "f": 0, "t": 413, "d": [108,478], "a": 1 }, + { "px": [624,176], "src": [272,176], "f": 0, "t": 413, "d": [108,479], "a": 1 }, + { "px": [0,192], "src": [272,176], "f": 0, "t": 413, "d": [108,480], "a": 1 }, + { "px": [16,192], "src": [272,176], "f": 0, "t": 413, "d": [108,481], "a": 1 }, + { "px": [32,192], "src": [272,176], "f": 0, "t": 413, "d": [108,482], "a": 1 }, + { "px": [48,192], "src": [272,176], "f": 0, "t": 413, "d": [108,483], "a": 1 }, + { "px": [64,192], "src": [272,176], "f": 0, "t": 413, "d": [108,484], "a": 1 }, + { "px": [448,192], "src": [272,176], "f": 0, "t": 413, "d": [108,508], "a": 1 }, + { "px": [464,192], "src": [272,176], "f": 0, "t": 413, "d": [108,509], "a": 1 }, + { "px": [544,192], "src": [272,176], "f": 0, "t": 413, "d": [108,514], "a": 1 }, + { "px": [560,192], "src": [272,176], "f": 0, "t": 413, "d": [108,515], "a": 1 }, + { "px": [576,192], "src": [272,176], "f": 0, "t": 413, "d": [108,516], "a": 1 }, + { "px": [592,192], "src": [272,176], "f": 0, "t": 413, "d": [108,517], "a": 1 }, + { "px": [608,192], "src": [272,176], "f": 0, "t": 413, "d": [108,518], "a": 1 }, + { "px": [624,192], "src": [272,176], "f": 0, "t": 413, "d": [108,519], "a": 1 }, + { "px": [0,208], "src": [272,176], "f": 0, "t": 413, "d": [108,520], "a": 1 }, + { "px": [16,208], "src": [272,176], "f": 0, "t": 413, "d": [108,521], "a": 1 }, + { "px": [32,208], "src": [272,176], "f": 0, "t": 413, "d": [108,522], "a": 1 }, + { "px": [48,208], "src": [272,176], "f": 0, "t": 413, "d": [108,523], "a": 1 }, + { "px": [64,208], "src": [272,176], "f": 0, "t": 413, "d": [108,524], "a": 1 }, + { "px": [448,208], "src": [272,176], "f": 0, "t": 413, "d": [108,548], "a": 1 }, + { "px": [464,208], "src": [272,176], "f": 0, "t": 413, "d": [108,549], "a": 1 }, + { "px": [480,208], "src": [272,176], "f": 0, "t": 413, "d": [108,550], "a": 1 }, + { "px": [496,208], "src": [272,176], "f": 0, "t": 413, "d": [108,551], "a": 1 }, + { "px": [512,208], "src": [272,176], "f": 0, "t": 413, "d": [108,552], "a": 1 }, + { "px": [528,208], "src": [272,176], "f": 0, "t": 413, "d": [108,553], "a": 1 }, + { "px": [544,208], "src": [272,176], "f": 0, "t": 413, "d": [108,554], "a": 1 }, + { "px": [560,208], "src": [272,176], "f": 0, "t": 413, "d": [108,555], "a": 1 }, + { "px": [576,208], "src": [272,176], "f": 0, "t": 413, "d": [108,556], "a": 1 }, + { "px": [592,208], "src": [272,176], "f": 0, "t": 413, "d": [108,557], "a": 1 }, + { "px": [608,208], "src": [272,176], "f": 0, "t": 413, "d": [108,558], "a": 1 }, + { "px": [624,208], "src": [272,176], "f": 0, "t": 413, "d": [108,559], "a": 1 }, + { "px": [0,224], "src": [272,176], "f": 0, "t": 413, "d": [108,560], "a": 1 }, + { "px": [16,224], "src": [272,176], "f": 0, "t": 413, "d": [108,561], "a": 1 }, + { "px": [32,224], "src": [272,176], "f": 0, "t": 413, "d": [108,562], "a": 1 }, + { "px": [48,224], "src": [272,176], "f": 0, "t": 413, "d": [108,563], "a": 1 }, + { "px": [64,224], "src": [272,176], "f": 0, "t": 413, "d": [108,564], "a": 1 }, + { "px": [400,224], "src": [272,176], "f": 0, "t": 413, "d": [108,585], "a": 1 }, + { "px": [416,224], "src": [272,176], "f": 0, "t": 413, "d": [108,586], "a": 1 }, + { "px": [432,224], "src": [272,176], "f": 0, "t": 413, "d": [108,587], "a": 1 }, + { "px": [448,224], "src": [272,176], "f": 0, "t": 413, "d": [108,588], "a": 1 }, + { "px": [464,224], "src": [272,176], "f": 0, "t": 413, "d": [108,589], "a": 1 }, + { "px": [480,224], "src": [272,176], "f": 0, "t": 413, "d": [108,590], "a": 1 }, + { "px": [496,224], "src": [272,176], "f": 0, "t": 413, "d": [108,591], "a": 1 }, + { "px": [512,224], "src": [272,176], "f": 0, "t": 413, "d": [108,592], "a": 1 }, + { "px": [528,224], "src": [272,176], "f": 0, "t": 413, "d": [108,593], "a": 1 }, + { "px": [544,224], "src": [272,176], "f": 0, "t": 413, "d": [108,594], "a": 1 }, + { "px": [560,224], "src": [272,176], "f": 0, "t": 413, "d": [108,595], "a": 1 }, + { "px": [576,224], "src": [272,176], "f": 0, "t": 413, "d": [108,596], "a": 1 }, + { "px": [592,224], "src": [272,176], "f": 0, "t": 413, "d": [108,597], "a": 1 }, + { "px": [608,224], "src": [272,176], "f": 0, "t": 413, "d": [108,598], "a": 1 }, + { "px": [624,224], "src": [272,176], "f": 0, "t": 413, "d": [108,599], "a": 1 }, + { "px": [0,240], "src": [272,176], "f": 0, "t": 413, "d": [108,600], "a": 1 }, + { "px": [16,240], "src": [272,176], "f": 0, "t": 413, "d": [108,601], "a": 1 }, + { "px": [32,240], "src": [272,176], "f": 0, "t": 413, "d": [108,602], "a": 1 }, + { "px": [48,240], "src": [272,176], "f": 0, "t": 413, "d": [108,603], "a": 1 }, + { "px": [64,240], "src": [272,176], "f": 0, "t": 413, "d": [108,604], "a": 1 }, + { "px": [80,240], "src": [272,176], "f": 0, "t": 413, "d": [108,605], "a": 1 }, + { "px": [96,240], "src": [272,176], "f": 0, "t": 413, "d": [108,606], "a": 1 }, + { "px": [112,240], "src": [272,176], "f": 0, "t": 413, "d": [108,607], "a": 1 }, + { "px": [128,240], "src": [272,176], "f": 0, "t": 413, "d": [108,608], "a": 1 }, + { "px": [144,240], "src": [272,176], "f": 0, "t": 413, "d": [108,609], "a": 1 }, + { "px": [160,240], "src": [272,176], "f": 0, "t": 413, "d": [108,610], "a": 1 }, + { "px": [176,240], "src": [272,176], "f": 0, "t": 413, "d": [108,611], "a": 1 }, + { "px": [192,240], "src": [272,176], "f": 0, "t": 413, "d": [108,612], "a": 1 }, + { "px": [208,240], "src": [272,176], "f": 0, "t": 413, "d": [108,613], "a": 1 }, + { "px": [224,240], "src": [272,176], "f": 0, "t": 413, "d": [108,614], "a": 1 }, + { "px": [240,240], "src": [272,176], "f": 0, "t": 413, "d": [108,615], "a": 1 }, + { "px": [256,240], "src": [272,176], "f": 0, "t": 413, "d": [108,616], "a": 1 }, + { "px": [272,240], "src": [272,176], "f": 0, "t": 413, "d": [108,617], "a": 1 }, + { "px": [288,240], "src": [272,176], "f": 0, "t": 413, "d": [108,618], "a": 1 }, + { "px": [304,240], "src": [272,176], "f": 0, "t": 413, "d": [108,619], "a": 1 }, + { "px": [320,240], "src": [272,176], "f": 0, "t": 413, "d": [108,620], "a": 1 }, + { "px": [336,240], "src": [272,176], "f": 0, "t": 413, "d": [108,621], "a": 1 }, + { "px": [352,240], "src": [272,176], "f": 0, "t": 413, "d": [108,622], "a": 1 }, + { "px": [368,240], "src": [272,176], "f": 0, "t": 413, "d": [108,623], "a": 1 }, + { "px": [384,240], "src": [272,176], "f": 0, "t": 413, "d": [108,624], "a": 1 }, + { "px": [400,240], "src": [272,176], "f": 0, "t": 413, "d": [108,625], "a": 1 }, + { "px": [416,240], "src": [272,176], "f": 0, "t": 413, "d": [108,626], "a": 1 }, + { "px": [432,240], "src": [272,176], "f": 0, "t": 413, "d": [108,627], "a": 1 }, + { "px": [448,240], "src": [272,176], "f": 0, "t": 413, "d": [108,628], "a": 1 }, + { "px": [464,240], "src": [272,176], "f": 0, "t": 413, "d": [108,629], "a": 1 }, + { "px": [480,240], "src": [272,176], "f": 0, "t": 413, "d": [108,630], "a": 1 }, + { "px": [496,240], "src": [272,176], "f": 0, "t": 413, "d": [108,631], "a": 1 }, + { "px": [512,240], "src": [272,176], "f": 0, "t": 413, "d": [108,632], "a": 1 }, + { "px": [528,240], "src": [272,176], "f": 0, "t": 413, "d": [108,633], "a": 1 }, + { "px": [544,240], "src": [272,176], "f": 0, "t": 413, "d": [108,634], "a": 1 }, + { "px": [560,240], "src": [272,176], "f": 0, "t": 413, "d": [108,635], "a": 1 }, + { "px": [576,240], "src": [272,176], "f": 0, "t": 413, "d": [108,636], "a": 1 }, + { "px": [592,240], "src": [272,176], "f": 0, "t": 413, "d": [108,637], "a": 1 }, + { "px": [608,240], "src": [272,176], "f": 0, "t": 413, "d": [108,638], "a": 1 }, + { "px": [624,240], "src": [272,176], "f": 0, "t": 413, "d": [108,639], "a": 1 }, + { "px": [0,256], "src": [272,176], "f": 0, "t": 413, "d": [108,640], "a": 1 }, + { "px": [16,256], "src": [272,176], "f": 0, "t": 413, "d": [108,641], "a": 1 }, + { "px": [32,256], "src": [272,176], "f": 0, "t": 413, "d": [108,642], "a": 1 }, + { "px": [48,256], "src": [272,176], "f": 0, "t": 413, "d": [108,643], "a": 1 }, + { "px": [64,256], "src": [272,176], "f": 0, "t": 413, "d": [108,644], "a": 1 }, + { "px": [80,256], "src": [272,176], "f": 0, "t": 413, "d": [108,645], "a": 1 }, + { "px": [96,256], "src": [272,176], "f": 0, "t": 413, "d": [108,646], "a": 1 }, + { "px": [112,256], "src": [272,176], "f": 0, "t": 413, "d": [108,647], "a": 1 }, + { "px": [128,256], "src": [272,176], "f": 0, "t": 413, "d": [108,648], "a": 1 }, + { "px": [144,256], "src": [272,176], "f": 0, "t": 413, "d": [108,649], "a": 1 }, + { "px": [160,256], "src": [272,176], "f": 0, "t": 413, "d": [108,650], "a": 1 }, + { "px": [176,256], "src": [272,176], "f": 0, "t": 413, "d": [108,651], "a": 1 }, + { "px": [192,256], "src": [272,176], "f": 0, "t": 413, "d": [108,652], "a": 1 }, + { "px": [208,256], "src": [272,176], "f": 0, "t": 413, "d": [108,653], "a": 1 }, + { "px": [224,256], "src": [272,176], "f": 0, "t": 413, "d": [108,654], "a": 1 }, + { "px": [240,256], "src": [272,176], "f": 0, "t": 413, "d": [108,655], "a": 1 }, + { "px": [256,256], "src": [272,176], "f": 0, "t": 413, "d": [108,656], "a": 1 }, + { "px": [272,256], "src": [272,176], "f": 0, "t": 413, "d": [108,657], "a": 1 }, + { "px": [288,256], "src": [272,176], "f": 0, "t": 413, "d": [108,658], "a": 1 }, + { "px": [304,256], "src": [272,176], "f": 0, "t": 413, "d": [108,659], "a": 1 }, + { "px": [320,256], "src": [272,176], "f": 0, "t": 413, "d": [108,660], "a": 1 }, + { "px": [336,256], "src": [272,176], "f": 0, "t": 413, "d": [108,661], "a": 1 }, + { "px": [352,256], "src": [272,176], "f": 0, "t": 413, "d": [108,662], "a": 1 }, + { "px": [368,256], "src": [272,176], "f": 0, "t": 413, "d": [108,663], "a": 1 }, + { "px": [384,256], "src": [272,176], "f": 0, "t": 413, "d": [108,664], "a": 1 }, + { "px": [400,256], "src": [272,176], "f": 0, "t": 413, "d": [108,665], "a": 1 }, + { "px": [416,256], "src": [272,176], "f": 0, "t": 413, "d": [108,666], "a": 1 }, + { "px": [432,256], "src": [272,176], "f": 0, "t": 413, "d": [108,667], "a": 1 }, + { "px": [448,256], "src": [272,176], "f": 0, "t": 413, "d": [108,668], "a": 1 }, + { "px": [464,256], "src": [272,176], "f": 0, "t": 413, "d": [108,669], "a": 1 }, + { "px": [480,256], "src": [272,176], "f": 0, "t": 413, "d": [108,670], "a": 1 }, + { "px": [496,256], "src": [272,176], "f": 0, "t": 413, "d": [108,671], "a": 1 }, + { "px": [512,256], "src": [272,176], "f": 0, "t": 413, "d": [108,672], "a": 1 }, + { "px": [528,256], "src": [272,176], "f": 0, "t": 413, "d": [108,673], "a": 1 }, + { "px": [544,256], "src": [272,176], "f": 0, "t": 413, "d": [108,674], "a": 1 }, + { "px": [560,256], "src": [272,176], "f": 0, "t": 413, "d": [108,675], "a": 1 }, + { "px": [576,256], "src": [272,176], "f": 0, "t": 413, "d": [108,676], "a": 1 }, + { "px": [592,256], "src": [272,176], "f": 0, "t": 413, "d": [108,677], "a": 1 }, + { "px": [608,256], "src": [272,176], "f": 0, "t": 413, "d": [108,678], "a": 1 }, + { "px": [624,256], "src": [272,176], "f": 0, "t": 413, "d": [108,679], "a": 1 }, + { "px": [0,272], "src": [272,176], "f": 0, "t": 413, "d": [108,680], "a": 1 }, + { "px": [16,272], "src": [272,176], "f": 0, "t": 413, "d": [108,681], "a": 1 }, + { "px": [32,272], "src": [272,176], "f": 0, "t": 413, "d": [108,682], "a": 1 }, + { "px": [48,272], "src": [272,176], "f": 0, "t": 413, "d": [108,683], "a": 1 }, + { "px": [64,272], "src": [272,176], "f": 0, "t": 413, "d": [108,684], "a": 1 }, + { "px": [80,272], "src": [272,176], "f": 0, "t": 413, "d": [108,685], "a": 1 }, + { "px": [96,272], "src": [272,176], "f": 0, "t": 413, "d": [108,686], "a": 1 }, + { "px": [112,272], "src": [272,176], "f": 0, "t": 413, "d": [108,687], "a": 1 }, + { "px": [128,272], "src": [272,176], "f": 0, "t": 413, "d": [108,688], "a": 1 }, + { "px": [144,272], "src": [272,176], "f": 0, "t": 413, "d": [108,689], "a": 1 }, + { "px": [160,272], "src": [272,176], "f": 0, "t": 413, "d": [108,690], "a": 1 }, + { "px": [176,272], "src": [272,176], "f": 0, "t": 413, "d": [108,691], "a": 1 }, + { "px": [192,272], "src": [272,176], "f": 0, "t": 413, "d": [108,692], "a": 1 }, + { "px": [208,272], "src": [272,176], "f": 0, "t": 413, "d": [108,693], "a": 1 }, + { "px": [224,272], "src": [272,176], "f": 0, "t": 413, "d": [108,694], "a": 1 }, + { "px": [240,272], "src": [272,176], "f": 0, "t": 413, "d": [108,695], "a": 1 }, + { "px": [256,272], "src": [272,176], "f": 0, "t": 413, "d": [108,696], "a": 1 }, + { "px": [272,272], "src": [272,176], "f": 0, "t": 413, "d": [108,697], "a": 1 }, + { "px": [288,272], "src": [272,176], "f": 0, "t": 413, "d": [108,698], "a": 1 }, + { "px": [304,272], "src": [272,176], "f": 0, "t": 413, "d": [108,699], "a": 1 }, + { "px": [320,272], "src": [272,176], "f": 0, "t": 413, "d": [108,700], "a": 1 }, + { "px": [336,272], "src": [272,176], "f": 0, "t": 413, "d": [108,701], "a": 1 }, + { "px": [352,272], "src": [272,176], "f": 0, "t": 413, "d": [108,702], "a": 1 }, + { "px": [368,272], "src": [272,176], "f": 0, "t": 413, "d": [108,703], "a": 1 }, + { "px": [384,272], "src": [272,176], "f": 0, "t": 413, "d": [108,704], "a": 1 }, + { "px": [400,272], "src": [272,176], "f": 0, "t": 413, "d": [108,705], "a": 1 }, + { "px": [416,272], "src": [272,176], "f": 0, "t": 413, "d": [108,706], "a": 1 }, + { "px": [432,272], "src": [272,176], "f": 0, "t": 413, "d": [108,707], "a": 1 }, + { "px": [448,272], "src": [272,176], "f": 0, "t": 413, "d": [108,708], "a": 1 }, + { "px": [464,272], "src": [272,176], "f": 0, "t": 413, "d": [108,709], "a": 1 }, + { "px": [480,272], "src": [272,176], "f": 0, "t": 413, "d": [108,710], "a": 1 }, + { "px": [496,272], "src": [272,176], "f": 0, "t": 413, "d": [108,711], "a": 1 }, + { "px": [512,272], "src": [272,176], "f": 0, "t": 413, "d": [108,712], "a": 1 }, + { "px": [528,272], "src": [272,176], "f": 0, "t": 413, "d": [108,713], "a": 1 }, + { "px": [544,272], "src": [272,176], "f": 0, "t": 413, "d": [108,714], "a": 1 }, + { "px": [560,272], "src": [272,176], "f": 0, "t": 413, "d": [108,715], "a": 1 }, + { "px": [576,272], "src": [272,176], "f": 0, "t": 413, "d": [108,716], "a": 1 }, + { "px": [592,272], "src": [272,176], "f": 0, "t": 413, "d": [108,717], "a": 1 }, + { "px": [608,272], "src": [272,176], "f": 0, "t": 413, "d": [108,718], "a": 1 }, + { "px": [624,272], "src": [272,176], "f": 0, "t": 413, "d": [108,719], "a": 1 }, + { "px": [0,288], "src": [272,176], "f": 0, "t": 413, "d": [108,720], "a": 1 }, + { "px": [16,288], "src": [272,176], "f": 0, "t": 413, "d": [108,721], "a": 1 }, + { "px": [32,288], "src": [272,176], "f": 0, "t": 413, "d": [108,722], "a": 1 }, + { "px": [48,288], "src": [272,176], "f": 0, "t": 413, "d": [108,723], "a": 1 }, + { "px": [64,288], "src": [272,176], "f": 0, "t": 413, "d": [108,724], "a": 1 }, + { "px": [80,288], "src": [272,176], "f": 0, "t": 413, "d": [108,725], "a": 1 }, + { "px": [96,288], "src": [272,176], "f": 0, "t": 413, "d": [108,726], "a": 1 }, + { "px": [112,288], "src": [272,176], "f": 0, "t": 413, "d": [108,727], "a": 1 }, + { "px": [128,288], "src": [272,176], "f": 0, "t": 413, "d": [108,728], "a": 1 }, + { "px": [144,288], "src": [272,176], "f": 0, "t": 413, "d": [108,729], "a": 1 }, + { "px": [160,288], "src": [272,176], "f": 0, "t": 413, "d": [108,730], "a": 1 }, + { "px": [176,288], "src": [272,176], "f": 0, "t": 413, "d": [108,731], "a": 1 }, + { "px": [192,288], "src": [272,176], "f": 0, "t": 413, "d": [108,732], "a": 1 }, + { "px": [208,288], "src": [272,176], "f": 0, "t": 413, "d": [108,733], "a": 1 }, + { "px": [224,288], "src": [272,176], "f": 0, "t": 413, "d": [108,734], "a": 1 }, + { "px": [240,288], "src": [272,176], "f": 0, "t": 413, "d": [108,735], "a": 1 }, + { "px": [256,288], "src": [272,176], "f": 0, "t": 413, "d": [108,736], "a": 1 }, + { "px": [272,288], "src": [272,176], "f": 0, "t": 413, "d": [108,737], "a": 1 }, + { "px": [288,288], "src": [272,176], "f": 0, "t": 413, "d": [108,738], "a": 1 }, + { "px": [304,288], "src": [272,176], "f": 0, "t": 413, "d": [108,739], "a": 1 }, + { "px": [320,288], "src": [272,176], "f": 0, "t": 413, "d": [108,740], "a": 1 }, + { "px": [336,288], "src": [272,176], "f": 0, "t": 413, "d": [108,741], "a": 1 }, + { "px": [352,288], "src": [272,176], "f": 0, "t": 413, "d": [108,742], "a": 1 }, + { "px": [368,288], "src": [272,176], "f": 0, "t": 413, "d": [108,743], "a": 1 }, + { "px": [384,288], "src": [272,176], "f": 0, "t": 413, "d": [108,744], "a": 1 }, + { "px": [400,288], "src": [272,176], "f": 0, "t": 413, "d": [108,745], "a": 1 }, + { "px": [416,288], "src": [272,176], "f": 0, "t": 413, "d": [108,746], "a": 1 }, + { "px": [432,288], "src": [272,176], "f": 0, "t": 413, "d": [108,747], "a": 1 }, + { "px": [448,288], "src": [272,176], "f": 0, "t": 413, "d": [108,748], "a": 1 }, + { "px": [464,288], "src": [272,176], "f": 0, "t": 413, "d": [108,749], "a": 1 }, + { "px": [480,288], "src": [272,176], "f": 0, "t": 413, "d": [108,750], "a": 1 }, + { "px": [496,288], "src": [272,176], "f": 0, "t": 413, "d": [108,751], "a": 1 }, + { "px": [512,288], "src": [272,176], "f": 0, "t": 413, "d": [108,752], "a": 1 }, + { "px": [528,288], "src": [272,176], "f": 0, "t": 413, "d": [108,753], "a": 1 }, + { "px": [544,288], "src": [272,176], "f": 0, "t": 413, "d": [108,754], "a": 1 }, + { "px": [560,288], "src": [272,176], "f": 0, "t": 413, "d": [108,755], "a": 1 }, + { "px": [576,288], "src": [272,176], "f": 0, "t": 413, "d": [108,756], "a": 1 }, + { "px": [592,288], "src": [272,176], "f": 0, "t": 413, "d": [108,757], "a": 1 }, + { "px": [608,288], "src": [272,176], "f": 0, "t": 413, "d": [108,758], "a": 1 }, + { "px": [624,288], "src": [272,176], "f": 0, "t": 413, "d": [108,759], "a": 1 }, + { "px": [448,0], "src": [272,192], "f": 0, "t": 449, "d": [109,28], "a": 1 }, + { "px": [496,0], "src": [272,192], "f": 1, "t": 449, "d": [109,31], "a": 1 }, + { "px": [432,16], "src": [272,192], "f": 0, "t": 449, "d": [109,67], "a": 1 }, + { "px": [512,16], "src": [272,192], "f": 1, "t": 449, "d": [109,72], "a": 1 }, + { "px": [544,32], "src": [272,192], "f": 1, "t": 449, "d": [109,114], "a": 1 }, + { "px": [80,48], "src": [272,192], "f": 0, "t": 449, "d": [109,125], "a": 1 }, + { "px": [256,48], "src": [272,192], "f": 1, "t": 449, "d": [109,136], "a": 1 }, + { "px": [560,48], "src": [272,192], "f": 1, "t": 449, "d": [109,155], "a": 1 }, + { "px": [64,64], "src": [272,192], "f": 0, "t": 449, "d": [109,164], "a": 1 }, + { "px": [288,64], "src": [272,192], "f": 1, "t": 449, "d": [109,178], "a": 1 }, + { "px": [432,64], "src": [272,192], "f": 2, "t": 449, "d": [109,187], "a": 1 }, + { "px": [464,64], "src": [272,192], "f": 3, "t": 449, "d": [109,189], "a": 1 }, + { "px": [368,80], "src": [272,192], "f": 1, "t": 449, "d": [109,223], "a": 1 }, + { "px": [464,80], "src": [272,192], "f": 2, "t": 449, "d": [109,229], "a": 1 }, + { "px": [560,80], "src": [272,192], "f": 3, "t": 449, "d": [109,235], "a": 1 }, + { "px": [432,96], "src": [272,192], "f": 1, "t": 449, "d": [109,267], "a": 1 }, + { "px": [496,96], "src": [272,192], "f": 2, "t": 449, "d": [109,271], "a": 1 }, + { "px": [544,96], "src": [272,192], "f": 3, "t": 449, "d": [109,274], "a": 1 }, + { "px": [64,112], "src": [272,192], "f": 2, "t": 449, "d": [109,284], "a": 1 }, + { "px": [192,112], "src": [272,192], "f": 0, "t": 449, "d": [109,292], "a": 1 }, + { "px": [464,112], "src": [272,192], "f": 0, "t": 449, "d": [109,309], "a": 1 }, + { "px": [464,112], "src": [272,192], "f": 1, "t": 449, "d": [109,309], "a": 1 }, + { "px": [512,112], "src": [272,192], "f": 1, "t": 449, "d": [109,312], "a": 1 }, + { "px": [80,128], "src": [272,192], "f": 2, "t": 449, "d": [109,325], "a": 1 }, + { "px": [160,128], "src": [272,192], "f": 0, "t": 449, "d": [109,330], "a": 1 }, + { "px": [176,128], "src": [272,192], "f": 3, "t": 449, "d": [109,331], "a": 1 }, + { "px": [528,128], "src": [272,192], "f": 1, "t": 449, "d": [109,353], "a": 1 }, + { "px": [96,144], "src": [272,192], "f": 0, "t": 449, "d": [109,366], "a": 1 }, + { "px": [80,160], "src": [272,192], "f": 0, "t": 449, "d": [109,405], "a": 1 }, + { "px": [448,176], "src": [272,192], "f": 2, "t": 449, "d": [109,468], "a": 1 }, + { "px": [448,176], "src": [272,192], "f": 3, "t": 449, "d": [109,468], "a": 1 }, + { "px": [480,192], "src": [272,192], "f": 2, "t": 449, "d": [109,510], "a": 1 }, + { "px": [528,192], "src": [272,192], "f": 3, "t": 449, "d": [109,513], "a": 1 }, + { "px": [432,208], "src": [272,192], "f": 3, "t": 449, "d": [109,547], "a": 1 }, + { "px": [80,224], "src": [272,192], "f": 2, "t": 449, "d": [109,565], "a": 1 }, + { "px": [384,224], "src": [272,192], "f": 3, "t": 449, "d": [109,584], "a": 1 } + ], + "seed": 8716657, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 40, + "__cHei": 19, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "720af482-66b0-11ec-895f-e3e223edce8e", + "levelId": 113, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [144,64], "src": [80,192], "f": 0, "t": 437, "d": [51,169], "a": 1 }, + { "px": [160,64], "src": [64,192], "f": 0, "t": 436, "d": [51,170], "a": 1 }, + { "px": [240,64], "src": [64,192], "f": 0, "t": 436, "d": [51,175], "a": 1 }, + { "px": [480,64], "src": [80,192], "f": 0, "t": 437, "d": [51,190], "a": 1 }, + { "px": [496,64], "src": [64,192], "f": 0, "t": 436, "d": [51,191], "a": 1 }, + { "px": [512,64], "src": [64,192], "f": 0, "t": 436, "d": [51,192], "a": 1 }, + { "px": [528,64], "src": [64,192], "f": 0, "t": 436, "d": [51,193], "a": 1 }, + { "px": [144,80], "src": [80,192], "f": 0, "t": 437, "d": [51,209], "a": 1 }, + { "px": [176,80], "src": [80,192], "f": 0, "t": 437, "d": [51,211], "a": 1 }, + { "px": [512,80], "src": [64,192], "f": 0, "t": 436, "d": [51,232], "a": 1 }, + { "px": [80,96], "src": [48,192], "f": 0, "t": 435, "d": [51,245], "a": 1 }, + { "px": [96,96], "src": [48,192], "f": 0, "t": 435, "d": [51,246], "a": 1 }, + { "px": [304,96], "src": [64,192], "f": 0, "t": 436, "d": [51,259], "a": 1 }, + { "px": [96,112], "src": [64,192], "f": 0, "t": 436, "d": [51,286], "a": 1 }, + { "px": [112,112], "src": [80,192], "f": 0, "t": 437, "d": [51,287], "a": 1 }, + { "px": [128,112], "src": [48,192], "f": 0, "t": 435, "d": [51,288], "a": 1 }, + { "px": [144,112], "src": [64,192], "f": 0, "t": 436, "d": [51,289], "a": 1 }, + { "px": [240,112], "src": [48,192], "f": 0, "t": 435, "d": [51,295], "a": 1 }, + { "px": [304,112], "src": [48,192], "f": 0, "t": 435, "d": [51,299], "a": 1 }, + { "px": [336,112], "src": [64,192], "f": 0, "t": 436, "d": [51,301], "a": 1 }, + { "px": [416,112], "src": [48,192], "f": 0, "t": 435, "d": [51,306], "a": 1 }, + { "px": [208,128], "src": [64,192], "f": 0, "t": 436, "d": [51,333], "a": 1 }, + { "px": [240,128], "src": [48,192], "f": 0, "t": 435, "d": [51,335], "a": 1 }, + { "px": [304,128], "src": [64,192], "f": 0, "t": 436, "d": [51,339], "a": 1 }, + { "px": [336,128], "src": [64,192], "f": 0, "t": 436, "d": [51,341], "a": 1 }, + { "px": [368,128], "src": [48,192], "f": 0, "t": 435, "d": [51,343], "a": 1 }, + { "px": [400,128], "src": [64,192], "f": 0, "t": 436, "d": [51,345], "a": 1 }, + { "px": [432,128], "src": [48,192], "f": 0, "t": 435, "d": [51,347], "a": 1 }, + { "px": [480,128], "src": [48,192], "f": 0, "t": 435, "d": [51,350], "a": 1 }, + { "px": [304,144], "src": [64,192], "f": 0, "t": 436, "d": [51,379], "a": 1 }, + { "px": [368,144], "src": [64,192], "f": 0, "t": 436, "d": [51,383], "a": 1 }, + { "px": [400,144], "src": [80,192], "f": 0, "t": 437, "d": [51,385], "a": 1 }, + { "px": [416,144], "src": [48,192], "f": 0, "t": 435, "d": [51,386], "a": 1 }, + { "px": [480,144], "src": [48,192], "f": 0, "t": 435, "d": [51,390], "a": 1 }, + { "px": [112,160], "src": [80,192], "f": 0, "t": 437, "d": [51,407], "a": 1 }, + { "px": [224,160], "src": [64,192], "f": 0, "t": 436, "d": [51,414], "a": 1 }, + { "px": [240,160], "src": [64,192], "f": 0, "t": 436, "d": [51,415], "a": 1 }, + { "px": [352,160], "src": [48,192], "f": 0, "t": 435, "d": [51,422], "a": 1 }, + { "px": [432,160], "src": [80,192], "f": 0, "t": 437, "d": [51,427], "a": 1 }, + { "px": [224,176], "src": [64,192], "f": 0, "t": 436, "d": [51,454], "a": 1 }, + { "px": [240,176], "src": [80,192], "f": 0, "t": 437, "d": [51,455], "a": 1 }, + { "px": [256,176], "src": [64,192], "f": 0, "t": 436, "d": [51,456], "a": 1 }, + { "px": [272,176], "src": [80,192], "f": 0, "t": 437, "d": [51,457], "a": 1 }, + { "px": [288,176], "src": [80,192], "f": 0, "t": 437, "d": [51,458], "a": 1 }, + { "px": [352,176], "src": [80,192], "f": 0, "t": 437, "d": [51,462], "a": 1 }, + { "px": [496,176], "src": [80,192], "f": 0, "t": 437, "d": [51,471], "a": 1 }, + { "px": [128,192], "src": [64,192], "f": 0, "t": 436, "d": [51,488], "a": 1 }, + { "px": [144,192], "src": [64,192], "f": 0, "t": 436, "d": [51,489], "a": 1 }, + { "px": [208,192], "src": [64,192], "f": 0, "t": 436, "d": [51,493], "a": 1 }, + { "px": [224,192], "src": [64,192], "f": 0, "t": 436, "d": [51,494], "a": 1 }, + { "px": [240,192], "src": [48,192], "f": 0, "t": 435, "d": [51,495], "a": 1 }, + { "px": [256,192], "src": [48,192], "f": 0, "t": 435, "d": [51,496], "a": 1 }, + { "px": [272,192], "src": [48,192], "f": 0, "t": 435, "d": [51,497], "a": 1 }, + { "px": [288,192], "src": [48,192], "f": 0, "t": 435, "d": [51,498], "a": 1 }, + { "px": [96,208], "src": [64,192], "f": 0, "t": 436, "d": [51,526], "a": 1 }, + { "px": [128,208], "src": [64,192], "f": 0, "t": 436, "d": [51,528], "a": 1 }, + { "px": [144,208], "src": [64,192], "f": 0, "t": 436, "d": [51,529], "a": 1 }, + { "px": [224,208], "src": [64,192], "f": 0, "t": 436, "d": [51,534], "a": 1 }, + { "px": [288,208], "src": [64,192], "f": 0, "t": 436, "d": [51,538], "a": 1 }, + { "px": [464,32], "src": [128,192], "f": 0, "t": 440, "d": [85,109], "a": 1 }, + { "px": [480,32], "src": [128,192], "f": 0, "t": 440, "d": [85,110], "a": 1 }, + { "px": [480,48], "src": [112,192], "f": 0, "t": 439, "d": [85,150], "a": 1 }, + { "px": [496,48], "src": [128,192], "f": 0, "t": 440, "d": [85,151], "a": 1 }, + { "px": [224,64], "src": [112,192], "f": 0, "t": 439, "d": [85,174], "a": 1 }, + { "px": [80,80], "src": [96,192], "f": 0, "t": 438, "d": [85,205], "a": 1 }, + { "px": [160,80], "src": [96,192], "f": 0, "t": 438, "d": [85,210], "a": 1 }, + { "px": [240,80], "src": [96,192], "f": 0, "t": 438, "d": [85,215], "a": 1 }, + { "px": [176,96], "src": [128,192], "f": 0, "t": 440, "d": [85,251], "a": 1 }, + { "px": [208,96], "src": [96,192], "f": 0, "t": 438, "d": [85,253], "a": 1 }, + { "px": [336,96], "src": [96,192], "f": 0, "t": 438, "d": [85,261], "a": 1 }, + { "px": [224,128], "src": [128,192], "f": 0, "t": 440, "d": [85,334], "a": 1 }, + { "px": [352,128], "src": [112,192], "f": 0, "t": 439, "d": [85,342], "a": 1 }, + { "px": [176,144], "src": [96,192], "f": 0, "t": 438, "d": [85,371], "a": 1 }, + { "px": [352,144], "src": [128,192], "f": 0, "t": 440, "d": [85,382], "a": 1 }, + { "px": [176,160], "src": [96,192], "f": 0, "t": 438, "d": [85,411], "a": 1 }, + { "px": [480,160], "src": [128,192], "f": 0, "t": 440, "d": [85,430], "a": 1 }, + { "px": [496,160], "src": [112,192], "f": 0, "t": 439, "d": [85,431], "a": 1 }, + { "px": [464,16], "src": [16,192], "f": 0, "t": 433, "d": [102,69], "a": 1 }, + { "px": [480,16], "src": [16,192], "f": 0, "t": 433, "d": [102,70], "a": 1 }, + { "px": [496,32], "src": [16,192], "f": 0, "t": 433, "d": [102,111], "a": 1 }, + { "px": [528,48], "src": [32,192], "f": 0, "t": 434, "d": [102,153], "a": 1 }, + { "px": [96,64], "src": [16,192], "f": 0, "t": 433, "d": [102,166], "a": 1 }, + { "px": [112,64], "src": [0,192], "f": 0, "t": 432, "d": [102,167], "a": 1 }, + { "px": [176,64], "src": [0,192], "f": 0, "t": 432, "d": [102,171], "a": 1 }, + { "px": [208,64], "src": [0,192], "f": 0, "t": 432, "d": [102,173], "a": 1 }, + { "px": [544,64], "src": [0,192], "f": 0, "t": 432, "d": [102,194], "a": 1 }, + { "px": [96,80], "src": [32,192], "f": 0, "t": 434, "d": [102,206], "a": 1 }, + { "px": [112,80], "src": [16,192], "f": 0, "t": 433, "d": [102,207], "a": 1 }, + { "px": [208,80], "src": [0,192], "f": 0, "t": 432, "d": [102,213], "a": 1 }, + { "px": [224,80], "src": [0,192], "f": 0, "t": 432, "d": [102,214], "a": 1 }, + { "px": [272,80], "src": [32,192], "f": 0, "t": 434, "d": [102,217], "a": 1 }, + { "px": [528,80], "src": [32,192], "f": 0, "t": 434, "d": [102,233], "a": 1 }, + { "px": [112,96], "src": [0,192], "f": 0, "t": 432, "d": [102,247], "a": 1 }, + { "px": [144,96], "src": [16,192], "f": 0, "t": 433, "d": [102,249], "a": 1 }, + { "px": [160,96], "src": [16,192], "f": 0, "t": 433, "d": [102,250], "a": 1 }, + { "px": [224,96], "src": [32,192], "f": 0, "t": 434, "d": [102,254], "a": 1 }, + { "px": [240,96], "src": [16,192], "f": 0, "t": 433, "d": [102,255], "a": 1 }, + { "px": [272,96], "src": [0,192], "f": 0, "t": 432, "d": [102,257], "a": 1 }, + { "px": [288,96], "src": [16,192], "f": 0, "t": 433, "d": [102,258], "a": 1 }, + { "px": [352,96], "src": [16,192], "f": 0, "t": 433, "d": [102,262], "a": 1 }, + { "px": [160,112], "src": [0,192], "f": 0, "t": 432, "d": [102,290], "a": 1 }, + { "px": [224,112], "src": [32,192], "f": 0, "t": 434, "d": [102,294], "a": 1 }, + { "px": [272,112], "src": [16,192], "f": 0, "t": 433, "d": [102,297], "a": 1 }, + { "px": [288,112], "src": [16,192], "f": 0, "t": 433, "d": [102,298], "a": 1 }, + { "px": [352,112], "src": [16,192], "f": 0, "t": 433, "d": [102,302], "a": 1 }, + { "px": [368,112], "src": [0,192], "f": 0, "t": 432, "d": [102,303], "a": 1 }, + { "px": [400,112], "src": [16,192], "f": 0, "t": 433, "d": [102,305], "a": 1 }, + { "px": [272,128], "src": [32,192], "f": 0, "t": 434, "d": [102,337], "a": 1 }, + { "px": [288,128], "src": [16,192], "f": 0, "t": 433, "d": [102,338], "a": 1 }, + { "px": [416,128], "src": [16,192], "f": 0, "t": 433, "d": [102,346], "a": 1 }, + { "px": [496,128], "src": [32,192], "f": 0, "t": 434, "d": [102,351], "a": 1 }, + { "px": [208,144], "src": [16,192], "f": 0, "t": 433, "d": [102,373], "a": 1 }, + { "px": [224,144], "src": [0,192], "f": 0, "t": 432, "d": [102,374], "a": 1 }, + { "px": [240,144], "src": [0,192], "f": 0, "t": 432, "d": [102,375], "a": 1 }, + { "px": [272,144], "src": [32,192], "f": 0, "t": 434, "d": [102,377], "a": 1 }, + { "px": [288,144], "src": [0,192], "f": 0, "t": 432, "d": [102,378], "a": 1 }, + { "px": [336,144], "src": [32,192], "f": 0, "t": 434, "d": [102,381], "a": 1 }, + { "px": [432,144], "src": [16,192], "f": 0, "t": 433, "d": [102,387], "a": 1 }, + { "px": [464,144], "src": [32,192], "f": 0, "t": 434, "d": [102,389], "a": 1 }, + { "px": [496,144], "src": [0,192], "f": 0, "t": 432, "d": [102,391], "a": 1 }, + { "px": [144,160], "src": [16,192], "f": 0, "t": 433, "d": [102,409], "a": 1 }, + { "px": [160,160], "src": [16,192], "f": 0, "t": 433, "d": [102,410], "a": 1 }, + { "px": [208,160], "src": [0,192], "f": 0, "t": 432, "d": [102,413], "a": 1 }, + { "px": [272,160], "src": [32,192], "f": 0, "t": 434, "d": [102,417], "a": 1 }, + { "px": [288,160], "src": [0,192], "f": 0, "t": 432, "d": [102,418], "a": 1 }, + { "px": [304,160], "src": [0,192], "f": 0, "t": 432, "d": [102,419], "a": 1 }, + { "px": [336,160], "src": [32,192], "f": 0, "t": 434, "d": [102,421], "a": 1 }, + { "px": [368,160], "src": [16,192], "f": 0, "t": 433, "d": [102,423], "a": 1 }, + { "px": [400,160], "src": [32,192], "f": 0, "t": 434, "d": [102,425], "a": 1 }, + { "px": [416,160], "src": [16,192], "f": 0, "t": 433, "d": [102,426], "a": 1 }, + { "px": [464,160], "src": [32,192], "f": 0, "t": 434, "d": [102,429], "a": 1 }, + { "px": [96,176], "src": [16,192], "f": 0, "t": 433, "d": [102,446], "a": 1 }, + { "px": [112,176], "src": [32,192], "f": 0, "t": 434, "d": [102,447], "a": 1 }, + { "px": [128,176], "src": [0,192], "f": 0, "t": 432, "d": [102,448], "a": 1 }, + { "px": [144,176], "src": [32,192], "f": 0, "t": 434, "d": [102,449], "a": 1 }, + { "px": [160,176], "src": [0,192], "f": 0, "t": 432, "d": [102,450], "a": 1 }, + { "px": [176,176], "src": [32,192], "f": 0, "t": 434, "d": [102,451], "a": 1 }, + { "px": [192,176], "src": [16,192], "f": 0, "t": 433, "d": [102,452], "a": 1 }, + { "px": [208,176], "src": [0,192], "f": 0, "t": 432, "d": [102,453], "a": 1 }, + { "px": [304,176], "src": [16,192], "f": 0, "t": 433, "d": [102,459], "a": 1 }, + { "px": [320,176], "src": [0,192], "f": 0, "t": 432, "d": [102,460], "a": 1 }, + { "px": [336,176], "src": [32,192], "f": 0, "t": 434, "d": [102,461], "a": 1 }, + { "px": [368,176], "src": [0,192], "f": 0, "t": 432, "d": [102,463], "a": 1 }, + { "px": [384,176], "src": [0,192], "f": 0, "t": 432, "d": [102,464], "a": 1 }, + { "px": [400,176], "src": [0,192], "f": 0, "t": 432, "d": [102,465], "a": 1 }, + { "px": [416,176], "src": [32,192], "f": 0, "t": 434, "d": [102,466], "a": 1 }, + { "px": [512,176], "src": [0,192], "f": 0, "t": 432, "d": [102,472], "a": 1 }, + { "px": [96,192], "src": [32,192], "f": 0, "t": 434, "d": [102,486], "a": 1 }, + { "px": [112,192], "src": [32,192], "f": 0, "t": 434, "d": [102,487], "a": 1 }, + { "px": [160,192], "src": [32,192], "f": 0, "t": 434, "d": [102,490], "a": 1 }, + { "px": [176,192], "src": [0,192], "f": 0, "t": 432, "d": [102,491], "a": 1 }, + { "px": [192,192], "src": [16,192], "f": 0, "t": 433, "d": [102,492], "a": 1 }, + { "px": [304,192], "src": [16,192], "f": 0, "t": 433, "d": [102,499], "a": 1 }, + { "px": [320,192], "src": [32,192], "f": 0, "t": 434, "d": [102,500], "a": 1 }, + { "px": [336,192], "src": [0,192], "f": 0, "t": 432, "d": [102,501], "a": 1 }, + { "px": [352,192], "src": [32,192], "f": 0, "t": 434, "d": [102,502], "a": 1 }, + { "px": [368,192], "src": [0,192], "f": 0, "t": 432, "d": [102,503], "a": 1 }, + { "px": [384,192], "src": [32,192], "f": 0, "t": 434, "d": [102,504], "a": 1 }, + { "px": [400,192], "src": [0,192], "f": 0, "t": 432, "d": [102,505], "a": 1 }, + { "px": [416,192], "src": [0,192], "f": 0, "t": 432, "d": [102,506], "a": 1 }, + { "px": [112,208], "src": [32,192], "f": 0, "t": 434, "d": [102,527], "a": 1 }, + { "px": [160,208], "src": [32,192], "f": 0, "t": 434, "d": [102,530], "a": 1 }, + { "px": [176,208], "src": [0,192], "f": 0, "t": 432, "d": [102,531], "a": 1 }, + { "px": [192,208], "src": [32,192], "f": 0, "t": 434, "d": [102,532], "a": 1 }, + { "px": [208,208], "src": [16,192], "f": 0, "t": 433, "d": [102,533], "a": 1 }, + { "px": [240,208], "src": [32,192], "f": 0, "t": 434, "d": [102,535], "a": 1 }, + { "px": [256,208], "src": [32,192], "f": 0, "t": 434, "d": [102,536], "a": 1 }, + { "px": [272,208], "src": [16,192], "f": 0, "t": 433, "d": [102,537], "a": 1 }, + { "px": [304,208], "src": [0,192], "f": 0, "t": 432, "d": [102,539], "a": 1 }, + { "px": [320,208], "src": [32,192], "f": 0, "t": 434, "d": [102,540], "a": 1 }, + { "px": [336,208], "src": [0,192], "f": 0, "t": 432, "d": [102,541], "a": 1 }, + { "px": [352,208], "src": [32,192], "f": 0, "t": 434, "d": [102,542], "a": 1 }, + { "px": [368,208], "src": [0,192], "f": 0, "t": 432, "d": [102,543], "a": 1 }, + { "px": [448,32], "src": [160,208], "f": 0, "t": 478, "d": [70,108], "a": 1 }, + { "px": [448,48], "src": [160,208], "f": 0, "t": 478, "d": [70,148], "a": 1 }, + { "px": [512,48], "src": [160,208], "f": 0, "t": 478, "d": [70,152], "a": 1 }, + { "px": [128,64], "src": [160,208], "f": 0, "t": 478, "d": [70,168], "a": 1 }, + { "px": [192,64], "src": [160,208], "f": 0, "t": 478, "d": [70,172], "a": 1 }, + { "px": [128,80], "src": [160,208], "f": 0, "t": 478, "d": [70,208], "a": 1 }, + { "px": [192,80], "src": [160,208], "f": 0, "t": 478, "d": [70,212], "a": 1 }, + { "px": [256,80], "src": [160,208], "f": 0, "t": 478, "d": [70,216], "a": 1 }, + { "px": [128,96], "src": [160,208], "f": 0, "t": 478, "d": [70,248], "a": 1 }, + { "px": [192,96], "src": [160,208], "f": 0, "t": 478, "d": [70,252], "a": 1 }, + { "px": [256,96], "src": [160,208], "f": 0, "t": 478, "d": [70,256], "a": 1 }, + { "px": [320,96], "src": [160,208], "f": 0, "t": 478, "d": [70,260], "a": 1 }, + { "px": [256,112], "src": [160,208], "f": 0, "t": 478, "d": [70,296], "a": 1 }, + { "px": [320,112], "src": [160,208], "f": 0, "t": 478, "d": [70,300], "a": 1 }, + { "px": [384,112], "src": [160,208], "f": 0, "t": 478, "d": [70,304], "a": 1 }, + { "px": [256,128], "src": [160,208], "f": 0, "t": 478, "d": [70,336], "a": 1 }, + { "px": [320,128], "src": [160,208], "f": 0, "t": 478, "d": [70,340], "a": 1 }, + { "px": [384,128], "src": [160,208], "f": 0, "t": 478, "d": [70,344], "a": 1 }, + { "px": [448,128], "src": [160,208], "f": 0, "t": 478, "d": [70,348], "a": 1 }, + { "px": [192,144], "src": [160,208], "f": 0, "t": 478, "d": [70,372], "a": 1 }, + { "px": [256,144], "src": [160,208], "f": 0, "t": 478, "d": [70,376], "a": 1 }, + { "px": [320,144], "src": [160,208], "f": 0, "t": 478, "d": [70,380], "a": 1 }, + { "px": [384,144], "src": [160,208], "f": 0, "t": 478, "d": [70,384], "a": 1 }, + { "px": [448,144], "src": [160,208], "f": 0, "t": 478, "d": [70,388], "a": 1 }, + { "px": [512,144], "src": [160,208], "f": 0, "t": 478, "d": [70,392], "a": 1 }, + { "px": [128,160], "src": [160,208], "f": 0, "t": 478, "d": [70,408], "a": 1 }, + { "px": [192,160], "src": [160,208], "f": 0, "t": 478, "d": [70,412], "a": 1 }, + { "px": [256,160], "src": [160,208], "f": 0, "t": 478, "d": [70,416], "a": 1 }, + { "px": [320,160], "src": [160,208], "f": 0, "t": 478, "d": [70,420], "a": 1 }, + { "px": [384,160], "src": [160,208], "f": 0, "t": 478, "d": [70,424], "a": 1 }, + { "px": [512,160], "src": [160,208], "f": 0, "t": 478, "d": [70,432], "a": 1 }, + { "px": [448,32], "src": [240,176], "f": 3, "t": 411, "d": [91,108], "a": 1 }, + { "px": [464,32], "src": [240,176], "f": 0, "t": 411, "d": [91,109], "a": 1 }, + { "px": [480,32], "src": [240,176], "f": 1, "t": 411, "d": [91,110], "a": 1 }, + { "px": [480,32], "src": [240,176], "f": 2, "t": 411, "d": [91,110], "a": 1 }, + { "px": [496,48], "src": [240,176], "f": 1, "t": 411, "d": [91,151], "a": 1 }, + { "px": [512,64], "src": [240,176], "f": 2, "t": 411, "d": [91,192], "a": 1 }, + { "px": [528,64], "src": [240,176], "f": 1, "t": 411, "d": [91,193], "a": 1 }, + { "px": [528,64], "src": [240,176], "f": 3, "t": 411, "d": [91,193], "a": 1 }, + { "px": [96,80], "src": [240,176], "f": 0, "t": 411, "d": [91,206], "a": 1 }, + { "px": [240,80], "src": [240,176], "f": 1, "t": 411, "d": [91,215], "a": 1 }, + { "px": [96,96], "src": [240,176], "f": 2, "t": 411, "d": [91,246], "a": 1 }, + { "px": [160,96], "src": [240,176], "f": 3, "t": 411, "d": [91,250], "a": 1 }, + { "px": [224,96], "src": [240,176], "f": 2, "t": 411, "d": [91,254], "a": 1 }, + { "px": [272,96], "src": [240,176], "f": 1, "t": 411, "d": [91,257], "a": 1 }, + { "px": [352,112], "src": [240,176], "f": 1, "t": 411, "d": [91,302], "a": 1 }, + { "px": [224,128], "src": [240,176], "f": 0, "t": 411, "d": [91,334], "a": 1 }, + { "px": [416,128], "src": [240,176], "f": 1, "t": 411, "d": [91,346], "a": 1 }, + { "px": [208,144], "src": [240,176], "f": 0, "t": 411, "d": [91,373], "a": 1 }, + { "px": [432,144], "src": [240,176], "f": 3, "t": 411, "d": [91,387], "a": 1 }, + { "px": [448,144], "src": [240,176], "f": 1, "t": 411, "d": [91,388], "a": 1 }, + { "px": [464,144], "src": [240,176], "f": 2, "t": 411, "d": [91,389], "a": 1 }, + { "px": [480,144], "src": [240,176], "f": 0, "t": 411, "d": [91,390], "a": 1 }, + { "px": [496,144], "src": [240,176], "f": 1, "t": 411, "d": [91,391], "a": 1 }, + { "px": [176,160], "src": [240,176], "f": 0, "t": 411, "d": [91,411], "a": 1 }, + { "px": [416,160], "src": [240,176], "f": 3, "t": 411, "d": [91,426], "a": 1 }, + { "px": [496,160], "src": [240,176], "f": 2, "t": 411, "d": [91,431], "a": 1 }, + { "px": [112,176], "src": [240,176], "f": 0, "t": 411, "d": [91,447], "a": 1 }, + { "px": [368,192], "src": [240,176], "f": 3, "t": 411, "d": [91,503], "a": 1 }, + { "px": [464,16], "src": [208,176], "f": 0, "t": 409, "d": [89,69], "a": 1 }, + { "px": [480,16], "src": [208,176], "f": 1, "t": 409, "d": [89,70], "a": 1 }, + { "px": [448,32], "src": [208,176], "f": 0, "t": 409, "d": [89,108], "a": 1 }, + { "px": [496,32], "src": [208,176], "f": 1, "t": 409, "d": [89,111], "a": 1 }, + { "px": [448,48], "src": [208,176], "f": 0, "t": 409, "d": [89,148], "a": 1 }, + { "px": [448,48], "src": [208,176], "f": 1, "t": 409, "d": [89,148], "a": 1 }, + { "px": [480,48], "src": [208,176], "f": 0, "t": 409, "d": [89,150], "a": 1 }, + { "px": [528,48], "src": [208,176], "f": 1, "t": 409, "d": [89,153], "a": 1 }, + { "px": [96,64], "src": [208,176], "f": 0, "t": 409, "d": [89,166], "a": 1 }, + { "px": [240,64], "src": [208,176], "f": 1, "t": 409, "d": [89,175], "a": 1 }, + { "px": [480,64], "src": [208,176], "f": 0, "t": 409, "d": [89,190], "a": 1 }, + { "px": [544,64], "src": [208,176], "f": 1, "t": 409, "d": [89,194], "a": 1 }, + { "px": [80,80], "src": [208,176], "f": 0, "t": 409, "d": [89,205], "a": 1 }, + { "px": [272,80], "src": [208,176], "f": 1, "t": 409, "d": [89,217], "a": 1 }, + { "px": [512,80], "src": [208,176], "f": 0, "t": 409, "d": [89,232], "a": 1 }, + { "px": [528,80], "src": [208,176], "f": 1, "t": 409, "d": [89,233], "a": 1 }, + { "px": [80,96], "src": [208,176], "f": 0, "t": 409, "d": [89,245], "a": 1 }, + { "px": [352,96], "src": [208,176], "f": 1, "t": 409, "d": [89,262], "a": 1 }, + { "px": [96,112], "src": [208,176], "f": 0, "t": 409, "d": [89,286], "a": 1 }, + { "px": [160,112], "src": [208,176], "f": 1, "t": 409, "d": [89,290], "a": 1 }, + { "px": [224,112], "src": [208,176], "f": 0, "t": 409, "d": [89,294], "a": 1 }, + { "px": [416,112], "src": [208,176], "f": 1, "t": 409, "d": [89,306], "a": 1 }, + { "px": [208,128], "src": [208,176], "f": 0, "t": 409, "d": [89,333], "a": 1 }, + { "px": [448,128], "src": [208,176], "f": 1, "t": 409, "d": [89,348], "a": 1 }, + { "px": [480,128], "src": [208,176], "f": 0, "t": 409, "d": [89,350], "a": 1 }, + { "px": [496,128], "src": [208,176], "f": 1, "t": 409, "d": [89,351], "a": 1 }, + { "px": [176,144], "src": [208,176], "f": 0, "t": 409, "d": [89,371], "a": 1 }, + { "px": [512,144], "src": [208,176], "f": 1, "t": 409, "d": [89,392], "a": 1 }, + { "px": [112,160], "src": [208,176], "f": 0, "t": 409, "d": [89,407], "a": 1 }, + { "px": [432,160], "src": [208,176], "f": 1, "t": 409, "d": [89,427], "a": 1 }, + { "px": [464,160], "src": [208,176], "f": 0, "t": 409, "d": [89,429], "a": 1 }, + { "px": [512,160], "src": [208,176], "f": 1, "t": 409, "d": [89,432], "a": 1 }, + { "px": [96,176], "src": [208,176], "f": 0, "t": 409, "d": [89,446], "a": 1 }, + { "px": [416,176], "src": [208,176], "f": 1, "t": 409, "d": [89,466], "a": 1 }, + { "px": [496,176], "src": [208,176], "f": 0, "t": 409, "d": [89,471], "a": 1 }, + { "px": [512,176], "src": [208,176], "f": 1, "t": 409, "d": [89,472], "a": 1 }, + { "px": [96,192], "src": [208,176], "f": 0, "t": 409, "d": [89,486], "a": 1 }, + { "px": [416,192], "src": [208,176], "f": 1, "t": 409, "d": [89,506], "a": 1 }, + { "px": [96,208], "src": [208,176], "f": 0, "t": 409, "d": [89,526], "a": 1 }, + { "px": [368,208], "src": [208,176], "f": 1, "t": 409, "d": [89,543], "a": 1 }, + { "px": [464,16], "src": [224,176], "f": 0, "t": 410, "d": [88,69], "a": 1 }, + { "px": [480,16], "src": [224,176], "f": 0, "t": 410, "d": [88,70], "a": 1 }, + { "px": [448,32], "src": [224,176], "f": 0, "t": 410, "d": [88,108], "a": 1 }, + { "px": [464,32], "src": [224,176], "f": 2, "t": 410, "d": [88,109], "a": 1 }, + { "px": [496,32], "src": [224,176], "f": 0, "t": 410, "d": [88,111], "a": 1 }, + { "px": [448,48], "src": [224,176], "f": 2, "t": 410, "d": [88,148], "a": 1 }, + { "px": [512,48], "src": [224,176], "f": 0, "t": 410, "d": [88,152], "a": 1 }, + { "px": [528,48], "src": [224,176], "f": 0, "t": 410, "d": [88,153], "a": 1 }, + { "px": [96,64], "src": [224,176], "f": 0, "t": 410, "d": [88,166], "a": 1 }, + { "px": [112,64], "src": [224,176], "f": 0, "t": 410, "d": [88,167], "a": 1 }, + { "px": [128,64], "src": [224,176], "f": 0, "t": 410, "d": [88,168], "a": 1 }, + { "px": [144,64], "src": [224,176], "f": 0, "t": 410, "d": [88,169], "a": 1 }, + { "px": [160,64], "src": [224,176], "f": 0, "t": 410, "d": [88,170], "a": 1 }, + { "px": [176,64], "src": [224,176], "f": 0, "t": 410, "d": [88,171], "a": 1 }, + { "px": [192,64], "src": [224,176], "f": 0, "t": 410, "d": [88,172], "a": 1 }, + { "px": [208,64], "src": [224,176], "f": 0, "t": 410, "d": [88,173], "a": 1 }, + { "px": [224,64], "src": [224,176], "f": 0, "t": 410, "d": [88,174], "a": 1 }, + { "px": [240,64], "src": [224,176], "f": 0, "t": 410, "d": [88,175], "a": 1 }, + { "px": [480,64], "src": [224,176], "f": 2, "t": 410, "d": [88,190], "a": 1 }, + { "px": [496,64], "src": [224,176], "f": 2, "t": 410, "d": [88,191], "a": 1 }, + { "px": [544,64], "src": [224,176], "f": 0, "t": 410, "d": [88,194], "a": 1 }, + { "px": [544,64], "src": [224,176], "f": 2, "t": 410, "d": [88,194], "a": 1 }, + { "px": [80,80], "src": [224,176], "f": 0, "t": 410, "d": [88,205], "a": 1 }, + { "px": [256,80], "src": [224,176], "f": 0, "t": 410, "d": [88,216], "a": 1 }, + { "px": [272,80], "src": [224,176], "f": 0, "t": 410, "d": [88,217], "a": 1 }, + { "px": [512,80], "src": [224,176], "f": 2, "t": 410, "d": [88,232], "a": 1 }, + { "px": [528,80], "src": [224,176], "f": 2, "t": 410, "d": [88,233], "a": 1 }, + { "px": [80,96], "src": [224,176], "f": 2, "t": 410, "d": [88,245], "a": 1 }, + { "px": [176,96], "src": [224,176], "f": 2, "t": 410, "d": [88,251], "a": 1 }, + { "px": [192,96], "src": [224,176], "f": 2, "t": 410, "d": [88,252], "a": 1 }, + { "px": [208,96], "src": [224,176], "f": 2, "t": 410, "d": [88,253], "a": 1 }, + { "px": [288,96], "src": [224,176], "f": 0, "t": 410, "d": [88,258], "a": 1 }, + { "px": [304,96], "src": [224,176], "f": 0, "t": 410, "d": [88,259], "a": 1 }, + { "px": [320,96], "src": [224,176], "f": 0, "t": 410, "d": [88,260], "a": 1 }, + { "px": [336,96], "src": [224,176], "f": 0, "t": 410, "d": [88,261], "a": 1 }, + { "px": [352,96], "src": [224,176], "f": 0, "t": 410, "d": [88,262], "a": 1 }, + { "px": [96,112], "src": [224,176], "f": 2, "t": 410, "d": [88,286], "a": 1 }, + { "px": [112,112], "src": [224,176], "f": 2, "t": 410, "d": [88,287], "a": 1 }, + { "px": [128,112], "src": [224,176], "f": 2, "t": 410, "d": [88,288], "a": 1 }, + { "px": [144,112], "src": [224,176], "f": 2, "t": 410, "d": [88,289], "a": 1 }, + { "px": [160,112], "src": [224,176], "f": 2, "t": 410, "d": [88,290], "a": 1 }, + { "px": [368,112], "src": [224,176], "f": 0, "t": 410, "d": [88,303], "a": 1 }, + { "px": [384,112], "src": [224,176], "f": 0, "t": 410, "d": [88,304], "a": 1 }, + { "px": [400,112], "src": [224,176], "f": 0, "t": 410, "d": [88,305], "a": 1 }, + { "px": [416,112], "src": [224,176], "f": 0, "t": 410, "d": [88,306], "a": 1 }, + { "px": [208,128], "src": [224,176], "f": 0, "t": 410, "d": [88,333], "a": 1 }, + { "px": [432,128], "src": [224,176], "f": 0, "t": 410, "d": [88,347], "a": 1 }, + { "px": [448,128], "src": [224,176], "f": 0, "t": 410, "d": [88,348], "a": 1 }, + { "px": [480,128], "src": [224,176], "f": 0, "t": 410, "d": [88,350], "a": 1 }, + { "px": [496,128], "src": [224,176], "f": 0, "t": 410, "d": [88,351], "a": 1 }, + { "px": [176,144], "src": [224,176], "f": 0, "t": 410, "d": [88,371], "a": 1 }, + { "px": [192,144], "src": [224,176], "f": 0, "t": 410, "d": [88,372], "a": 1 }, + { "px": [448,144], "src": [224,176], "f": 2, "t": 410, "d": [88,388], "a": 1 }, + { "px": [464,144], "src": [224,176], "f": 0, "t": 410, "d": [88,389], "a": 1 }, + { "px": [512,144], "src": [224,176], "f": 0, "t": 410, "d": [88,392], "a": 1 }, + { "px": [112,160], "src": [224,176], "f": 0, "t": 410, "d": [88,407], "a": 1 }, + { "px": [128,160], "src": [224,176], "f": 0, "t": 410, "d": [88,408], "a": 1 }, + { "px": [144,160], "src": [224,176], "f": 0, "t": 410, "d": [88,409], "a": 1 }, + { "px": [160,160], "src": [224,176], "f": 0, "t": 410, "d": [88,410], "a": 1 }, + { "px": [432,160], "src": [224,176], "f": 2, "t": 410, "d": [88,427], "a": 1 }, + { "px": [464,160], "src": [224,176], "f": 2, "t": 410, "d": [88,429], "a": 1 }, + { "px": [480,160], "src": [224,176], "f": 2, "t": 410, "d": [88,430], "a": 1 }, + { "px": [96,176], "src": [224,176], "f": 0, "t": 410, "d": [88,446], "a": 1 }, + { "px": [496,176], "src": [224,176], "f": 2, "t": 410, "d": [88,471], "a": 1 }, + { "px": [512,176], "src": [224,176], "f": 2, "t": 410, "d": [88,472], "a": 1 }, + { "px": [384,192], "src": [224,176], "f": 2, "t": 410, "d": [88,504], "a": 1 }, + { "px": [400,192], "src": [224,176], "f": 2, "t": 410, "d": [88,505], "a": 1 }, + { "px": [416,192], "src": [224,176], "f": 2, "t": 410, "d": [88,506], "a": 1 }, + { "px": [96,208], "src": [224,176], "f": 2, "t": 410, "d": [88,526], "a": 1 }, + { "px": [112,208], "src": [224,176], "f": 2, "t": 410, "d": [88,527], "a": 1 }, + { "px": [128,208], "src": [224,176], "f": 2, "t": 410, "d": [88,528], "a": 1 }, + { "px": [144,208], "src": [224,176], "f": 2, "t": 410, "d": [88,529], "a": 1 }, + { "px": [160,208], "src": [224,176], "f": 2, "t": 410, "d": [88,530], "a": 1 }, + { "px": [176,208], "src": [224,176], "f": 2, "t": 410, "d": [88,531], "a": 1 }, + { "px": [192,208], "src": [224,176], "f": 2, "t": 410, "d": [88,532], "a": 1 }, + { "px": [208,208], "src": [224,176], "f": 2, "t": 410, "d": [88,533], "a": 1 }, + { "px": [224,208], "src": [224,176], "f": 2, "t": 410, "d": [88,534], "a": 1 }, + { "px": [240,208], "src": [224,176], "f": 2, "t": 410, "d": [88,535], "a": 1 }, + { "px": [256,208], "src": [224,176], "f": 2, "t": 410, "d": [88,536], "a": 1 }, + { "px": [272,208], "src": [224,176], "f": 2, "t": 410, "d": [88,537], "a": 1 }, + { "px": [288,208], "src": [224,176], "f": 2, "t": 410, "d": [88,538], "a": 1 }, + { "px": [304,208], "src": [224,176], "f": 2, "t": 410, "d": [88,539], "a": 1 }, + { "px": [320,208], "src": [224,176], "f": 2, "t": 410, "d": [88,540], "a": 1 }, + { "px": [336,208], "src": [224,176], "f": 2, "t": 410, "d": [88,541], "a": 1 }, + { "px": [352,208], "src": [224,176], "f": 2, "t": 410, "d": [88,542], "a": 1 }, + { "px": [368,208], "src": [224,176], "f": 2, "t": 410, "d": [88,543], "a": 1 } + ], + "seed": 3242287, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [] + }, + { + "identifier": "World_Level_11", + "iid": "b7a1be70-66b0-11ec-895f-f7a843c40618", + "uid": 115, + "worldX": -96, + "worldY": -208, + "worldDepth": 1, + "pxWid": 512, + "pxHei": 256, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": true, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "490f7b60-66b0-11ec-8fc6-e5aee3385325", + "levelId": 115, + "layerDefUid": 119, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 894961, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Plant", + "__grid": [16,12], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 48, "y": 304, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "e883cb60-66b0-11ec-8fc6-b1b7ad86c0ce", + "width": 20, + "height": 20, + "defUid": 116, + "px": [264,208], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Fruit", "__tile": { "tilesetUid": 117, "x": 48, "y": 304, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Fruit"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + }, + { + "__identifier": "Plant", + "__grid": [28,11], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 0, "y": 336, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "ea28c8d0-66b0-11ec-8fc6-77aa2f817608", + "width": 20, + "height": 20, + "defUid": 116, + "px": [456,192], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Root", "__tile": { "tilesetUid": 117, "x": 0, "y": 336, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Root"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + }, + { + "__identifier": "Plant", + "__grid": [1,10], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 240, "y": 288, "w": 16, "h": 16 }, + "__smartColor": "#9FFF00", + "iid": "ec1f1a90-66b0-11ec-8fc6-a72b61561d5e", + "width": 20, + "height": 20, + "defUid": 116, + "px": [24,176], + "fieldInstances": [ + { "__identifier": "plantType", "__type": "LocalEnum.Plants", "__value": "Clover", "__tile": { "tilesetUid": 117, "x": 240, "y": 288, "w": 16, "h": 16 }, "defUid": 121, "realEditorValues": [{ + "id": "V_String", + "params": ["Clover"] + }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 122, "realEditorValues": [] } + ] + }, + { + "__identifier": "Door", + "__grid": [4,14], + "__pivot": [0.5,1], + "__tags": [], + "__tile": { "tilesetUid": 117, "x": 160, "y": 32, "w": 16, "h": 16 }, + "__smartColor": "#00FF30", + "iid": "796d2950-8dc0-11ec-a525-75b5a5ce20f8", + "width": 16, + "height": 16, + "defUid": 123, + "px": [72,240], + "fieldInstances": [{ "__identifier": "link", "__type": "EntityRef", "__value": { + "entityIid": "7e1072a0-8dc0-11ec-a525-4d0952d12de1", + "layerIid": "490eb810-66b0-11ec-8fc6-39dd599e975c", + "levelIid": "a35992e0-66b0-11ec-9cd7-8b2ebd1b98e2", + "worldIid": "ca0e9bf0-c640-11ed-ad34-5d947c1a0a9f" + }, "__tile": null, "defUid": 124, "realEditorValues": [{ + "id": "V_String", + "params": ["7e1072a0-8dc0-11ec-a525-4d0952d12de1"] + }] }] + } + ] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "b7a1be71-66b0-11ec-895f-61635bc30c37", + "levelId": 115, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [448,0], "src": [16,32], "f": 0, "t": 73, "d": [8,28], "a": 1 }, + { "px": [448,16], "src": [16,32], "f": 0, "t": 73, "d": [8,60], "a": 1 }, + { "px": [448,32], "src": [16,32], "f": 0, "t": 73, "d": [8,92], "a": 1 }, + { "px": [464,32], "src": [16,32], "f": 0, "t": 73, "d": [8,93], "a": 1 }, + { "px": [448,48], "src": [16,16], "f": 0, "t": 37, "d": [8,124], "a": 1 }, + { "px": [464,48], "src": [16,32], "f": 0, "t": 73, "d": [8,125], "a": 1 }, + { "px": [496,48], "src": [16,16], "f": 0, "t": 37, "d": [8,127], "a": 1 }, + { "px": [0,64], "src": [16,16], "f": 0, "t": 37, "d": [8,128], "a": 1 }, + { "px": [448,64], "src": [16,32], "f": 0, "t": 73, "d": [8,156], "a": 1 }, + { "px": [464,64], "src": [16,32], "f": 0, "t": 73, "d": [8,157], "a": 1 }, + { "px": [496,64], "src": [16,16], "f": 0, "t": 37, "d": [8,159], "a": 1 }, + { "px": [0,80], "src": [16,32], "f": 0, "t": 73, "d": [8,160], "a": 1 }, + { "px": [448,80], "src": [16,32], "f": 0, "t": 73, "d": [8,188], "a": 1 }, + { "px": [464,80], "src": [16,32], "f": 0, "t": 73, "d": [8,189], "a": 1 }, + { "px": [0,96], "src": [16,16], "f": 0, "t": 37, "d": [8,192], "a": 1 }, + { "px": [448,96], "src": [16,16], "f": 0, "t": 37, "d": [8,220], "a": 1 }, + { "px": [0,112], "src": [16,16], "f": 0, "t": 37, "d": [8,224], "a": 1 }, + { "px": [448,112], "src": [16,16], "f": 0, "t": 37, "d": [8,252], "a": 1 }, + { "px": [0,128], "src": [16,16], "f": 0, "t": 37, "d": [8,256], "a": 1 }, + { "px": [448,128], "src": [16,32], "f": 0, "t": 73, "d": [8,284], "a": 1 }, + { "px": [0,144], "src": [16,16], "f": 0, "t": 37, "d": [8,288], "a": 1 }, + { "px": [464,144], "src": [16,16], "f": 0, "t": 37, "d": [8,317], "a": 1 }, + { "px": [480,144], "src": [16,16], "f": 0, "t": 37, "d": [8,318], "a": 1 }, + { "px": [496,144], "src": [16,32], "f": 0, "t": 73, "d": [8,319], "a": 1 }, + { "px": [0,160], "src": [16,32], "f": 0, "t": 73, "d": [8,320], "a": 1 }, + { "px": [480,160], "src": [16,32], "f": 0, "t": 73, "d": [8,350], "a": 1 }, + { "px": [0,176], "src": [16,32], "f": 0, "t": 73, "d": [8,352], "a": 1 }, + { "px": [480,176], "src": [16,32], "f": 0, "t": 73, "d": [8,382], "a": 1 }, + { "px": [496,176], "src": [16,16], "f": 0, "t": 37, "d": [8,383], "a": 1 }, + { "px": [0,192], "src": [16,16], "f": 0, "t": 37, "d": [8,384], "a": 1 }, + { "px": [16,192], "src": [16,32], "f": 0, "t": 73, "d": [8,385], "a": 1 }, + { "px": [480,192], "src": [16,32], "f": 0, "t": 73, "d": [8,414], "a": 1 }, + { "px": [496,192], "src": [16,32], "f": 0, "t": 73, "d": [8,415], "a": 1 }, + { "px": [16,208], "src": [16,32], "f": 0, "t": 73, "d": [8,417], "a": 1 }, + { "px": [432,208], "src": [16,32], "f": 0, "t": 73, "d": [8,443], "a": 1 }, + { "px": [448,208], "src": [16,16], "f": 0, "t": 37, "d": [8,444], "a": 1 }, + { "px": [464,208], "src": [16,16], "f": 0, "t": 37, "d": [8,445], "a": 1 }, + { "px": [16,224], "src": [16,32], "f": 0, "t": 73, "d": [8,449], "a": 1 }, + { "px": [32,224], "src": [16,16], "f": 0, "t": 37, "d": [8,450], "a": 1 }, + { "px": [256,224], "src": [16,32], "f": 0, "t": 73, "d": [8,464], "a": 1 }, + { "px": [272,224], "src": [16,32], "f": 0, "t": 73, "d": [8,465], "a": 1 }, + { "px": [416,224], "src": [16,32], "f": 0, "t": 73, "d": [8,474], "a": 1 }, + { "px": [432,224], "src": [16,16], "f": 0, "t": 37, "d": [8,475], "a": 1 }, + { "px": [480,224], "src": [16,16], "f": 0, "t": 37, "d": [8,478], "a": 1 }, + { "px": [496,224], "src": [16,16], "f": 0, "t": 37, "d": [8,479], "a": 1 }, + { "px": [32,240], "src": [16,16], "f": 0, "t": 37, "d": [8,482], "a": 1 }, + { "px": [240,240], "src": [16,16], "f": 0, "t": 37, "d": [8,495], "a": 1 }, + { "px": [288,240], "src": [16,16], "f": 0, "t": 37, "d": [8,498], "a": 1 }, + { "px": [384,240], "src": [16,32], "f": 0, "t": 73, "d": [8,504], "a": 1 }, + { "px": [400,240], "src": [16,16], "f": 0, "t": 37, "d": [8,505], "a": 1 }, + { "px": [432,240], "src": [16,16], "f": 0, "t": 37, "d": [8,507], "a": 1 }, + { "px": [464,0], "src": [144,192], "f": 0, "t": 441, "d": [84,29], "a": 1 }, + { "px": [464,16], "src": [160,192], "f": 0, "t": 442, "d": [84,61], "a": 1 }, + { "px": [496,80], "src": [192,192], "f": 0, "t": 444, "d": [84,191], "a": 1 }, + { "px": [464,96], "src": [176,192], "f": 0, "t": 443, "d": [84,221], "a": 1 }, + { "px": [464,112], "src": [192,192], "f": 0, "t": 444, "d": [84,253], "a": 1 }, + { "px": [464,128], "src": [176,192], "f": 0, "t": 443, "d": [84,285], "a": 1 }, + { "px": [496,128], "src": [160,192], "f": 0, "t": 442, "d": [84,287], "a": 1 }, + { "px": [496,160], "src": [144,192], "f": 0, "t": 441, "d": [84,351], "a": 1 }, + { "px": [464,145], "src": [32,144], "f": 0, "t": 326, "d": [75,317], "a": 1 }, + { "px": [448,192], "src": [64,96], "f": 0, "t": 220, "d": [9,412], "a": 1 }, + { "px": [464,192], "src": [48,96], "f": 0, "t": 219, "d": [9,413], "a": 1 }, + { "px": [400,224], "src": [16,96], "f": 0, "t": 217, "d": [9,473], "a": 1 }, + { "px": [48,240], "src": [48,96], "f": 0, "t": 219, "d": [9,483], "a": 1 }, + { "px": [64,240], "src": [64,96], "f": 0, "t": 220, "d": [9,484], "a": 1 }, + { "px": [80,240], "src": [64,96], "f": 0, "t": 220, "d": [9,485], "a": 1 }, + { "px": [96,240], "src": [16,96], "f": 0, "t": 217, "d": [9,486], "a": 1 }, + { "px": [112,240], "src": [64,96], "f": 0, "t": 220, "d": [9,487], "a": 1 }, + { "px": [128,240], "src": [64,96], "f": 0, "t": 220, "d": [9,488], "a": 1 }, + { "px": [144,240], "src": [16,96], "f": 0, "t": 217, "d": [9,489], "a": 1 }, + { "px": [160,240], "src": [16,96], "f": 0, "t": 217, "d": [9,490], "a": 1 }, + { "px": [176,240], "src": [48,96], "f": 0, "t": 219, "d": [9,491], "a": 1 }, + { "px": [192,240], "src": [64,96], "f": 0, "t": 220, "d": [9,492], "a": 1 }, + { "px": [208,240], "src": [64,96], "f": 0, "t": 220, "d": [9,493], "a": 1 }, + { "px": [224,240], "src": [64,96], "f": 0, "t": 220, "d": [9,494], "a": 1 }, + { "px": [304,240], "src": [64,96], "f": 0, "t": 220, "d": [9,499], "a": 1 }, + { "px": [320,240], "src": [48,96], "f": 0, "t": 219, "d": [9,500], "a": 1 }, + { "px": [336,240], "src": [64,96], "f": 0, "t": 220, "d": [9,501], "a": 1 }, + { "px": [352,240], "src": [64,96], "f": 0, "t": 220, "d": [9,502], "a": 1 }, + { "px": [368,240], "src": [64,96], "f": 0, "t": 220, "d": [9,503], "a": 1 }, + { "px": [447,0], "src": [0,112], "f": 0, "t": 252, "d": [10,28], "a": 1 }, + { "px": [447,16], "src": [0,112], "f": 0, "t": 252, "d": [10,60], "a": 1 }, + { "px": [447,32], "src": [0,112], "f": 0, "t": 252, "d": [10,92], "a": 1 }, + { "px": [447,48], "src": [0,128], "f": 0, "t": 288, "d": [10,124], "a": 1 }, + { "px": [2,64], "src": [0,112], "f": 1, "t": 252, "d": [10,128], "a": 1 }, + { "px": [448,64], "src": [0,112], "f": 0, "t": 252, "d": [10,156], "a": 1 }, + { "px": [1,80], "src": [0,112], "f": 1, "t": 252, "d": [10,160], "a": 1 }, + { "px": [447,80], "src": [0,128], "f": 0, "t": 288, "d": [10,188], "a": 1 }, + { "px": [1,96], "src": [0,128], "f": 1, "t": 288, "d": [10,192], "a": 1 }, + { "px": [447,96], "src": [0,128], "f": 0, "t": 288, "d": [10,220], "a": 1 }, + { "px": [1,112], "src": [0,128], "f": 1, "t": 288, "d": [10,224], "a": 1 }, + { "px": [446,112], "src": [0,128], "f": 0, "t": 288, "d": [10,252], "a": 1 }, + { "px": [1,128], "src": [0,128], "f": 1, "t": 288, "d": [10,256], "a": 1 }, + { "px": [448,128], "src": [0,112], "f": 0, "t": 252, "d": [10,284], "a": 1 }, + { "px": [0,144], "src": [0,128], "f": 1, "t": 288, "d": [10,288], "a": 1 }, + { "px": [0,160], "src": [0,112], "f": 1, "t": 252, "d": [10,320], "a": 1 }, + { "px": [479,160], "src": [0,128], "f": 0, "t": 288, "d": [10,350], "a": 1 }, + { "px": [480,176], "src": [0,112], "f": 0, "t": 252, "d": [10,382], "a": 1 }, + { "px": [18,192], "src": [0,112], "f": 1, "t": 252, "d": [10,385], "a": 1 }, + { "px": [32,224], "src": [0,112], "f": 1, "t": 252, "d": [10,450], "a": 1 }, + { "px": [448,144], "src": [0,144], "f": 0, "t": 324, "d": [77,316], "a": 1 }, + { "px": [0,48], "src": [0,96], "f": 1, "t": 216, "d": [11,96], "a": 1 }, + { "px": [16,176], "src": [0,96], "f": 1, "t": 216, "d": [11,353], "a": 1 }, + { "px": [432,192], "src": [0,96], "f": 0, "t": 216, "d": [11,411], "a": 1 }, + { "px": [32,208], "src": [0,96], "f": 1, "t": 216, "d": [11,418], "a": 1 }, + { "px": [256,208], "src": [0,96], "f": 0, "t": 216, "d": [11,432], "a": 1 }, + { "px": [272,208], "src": [0,96], "f": 1, "t": 216, "d": [11,433], "a": 1 }, + { "px": [416,208], "src": [0,96], "f": 0, "t": 216, "d": [11,442], "a": 1 }, + { "px": [240,224], "src": [0,96], "f": 0, "t": 216, "d": [11,463], "a": 1 }, + { "px": [288,224], "src": [0,96], "f": 1, "t": 216, "d": [11,466], "a": 1 }, + { "px": [384,224], "src": [0,96], "f": 0, "t": 216, "d": [11,472], "a": 1 }, + { "px": [480,144], "src": [48,144], "f": 1, "t": 327, "d": [76,318], "a": 1 }, + { "px": [0,176], "src": [64,144], "f": 0, "t": 328, "d": [14,352], "a": 1 }, + { "px": [480,192], "src": [64,144], "f": 1, "t": 328, "d": [14,414], "a": 1 }, + { "px": [16,208], "src": [64,144], "f": 0, "t": 328, "d": [14,417], "a": 1 }, + { "px": [432,208], "src": [64,144], "f": 1, "t": 328, "d": [14,443], "a": 1 }, + { "px": [256,224], "src": [64,144], "f": 1, "t": 328, "d": [14,464], "a": 1 }, + { "px": [272,224], "src": [64,144], "f": 0, "t": 328, "d": [14,465], "a": 1 }, + { "px": [416,224], "src": [64,144], "f": 1, "t": 328, "d": [14,474], "a": 1 }, + { "px": [32,240], "src": [64,144], "f": 0, "t": 328, "d": [14,482], "a": 1 }, + { "px": [240,240], "src": [64,144], "f": 1, "t": 328, "d": [14,495], "a": 1 }, + { "px": [288,240], "src": [64,144], "f": 0, "t": 328, "d": [14,498], "a": 1 }, + { "px": [384,240], "src": [64,144], "f": 1, "t": 328, "d": [14,504], "a": 1 }, + { "px": [304,208], "src": [0,224], "f": 0, "t": 504, "d": [28,435], "a": 1 }, + { "px": [320,208], "src": [0,224], "f": 0, "t": 504, "d": [28,436], "a": 1 }, + { "px": [368,208], "src": [0,224], "f": 0, "t": 504, "d": [28,439], "a": 1 }, + { "px": [384,208], "src": [0,224], "f": 0, "t": 504, "d": [28,440], "a": 1 }, + { "px": [320,224], "src": [0,224], "f": 0, "t": 504, "d": [28,468], "a": 1 }, + { "px": [288,208], "src": [32,224], "f": 0, "t": 506, "d": [74,434], "a": 1 }, + { "px": [336,208], "src": [16,240], "f": 0, "t": 541, "d": [74,437], "a": 1 }, + { "px": [352,208], "src": [32,240], "f": 0, "t": 542, "d": [74,438], "a": 1 }, + { "px": [400,208], "src": [32,224], "f": 0, "t": 506, "d": [74,441], "a": 1 }, + { "px": [304,224], "src": [16,240], "f": 0, "t": 541, "d": [74,467], "a": 1 }, + { "px": [336,224], "src": [32,240], "f": 0, "t": 542, "d": [74,469], "a": 1 }, + { "px": [352,224], "src": [16,240], "f": 0, "t": 541, "d": [74,470], "a": 1 }, + { "px": [368,224], "src": [32,224], "f": 0, "t": 506, "d": [74,471], "a": 1 }, + { "px": [288,192], "src": [0,208], "f": 0, "t": 468, "d": [21,402], "a": 1 }, + { "px": [304,193], "src": [16,208], "f": 0, "t": 469, "d": [21,403], "a": 1 }, + { "px": [320,193], "src": [0,208], "f": 0, "t": 468, "d": [21,404], "a": 1 }, + { "px": [336,192], "src": [0,208], "f": 0, "t": 468, "d": [21,405], "a": 1 }, + { "px": [352,192], "src": [16,208], "f": 0, "t": 469, "d": [21,406], "a": 1 }, + { "px": [368,192], "src": [32,208], "f": 0, "t": 470, "d": [21,407], "a": 1 }, + { "px": [384,192], "src": [0,208], "f": 0, "t": 468, "d": [21,408], "a": 1 }, + { "px": [400,192], "src": [0,208], "f": 0, "t": 468, "d": [21,409], "a": 1 }, + { "px": [288,208], "src": [192,48], "f": 0, "t": 120, "d": [111,434], "a": 1 }, + { "px": [384,208], "src": [192,48], "f": 0, "t": 120, "d": [111,440], "a": 1 }, + { "px": [400,208], "src": [176,48], "f": 0, "t": 119, "d": [111,441], "a": 1 }, + { "px": [320,224], "src": [160,48], "f": 0, "t": 118, "d": [111,468], "a": 1 }, + { "px": [352,224], "src": [176,48], "f": 0, "t": 119, "d": [111,470], "a": 1 }, + { "px": [368,224], "src": [160,48], "f": 0, "t": 118, "d": [111,471], "a": 1 }, + { "px": [288,208], "src": [192,48], "f": 0, "t": 120, "d": [99,434], "a": 1 }, + { "px": [304,224], "src": [192,48], "f": 0, "t": 120, "d": [99,467], "a": 1 }, + { "px": [352,225], "src": [208,48], "f": 0, "t": 121, "d": [99,470], "a": 1 }, + { "px": [366,224], "src": [208,48], "f": 0, "t": 121, "d": [99,471], "a": 1 }, + { "px": [464,160], "src": [80,128], "f": 1, "t": 293, "d": [95,349], "a": 1 }, + { "px": [16,160], "src": [80,160], "f": 0, "t": 365, "d": [96,321], "a": 1 }, + { "px": [464,176], "src": [80,160], "f": 1, "t": 365, "d": [96,381], "a": 1 }, + { "px": [32,192], "src": [80,144], "f": 0, "t": 329, "d": [96,386], "a": 1 }, + { "px": [416,192], "src": [80,160], "f": 1, "t": 365, "d": [96,410], "a": 1 }, + { "px": [240,208], "src": [80,160], "f": 1, "t": 365, "d": [96,431], "a": 1 }, + { "px": [288,208], "src": [80,160], "f": 0, "t": 365, "d": [96,434], "a": 1 }, + { "px": [400,208], "src": [80,160], "f": 1, "t": 365, "d": [96,441], "a": 1 }, + { "px": [48,224], "src": [80,144], "f": 0, "t": 329, "d": [96,451], "a": 1 }, + { "px": [224,224], "src": [80,144], "f": 1, "t": 329, "d": [96,462], "a": 1 }, + { "px": [304,224], "src": [80,160], "f": 0, "t": 365, "d": [96,467], "a": 1 }, + { "px": [368,224], "src": [80,144], "f": 1, "t": 329, "d": [96,471], "a": 1 }, + { "px": [0,32], "src": [48,80], "f": 0, "t": 183, "d": [97,64], "a": 1 }, + { "px": [16,162], "src": [144,112], "f": 0, "t": 261, "d": [97,321], "a": 1 }, + { "px": [432,178], "src": [16,80], "f": 0, "t": 181, "d": [97,379], "a": 1 }, + { "px": [448,178], "src": [0,80], "f": 0, "t": 180, "d": [97,380], "a": 1 }, + { "px": [464,176], "src": [16,80], "f": 0, "t": 181, "d": [97,381], "a": 1 }, + { "px": [32,193], "src": [144,112], "f": 0, "t": 261, "d": [97,386], "a": 1 }, + { "px": [272,194], "src": [144,112], "f": 0, "t": 261, "d": [97,401], "a": 1 }, + { "px": [416,193], "src": [32,80], "f": 0, "t": 182, "d": [97,410], "a": 1 }, + { "px": [240,209], "src": [112,112], "f": 0, "t": 259, "d": [97,431], "a": 1 }, + { "px": [288,208], "src": [0,80], "f": 0, "t": 180, "d": [97,434], "a": 1 }, + { "px": [384,208], "src": [144,112], "f": 0, "t": 261, "d": [97,440], "a": 1 }, + { "px": [400,209], "src": [128,112], "f": 0, "t": 260, "d": [97,441], "a": 1 }, + { "px": [48,226], "src": [112,112], "f": 0, "t": 259, "d": [97,451], "a": 1 }, + { "px": [64,225], "src": [48,80], "f": 0, "t": 183, "d": [97,452], "a": 1 }, + { "px": [80,225], "src": [144,112], "f": 0, "t": 261, "d": [97,453], "a": 1 }, + { "px": [96,224], "src": [48,80], "f": 0, "t": 183, "d": [97,454], "a": 1 }, + { "px": [112,225], "src": [0,80], "f": 0, "t": 180, "d": [97,455], "a": 1 }, + { "px": [128,224], "src": [144,112], "f": 0, "t": 261, "d": [97,456], "a": 1 }, + { "px": [192,225], "src": [48,80], "f": 0, "t": 183, "d": [97,460], "a": 1 }, + { "px": [208,224], "src": [128,112], "f": 0, "t": 260, "d": [97,461], "a": 1 }, + { "px": [224,224], "src": [144,112], "f": 0, "t": 261, "d": [97,462], "a": 1 }, + { "px": [304,226], "src": [0,80], "f": 0, "t": 180, "d": [97,467], "a": 1 }, + { "px": [336,224], "src": [144,112], "f": 0, "t": 261, "d": [97,469], "a": 1 }, + { "px": [352,225], "src": [144,112], "f": 0, "t": 261, "d": [97,470], "a": 1 }, + { "px": [368,224], "src": [32,80], "f": 0, "t": 182, "d": [97,471], "a": 1 }, + { "px": [432,0], "src": [64,112], "f": 1, "t": 256, "d": [98,27], "a": 1 }, + { "px": [432,16], "src": [64,112], "f": 1, "t": 256, "d": [98,59], "a": 1 }, + { "px": [432,32], "src": [64,128], "f": 1, "t": 292, "d": [98,91], "a": 1 }, + { "px": [16,48], "src": [64,128], "f": 0, "t": 292, "d": [98,97], "a": 1 }, + { "px": [432,48], "src": [64,128], "f": 1, "t": 292, "d": [98,123], "a": 1 }, + { "px": [16,64], "src": [64,112], "f": 0, "t": 256, "d": [98,129], "a": 1 }, + { "px": [432,64], "src": [64,112], "f": 1, "t": 256, "d": [98,155], "a": 1 }, + { "px": [16,80], "src": [64,112], "f": 0, "t": 256, "d": [98,161], "a": 1 }, + { "px": [16,96], "src": [64,128], "f": 0, "t": 292, "d": [98,193], "a": 1 }, + { "px": [16,112], "src": [64,128], "f": 0, "t": 292, "d": [98,225], "a": 1 }, + { "px": [432,112], "src": [64,112], "f": 1, "t": 256, "d": [98,251], "a": 1 }, + { "px": [16,128], "src": [64,112], "f": 0, "t": 256, "d": [98,257], "a": 1 }, + { "px": [432,128], "src": [64,112], "f": 1, "t": 256, "d": [98,283], "a": 1 }, + { "px": [432,144], "src": [64,128], "f": 1, "t": 292, "d": [98,315], "a": 1 }, + { "px": [16,160], "src": [64,112], "f": 0, "t": 256, "d": [98,321], "a": 1 }, + { "px": [464,160], "src": [64,112], "f": 1, "t": 256, "d": [98,349], "a": 1 }, + { "px": [464,176], "src": [64,112], "f": 1, "t": 256, "d": [98,381], "a": 1 }, + { "px": [240,208], "src": [64,112], "f": 1, "t": 256, "d": [98,431], "a": 1 }, + { "px": [288,208], "src": [64,128], "f": 0, "t": 292, "d": [98,434], "a": 1 }, + { "px": [400,208], "src": [64,128], "f": 1, "t": 292, "d": [98,441], "a": 1 }, + { "px": [224,224], "src": [64,112], "f": 1, "t": 256, "d": [98,462], "a": 1 }, + { "px": [304,224], "src": [64,112], "f": 0, "t": 256, "d": [98,467], "a": 1 }, + { "px": [368,224], "src": [64,128], "f": 1, "t": 292, "d": [98,471], "a": 1 }, + { "px": [448,160], "src": [112,96], "f": 0, "t": 223, "d": [101,348], "a": 1 }, + { "px": [464,160], "src": [128,96], "f": 0, "t": 224, "d": [101,349], "a": 1 }, + { "px": [480,0], "src": [208,208], "f": 0, "t": 481, "d": [104,30], "a": 1 }, + { "px": [496,0], "src": [192,208], "f": 0, "t": 480, "d": [104,31], "a": 1 }, + { "px": [480,16], "src": [192,208], "f": 0, "t": 480, "d": [104,62], "a": 1 }, + { "px": [496,16], "src": [208,208], "f": 0, "t": 481, "d": [104,63], "a": 1 }, + { "px": [480,32], "src": [176,208], "f": 0, "t": 479, "d": [104,94], "a": 1 }, + { "px": [496,32], "src": [192,208], "f": 0, "t": 480, "d": [104,95], "a": 1 }, + { "px": [480,48], "src": [176,208], "f": 0, "t": 479, "d": [104,126], "a": 1 }, + { "px": [480,64], "src": [192,208], "f": 0, "t": 480, "d": [104,158], "a": 1 }, + { "px": [480,80], "src": [176,208], "f": 0, "t": 479, "d": [104,190], "a": 1 }, + { "px": [480,96], "src": [176,208], "f": 0, "t": 479, "d": [104,222], "a": 1 }, + { "px": [496,96], "src": [192,208], "f": 0, "t": 480, "d": [104,223], "a": 1 }, + { "px": [480,112], "src": [176,208], "f": 0, "t": 479, "d": [104,254], "a": 1 }, + { "px": [496,112], "src": [192,208], "f": 0, "t": 480, "d": [104,255], "a": 1 }, + { "px": [480,128], "src": [176,208], "f": 0, "t": 479, "d": [104,286], "a": 1 }, + { "px": [0,208], "src": [208,208], "f": 0, "t": 481, "d": [104,416], "a": 1 }, + { "px": [480,208], "src": [208,208], "f": 0, "t": 481, "d": [104,446], "a": 1 }, + { "px": [496,208], "src": [192,208], "f": 0, "t": 480, "d": [104,447], "a": 1 }, + { "px": [0,224], "src": [192,208], "f": 0, "t": 480, "d": [104,448], "a": 1 }, + { "px": [448,224], "src": [208,208], "f": 0, "t": 481, "d": [104,476], "a": 1 }, + { "px": [464,224], "src": [208,208], "f": 0, "t": 481, "d": [104,477], "a": 1 }, + { "px": [0,240], "src": [208,208], "f": 0, "t": 481, "d": [104,480], "a": 1 }, + { "px": [16,240], "src": [192,208], "f": 0, "t": 480, "d": [104,481], "a": 1 }, + { "px": [256,240], "src": [208,208], "f": 0, "t": 481, "d": [104,496], "a": 1 }, + { "px": [272,240], "src": [208,208], "f": 0, "t": 481, "d": [104,497], "a": 1 }, + { "px": [416,240], "src": [176,208], "f": 0, "t": 479, "d": [104,506], "a": 1 }, + { "px": [448,240], "src": [192,208], "f": 0, "t": 480, "d": [104,508], "a": 1 }, + { "px": [464,240], "src": [176,208], "f": 0, "t": 479, "d": [104,509], "a": 1 }, + { "px": [480,240], "src": [192,208], "f": 0, "t": 480, "d": [104,510], "a": 1 }, + { "px": [496,240], "src": [192,208], "f": 0, "t": 480, "d": [104,511], "a": 1 }, + { "px": [464,0], "src": [272,176], "f": 0, "t": 413, "d": [108,29], "a": 1 }, + { "px": [480,0], "src": [272,176], "f": 0, "t": 413, "d": [108,30], "a": 1 }, + { "px": [496,0], "src": [272,176], "f": 0, "t": 413, "d": [108,31], "a": 1 }, + { "px": [464,16], "src": [272,176], "f": 0, "t": 413, "d": [108,61], "a": 1 }, + { "px": [480,16], "src": [272,176], "f": 0, "t": 413, "d": [108,62], "a": 1 }, + { "px": [496,16], "src": [272,176], "f": 0, "t": 413, "d": [108,63], "a": 1 }, + { "px": [464,32], "src": [272,176], "f": 0, "t": 413, "d": [108,93], "a": 1 }, + { "px": [480,32], "src": [272,176], "f": 0, "t": 413, "d": [108,94], "a": 1 }, + { "px": [496,32], "src": [272,176], "f": 0, "t": 413, "d": [108,95], "a": 1 }, + { "px": [464,48], "src": [272,176], "f": 0, "t": 413, "d": [108,125], "a": 1 }, + { "px": [480,48], "src": [272,176], "f": 0, "t": 413, "d": [108,126], "a": 1 }, + { "px": [496,48], "src": [272,176], "f": 0, "t": 413, "d": [108,127], "a": 1 }, + { "px": [464,64], "src": [272,176], "f": 0, "t": 413, "d": [108,157], "a": 1 }, + { "px": [480,64], "src": [272,176], "f": 0, "t": 413, "d": [108,158], "a": 1 }, + { "px": [496,64], "src": [272,176], "f": 0, "t": 413, "d": [108,159], "a": 1 }, + { "px": [464,80], "src": [272,176], "f": 0, "t": 413, "d": [108,189], "a": 1 }, + { "px": [480,80], "src": [272,176], "f": 0, "t": 413, "d": [108,190], "a": 1 }, + { "px": [496,80], "src": [272,176], "f": 0, "t": 413, "d": [108,191], "a": 1 }, + { "px": [464,96], "src": [272,176], "f": 0, "t": 413, "d": [108,221], "a": 1 }, + { "px": [480,96], "src": [272,176], "f": 0, "t": 413, "d": [108,222], "a": 1 }, + { "px": [496,96], "src": [272,176], "f": 0, "t": 413, "d": [108,223], "a": 1 }, + { "px": [464,112], "src": [272,176], "f": 0, "t": 413, "d": [108,253], "a": 1 }, + { "px": [480,112], "src": [272,176], "f": 0, "t": 413, "d": [108,254], "a": 1 }, + { "px": [496,112], "src": [272,176], "f": 0, "t": 413, "d": [108,255], "a": 1 }, + { "px": [464,128], "src": [272,176], "f": 0, "t": 413, "d": [108,285], "a": 1 }, + { "px": [480,128], "src": [272,176], "f": 0, "t": 413, "d": [108,286], "a": 1 }, + { "px": [496,128], "src": [272,176], "f": 0, "t": 413, "d": [108,287], "a": 1 }, + { "px": [496,144], "src": [272,176], "f": 0, "t": 413, "d": [108,319], "a": 1 }, + { "px": [496,160], "src": [272,176], "f": 0, "t": 413, "d": [108,351], "a": 1 }, + { "px": [496,176], "src": [272,176], "f": 0, "t": 413, "d": [108,383], "a": 1 }, + { "px": [0,192], "src": [272,176], "f": 0, "t": 413, "d": [108,384], "a": 1 }, + { "px": [496,192], "src": [272,176], "f": 0, "t": 413, "d": [108,415], "a": 1 }, + { "px": [0,208], "src": [272,176], "f": 0, "t": 413, "d": [108,416], "a": 1 }, + { "px": [448,208], "src": [272,176], "f": 0, "t": 413, "d": [108,444], "a": 1 }, + { "px": [464,208], "src": [272,176], "f": 0, "t": 413, "d": [108,445], "a": 1 }, + { "px": [480,208], "src": [272,176], "f": 0, "t": 413, "d": [108,446], "a": 1 }, + { "px": [496,208], "src": [272,176], "f": 0, "t": 413, "d": [108,447], "a": 1 }, + { "px": [0,224], "src": [272,176], "f": 0, "t": 413, "d": [108,448], "a": 1 }, + { "px": [16,224], "src": [272,176], "f": 0, "t": 413, "d": [108,449], "a": 1 }, + { "px": [432,224], "src": [272,176], "f": 0, "t": 413, "d": [108,475], "a": 1 }, + { "px": [448,224], "src": [272,176], "f": 0, "t": 413, "d": [108,476], "a": 1 }, + { "px": [464,224], "src": [272,176], "f": 0, "t": 413, "d": [108,477], "a": 1 }, + { "px": [480,224], "src": [272,176], "f": 0, "t": 413, "d": [108,478], "a": 1 }, + { "px": [496,224], "src": [272,176], "f": 0, "t": 413, "d": [108,479], "a": 1 }, + { "px": [0,240], "src": [272,176], "f": 0, "t": 413, "d": [108,480], "a": 1 }, + { "px": [16,240], "src": [272,176], "f": 0, "t": 413, "d": [108,481], "a": 1 }, + { "px": [256,240], "src": [272,176], "f": 0, "t": 413, "d": [108,496], "a": 1 }, + { "px": [272,240], "src": [272,176], "f": 0, "t": 413, "d": [108,497], "a": 1 }, + { "px": [400,240], "src": [272,176], "f": 0, "t": 413, "d": [108,505], "a": 1 }, + { "px": [416,240], "src": [272,176], "f": 0, "t": 413, "d": [108,506], "a": 1 }, + { "px": [432,240], "src": [272,176], "f": 0, "t": 413, "d": [108,507], "a": 1 }, + { "px": [448,240], "src": [272,176], "f": 0, "t": 413, "d": [108,508], "a": 1 }, + { "px": [464,240], "src": [272,176], "f": 0, "t": 413, "d": [108,509], "a": 1 }, + { "px": [480,240], "src": [272,176], "f": 0, "t": 413, "d": [108,510], "a": 1 }, + { "px": [496,240], "src": [272,176], "f": 0, "t": 413, "d": [108,511], "a": 1 }, + { "px": [480,144], "src": [272,192], "f": 1, "t": 449, "d": [109,318], "a": 1 }, + { "px": [0,176], "src": [272,192], "f": 2, "t": 449, "d": [109,352], "a": 1 }, + { "px": [480,192], "src": [272,192], "f": 3, "t": 449, "d": [109,414], "a": 1 }, + { "px": [16,208], "src": [272,192], "f": 2, "t": 449, "d": [109,417], "a": 1 }, + { "px": [432,208], "src": [272,192], "f": 3, "t": 449, "d": [109,443], "a": 1 }, + { "px": [256,224], "src": [272,192], "f": 3, "t": 449, "d": [109,464], "a": 1 }, + { "px": [272,224], "src": [272,192], "f": 2, "t": 449, "d": [109,465], "a": 1 }, + { "px": [416,224], "src": [272,192], "f": 3, "t": 449, "d": [109,474], "a": 1 }, + { "px": [32,240], "src": [272,192], "f": 2, "t": 449, "d": [109,482], "a": 1 }, + { "px": [240,240], "src": [272,192], "f": 3, "t": 449, "d": [109,495], "a": 1 }, + { "px": [288,240], "src": [272,192], "f": 2, "t": 449, "d": [109,498], "a": 1 }, + { "px": [384,240], "src": [272,192], "f": 3, "t": 449, "d": [109,504], "a": 1 } + ], + "seed": 6520846, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 73, + "__tilesetRelPath": "atlas/NuclearBlaze_by_deepnight.aseprite", + "iid": "b7a1be72-66b0-11ec-895f-25221448451e", + "levelId": 115, + "layerDefUid": 48, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [16,0], "src": [64,192], "f": 0, "t": 436, "d": [51,1], "a": 1 }, + { "px": [112,0], "src": [48,192], "f": 0, "t": 435, "d": [51,7], "a": 1 }, + { "px": [144,0], "src": [48,192], "f": 0, "t": 435, "d": [51,9], "a": 1 }, + { "px": [272,0], "src": [48,192], "f": 0, "t": 435, "d": [51,17], "a": 1 }, + { "px": [352,0], "src": [48,192], "f": 0, "t": 435, "d": [51,22], "a": 1 }, + { "px": [368,0], "src": [64,192], "f": 0, "t": 436, "d": [51,23], "a": 1 }, + { "px": [112,16], "src": [80,192], "f": 0, "t": 437, "d": [51,39], "a": 1 }, + { "px": [160,16], "src": [48,192], "f": 0, "t": 435, "d": [51,42], "a": 1 }, + { "px": [176,16], "src": [48,192], "f": 0, "t": 435, "d": [51,43], "a": 1 }, + { "px": [352,16], "src": [64,192], "f": 0, "t": 436, "d": [51,54], "a": 1 }, + { "px": [368,16], "src": [48,192], "f": 0, "t": 435, "d": [51,55], "a": 1 }, + { "px": [16,32], "src": [64,192], "f": 0, "t": 436, "d": [51,65], "a": 1 }, + { "px": [112,32], "src": [64,192], "f": 0, "t": 436, "d": [51,71], "a": 1 }, + { "px": [144,32], "src": [64,192], "f": 0, "t": 436, "d": [51,73], "a": 1 }, + { "px": [160,32], "src": [64,192], "f": 0, "t": 436, "d": [51,74], "a": 1 }, + { "px": [288,32], "src": [48,192], "f": 0, "t": 435, "d": [51,82], "a": 1 }, + { "px": [352,32], "src": [80,192], "f": 0, "t": 437, "d": [51,86], "a": 1 }, + { "px": [368,32], "src": [80,192], "f": 0, "t": 437, "d": [51,87], "a": 1 }, + { "px": [80,48], "src": [48,192], "f": 0, "t": 435, "d": [51,101], "a": 1 }, + { "px": [96,48], "src": [48,192], "f": 0, "t": 435, "d": [51,102], "a": 1 }, + { "px": [112,48], "src": [64,192], "f": 0, "t": 436, "d": [51,103], "a": 1 }, + { "px": [224,48], "src": [80,192], "f": 0, "t": 437, "d": [51,110], "a": 1 }, + { "px": [240,48], "src": [48,192], "f": 0, "t": 435, "d": [51,111], "a": 1 }, + { "px": [288,48], "src": [80,192], "f": 0, "t": 437, "d": [51,114], "a": 1 }, + { "px": [352,48], "src": [80,192], "f": 0, "t": 437, "d": [51,118], "a": 1 }, + { "px": [368,48], "src": [80,192], "f": 0, "t": 437, "d": [51,119], "a": 1 }, + { "px": [416,48], "src": [80,192], "f": 0, "t": 437, "d": [51,122], "a": 1 }, + { "px": [16,64], "src": [64,192], "f": 0, "t": 436, "d": [51,129], "a": 1 }, + { "px": [32,64], "src": [80,192], "f": 0, "t": 437, "d": [51,130], "a": 1 }, + { "px": [48,64], "src": [48,192], "f": 0, "t": 435, "d": [51,131], "a": 1 }, + { "px": [96,64], "src": [64,192], "f": 0, "t": 436, "d": [51,134], "a": 1 }, + { "px": [112,64], "src": [80,192], "f": 0, "t": 437, "d": [51,135], "a": 1 }, + { "px": [224,64], "src": [64,192], "f": 0, "t": 436, "d": [51,142], "a": 1 }, + { "px": [240,64], "src": [48,192], "f": 0, "t": 435, "d": [51,143], "a": 1 }, + { "px": [272,64], "src": [48,192], "f": 0, "t": 435, "d": [51,145], "a": 1 }, + { "px": [400,64], "src": [64,192], "f": 0, "t": 436, "d": [51,153], "a": 1 }, + { "px": [416,64], "src": [80,192], "f": 0, "t": 437, "d": [51,154], "a": 1 }, + { "px": [432,64], "src": [80,192], "f": 0, "t": 437, "d": [51,155], "a": 1 }, + { "px": [32,80], "src": [48,192], "f": 0, "t": 435, "d": [51,162], "a": 1 }, + { "px": [96,80], "src": [64,192], "f": 0, "t": 436, "d": [51,166], "a": 1 }, + { "px": [112,80], "src": [48,192], "f": 0, "t": 435, "d": [51,167], "a": 1 }, + { "px": [208,80], "src": [80,192], "f": 0, "t": 437, "d": [51,173], "a": 1 }, + { "px": [224,80], "src": [64,192], "f": 0, "t": 436, "d": [51,174], "a": 1 }, + { "px": [336,80], "src": [48,192], "f": 0, "t": 435, "d": [51,181], "a": 1 }, + { "px": [352,80], "src": [48,192], "f": 0, "t": 435, "d": [51,182], "a": 1 }, + { "px": [416,80], "src": [64,192], "f": 0, "t": 436, "d": [51,186], "a": 1 }, + { "px": [432,80], "src": [48,192], "f": 0, "t": 435, "d": [51,187], "a": 1 }, + { "px": [32,96], "src": [48,192], "f": 0, "t": 435, "d": [51,194], "a": 1 }, + { "px": [80,96], "src": [80,192], "f": 0, "t": 437, "d": [51,197], "a": 1 }, + { "px": [96,96], "src": [80,192], "f": 0, "t": 437, "d": [51,198], "a": 1 }, + { "px": [112,96], "src": [64,192], "f": 0, "t": 436, "d": [51,199], "a": 1 }, + { "px": [176,96], "src": [80,192], "f": 0, "t": 437, "d": [51,203], "a": 1 }, + { "px": [288,96], "src": [48,192], "f": 0, "t": 435, "d": [51,210], "a": 1 }, + { "px": [336,96], "src": [64,192], "f": 0, "t": 436, "d": [51,213], "a": 1 }, + { "px": [416,96], "src": [80,192], "f": 0, "t": 437, "d": [51,218], "a": 1 }, + { "px": [160,112], "src": [64,192], "f": 0, "t": 436, "d": [51,234], "a": 1 }, + { "px": [336,112], "src": [64,192], "f": 0, "t": 436, "d": [51,245], "a": 1 }, + { "px": [352,112], "src": [64,192], "f": 0, "t": 436, "d": [51,246], "a": 1 }, + { "px": [16,128], "src": [80,192], "f": 0, "t": 437, "d": [51,257], "a": 1 }, + { "px": [48,128], "src": [64,192], "f": 0, "t": 436, "d": [51,259], "a": 1 }, + { "px": [144,128], "src": [48,192], "f": 0, "t": 435, "d": [51,265], "a": 1 }, + { "px": [160,128], "src": [48,192], "f": 0, "t": 435, "d": [51,266], "a": 1 }, + { "px": [336,128], "src": [80,192], "f": 0, "t": 437, "d": [51,277], "a": 1 }, + { "px": [32,144], "src": [64,192], "f": 0, "t": 436, "d": [51,290], "a": 1 }, + { "px": [48,144], "src": [80,192], "f": 0, "t": 437, "d": [51,291], "a": 1 }, + { "px": [96,144], "src": [48,192], "f": 0, "t": 435, "d": [51,294], "a": 1 }, + { "px": [112,144], "src": [48,192], "f": 0, "t": 435, "d": [51,295], "a": 1 }, + { "px": [144,144], "src": [64,192], "f": 0, "t": 436, "d": [51,297], "a": 1 }, + { "px": [240,144], "src": [48,192], "f": 0, "t": 435, "d": [51,303], "a": 1 }, + { "px": [336,144], "src": [80,192], "f": 0, "t": 437, "d": [51,309], "a": 1 }, + { "px": [416,144], "src": [48,192], "f": 0, "t": 435, "d": [51,314], "a": 1 }, + { "px": [112,160], "src": [48,192], "f": 0, "t": 435, "d": [51,327], "a": 1 }, + { "px": [224,160], "src": [80,192], "f": 0, "t": 437, "d": [51,334], "a": 1 }, + { "px": [336,160], "src": [80,192], "f": 0, "t": 437, "d": [51,341], "a": 1 }, + { "px": [352,160], "src": [64,192], "f": 0, "t": 436, "d": [51,342], "a": 1 }, + { "px": [400,160], "src": [48,192], "f": 0, "t": 435, "d": [51,345], "a": 1 }, + { "px": [112,176], "src": [64,192], "f": 0, "t": 436, "d": [51,359], "a": 1 }, + { "px": [160,176], "src": [64,192], "f": 0, "t": 436, "d": [51,362], "a": 1 }, + { "px": [208,176], "src": [48,192], "f": 0, "t": 435, "d": [51,365], "a": 1 }, + { "px": [224,176], "src": [48,192], "f": 0, "t": 435, "d": [51,366], "a": 1 }, + { "px": [240,176], "src": [64,192], "f": 0, "t": 436, "d": [51,367], "a": 1 }, + { "px": [336,176], "src": [64,192], "f": 0, "t": 436, "d": [51,373], "a": 1 }, + { "px": [400,176], "src": [80,192], "f": 0, "t": 437, "d": [51,377], "a": 1 }, + { "px": [416,176], "src": [80,192], "f": 0, "t": 437, "d": [51,378], "a": 1 }, + { "px": [432,176], "src": [64,192], "f": 0, "t": 436, "d": [51,379], "a": 1 }, + { "px": [464,176], "src": [80,192], "f": 0, "t": 437, "d": [51,381], "a": 1 }, + { "px": [112,192], "src": [80,192], "f": 0, "t": 437, "d": [51,391], "a": 1 }, + { "px": [208,192], "src": [48,192], "f": 0, "t": 435, "d": [51,397], "a": 1 }, + { "px": [224,192], "src": [48,192], "f": 0, "t": 435, "d": [51,398], "a": 1 }, + { "px": [240,192], "src": [80,192], "f": 0, "t": 437, "d": [51,399], "a": 1 }, + { "px": [80,208], "src": [64,192], "f": 0, "t": 436, "d": [51,421], "a": 1 }, + { "px": [96,208], "src": [80,192], "f": 0, "t": 437, "d": [51,422], "a": 1 }, + { "px": [112,208], "src": [80,192], "f": 0, "t": 437, "d": [51,423], "a": 1 }, + { "px": [224,208], "src": [64,192], "f": 0, "t": 436, "d": [51,430], "a": 1 }, + { "px": [240,208], "src": [80,192], "f": 0, "t": 437, "d": [51,431], "a": 1 }, + { "px": [304,208], "src": [64,192], "f": 0, "t": 436, "d": [51,435], "a": 1 }, + { "px": [320,208], "src": [48,192], "f": 0, "t": 435, "d": [51,436], "a": 1 }, + { "px": [336,208], "src": [80,192], "f": 0, "t": 437, "d": [51,437], "a": 1 }, + { "px": [352,208], "src": [48,192], "f": 0, "t": 435, "d": [51,438], "a": 1 }, + { "px": [368,208], "src": [80,192], "f": 0, "t": 437, "d": [51,439], "a": 1 }, + { "px": [384,208], "src": [48,192], "f": 0, "t": 435, "d": [51,440], "a": 1 }, + { "px": [96,224], "src": [48,192], "f": 0, "t": 435, "d": [51,454], "a": 1 }, + { "px": [112,224], "src": [48,192], "f": 0, "t": 435, "d": [51,455], "a": 1 }, + { "px": [304,224], "src": [48,192], "f": 0, "t": 435, "d": [51,467], "a": 1 }, + { "px": [320,224], "src": [64,192], "f": 0, "t": 436, "d": [51,468], "a": 1 }, + { "px": [336,224], "src": [80,192], "f": 0, "t": 437, "d": [51,469], "a": 1 }, + { "px": [176,0], "src": [128,192], "f": 0, "t": 440, "d": [85,11], "a": 1 }, + { "px": [240,0], "src": [128,192], "f": 0, "t": 440, "d": [85,15], "a": 1 }, + { "px": [304,0], "src": [96,192], "f": 0, "t": 438, "d": [85,19], "a": 1 }, + { "px": [400,16], "src": [112,192], "f": 0, "t": 439, "d": [85,57], "a": 1 }, + { "px": [416,16], "src": [128,192], "f": 0, "t": 440, "d": [85,58], "a": 1 }, + { "px": [400,32], "src": [128,192], "f": 0, "t": 440, "d": [85,89], "a": 1 }, + { "px": [416,32], "src": [112,192], "f": 0, "t": 439, "d": [85,90], "a": 1 }, + { "px": [144,48], "src": [112,192], "f": 0, "t": 439, "d": [85,105], "a": 1 }, + { "px": [208,48], "src": [128,192], "f": 0, "t": 440, "d": [85,109], "a": 1 }, + { "px": [80,64], "src": [128,192], "f": 0, "t": 440, "d": [85,133], "a": 1 }, + { "px": [208,64], "src": [128,192], "f": 0, "t": 440, "d": [85,141], "a": 1 }, + { "px": [288,64], "src": [112,192], "f": 0, "t": 439, "d": [85,146], "a": 1 }, + { "px": [16,80], "src": [128,192], "f": 0, "t": 440, "d": [85,161], "a": 1 }, + { "px": [48,80], "src": [128,192], "f": 0, "t": 440, "d": [85,163], "a": 1 }, + { "px": [80,80], "src": [112,192], "f": 0, "t": 439, "d": [85,165], "a": 1 }, + { "px": [240,80], "src": [112,192], "f": 0, "t": 439, "d": [85,175], "a": 1 }, + { "px": [272,80], "src": [96,192], "f": 0, "t": 438, "d": [85,177], "a": 1 }, + { "px": [288,80], "src": [128,192], "f": 0, "t": 440, "d": [85,178], "a": 1 }, + { "px": [16,96], "src": [112,192], "f": 0, "t": 439, "d": [85,193], "a": 1 }, + { "px": [48,96], "src": [96,192], "f": 0, "t": 438, "d": [85,195], "a": 1 }, + { "px": [272,96], "src": [96,192], "f": 0, "t": 438, "d": [85,209], "a": 1 }, + { "px": [432,96], "src": [128,192], "f": 0, "t": 440, "d": [85,219], "a": 1 }, + { "px": [16,112], "src": [128,192], "f": 0, "t": 440, "d": [85,225], "a": 1 }, + { "px": [272,112], "src": [112,192], "f": 0, "t": 439, "d": [85,241], "a": 1 }, + { "px": [288,112], "src": [128,192], "f": 0, "t": 440, "d": [85,242], "a": 1 }, + { "px": [304,112], "src": [96,192], "f": 0, "t": 438, "d": [85,243], "a": 1 }, + { "px": [400,112], "src": [96,192], "f": 0, "t": 438, "d": [85,249], "a": 1 }, + { "px": [416,112], "src": [128,192], "f": 0, "t": 440, "d": [85,250], "a": 1 }, + { "px": [432,112], "src": [96,192], "f": 0, "t": 438, "d": [85,251], "a": 1 }, + { "px": [32,128], "src": [112,192], "f": 0, "t": 439, "d": [85,258], "a": 1 }, + { "px": [224,128], "src": [128,192], "f": 0, "t": 440, "d": [85,270], "a": 1 }, + { "px": [240,128], "src": [128,192], "f": 0, "t": 440, "d": [85,271], "a": 1 }, + { "px": [272,128], "src": [128,192], "f": 0, "t": 440, "d": [85,273], "a": 1 }, + { "px": [288,128], "src": [96,192], "f": 0, "t": 438, "d": [85,274], "a": 1 }, + { "px": [304,128], "src": [112,192], "f": 0, "t": 439, "d": [85,275], "a": 1 }, + { "px": [416,128], "src": [112,192], "f": 0, "t": 439, "d": [85,282], "a": 1 }, + { "px": [224,144], "src": [96,192], "f": 0, "t": 438, "d": [85,302], "a": 1 }, + { "px": [304,144], "src": [112,192], "f": 0, "t": 439, "d": [85,307], "a": 1 }, + { "px": [144,160], "src": [96,192], "f": 0, "t": 438, "d": [85,329], "a": 1 }, + { "px": [208,160], "src": [112,192], "f": 0, "t": 439, "d": [85,333], "a": 1 }, + { "px": [416,160], "src": [112,192], "f": 0, "t": 439, "d": [85,346], "a": 1 }, + { "px": [464,160], "src": [96,192], "f": 0, "t": 438, "d": [85,349], "a": 1 }, + { "px": [144,176], "src": [96,192], "f": 0, "t": 438, "d": [85,361], "a": 1 }, + { "px": [80,192], "src": [96,192], "f": 0, "t": 438, "d": [85,389], "a": 1 }, + { "px": [144,192], "src": [128,192], "f": 0, "t": 440, "d": [85,393], "a": 1 }, + { "px": [160,192], "src": [128,192], "f": 0, "t": 440, "d": [85,394], "a": 1 }, + { "px": [368,192], "src": [112,192], "f": 0, "t": 439, "d": [85,407], "a": 1 }, + { "px": [400,192], "src": [128,192], "f": 0, "t": 440, "d": [85,409], "a": 1 }, + { "px": [416,192], "src": [96,192], "f": 0, "t": 438, "d": [85,410], "a": 1 }, + { "px": [48,224], "src": [128,192], "f": 0, "t": 440, "d": [85,451], "a": 1 }, + { "px": [144,224], "src": [96,192], "f": 0, "t": 438, "d": [85,457], "a": 1 }, + { "px": [160,224], "src": [96,192], "f": 0, "t": 438, "d": [85,458], "a": 1 }, + { "px": [32,0], "src": [32,192], "f": 0, "t": 434, "d": [102,2], "a": 1 }, + { "px": [48,0], "src": [32,192], "f": 0, "t": 434, "d": [102,3], "a": 1 }, + { "px": [80,0], "src": [16,192], "f": 0, "t": 433, "d": [102,5], "a": 1 }, + { "px": [96,0], "src": [0,192], "f": 0, "t": 432, "d": [102,6], "a": 1 }, + { "px": [160,0], "src": [32,192], "f": 0, "t": 434, "d": [102,10], "a": 1 }, + { "px": [208,0], "src": [32,192], "f": 0, "t": 434, "d": [102,13], "a": 1 }, + { "px": [224,0], "src": [0,192], "f": 0, "t": 432, "d": [102,14], "a": 1 }, + { "px": [288,0], "src": [16,192], "f": 0, "t": 433, "d": [102,18], "a": 1 }, + { "px": [336,0], "src": [0,192], "f": 0, "t": 432, "d": [102,21], "a": 1 }, + { "px": [400,0], "src": [32,192], "f": 0, "t": 434, "d": [102,25], "a": 1 }, + { "px": [416,0], "src": [32,192], "f": 0, "t": 434, "d": [102,26], "a": 1 }, + { "px": [432,0], "src": [32,192], "f": 0, "t": 434, "d": [102,27], "a": 1 }, + { "px": [16,16], "src": [32,192], "f": 0, "t": 434, "d": [102,33], "a": 1 }, + { "px": [32,16], "src": [16,192], "f": 0, "t": 433, "d": [102,34], "a": 1 }, + { "px": [48,16], "src": [32,192], "f": 0, "t": 434, "d": [102,35], "a": 1 }, + { "px": [80,16], "src": [0,192], "f": 0, "t": 432, "d": [102,37], "a": 1 }, + { "px": [96,16], "src": [16,192], "f": 0, "t": 433, "d": [102,38], "a": 1 }, + { "px": [144,16], "src": [0,192], "f": 0, "t": 432, "d": [102,41], "a": 1 }, + { "px": [208,16], "src": [32,192], "f": 0, "t": 434, "d": [102,45], "a": 1 }, + { "px": [224,16], "src": [32,192], "f": 0, "t": 434, "d": [102,46], "a": 1 }, + { "px": [240,16], "src": [0,192], "f": 0, "t": 432, "d": [102,47], "a": 1 }, + { "px": [272,16], "src": [32,192], "f": 0, "t": 434, "d": [102,49], "a": 1 }, + { "px": [288,16], "src": [16,192], "f": 0, "t": 433, "d": [102,50], "a": 1 }, + { "px": [304,16], "src": [32,192], "f": 0, "t": 434, "d": [102,51], "a": 1 }, + { "px": [336,16], "src": [16,192], "f": 0, "t": 433, "d": [102,53], "a": 1 }, + { "px": [432,16], "src": [0,192], "f": 0, "t": 432, "d": [102,59], "a": 1 }, + { "px": [32,32], "src": [16,192], "f": 0, "t": 433, "d": [102,66], "a": 1 }, + { "px": [48,32], "src": [0,192], "f": 0, "t": 432, "d": [102,67], "a": 1 }, + { "px": [80,32], "src": [32,192], "f": 0, "t": 434, "d": [102,69], "a": 1 }, + { "px": [96,32], "src": [0,192], "f": 0, "t": 432, "d": [102,70], "a": 1 }, + { "px": [176,32], "src": [0,192], "f": 0, "t": 432, "d": [102,75], "a": 1 }, + { "px": [208,32], "src": [0,192], "f": 0, "t": 432, "d": [102,77], "a": 1 }, + { "px": [224,32], "src": [16,192], "f": 0, "t": 433, "d": [102,78], "a": 1 }, + { "px": [240,32], "src": [0,192], "f": 0, "t": 432, "d": [102,79], "a": 1 }, + { "px": [272,32], "src": [16,192], "f": 0, "t": 433, "d": [102,81], "a": 1 }, + { "px": [304,32], "src": [32,192], "f": 0, "t": 434, "d": [102,83], "a": 1 }, + { "px": [336,32], "src": [32,192], "f": 0, "t": 434, "d": [102,85], "a": 1 }, + { "px": [432,32], "src": [0,192], "f": 0, "t": 432, "d": [102,91], "a": 1 }, + { "px": [16,48], "src": [16,192], "f": 0, "t": 433, "d": [102,97], "a": 1 }, + { "px": [32,48], "src": [0,192], "f": 0, "t": 432, "d": [102,98], "a": 1 }, + { "px": [48,48], "src": [32,192], "f": 0, "t": 434, "d": [102,99], "a": 1 }, + { "px": [160,48], "src": [0,192], "f": 0, "t": 432, "d": [102,106], "a": 1 }, + { "px": [176,48], "src": [16,192], "f": 0, "t": 433, "d": [102,107], "a": 1 }, + { "px": [272,48], "src": [0,192], "f": 0, "t": 432, "d": [102,113], "a": 1 }, + { "px": [304,48], "src": [0,192], "f": 0, "t": 432, "d": [102,115], "a": 1 }, + { "px": [336,48], "src": [32,192], "f": 0, "t": 434, "d": [102,117], "a": 1 }, + { "px": [400,48], "src": [32,192], "f": 0, "t": 434, "d": [102,121], "a": 1 }, + { "px": [432,48], "src": [32,192], "f": 0, "t": 434, "d": [102,123], "a": 1 }, + { "px": [144,64], "src": [32,192], "f": 0, "t": 434, "d": [102,137], "a": 1 }, + { "px": [160,64], "src": [0,192], "f": 0, "t": 432, "d": [102,138], "a": 1 }, + { "px": [176,64], "src": [0,192], "f": 0, "t": 432, "d": [102,139], "a": 1 }, + { "px": [304,64], "src": [0,192], "f": 0, "t": 432, "d": [102,147], "a": 1 }, + { "px": [336,64], "src": [0,192], "f": 0, "t": 432, "d": [102,149], "a": 1 }, + { "px": [352,64], "src": [0,192], "f": 0, "t": 432, "d": [102,150], "a": 1 }, + { "px": [368,64], "src": [16,192], "f": 0, "t": 433, "d": [102,151], "a": 1 }, + { "px": [144,80], "src": [0,192], "f": 0, "t": 432, "d": [102,169], "a": 1 }, + { "px": [160,80], "src": [0,192], "f": 0, "t": 432, "d": [102,170], "a": 1 }, + { "px": [176,80], "src": [16,192], "f": 0, "t": 433, "d": [102,171], "a": 1 }, + { "px": [304,80], "src": [16,192], "f": 0, "t": 433, "d": [102,179], "a": 1 }, + { "px": [368,80], "src": [32,192], "f": 0, "t": 434, "d": [102,183], "a": 1 }, + { "px": [400,80], "src": [16,192], "f": 0, "t": 433, "d": [102,185], "a": 1 }, + { "px": [144,96], "src": [32,192], "f": 0, "t": 434, "d": [102,201], "a": 1 }, + { "px": [160,96], "src": [0,192], "f": 0, "t": 432, "d": [102,202], "a": 1 }, + { "px": [208,96], "src": [16,192], "f": 0, "t": 433, "d": [102,205], "a": 1 }, + { "px": [224,96], "src": [16,192], "f": 0, "t": 433, "d": [102,206], "a": 1 }, + { "px": [240,96], "src": [32,192], "f": 0, "t": 434, "d": [102,207], "a": 1 }, + { "px": [304,96], "src": [16,192], "f": 0, "t": 433, "d": [102,211], "a": 1 }, + { "px": [352,96], "src": [0,192], "f": 0, "t": 432, "d": [102,214], "a": 1 }, + { "px": [368,96], "src": [32,192], "f": 0, "t": 434, "d": [102,215], "a": 1 }, + { "px": [400,96], "src": [16,192], "f": 0, "t": 433, "d": [102,217], "a": 1 }, + { "px": [32,112], "src": [32,192], "f": 0, "t": 434, "d": [102,226], "a": 1 }, + { "px": [48,112], "src": [32,192], "f": 0, "t": 434, "d": [102,227], "a": 1 }, + { "px": [80,112], "src": [0,192], "f": 0, "t": 432, "d": [102,229], "a": 1 }, + { "px": [96,112], "src": [16,192], "f": 0, "t": 433, "d": [102,230], "a": 1 }, + { "px": [112,112], "src": [16,192], "f": 0, "t": 433, "d": [102,231], "a": 1 }, + { "px": [144,112], "src": [16,192], "f": 0, "t": 433, "d": [102,233], "a": 1 }, + { "px": [176,112], "src": [16,192], "f": 0, "t": 433, "d": [102,235], "a": 1 }, + { "px": [208,112], "src": [32,192], "f": 0, "t": 434, "d": [102,237], "a": 1 }, + { "px": [224,112], "src": [32,192], "f": 0, "t": 434, "d": [102,238], "a": 1 }, + { "px": [240,112], "src": [32,192], "f": 0, "t": 434, "d": [102,239], "a": 1 }, + { "px": [368,112], "src": [0,192], "f": 0, "t": 432, "d": [102,247], "a": 1 }, + { "px": [80,128], "src": [32,192], "f": 0, "t": 434, "d": [102,261], "a": 1 }, + { "px": [96,128], "src": [32,192], "f": 0, "t": 434, "d": [102,262], "a": 1 }, + { "px": [112,128], "src": [16,192], "f": 0, "t": 433, "d": [102,263], "a": 1 }, + { "px": [176,128], "src": [16,192], "f": 0, "t": 433, "d": [102,267], "a": 1 }, + { "px": [208,128], "src": [16,192], "f": 0, "t": 433, "d": [102,269], "a": 1 }, + { "px": [352,128], "src": [32,192], "f": 0, "t": 434, "d": [102,278], "a": 1 }, + { "px": [368,128], "src": [16,192], "f": 0, "t": 433, "d": [102,279], "a": 1 }, + { "px": [400,128], "src": [32,192], "f": 0, "t": 434, "d": [102,281], "a": 1 }, + { "px": [432,128], "src": [32,192], "f": 0, "t": 434, "d": [102,283], "a": 1 }, + { "px": [16,144], "src": [32,192], "f": 0, "t": 434, "d": [102,289], "a": 1 }, + { "px": [80,144], "src": [16,192], "f": 0, "t": 433, "d": [102,293], "a": 1 }, + { "px": [160,144], "src": [0,192], "f": 0, "t": 432, "d": [102,298], "a": 1 }, + { "px": [176,144], "src": [0,192], "f": 0, "t": 432, "d": [102,299], "a": 1 }, + { "px": [208,144], "src": [16,192], "f": 0, "t": 433, "d": [102,301], "a": 1 }, + { "px": [272,144], "src": [32,192], "f": 0, "t": 434, "d": [102,305], "a": 1 }, + { "px": [288,144], "src": [32,192], "f": 0, "t": 434, "d": [102,306], "a": 1 }, + { "px": [352,144], "src": [0,192], "f": 0, "t": 432, "d": [102,310], "a": 1 }, + { "px": [368,144], "src": [0,192], "f": 0, "t": 432, "d": [102,311], "a": 1 }, + { "px": [400,144], "src": [32,192], "f": 0, "t": 434, "d": [102,313], "a": 1 }, + { "px": [432,144], "src": [0,192], "f": 0, "t": 432, "d": [102,315], "a": 1 }, + { "px": [16,160], "src": [16,192], "f": 0, "t": 433, "d": [102,321], "a": 1 }, + { "px": [32,160], "src": [16,192], "f": 0, "t": 433, "d": [102,322], "a": 1 }, + { "px": [48,160], "src": [16,192], "f": 0, "t": 433, "d": [102,323], "a": 1 }, + { "px": [80,160], "src": [32,192], "f": 0, "t": 434, "d": [102,325], "a": 1 }, + { "px": [96,160], "src": [32,192], "f": 0, "t": 434, "d": [102,326], "a": 1 }, + { "px": [160,160], "src": [32,192], "f": 0, "t": 434, "d": [102,330], "a": 1 }, + { "px": [176,160], "src": [0,192], "f": 0, "t": 432, "d": [102,331], "a": 1 }, + { "px": [240,160], "src": [0,192], "f": 0, "t": 432, "d": [102,335], "a": 1 }, + { "px": [272,160], "src": [0,192], "f": 0, "t": 432, "d": [102,337], "a": 1 }, + { "px": [288,160], "src": [0,192], "f": 0, "t": 432, "d": [102,338], "a": 1 }, + { "px": [304,160], "src": [0,192], "f": 0, "t": 432, "d": [102,339], "a": 1 }, + { "px": [368,160], "src": [32,192], "f": 0, "t": 434, "d": [102,343], "a": 1 }, + { "px": [432,160], "src": [0,192], "f": 0, "t": 432, "d": [102,347], "a": 1 }, + { "px": [32,176], "src": [32,192], "f": 0, "t": 434, "d": [102,354], "a": 1 }, + { "px": [48,176], "src": [0,192], "f": 0, "t": 432, "d": [102,355], "a": 1 }, + { "px": [80,176], "src": [32,192], "f": 0, "t": 434, "d": [102,357], "a": 1 }, + { "px": [96,176], "src": [0,192], "f": 0, "t": 432, "d": [102,358], "a": 1 }, + { "px": [176,176], "src": [0,192], "f": 0, "t": 432, "d": [102,363], "a": 1 }, + { "px": [272,176], "src": [16,192], "f": 0, "t": 433, "d": [102,369], "a": 1 }, + { "px": [288,176], "src": [32,192], "f": 0, "t": 434, "d": [102,370], "a": 1 }, + { "px": [304,176], "src": [32,192], "f": 0, "t": 434, "d": [102,371], "a": 1 }, + { "px": [352,176], "src": [16,192], "f": 0, "t": 433, "d": [102,374], "a": 1 }, + { "px": [368,176], "src": [0,192], "f": 0, "t": 432, "d": [102,375], "a": 1 }, + { "px": [32,192], "src": [16,192], "f": 0, "t": 433, "d": [102,386], "a": 1 }, + { "px": [48,192], "src": [16,192], "f": 0, "t": 433, "d": [102,387], "a": 1 }, + { "px": [96,192], "src": [0,192], "f": 0, "t": 432, "d": [102,390], "a": 1 }, + { "px": [176,192], "src": [0,192], "f": 0, "t": 432, "d": [102,395], "a": 1 }, + { "px": [272,192], "src": [16,192], "f": 0, "t": 433, "d": [102,401], "a": 1 }, + { "px": [288,192], "src": [32,192], "f": 0, "t": 434, "d": [102,402], "a": 1 }, + { "px": [304,192], "src": [0,192], "f": 0, "t": 432, "d": [102,403], "a": 1 }, + { "px": [336,192], "src": [0,192], "f": 0, "t": 432, "d": [102,405], "a": 1 }, + { "px": [352,192], "src": [16,192], "f": 0, "t": 433, "d": [102,406], "a": 1 }, + { "px": [48,208], "src": [32,192], "f": 0, "t": 434, "d": [102,419], "a": 1 }, + { "px": [144,208], "src": [32,192], "f": 0, "t": 434, "d": [102,425], "a": 1 }, + { "px": [160,208], "src": [32,192], "f": 0, "t": 434, "d": [102,426], "a": 1 }, + { "px": [176,208], "src": [0,192], "f": 0, "t": 432, "d": [102,427], "a": 1 }, + { "px": [208,208], "src": [32,192], "f": 0, "t": 434, "d": [102,429], "a": 1 }, + { "px": [288,208], "src": [16,192], "f": 0, "t": 433, "d": [102,434], "a": 1 }, + { "px": [400,208], "src": [32,192], "f": 0, "t": 434, "d": [102,441], "a": 1 }, + { "px": [80,224], "src": [0,192], "f": 0, "t": 432, "d": [102,453], "a": 1 }, + { "px": [176,224], "src": [0,192], "f": 0, "t": 432, "d": [102,459], "a": 1 }, + { "px": [208,224], "src": [16,192], "f": 0, "t": 433, "d": [102,461], "a": 1 }, + { "px": [224,224], "src": [0,192], "f": 0, "t": 432, "d": [102,462], "a": 1 }, + { "px": [352,224], "src": [16,192], "f": 0, "t": 433, "d": [102,470], "a": 1 }, + { "px": [368,224], "src": [16,192], "f": 0, "t": 433, "d": [102,471], "a": 1 }, + { "px": [0,0], "src": [160,208], "f": 0, "t": 478, "d": [70,0], "a": 1 }, + { "px": [64,0], "src": [160,208], "f": 0, "t": 478, "d": [70,4], "a": 1 }, + { "px": [128,0], "src": [160,208], "f": 0, "t": 478, "d": [70,8], "a": 1 }, + { "px": [192,0], "src": [160,208], "f": 0, "t": 478, "d": [70,12], "a": 1 }, + { "px": [256,0], "src": [160,208], "f": 0, "t": 478, "d": [70,16], "a": 1 }, + { "px": [320,0], "src": [160,208], "f": 0, "t": 478, "d": [70,20], "a": 1 }, + { "px": [384,0], "src": [160,208], "f": 0, "t": 478, "d": [70,24], "a": 1 }, + { "px": [0,16], "src": [160,208], "f": 0, "t": 478, "d": [70,32], "a": 1 }, + { "px": [64,16], "src": [160,208], "f": 0, "t": 478, "d": [70,36], "a": 1 }, + { "px": [128,16], "src": [160,208], "f": 0, "t": 478, "d": [70,40], "a": 1 }, + { "px": [192,16], "src": [160,208], "f": 0, "t": 478, "d": [70,44], "a": 1 }, + { "px": [256,16], "src": [160,208], "f": 0, "t": 478, "d": [70,48], "a": 1 }, + { "px": [320,16], "src": [160,208], "f": 0, "t": 478, "d": [70,52], "a": 1 }, + { "px": [384,16], "src": [160,208], "f": 0, "t": 478, "d": [70,56], "a": 1 }, + { "px": [0,32], "src": [160,208], "f": 0, "t": 478, "d": [70,64], "a": 1 }, + { "px": [64,32], "src": [160,208], "f": 0, "t": 478, "d": [70,68], "a": 1 }, + { "px": [128,32], "src": [160,208], "f": 0, "t": 478, "d": [70,72], "a": 1 }, + { "px": [192,32], "src": [160,208], "f": 0, "t": 478, "d": [70,76], "a": 1 }, + { "px": [256,32], "src": [160,208], "f": 0, "t": 478, "d": [70,80], "a": 1 }, + { "px": [320,32], "src": [160,208], "f": 0, "t": 478, "d": [70,84], "a": 1 }, + { "px": [384,32], "src": [160,208], "f": 0, "t": 478, "d": [70,88], "a": 1 }, + { "px": [64,48], "src": [160,208], "f": 0, "t": 478, "d": [70,100], "a": 1 }, + { "px": [128,48], "src": [160,208], "f": 0, "t": 478, "d": [70,104], "a": 1 }, + { "px": [192,48], "src": [160,208], "f": 0, "t": 478, "d": [70,108], "a": 1 }, + { "px": [256,48], "src": [160,208], "f": 0, "t": 478, "d": [70,112], "a": 1 }, + { "px": [320,48], "src": [160,208], "f": 0, "t": 478, "d": [70,116], "a": 1 }, + { "px": [384,48], "src": [160,208], "f": 0, "t": 478, "d": [70,120], "a": 1 }, + { "px": [64,64], "src": [160,208], "f": 0, "t": 478, "d": [70,132], "a": 1 }, + { "px": [128,64], "src": [160,208], "f": 0, "t": 478, "d": [70,136], "a": 1 }, + { "px": [192,64], "src": [160,208], "f": 0, "t": 478, "d": [70,140], "a": 1 }, + { "px": [256,64], "src": [160,208], "f": 0, "t": 478, "d": [70,144], "a": 1 }, + { "px": [320,64], "src": [160,208], "f": 0, "t": 478, "d": [70,148], "a": 1 }, + { "px": [384,64], "src": [160,208], "f": 0, "t": 478, "d": [70,152], "a": 1 }, + { "px": [64,80], "src": [160,208], "f": 0, "t": 478, "d": [70,164], "a": 1 }, + { "px": [128,80], "src": [160,208], "f": 0, "t": 478, "d": [70,168], "a": 1 }, + { "px": [192,80], "src": [160,208], "f": 0, "t": 478, "d": [70,172], "a": 1 }, + { "px": [256,80], "src": [160,208], "f": 0, "t": 478, "d": [70,176], "a": 1 }, + { "px": [320,80], "src": [160,208], "f": 0, "t": 478, "d": [70,180], "a": 1 }, + { "px": [384,80], "src": [160,208], "f": 0, "t": 478, "d": [70,184], "a": 1 }, + { "px": [64,96], "src": [160,208], "f": 0, "t": 478, "d": [70,196], "a": 1 }, + { "px": [128,96], "src": [160,208], "f": 0, "t": 478, "d": [70,200], "a": 1 }, + { "px": [192,96], "src": [160,208], "f": 0, "t": 478, "d": [70,204], "a": 1 }, + { "px": [256,96], "src": [160,208], "f": 0, "t": 478, "d": [70,208], "a": 1 }, + { "px": [320,96], "src": [160,208], "f": 0, "t": 478, "d": [70,212], "a": 1 }, + { "px": [384,96], "src": [160,208], "f": 0, "t": 478, "d": [70,216], "a": 1 }, + { "px": [64,112], "src": [160,208], "f": 0, "t": 478, "d": [70,228], "a": 1 }, + { "px": [128,112], "src": [160,208], "f": 0, "t": 478, "d": [70,232], "a": 1 }, + { "px": [192,112], "src": [160,208], "f": 0, "t": 478, "d": [70,236], "a": 1 }, + { "px": [256,112], "src": [160,208], "f": 0, "t": 478, "d": [70,240], "a": 1 }, + { "px": [320,112], "src": [160,208], "f": 0, "t": 478, "d": [70,244], "a": 1 }, + { "px": [384,112], "src": [160,208], "f": 0, "t": 478, "d": [70,248], "a": 1 }, + { "px": [64,128], "src": [160,208], "f": 0, "t": 478, "d": [70,260], "a": 1 }, + { "px": [128,128], "src": [160,208], "f": 0, "t": 478, "d": [70,264], "a": 1 }, + { "px": [192,128], "src": [160,208], "f": 0, "t": 478, "d": [70,268], "a": 1 }, + { "px": [256,128], "src": [160,208], "f": 0, "t": 478, "d": [70,272], "a": 1 }, + { "px": [320,128], "src": [160,208], "f": 0, "t": 478, "d": [70,276], "a": 1 }, + { "px": [384,128], "src": [160,208], "f": 0, "t": 478, "d": [70,280], "a": 1 }, + { "px": [64,144], "src": [160,208], "f": 0, "t": 478, "d": [70,292], "a": 1 }, + { "px": [128,144], "src": [160,208], "f": 0, "t": 478, "d": [70,296], "a": 1 }, + { "px": [192,144], "src": [160,208], "f": 0, "t": 478, "d": [70,300], "a": 1 }, + { "px": [256,144], "src": [160,208], "f": 0, "t": 478, "d": [70,304], "a": 1 }, + { "px": [320,144], "src": [160,208], "f": 0, "t": 478, "d": [70,308], "a": 1 }, + { "px": [384,144], "src": [160,208], "f": 0, "t": 478, "d": [70,312], "a": 1 }, + { "px": [64,160], "src": [160,208], "f": 0, "t": 478, "d": [70,324], "a": 1 }, + { "px": [128,160], "src": [160,208], "f": 0, "t": 478, "d": [70,328], "a": 1 }, + { "px": [192,160], "src": [160,208], "f": 0, "t": 478, "d": [70,332], "a": 1 }, + { "px": [256,160], "src": [160,208], "f": 0, "t": 478, "d": [70,336], "a": 1 }, + { "px": [320,160], "src": [160,208], "f": 0, "t": 478, "d": [70,340], "a": 1 }, + { "px": [384,160], "src": [160,208], "f": 0, "t": 478, "d": [70,344], "a": 1 }, + { "px": [448,160], "src": [160,208], "f": 0, "t": 478, "d": [70,348], "a": 1 }, + { "px": [64,176], "src": [160,208], "f": 0, "t": 478, "d": [70,356], "a": 1 }, + { "px": [128,176], "src": [160,208], "f": 0, "t": 478, "d": [70,360], "a": 1 }, + { "px": [192,176], "src": [160,208], "f": 0, "t": 478, "d": [70,364], "a": 1 }, + { "px": [256,176], "src": [160,208], "f": 0, "t": 478, "d": [70,368], "a": 1 }, + { "px": [320,176], "src": [160,208], "f": 0, "t": 478, "d": [70,372], "a": 1 }, + { "px": [384,176], "src": [160,208], "f": 0, "t": 478, "d": [70,376], "a": 1 }, + { "px": [448,176], "src": [160,208], "f": 0, "t": 478, "d": [70,380], "a": 1 }, + { "px": [64,192], "src": [160,208], "f": 0, "t": 478, "d": [70,388], "a": 1 }, + { "px": [128,192], "src": [160,208], "f": 0, "t": 478, "d": [70,392], "a": 1 }, + { "px": [192,192], "src": [160,208], "f": 0, "t": 478, "d": [70,396], "a": 1 }, + { "px": [256,192], "src": [160,208], "f": 0, "t": 478, "d": [70,400], "a": 1 }, + { "px": [320,192], "src": [160,208], "f": 0, "t": 478, "d": [70,404], "a": 1 }, + { "px": [384,192], "src": [160,208], "f": 0, "t": 478, "d": [70,408], "a": 1 }, + { "px": [64,208], "src": [160,208], "f": 0, "t": 478, "d": [70,420], "a": 1 }, + { "px": [128,208], "src": [160,208], "f": 0, "t": 478, "d": [70,424], "a": 1 }, + { "px": [192,208], "src": [160,208], "f": 0, "t": 478, "d": [70,428], "a": 1 }, + { "px": [64,224], "src": [160,208], "f": 0, "t": 478, "d": [70,452], "a": 1 }, + { "px": [128,224], "src": [160,208], "f": 0, "t": 478, "d": [70,456], "a": 1 }, + { "px": [192,224], "src": [160,208], "f": 0, "t": 478, "d": [70,460], "a": 1 }, + { "px": [16,32], "src": [240,176], "f": 2, "t": 411, "d": [91,65], "a": 1 }, + { "px": [32,160], "src": [240,176], "f": 2, "t": 411, "d": [91,322], "a": 1 }, + { "px": [432,160], "src": [240,176], "f": 1, "t": 411, "d": [91,347], "a": 1 }, + { "px": [416,176], "src": [240,176], "f": 3, "t": 411, "d": [91,378], "a": 1 }, + { "px": [48,192], "src": [240,176], "f": 2, "t": 411, "d": [91,387], "a": 1 }, + { "px": [240,192], "src": [240,176], "f": 3, "t": 411, "d": [91,399], "a": 1 }, + { "px": [288,192], "src": [240,176], "f": 2, "t": 411, "d": [91,402], "a": 1 }, + { "px": [400,192], "src": [240,176], "f": 3, "t": 411, "d": [91,409], "a": 1 }, + { "px": [224,208], "src": [240,176], "f": 3, "t": 411, "d": [91,430], "a": 1 }, + { "px": [304,208], "src": [240,176], "f": 2, "t": 411, "d": [91,435], "a": 1 }, + { "px": [368,208], "src": [240,176], "f": 3, "t": 411, "d": [91,439], "a": 1 }, + { "px": [432,0], "src": [208,176], "f": 1, "t": 409, "d": [89,27], "a": 1 }, + { "px": [432,16], "src": [208,176], "f": 1, "t": 409, "d": [89,59], "a": 1 }, + { "px": [432,32], "src": [208,176], "f": 1, "t": 409, "d": [89,91], "a": 1 }, + { "px": [16,48], "src": [208,176], "f": 0, "t": 409, "d": [89,97], "a": 1 }, + { "px": [432,48], "src": [208,176], "f": 1, "t": 409, "d": [89,123], "a": 1 }, + { "px": [16,64], "src": [208,176], "f": 0, "t": 409, "d": [89,129], "a": 1 }, + { "px": [432,64], "src": [208,176], "f": 1, "t": 409, "d": [89,155], "a": 1 }, + { "px": [16,80], "src": [208,176], "f": 0, "t": 409, "d": [89,161], "a": 1 }, + { "px": [432,80], "src": [208,176], "f": 1, "t": 409, "d": [89,187], "a": 1 }, + { "px": [16,96], "src": [208,176], "f": 0, "t": 409, "d": [89,193], "a": 1 }, + { "px": [432,96], "src": [208,176], "f": 1, "t": 409, "d": [89,219], "a": 1 }, + { "px": [16,112], "src": [208,176], "f": 0, "t": 409, "d": [89,225], "a": 1 }, + { "px": [432,112], "src": [208,176], "f": 1, "t": 409, "d": [89,251], "a": 1 }, + { "px": [16,128], "src": [208,176], "f": 0, "t": 409, "d": [89,257], "a": 1 }, + { "px": [432,128], "src": [208,176], "f": 1, "t": 409, "d": [89,283], "a": 1 }, + { "px": [16,144], "src": [208,176], "f": 0, "t": 409, "d": [89,289], "a": 1 }, + { "px": [432,144], "src": [208,176], "f": 1, "t": 409, "d": [89,315], "a": 1 }, + { "px": [16,160], "src": [208,176], "f": 0, "t": 409, "d": [89,321], "a": 1 }, + { "px": [464,160], "src": [208,176], "f": 1, "t": 409, "d": [89,349], "a": 1 }, + { "px": [32,176], "src": [208,176], "f": 0, "t": 409, "d": [89,354], "a": 1 }, + { "px": [464,176], "src": [208,176], "f": 1, "t": 409, "d": [89,381], "a": 1 }, + { "px": [32,192], "src": [208,176], "f": 0, "t": 409, "d": [89,386], "a": 1 }, + { "px": [416,192], "src": [208,176], "f": 1, "t": 409, "d": [89,410], "a": 1 }, + { "px": [48,208], "src": [208,176], "f": 0, "t": 409, "d": [89,419], "a": 1 }, + { "px": [240,208], "src": [208,176], "f": 1, "t": 409, "d": [89,431], "a": 1 }, + { "px": [288,208], "src": [208,176], "f": 0, "t": 409, "d": [89,434], "a": 1 }, + { "px": [400,208], "src": [208,176], "f": 1, "t": 409, "d": [89,441], "a": 1 }, + { "px": [48,224], "src": [208,176], "f": 0, "t": 409, "d": [89,451], "a": 1 }, + { "px": [224,224], "src": [208,176], "f": 1, "t": 409, "d": [89,462], "a": 1 }, + { "px": [304,224], "src": [208,176], "f": 0, "t": 409, "d": [89,467], "a": 1 }, + { "px": [368,224], "src": [208,176], "f": 1, "t": 409, "d": [89,471], "a": 1 }, + { "px": [0,32], "src": [224,176], "f": 2, "t": 410, "d": [88,64], "a": 1 }, + { "px": [16,160], "src": [224,176], "f": 2, "t": 410, "d": [88,321], "a": 1 }, + { "px": [448,160], "src": [224,176], "f": 0, "t": 410, "d": [88,348], "a": 1 }, + { "px": [464,160], "src": [224,176], "f": 0, "t": 410, "d": [88,349], "a": 1 }, + { "px": [432,176], "src": [224,176], "f": 2, "t": 410, "d": [88,379], "a": 1 }, + { "px": [448,176], "src": [224,176], "f": 2, "t": 410, "d": [88,380], "a": 1 }, + { "px": [464,176], "src": [224,176], "f": 2, "t": 410, "d": [88,381], "a": 1 }, + { "px": [32,192], "src": [224,176], "f": 2, "t": 410, "d": [88,386], "a": 1 }, + { "px": [256,192], "src": [224,176], "f": 2, "t": 410, "d": [88,400], "a": 1 }, + { "px": [272,192], "src": [224,176], "f": 2, "t": 410, "d": [88,401], "a": 1 }, + { "px": [416,192], "src": [224,176], "f": 2, "t": 410, "d": [88,410], "a": 1 }, + { "px": [240,208], "src": [224,176], "f": 2, "t": 410, "d": [88,431], "a": 1 }, + { "px": [288,208], "src": [224,176], "f": 2, "t": 410, "d": [88,434], "a": 1 }, + { "px": [384,208], "src": [224,176], "f": 2, "t": 410, "d": [88,440], "a": 1 }, + { "px": [400,208], "src": [224,176], "f": 2, "t": 410, "d": [88,441], "a": 1 }, + { "px": [48,224], "src": [224,176], "f": 2, "t": 410, "d": [88,451], "a": 1 }, + { "px": [64,224], "src": [224,176], "f": 2, "t": 410, "d": [88,452], "a": 1 }, + { "px": [80,224], "src": [224,176], "f": 2, "t": 410, "d": [88,453], "a": 1 }, + { "px": [96,224], "src": [224,176], "f": 2, "t": 410, "d": [88,454], "a": 1 }, + { "px": [112,224], "src": [224,176], "f": 2, "t": 410, "d": [88,455], "a": 1 }, + { "px": [128,224], "src": [224,176], "f": 2, "t": 410, "d": [88,456], "a": 1 }, + { "px": [144,224], "src": [224,176], "f": 2, "t": 410, "d": [88,457], "a": 1 }, + { "px": [160,224], "src": [224,176], "f": 2, "t": 410, "d": [88,458], "a": 1 }, + { "px": [176,224], "src": [224,176], "f": 2, "t": 410, "d": [88,459], "a": 1 }, + { "px": [192,224], "src": [224,176], "f": 2, "t": 410, "d": [88,460], "a": 1 }, + { "px": [208,224], "src": [224,176], "f": 2, "t": 410, "d": [88,461], "a": 1 }, + { "px": [224,224], "src": [224,176], "f": 2, "t": 410, "d": [88,462], "a": 1 }, + { "px": [304,224], "src": [224,176], "f": 2, "t": 410, "d": [88,467], "a": 1 }, + { "px": [320,224], "src": [224,176], "f": 2, "t": 410, "d": [88,468], "a": 1 }, + { "px": [336,224], "src": [224,176], "f": 2, "t": 410, "d": [88,469], "a": 1 }, + { "px": [352,224], "src": [224,176], "f": 2, "t": 410, "d": [88,470], "a": 1 }, + { "px": [368,224], "src": [224,176], "f": 2, "t": 410, "d": [88,471], "a": 1 } + ], + "seed": 4276767, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [{ "levelIid": "5cbed650-66b0-11ec-895f-23240977178f", "dir": "n" }] + } + ], + "worlds": [], + "dummyWorldIid": "ca0e9bf0-c640-11ed-ad34-5d947c1a0a9f" +} \ No newline at end of file diff --git a/dependencies/pocketpy/benchmarks/res/WorldMap_GridVania_layout.ldtk b/dependencies/pocketpy/benchmarks/res/WorldMap_GridVania_layout.ldtk new file mode 100644 index 0000000..e52da77 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/res/WorldMap_GridVania_layout.ldtk @@ -0,0 +1,33256 @@ +{ + "__header__": { + "fileType": "LDtk Project JSON", + "app": "LDtk", + "doc": "https://ldtk.io/json", + "schema": "https://ldtk.io/files/JSON_SCHEMA.json", + "appAuthor": "Sebastien 'deepnight' Benard", + "appVersion": "1.3.4", + "url": "https://ldtk.io" + }, + "iid": "a39fb1b0-7820-11ed-b6fd-87f9a01f3d6b", + "jsonVersion": "1.3.4", + "appBuildId": 468132, + "nextUid": 142, + "identifierStyle": "Capitalize", + "toc": [{ + "identifier": "Player", + "instances": [{ + "worldIid": "ca3d7420-c640-11ed-ad34-5f1a115c4cf3", + "levelIid": "a367c3b0-66b0-11ec-9cd7-91690c910c97", + "layerIid": "a367c3b5-66b0-11ec-9cd7-a7935e1c2c53", + "entityIid": "a367c3b8-66b0-11ec-9cd7-313e15c65fee" + }] + }], + "worldLayout": "GridVania", + "worldGridWidth": 256, + "worldGridHeight": 256, + "defaultLevelWidth": 256, + "defaultLevelHeight": 256, + "defaultPivotX": 0, + "defaultPivotY": 0, + "defaultGridSize": 16, + "defaultEntityWidth": 16, + "defaultEntityHeight": 16, + "bgColor": "#132A3F", + "defaultLevelBgColor": "#37494E", + "minifyJson": false, + "externalLevels": false, + "exportTiled": false, + "simplifiedExport": false, + "imageExportMode": "None", + "exportLevelBg": true, + "pngFilePattern": null, + "backupOnSave": false, + "backupLimit": 10, + "backupRelPath": null, + "levelNamePattern": "%world_Level_%idx", + "tutorialDesc": "In Gridvania world layouts, levels are organized on a large grid.\nPress [W] to switch to World mode.\nIn this example, some are even in different world layers (ie. above and behind). Use [PAGE UP] and [PAGE DOWN] to move between world layers.", + "customCommands": [], + "flags": ["UseMultilinesType"], + "defs": { "layers": [ + { + "__type": "Entities", + "identifier": "Entities", + "type": "Entities", + "uid": 77, + "doc": null, + "uiColor": "#0099DB", + "gridSize": 16, + "guideGridWid": 0, + "guideGridHei": 0, + "displayOpacity": 1, + "inactiveOpacity": 0.8, + "hideInList": false, + "hideFieldsWhenInactive": true, + "canSelectWhenInactive": true, + "renderInWorldView": true, + "pxOffsetX": 0, + "pxOffsetY": 0, + "parallaxFactorX": 0, + "parallaxFactorY": 0, + "parallaxScaling": true, + "requiredTags": [], + "excludedTags": [], + "intGridValues": [], + "autoRuleGroups": [], + "autoSourceLayerDefUid": null, + "tilesetDefUid": null, + "tilePivotX": 0, + "tilePivotY": 0 + }, + { + "__type": "AutoLayer", + "identifier": "Wall_shadows", + "type": "AutoLayer", + "uid": 24, + "doc": null, + "uiColor": "#5A6988", + "gridSize": 16, + "guideGridWid": 0, + "guideGridHei": 0, + "displayOpacity": 0.53, + "inactiveOpacity": 1, + "hideInList": false, + "hideFieldsWhenInactive": true, + "canSelectWhenInactive": true, + "renderInWorldView": false, + "pxOffsetX": 0, + "pxOffsetY": 0, + "parallaxFactorX": 0, + "parallaxFactorY": 0, + "parallaxScaling": true, + "requiredTags": [], + "excludedTags": [], + "intGridValues": [], + "autoRuleGroups": [{ "uid": 25, "name": "Shadows", "active": true, "isOptional": false, "rules": [ + { + "uid": 137, + "active": true, + "size": 3, + "tileIds": [181], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [1,-1000001,0,-1000001,-1000001,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 1586388, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 27, + "active": true, + "size": 3, + "tileIds": [182], + "alpha": 1, + "chance": 1, + "breakOnMatch": false, + "pattern": [0,1,0,0,-1,0,0,0,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 7217603, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 138, + "active": true, + "size": 3, + "tileIds": [158], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [-1000001,0,0,1,-1000001,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 7410782, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 26, + "active": true, + "size": 3, + "tileIds": [204], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [1,0,0,1,-1000001,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 9178681, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }], + "autoSourceLayerDefUid": 1, + "tilesetDefUid": 6, + "tilePivotX": 0, + "tilePivotY": 0 + }, + { + "__type": "IntGrid", + "identifier": "Collisions", + "type": "IntGrid", + "uid": 1, + "doc": null, + "uiColor": "#E4A672", + "gridSize": 16, + "guideGridWid": 0, + "guideGridHei": 0, + "displayOpacity": 1, + "inactiveOpacity": 1, + "hideInList": false, + "hideFieldsWhenInactive": true, + "canSelectWhenInactive": true, + "renderInWorldView": true, + "pxOffsetX": 0, + "pxOffsetY": 0, + "parallaxFactorX": 0, + "parallaxFactorY": 0, + "parallaxScaling": true, + "requiredTags": [], + "excludedTags": [], + "intGridValues": [ { "value": 1, "identifier": "walls", "color": "#B1824C", "tile": { "tilesetUid": 6, "x": 96, "y": 0, "w": 16, "h": 16 } }, { "value": 2, "identifier": "water", "color": "#7297E5", "tile": { "tilesetUid": 6, "x": 320, "y": 160, "w": 16, "h": 16 } } ], + "autoRuleGroups": [ + { "uid": 109, "name": "Plants", "active": true, "isOptional": false, "rules": [ + { + "uid": 110, + "active": true, + "size": 5, + "tileIds": [138,140], + "alpha": 1, + "chance": 0.52, + "breakOnMatch": false, + "pattern": [0,0,0,0,0,0,0,0,0,0,0,0,-1000001,0,0,0,0,1,0,0,0,0,1,0,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 7216209, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 80, + "active": true, + "size": 3, + "tileIds": [2], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,-1000001,0,0,1,0,0,1,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 6023486, + "perlinScale": 0.24, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 7, "name": "Walls edges", "active": true, "isOptional": false, "rules": [ + { + "uid": 78, + "active": true, + "size": 3, + "tileIds": [286,288], + "alpha": 1, + "chance": 0.66, + "breakOnMatch": true, + "pattern": [0,1,0,0,1,0,0,-1,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 9947410, + "perlinScale": 0.43, + "perlinOctaves": 2 + }, + { + "uid": 14, + "active": true, + "size": 3, + "tileIds": [152], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,0,0,1,1,0,1,-1], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 2090192, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 11, + "active": true, + "size": 3, + "tileIds": [152], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,-1,0,-1,1,0,0,0,0], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 8016084, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 10, + "active": true, + "size": 3, + "tileIds": [198], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,0,-1,1,0,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 2534202, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 9, + "active": true, + "size": 3, + "tileIds": [154], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,-1,0,0,1,0,0,0,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 1741728, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 12, + "active": true, + "size": 3, + "tileIds": [246], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,0,0,1,0,0,-1,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 133117, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 125, "name": "Walls inner deep ", "active": true, "isOptional": false, "rules": [ + { + "uid": 126, + "active": true, + "size": 7, + "tileIds": [142,144], + "alpha": 1, + "chance": 0.71, + "breakOnMatch": true, + "pattern": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1], + "flipX": false, + "flipY": false, + "xModulo": 2, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "Horizontal", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": 1, + "perlinActive": true, + "perlinSeed": 7097334, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 127, + "active": true, + "size": 7, + "tileIds": [48], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": 1, + "perlinActive": false, + "perlinSeed": 7097334, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 124, "name": "Walls inner", "active": true, "isOptional": false, "rules": [ + { + "uid": 101, + "active": true, + "size": 3, + "tileIds": [6,35,152], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [1,1,1,1,1,1,1,1,1], + "flipX": false, + "flipY": false, + "xModulo": 2, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "Horizontal", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": 1, + "perlinActive": false, + "perlinSeed": 5285703, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 83, + "active": true, + "size": 1, + "tileIds": [142,144], + "alpha": 1, + "chance": 0.71, + "breakOnMatch": false, + "pattern": [1], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 2652925, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 8, + "active": true, + "size": 1, + "tileIds": [48], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [1], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 3433071, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 20, "name": "Water", "active": true, "isOptional": false, "rules": [ + { + "uid": 21, + "active": true, + "size": 3, + "tileIds": [250], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,-1000001,0,0,2,0,0,0,0], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 9172841, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 28, + "active": true, + "size": 1, + "tileIds": [273], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [2], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 1564563, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false } + ], + "autoSourceLayerDefUid": null, + "tilesetDefUid": 6, + "tilePivotX": 0, + "tilePivotY": 0 + }, + { + "__type": "AutoLayer", + "identifier": "Background", + "type": "AutoLayer", + "uid": 103, + "doc": null, + "uiColor": "#5A6988", + "gridSize": 16, + "guideGridWid": 0, + "guideGridHei": 0, + "displayOpacity": 1, + "inactiveOpacity": 1, + "hideInList": false, + "hideFieldsWhenInactive": true, + "canSelectWhenInactive": true, + "renderInWorldView": true, + "pxOffsetX": 0, + "pxOffsetY": 0, + "parallaxFactorX": 0, + "parallaxFactorY": 0, + "parallaxScaling": true, + "requiredTags": [], + "excludedTags": [], + "intGridValues": [], + "autoRuleGroups": [ + { "uid": 111, "name": "Bg leaves", "active": true, "isOptional": false, "rules": [ + { + "uid": 115, + "active": true, + "size": 3, + "tileIds": [307,330], + "alpha": 1, + "chance": 0.12, + "breakOnMatch": false, + "pattern": [1,1,1,-1000001,-1000001,-1000001,-1000001,-1000001,-1000001], + "flipX": false, + "flipY": false, + "xModulo": 2, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Stamp", + "pivotX": 0.5, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 5480683, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 114, + "active": true, + "size": 3, + "tileIds": [305,330], + "alpha": 1, + "chance": 0.36, + "breakOnMatch": false, + "pattern": [0,1,0,0,-1000001,0,0,0,0], + "flipX": false, + "flipY": false, + "xModulo": 2, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 5159038, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 113, + "active": true, + "size": 5, + "tileIds": [449,472,450,473,451,474], + "alpha": 1, + "chance": 0.63, + "breakOnMatch": false, + "pattern": [0,0,0,0,0,0,1,-1000001,-1000001,-1000001,0,1,-1000001,-1000001,-1000001,0,1,1,1,1,0,0,0,0,0], + "flipX": true, + "flipY": true, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Stamp", + "pivotX": 0, + "pivotY": 1, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 8268329, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 112, + "active": true, + "size": 5, + "tileIds": [354,377,400,355,378,401,356,379,402], + "alpha": 1, + "chance": 0.46, + "breakOnMatch": false, + "pattern": [0,-1000001,-1000001,-1000001,0,0,-1000001,-1000001,-1000001,0,0,-1000001,-1000001,-1000001,0,0,1,1,1,0,0,0,0,0,0], + "flipX": false, + "flipY": true, + "xModulo": 5, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Stamp", + "pivotX": 0.5, + "pivotY": 1, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 1634458, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false }, + { "uid": 104, "name": "Bg walls", "active": true, "isOptional": false, "rules": [ + { + "uid": 105, + "active": true, + "size": 3, + "tileIds": [361,362,363], + "alpha": 1, + "chance": 0.55, + "breakOnMatch": true, + "pattern": [0,-1000001,0,-1000001,-1000001,-1000001,0,-1000001,0], + "flipX": false, + "flipY": false, + "xModulo": 3, + "yModulo": 2, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "Horizontal", + "tileMode": "Stamp", + "pivotX": 0.5, + "pivotY": 0.5, + "outOfBoundsValue": null, + "perlinActive": true, + "perlinSeed": 2014904, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 107, + "active": true, + "size": 3, + "tileIds": [361,362], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [0,0,0,0,-1000001,1,0,0,0], + "flipX": true, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Stamp", + "pivotX": 1, + "pivotY": 0.5, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 7261553, + "perlinScale": 0.2, + "perlinOctaves": 2 + }, + { + "uid": 108, + "active": true, + "size": 1, + "tileIds": [411], + "alpha": 1, + "chance": 1, + "breakOnMatch": true, + "pattern": [-1], + "flipX": false, + "flipY": false, + "xModulo": 1, + "yModulo": 1, + "xOffset": 0, + "yOffset": 0, + "tileXOffset": 0, + "tileYOffset": 0, + "tileRandomXMin": 0, + "tileRandomXMax": 0, + "tileRandomYMin": 0, + "tileRandomYMax": 0, + "checker": "None", + "tileMode": "Single", + "pivotX": 0, + "pivotY": 0, + "outOfBoundsValue": null, + "perlinActive": false, + "perlinSeed": 3407168, + "perlinScale": 0.2, + "perlinOctaves": 2 + } + ], "usesWizard": false } + ], + "autoSourceLayerDefUid": 1, + "tilesetDefUid": 6, + "tilePivotX": 0, + "tilePivotY": 0 + } + ], "entities": [ + { + "identifier": "Item", + "uid": 72, + "tags": ["loot"], + "exportToToc": false, + "doc": null, + "width": 24, + "height": 24, + "resizableX": false, + "resizableY": false, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": false, + "tileOpacity": 1, + "fillOpacity": 0.15, + "lineOpacity": 0.61, + "hollow": false, + "color": "#FFEC8A", + "renderMode": "Tile", + "showName": false, + "tilesetId": 133, + "tileRenderMode": "FitInside", + "tileRect": { "tilesetUid": 133, "x": 144, "y": 16, "w": 16, "h": 16 }, + "nineSliceBorders": [], + "maxCount": 0, + "limitScope": "PerLevel", + "limitBehavior": "DiscardOldOnes", + "pivotX": 0.5, + "pivotY": 1, + "fieldDefs": [ + { + "identifier": "type", + "doc": null, + "__type": "LocalEnum.ItemType", + "uid": 76, + "type": "F_Enum(74)", + "isArray": false, + "canBeNull": false, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "EntityTile", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "ZigZag", + "editorDisplayColor": null, + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": null, + "useForSmartColor": false, + "min": null, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": null, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + }, + { + "identifier": "price", + "doc": null, + "__type": "Int", + "uid": 93, + "type": "F_Int", + "isArray": false, + "canBeNull": false, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "ValueOnly", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "ZigZag", + "editorDisplayColor": null, + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": " GOLD", + "editorTextPrefix": null, + "useForSmartColor": false, + "min": 0, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": null, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + }, + { + "identifier": "count", + "doc": null, + "__type": "Int", + "uid": 139, + "type": "F_Int", + "isArray": false, + "canBeNull": false, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "ValueOnly", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "ZigZag", + "editorDisplayColor": null, + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": "x", + "useForSmartColor": false, + "min": 1, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": { "id": "V_Int", "params": [1] }, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": true, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + } + ] + }, + { + "identifier": "Player", + "uid": 90, + "tags": ["actor"], + "exportToToc": true, + "doc": null, + "width": 20, + "height": 20, + "resizableX": false, + "resizableY": false, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": false, + "tileOpacity": 1, + "fillOpacity": 0.08, + "lineOpacity": 0, + "hollow": false, + "color": "#48DA75", + "renderMode": "Tile", + "showName": true, + "tilesetId": 133, + "tileRenderMode": "FitInside", + "tileRect": { "tilesetUid": 133, "x": 80, "y": 240, "w": 16, "h": 16 }, + "nineSliceBorders": [], + "maxCount": 1, + "limitScope": "PerWorld", + "limitBehavior": "PreventAdding", + "pivotX": 0.5, + "pivotY": 1, + "fieldDefs": [ + { + "identifier": "inventory", + "doc": null, + "__type": "Array", + "uid": 91, + "type": "F_Enum(74)", + "isArray": true, + "canBeNull": false, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "ValueOnly", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "ZigZag", + "editorDisplayColor": null, + "editorAlwaysShow": true, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": null, + "useForSmartColor": false, + "min": null, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": null, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + }, + { + "identifier": "HP", + "doc": null, + "__type": "Int", + "uid": 92, + "type": "F_Int", + "isArray": false, + "canBeNull": false, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "ValueOnly", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "ZigZag", + "editorDisplayColor": null, + "editorAlwaysShow": true, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": " HP", + "editorTextPrefix": null, + "useForSmartColor": false, + "min": 1, + "max": 10, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": { "id": "V_Int", "params": [10] }, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + } + ] + }, + { + "identifier": "Exit", + "uid": 94, + "tags": ["region"], + "exportToToc": false, + "doc": null, + "width": 16, + "height": 16, + "resizableX": true, + "resizableY": true, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": false, + "tileOpacity": 0.51, + "fillOpacity": 0.25, + "lineOpacity": 1, + "hollow": true, + "color": "#126CCB", + "renderMode": "Tile", + "showName": true, + "tilesetId": 133, + "tileRenderMode": "Repeat", + "tileRect": { "tilesetUid": 133, "x": 48, "y": 240, "w": 16, "h": 16 }, + "nineSliceBorders": [], + "maxCount": 0, + "limitScope": "PerLevel", + "limitBehavior": "MoveLastOne", + "pivotX": 0, + "pivotY": 0, + "fieldDefs": [] + }, + { + "identifier": "SecretArea", + "uid": 96, + "tags": ["region"], + "exportToToc": false, + "doc": null, + "width": 16, + "height": 16, + "resizableX": true, + "resizableY": true, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": false, + "tileOpacity": 1, + "fillOpacity": 0.15, + "lineOpacity": 1, + "hollow": true, + "color": "#FFCC00", + "renderMode": "Tile", + "showName": true, + "tilesetId": 133, + "tileRenderMode": "NineSlice", + "tileRect": { "tilesetUid": 133, "x": 336, "y": 16, "w": 16, "h": 16 }, + "nineSliceBorders": [4,4,4,4], + "maxCount": 0, + "limitScope": "PerLevel", + "limitBehavior": "MoveLastOne", + "pivotX": 0, + "pivotY": 0, + "fieldDefs": [ + { + "identifier": "playSecretJingle", + "doc": null, + "__type": "Bool", + "uid": 97, + "type": "F_Bool", + "isArray": false, + "canBeNull": false, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "NameAndValue", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "ZigZag", + "editorDisplayColor": null, + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": null, + "useForSmartColor": false, + "min": null, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": { + "id": "V_Bool", + "params": [ true ] + }, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + } + ] + }, + { + "identifier": "Teleport", + "uid": 130, + "tags": ["actor"], + "exportToToc": false, + "doc": null, + "width": 24, + "height": 24, + "resizableX": false, + "resizableY": false, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": false, + "tileOpacity": 1, + "fillOpacity": 0.08, + "lineOpacity": 0, + "hollow": false, + "color": "#EC50FF", + "renderMode": "Tile", + "showName": true, + "tilesetId": 133, + "tileRenderMode": "FitInside", + "tileRect": { "tilesetUid": 133, "x": 224, "y": 176, "w": 16, "h": 16 }, + "nineSliceBorders": [], + "maxCount": 0, + "limitScope": "PerLevel", + "limitBehavior": "MoveLastOne", + "pivotX": 0.5, + "pivotY": 1, + "fieldDefs": [ + { + "identifier": "destination", + "doc": null, + "__type": "EntityRef", + "uid": 131, + "type": "F_EntityRef", + "isArray": false, + "canBeNull": false, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "RefLinkBetweenCenters", + "editorDisplayScale": 1, + "editorDisplayPos": "Above", + "editorLinkStyle": "CurvedArrow", + "editorDisplayColor": null, + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": null, + "useForSmartColor": false, + "min": null, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": null, + "textLanguageMode": null, + "symmetricalRef": true, + "autoChainRef": true, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + } + ] + }, + { + "identifier": "Ladder", + "uid": 134, + "tags": ["region"], + "exportToToc": false, + "doc": null, + "width": 16, + "height": 16, + "resizableX": false, + "resizableY": true, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": false, + "tileOpacity": 1, + "fillOpacity": 0.08, + "lineOpacity": 0, + "hollow": false, + "color": "#94D9B3", + "renderMode": "Tile", + "showName": false, + "tilesetId": 6, + "tileRenderMode": "Repeat", + "tileRect": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "nineSliceBorders": [], + "maxCount": 0, + "limitScope": "PerLevel", + "limitBehavior": "MoveLastOne", + "pivotX": 0, + "pivotY": 0, + "fieldDefs": [] + }, + { + "identifier": "SavingPoint", + "uid": 141, + "tags": ["region"], + "exportToToc": false, + "doc": null, + "width": 16, + "height": 16, + "resizableX": true, + "resizableY": true, + "minWidth": null, + "maxWidth": null, + "minHeight": null, + "maxHeight": null, + "keepAspectRatio": false, + "tileOpacity": 1, + "fillOpacity": 0.08, + "lineOpacity": 0.79, + "hollow": false, + "color": "#FFEB5A", + "renderMode": "Tile", + "showName": true, + "tilesetId": 133, + "tileRenderMode": "NineSlice", + "tileRect": { "tilesetUid": 133, "x": 336, "y": 0, "w": 16, "h": 16 }, + "nineSliceBorders": [4,4,4,4], + "maxCount": 0, + "limitScope": "PerLevel", + "limitBehavior": "MoveLastOne", + "pivotX": 0, + "pivotY": 0, + "fieldDefs": [] + } + ], "tilesets": [ + { + "__cWid": 23, + "__cHei": 21, + "identifier": "SunnyLand_by_Ansimuz", + "uid": 6, + "relPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "embedAtlas": null, + "pxWid": 368, + "pxHei": 336, + "tileGridSize": 16, + "spacing": 0, + "padding": 0, + "tags": [], + "tagsSourceEnumUid": null, + "enumTags": [], + "customData": [], + "savedSelections": [], + "cachedPixelData": { + "opaqueTiles": "101010100010110110000000000000000001101101101110101010001000000000000000000000000010100000001010101000000101000101000000000000000000000000000010100000001010100000000000000000000000000000000000000000101010000010100100000000000000000000000000000010101010000000000000000000000100000000101010100000000000000001010100000100000001010000100000000000000010100000010011011100000101000000100110000000011011000011101101010100000000000000000000000001011000011101110100000000110000111011100000000", + "averageColors": "f9850000f9850000f9850000fa65000069557a65f8450000f644f9650000f965f644000049b5c9950000c99549b5000000000000000000000000000000000000000000000000f955f7450000f745f9550000f865f7450000f745f865f9550000f6450000f9550000f845695500006955f8450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8550000f85500000000000079a5000079a50000f9550000f8550000f9550000f8457a6569550000ab8500000000f8550000f855000000000000f7550000f75500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077a5000078b50000f8450000f7450000947400009474000000000000fa650000f9550000fa6500002000000000000000459534953595000000000000000000000000000000000000000000000000000000000000000020006000000000000000000000000000000000000000000000000000000088550000f9550000f6450000f9550000900000000000a955f8450000f845a9550000f85500000000ca65b9650000000000000000000000000000000000000000000000000000a9550000a9550000000000000000000000000000000000000000fa650000f9550000fa650000f4880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f47700000000000000000000000000000000f7450000f8550000f8550000f8550000000000000000000000000000000000000000000000000000000000000000f3440000f3450000f534000000000000e9950000f9950000e9950000000000000000b855f5340000f534b855000000000000f334000000000000000000000000000000000000000000000000000000000000f7440000f744000000000000000000000000f43500000000f435f4350000f334f436f3350000000000000000b955f5340000f534b95500000000000000000000f34500000000f335f33500000000000000000000000000000000f744f3340000f334f7440000000000000000f344f345f3440000f335f3350000f5340000f4350000f3340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa650000f955f9550000000000000000f334f335f3450000f345f335f3340000f75500000000000000000000000000000000f955f9550000000000000000f335f344f3440000f344f344f33500000000000000000000000000000000" + } + }, + { + "__cWid": 32, + "__cHei": 64, + "identifier": "Internal_Icons", + "uid": 133, + "relPath": null, + "embedAtlas": "LdtkIcons", + "pxWid": 512, + "pxHei": 1024, + "tileGridSize": 16, + "spacing": 0, + "padding": 0, + "tags": [], + "tagsSourceEnumUid": null, + "enumTags": [], + "customData": [], + "savedSelections": [], + "cachedPixelData": { + "opaqueTiles": "00000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "averageColors": "00004b344233459b423349a959a9379c688769758ca4bc9489aab9aa58cc58bc42d74d2244ce428f4c7e4fb34abb45564ffe7dda78880000000000000000000069a969a97a99999999989a85998699767a7579667ccc7ccc7bcb7caa7ccc7ccc22d72d2224ce228f2c7e2fb32abb25562ffe000000000000000000000000000059764b97599868ac679a69ab4a84477756787688475347532a932a934a837a83f2b6fb22f3acf15afa6cfc93f899f334fccc000000000000000000000000000059aa49aa59996999699969aa489949995999799a499949992999299948997889a385a823a379a248a749a864a667a223a8880000000000000000000000000000189919991999199939994778166727772889289948993aaa389949a959a959a932b63b2233ad315a395c3c83389933343ccc00000000000000000000000000008aaa8aaa8aaa8aaa8aaa7bbb8aaa7bbb8bcb7aaa8bcb7bcb69aa8aaa8aaa69aa6abb6abb6abb6abb6a226a226a226a2261a661a661a661a600000000000000006c526c426c926c91659b649c66a566a46a7b6a7b667766776aba6abb676367636b746b746b746b74616c616c616c616c8abb8abb8abb8abb00000000000000006ba5579a6689598658875cb66abb9aa989aa98ac7abc6678968a88877c87cba952755823536952475648586354455223599900000000000000000000000000003ec63da76db79dc7554885498969b4377fa29e8289cdb9ce5ade5ade49ce49ce82a68a22839b8259885b8b73855683238aab00000000000000000000000000005d745d867da87e75448c458b86ad76ae68ac679c779b78ce3c9378867ca6adb784858933847a844788498963854584348989000000000000000000000000000057a668b899b8449396534493858364836853697769436667755667776c73498800000000000000000000000000000000000000000000000000000000000000006bba79b87d9679ad776a7b988abc8abc4aceaace4bba4bba6b8c4c9c4cac5b7c000000000000000000000000000000000000000000000000000000000000000059aaada7a9bdcdbd59aaada7a9bdcdbd8cb8a9b98ac889b8aabaacc79ea498bd000000000000000000000000000000000000000000000000000000000000000057ac596b55946abb5abb8ca65d8677ac437b5a3368886934547a595897a57b230000000000000000000000000000000000000000000000000000000000000000799a5c817b9b3a886abb8464676a7a967a857a857977898889882a954a956b950000000000000000000000000000000000000000000000000000000000000000499977997868799579875a6465995a8957a66a735ba53a935969479a576a467700000000000000000000000000000000000000000000000000000000000000005744985596659b747a659a76768a7a5676754777388735665976987794459465000000000000000000000000000000000000000000000000000000000000000088668a66868a9b8577666a4467846987778a7789797a87888b8676667a767ca50000000000000000000000000000000000000000000000000000000000000000449374934c957c9574847a438475a3958695768565956853b9447a777493a493000000000000000000000000000000000000000000000000000000000000000079547a838394689a49547a6357636975786383848997b384655873748974588400000000000000000000000000000000000000000000000000000000000000007da48ca769768b554b976cba3a824a82696259526a758c986963694268478b850000000000000000000000000000000000000000000000000000000000000000696559555579557458598674573353635677575579667a8758538b848a44838b0000000000000000000000000000000000000000000000000000000000000000385437883b95534549555a855877997598772b953b9529a939a95aa84b949a840000000000000000000000000000000000000000000000000000000000000000897687898776878578998485878b789a847b8b6579998a55886998788a879b9700000000000000000000000000000000000000000000000000000000000000006ba97988897469646b987a876a997a987b987955766777765c958a858777867700000000000000000000000000000000000000000000000000000000000000005a747b947b967866a855788928884566578879a98864a579233433343334633400000000000000000000000000000000000000000000000000000000000000006a747b846a844997598669987bb8b8aabaa96ba67cba9854687669864a864b86000000000000000000000000000000000000000000000000000000000000000038ab389b48ab47ac49ab48ac579b48ac49ab38ab58bc4b8659aa5c8457ac586a0000000000000000000000000000000000000000000000000000000000000000299b2999389a379b38893955589a79bc8c9588bc7a8c599a689a5b8558ac597a00000000000000000000000000000000000000000000000000000000000000002888378936773975579b389a579b488938884b74469a465747785b75568b586a000000000000000000000000000000000000000000000000000000000000000038553865285428444755566455763a64356746743779397445674c63469b585a0000000000000000000000000000000000000000000000000000000000000000284437643a7629641555297938874879385438664665355536775a85569a785a00000000000000000000000000000000000000000000000000000000000000005789789b779b6a75668a897b64558555876576798855845694749b74a68a986a000000000000000000000000000000000000000000000000000000000000000047776766678867667799798698768866976685673755387638763b74358b387a00000000000000000000000000000000000000000000000000000000000000005777686569874944498846774677685568646987677778775a456a65ab66ca550000000000000000000000000000000000000000000000000000000000000000355656666656455546455345634558655854aa749854775577737b64777a7a7900000000000000000000000000000000000000000000000000000000000000005955895598546c758c75ba76b88797749b75a98967888789978857888788a78800000000000000000000000000000000000000000000000000000000000000006977897799776a748a749a747987ba97aa998ba8a78bab75a87ab89cbb74b97b000000000000000000000000000000000000000000000000000000000000000059645788598858546a7569996a767a766887649c767476797a54766977667976000000000000000000000000000000000000000000000000000000000000000078887a75796577777a869976987799865777667787668a53857a885a98659546000000000000000000000000000000000000000000000000000000000000000087559877a96586779788b9769866888899877576777879647759a8659888a7440000000000000000000000000000000000000000000000000000000000000000785477887a55747b7585795b7999a9667456878889aa58997888797b56776855000000000000000000000000000000000000000000000000000000000000000048545854617b644557448744537b85565899899a39994a7a58998999a5558988000000000000000000000000000000000000000000000000000000000000000089659744a6559555a55698889486a57aab43a96b9556a665a854a579a744a5550000000000000000000000000000000000000000000000000000000000000000596587556677777777778578876687778974867787668876988897779876a744000000000000000000000000000000000000000000000000000000000000000067536556875448225922415851595456654587459456947b48997a86764585560000000000000000000000000000000000000000000000000000000000000000a854a89989998556a7559766a7779976a975997596749a64968a9779a55595450000000000000000000000000000000000000000000000000000000000000000674487549854885594558445a777a7778373579b5a32675584456975958b9944000000000000000000000000000000000000000000000000000000000000000077449754b674b469b964b658a766a864a777a975a566a754a677a875b777b9650000000000000000000000000000000000000000000000000000000000000000775577547445755676558744697377637766785334556566577859755877887600000000000000000000000000000000000000000000000000000000000000002789287328772a7436793a9457795a84368a3334323364555a757b856aaa9a5500000000000000000000000000000000000000000000000000000000000000005888516b5a3349a95964797778987a5375696a536668796577887a847a74797500000000000000000000000000000000000000000000000000000000000000007b537a53767b6769748775767a9a7988759c768a7b957a847775776478647854000000000000000000000000000000000000000000000000000000000000000098999788988998889b879a869a869a86696565676965667767446854677877880000000000000000000000000000000000000000000000000000000000000000678a77997ba647887a7589999ca59ba889aa9999655667bd6ba979a967bc6c7300000000000000000000000000000000000000000000000000000000000000006aaa6556518566775965485438985888576546854ca547775999699989997a9900000000000000000000000000000000000000000000000000000000000000006678526466335644769c5a7888547a785c4454a658885c946285627b6c54674a000000000000000000000000000000000000000000000000000000000000000033843b33359c337c395c3b853899355653745a33558b536b585b5a7557885445000000000000000000000000000000000000000000000000000000000000000026551566274525664a85486546564656377756664655465545454656516a656700000000000000000000000000000000000000000000000000000000000000004964696468553a86485437443645896588548856895477446a7569547a757954000000000000000000000000000000000000000000000000000000000000000036678566399988993b968b955ba658995566588859645a986ca7796477887ca6000000000000000000000000000000000000000000000000000000000000000019562a554c665c55156a256a468c557b1a8429744a845a83196b285a496b595b00000000000000000000000000000000000000000000000000000000000000001486248645a7549615782578469a5689187629764a875a861a692a694b7a5b79000000000000000000000000000000000000000000000000000000000000000017772777489858881555255546665556199528854884588411122112411251120000000000000000000000000000000000000000000000000000000000000000" + } + } + ], "enums": [ + { "identifier": "ItemType", "uid": 74, "values": [ + { "id": "Meat", "tileRect": { "tilesetUid": 133, "x": 48, "y": 320, "w": 16, "h": 16 }, "tileId": -1, "color": 12015952, "__tileSrcRect": [48,320,16,16] }, + { "id": "Gold", "tileRect": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, "tileId": -1, "color": 11307334, "__tileSrcRect": [240,352,16,16] }, + { "id": "GoldNuggets", "tileRect": { "tilesetUid": 133, "x": 80, "y": 960, "w": 16, "h": 16 }, "tileId": -1, "color": 12294485, "__tileSrcRect": [80,960,16,16] }, + { "id": "Gem", "tileRect": { "tilesetUid": 133, "x": 96, "y": 976, "w": 16, "h": 16 }, "tileId": -1, "color": 6849988, "__tileSrcRect": [96,976,16,16] }, + { "id": "Green_gem", "tileRect": { "tilesetUid": 133, "x": 32, "y": 992, "w": 16, "h": 16 }, "tileId": -1, "color": 5874551, "__tileSrcRect": [32,992,16,16] }, + { "id": "Healing_potion", "tileRect": { "tilesetUid": 133, "x": 80, "y": 272, "w": 16, "h": 16 }, "tileId": -1, "color": 10964028, "__tileSrcRect": [80,272,16,16] }, + { "id": "Spell", "tileRect": { "tilesetUid": 133, "x": 16, "y": 224, "w": 16, "h": 16 }, "tileId": -1, "color": 13536015, "__tileSrcRect": [16,224,16,16] }, + { "id": "Armor", "tileRect": { "tilesetUid": 133, "x": 0, "y": 640, "w": 16, "h": 16 }, "tileId": -1, "color": 8018775, "__tileSrcRect": [0,640,16,16] }, + { "id": "Bow", "tileRect": { "tilesetUid": 133, "x": 96, "y": 528, "w": 16, "h": 16 }, "tileId": -1, "color": 9138014, "__tileSrcRect": [96,528,16,16] }, + { "id": "Ammo", "tileRect": { "tilesetUid": 133, "x": 112, "y": 544, "w": 16, "h": 16 }, "tileId": -1, "color": 8739931, "__tileSrcRect": [112,544,16,16] }, + { "id": "Fire_blade", "tileRect": { "tilesetUid": 133, "x": 208, "y": 432, "w": 16, "h": 16 }, "tileId": -1, "color": 13601098, "__tileSrcRect": [208,432,16,16] }, + { "id": "Vorpal_blade", "tileRect": { "tilesetUid": 133, "x": 240, "y": 432, "w": 16, "h": 16 }, "tileId": -1, "color": 9331886, "__tileSrcRect": [240,432,16,16] } + ], "iconTilesetUid": 133, "externalRelPath": null, "externalFileChecksum": null, "tags": [] }, + { "identifier": "RoomType", "uid": 98, "values": [ + { "id": "Entrance", "tileRect": { "tilesetUid": 133, "x": 0, "y": 32, "w": 16, "h": 16 }, "tileId": -1, "color": 6539085, "__tileSrcRect": [0,32,16,16] }, + { "id": "Exit", "tileRect": { "tilesetUid": 133, "x": 48, "y": 240, "w": 16, "h": 16 }, "tileId": -1, "color": 11882632, "__tileSrcRect": [48,240,16,16] }, + { "id": "Shop", "tileRect": { "tilesetUid": 133, "x": 176, "y": 0, "w": 16, "h": 16 }, "tileId": -1, "color": 16690740, "__tileSrcRect": [176,0,16,16] }, + { "id": "Boss", "tileRect": { "tilesetUid": 133, "x": 96, "y": 0, "w": 16, "h": 16 }, "tileId": -1, "color": 14957380, "__tileSrcRect": [96,0,16,16] }, + { "id": "Save", "tileRect": { "tilesetUid": 133, "x": 80, "y": 32, "w": 16, "h": 16 }, "tileId": -1, "color": 39387, "__tileSrcRect": [80,32,16,16] } + ], "iconTilesetUid": 133, "externalRelPath": null, "externalFileChecksum": null, "tags": [] } + ], "externalEnums": [], "levelFields": [ + { + "identifier": "roomType", + "doc": null, + "__type": "LocalEnum.RoomType", + "uid": 99, + "type": "F_Enum(98)", + "isArray": false, + "canBeNull": true, + "arrayMinLength": null, + "arrayMaxLength": null, + "editorDisplayMode": "ValueOnly", + "editorDisplayScale": 2, + "editorDisplayPos": "Above", + "editorLinkStyle": "ZigZag", + "editorDisplayColor": null, + "editorAlwaysShow": false, + "editorShowInWorld": true, + "editorCutLongValues": true, + "editorTextSuffix": null, + "editorTextPrefix": null, + "useForSmartColor": true, + "min": null, + "max": null, + "regex": null, + "acceptFileTypes": null, + "defaultOverride": null, + "textLanguageMode": null, + "symmetricalRef": false, + "autoChainRef": false, + "allowOutOfLevelRef": true, + "allowedRefs": "OnlySame", + "allowedRefsEntityUid": null, + "allowedRefTags": [], + "tilesetUid": null + } + ] }, + "levels": [ + { + "identifier": "Entrance", + "iid": "a367c3b0-66b0-11ec-9cd7-91690c910c97", + "uid": 0, + "worldX": 0, + "worldY": 0, + "worldDepth": 0, + "pxWid": 512, + "pxHei": 256, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#A9E09D", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": "Entrance", "__tile": null, "defUid": 99, "realEditorValues": [{ + "id": "V_String", + "params": ["Entrance"] + }] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a367c3b5-66b0-11ec-9cd7-a7935e1c2c53", + "levelId": 0, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 8696599, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Item", + "__grid": [28,10], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a367c3b6-66b0-11ec-9cd7-61bd30243515", + "width": 24, + "height": 24, + "defUid": 72, + "px": [456,176], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gold", "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gold"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 100, "__tile": null, "defUid": 139, "realEditorValues": [{ "id": "V_Int", "params": [100] }] } + ] + }, + { + "__identifier": "Item", + "__grid": [3,5], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 80, "y": 272, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a367c3b7-66b0-11ec-9cd7-65b15caa5ba5", + "width": 24, + "height": 24, + "defUid": 72, + "px": [56,96], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Healing_potion", "__tile": { "tilesetUid": 133, "x": 80, "y": 272, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Healing_potion"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [null] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Player", + "__grid": [18,10], + "__pivot": [0.5,1], + "__tags": ["actor"], + "__tile": { "tilesetUid": 133, "x": 80, "y": 240, "w": 16, "h": 16 }, + "__smartColor": "#48DA75", + "iid": "a367c3b8-66b0-11ec-9cd7-313e15c65fee", + "width": 20, + "height": 20, + "defUid": 90, + "px": [296,176], + "fieldInstances": [ + { "__identifier": "inventory", "__type": "Array", "__value": [ "Ammo", "Bow" ], "__tile": null, "defUid": 91, "realEditorValues": [ { + "id": "V_String", + "params": ["Ammo"] + }, { + "id": "V_String", + "params": ["Bow"] + } ] }, + { "__identifier": "HP", "__type": "Int", "__value": 10, "__tile": null, "defUid": 92, "realEditorValues": [] } + ] + }, + { + "__identifier": "Ladder", + "__grid": [5,6], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "aa59c4d0-66b0-11ec-9ccd-fdfb8075370d", + "width": 16, + "height": 80, + "defUid": 134, + "px": [80,96], + "fieldInstances": [] + }, + { + "__identifier": "Item", + "__grid": [7,5], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 112, "y": 544, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "bbe3dcc0-8dc0-11ec-92c1-954a1fe43153", + "width": 24, + "height": 24, + "defUid": 72, + "px": [120,96], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Ammo", "__tile": { "tilesetUid": 133, "x": 112, "y": 544, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Ammo"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 5, "__tile": null, "defUid": 139, "realEditorValues": [{ "id": "V_Int", "params": [5] }] } + ] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a367c3b9-66b0-11ec-9cd7-dba4fd8c08c4", + "levelId": 0, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [32,32], "src": [320,128], "f": 0, "t": 204, "d": [26,66], "a": 1 }, + { "px": [128,32], "src": [320,128], "f": 1, "t": 204, "d": [26,72], "a": 1 }, + { "px": [32,48], "src": [320,128], "f": 0, "t": 204, "d": [26,98], "a": 1 }, + { "px": [128,48], "src": [320,128], "f": 1, "t": 204, "d": [26,104], "a": 1 }, + { "px": [32,64], "src": [320,128], "f": 0, "t": 204, "d": [26,130], "a": 1 }, + { "px": [128,64], "src": [320,128], "f": 1, "t": 204, "d": [26,136], "a": 1 }, + { "px": [32,80], "src": [320,128], "f": 0, "t": 204, "d": [26,162], "a": 1 }, + { "px": [128,80], "src": [320,128], "f": 1, "t": 204, "d": [26,168], "a": 1 }, + { "px": [368,192], "src": [320,128], "f": 0, "t": 204, "d": [26,407], "a": 1 }, + { "px": [400,192], "src": [320,128], "f": 1, "t": 204, "d": [26,409], "a": 1 }, + { "px": [368,208], "src": [320,128], "f": 0, "t": 204, "d": [26,439], "a": 1 }, + { "px": [400,208], "src": [320,128], "f": 1, "t": 204, "d": [26,441], "a": 1 }, + { "px": [368,224], "src": [320,128], "f": 0, "t": 204, "d": [26,471], "a": 1 }, + { "px": [400,224], "src": [320,128], "f": 1, "t": 204, "d": [26,473], "a": 1 }, + { "px": [368,240], "src": [320,128], "f": 0, "t": 204, "d": [26,503], "a": 1 }, + { "px": [400,240], "src": [320,128], "f": 1, "t": 204, "d": [26,505], "a": 1 }, + { "px": [80,96], "src": [320,96], "f": 0, "t": 158, "d": [138,197], "a": 1 }, + { "px": [128,176], "src": [320,96], "f": 0, "t": 158, "d": [138,360], "a": 1 }, + { "px": [208,176], "src": [320,96], "f": 1, "t": 158, "d": [138,365], "a": 1 }, + { "px": [368,176], "src": [320,96], "f": 0, "t": 158, "d": [138,375], "a": 1 }, + { "px": [400,176], "src": [320,96], "f": 1, "t": 158, "d": [138,377], "a": 1 }, + { "px": [32,32], "src": [336,112], "f": 0, "t": 182, "d": [27,66], "a": 1 }, + { "px": [48,32], "src": [336,112], "f": 0, "t": 182, "d": [27,67], "a": 1 }, + { "px": [64,32], "src": [336,112], "f": 0, "t": 182, "d": [27,68], "a": 1 }, + { "px": [80,32], "src": [336,112], "f": 0, "t": 182, "d": [27,69], "a": 1 }, + { "px": [96,32], "src": [336,112], "f": 0, "t": 182, "d": [27,70], "a": 1 }, + { "px": [112,32], "src": [336,112], "f": 0, "t": 182, "d": [27,71], "a": 1 }, + { "px": [128,32], "src": [336,112], "f": 0, "t": 182, "d": [27,72], "a": 1 }, + { "px": [0,112], "src": [336,112], "f": 0, "t": 182, "d": [27,224], "a": 1 }, + { "px": [16,112], "src": [336,112], "f": 0, "t": 182, "d": [27,225], "a": 1 }, + { "px": [32,112], "src": [336,112], "f": 0, "t": 182, "d": [27,226], "a": 1 }, + { "px": [48,112], "src": [336,112], "f": 0, "t": 182, "d": [27,227], "a": 1 }, + { "px": [64,112], "src": [336,112], "f": 0, "t": 182, "d": [27,228], "a": 1 }, + { "px": [96,112], "src": [336,112], "f": 0, "t": 182, "d": [27,230], "a": 1 }, + { "px": [112,112], "src": [336,112], "f": 0, "t": 182, "d": [27,231], "a": 1 }, + { "px": [128,112], "src": [336,112], "f": 0, "t": 182, "d": [27,232], "a": 1 }, + { "px": [144,112], "src": [336,112], "f": 0, "t": 182, "d": [27,233], "a": 1 }, + { "px": [160,112], "src": [336,112], "f": 0, "t": 182, "d": [27,234], "a": 1 }, + { "px": [176,112], "src": [336,112], "f": 0, "t": 182, "d": [27,235], "a": 1 }, + { "px": [192,112], "src": [336,112], "f": 0, "t": 182, "d": [27,236], "a": 1 }, + { "px": [208,112], "src": [336,112], "f": 0, "t": 182, "d": [27,237], "a": 1 }, + { "px": [224,112], "src": [336,112], "f": 0, "t": 182, "d": [27,238], "a": 1 }, + { "px": [240,112], "src": [336,112], "f": 0, "t": 182, "d": [27,239], "a": 1 }, + { "px": [256,112], "src": [336,112], "f": 0, "t": 182, "d": [27,240], "a": 1 }, + { "px": [272,112], "src": [336,112], "f": 0, "t": 182, "d": [27,241], "a": 1 }, + { "px": [288,112], "src": [336,112], "f": 0, "t": 182, "d": [27,242], "a": 1 }, + { "px": [304,112], "src": [336,112], "f": 0, "t": 182, "d": [27,243], "a": 1 }, + { "px": [320,112], "src": [336,112], "f": 0, "t": 182, "d": [27,244], "a": 1 }, + { "px": [336,112], "src": [336,112], "f": 0, "t": 182, "d": [27,245], "a": 1 }, + { "px": [352,112], "src": [336,112], "f": 0, "t": 182, "d": [27,246], "a": 1 }, + { "px": [368,112], "src": [336,112], "f": 0, "t": 182, "d": [27,247], "a": 1 }, + { "px": [384,112], "src": [336,112], "f": 0, "t": 182, "d": [27,248], "a": 1 }, + { "px": [400,112], "src": [336,112], "f": 0, "t": 182, "d": [27,249], "a": 1 }, + { "px": [416,112], "src": [336,112], "f": 0, "t": 182, "d": [27,250], "a": 1 }, + { "px": [432,112], "src": [336,112], "f": 0, "t": 182, "d": [27,251], "a": 1 }, + { "px": [448,112], "src": [336,112], "f": 0, "t": 182, "d": [27,252], "a": 1 }, + { "px": [464,112], "src": [336,112], "f": 0, "t": 182, "d": [27,253], "a": 1 }, + { "px": [480,112], "src": [336,112], "f": 0, "t": 182, "d": [27,254], "a": 1 }, + { "px": [496,112], "src": [336,112], "f": 0, "t": 182, "d": [27,255], "a": 1 }, + { "px": [80,112], "src": [320,112], "f": 0, "t": 181, "d": [137,229], "a": 1 } + ], + "seed": 9602034, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a367c3ba-66b0-11ec-9cd7-61c1299773eb", + "levelId": 0, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, + 0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [128,208], "src": [320,176], "f": 0, "t": 273, "d": [28,424], "a": 1 }, + { "px": [144,208], "src": [320,176], "f": 0, "t": 273, "d": [28,425], "a": 1 }, + { "px": [160,208], "src": [320,176], "f": 0, "t": 273, "d": [28,426], "a": 1 }, + { "px": [176,208], "src": [320,176], "f": 0, "t": 273, "d": [28,427], "a": 1 }, + { "px": [192,208], "src": [320,176], "f": 0, "t": 273, "d": [28,428], "a": 1 }, + { "px": [208,208], "src": [320,176], "f": 0, "t": 273, "d": [28,429], "a": 1 }, + { "px": [128,192], "src": [320,160], "f": 0, "t": 250, "d": [21,392], "a": 1 }, + { "px": [144,192], "src": [320,160], "f": 0, "t": 250, "d": [21,393], "a": 1 }, + { "px": [160,192], "src": [320,160], "f": 0, "t": 250, "d": [21,394], "a": 1 }, + { "px": [176,192], "src": [320,160], "f": 0, "t": 250, "d": [21,395], "a": 1 }, + { "px": [192,192], "src": [320,160], "f": 0, "t": 250, "d": [21,396], "a": 1 }, + { "px": [208,192], "src": [320,160], "f": 0, "t": 250, "d": [21,397], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [8,3], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [8,5], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [8,7], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [8,11], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [8,32], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [8,75], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [8,96], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [8,139], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [8,141], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [8,143], "a": 1 }, + { "px": [272,64], "src": [32,32], "f": 0, "t": 48, "d": [8,145], "a": 1 }, + { "px": [304,64], "src": [32,32], "f": 0, "t": 48, "d": [8,147], "a": 1 }, + { "px": [368,64], "src": [32,32], "f": 0, "t": 48, "d": [8,151], "a": 1 }, + { "px": [400,64], "src": [32,32], "f": 0, "t": 48, "d": [8,153], "a": 1 }, + { "px": [464,64], "src": [32,32], "f": 0, "t": 48, "d": [8,157], "a": 1 }, + { "px": [496,64], "src": [32,32], "f": 0, "t": 48, "d": [8,159], "a": 1 }, + { "px": [192,80], "src": [32,32], "f": 0, "t": 48, "d": [8,172], "a": 1 }, + { "px": [224,80], "src": [32,32], "f": 0, "t": 48, "d": [8,174], "a": 1 }, + { "px": [256,80], "src": [32,32], "f": 0, "t": 48, "d": [8,176], "a": 1 }, + { "px": [288,80], "src": [32,32], "f": 0, "t": 48, "d": [8,178], "a": 1 }, + { "px": [384,80], "src": [32,32], "f": 0, "t": 48, "d": [8,184], "a": 1 }, + { "px": [416,80], "src": [32,32], "f": 0, "t": 48, "d": [8,186], "a": 1 }, + { "px": [240,192], "src": [32,32], "f": 0, "t": 48, "d": [8,399], "a": 1 }, + { "px": [304,192], "src": [32,32], "f": 0, "t": 48, "d": [8,403], "a": 1 }, + { "px": [336,192], "src": [32,32], "f": 0, "t": 48, "d": [8,405], "a": 1 }, + { "px": [432,192], "src": [32,32], "f": 0, "t": 48, "d": [8,411], "a": 1 }, + { "px": [464,192], "src": [32,32], "f": 0, "t": 48, "d": [8,413], "a": 1 }, + { "px": [496,192], "src": [32,32], "f": 0, "t": 48, "d": [8,415], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [8,416], "a": 1 }, + { "px": [64,208], "src": [32,32], "f": 0, "t": 48, "d": [8,420], "a": 1 }, + { "px": [256,208], "src": [32,32], "f": 0, "t": 48, "d": [8,432], "a": 1 }, + { "px": [288,208], "src": [32,32], "f": 0, "t": 48, "d": [8,434], "a": 1 }, + { "px": [320,208], "src": [32,32], "f": 0, "t": 48, "d": [8,436], "a": 1 }, + { "px": [480,208], "src": [32,32], "f": 0, "t": 48, "d": [8,446], "a": 1 }, + { "px": [80,224], "src": [32,32], "f": 0, "t": 48, "d": [8,453], "a": 1 }, + { "px": [240,224], "src": [32,32], "f": 0, "t": 48, "d": [8,463], "a": 1 }, + { "px": [96,240], "src": [32,32], "f": 0, "t": 48, "d": [8,486], "a": 1 }, + { "px": [128,240], "src": [32,32], "f": 0, "t": 48, "d": [8,488], "a": 1 }, + { "px": [160,240], "src": [32,32], "f": 0, "t": 48, "d": [8,490], "a": 1 }, + { "px": [224,240], "src": [32,32], "f": 0, "t": 48, "d": [8,494], "a": 1 }, + { "px": [256,240], "src": [32,32], "f": 0, "t": 48, "d": [8,496], "a": 1 }, + { "px": [448,240], "src": [32,32], "f": 0, "t": 48, "d": [8,508], "a": 1 }, + { "px": [16,0], "src": [96,96], "f": 0, "t": 144, "d": [83,1], "a": 1 }, + { "px": [144,0], "src": [96,96], "f": 0, "t": 144, "d": [83,9], "a": 1 }, + { "px": [160,16], "src": [64,96], "f": 0, "t": 142, "d": [83,42], "a": 1 }, + { "px": [160,48], "src": [96,96], "f": 0, "t": 144, "d": [83,106], "a": 1 }, + { "px": [336,64], "src": [64,96], "f": 0, "t": 142, "d": [83,149], "a": 1 }, + { "px": [432,64], "src": [64,96], "f": 0, "t": 142, "d": [83,155], "a": 1 }, + { "px": [0,80], "src": [64,96], "f": 0, "t": 142, "d": [83,160], "a": 1 }, + { "px": [160,80], "src": [96,96], "f": 0, "t": 144, "d": [83,170], "a": 1 }, + { "px": [320,80], "src": [64,96], "f": 0, "t": 142, "d": [83,180], "a": 1 }, + { "px": [352,80], "src": [64,96], "f": 0, "t": 142, "d": [83,182], "a": 1 }, + { "px": [448,80], "src": [96,96], "f": 0, "t": 144, "d": [83,188], "a": 1 }, + { "px": [480,80], "src": [96,96], "f": 0, "t": 144, "d": [83,190], "a": 1 }, + { "px": [16,192], "src": [64,96], "f": 0, "t": 142, "d": [83,385], "a": 1 }, + { "px": [48,192], "src": [96,96], "f": 0, "t": 144, "d": [83,387], "a": 1 }, + { "px": [80,192], "src": [96,96], "f": 0, "t": 144, "d": [83,389], "a": 1 }, + { "px": [272,192], "src": [64,96], "f": 0, "t": 142, "d": [83,401], "a": 1 }, + { "px": [32,208], "src": [64,96], "f": 0, "t": 142, "d": [83,418], "a": 1 }, + { "px": [96,208], "src": [64,96], "f": 0, "t": 142, "d": [83,422], "a": 1 }, + { "px": [448,208], "src": [96,96], "f": 0, "t": 144, "d": [83,444], "a": 1 }, + { "px": [336,224], "src": [96,96], "f": 0, "t": 144, "d": [83,469], "a": 1 }, + { "px": [432,224], "src": [96,96], "f": 0, "t": 144, "d": [83,475], "a": 1 }, + { "px": [192,240], "src": [96,96], "f": 0, "t": 144, "d": [83,492], "a": 1 }, + { "px": [320,240], "src": [96,96], "f": 0, "t": 144, "d": [83,500], "a": 1 }, + { "px": [0,0], "src": [224,96], "f": 0, "t": 152, "d": [101,0], "a": 1 }, + { "px": [32,0], "src": [224,96], "f": 0, "t": 152, "d": [101,2], "a": 1 }, + { "px": [64,0], "src": [224,96], "f": 0, "t": 152, "d": [101,4], "a": 1 }, + { "px": [96,0], "src": [96,0], "f": 0, "t": 6, "d": [101,6], "a": 1 }, + { "px": [128,0], "src": [224,96], "f": 0, "t": 152, "d": [101,8], "a": 1 }, + { "px": [160,0], "src": [96,0], "f": 0, "t": 6, "d": [101,10], "a": 1 }, + { "px": [176,16], "src": [96,0], "f": 0, "t": 6, "d": [101,43], "a": 1 }, + { "px": [0,32], "src": [224,96], "f": 0, "t": 152, "d": [101,64], "a": 1 }, + { "px": [160,32], "src": [192,16], "f": 0, "t": 35, "d": [101,74], "a": 1 }, + { "px": [176,48], "src": [224,96], "f": 0, "t": 152, "d": [101,107], "a": 1 }, + { "px": [0,64], "src": [96,0], "f": 0, "t": 6, "d": [101,128], "a": 1 }, + { "px": [160,64], "src": [192,16], "f": 0, "t": 35, "d": [101,138], "a": 1 }, + { "px": [192,64], "src": [224,96], "f": 0, "t": 152, "d": [101,140], "a": 1 }, + { "px": [224,64], "src": [96,0], "f": 0, "t": 6, "d": [101,142], "a": 1 }, + { "px": [256,64], "src": [96,0], "f": 0, "t": 6, "d": [101,144], "a": 1 }, + { "px": [288,64], "src": [224,96], "f": 0, "t": 152, "d": [101,146], "a": 1 }, + { "px": [320,64], "src": [192,16], "f": 0, "t": 35, "d": [101,148], "a": 1 }, + { "px": [352,64], "src": [192,16], "f": 0, "t": 35, "d": [101,150], "a": 1 }, + { "px": [384,64], "src": [224,96], "f": 0, "t": 152, "d": [101,152], "a": 1 }, + { "px": [416,64], "src": [224,96], "f": 0, "t": 152, "d": [101,154], "a": 1 }, + { "px": [448,64], "src": [96,0], "f": 0, "t": 6, "d": [101,156], "a": 1 }, + { "px": [480,64], "src": [224,96], "f": 0, "t": 152, "d": [101,158], "a": 1 }, + { "px": [176,80], "src": [96,0], "f": 0, "t": 6, "d": [101,171], "a": 1 }, + { "px": [208,80], "src": [224,96], "f": 0, "t": 152, "d": [101,173], "a": 1 }, + { "px": [240,80], "src": [96,0], "f": 0, "t": 6, "d": [101,175], "a": 1 }, + { "px": [272,80], "src": [96,0], "f": 0, "t": 6, "d": [101,177], "a": 1 }, + { "px": [304,80], "src": [96,0], "f": 0, "t": 6, "d": [101,179], "a": 1 }, + { "px": [336,80], "src": [224,96], "f": 0, "t": 152, "d": [101,181], "a": 1 }, + { "px": [368,80], "src": [192,16], "f": 0, "t": 35, "d": [101,183], "a": 1 }, + { "px": [400,80], "src": [192,16], "f": 0, "t": 35, "d": [101,185], "a": 1 }, + { "px": [432,80], "src": [192,16], "f": 0, "t": 35, "d": [101,187], "a": 1 }, + { "px": [464,80], "src": [224,96], "f": 0, "t": 152, "d": [101,189], "a": 1 }, + { "px": [496,80], "src": [192,16], "f": 0, "t": 35, "d": [101,191], "a": 1 }, + { "px": [0,192], "src": [224,96], "f": 0, "t": 152, "d": [101,384], "a": 1 }, + { "px": [32,192], "src": [192,16], "f": 0, "t": 35, "d": [101,386], "a": 1 }, + { "px": [64,192], "src": [192,16], "f": 0, "t": 35, "d": [101,388], "a": 1 }, + { "px": [96,192], "src": [224,96], "f": 0, "t": 152, "d": [101,390], "a": 1 }, + { "px": [256,192], "src": [192,16], "f": 0, "t": 35, "d": [101,400], "a": 1 }, + { "px": [288,192], "src": [192,16], "f": 0, "t": 35, "d": [101,402], "a": 1 }, + { "px": [320,192], "src": [192,16], "f": 0, "t": 35, "d": [101,404], "a": 1 }, + { "px": [448,192], "src": [96,0], "f": 0, "t": 6, "d": [101,412], "a": 1 }, + { "px": [480,192], "src": [96,0], "f": 0, "t": 6, "d": [101,414], "a": 1 }, + { "px": [16,208], "src": [96,0], "f": 0, "t": 6, "d": [101,417], "a": 1 }, + { "px": [48,208], "src": [96,0], "f": 0, "t": 6, "d": [101,419], "a": 1 }, + { "px": [80,208], "src": [224,96], "f": 0, "t": 152, "d": [101,421], "a": 1 }, + { "px": [240,208], "src": [224,96], "f": 0, "t": 152, "d": [101,431], "a": 1 }, + { "px": [272,208], "src": [224,96], "f": 0, "t": 152, "d": [101,433], "a": 1 }, + { "px": [304,208], "src": [192,16], "f": 0, "t": 35, "d": [101,435], "a": 1 }, + { "px": [336,208], "src": [224,96], "f": 0, "t": 152, "d": [101,437], "a": 1 }, + { "px": [432,208], "src": [96,0], "f": 0, "t": 6, "d": [101,443], "a": 1 }, + { "px": [464,208], "src": [192,16], "f": 0, "t": 35, "d": [101,445], "a": 1 }, + { "px": [496,208], "src": [192,16], "f": 0, "t": 35, "d": [101,447], "a": 1 }, + { "px": [96,224], "src": [96,0], "f": 0, "t": 6, "d": [101,454], "a": 1 }, + { "px": [256,224], "src": [192,16], "f": 0, "t": 35, "d": [101,464], "a": 1 }, + { "px": [320,224], "src": [96,0], "f": 0, "t": 6, "d": [101,468], "a": 1 }, + { "px": [448,224], "src": [96,0], "f": 0, "t": 6, "d": [101,476], "a": 1 }, + { "px": [80,240], "src": [96,0], "f": 0, "t": 6, "d": [101,485], "a": 1 }, + { "px": [112,240], "src": [96,0], "f": 0, "t": 6, "d": [101,487], "a": 1 }, + { "px": [144,240], "src": [224,96], "f": 0, "t": 152, "d": [101,489], "a": 1 }, + { "px": [176,240], "src": [96,0], "f": 0, "t": 6, "d": [101,491], "a": 1 }, + { "px": [208,240], "src": [192,16], "f": 0, "t": 35, "d": [101,493], "a": 1 }, + { "px": [240,240], "src": [192,16], "f": 0, "t": 35, "d": [101,495], "a": 1 }, + { "px": [336,240], "src": [224,96], "f": 0, "t": 152, "d": [101,501], "a": 1 }, + { "px": [432,240], "src": [192,16], "f": 0, "t": 35, "d": [101,507], "a": 1 }, + { "px": [192,0], "src": [32,32], "f": 0, "t": 48, "d": [127,12], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [127,21], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [127,23], "a": 1 }, + { "px": [384,0], "src": [32,32], "f": 0, "t": 48, "d": [127,24], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [127,25], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [127,27], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [127,28], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [127,31], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,44], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [272,16], "src": [32,32], "f": 0, "t": 48, "d": [127,49], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [127,51], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [127,52], "a": 1 }, + { "px": [336,16], "src": [32,32], "f": 0, "t": 48, "d": [127,53], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [127,54], "a": 1 }, + { "px": [368,16], "src": [32,32], "f": 0, "t": 48, "d": [127,55], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [127,56], "a": 1 }, + { "px": [400,16], "src": [32,32], "f": 0, "t": 48, "d": [127,57], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [127,58], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [127,60], "a": 1 }, + { "px": [464,16], "src": [32,32], "f": 0, "t": 48, "d": [127,61], "a": 1 }, + { "px": [480,16], "src": [32,32], "f": 0, "t": 48, "d": [127,62], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [127,77], "a": 1 }, + { "px": [224,32], "src": [32,32], "f": 0, "t": 48, "d": [127,78], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,79], "a": 1 }, + { "px": [256,32], "src": [32,32], "f": 0, "t": 48, "d": [127,80], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [127,81], "a": 1 }, + { "px": [288,32], "src": [32,32], "f": 0, "t": 48, "d": [127,82], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [127,83], "a": 1 }, + { "px": [320,32], "src": [32,32], "f": 0, "t": 48, "d": [127,84], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [127,85], "a": 1 }, + { "px": [352,32], "src": [32,32], "f": 0, "t": 48, "d": [127,86], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [127,87], "a": 1 }, + { "px": [384,32], "src": [32,32], "f": 0, "t": 48, "d": [127,88], "a": 1 }, + { "px": [400,32], "src": [32,32], "f": 0, "t": 48, "d": [127,89], "a": 1 }, + { "px": [416,32], "src": [32,32], "f": 0, "t": 48, "d": [127,90], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [127,91], "a": 1 }, + { "px": [448,32], "src": [32,32], "f": 0, "t": 48, "d": [127,92], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [127,93], "a": 1 }, + { "px": [480,32], "src": [32,32], "f": 0, "t": 48, "d": [127,94], "a": 1 }, + { "px": [496,32], "src": [32,32], "f": 0, "t": 48, "d": [127,95], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [127,108], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [127,110], "a": 1 }, + { "px": [240,48], "src": [32,32], "f": 0, "t": 48, "d": [127,111], "a": 1 }, + { "px": [256,48], "src": [32,32], "f": 0, "t": 48, "d": [127,112], "a": 1 }, + { "px": [272,48], "src": [32,32], "f": 0, "t": 48, "d": [127,113], "a": 1 }, + { "px": [288,48], "src": [32,32], "f": 0, "t": 48, "d": [127,114], "a": 1 }, + { "px": [304,48], "src": [32,32], "f": 0, "t": 48, "d": [127,115], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [127,116], "a": 1 }, + { "px": [336,48], "src": [32,32], "f": 0, "t": 48, "d": [127,117], "a": 1 }, + { "px": [352,48], "src": [32,32], "f": 0, "t": 48, "d": [127,118], "a": 1 }, + { "px": [384,48], "src": [32,32], "f": 0, "t": 48, "d": [127,120], "a": 1 }, + { "px": [400,48], "src": [32,32], "f": 0, "t": 48, "d": [127,121], "a": 1 }, + { "px": [416,48], "src": [32,32], "f": 0, "t": 48, "d": [127,122], "a": 1 }, + { "px": [432,48], "src": [32,32], "f": 0, "t": 48, "d": [127,123], "a": 1 }, + { "px": [448,48], "src": [32,32], "f": 0, "t": 48, "d": [127,124], "a": 1 }, + { "px": [464,48], "src": [32,32], "f": 0, "t": 48, "d": [127,125], "a": 1 }, + { "px": [480,48], "src": [32,32], "f": 0, "t": 48, "d": [127,126], "a": 1 }, + { "px": [496,48], "src": [32,32], "f": 0, "t": 48, "d": [127,127], "a": 1 }, + { "px": [0,224], "src": [32,32], "f": 0, "t": 48, "d": [127,448], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [127,449], "a": 1 }, + { "px": [32,224], "src": [32,32], "f": 0, "t": 48, "d": [127,450], "a": 1 }, + { "px": [48,224], "src": [32,32], "f": 0, "t": 48, "d": [127,451], "a": 1 }, + { "px": [64,224], "src": [32,32], "f": 0, "t": 48, "d": [127,452], "a": 1 }, + { "px": [272,224], "src": [32,32], "f": 0, "t": 48, "d": [127,465], "a": 1 }, + { "px": [288,224], "src": [32,32], "f": 0, "t": 48, "d": [127,466], "a": 1 }, + { "px": [304,224], "src": [32,32], "f": 0, "t": 48, "d": [127,467], "a": 1 }, + { "px": [464,224], "src": [32,32], "f": 0, "t": 48, "d": [127,477], "a": 1 }, + { "px": [480,224], "src": [32,32], "f": 0, "t": 48, "d": [127,478], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [127,479], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [127,480], "a": 1 }, + { "px": [16,240], "src": [32,32], "f": 0, "t": 48, "d": [127,481], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [127,482], "a": 1 }, + { "px": [48,240], "src": [32,32], "f": 0, "t": 48, "d": [127,483], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [127,484], "a": 1 }, + { "px": [288,240], "src": [32,32], "f": 0, "t": 48, "d": [127,498], "a": 1 }, + { "px": [480,240], "src": [32,32], "f": 0, "t": 48, "d": [127,510], "a": 1 }, + { "px": [256,0], "src": [96,96], "f": 0, "t": 144, "d": [126,16], "a": 1 }, + { "px": [320,0], "src": [64,96], "f": 0, "t": 142, "d": [126,20], "a": 1 }, + { "px": [352,0], "src": [64,96], "f": 0, "t": 142, "d": [126,22], "a": 1 }, + { "px": [416,0], "src": [96,96], "f": 0, "t": 144, "d": [126,26], "a": 1 }, + { "px": [480,0], "src": [64,96], "f": 0, "t": 142, "d": [126,30], "a": 1 }, + { "px": [208,16], "src": [96,96], "f": 0, "t": 144, "d": [126,45], "a": 1 }, + { "px": [240,16], "src": [64,96], "f": 0, "t": 142, "d": [126,47], "a": 1 }, + { "px": [432,16], "src": [96,96], "f": 0, "t": 144, "d": [126,59], "a": 1 }, + { "px": [496,16], "src": [96,96], "f": 0, "t": 144, "d": [126,63], "a": 1 }, + { "px": [192,32], "src": [96,96], "f": 0, "t": 144, "d": [126,76], "a": 1 }, + { "px": [208,48], "src": [64,96], "f": 0, "t": 142, "d": [126,109], "a": 1 }, + { "px": [368,48], "src": [64,96], "f": 0, "t": 142, "d": [126,119], "a": 1 }, + { "px": [272,240], "src": [64,96], "f": 0, "t": 142, "d": [126,497], "a": 1 }, + { "px": [304,240], "src": [96,96], "f": 0, "t": 144, "d": [126,499], "a": 1 }, + { "px": [464,240], "src": [64,96], "f": 0, "t": 142, "d": [126,509], "a": 1 }, + { "px": [496,240], "src": [64,96], "f": 0, "t": 142, "d": [126,511], "a": 1 }, + { "px": [32,16], "src": [256,160], "f": 0, "t": 246, "d": [12,34], "a": 1 }, + { "px": [64,16], "src": [256,160], "f": 0, "t": 246, "d": [12,36], "a": 1 }, + { "px": [80,16], "src": [256,160], "f": 0, "t": 246, "d": [12,37], "a": 1 }, + { "px": [96,16], "src": [256,160], "f": 0, "t": 246, "d": [12,38], "a": 1 }, + { "px": [112,16], "src": [256,160], "f": 0, "t": 246, "d": [12,39], "a": 1 }, + { "px": [128,16], "src": [256,160], "f": 0, "t": 246, "d": [12,40], "a": 1 }, + { "px": [0,96], "src": [256,160], "f": 0, "t": 246, "d": [12,192], "a": 1 }, + { "px": [176,96], "src": [256,160], "f": 0, "t": 246, "d": [12,203], "a": 1 }, + { "px": [224,96], "src": [256,160], "f": 0, "t": 246, "d": [12,206], "a": 1 }, + { "px": [304,96], "src": [256,160], "f": 0, "t": 246, "d": [12,211], "a": 1 }, + { "px": [336,96], "src": [256,160], "f": 0, "t": 246, "d": [12,213], "a": 1 }, + { "px": [352,96], "src": [256,160], "f": 0, "t": 246, "d": [12,214], "a": 1 }, + { "px": [368,96], "src": [256,160], "f": 0, "t": 246, "d": [12,215], "a": 1 }, + { "px": [384,96], "src": [256,160], "f": 0, "t": 246, "d": [12,216], "a": 1 }, + { "px": [432,96], "src": [256,160], "f": 0, "t": 246, "d": [12,219], "a": 1 }, + { "px": [464,96], "src": [256,160], "f": 0, "t": 246, "d": [12,221], "a": 1 }, + { "px": [480,96], "src": [256,160], "f": 0, "t": 246, "d": [12,222], "a": 1 }, + { "px": [496,96], "src": [256,160], "f": 0, "t": 246, "d": [12,223], "a": 1 }, + { "px": [32,96], "src": [256,96], "f": 0, "t": 154, "d": [9,194], "a": 1 }, + { "px": [48,96], "src": [256,96], "f": 0, "t": 154, "d": [9,195], "a": 1 }, + { "px": [112,96], "src": [256,96], "f": 0, "t": 154, "d": [9,199], "a": 1 }, + { "px": [128,96], "src": [256,96], "f": 0, "t": 154, "d": [9,200], "a": 1 }, + { "px": [0,176], "src": [256,96], "f": 0, "t": 154, "d": [9,352], "a": 1 }, + { "px": [16,176], "src": [256,96], "f": 0, "t": 154, "d": [9,353], "a": 1 }, + { "px": [32,176], "src": [256,96], "f": 0, "t": 154, "d": [9,354], "a": 1 }, + { "px": [48,176], "src": [256,96], "f": 0, "t": 154, "d": [9,355], "a": 1 }, + { "px": [64,176], "src": [256,96], "f": 0, "t": 154, "d": [9,356], "a": 1 }, + { "px": [80,176], "src": [256,96], "f": 0, "t": 154, "d": [9,357], "a": 1 }, + { "px": [96,176], "src": [256,96], "f": 0, "t": 154, "d": [9,358], "a": 1 }, + { "px": [240,176], "src": [256,96], "f": 0, "t": 154, "d": [9,367], "a": 1 }, + { "px": [304,176], "src": [256,96], "f": 0, "t": 154, "d": [9,371], "a": 1 }, + { "px": [320,176], "src": [256,96], "f": 0, "t": 154, "d": [9,372], "a": 1 }, + { "px": [336,176], "src": [256,96], "f": 0, "t": 154, "d": [9,373], "a": 1 }, + { "px": [432,176], "src": [256,96], "f": 0, "t": 154, "d": [9,379], "a": 1 }, + { "px": [448,176], "src": [256,96], "f": 0, "t": 154, "d": [9,380], "a": 1 }, + { "px": [464,176], "src": [256,96], "f": 0, "t": 154, "d": [9,381], "a": 1 }, + { "px": [480,176], "src": [256,96], "f": 0, "t": 154, "d": [9,382], "a": 1 }, + { "px": [496,176], "src": [256,96], "f": 0, "t": 154, "d": [9,383], "a": 1 }, + { "px": [128,224], "src": [256,96], "f": 0, "t": 154, "d": [9,456], "a": 1 }, + { "px": [144,224], "src": [256,96], "f": 0, "t": 154, "d": [9,457], "a": 1 }, + { "px": [160,224], "src": [256,96], "f": 0, "t": 154, "d": [9,458], "a": 1 }, + { "px": [176,224], "src": [256,96], "f": 0, "t": 154, "d": [9,459], "a": 1 }, + { "px": [192,224], "src": [256,96], "f": 0, "t": 154, "d": [9,460], "a": 1 }, + { "px": [208,224], "src": [256,96], "f": 0, "t": 154, "d": [9,461], "a": 1 }, + { "px": [16,32], "src": [224,128], "f": 1, "t": 198, "d": [10,65], "a": 1 }, + { "px": [144,32], "src": [224,128], "f": 0, "t": 198, "d": [10,73], "a": 1 }, + { "px": [16,48], "src": [224,128], "f": 1, "t": 198, "d": [10,97], "a": 1 }, + { "px": [144,48], "src": [224,128], "f": 0, "t": 198, "d": [10,105], "a": 1 }, + { "px": [16,64], "src": [224,128], "f": 1, "t": 198, "d": [10,129], "a": 1 }, + { "px": [144,64], "src": [224,128], "f": 0, "t": 198, "d": [10,137], "a": 1 }, + { "px": [16,80], "src": [224,128], "f": 1, "t": 198, "d": [10,161], "a": 1 }, + { "px": [144,80], "src": [224,128], "f": 0, "t": 198, "d": [10,169], "a": 1 }, + { "px": [112,192], "src": [224,128], "f": 1, "t": 198, "d": [10,391], "a": 1 }, + { "px": [224,192], "src": [224,128], "f": 0, "t": 198, "d": [10,398], "a": 1 }, + { "px": [352,192], "src": [224,128], "f": 1, "t": 198, "d": [10,406], "a": 1 }, + { "px": [416,192], "src": [224,128], "f": 0, "t": 198, "d": [10,410], "a": 1 }, + { "px": [112,208], "src": [224,128], "f": 1, "t": 198, "d": [10,423], "a": 1 }, + { "px": [224,208], "src": [224,128], "f": 0, "t": 198, "d": [10,430], "a": 1 }, + { "px": [352,208], "src": [224,128], "f": 1, "t": 198, "d": [10,438], "a": 1 }, + { "px": [416,208], "src": [224,128], "f": 0, "t": 198, "d": [10,442], "a": 1 }, + { "px": [352,224], "src": [224,128], "f": 1, "t": 198, "d": [10,470], "a": 1 }, + { "px": [416,224], "src": [224,128], "f": 0, "t": 198, "d": [10,474], "a": 1 }, + { "px": [352,240], "src": [224,128], "f": 1, "t": 198, "d": [10,502], "a": 1 }, + { "px": [416,240], "src": [224,128], "f": 0, "t": 198, "d": [10,506], "a": 1 }, + { "px": [64,96], "src": [224,96], "f": 1, "t": 152, "d": [11,196], "a": 1 }, + { "px": [96,96], "src": [224,96], "f": 0, "t": 152, "d": [11,198], "a": 1 }, + { "px": [112,176], "src": [224,96], "f": 1, "t": 152, "d": [11,359], "a": 1 }, + { "px": [224,176], "src": [224,96], "f": 0, "t": 152, "d": [11,366], "a": 1 }, + { "px": [352,176], "src": [224,96], "f": 1, "t": 152, "d": [11,374], "a": 1 }, + { "px": [16,16], "src": [224,96], "f": 0, "t": 152, "d": [14,33], "a": 1 }, + { "px": [144,16], "src": [224,96], "f": 1, "t": 152, "d": [14,41], "a": 1 }, + { "px": [16,96], "src": [224,96], "f": 2, "t": 152, "d": [14,193], "a": 1 }, + { "px": [144,96], "src": [224,96], "f": 3, "t": 152, "d": [14,201], "a": 1 }, + { "px": [112,224], "src": [224,96], "f": 2, "t": 152, "d": [14,455], "a": 1 }, + { "px": [224,224], "src": [224,96], "f": 3, "t": 152, "d": [14,462], "a": 1 }, + { "px": [48,16], "src": [160,192], "f": 0, "t": 286, "d": [78,35], "a": 1 }, + { "px": [160,96], "src": [160,192], "f": 0, "t": 286, "d": [78,202], "a": 1 }, + { "px": [192,96], "src": [192,192], "f": 0, "t": 288, "d": [78,204], "a": 1 }, + { "px": [208,96], "src": [192,192], "f": 0, "t": 288, "d": [78,205], "a": 1 }, + { "px": [240,96], "src": [160,192], "f": 0, "t": 286, "d": [78,207], "a": 1 }, + { "px": [256,96], "src": [192,192], "f": 0, "t": 288, "d": [78,208], "a": 1 }, + { "px": [272,96], "src": [160,192], "f": 0, "t": 286, "d": [78,209], "a": 1 }, + { "px": [288,96], "src": [160,192], "f": 0, "t": 286, "d": [78,210], "a": 1 }, + { "px": [320,96], "src": [192,192], "f": 0, "t": 288, "d": [78,212], "a": 1 }, + { "px": [400,96], "src": [192,192], "f": 0, "t": 288, "d": [78,217], "a": 1 }, + { "px": [416,96], "src": [192,192], "f": 0, "t": 288, "d": [78,218], "a": 1 }, + { "px": [448,96], "src": [192,192], "f": 0, "t": 288, "d": [78,220], "a": 1 }, + { "px": [256,176], "src": [32,0], "f": 0, "t": 2, "d": [80,368], "a": 1 }, + { "px": [272,176], "src": [32,0], "f": 0, "t": 2, "d": [80,369], "a": 1 }, + { "px": [288,176], "src": [32,0], "f": 0, "t": 2, "d": [80,370], "a": 1 }, + { "px": [416,176], "src": [32,0], "f": 0, "t": 2, "d": [80,378], "a": 1 }, + { "px": [0,160], "src": [32,96], "f": 0, "t": 140, "d": [110,320], "a": 1 }, + { "px": [16,160], "src": [32,96], "f": 0, "t": 140, "d": [110,321], "a": 1 }, + { "px": [32,160], "src": [0,96], "f": 0, "t": 138, "d": [110,322], "a": 1 }, + { "px": [96,160], "src": [0,96], "f": 0, "t": 138, "d": [110,326], "a": 1 }, + { "px": [224,160], "src": [0,96], "f": 0, "t": 138, "d": [110,334], "a": 1 }, + { "px": [240,160], "src": [0,96], "f": 0, "t": 138, "d": [110,335], "a": 1 }, + { "px": [288,160], "src": [0,96], "f": 0, "t": 138, "d": [110,338], "a": 1 }, + { "px": [320,160], "src": [0,96], "f": 0, "t": 138, "d": [110,340], "a": 1 }, + { "px": [416,160], "src": [0,96], "f": 0, "t": 138, "d": [110,346], "a": 1 }, + { "px": [480,160], "src": [0,96], "f": 0, "t": 138, "d": [110,350], "a": 1 } + ], + "seed": 4509386, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a367c3bb-66b0-11ec-9cd7-3df486083ddc", + "levelId": 0, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [48,32], "src": [320,272], "f": 0, "t": 411, "d": [108,67], "a": 1 }, + { "px": [64,32], "src": [320,272], "f": 0, "t": 411, "d": [108,68], "a": 1 }, + { "px": [96,32], "src": [320,272], "f": 0, "t": 411, "d": [108,70], "a": 1 }, + { "px": [112,32], "src": [320,272], "f": 0, "t": 411, "d": [108,71], "a": 1 }, + { "px": [48,48], "src": [320,272], "f": 0, "t": 411, "d": [108,99], "a": 1 }, + { "px": [64,48], "src": [320,272], "f": 0, "t": 411, "d": [108,100], "a": 1 }, + { "px": [80,48], "src": [320,272], "f": 0, "t": 411, "d": [108,101], "a": 1 }, + { "px": [96,48], "src": [320,272], "f": 0, "t": 411, "d": [108,102], "a": 1 }, + { "px": [112,48], "src": [320,272], "f": 0, "t": 411, "d": [108,103], "a": 1 }, + { "px": [48,64], "src": [320,272], "f": 0, "t": 411, "d": [108,131], "a": 1 }, + { "px": [64,64], "src": [320,272], "f": 0, "t": 411, "d": [108,132], "a": 1 }, + { "px": [80,64], "src": [320,272], "f": 0, "t": 411, "d": [108,133], "a": 1 }, + { "px": [112,64], "src": [320,272], "f": 0, "t": 411, "d": [108,135], "a": 1 }, + { "px": [48,80], "src": [320,272], "f": 0, "t": 411, "d": [108,163], "a": 1 }, + { "px": [64,80], "src": [320,272], "f": 0, "t": 411, "d": [108,164], "a": 1 }, + { "px": [80,80], "src": [320,272], "f": 0, "t": 411, "d": [108,165], "a": 1 }, + { "px": [96,80], "src": [320,272], "f": 0, "t": 411, "d": [108,166], "a": 1 }, + { "px": [112,80], "src": [320,272], "f": 0, "t": 411, "d": [108,167], "a": 1 }, + { "px": [16,112], "src": [320,272], "f": 0, "t": 411, "d": [108,225], "a": 1 }, + { "px": [32,112], "src": [320,272], "f": 0, "t": 411, "d": [108,226], "a": 1 }, + { "px": [48,112], "src": [320,272], "f": 0, "t": 411, "d": [108,227], "a": 1 }, + { "px": [64,112], "src": [320,272], "f": 0, "t": 411, "d": [108,228], "a": 1 }, + { "px": [80,112], "src": [320,272], "f": 0, "t": 411, "d": [108,229], "a": 1 }, + { "px": [96,112], "src": [320,272], "f": 0, "t": 411, "d": [108,230], "a": 1 }, + { "px": [112,112], "src": [320,272], "f": 0, "t": 411, "d": [108,231], "a": 1 }, + { "px": [144,112], "src": [320,272], "f": 0, "t": 411, "d": [108,233], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [108,235], "a": 1 }, + { "px": [192,112], "src": [320,272], "f": 0, "t": 411, "d": [108,236], "a": 1 }, + { "px": [208,112], "src": [320,272], "f": 0, "t": 411, "d": [108,237], "a": 1 }, + { "px": [224,112], "src": [320,272], "f": 0, "t": 411, "d": [108,238], "a": 1 }, + { "px": [240,112], "src": [320,272], "f": 0, "t": 411, "d": [108,239], "a": 1 }, + { "px": [256,112], "src": [320,272], "f": 0, "t": 411, "d": [108,240], "a": 1 }, + { "px": [272,112], "src": [320,272], "f": 0, "t": 411, "d": [108,241], "a": 1 }, + { "px": [304,112], "src": [320,272], "f": 0, "t": 411, "d": [108,243], "a": 1 }, + { "px": [336,112], "src": [320,272], "f": 0, "t": 411, "d": [108,245], "a": 1 }, + { "px": [352,112], "src": [320,272], "f": 0, "t": 411, "d": [108,246], "a": 1 }, + { "px": [368,112], "src": [320,272], "f": 0, "t": 411, "d": [108,247], "a": 1 }, + { "px": [384,112], "src": [320,272], "f": 0, "t": 411, "d": [108,248], "a": 1 }, + { "px": [400,112], "src": [320,272], "f": 0, "t": 411, "d": [108,249], "a": 1 }, + { "px": [432,112], "src": [320,272], "f": 0, "t": 411, "d": [108,251], "a": 1 }, + { "px": [448,112], "src": [320,272], "f": 0, "t": 411, "d": [108,252], "a": 1 }, + { "px": [464,112], "src": [320,272], "f": 0, "t": 411, "d": [108,253], "a": 1 }, + { "px": [496,112], "src": [320,272], "f": 0, "t": 411, "d": [108,255], "a": 1 }, + { "px": [0,128], "src": [320,272], "f": 0, "t": 411, "d": [108,256], "a": 1 }, + { "px": [16,128], "src": [320,272], "f": 0, "t": 411, "d": [108,257], "a": 1 }, + { "px": [32,128], "src": [320,272], "f": 0, "t": 411, "d": [108,258], "a": 1 }, + { "px": [48,128], "src": [320,272], "f": 0, "t": 411, "d": [108,259], "a": 1 }, + { "px": [64,128], "src": [320,272], "f": 0, "t": 411, "d": [108,260], "a": 1 }, + { "px": [80,128], "src": [320,272], "f": 0, "t": 411, "d": [108,261], "a": 1 }, + { "px": [112,128], "src": [320,272], "f": 0, "t": 411, "d": [108,263], "a": 1 }, + { "px": [128,128], "src": [320,272], "f": 0, "t": 411, "d": [108,264], "a": 1 }, + { "px": [160,128], "src": [320,272], "f": 0, "t": 411, "d": [108,266], "a": 1 }, + { "px": [176,128], "src": [320,272], "f": 0, "t": 411, "d": [108,267], "a": 1 }, + { "px": [192,128], "src": [320,272], "f": 0, "t": 411, "d": [108,268], "a": 1 }, + { "px": [208,128], "src": [320,272], "f": 0, "t": 411, "d": [108,269], "a": 1 }, + { "px": [224,128], "src": [320,272], "f": 0, "t": 411, "d": [108,270], "a": 1 }, + { "px": [240,128], "src": [320,272], "f": 0, "t": 411, "d": [108,271], "a": 1 }, + { "px": [256,128], "src": [320,272], "f": 0, "t": 411, "d": [108,272], "a": 1 }, + { "px": [272,128], "src": [320,272], "f": 0, "t": 411, "d": [108,273], "a": 1 }, + { "px": [288,128], "src": [320,272], "f": 0, "t": 411, "d": [108,274], "a": 1 }, + { "px": [304,128], "src": [320,272], "f": 0, "t": 411, "d": [108,275], "a": 1 }, + { "px": [320,128], "src": [320,272], "f": 0, "t": 411, "d": [108,276], "a": 1 }, + { "px": [336,128], "src": [320,272], "f": 0, "t": 411, "d": [108,277], "a": 1 }, + { "px": [352,128], "src": [320,272], "f": 0, "t": 411, "d": [108,278], "a": 1 }, + { "px": [368,128], "src": [320,272], "f": 0, "t": 411, "d": [108,279], "a": 1 }, + { "px": [384,128], "src": [320,272], "f": 0, "t": 411, "d": [108,280], "a": 1 }, + { "px": [400,128], "src": [320,272], "f": 0, "t": 411, "d": [108,281], "a": 1 }, + { "px": [416,128], "src": [320,272], "f": 0, "t": 411, "d": [108,282], "a": 1 }, + { "px": [432,128], "src": [320,272], "f": 0, "t": 411, "d": [108,283], "a": 1 }, + { "px": [448,128], "src": [320,272], "f": 0, "t": 411, "d": [108,284], "a": 1 }, + { "px": [464,128], "src": [320,272], "f": 0, "t": 411, "d": [108,285], "a": 1 }, + { "px": [480,128], "src": [320,272], "f": 0, "t": 411, "d": [108,286], "a": 1 }, + { "px": [496,128], "src": [320,272], "f": 0, "t": 411, "d": [108,287], "a": 1 }, + { "px": [0,144], "src": [320,272], "f": 0, "t": 411, "d": [108,288], "a": 1 }, + { "px": [16,144], "src": [320,272], "f": 0, "t": 411, "d": [108,289], "a": 1 }, + { "px": [32,144], "src": [320,272], "f": 0, "t": 411, "d": [108,290], "a": 1 }, + { "px": [48,144], "src": [320,272], "f": 0, "t": 411, "d": [108,291], "a": 1 }, + { "px": [64,144], "src": [320,272], "f": 0, "t": 411, "d": [108,292], "a": 1 }, + { "px": [80,144], "src": [320,272], "f": 0, "t": 411, "d": [108,293], "a": 1 }, + { "px": [96,144], "src": [320,272], "f": 0, "t": 411, "d": [108,294], "a": 1 }, + { "px": [112,144], "src": [320,272], "f": 0, "t": 411, "d": [108,295], "a": 1 }, + { "px": [128,144], "src": [320,272], "f": 0, "t": 411, "d": [108,296], "a": 1 }, + { "px": [144,144], "src": [320,272], "f": 0, "t": 411, "d": [108,297], "a": 1 }, + { "px": [160,144], "src": [320,272], "f": 0, "t": 411, "d": [108,298], "a": 1 }, + { "px": [176,144], "src": [320,272], "f": 0, "t": 411, "d": [108,299], "a": 1 }, + { "px": [192,144], "src": [320,272], "f": 0, "t": 411, "d": [108,300], "a": 1 }, + { "px": [208,144], "src": [320,272], "f": 0, "t": 411, "d": [108,301], "a": 1 }, + { "px": [224,144], "src": [320,272], "f": 0, "t": 411, "d": [108,302], "a": 1 }, + { "px": [240,144], "src": [320,272], "f": 0, "t": 411, "d": [108,303], "a": 1 }, + { "px": [256,144], "src": [320,272], "f": 0, "t": 411, "d": [108,304], "a": 1 }, + { "px": [272,144], "src": [320,272], "f": 0, "t": 411, "d": [108,305], "a": 1 }, + { "px": [288,144], "src": [320,272], "f": 0, "t": 411, "d": [108,306], "a": 1 }, + { "px": [304,144], "src": [320,272], "f": 0, "t": 411, "d": [108,307], "a": 1 }, + { "px": [320,144], "src": [320,272], "f": 0, "t": 411, "d": [108,308], "a": 1 }, + { "px": [336,144], "src": [320,272], "f": 0, "t": 411, "d": [108,309], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [108,311], "a": 1 }, + { "px": [384,144], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [400,144], "src": [320,272], "f": 0, "t": 411, "d": [108,313], "a": 1 }, + { "px": [416,144], "src": [320,272], "f": 0, "t": 411, "d": [108,314], "a": 1 }, + { "px": [432,144], "src": [320,272], "f": 0, "t": 411, "d": [108,315], "a": 1 }, + { "px": [448,144], "src": [320,272], "f": 0, "t": 411, "d": [108,316], "a": 1 }, + { "px": [464,144], "src": [320,272], "f": 0, "t": 411, "d": [108,317], "a": 1 }, + { "px": [480,144], "src": [320,272], "f": 0, "t": 411, "d": [108,318], "a": 1 }, + { "px": [496,144], "src": [320,272], "f": 0, "t": 411, "d": [108,319], "a": 1 }, + { "px": [0,160], "src": [320,272], "f": 0, "t": 411, "d": [108,320], "a": 1 }, + { "px": [16,160], "src": [320,272], "f": 0, "t": 411, "d": [108,321], "a": 1 }, + { "px": [32,160], "src": [320,272], "f": 0, "t": 411, "d": [108,322], "a": 1 }, + { "px": [48,160], "src": [320,272], "f": 0, "t": 411, "d": [108,323], "a": 1 }, + { "px": [64,160], "src": [320,272], "f": 0, "t": 411, "d": [108,324], "a": 1 }, + { "px": [96,160], "src": [320,272], "f": 0, "t": 411, "d": [108,326], "a": 1 }, + { "px": [112,160], "src": [320,272], "f": 0, "t": 411, "d": [108,327], "a": 1 }, + { "px": [144,160], "src": [320,272], "f": 0, "t": 411, "d": [108,329], "a": 1 }, + { "px": [160,160], "src": [320,272], "f": 0, "t": 411, "d": [108,330], "a": 1 }, + { "px": [176,160], "src": [320,272], "f": 0, "t": 411, "d": [108,331], "a": 1 }, + { "px": [192,160], "src": [320,272], "f": 0, "t": 411, "d": [108,332], "a": 1 }, + { "px": [208,160], "src": [320,272], "f": 0, "t": 411, "d": [108,333], "a": 1 }, + { "px": [224,160], "src": [320,272], "f": 0, "t": 411, "d": [108,334], "a": 1 }, + { "px": [256,160], "src": [320,272], "f": 0, "t": 411, "d": [108,336], "a": 1 }, + { "px": [272,160], "src": [320,272], "f": 0, "t": 411, "d": [108,337], "a": 1 }, + { "px": [288,160], "src": [320,272], "f": 0, "t": 411, "d": [108,338], "a": 1 }, + { "px": [304,160], "src": [320,272], "f": 0, "t": 411, "d": [108,339], "a": 1 }, + { "px": [336,160], "src": [320,272], "f": 0, "t": 411, "d": [108,341], "a": 1 }, + { "px": [352,160], "src": [320,272], "f": 0, "t": 411, "d": [108,342], "a": 1 }, + { "px": [368,160], "src": [320,272], "f": 0, "t": 411, "d": [108,343], "a": 1 }, + { "px": [384,160], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [400,160], "src": [320,272], "f": 0, "t": 411, "d": [108,345], "a": 1 }, + { "px": [416,160], "src": [320,272], "f": 0, "t": 411, "d": [108,346], "a": 1 }, + { "px": [432,160], "src": [320,272], "f": 0, "t": 411, "d": [108,347], "a": 1 }, + { "px": [448,160], "src": [320,272], "f": 0, "t": 411, "d": [108,348], "a": 1 }, + { "px": [464,160], "src": [320,272], "f": 0, "t": 411, "d": [108,349], "a": 1 }, + { "px": [496,160], "src": [320,272], "f": 0, "t": 411, "d": [108,351], "a": 1 }, + { "px": [144,176], "src": [320,272], "f": 0, "t": 411, "d": [108,361], "a": 1 }, + { "px": [160,176], "src": [320,272], "f": 0, "t": 411, "d": [108,362], "a": 1 }, + { "px": [176,176], "src": [320,272], "f": 0, "t": 411, "d": [108,363], "a": 1 }, + { "px": [192,176], "src": [320,272], "f": 0, "t": 411, "d": [108,364], "a": 1 }, + { "px": [384,176], "src": [320,272], "f": 0, "t": 411, "d": [108,376], "a": 1 }, + { "px": [128,192], "src": [320,272], "f": 0, "t": 411, "d": [108,392], "a": 1 }, + { "px": [144,192], "src": [320,272], "f": 0, "t": 411, "d": [108,393], "a": 1 }, + { "px": [160,192], "src": [320,272], "f": 0, "t": 411, "d": [108,394], "a": 1 }, + { "px": [176,192], "src": [320,272], "f": 0, "t": 411, "d": [108,395], "a": 1 }, + { "px": [192,192], "src": [320,272], "f": 0, "t": 411, "d": [108,396], "a": 1 }, + { "px": [208,192], "src": [320,272], "f": 0, "t": 411, "d": [108,397], "a": 1 }, + { "px": [384,192], "src": [320,272], "f": 0, "t": 411, "d": [108,408], "a": 1 }, + { "px": [128,208], "src": [320,272], "f": 0, "t": 411, "d": [108,424], "a": 1 }, + { "px": [144,208], "src": [320,272], "f": 0, "t": 411, "d": [108,425], "a": 1 }, + { "px": [160,208], "src": [320,272], "f": 0, "t": 411, "d": [108,426], "a": 1 }, + { "px": [176,208], "src": [320,272], "f": 0, "t": 411, "d": [108,427], "a": 1 }, + { "px": [192,208], "src": [320,272], "f": 0, "t": 411, "d": [108,428], "a": 1 }, + { "px": [208,208], "src": [320,272], "f": 0, "t": 411, "d": [108,429], "a": 1 }, + { "px": [384,208], "src": [320,272], "f": 0, "t": 411, "d": [108,440], "a": 1 }, + { "px": [384,224], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [384,240], "src": [320,272], "f": 0, "t": 411, "d": [108,504], "a": 1 }, + { "px": [48,48], "src": [256,240], "f": 1, "t": 361, "d": [107,98], "a": 1 }, + { "px": [32,48], "src": [272,240], "f": 1, "t": 362, "d": [107,98], "a": 1 }, + { "px": [112,48], "src": [256,240], "f": 0, "t": 361, "d": [107,104], "a": 1 }, + { "px": [128,48], "src": [272,240], "f": 0, "t": 362, "d": [107,104], "a": 1 }, + { "px": [48,64], "src": [256,240], "f": 1, "t": 361, "d": [107,130], "a": 1 }, + { "px": [32,64], "src": [272,240], "f": 1, "t": 362, "d": [107,130], "a": 1 }, + { "px": [112,64], "src": [256,240], "f": 0, "t": 361, "d": [107,136], "a": 1 }, + { "px": [128,64], "src": [272,240], "f": 0, "t": 362, "d": [107,136], "a": 1 }, + { "px": [64,96], "src": [256,240], "f": 0, "t": 361, "d": [107,197], "a": 1 }, + { "px": [80,96], "src": [272,240], "f": 0, "t": 362, "d": [107,197], "a": 1 }, + { "px": [144,176], "src": [256,240], "f": 1, "t": 361, "d": [107,360], "a": 1 }, + { "px": [128,176], "src": [272,240], "f": 1, "t": 362, "d": [107,360], "a": 1 }, + { "px": [192,176], "src": [256,240], "f": 0, "t": 361, "d": [107,365], "a": 1 }, + { "px": [208,176], "src": [272,240], "f": 0, "t": 362, "d": [107,365], "a": 1 }, + { "px": [384,176], "src": [256,240], "f": 1, "t": 361, "d": [107,375], "a": 1 }, + { "px": [368,176], "src": [272,240], "f": 1, "t": 362, "d": [107,375], "a": 1 }, + { "px": [384,176], "src": [256,240], "f": 0, "t": 361, "d": [107,377], "a": 1 }, + { "px": [400,176], "src": [272,240], "f": 0, "t": 362, "d": [107,377], "a": 1 }, + { "px": [384,192], "src": [256,240], "f": 1, "t": 361, "d": [107,407], "a": 1 }, + { "px": [368,192], "src": [272,240], "f": 1, "t": 362, "d": [107,407], "a": 1 }, + { "px": [384,192], "src": [256,240], "f": 0, "t": 361, "d": [107,409], "a": 1 }, + { "px": [400,192], "src": [272,240], "f": 0, "t": 362, "d": [107,409], "a": 1 }, + { "px": [384,208], "src": [256,240], "f": 1, "t": 361, "d": [107,439], "a": 1 }, + { "px": [368,208], "src": [272,240], "f": 1, "t": 362, "d": [107,439], "a": 1 }, + { "px": [384,208], "src": [256,240], "f": 0, "t": 361, "d": [107,441], "a": 1 }, + { "px": [400,208], "src": [272,240], "f": 0, "t": 362, "d": [107,441], "a": 1 }, + { "px": [384,224], "src": [256,240], "f": 1, "t": 361, "d": [107,471], "a": 1 }, + { "px": [368,224], "src": [272,240], "f": 1, "t": 362, "d": [107,471], "a": 1 }, + { "px": [384,224], "src": [256,240], "f": 0, "t": 361, "d": [107,473], "a": 1 }, + { "px": [400,224], "src": [272,240], "f": 0, "t": 362, "d": [107,473], "a": 1 }, + { "px": [384,240], "src": [256,240], "f": 1, "t": 361, "d": [107,503], "a": 1 }, + { "px": [368,240], "src": [272,240], "f": 1, "t": 362, "d": [107,503], "a": 1 }, + { "px": [384,240], "src": [256,240], "f": 0, "t": 361, "d": [107,505], "a": 1 }, + { "px": [400,240], "src": [272,240], "f": 0, "t": 362, "d": [107,505], "a": 1 }, + { "px": [80,64], "src": [256,240], "f": 0, "t": 361, "d": [105,134], "a": 1 }, + { "px": [96,64], "src": [272,240], "f": 0, "t": 362, "d": [105,134], "a": 1 }, + { "px": [112,64], "src": [288,240], "f": 0, "t": 363, "d": [105,134], "a": 1 }, + { "px": [80,128], "src": [256,240], "f": 0, "t": 361, "d": [105,262], "a": 1 }, + { "px": [96,128], "src": [272,240], "f": 0, "t": 362, "d": [105,262], "a": 1 }, + { "px": [112,128], "src": [288,240], "f": 0, "t": 363, "d": [105,262], "a": 1 }, + { "px": [128,128], "src": [256,240], "f": 0, "t": 361, "d": [105,265], "a": 1 }, + { "px": [144,128], "src": [272,240], "f": 0, "t": 362, "d": [105,265], "a": 1 }, + { "px": [160,128], "src": [288,240], "f": 0, "t": 363, "d": [105,265], "a": 1 }, + { "px": [112,160], "src": [256,240], "f": 0, "t": 361, "d": [105,328], "a": 1 }, + { "px": [128,160], "src": [272,240], "f": 0, "t": 362, "d": [105,328], "a": 1 }, + { "px": [144,160], "src": [288,240], "f": 0, "t": 363, "d": [105,328], "a": 1 }, + { "px": [64,64], "src": [144,240], "f": 2, "t": 354, "d": [112,69], "a": 1 }, + { "px": [64,48], "src": [144,256], "f": 2, "t": 377, "d": [112,69], "a": 1 }, + { "px": [64,32], "src": [144,272], "f": 2, "t": 400, "d": [112,69], "a": 1 }, + { "px": [80,64], "src": [160,240], "f": 2, "t": 355, "d": [112,69], "a": 1 }, + { "px": [80,48], "src": [160,256], "f": 2, "t": 378, "d": [112,69], "a": 1 }, + { "px": [80,32], "src": [160,272], "f": 2, "t": 401, "d": [112,69], "a": 1 }, + { "px": [96,64], "src": [176,240], "f": 2, "t": 356, "d": [112,69], "a": 1 }, + { "px": [96,48], "src": [176,256], "f": 2, "t": 379, "d": [112,69], "a": 1 }, + { "px": [96,32], "src": [176,272], "f": 2, "t": 402, "d": [112,69], "a": 1 }, + { "px": [144,144], "src": [144,240], "f": 2, "t": 354, "d": [112,234], "a": 1 }, + { "px": [144,128], "src": [144,256], "f": 2, "t": 377, "d": [112,234], "a": 1 }, + { "px": [144,112], "src": [144,272], "f": 2, "t": 400, "d": [112,234], "a": 1 }, + { "px": [160,144], "src": [160,240], "f": 2, "t": 355, "d": [112,234], "a": 1 }, + { "px": [160,128], "src": [160,256], "f": 2, "t": 378, "d": [112,234], "a": 1 }, + { "px": [160,112], "src": [160,272], "f": 2, "t": 401, "d": [112,234], "a": 1 }, + { "px": [176,144], "src": [176,240], "f": 2, "t": 356, "d": [112,234], "a": 1 }, + { "px": [176,128], "src": [176,256], "f": 2, "t": 379, "d": [112,234], "a": 1 }, + { "px": [176,112], "src": [176,272], "f": 2, "t": 402, "d": [112,234], "a": 1 }, + { "px": [304,144], "src": [144,240], "f": 2, "t": 354, "d": [112,244], "a": 1 }, + { "px": [304,128], "src": [144,256], "f": 2, "t": 377, "d": [112,244], "a": 1 }, + { "px": [304,112], "src": [144,272], "f": 2, "t": 400, "d": [112,244], "a": 1 }, + { "px": [320,144], "src": [160,240], "f": 2, "t": 355, "d": [112,244], "a": 1 }, + { "px": [320,128], "src": [160,256], "f": 2, "t": 378, "d": [112,244], "a": 1 }, + { "px": [320,112], "src": [160,272], "f": 2, "t": 401, "d": [112,244], "a": 1 }, + { "px": [336,144], "src": [176,240], "f": 2, "t": 356, "d": [112,244], "a": 1 }, + { "px": [336,128], "src": [176,256], "f": 2, "t": 379, "d": [112,244], "a": 1 }, + { "px": [336,112], "src": [176,272], "f": 2, "t": 402, "d": [112,244], "a": 1 }, + { "px": [464,144], "src": [144,240], "f": 2, "t": 354, "d": [112,254], "a": 1 }, + { "px": [464,128], "src": [144,256], "f": 2, "t": 377, "d": [112,254], "a": 1 }, + { "px": [464,112], "src": [144,272], "f": 2, "t": 400, "d": [112,254], "a": 1 }, + { "px": [480,144], "src": [160,240], "f": 2, "t": 355, "d": [112,254], "a": 1 }, + { "px": [480,128], "src": [160,256], "f": 2, "t": 378, "d": [112,254], "a": 1 }, + { "px": [480,112], "src": [160,272], "f": 2, "t": 401, "d": [112,254], "a": 1 }, + { "px": [496,144], "src": [176,240], "f": 2, "t": 356, "d": [112,254], "a": 1 }, + { "px": [496,128], "src": [176,256], "f": 2, "t": 379, "d": [112,254], "a": 1 }, + { "px": [496,112], "src": [176,272], "f": 2, "t": 402, "d": [112,254], "a": 1 }, + { "px": [64,128], "src": [144,240], "f": 0, "t": 354, "d": [112,325], "a": 1 }, + { "px": [64,144], "src": [144,256], "f": 0, "t": 377, "d": [112,325], "a": 1 }, + { "px": [64,160], "src": [144,272], "f": 0, "t": 400, "d": [112,325], "a": 1 }, + { "px": [80,128], "src": [160,240], "f": 0, "t": 355, "d": [112,325], "a": 1 }, + { "px": [80,144], "src": [160,256], "f": 0, "t": 378, "d": [112,325], "a": 1 }, + { "px": [80,160], "src": [160,272], "f": 0, "t": 401, "d": [112,325], "a": 1 }, + { "px": [96,128], "src": [176,240], "f": 0, "t": 356, "d": [112,325], "a": 1 }, + { "px": [96,144], "src": [176,256], "f": 0, "t": 379, "d": [112,325], "a": 1 }, + { "px": [96,160], "src": [176,272], "f": 0, "t": 402, "d": [112,325], "a": 1 }, + { "px": [224,128], "src": [144,240], "f": 0, "t": 354, "d": [112,335], "a": 1 }, + { "px": [224,144], "src": [144,256], "f": 0, "t": 377, "d": [112,335], "a": 1 }, + { "px": [224,160], "src": [144,272], "f": 0, "t": 400, "d": [112,335], "a": 1 }, + { "px": [240,128], "src": [160,240], "f": 0, "t": 355, "d": [112,335], "a": 1 }, + { "px": [240,144], "src": [160,256], "f": 0, "t": 378, "d": [112,335], "a": 1 }, + { "px": [240,160], "src": [160,272], "f": 0, "t": 401, "d": [112,335], "a": 1 }, + { "px": [256,128], "src": [176,240], "f": 0, "t": 356, "d": [112,335], "a": 1 }, + { "px": [256,144], "src": [176,256], "f": 0, "t": 379, "d": [112,335], "a": 1 }, + { "px": [256,160], "src": [176,272], "f": 0, "t": 402, "d": [112,335], "a": 1 }, + { "px": [304,128], "src": [144,240], "f": 0, "t": 354, "d": [112,340], "a": 1 }, + { "px": [304,144], "src": [144,256], "f": 0, "t": 377, "d": [112,340], "a": 1 }, + { "px": [304,160], "src": [144,272], "f": 0, "t": 400, "d": [112,340], "a": 1 }, + { "px": [320,128], "src": [160,240], "f": 0, "t": 355, "d": [112,340], "a": 1 }, + { "px": [320,144], "src": [160,256], "f": 0, "t": 378, "d": [112,340], "a": 1 }, + { "px": [320,160], "src": [160,272], "f": 0, "t": 401, "d": [112,340], "a": 1 }, + { "px": [336,128], "src": [176,240], "f": 0, "t": 356, "d": [112,340], "a": 1 }, + { "px": [336,144], "src": [176,256], "f": 0, "t": 379, "d": [112,340], "a": 1 }, + { "px": [336,160], "src": [176,272], "f": 0, "t": 402, "d": [112,340], "a": 1 }, + { "px": [464,128], "src": [144,240], "f": 0, "t": 354, "d": [112,350], "a": 1 }, + { "px": [464,144], "src": [144,256], "f": 0, "t": 377, "d": [112,350], "a": 1 }, + { "px": [464,160], "src": [144,272], "f": 0, "t": 400, "d": [112,350], "a": 1 }, + { "px": [480,128], "src": [160,240], "f": 0, "t": 355, "d": [112,350], "a": 1 }, + { "px": [480,144], "src": [160,256], "f": 0, "t": 378, "d": [112,350], "a": 1 }, + { "px": [480,160], "src": [160,272], "f": 0, "t": 401, "d": [112,350], "a": 1 }, + { "px": [496,128], "src": [176,240], "f": 0, "t": 356, "d": [112,350], "a": 1 }, + { "px": [496,144], "src": [176,256], "f": 0, "t": 379, "d": [112,350], "a": 1 }, + { "px": [496,160], "src": [176,272], "f": 0, "t": 402, "d": [112,350], "a": 1 }, + { "px": [32,48], "src": [192,304], "f": 2, "t": 449, "d": [113,66], "a": 1 }, + { "px": [32,32], "src": [192,320], "f": 2, "t": 472, "d": [113,66], "a": 1 }, + { "px": [48,48], "src": [208,304], "f": 2, "t": 450, "d": [113,66], "a": 1 }, + { "px": [48,32], "src": [208,320], "f": 2, "t": 473, "d": [113,66], "a": 1 }, + { "px": [64,48], "src": [224,304], "f": 2, "t": 451, "d": [113,66], "a": 1 }, + { "px": [64,32], "src": [224,320], "f": 2, "t": 474, "d": [113,66], "a": 1 }, + { "px": [32,64], "src": [192,304], "f": 0, "t": 449, "d": [113,162], "a": 1 }, + { "px": [32,80], "src": [192,320], "f": 0, "t": 472, "d": [113,162], "a": 1 }, + { "px": [48,64], "src": [208,304], "f": 0, "t": 450, "d": [113,162], "a": 1 }, + { "px": [48,80], "src": [208,320], "f": 0, "t": 473, "d": [113,162], "a": 1 }, + { "px": [64,64], "src": [224,304], "f": 0, "t": 451, "d": [113,162], "a": 1 }, + { "px": [64,80], "src": [224,320], "f": 0, "t": 474, "d": [113,162], "a": 1 }, + { "px": [128,64], "src": [192,304], "f": 1, "t": 449, "d": [113,168], "a": 1 }, + { "px": [128,80], "src": [192,320], "f": 1, "t": 472, "d": [113,168], "a": 1 }, + { "px": [112,64], "src": [208,304], "f": 1, "t": 450, "d": [113,168], "a": 1 }, + { "px": [112,80], "src": [208,320], "f": 1, "t": 473, "d": [113,168], "a": 1 }, + { "px": [96,64], "src": [224,304], "f": 1, "t": 451, "d": [113,168], "a": 1 }, + { "px": [96,80], "src": [224,320], "f": 1, "t": 474, "d": [113,168], "a": 1 }, + { "px": [128,32], "src": [128,224], "f": 0, "t": 330, "d": [114,72], "a": 1 }, + { "px": [0,112], "src": [128,224], "f": 0, "t": 330, "d": [114,224], "a": 1 }, + { "px": [128,112], "src": [128,208], "f": 0, "t": 307, "d": [115,232], "a": 1 }, + { "px": [128,128], "src": [128,224], "f": 0, "t": 330, "d": [115,232], "a": 1 }, + { "px": [288,112], "src": [128,208], "f": 0, "t": 307, "d": [115,242], "a": 1 }, + { "px": [288,128], "src": [128,224], "f": 0, "t": 330, "d": [115,242], "a": 1 }, + { "px": [416,112], "src": [128,208], "f": 0, "t": 307, "d": [115,250], "a": 1 }, + { "px": [416,128], "src": [128,224], "f": 0, "t": 330, "d": [115,250], "a": 1 } + ], + "seed": 3303508, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a36811d0-66b0-11ec-9cd7-4367627fb745", "dir": "s" }, { "levelIid": "a36a34b0-66b0-11ec-9cd7-09ebc042e238", "dir": "w" }, { "levelIid": "a3727210-66b0-11ec-9cd7-aba0184f5034", "dir": "e" } ] + }, + { + "identifier": "Cross_roads", + "iid": "a36811d0-66b0-11ec-9cd7-4367627fb745", + "uid": 4, + "worldX": 0, + "worldY": 256, + "worldDepth": 0, + "pxWid": 512, + "pxHei": 512, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a36811d5-66b0-11ec-9cd7-5711cb441e9c", + "levelId": 4, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 447792, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Ladder", + "__grid": [28,16], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "60d34a20-66b0-11ec-9ccd-d9d0dea2f003", + "width": 16, + "height": 160, + "defUid": 134, + "px": [448,256], + "fieldInstances": [] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36811d6-66b0-11ec-9cd7-4f58f79fa162", + "levelId": 4, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [368,16], "src": [320,128], "f": 0, "t": 204, "d": [26,55], "a": 1 }, + { "px": [400,16], "src": [320,128], "f": 1, "t": 204, "d": [26,57], "a": 1 }, + { "px": [368,32], "src": [320,128], "f": 0, "t": 204, "d": [26,87], "a": 1 }, + { "px": [400,32], "src": [320,128], "f": 1, "t": 204, "d": [26,89], "a": 1 }, + { "px": [368,48], "src": [320,128], "f": 0, "t": 204, "d": [26,119], "a": 1 }, + { "px": [400,48], "src": [320,128], "f": 1, "t": 204, "d": [26,121], "a": 1 }, + { "px": [368,64], "src": [320,128], "f": 0, "t": 204, "d": [26,151], "a": 1 }, + { "px": [400,64], "src": [320,128], "f": 1, "t": 204, "d": [26,153], "a": 1 }, + { "px": [368,80], "src": [320,128], "f": 0, "t": 204, "d": [26,183], "a": 1 }, + { "px": [400,80], "src": [320,128], "f": 1, "t": 204, "d": [26,185], "a": 1 }, + { "px": [368,96], "src": [320,128], "f": 0, "t": 204, "d": [26,215], "a": 1 }, + { "px": [400,96], "src": [320,128], "f": 1, "t": 204, "d": [26,217], "a": 1 }, + { "px": [320,112], "src": [320,128], "f": 1, "t": 204, "d": [26,244], "a": 1 }, + { "px": [368,112], "src": [320,128], "f": 0, "t": 204, "d": [26,247], "a": 1 }, + { "px": [400,112], "src": [320,128], "f": 1, "t": 204, "d": [26,249], "a": 1 }, + { "px": [320,128], "src": [320,128], "f": 1, "t": 204, "d": [26,276], "a": 1 }, + { "px": [368,128], "src": [320,128], "f": 0, "t": 204, "d": [26,279], "a": 1 }, + { "px": [400,128], "src": [320,128], "f": 1, "t": 204, "d": [26,281], "a": 1 }, + { "px": [288,176], "src": [320,128], "f": 0, "t": 204, "d": [26,370], "a": 1 }, + { "px": [288,192], "src": [320,128], "f": 0, "t": 204, "d": [26,402], "a": 1 }, + { "px": [464,208], "src": [320,128], "f": 1, "t": 204, "d": [26,445], "a": 1 }, + { "px": [320,224], "src": [320,128], "f": 0, "t": 204, "d": [26,468], "a": 1 }, + { "px": [464,224], "src": [320,128], "f": 1, "t": 204, "d": [26,477], "a": 1 }, + { "px": [320,240], "src": [320,128], "f": 0, "t": 204, "d": [26,500], "a": 1 }, + { "px": [464,240], "src": [320,128], "f": 1, "t": 204, "d": [26,509], "a": 1 }, + { "px": [464,256], "src": [320,128], "f": 1, "t": 204, "d": [26,541], "a": 1 }, + { "px": [448,272], "src": [320,128], "f": 0, "t": 204, "d": [26,572], "a": 1 }, + { "px": [464,272], "src": [320,128], "f": 1, "t": 204, "d": [26,573], "a": 1 }, + { "px": [448,288], "src": [320,128], "f": 0, "t": 204, "d": [26,604], "a": 1 }, + { "px": [464,288], "src": [320,128], "f": 1, "t": 204, "d": [26,605], "a": 1 }, + { "px": [448,304], "src": [320,128], "f": 0, "t": 204, "d": [26,636], "a": 1 }, + { "px": [464,304], "src": [320,128], "f": 1, "t": 204, "d": [26,637], "a": 1 }, + { "px": [448,320], "src": [320,128], "f": 0, "t": 204, "d": [26,668], "a": 1 }, + { "px": [464,320], "src": [320,128], "f": 1, "t": 204, "d": [26,669], "a": 1 }, + { "px": [448,336], "src": [320,128], "f": 0, "t": 204, "d": [26,700], "a": 1 }, + { "px": [464,336], "src": [320,128], "f": 1, "t": 204, "d": [26,701], "a": 1 }, + { "px": [448,352], "src": [320,128], "f": 0, "t": 204, "d": [26,732], "a": 1 }, + { "px": [464,352], "src": [320,128], "f": 1, "t": 204, "d": [26,733], "a": 1 }, + { "px": [448,368], "src": [320,128], "f": 0, "t": 204, "d": [26,764], "a": 1 }, + { "px": [448,384], "src": [320,128], "f": 0, "t": 204, "d": [26,796], "a": 1 }, + { "px": [448,400], "src": [320,128], "f": 0, "t": 204, "d": [26,828], "a": 1 }, + { "px": [288,160], "src": [320,96], "f": 0, "t": 158, "d": [138,338], "a": 1 }, + { "px": [464,192], "src": [320,96], "f": 1, "t": 158, "d": [138,413], "a": 1 }, + { "px": [320,208], "src": [320,96], "f": 0, "t": 158, "d": [138,436], "a": 1 }, + { "px": [448,256], "src": [320,96], "f": 0, "t": 158, "d": [138,540], "a": 1 }, + { "px": [0,112], "src": [336,112], "f": 0, "t": 182, "d": [27,224], "a": 1 }, + { "px": [16,112], "src": [336,112], "f": 0, "t": 182, "d": [27,225], "a": 1 }, + { "px": [32,112], "src": [336,112], "f": 0, "t": 182, "d": [27,226], "a": 1 }, + { "px": [48,112], "src": [336,112], "f": 0, "t": 182, "d": [27,227], "a": 1 }, + { "px": [64,112], "src": [336,112], "f": 0, "t": 182, "d": [27,228], "a": 1 }, + { "px": [80,112], "src": [336,112], "f": 0, "t": 182, "d": [27,229], "a": 1 }, + { "px": [96,112], "src": [336,112], "f": 0, "t": 182, "d": [27,230], "a": 1 }, + { "px": [112,112], "src": [336,112], "f": 0, "t": 182, "d": [27,231], "a": 1 }, + { "px": [128,112], "src": [336,112], "f": 0, "t": 182, "d": [27,232], "a": 1 }, + { "px": [144,112], "src": [336,112], "f": 0, "t": 182, "d": [27,233], "a": 1 }, + { "px": [160,112], "src": [336,112], "f": 0, "t": 182, "d": [27,234], "a": 1 }, + { "px": [176,112], "src": [336,112], "f": 0, "t": 182, "d": [27,235], "a": 1 }, + { "px": [192,112], "src": [336,112], "f": 0, "t": 182, "d": [27,236], "a": 1 }, + { "px": [208,112], "src": [336,112], "f": 0, "t": 182, "d": [27,237], "a": 1 }, + { "px": [224,112], "src": [336,112], "f": 0, "t": 182, "d": [27,238], "a": 1 }, + { "px": [240,112], "src": [336,112], "f": 0, "t": 182, "d": [27,239], "a": 1 }, + { "px": [256,112], "src": [336,112], "f": 0, "t": 182, "d": [27,240], "a": 1 }, + { "px": [272,112], "src": [336,112], "f": 0, "t": 182, "d": [27,241], "a": 1 }, + { "px": [288,112], "src": [336,112], "f": 0, "t": 182, "d": [27,242], "a": 1 }, + { "px": [304,112], "src": [336,112], "f": 0, "t": 182, "d": [27,243], "a": 1 }, + { "px": [320,112], "src": [336,112], "f": 0, "t": 182, "d": [27,244], "a": 1 }, + { "px": [336,144], "src": [336,112], "f": 0, "t": 182, "d": [27,309], "a": 1 }, + { "px": [352,144], "src": [336,112], "f": 0, "t": 182, "d": [27,310], "a": 1 }, + { "px": [416,144], "src": [336,112], "f": 0, "t": 182, "d": [27,314], "a": 1 }, + { "px": [432,144], "src": [336,112], "f": 0, "t": 182, "d": [27,315], "a": 1 }, + { "px": [448,144], "src": [336,112], "f": 0, "t": 182, "d": [27,316], "a": 1 }, + { "px": [464,144], "src": [336,112], "f": 0, "t": 182, "d": [27,317], "a": 1 }, + { "px": [480,144], "src": [336,112], "f": 0, "t": 182, "d": [27,318], "a": 1 }, + { "px": [496,144], "src": [336,112], "f": 0, "t": 182, "d": [27,319], "a": 1 }, + { "px": [480,368], "src": [336,112], "f": 0, "t": 182, "d": [27,766], "a": 1 }, + { "px": [496,368], "src": [336,112], "f": 0, "t": 182, "d": [27,767], "a": 1 }, + { "px": [320,144], "src": [320,112], "f": 1, "t": 181, "d": [137,308], "a": 1 }, + { "px": [368,144], "src": [320,112], "f": 0, "t": 181, "d": [137,311], "a": 1 }, + { "px": [400,144], "src": [320,112], "f": 1, "t": 181, "d": [137,313], "a": 1 }, + { "px": [464,368], "src": [320,112], "f": 1, "t": 181, "d": [137,765], "a": 1 } + ], + "seed": 5084082, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36811d7-66b0-11ec-9cd7-c3d11c903515", + "levelId": 4, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0, + 0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [8,21], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [8,52], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [8,60], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [8,85], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [8,91], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [8,116], "a": 1 }, + { "px": [448,48], "src": [32,32], "f": 0, "t": 48, "d": [8,124], "a": 1 }, + { "px": [48,64], "src": [32,32], "f": 0, "t": 48, "d": [8,131], "a": 1 }, + { "px": [112,64], "src": [32,32], "f": 0, "t": 48, "d": [8,135], "a": 1 }, + { "px": [144,64], "src": [32,32], "f": 0, "t": 48, "d": [8,137], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [8,139], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [8,141], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [8,143], "a": 1 }, + { "px": [272,64], "src": [32,32], "f": 0, "t": 48, "d": [8,145], "a": 1 }, + { "px": [304,64], "src": [32,32], "f": 0, "t": 48, "d": [8,147], "a": 1 }, + { "px": [336,64], "src": [32,32], "f": 0, "t": 48, "d": [8,149], "a": 1 }, + { "px": [432,64], "src": [32,32], "f": 0, "t": 48, "d": [8,155], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [8,162], "a": 1 }, + { "px": [96,80], "src": [32,32], "f": 0, "t": 48, "d": [8,166], "a": 1 }, + { "px": [128,80], "src": [32,32], "f": 0, "t": 48, "d": [8,168], "a": 1 }, + { "px": [160,80], "src": [32,32], "f": 0, "t": 48, "d": [8,170], "a": 1 }, + { "px": [192,80], "src": [32,32], "f": 0, "t": 48, "d": [8,172], "a": 1 }, + { "px": [288,80], "src": [32,32], "f": 0, "t": 48, "d": [8,178], "a": 1 }, + { "px": [432,96], "src": [32,32], "f": 0, "t": 48, "d": [8,219], "a": 1 }, + { "px": [496,96], "src": [32,32], "f": 0, "t": 48, "d": [8,223], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [8,352], "a": 1 }, + { "px": [32,176], "src": [32,32], "f": 0, "t": 48, "d": [8,354], "a": 1 }, + { "px": [64,176], "src": [32,32], "f": 0, "t": 48, "d": [8,356], "a": 1 }, + { "px": [96,176], "src": [32,32], "f": 0, "t": 48, "d": [8,358], "a": 1 }, + { "px": [160,176], "src": [32,32], "f": 0, "t": 48, "d": [8,362], "a": 1 }, + { "px": [192,176], "src": [32,32], "f": 0, "t": 48, "d": [8,364], "a": 1 }, + { "px": [256,176], "src": [32,32], "f": 0, "t": 48, "d": [8,368], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [8,385], "a": 1 }, + { "px": [48,192], "src": [32,32], "f": 0, "t": 48, "d": [8,387], "a": 1 }, + { "px": [80,192], "src": [32,32], "f": 0, "t": 48, "d": [8,389], "a": 1 }, + { "px": [112,192], "src": [32,32], "f": 0, "t": 48, "d": [8,391], "a": 1 }, + { "px": [144,192], "src": [32,32], "f": 0, "t": 48, "d": [8,393], "a": 1 }, + { "px": [176,192], "src": [32,32], "f": 0, "t": 48, "d": [8,395], "a": 1 }, + { "px": [240,192], "src": [32,32], "f": 0, "t": 48, "d": [8,399], "a": 1 }, + { "px": [272,224], "src": [32,32], "f": 0, "t": 48, "d": [8,465], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [8,479], "a": 1 }, + { "px": [256,240], "src": [32,32], "f": 0, "t": 48, "d": [8,496], "a": 1 }, + { "px": [272,256], "src": [32,32], "f": 0, "t": 48, "d": [8,529], "a": 1 }, + { "px": [384,272], "src": [32,32], "f": 0, "t": 48, "d": [8,568], "a": 1 }, + { "px": [416,272], "src": [32,32], "f": 0, "t": 48, "d": [8,570], "a": 1 }, + { "px": [272,288], "src": [32,32], "f": 0, "t": 48, "d": [8,593], "a": 1 }, + { "px": [304,288], "src": [32,32], "f": 0, "t": 48, "d": [8,595], "a": 1 }, + { "px": [336,288], "src": [32,32], "f": 0, "t": 48, "d": [8,597], "a": 1 }, + { "px": [368,288], "src": [32,32], "f": 0, "t": 48, "d": [8,599], "a": 1 }, + { "px": [496,288], "src": [32,32], "f": 0, "t": 48, "d": [8,607], "a": 1 }, + { "px": [416,304], "src": [32,32], "f": 0, "t": 48, "d": [8,634], "a": 1 }, + { "px": [416,336], "src": [32,32], "f": 0, "t": 48, "d": [8,698], "a": 1 }, + { "px": [400,384], "src": [32,32], "f": 0, "t": 48, "d": [8,793], "a": 1 }, + { "px": [400,416], "src": [32,32], "f": 0, "t": 48, "d": [8,857], "a": 1 }, + { "px": [400,448], "src": [32,32], "f": 0, "t": 48, "d": [8,921], "a": 1 }, + { "px": [432,448], "src": [32,32], "f": 0, "t": 48, "d": [8,923], "a": 1 }, + { "px": [464,448], "src": [32,32], "f": 0, "t": 48, "d": [8,925], "a": 1 }, + { "px": [432,0], "src": [64,96], "f": 0, "t": 142, "d": [83,27], "a": 1 }, + { "px": [16,64], "src": [64,96], "f": 0, "t": 142, "d": [83,129], "a": 1 }, + { "px": [80,64], "src": [64,96], "f": 0, "t": 142, "d": [83,133], "a": 1 }, + { "px": [0,80], "src": [64,96], "f": 0, "t": 142, "d": [83,160], "a": 1 }, + { "px": [64,80], "src": [96,96], "f": 0, "t": 144, "d": [83,164], "a": 1 }, + { "px": [224,80], "src": [64,96], "f": 0, "t": 142, "d": [83,174], "a": 1 }, + { "px": [256,80], "src": [64,96], "f": 0, "t": 142, "d": [83,176], "a": 1 }, + { "px": [320,80], "src": [64,96], "f": 0, "t": 142, "d": [83,180], "a": 1 }, + { "px": [448,80], "src": [64,96], "f": 0, "t": 142, "d": [83,188], "a": 1 }, + { "px": [464,96], "src": [64,96], "f": 0, "t": 142, "d": [83,221], "a": 1 }, + { "px": [448,112], "src": [64,96], "f": 0, "t": 142, "d": [83,252], "a": 1 }, + { "px": [480,112], "src": [96,96], "f": 0, "t": 144, "d": [83,254], "a": 1 }, + { "px": [128,176], "src": [64,96], "f": 0, "t": 142, "d": [83,360], "a": 1 }, + { "px": [224,176], "src": [96,96], "f": 0, "t": 144, "d": [83,366], "a": 1 }, + { "px": [208,192], "src": [96,96], "f": 0, "t": 144, "d": [83,397], "a": 1 }, + { "px": [256,208], "src": [64,96], "f": 0, "t": 142, "d": [83,432], "a": 1 }, + { "px": [240,224], "src": [64,96], "f": 0, "t": 142, "d": [83,463], "a": 1 }, + { "px": [288,240], "src": [64,96], "f": 0, "t": 142, "d": [83,498], "a": 1 }, + { "px": [496,256], "src": [64,96], "f": 0, "t": 142, "d": [83,543], "a": 1 }, + { "px": [288,272], "src": [96,96], "f": 0, "t": 144, "d": [83,562], "a": 1 }, + { "px": [320,272], "src": [64,96], "f": 0, "t": 142, "d": [83,564], "a": 1 }, + { "px": [352,272], "src": [96,96], "f": 0, "t": 144, "d": [83,566], "a": 1 }, + { "px": [400,288], "src": [96,96], "f": 0, "t": 144, "d": [83,601], "a": 1 }, + { "px": [400,320], "src": [64,96], "f": 0, "t": 142, "d": [83,665], "a": 1 }, + { "px": [496,320], "src": [96,96], "f": 0, "t": 144, "d": [83,671], "a": 1 }, + { "px": [400,352], "src": [96,96], "f": 0, "t": 144, "d": [83,729], "a": 1 }, + { "px": [416,368], "src": [96,96], "f": 0, "t": 144, "d": [83,762], "a": 1 }, + { "px": [416,400], "src": [64,96], "f": 0, "t": 142, "d": [83,826], "a": 1 }, + { "px": [416,432], "src": [64,96], "f": 0, "t": 142, "d": [83,890], "a": 1 }, + { "px": [448,432], "src": [96,96], "f": 0, "t": 144, "d": [83,892], "a": 1 }, + { "px": [480,432], "src": [96,96], "f": 0, "t": 144, "d": [83,894], "a": 1 }, + { "px": [496,448], "src": [96,96], "f": 0, "t": 144, "d": [83,927], "a": 1 }, + { "px": [320,0], "src": [192,16], "f": 0, "t": 35, "d": [101,20], "a": 1 }, + { "px": [448,0], "src": [96,0], "f": 0, "t": 6, "d": [101,28], "a": 1 }, + { "px": [336,16], "src": [192,16], "f": 0, "t": 35, "d": [101,53], "a": 1 }, + { "px": [432,16], "src": [224,96], "f": 0, "t": 152, "d": [101,59], "a": 1 }, + { "px": [320,32], "src": [224,96], "f": 0, "t": 152, "d": [101,84], "a": 1 }, + { "px": [448,32], "src": [96,0], "f": 0, "t": 6, "d": [101,92], "a": 1 }, + { "px": [336,48], "src": [96,0], "f": 0, "t": 6, "d": [101,117], "a": 1 }, + { "px": [432,48], "src": [224,96], "f": 0, "t": 152, "d": [101,123], "a": 1 }, + { "px": [0,64], "src": [96,0], "f": 0, "t": 6, "d": [101,128], "a": 1 }, + { "px": [32,64], "src": [192,16], "f": 0, "t": 35, "d": [101,130], "a": 1 }, + { "px": [64,64], "src": [224,96], "f": 0, "t": 152, "d": [101,132], "a": 1 }, + { "px": [96,64], "src": [96,0], "f": 0, "t": 6, "d": [101,134], "a": 1 }, + { "px": [128,64], "src": [224,96], "f": 0, "t": 152, "d": [101,136], "a": 1 }, + { "px": [160,64], "src": [224,96], "f": 0, "t": 152, "d": [101,138], "a": 1 }, + { "px": [192,64], "src": [192,16], "f": 0, "t": 35, "d": [101,140], "a": 1 }, + { "px": [224,64], "src": [96,0], "f": 0, "t": 6, "d": [101,142], "a": 1 }, + { "px": [256,64], "src": [224,96], "f": 0, "t": 152, "d": [101,144], "a": 1 }, + { "px": [288,64], "src": [96,0], "f": 0, "t": 6, "d": [101,146], "a": 1 }, + { "px": [320,64], "src": [192,16], "f": 0, "t": 35, "d": [101,148], "a": 1 }, + { "px": [448,64], "src": [224,96], "f": 0, "t": 152, "d": [101,156], "a": 1 }, + { "px": [16,80], "src": [224,96], "f": 0, "t": 152, "d": [101,161], "a": 1 }, + { "px": [48,80], "src": [224,96], "f": 0, "t": 152, "d": [101,163], "a": 1 }, + { "px": [80,80], "src": [192,16], "f": 0, "t": 35, "d": [101,165], "a": 1 }, + { "px": [112,80], "src": [224,96], "f": 0, "t": 152, "d": [101,167], "a": 1 }, + { "px": [144,80], "src": [224,96], "f": 0, "t": 152, "d": [101,169], "a": 1 }, + { "px": [176,80], "src": [224,96], "f": 0, "t": 152, "d": [101,171], "a": 1 }, + { "px": [208,80], "src": [96,0], "f": 0, "t": 6, "d": [101,173], "a": 1 }, + { "px": [240,80], "src": [96,0], "f": 0, "t": 6, "d": [101,175], "a": 1 }, + { "px": [272,80], "src": [96,0], "f": 0, "t": 6, "d": [101,177], "a": 1 }, + { "px": [304,80], "src": [224,96], "f": 0, "t": 152, "d": [101,179], "a": 1 }, + { "px": [336,80], "src": [192,16], "f": 0, "t": 35, "d": [101,181], "a": 1 }, + { "px": [432,80], "src": [224,96], "f": 0, "t": 152, "d": [101,187], "a": 1 }, + { "px": [448,96], "src": [224,96], "f": 0, "t": 152, "d": [101,220], "a": 1 }, + { "px": [480,96], "src": [96,0], "f": 0, "t": 6, "d": [101,222], "a": 1 }, + { "px": [432,112], "src": [192,16], "f": 0, "t": 35, "d": [101,251], "a": 1 }, + { "px": [464,112], "src": [224,96], "f": 0, "t": 152, "d": [101,253], "a": 1 }, + { "px": [496,112], "src": [224,96], "f": 0, "t": 152, "d": [101,255], "a": 1 }, + { "px": [16,176], "src": [96,0], "f": 0, "t": 6, "d": [101,353], "a": 1 }, + { "px": [48,176], "src": [96,0], "f": 0, "t": 6, "d": [101,355], "a": 1 }, + { "px": [80,176], "src": [224,96], "f": 0, "t": 152, "d": [101,357], "a": 1 }, + { "px": [112,176], "src": [96,0], "f": 0, "t": 6, "d": [101,359], "a": 1 }, + { "px": [144,176], "src": [96,0], "f": 0, "t": 6, "d": [101,361], "a": 1 }, + { "px": [176,176], "src": [192,16], "f": 0, "t": 35, "d": [101,363], "a": 1 }, + { "px": [208,176], "src": [224,96], "f": 0, "t": 152, "d": [101,365], "a": 1 }, + { "px": [240,176], "src": [224,96], "f": 0, "t": 152, "d": [101,367], "a": 1 }, + { "px": [0,192], "src": [96,0], "f": 0, "t": 6, "d": [101,384], "a": 1 }, + { "px": [32,192], "src": [96,0], "f": 0, "t": 6, "d": [101,386], "a": 1 }, + { "px": [64,192], "src": [224,96], "f": 0, "t": 152, "d": [101,388], "a": 1 }, + { "px": [96,192], "src": [96,0], "f": 0, "t": 6, "d": [101,390], "a": 1 }, + { "px": [128,192], "src": [96,0], "f": 0, "t": 6, "d": [101,392], "a": 1 }, + { "px": [160,192], "src": [224,96], "f": 0, "t": 152, "d": [101,394], "a": 1 }, + { "px": [192,192], "src": [192,16], "f": 0, "t": 35, "d": [101,396], "a": 1 }, + { "px": [224,192], "src": [192,16], "f": 0, "t": 35, "d": [101,398], "a": 1 }, + { "px": [256,192], "src": [224,96], "f": 0, "t": 152, "d": [101,400], "a": 1 }, + { "px": [240,208], "src": [224,96], "f": 0, "t": 152, "d": [101,431], "a": 1 }, + { "px": [496,208], "src": [224,96], "f": 0, "t": 152, "d": [101,447], "a": 1 }, + { "px": [256,224], "src": [224,96], "f": 0, "t": 152, "d": [101,464], "a": 1 }, + { "px": [288,224], "src": [96,0], "f": 0, "t": 6, "d": [101,466], "a": 1 }, + { "px": [240,240], "src": [96,0], "f": 0, "t": 6, "d": [101,495], "a": 1 }, + { "px": [272,240], "src": [96,0], "f": 0, "t": 6, "d": [101,497], "a": 1 }, + { "px": [496,240], "src": [192,16], "f": 0, "t": 35, "d": [101,511], "a": 1 }, + { "px": [288,256], "src": [224,96], "f": 0, "t": 152, "d": [101,530], "a": 1 }, + { "px": [272,272], "src": [96,0], "f": 0, "t": 6, "d": [101,561], "a": 1 }, + { "px": [304,272], "src": [96,0], "f": 0, "t": 6, "d": [101,563], "a": 1 }, + { "px": [336,272], "src": [192,16], "f": 0, "t": 35, "d": [101,565], "a": 1 }, + { "px": [368,272], "src": [224,96], "f": 0, "t": 152, "d": [101,567], "a": 1 }, + { "px": [400,272], "src": [224,96], "f": 0, "t": 152, "d": [101,569], "a": 1 }, + { "px": [496,272], "src": [192,16], "f": 0, "t": 35, "d": [101,575], "a": 1 }, + { "px": [288,288], "src": [96,0], "f": 0, "t": 6, "d": [101,594], "a": 1 }, + { "px": [320,288], "src": [192,16], "f": 0, "t": 35, "d": [101,596], "a": 1 }, + { "px": [352,288], "src": [192,16], "f": 0, "t": 35, "d": [101,598], "a": 1 }, + { "px": [384,288], "src": [96,0], "f": 0, "t": 6, "d": [101,600], "a": 1 }, + { "px": [416,288], "src": [192,16], "f": 0, "t": 35, "d": [101,602], "a": 1 }, + { "px": [400,304], "src": [96,0], "f": 0, "t": 6, "d": [101,633], "a": 1 }, + { "px": [496,304], "src": [192,16], "f": 0, "t": 35, "d": [101,639], "a": 1 }, + { "px": [416,320], "src": [192,16], "f": 0, "t": 35, "d": [101,666], "a": 1 }, + { "px": [400,336], "src": [192,16], "f": 0, "t": 35, "d": [101,697], "a": 1 }, + { "px": [496,336], "src": [96,0], "f": 0, "t": 6, "d": [101,703], "a": 1 }, + { "px": [416,352], "src": [96,0], "f": 0, "t": 6, "d": [101,730], "a": 1 }, + { "px": [400,368], "src": [192,16], "f": 0, "t": 35, "d": [101,761], "a": 1 }, + { "px": [416,384], "src": [224,96], "f": 0, "t": 152, "d": [101,794], "a": 1 }, + { "px": [400,400], "src": [192,16], "f": 0, "t": 35, "d": [101,825], "a": 1 }, + { "px": [416,416], "src": [224,96], "f": 0, "t": 152, "d": [101,858], "a": 1 }, + { "px": [400,432], "src": [224,96], "f": 0, "t": 152, "d": [101,889], "a": 1 }, + { "px": [432,432], "src": [224,96], "f": 0, "t": 152, "d": [101,891], "a": 1 }, + { "px": [464,432], "src": [224,96], "f": 0, "t": 152, "d": [101,893], "a": 1 }, + { "px": [496,432], "src": [96,0], "f": 0, "t": 6, "d": [101,895], "a": 1 }, + { "px": [416,448], "src": [224,96], "f": 0, "t": 152, "d": [101,922], "a": 1 }, + { "px": [448,448], "src": [96,0], "f": 0, "t": 6, "d": [101,924], "a": 1 }, + { "px": [480,448], "src": [224,96], "f": 0, "t": 152, "d": [101,926], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [96,0], "src": [32,32], "f": 0, "t": 48, "d": [127,6], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [127,8], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [160,0], "src": [32,32], "f": 0, "t": 48, "d": [127,10], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [127,31], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,32], "a": 1 }, + { "px": [16,16], "src": [32,32], "f": 0, "t": 48, "d": [127,33], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [127,34], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [127,36], "a": 1 }, + { "px": [80,16], "src": [32,32], "f": 0, "t": 48, "d": [127,37], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [127,38], "a": 1 }, + { "px": [112,16], "src": [32,32], "f": 0, "t": 48, "d": [127,39], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [127,40], "a": 1 }, + { "px": [144,16], "src": [32,32], "f": 0, "t": 48, "d": [127,41], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [127,42], "a": 1 }, + { "px": [176,16], "src": [32,32], "f": 0, "t": 48, "d": [127,43], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,44], "a": 1 }, + { "px": [208,16], "src": [32,32], "f": 0, "t": 48, "d": [127,45], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [127,51], "a": 1 }, + { "px": [464,16], "src": [32,32], "f": 0, "t": 48, "d": [127,61], "a": 1 }, + { "px": [480,16], "src": [32,32], "f": 0, "t": 48, "d": [127,62], "a": 1 }, + { "px": [496,16], "src": [32,32], "f": 0, "t": 48, "d": [127,63], "a": 1 }, + { "px": [0,32], "src": [32,32], "f": 0, "t": 48, "d": [127,64], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [127,65], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [127,67], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [127,69], "a": 1 }, + { "px": [96,32], "src": [32,32], "f": 0, "t": 48, "d": [127,70], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [127,71], "a": 1 }, + { "px": [128,32], "src": [32,32], "f": 0, "t": 48, "d": [127,72], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [127,73], "a": 1 }, + { "px": [160,32], "src": [32,32], "f": 0, "t": 48, "d": [127,74], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [127,75], "a": 1 }, + { "px": [192,32], "src": [32,32], "f": 0, "t": 48, "d": [127,76], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [127,77], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,79], "a": 1 }, + { "px": [256,32], "src": [32,32], "f": 0, "t": 48, "d": [127,80], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [127,81], "a": 1 }, + { "px": [288,32], "src": [32,32], "f": 0, "t": 48, "d": [127,82], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [127,83], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [127,93], "a": 1 }, + { "px": [480,32], "src": [32,32], "f": 0, "t": 48, "d": [127,94], "a": 1 }, + { "px": [496,32], "src": [32,32], "f": 0, "t": 48, "d": [127,95], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,96], "a": 1 }, + { "px": [16,48], "src": [32,32], "f": 0, "t": 48, "d": [127,97], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [127,98], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [127,100], "a": 1 }, + { "px": [80,48], "src": [32,32], "f": 0, "t": 48, "d": [127,101], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [127,102], "a": 1 }, + { "px": [112,48], "src": [32,32], "f": 0, "t": 48, "d": [127,103], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [127,104], "a": 1 }, + { "px": [160,48], "src": [32,32], "f": 0, "t": 48, "d": [127,106], "a": 1 }, + { "px": [176,48], "src": [32,32], "f": 0, "t": 48, "d": [127,107], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [127,108], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [127,110], "a": 1 }, + { "px": [256,48], "src": [32,32], "f": 0, "t": 48, "d": [127,112], "a": 1 }, + { "px": [272,48], "src": [32,32], "f": 0, "t": 48, "d": [127,113], "a": 1 }, + { "px": [288,48], "src": [32,32], "f": 0, "t": 48, "d": [127,114], "a": 1 }, + { "px": [304,48], "src": [32,32], "f": 0, "t": 48, "d": [127,115], "a": 1 }, + { "px": [464,48], "src": [32,32], "f": 0, "t": 48, "d": [127,125], "a": 1 }, + { "px": [480,48], "src": [32,32], "f": 0, "t": 48, "d": [127,126], "a": 1 }, + { "px": [496,48], "src": [32,32], "f": 0, "t": 48, "d": [127,127], "a": 1 }, + { "px": [464,64], "src": [32,32], "f": 0, "t": 48, "d": [127,157], "a": 1 }, + { "px": [480,64], "src": [32,32], "f": 0, "t": 48, "d": [127,158], "a": 1 }, + { "px": [496,64], "src": [32,32], "f": 0, "t": 48, "d": [127,159], "a": 1 }, + { "px": [464,80], "src": [32,32], "f": 0, "t": 48, "d": [127,189], "a": 1 }, + { "px": [480,80], "src": [32,32], "f": 0, "t": 48, "d": [127,190], "a": 1 }, + { "px": [496,80], "src": [32,32], "f": 0, "t": 48, "d": [127,191], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [127,416], "a": 1 }, + { "px": [16,208], "src": [32,32], "f": 0, "t": 48, "d": [127,417], "a": 1 }, + { "px": [32,208], "src": [32,32], "f": 0, "t": 48, "d": [127,418], "a": 1 }, + { "px": [48,208], "src": [32,32], "f": 0, "t": 48, "d": [127,419], "a": 1 }, + { "px": [64,208], "src": [32,32], "f": 0, "t": 48, "d": [127,420], "a": 1 }, + { "px": [80,208], "src": [32,32], "f": 0, "t": 48, "d": [127,421], "a": 1 }, + { "px": [96,208], "src": [32,32], "f": 0, "t": 48, "d": [127,422], "a": 1 }, + { "px": [112,208], "src": [32,32], "f": 0, "t": 48, "d": [127,423], "a": 1 }, + { "px": [128,208], "src": [32,32], "f": 0, "t": 48, "d": [127,424], "a": 1 }, + { "px": [144,208], "src": [32,32], "f": 0, "t": 48, "d": [127,425], "a": 1 }, + { "px": [160,208], "src": [32,32], "f": 0, "t": 48, "d": [127,426], "a": 1 }, + { "px": [176,208], "src": [32,32], "f": 0, "t": 48, "d": [127,427], "a": 1 }, + { "px": [192,208], "src": [32,32], "f": 0, "t": 48, "d": [127,428], "a": 1 }, + { "px": [208,208], "src": [32,32], "f": 0, "t": 48, "d": [127,429], "a": 1 }, + { "px": [224,208], "src": [32,32], "f": 0, "t": 48, "d": [127,430], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [127,449], "a": 1 }, + { "px": [32,224], "src": [32,32], "f": 0, "t": 48, "d": [127,450], "a": 1 }, + { "px": [48,224], "src": [32,32], "f": 0, "t": 48, "d": [127,451], "a": 1 }, + { "px": [64,224], "src": [32,32], "f": 0, "t": 48, "d": [127,452], "a": 1 }, + { "px": [80,224], "src": [32,32], "f": 0, "t": 48, "d": [127,453], "a": 1 }, + { "px": [112,224], "src": [32,32], "f": 0, "t": 48, "d": [127,455], "a": 1 }, + { "px": [128,224], "src": [32,32], "f": 0, "t": 48, "d": [127,456], "a": 1 }, + { "px": [144,224], "src": [32,32], "f": 0, "t": 48, "d": [127,457], "a": 1 }, + { "px": [176,224], "src": [32,32], "f": 0, "t": 48, "d": [127,459], "a": 1 }, + { "px": [192,224], "src": [32,32], "f": 0, "t": 48, "d": [127,460], "a": 1 }, + { "px": [208,224], "src": [32,32], "f": 0, "t": 48, "d": [127,461], "a": 1 }, + { "px": [224,224], "src": [32,32], "f": 0, "t": 48, "d": [127,462], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [127,480], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [127,482], "a": 1 }, + { "px": [48,240], "src": [32,32], "f": 0, "t": 48, "d": [127,483], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [127,484], "a": 1 }, + { "px": [96,240], "src": [32,32], "f": 0, "t": 48, "d": [127,486], "a": 1 }, + { "px": [128,240], "src": [32,32], "f": 0, "t": 48, "d": [127,488], "a": 1 }, + { "px": [144,240], "src": [32,32], "f": 0, "t": 48, "d": [127,489], "a": 1 }, + { "px": [160,240], "src": [32,32], "f": 0, "t": 48, "d": [127,490], "a": 1 }, + { "px": [176,240], "src": [32,32], "f": 0, "t": 48, "d": [127,491], "a": 1 }, + { "px": [192,240], "src": [32,32], "f": 0, "t": 48, "d": [127,492], "a": 1 }, + { "px": [208,240], "src": [32,32], "f": 0, "t": 48, "d": [127,493], "a": 1 }, + { "px": [224,240], "src": [32,32], "f": 0, "t": 48, "d": [127,494], "a": 1 }, + { "px": [0,256], "src": [32,32], "f": 0, "t": 48, "d": [127,512], "a": 1 }, + { "px": [16,256], "src": [32,32], "f": 0, "t": 48, "d": [127,513], "a": 1 }, + { "px": [32,256], "src": [32,32], "f": 0, "t": 48, "d": [127,514], "a": 1 }, + { "px": [48,256], "src": [32,32], "f": 0, "t": 48, "d": [127,515], "a": 1 }, + { "px": [64,256], "src": [32,32], "f": 0, "t": 48, "d": [127,516], "a": 1 }, + { "px": [80,256], "src": [32,32], "f": 0, "t": 48, "d": [127,517], "a": 1 }, + { "px": [112,256], "src": [32,32], "f": 0, "t": 48, "d": [127,519], "a": 1 }, + { "px": [144,256], "src": [32,32], "f": 0, "t": 48, "d": [127,521], "a": 1 }, + { "px": [160,256], "src": [32,32], "f": 0, "t": 48, "d": [127,522], "a": 1 }, + { "px": [176,256], "src": [32,32], "f": 0, "t": 48, "d": [127,523], "a": 1 }, + { "px": [192,256], "src": [32,32], "f": 0, "t": 48, "d": [127,524], "a": 1 }, + { "px": [208,256], "src": [32,32], "f": 0, "t": 48, "d": [127,525], "a": 1 }, + { "px": [224,256], "src": [32,32], "f": 0, "t": 48, "d": [127,526], "a": 1 }, + { "px": [240,256], "src": [32,32], "f": 0, "t": 48, "d": [127,527], "a": 1 }, + { "px": [256,256], "src": [32,32], "f": 0, "t": 48, "d": [127,528], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [127,544], "a": 1 }, + { "px": [16,272], "src": [32,32], "f": 0, "t": 48, "d": [127,545], "a": 1 }, + { "px": [32,272], "src": [32,32], "f": 0, "t": 48, "d": [127,546], "a": 1 }, + { "px": [48,272], "src": [32,32], "f": 0, "t": 48, "d": [127,547], "a": 1 }, + { "px": [64,272], "src": [32,32], "f": 0, "t": 48, "d": [127,548], "a": 1 }, + { "px": [80,272], "src": [32,32], "f": 0, "t": 48, "d": [127,549], "a": 1 }, + { "px": [96,272], "src": [32,32], "f": 0, "t": 48, "d": [127,550], "a": 1 }, + { "px": [112,272], "src": [32,32], "f": 0, "t": 48, "d": [127,551], "a": 1 }, + { "px": [128,272], "src": [32,32], "f": 0, "t": 48, "d": [127,552], "a": 1 }, + { "px": [160,272], "src": [32,32], "f": 0, "t": 48, "d": [127,554], "a": 1 }, + { "px": [176,272], "src": [32,32], "f": 0, "t": 48, "d": [127,555], "a": 1 }, + { "px": [192,272], "src": [32,32], "f": 0, "t": 48, "d": [127,556], "a": 1 }, + { "px": [208,272], "src": [32,32], "f": 0, "t": 48, "d": [127,557], "a": 1 }, + { "px": [224,272], "src": [32,32], "f": 0, "t": 48, "d": [127,558], "a": 1 }, + { "px": [240,272], "src": [32,32], "f": 0, "t": 48, "d": [127,559], "a": 1 }, + { "px": [256,272], "src": [32,32], "f": 0, "t": 48, "d": [127,560], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [127,577], "a": 1 }, + { "px": [32,288], "src": [32,32], "f": 0, "t": 48, "d": [127,578], "a": 1 }, + { "px": [48,288], "src": [32,32], "f": 0, "t": 48, "d": [127,579], "a": 1 }, + { "px": [80,288], "src": [32,32], "f": 0, "t": 48, "d": [127,581], "a": 1 }, + { "px": [96,288], "src": [32,32], "f": 0, "t": 48, "d": [127,582], "a": 1 }, + { "px": [112,288], "src": [32,32], "f": 0, "t": 48, "d": [127,583], "a": 1 }, + { "px": [128,288], "src": [32,32], "f": 0, "t": 48, "d": [127,584], "a": 1 }, + { "px": [144,288], "src": [32,32], "f": 0, "t": 48, "d": [127,585], "a": 1 }, + { "px": [160,288], "src": [32,32], "f": 0, "t": 48, "d": [127,586], "a": 1 }, + { "px": [176,288], "src": [32,32], "f": 0, "t": 48, "d": [127,587], "a": 1 }, + { "px": [208,288], "src": [32,32], "f": 0, "t": 48, "d": [127,589], "a": 1 }, + { "px": [224,288], "src": [32,32], "f": 0, "t": 48, "d": [127,590], "a": 1 }, + { "px": [240,288], "src": [32,32], "f": 0, "t": 48, "d": [127,591], "a": 1 }, + { "px": [0,304], "src": [32,32], "f": 0, "t": 48, "d": [127,608], "a": 1 }, + { "px": [16,304], "src": [32,32], "f": 0, "t": 48, "d": [127,609], "a": 1 }, + { "px": [32,304], "src": [32,32], "f": 0, "t": 48, "d": [127,610], "a": 1 }, + { "px": [48,304], "src": [32,32], "f": 0, "t": 48, "d": [127,611], "a": 1 }, + { "px": [64,304], "src": [32,32], "f": 0, "t": 48, "d": [127,612], "a": 1 }, + { "px": [80,304], "src": [32,32], "f": 0, "t": 48, "d": [127,613], "a": 1 }, + { "px": [96,304], "src": [32,32], "f": 0, "t": 48, "d": [127,614], "a": 1 }, + { "px": [112,304], "src": [32,32], "f": 0, "t": 48, "d": [127,615], "a": 1 }, + { "px": [128,304], "src": [32,32], "f": 0, "t": 48, "d": [127,616], "a": 1 }, + { "px": [144,304], "src": [32,32], "f": 0, "t": 48, "d": [127,617], "a": 1 }, + { "px": [160,304], "src": [32,32], "f": 0, "t": 48, "d": [127,618], "a": 1 }, + { "px": [192,304], "src": [32,32], "f": 0, "t": 48, "d": [127,620], "a": 1 }, + { "px": [208,304], "src": [32,32], "f": 0, "t": 48, "d": [127,621], "a": 1 }, + { "px": [224,304], "src": [32,32], "f": 0, "t": 48, "d": [127,622], "a": 1 }, + { "px": [240,304], "src": [32,32], "f": 0, "t": 48, "d": [127,623], "a": 1 }, + { "px": [256,304], "src": [32,32], "f": 0, "t": 48, "d": [127,624], "a": 1 }, + { "px": [288,304], "src": [32,32], "f": 0, "t": 48, "d": [127,626], "a": 1 }, + { "px": [320,304], "src": [32,32], "f": 0, "t": 48, "d": [127,628], "a": 1 }, + { "px": [336,304], "src": [32,32], "f": 0, "t": 48, "d": [127,629], "a": 1 }, + { "px": [352,304], "src": [32,32], "f": 0, "t": 48, "d": [127,630], "a": 1 }, + { "px": [384,304], "src": [32,32], "f": 0, "t": 48, "d": [127,632], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [127,641], "a": 1 }, + { "px": [32,320], "src": [32,32], "f": 0, "t": 48, "d": [127,642], "a": 1 }, + { "px": [48,320], "src": [32,32], "f": 0, "t": 48, "d": [127,643], "a": 1 }, + { "px": [64,320], "src": [32,32], "f": 0, "t": 48, "d": [127,644], "a": 1 }, + { "px": [80,320], "src": [32,32], "f": 0, "t": 48, "d": [127,645], "a": 1 }, + { "px": [96,320], "src": [32,32], "f": 0, "t": 48, "d": [127,646], "a": 1 }, + { "px": [112,320], "src": [32,32], "f": 0, "t": 48, "d": [127,647], "a": 1 }, + { "px": [128,320], "src": [32,32], "f": 0, "t": 48, "d": [127,648], "a": 1 }, + { "px": [144,320], "src": [32,32], "f": 0, "t": 48, "d": [127,649], "a": 1 }, + { "px": [160,320], "src": [32,32], "f": 0, "t": 48, "d": [127,650], "a": 1 }, + { "px": [176,320], "src": [32,32], "f": 0, "t": 48, "d": [127,651], "a": 1 }, + { "px": [208,320], "src": [32,32], "f": 0, "t": 48, "d": [127,653], "a": 1 }, + { "px": [240,320], "src": [32,32], "f": 0, "t": 48, "d": [127,655], "a": 1 }, + { "px": [272,320], "src": [32,32], "f": 0, "t": 48, "d": [127,657], "a": 1 }, + { "px": [288,320], "src": [32,32], "f": 0, "t": 48, "d": [127,658], "a": 1 }, + { "px": [304,320], "src": [32,32], "f": 0, "t": 48, "d": [127,659], "a": 1 }, + { "px": [336,320], "src": [32,32], "f": 0, "t": 48, "d": [127,661], "a": 1 }, + { "px": [352,320], "src": [32,32], "f": 0, "t": 48, "d": [127,662], "a": 1 }, + { "px": [368,320], "src": [32,32], "f": 0, "t": 48, "d": [127,663], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [127,672], "a": 1 }, + { "px": [16,336], "src": [32,32], "f": 0, "t": 48, "d": [127,673], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [127,674], "a": 1 }, + { "px": [64,336], "src": [32,32], "f": 0, "t": 48, "d": [127,676], "a": 1 }, + { "px": [96,336], "src": [32,32], "f": 0, "t": 48, "d": [127,678], "a": 1 }, + { "px": [112,336], "src": [32,32], "f": 0, "t": 48, "d": [127,679], "a": 1 }, + { "px": [128,336], "src": [32,32], "f": 0, "t": 48, "d": [127,680], "a": 1 }, + { "px": [144,336], "src": [32,32], "f": 0, "t": 48, "d": [127,681], "a": 1 }, + { "px": [160,336], "src": [32,32], "f": 0, "t": 48, "d": [127,682], "a": 1 }, + { "px": [192,336], "src": [32,32], "f": 0, "t": 48, "d": [127,684], "a": 1 }, + { "px": [224,336], "src": [32,32], "f": 0, "t": 48, "d": [127,686], "a": 1 }, + { "px": [256,336], "src": [32,32], "f": 0, "t": 48, "d": [127,688], "a": 1 }, + { "px": [288,336], "src": [32,32], "f": 0, "t": 48, "d": [127,690], "a": 1 }, + { "px": [304,336], "src": [32,32], "f": 0, "t": 48, "d": [127,691], "a": 1 }, + { "px": [320,336], "src": [32,32], "f": 0, "t": 48, "d": [127,692], "a": 1 }, + { "px": [336,336], "src": [32,32], "f": 0, "t": 48, "d": [127,693], "a": 1 }, + { "px": [352,336], "src": [32,32], "f": 0, "t": 48, "d": [127,694], "a": 1 }, + { "px": [384,336], "src": [32,32], "f": 0, "t": 48, "d": [127,696], "a": 1 }, + { "px": [0,352], "src": [32,32], "f": 0, "t": 48, "d": [127,704], "a": 1 }, + { "px": [16,352], "src": [32,32], "f": 0, "t": 48, "d": [127,705], "a": 1 }, + { "px": [32,352], "src": [32,32], "f": 0, "t": 48, "d": [127,706], "a": 1 }, + { "px": [48,352], "src": [32,32], "f": 0, "t": 48, "d": [127,707], "a": 1 }, + { "px": [64,352], "src": [32,32], "f": 0, "t": 48, "d": [127,708], "a": 1 }, + { "px": [80,352], "src": [32,32], "f": 0, "t": 48, "d": [127,709], "a": 1 }, + { "px": [112,352], "src": [32,32], "f": 0, "t": 48, "d": [127,711], "a": 1 }, + { "px": [128,352], "src": [32,32], "f": 0, "t": 48, "d": [127,712], "a": 1 }, + { "px": [144,352], "src": [32,32], "f": 0, "t": 48, "d": [127,713], "a": 1 }, + { "px": [176,352], "src": [32,32], "f": 0, "t": 48, "d": [127,715], "a": 1 }, + { "px": [208,352], "src": [32,32], "f": 0, "t": 48, "d": [127,717], "a": 1 }, + { "px": [224,352], "src": [32,32], "f": 0, "t": 48, "d": [127,718], "a": 1 }, + { "px": [240,352], "src": [32,32], "f": 0, "t": 48, "d": [127,719], "a": 1 }, + { "px": [256,352], "src": [32,32], "f": 0, "t": 48, "d": [127,720], "a": 1 }, + { "px": [272,352], "src": [32,32], "f": 0, "t": 48, "d": [127,721], "a": 1 }, + { "px": [288,352], "src": [32,32], "f": 0, "t": 48, "d": [127,722], "a": 1 }, + { "px": [304,352], "src": [32,32], "f": 0, "t": 48, "d": [127,723], "a": 1 }, + { "px": [320,352], "src": [32,32], "f": 0, "t": 48, "d": [127,724], "a": 1 }, + { "px": [336,352], "src": [32,32], "f": 0, "t": 48, "d": [127,725], "a": 1 }, + { "px": [352,352], "src": [32,32], "f": 0, "t": 48, "d": [127,726], "a": 1 }, + { "px": [368,352], "src": [32,32], "f": 0, "t": 48, "d": [127,727], "a": 1 }, + { "px": [384,352], "src": [32,32], "f": 0, "t": 48, "d": [127,728], "a": 1 }, + { "px": [0,368], "src": [32,32], "f": 0, "t": 48, "d": [127,736], "a": 1 }, + { "px": [16,368], "src": [32,32], "f": 0, "t": 48, "d": [127,737], "a": 1 }, + { "px": [32,368], "src": [32,32], "f": 0, "t": 48, "d": [127,738], "a": 1 }, + { "px": [64,368], "src": [32,32], "f": 0, "t": 48, "d": [127,740], "a": 1 }, + { "px": [80,368], "src": [32,32], "f": 0, "t": 48, "d": [127,741], "a": 1 }, + { "px": [96,368], "src": [32,32], "f": 0, "t": 48, "d": [127,742], "a": 1 }, + { "px": [128,368], "src": [32,32], "f": 0, "t": 48, "d": [127,744], "a": 1 }, + { "px": [144,368], "src": [32,32], "f": 0, "t": 48, "d": [127,745], "a": 1 }, + { "px": [160,368], "src": [32,32], "f": 0, "t": 48, "d": [127,746], "a": 1 }, + { "px": [176,368], "src": [32,32], "f": 0, "t": 48, "d": [127,747], "a": 1 }, + { "px": [192,368], "src": [32,32], "f": 0, "t": 48, "d": [127,748], "a": 1 }, + { "px": [208,368], "src": [32,32], "f": 0, "t": 48, "d": [127,749], "a": 1 }, + { "px": [224,368], "src": [32,32], "f": 0, "t": 48, "d": [127,750], "a": 1 }, + { "px": [240,368], "src": [32,32], "f": 0, "t": 48, "d": [127,751], "a": 1 }, + { "px": [256,368], "src": [32,32], "f": 0, "t": 48, "d": [127,752], "a": 1 }, + { "px": [272,368], "src": [32,32], "f": 0, "t": 48, "d": [127,753], "a": 1 }, + { "px": [288,368], "src": [32,32], "f": 0, "t": 48, "d": [127,754], "a": 1 }, + { "px": [304,368], "src": [32,32], "f": 0, "t": 48, "d": [127,755], "a": 1 }, + { "px": [320,368], "src": [32,32], "f": 0, "t": 48, "d": [127,756], "a": 1 }, + { "px": [336,368], "src": [32,32], "f": 0, "t": 48, "d": [127,757], "a": 1 }, + { "px": [352,368], "src": [32,32], "f": 0, "t": 48, "d": [127,758], "a": 1 }, + { "px": [368,368], "src": [32,32], "f": 0, "t": 48, "d": [127,759], "a": 1 }, + { "px": [384,368], "src": [32,32], "f": 0, "t": 48, "d": [127,760], "a": 1 }, + { "px": [16,384], "src": [32,32], "f": 0, "t": 48, "d": [127,769], "a": 1 }, + { "px": [32,384], "src": [32,32], "f": 0, "t": 48, "d": [127,770], "a": 1 }, + { "px": [48,384], "src": [32,32], "f": 0, "t": 48, "d": [127,771], "a": 1 }, + { "px": [80,384], "src": [32,32], "f": 0, "t": 48, "d": [127,773], "a": 1 }, + { "px": [96,384], "src": [32,32], "f": 0, "t": 48, "d": [127,774], "a": 1 }, + { "px": [112,384], "src": [32,32], "f": 0, "t": 48, "d": [127,775], "a": 1 }, + { "px": [128,384], "src": [32,32], "f": 0, "t": 48, "d": [127,776], "a": 1 }, + { "px": [144,384], "src": [32,32], "f": 0, "t": 48, "d": [127,777], "a": 1 }, + { "px": [160,384], "src": [32,32], "f": 0, "t": 48, "d": [127,778], "a": 1 }, + { "px": [176,384], "src": [32,32], "f": 0, "t": 48, "d": [127,779], "a": 1 }, + { "px": [192,384], "src": [32,32], "f": 0, "t": 48, "d": [127,780], "a": 1 }, + { "px": [208,384], "src": [32,32], "f": 0, "t": 48, "d": [127,781], "a": 1 }, + { "px": [240,384], "src": [32,32], "f": 0, "t": 48, "d": [127,783], "a": 1 }, + { "px": [256,384], "src": [32,32], "f": 0, "t": 48, "d": [127,784], "a": 1 }, + { "px": [272,384], "src": [32,32], "f": 0, "t": 48, "d": [127,785], "a": 1 }, + { "px": [288,384], "src": [32,32], "f": 0, "t": 48, "d": [127,786], "a": 1 }, + { "px": [304,384], "src": [32,32], "f": 0, "t": 48, "d": [127,787], "a": 1 }, + { "px": [336,384], "src": [32,32], "f": 0, "t": 48, "d": [127,789], "a": 1 }, + { "px": [352,384], "src": [32,32], "f": 0, "t": 48, "d": [127,790], "a": 1 }, + { "px": [368,384], "src": [32,32], "f": 0, "t": 48, "d": [127,791], "a": 1 }, + { "px": [384,384], "src": [32,32], "f": 0, "t": 48, "d": [127,792], "a": 1 }, + { "px": [0,400], "src": [32,32], "f": 0, "t": 48, "d": [127,800], "a": 1 }, + { "px": [16,400], "src": [32,32], "f": 0, "t": 48, "d": [127,801], "a": 1 }, + { "px": [32,400], "src": [32,32], "f": 0, "t": 48, "d": [127,802], "a": 1 }, + { "px": [48,400], "src": [32,32], "f": 0, "t": 48, "d": [127,803], "a": 1 }, + { "px": [64,400], "src": [32,32], "f": 0, "t": 48, "d": [127,804], "a": 1 }, + { "px": [96,400], "src": [32,32], "f": 0, "t": 48, "d": [127,806], "a": 1 }, + { "px": [112,400], "src": [32,32], "f": 0, "t": 48, "d": [127,807], "a": 1 }, + { "px": [128,400], "src": [32,32], "f": 0, "t": 48, "d": [127,808], "a": 1 }, + { "px": [160,400], "src": [32,32], "f": 0, "t": 48, "d": [127,810], "a": 1 }, + { "px": [176,400], "src": [32,32], "f": 0, "t": 48, "d": [127,811], "a": 1 }, + { "px": [192,400], "src": [32,32], "f": 0, "t": 48, "d": [127,812], "a": 1 }, + { "px": [224,400], "src": [32,32], "f": 0, "t": 48, "d": [127,814], "a": 1 }, + { "px": [240,400], "src": [32,32], "f": 0, "t": 48, "d": [127,815], "a": 1 }, + { "px": [256,400], "src": [32,32], "f": 0, "t": 48, "d": [127,816], "a": 1 }, + { "px": [272,400], "src": [32,32], "f": 0, "t": 48, "d": [127,817], "a": 1 }, + { "px": [288,400], "src": [32,32], "f": 0, "t": 48, "d": [127,818], "a": 1 }, + { "px": [320,400], "src": [32,32], "f": 0, "t": 48, "d": [127,820], "a": 1 }, + { "px": [336,400], "src": [32,32], "f": 0, "t": 48, "d": [127,821], "a": 1 }, + { "px": [352,400], "src": [32,32], "f": 0, "t": 48, "d": [127,822], "a": 1 }, + { "px": [368,400], "src": [32,32], "f": 0, "t": 48, "d": [127,823], "a": 1 }, + { "px": [384,400], "src": [32,32], "f": 0, "t": 48, "d": [127,824], "a": 1 }, + { "px": [0,416], "src": [32,32], "f": 0, "t": 48, "d": [127,832], "a": 1 }, + { "px": [16,416], "src": [32,32], "f": 0, "t": 48, "d": [127,833], "a": 1 }, + { "px": [32,416], "src": [32,32], "f": 0, "t": 48, "d": [127,834], "a": 1 }, + { "px": [48,416], "src": [32,32], "f": 0, "t": 48, "d": [127,835], "a": 1 }, + { "px": [80,416], "src": [32,32], "f": 0, "t": 48, "d": [127,837], "a": 1 }, + { "px": [96,416], "src": [32,32], "f": 0, "t": 48, "d": [127,838], "a": 1 }, + { "px": [112,416], "src": [32,32], "f": 0, "t": 48, "d": [127,839], "a": 1 }, + { "px": [128,416], "src": [32,32], "f": 0, "t": 48, "d": [127,840], "a": 1 }, + { "px": [144,416], "src": [32,32], "f": 0, "t": 48, "d": [127,841], "a": 1 }, + { "px": [160,416], "src": [32,32], "f": 0, "t": 48, "d": [127,842], "a": 1 }, + { "px": [176,416], "src": [32,32], "f": 0, "t": 48, "d": [127,843], "a": 1 }, + { "px": [192,416], "src": [32,32], "f": 0, "t": 48, "d": [127,844], "a": 1 }, + { "px": [208,416], "src": [32,32], "f": 0, "t": 48, "d": [127,845], "a": 1 }, + { "px": [240,416], "src": [32,32], "f": 0, "t": 48, "d": [127,847], "a": 1 }, + { "px": [256,416], "src": [32,32], "f": 0, "t": 48, "d": [127,848], "a": 1 }, + { "px": [272,416], "src": [32,32], "f": 0, "t": 48, "d": [127,849], "a": 1 }, + { "px": [304,416], "src": [32,32], "f": 0, "t": 48, "d": [127,851], "a": 1 }, + { "px": [320,416], "src": [32,32], "f": 0, "t": 48, "d": [127,852], "a": 1 }, + { "px": [336,416], "src": [32,32], "f": 0, "t": 48, "d": [127,853], "a": 1 }, + { "px": [352,416], "src": [32,32], "f": 0, "t": 48, "d": [127,854], "a": 1 }, + { "px": [368,416], "src": [32,32], "f": 0, "t": 48, "d": [127,855], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [127,864], "a": 1 }, + { "px": [16,432], "src": [32,32], "f": 0, "t": 48, "d": [127,865], "a": 1 }, + { "px": [32,432], "src": [32,32], "f": 0, "t": 48, "d": [127,866], "a": 1 }, + { "px": [64,432], "src": [32,32], "f": 0, "t": 48, "d": [127,868], "a": 1 }, + { "px": [80,432], "src": [32,32], "f": 0, "t": 48, "d": [127,869], "a": 1 }, + { "px": [96,432], "src": [32,32], "f": 0, "t": 48, "d": [127,870], "a": 1 }, + { "px": [112,432], "src": [32,32], "f": 0, "t": 48, "d": [127,871], "a": 1 }, + { "px": [128,432], "src": [32,32], "f": 0, "t": 48, "d": [127,872], "a": 1 }, + { "px": [144,432], "src": [32,32], "f": 0, "t": 48, "d": [127,873], "a": 1 }, + { "px": [160,432], "src": [32,32], "f": 0, "t": 48, "d": [127,874], "a": 1 }, + { "px": [176,432], "src": [32,32], "f": 0, "t": 48, "d": [127,875], "a": 1 }, + { "px": [192,432], "src": [32,32], "f": 0, "t": 48, "d": [127,876], "a": 1 }, + { "px": [224,432], "src": [32,32], "f": 0, "t": 48, "d": [127,878], "a": 1 }, + { "px": [240,432], "src": [32,32], "f": 0, "t": 48, "d": [127,879], "a": 1 }, + { "px": [256,432], "src": [32,32], "f": 0, "t": 48, "d": [127,880], "a": 1 }, + { "px": [288,432], "src": [32,32], "f": 0, "t": 48, "d": [127,882], "a": 1 }, + { "px": [320,432], "src": [32,32], "f": 0, "t": 48, "d": [127,884], "a": 1 }, + { "px": [352,432], "src": [32,32], "f": 0, "t": 48, "d": [127,886], "a": 1 }, + { "px": [384,432], "src": [32,32], "f": 0, "t": 48, "d": [127,888], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [127,897], "a": 1 }, + { "px": [48,448], "src": [32,32], "f": 0, "t": 48, "d": [127,899], "a": 1 }, + { "px": [64,448], "src": [32,32], "f": 0, "t": 48, "d": [127,900], "a": 1 }, + { "px": [80,448], "src": [32,32], "f": 0, "t": 48, "d": [127,901], "a": 1 }, + { "px": [96,448], "src": [32,32], "f": 0, "t": 48, "d": [127,902], "a": 1 }, + { "px": [112,448], "src": [32,32], "f": 0, "t": 48, "d": [127,903], "a": 1 }, + { "px": [128,448], "src": [32,32], "f": 0, "t": 48, "d": [127,904], "a": 1 }, + { "px": [144,448], "src": [32,32], "f": 0, "t": 48, "d": [127,905], "a": 1 }, + { "px": [176,448], "src": [32,32], "f": 0, "t": 48, "d": [127,907], "a": 1 }, + { "px": [208,448], "src": [32,32], "f": 0, "t": 48, "d": [127,909], "a": 1 }, + { "px": [224,448], "src": [32,32], "f": 0, "t": 48, "d": [127,910], "a": 1 }, + { "px": [240,448], "src": [32,32], "f": 0, "t": 48, "d": [127,911], "a": 1 }, + { "px": [256,448], "src": [32,32], "f": 0, "t": 48, "d": [127,912], "a": 1 }, + { "px": [272,448], "src": [32,32], "f": 0, "t": 48, "d": [127,913], "a": 1 }, + { "px": [304,448], "src": [32,32], "f": 0, "t": 48, "d": [127,915], "a": 1 }, + { "px": [320,448], "src": [32,32], "f": 0, "t": 48, "d": [127,916], "a": 1 }, + { "px": [336,448], "src": [32,32], "f": 0, "t": 48, "d": [127,917], "a": 1 }, + { "px": [352,448], "src": [32,32], "f": 0, "t": 48, "d": [127,918], "a": 1 }, + { "px": [368,448], "src": [32,32], "f": 0, "t": 48, "d": [127,919], "a": 1 }, + { "px": [384,448], "src": [32,32], "f": 0, "t": 48, "d": [127,920], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [127,928], "a": 1 }, + { "px": [16,464], "src": [32,32], "f": 0, "t": 48, "d": [127,929], "a": 1 }, + { "px": [32,464], "src": [32,32], "f": 0, "t": 48, "d": [127,930], "a": 1 }, + { "px": [48,464], "src": [32,32], "f": 0, "t": 48, "d": [127,931], "a": 1 }, + { "px": [64,464], "src": [32,32], "f": 0, "t": 48, "d": [127,932], "a": 1 }, + { "px": [80,464], "src": [32,32], "f": 0, "t": 48, "d": [127,933], "a": 1 }, + { "px": [96,464], "src": [32,32], "f": 0, "t": 48, "d": [127,934], "a": 1 }, + { "px": [112,464], "src": [32,32], "f": 0, "t": 48, "d": [127,935], "a": 1 }, + { "px": [128,464], "src": [32,32], "f": 0, "t": 48, "d": [127,936], "a": 1 }, + { "px": [144,464], "src": [32,32], "f": 0, "t": 48, "d": [127,937], "a": 1 }, + { "px": [160,464], "src": [32,32], "f": 0, "t": 48, "d": [127,938], "a": 1 }, + { "px": [192,464], "src": [32,32], "f": 0, "t": 48, "d": [127,940], "a": 1 }, + { "px": [224,464], "src": [32,32], "f": 0, "t": 48, "d": [127,942], "a": 1 }, + { "px": [240,464], "src": [32,32], "f": 0, "t": 48, "d": [127,943], "a": 1 }, + { "px": [256,464], "src": [32,32], "f": 0, "t": 48, "d": [127,944], "a": 1 }, + { "px": [272,464], "src": [32,32], "f": 0, "t": 48, "d": [127,945], "a": 1 }, + { "px": [288,464], "src": [32,32], "f": 0, "t": 48, "d": [127,946], "a": 1 }, + { "px": [320,464], "src": [32,32], "f": 0, "t": 48, "d": [127,948], "a": 1 }, + { "px": [336,464], "src": [32,32], "f": 0, "t": 48, "d": [127,949], "a": 1 }, + { "px": [352,464], "src": [32,32], "f": 0, "t": 48, "d": [127,950], "a": 1 }, + { "px": [368,464], "src": [32,32], "f": 0, "t": 48, "d": [127,951], "a": 1 }, + { "px": [384,464], "src": [32,32], "f": 0, "t": 48, "d": [127,952], "a": 1 }, + { "px": [400,464], "src": [32,32], "f": 0, "t": 48, "d": [127,953], "a": 1 }, + { "px": [416,464], "src": [32,32], "f": 0, "t": 48, "d": [127,954], "a": 1 }, + { "px": [432,464], "src": [32,32], "f": 0, "t": 48, "d": [127,955], "a": 1 }, + { "px": [448,464], "src": [32,32], "f": 0, "t": 48, "d": [127,956], "a": 1 }, + { "px": [464,464], "src": [32,32], "f": 0, "t": 48, "d": [127,957], "a": 1 }, + { "px": [480,464], "src": [32,32], "f": 0, "t": 48, "d": [127,958], "a": 1 }, + { "px": [496,464], "src": [32,32], "f": 0, "t": 48, "d": [127,959], "a": 1 }, + { "px": [16,480], "src": [32,32], "f": 0, "t": 48, "d": [127,961], "a": 1 }, + { "px": [48,480], "src": [32,32], "f": 0, "t": 48, "d": [127,963], "a": 1 }, + { "px": [80,480], "src": [32,32], "f": 0, "t": 48, "d": [127,965], "a": 1 }, + { "px": [96,480], "src": [32,32], "f": 0, "t": 48, "d": [127,966], "a": 1 }, + { "px": [112,480], "src": [32,32], "f": 0, "t": 48, "d": [127,967], "a": 1 }, + { "px": [128,480], "src": [32,32], "f": 0, "t": 48, "d": [127,968], "a": 1 }, + { "px": [144,480], "src": [32,32], "f": 0, "t": 48, "d": [127,969], "a": 1 }, + { "px": [176,480], "src": [32,32], "f": 0, "t": 48, "d": [127,971], "a": 1 }, + { "px": [208,480], "src": [32,32], "f": 0, "t": 48, "d": [127,973], "a": 1 }, + { "px": [224,480], "src": [32,32], "f": 0, "t": 48, "d": [127,974], "a": 1 }, + { "px": [240,480], "src": [32,32], "f": 0, "t": 48, "d": [127,975], "a": 1 }, + { "px": [272,480], "src": [32,32], "f": 0, "t": 48, "d": [127,977], "a": 1 }, + { "px": [304,480], "src": [32,32], "f": 0, "t": 48, "d": [127,979], "a": 1 }, + { "px": [336,480], "src": [32,32], "f": 0, "t": 48, "d": [127,981], "a": 1 }, + { "px": [352,480], "src": [32,32], "f": 0, "t": 48, "d": [127,982], "a": 1 }, + { "px": [368,480], "src": [32,32], "f": 0, "t": 48, "d": [127,983], "a": 1 }, + { "px": [384,480], "src": [32,32], "f": 0, "t": 48, "d": [127,984], "a": 1 }, + { "px": [400,480], "src": [32,32], "f": 0, "t": 48, "d": [127,985], "a": 1 }, + { "px": [432,480], "src": [32,32], "f": 0, "t": 48, "d": [127,987], "a": 1 }, + { "px": [448,480], "src": [32,32], "f": 0, "t": 48, "d": [127,988], "a": 1 }, + { "px": [464,480], "src": [32,32], "f": 0, "t": 48, "d": [127,989], "a": 1 }, + { "px": [480,480], "src": [32,32], "f": 0, "t": 48, "d": [127,990], "a": 1 }, + { "px": [496,480], "src": [32,32], "f": 0, "t": 48, "d": [127,991], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,992], "a": 1 }, + { "px": [32,496], "src": [32,32], "f": 0, "t": 48, "d": [127,994], "a": 1 }, + { "px": [64,496], "src": [32,32], "f": 0, "t": 48, "d": [127,996], "a": 1 }, + { "px": [96,496], "src": [32,32], "f": 0, "t": 48, "d": [127,998], "a": 1 }, + { "px": [112,496], "src": [32,32], "f": 0, "t": 48, "d": [127,999], "a": 1 }, + { "px": [128,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1000], "a": 1 }, + { "px": [144,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1001], "a": 1 }, + { "px": [160,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1002], "a": 1 }, + { "px": [176,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1003], "a": 1 }, + { "px": [192,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1004], "a": 1 }, + { "px": [208,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1005], "a": 1 }, + { "px": [224,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1006], "a": 1 }, + { "px": [256,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1008], "a": 1 }, + { "px": [288,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1010], "a": 1 }, + { "px": [320,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1012], "a": 1 }, + { "px": [336,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1013], "a": 1 }, + { "px": [352,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1014], "a": 1 }, + { "px": [368,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1015], "a": 1 }, + { "px": [384,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1016], "a": 1 }, + { "px": [400,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1017], "a": 1 }, + { "px": [416,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1018], "a": 1 }, + { "px": [432,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1019], "a": 1 }, + { "px": [448,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1020], "a": 1 }, + { "px": [464,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1021], "a": 1 }, + { "px": [480,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1022], "a": 1 }, + { "px": [0,0], "src": [96,96], "f": 0, "t": 144, "d": [126,0], "a": 1 }, + { "px": [32,0], "src": [96,96], "f": 0, "t": 144, "d": [126,2], "a": 1 }, + { "px": [64,0], "src": [64,96], "f": 0, "t": 142, "d": [126,4], "a": 1 }, + { "px": [192,0], "src": [96,96], "f": 0, "t": 144, "d": [126,12], "a": 1 }, + { "px": [256,0], "src": [96,96], "f": 0, "t": 144, "d": [126,16], "a": 1 }, + { "px": [480,0], "src": [96,96], "f": 0, "t": 144, "d": [126,30], "a": 1 }, + { "px": [48,16], "src": [64,96], "f": 0, "t": 142, "d": [126,35], "a": 1 }, + { "px": [240,16], "src": [96,96], "f": 0, "t": 144, "d": [126,47], "a": 1 }, + { "px": [272,16], "src": [64,96], "f": 0, "t": 142, "d": [126,49], "a": 1 }, + { "px": [32,32], "src": [64,96], "f": 0, "t": 142, "d": [126,66], "a": 1 }, + { "px": [64,32], "src": [64,96], "f": 0, "t": 142, "d": [126,68], "a": 1 }, + { "px": [224,32], "src": [96,96], "f": 0, "t": 144, "d": [126,78], "a": 1 }, + { "px": [48,48], "src": [64,96], "f": 0, "t": 142, "d": [126,99], "a": 1 }, + { "px": [144,48], "src": [64,96], "f": 0, "t": 142, "d": [126,105], "a": 1 }, + { "px": [208,48], "src": [64,96], "f": 0, "t": 142, "d": [126,109], "a": 1 }, + { "px": [240,48], "src": [96,96], "f": 0, "t": 144, "d": [126,111], "a": 1 }, + { "px": [0,224], "src": [64,96], "f": 0, "t": 142, "d": [126,448], "a": 1 }, + { "px": [96,224], "src": [64,96], "f": 0, "t": 142, "d": [126,454], "a": 1 }, + { "px": [160,224], "src": [64,96], "f": 0, "t": 142, "d": [126,458], "a": 1 }, + { "px": [16,240], "src": [64,96], "f": 0, "t": 142, "d": [126,481], "a": 1 }, + { "px": [80,240], "src": [64,96], "f": 0, "t": 142, "d": [126,485], "a": 1 }, + { "px": [112,240], "src": [64,96], "f": 0, "t": 142, "d": [126,487], "a": 1 }, + { "px": [96,256], "src": [96,96], "f": 0, "t": 144, "d": [126,518], "a": 1 }, + { "px": [128,256], "src": [96,96], "f": 0, "t": 144, "d": [126,520], "a": 1 }, + { "px": [144,272], "src": [64,96], "f": 0, "t": 142, "d": [126,553], "a": 1 }, + { "px": [0,288], "src": [96,96], "f": 0, "t": 144, "d": [126,576], "a": 1 }, + { "px": [64,288], "src": [64,96], "f": 0, "t": 142, "d": [126,580], "a": 1 }, + { "px": [192,288], "src": [96,96], "f": 0, "t": 144, "d": [126,588], "a": 1 }, + { "px": [256,288], "src": [96,96], "f": 0, "t": 144, "d": [126,592], "a": 1 }, + { "px": [176,304], "src": [64,96], "f": 0, "t": 142, "d": [126,619], "a": 1 }, + { "px": [272,304], "src": [96,96], "f": 0, "t": 144, "d": [126,625], "a": 1 }, + { "px": [304,304], "src": [64,96], "f": 0, "t": 142, "d": [126,627], "a": 1 }, + { "px": [368,304], "src": [64,96], "f": 0, "t": 142, "d": [126,631], "a": 1 }, + { "px": [0,320], "src": [96,96], "f": 0, "t": 144, "d": [126,640], "a": 1 }, + { "px": [192,320], "src": [96,96], "f": 0, "t": 144, "d": [126,652], "a": 1 }, + { "px": [224,320], "src": [64,96], "f": 0, "t": 142, "d": [126,654], "a": 1 }, + { "px": [256,320], "src": [64,96], "f": 0, "t": 142, "d": [126,656], "a": 1 }, + { "px": [320,320], "src": [64,96], "f": 0, "t": 142, "d": [126,660], "a": 1 }, + { "px": [384,320], "src": [64,96], "f": 0, "t": 142, "d": [126,664], "a": 1 }, + { "px": [48,336], "src": [64,96], "f": 0, "t": 142, "d": [126,675], "a": 1 }, + { "px": [80,336], "src": [96,96], "f": 0, "t": 144, "d": [126,677], "a": 1 }, + { "px": [176,336], "src": [96,96], "f": 0, "t": 144, "d": [126,683], "a": 1 }, + { "px": [208,336], "src": [96,96], "f": 0, "t": 144, "d": [126,685], "a": 1 }, + { "px": [240,336], "src": [96,96], "f": 0, "t": 144, "d": [126,687], "a": 1 }, + { "px": [272,336], "src": [96,96], "f": 0, "t": 144, "d": [126,689], "a": 1 }, + { "px": [368,336], "src": [96,96], "f": 0, "t": 144, "d": [126,695], "a": 1 }, + { "px": [96,352], "src": [96,96], "f": 0, "t": 144, "d": [126,710], "a": 1 }, + { "px": [160,352], "src": [96,96], "f": 0, "t": 144, "d": [126,714], "a": 1 }, + { "px": [192,352], "src": [96,96], "f": 0, "t": 144, "d": [126,716], "a": 1 }, + { "px": [48,368], "src": [96,96], "f": 0, "t": 144, "d": [126,739], "a": 1 }, + { "px": [112,368], "src": [96,96], "f": 0, "t": 144, "d": [126,743], "a": 1 }, + { "px": [0,384], "src": [64,96], "f": 0, "t": 142, "d": [126,768], "a": 1 }, + { "px": [64,384], "src": [96,96], "f": 0, "t": 144, "d": [126,772], "a": 1 }, + { "px": [224,384], "src": [96,96], "f": 0, "t": 144, "d": [126,782], "a": 1 }, + { "px": [320,384], "src": [64,96], "f": 0, "t": 142, "d": [126,788], "a": 1 }, + { "px": [80,400], "src": [96,96], "f": 0, "t": 144, "d": [126,805], "a": 1 }, + { "px": [144,400], "src": [96,96], "f": 0, "t": 144, "d": [126,809], "a": 1 }, + { "px": [208,400], "src": [64,96], "f": 0, "t": 142, "d": [126,813], "a": 1 }, + { "px": [304,400], "src": [64,96], "f": 0, "t": 142, "d": [126,819], "a": 1 }, + { "px": [64,416], "src": [96,96], "f": 0, "t": 144, "d": [126,836], "a": 1 }, + { "px": [224,416], "src": [64,96], "f": 0, "t": 142, "d": [126,846], "a": 1 }, + { "px": [288,416], "src": [96,96], "f": 0, "t": 144, "d": [126,850], "a": 1 }, + { "px": [384,416], "src": [96,96], "f": 0, "t": 144, "d": [126,856], "a": 1 }, + { "px": [48,432], "src": [64,96], "f": 0, "t": 142, "d": [126,867], "a": 1 }, + { "px": [208,432], "src": [96,96], "f": 0, "t": 144, "d": [126,877], "a": 1 }, + { "px": [272,432], "src": [96,96], "f": 0, "t": 144, "d": [126,881], "a": 1 }, + { "px": [304,432], "src": [64,96], "f": 0, "t": 142, "d": [126,883], "a": 1 }, + { "px": [336,432], "src": [64,96], "f": 0, "t": 142, "d": [126,885], "a": 1 }, + { "px": [368,432], "src": [96,96], "f": 0, "t": 144, "d": [126,887], "a": 1 }, + { "px": [0,448], "src": [96,96], "f": 0, "t": 144, "d": [126,896], "a": 1 }, + { "px": [32,448], "src": [96,96], "f": 0, "t": 144, "d": [126,898], "a": 1 }, + { "px": [160,448], "src": [96,96], "f": 0, "t": 144, "d": [126,906], "a": 1 }, + { "px": [192,448], "src": [64,96], "f": 0, "t": 142, "d": [126,908], "a": 1 }, + { "px": [288,448], "src": [64,96], "f": 0, "t": 142, "d": [126,914], "a": 1 }, + { "px": [176,464], "src": [64,96], "f": 0, "t": 142, "d": [126,939], "a": 1 }, + { "px": [208,464], "src": [96,96], "f": 0, "t": 144, "d": [126,941], "a": 1 }, + { "px": [304,464], "src": [64,96], "f": 0, "t": 142, "d": [126,947], "a": 1 }, + { "px": [0,480], "src": [64,96], "f": 0, "t": 142, "d": [126,960], "a": 1 }, + { "px": [32,480], "src": [64,96], "f": 0, "t": 142, "d": [126,962], "a": 1 }, + { "px": [64,480], "src": [64,96], "f": 0, "t": 142, "d": [126,964], "a": 1 }, + { "px": [160,480], "src": [64,96], "f": 0, "t": 142, "d": [126,970], "a": 1 }, + { "px": [192,480], "src": [96,96], "f": 0, "t": 144, "d": [126,972], "a": 1 }, + { "px": [256,480], "src": [96,96], "f": 0, "t": 144, "d": [126,976], "a": 1 }, + { "px": [288,480], "src": [64,96], "f": 0, "t": 142, "d": [126,978], "a": 1 }, + { "px": [320,480], "src": [96,96], "f": 0, "t": 144, "d": [126,980], "a": 1 }, + { "px": [416,480], "src": [64,96], "f": 0, "t": 142, "d": [126,986], "a": 1 }, + { "px": [16,496], "src": [64,96], "f": 0, "t": 142, "d": [126,993], "a": 1 }, + { "px": [48,496], "src": [96,96], "f": 0, "t": 144, "d": [126,995], "a": 1 }, + { "px": [80,496], "src": [96,96], "f": 0, "t": 144, "d": [126,997], "a": 1 }, + { "px": [240,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1007], "a": 1 }, + { "px": [272,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1009], "a": 1 }, + { "px": [304,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1011], "a": 1 }, + { "px": [496,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1023], "a": 1 }, + { "px": [0,96], "src": [256,160], "f": 0, "t": 246, "d": [12,192], "a": 1 }, + { "px": [16,96], "src": [256,160], "f": 0, "t": 246, "d": [12,193], "a": 1 }, + { "px": [32,96], "src": [256,160], "f": 0, "t": 246, "d": [12,194], "a": 1 }, + { "px": [80,96], "src": [256,160], "f": 0, "t": 246, "d": [12,197], "a": 1 }, + { "px": [96,96], "src": [256,160], "f": 0, "t": 246, "d": [12,198], "a": 1 }, + { "px": [112,96], "src": [256,160], "f": 0, "t": 246, "d": [12,199], "a": 1 }, + { "px": [128,96], "src": [256,160], "f": 0, "t": 246, "d": [12,200], "a": 1 }, + { "px": [144,96], "src": [256,160], "f": 0, "t": 246, "d": [12,201], "a": 1 }, + { "px": [176,96], "src": [256,160], "f": 0, "t": 246, "d": [12,203], "a": 1 }, + { "px": [208,96], "src": [256,160], "f": 0, "t": 246, "d": [12,205], "a": 1 }, + { "px": [224,96], "src": [256,160], "f": 0, "t": 246, "d": [12,206], "a": 1 }, + { "px": [272,96], "src": [256,160], "f": 0, "t": 246, "d": [12,209], "a": 1 }, + { "px": [304,96], "src": [256,160], "f": 0, "t": 246, "d": [12,211], "a": 1 }, + { "px": [320,96], "src": [256,160], "f": 0, "t": 246, "d": [12,212], "a": 1 }, + { "px": [432,128], "src": [256,160], "f": 0, "t": 246, "d": [12,283], "a": 1 }, + { "px": [448,128], "src": [256,160], "f": 0, "t": 246, "d": [12,284], "a": 1 }, + { "px": [464,128], "src": [256,160], "f": 0, "t": 246, "d": [12,285], "a": 1 }, + { "px": [496,352], "src": [256,160], "f": 0, "t": 246, "d": [12,735], "a": 1 }, + { "px": [16,160], "src": [256,96], "f": 0, "t": 154, "d": [9,321], "a": 1 }, + { "px": [32,160], "src": [256,96], "f": 0, "t": 154, "d": [9,322], "a": 1 }, + { "px": [112,160], "src": [256,96], "f": 0, "t": 154, "d": [9,327], "a": 1 }, + { "px": [128,160], "src": [256,96], "f": 0, "t": 154, "d": [9,328], "a": 1 }, + { "px": [144,160], "src": [256,96], "f": 0, "t": 154, "d": [9,329], "a": 1 }, + { "px": [160,160], "src": [256,96], "f": 0, "t": 154, "d": [9,330], "a": 1 }, + { "px": [176,160], "src": [256,96], "f": 0, "t": 154, "d": [9,331], "a": 1 }, + { "px": [496,192], "src": [256,96], "f": 0, "t": 154, "d": [9,415], "a": 1 }, + { "px": [288,208], "src": [256,96], "f": 0, "t": 154, "d": [9,434], "a": 1 }, + { "px": [352,256], "src": [256,96], "f": 0, "t": 154, "d": [9,534], "a": 1 }, + { "px": [368,256], "src": [256,96], "f": 0, "t": 154, "d": [9,535], "a": 1 }, + { "px": [384,256], "src": [256,96], "f": 0, "t": 154, "d": [9,536], "a": 1 }, + { "px": [400,256], "src": [256,96], "f": 0, "t": 154, "d": [9,537], "a": 1 }, + { "px": [352,0], "src": [224,128], "f": 1, "t": 198, "d": [10,22], "a": 1 }, + { "px": [416,0], "src": [224,128], "f": 0, "t": 198, "d": [10,26], "a": 1 }, + { "px": [352,16], "src": [224,128], "f": 1, "t": 198, "d": [10,54], "a": 1 }, + { "px": [416,16], "src": [224,128], "f": 0, "t": 198, "d": [10,58], "a": 1 }, + { "px": [352,32], "src": [224,128], "f": 1, "t": 198, "d": [10,86], "a": 1 }, + { "px": [416,32], "src": [224,128], "f": 0, "t": 198, "d": [10,90], "a": 1 }, + { "px": [352,48], "src": [224,128], "f": 1, "t": 198, "d": [10,118], "a": 1 }, + { "px": [416,48], "src": [224,128], "f": 0, "t": 198, "d": [10,122], "a": 1 }, + { "px": [352,64], "src": [224,128], "f": 1, "t": 198, "d": [10,150], "a": 1 }, + { "px": [416,64], "src": [224,128], "f": 0, "t": 198, "d": [10,154], "a": 1 }, + { "px": [352,80], "src": [224,128], "f": 1, "t": 198, "d": [10,182], "a": 1 }, + { "px": [416,80], "src": [224,128], "f": 0, "t": 198, "d": [10,186], "a": 1 }, + { "px": [352,96], "src": [224,128], "f": 1, "t": 198, "d": [10,214], "a": 1 }, + { "px": [416,96], "src": [224,128], "f": 0, "t": 198, "d": [10,218], "a": 1 }, + { "px": [336,112], "src": [224,128], "f": 0, "t": 198, "d": [10,245], "a": 1 }, + { "px": [352,112], "src": [224,128], "f": 1, "t": 198, "d": [10,246], "a": 1 }, + { "px": [416,112], "src": [224,128], "f": 0, "t": 198, "d": [10,250], "a": 1 }, + { "px": [272,176], "src": [224,128], "f": 1, "t": 198, "d": [10,369], "a": 1 }, + { "px": [272,192], "src": [224,128], "f": 1, "t": 198, "d": [10,401], "a": 1 }, + { "px": [480,208], "src": [224,128], "f": 0, "t": 198, "d": [10,446], "a": 1 }, + { "px": [304,224], "src": [224,128], "f": 1, "t": 198, "d": [10,467], "a": 1 }, + { "px": [480,224], "src": [224,128], "f": 0, "t": 198, "d": [10,478], "a": 1 }, + { "px": [304,240], "src": [224,128], "f": 1, "t": 198, "d": [10,499], "a": 1 }, + { "px": [480,240], "src": [224,128], "f": 0, "t": 198, "d": [10,510], "a": 1 }, + { "px": [480,256], "src": [224,128], "f": 0, "t": 198, "d": [10,542], "a": 1 }, + { "px": [432,272], "src": [224,128], "f": 1, "t": 198, "d": [10,571], "a": 1 }, + { "px": [480,272], "src": [224,128], "f": 0, "t": 198, "d": [10,574], "a": 1 }, + { "px": [432,288], "src": [224,128], "f": 1, "t": 198, "d": [10,603], "a": 1 }, + { "px": [480,288], "src": [224,128], "f": 0, "t": 198, "d": [10,606], "a": 1 }, + { "px": [432,304], "src": [224,128], "f": 1, "t": 198, "d": [10,635], "a": 1 }, + { "px": [480,304], "src": [224,128], "f": 0, "t": 198, "d": [10,638], "a": 1 }, + { "px": [432,320], "src": [224,128], "f": 1, "t": 198, "d": [10,667], "a": 1 }, + { "px": [480,320], "src": [224,128], "f": 0, "t": 198, "d": [10,670], "a": 1 }, + { "px": [432,336], "src": [224,128], "f": 1, "t": 198, "d": [10,699], "a": 1 }, + { "px": [480,336], "src": [224,128], "f": 0, "t": 198, "d": [10,702], "a": 1 }, + { "px": [432,352], "src": [224,128], "f": 1, "t": 198, "d": [10,731], "a": 1 }, + { "px": [432,368], "src": [224,128], "f": 1, "t": 198, "d": [10,763], "a": 1 }, + { "px": [432,384], "src": [224,128], "f": 1, "t": 198, "d": [10,795], "a": 1 }, + { "px": [432,400], "src": [224,128], "f": 1, "t": 198, "d": [10,827], "a": 1 }, + { "px": [336,128], "src": [224,96], "f": 2, "t": 152, "d": [11,277], "a": 1 }, + { "px": [416,128], "src": [224,96], "f": 2, "t": 152, "d": [11,282], "a": 1 }, + { "px": [480,192], "src": [224,96], "f": 0, "t": 152, "d": [11,414], "a": 1 }, + { "px": [304,208], "src": [224,96], "f": 1, "t": 152, "d": [11,435], "a": 1 }, + { "px": [480,352], "src": [224,96], "f": 2, "t": 152, "d": [11,734], "a": 1 }, + { "px": [336,96], "src": [224,96], "f": 1, "t": 152, "d": [14,213], "a": 1 }, + { "px": [272,208], "src": [224,96], "f": 2, "t": 152, "d": [14,433], "a": 1 }, + { "px": [304,256], "src": [224,96], "f": 2, "t": 152, "d": [14,531], "a": 1 }, + { "px": [432,416], "src": [224,96], "f": 2, "t": 152, "d": [14,859], "a": 1 }, + { "px": [48,96], "src": [192,192], "f": 0, "t": 288, "d": [78,195], "a": 1 }, + { "px": [64,96], "src": [192,192], "f": 0, "t": 288, "d": [78,196], "a": 1 }, + { "px": [160,96], "src": [192,192], "f": 0, "t": 288, "d": [78,202], "a": 1 }, + { "px": [192,96], "src": [192,192], "f": 0, "t": 288, "d": [78,204], "a": 1 }, + { "px": [240,96], "src": [160,192], "f": 0, "t": 286, "d": [78,207], "a": 1 }, + { "px": [256,96], "src": [192,192], "f": 0, "t": 288, "d": [78,208], "a": 1 }, + { "px": [288,96], "src": [192,192], "f": 0, "t": 288, "d": [78,210], "a": 1 }, + { "px": [352,128], "src": [192,192], "f": 0, "t": 288, "d": [78,278], "a": 1 }, + { "px": [480,128], "src": [192,192], "f": 0, "t": 288, "d": [78,286], "a": 1 }, + { "px": [496,128], "src": [160,192], "f": 0, "t": 286, "d": [78,287], "a": 1 }, + { "px": [0,160], "src": [32,0], "f": 0, "t": 2, "d": [80,320], "a": 1 }, + { "px": [48,160], "src": [32,0], "f": 0, "t": 2, "d": [80,323], "a": 1 }, + { "px": [64,160], "src": [32,0], "f": 0, "t": 2, "d": [80,324], "a": 1 }, + { "px": [80,160], "src": [32,0], "f": 0, "t": 2, "d": [80,325], "a": 1 }, + { "px": [96,160], "src": [32,0], "f": 0, "t": 2, "d": [80,326], "a": 1 }, + { "px": [192,160], "src": [32,0], "f": 0, "t": 2, "d": [80,332], "a": 1 }, + { "px": [208,160], "src": [32,0], "f": 0, "t": 2, "d": [80,333], "a": 1 }, + { "px": [224,160], "src": [32,0], "f": 0, "t": 2, "d": [80,334], "a": 1 }, + { "px": [240,160], "src": [32,0], "f": 0, "t": 2, "d": [80,335], "a": 1 }, + { "px": [256,160], "src": [32,0], "f": 0, "t": 2, "d": [80,336], "a": 1 }, + { "px": [272,160], "src": [32,0], "f": 0, "t": 2, "d": [80,337], "a": 1 }, + { "px": [320,256], "src": [32,0], "f": 0, "t": 2, "d": [80,532], "a": 1 }, + { "px": [336,256], "src": [32,0], "f": 0, "t": 2, "d": [80,533], "a": 1 }, + { "px": [416,256], "src": [32,0], "f": 0, "t": 2, "d": [80,538], "a": 1 }, + { "px": [432,256], "src": [32,0], "f": 0, "t": 2, "d": [80,539], "a": 1 }, + { "px": [448,416], "src": [32,0], "f": 0, "t": 2, "d": [80,860], "a": 1 }, + { "px": [464,416], "src": [32,0], "f": 0, "t": 2, "d": [80,861], "a": 1 }, + { "px": [480,416], "src": [32,0], "f": 0, "t": 2, "d": [80,862], "a": 1 }, + { "px": [496,416], "src": [32,0], "f": 0, "t": 2, "d": [80,863], "a": 1 }, + { "px": [0,144], "src": [32,96], "f": 0, "t": 140, "d": [110,288], "a": 1 }, + { "px": [32,144], "src": [32,96], "f": 0, "t": 140, "d": [110,290], "a": 1 }, + { "px": [112,144], "src": [32,96], "f": 0, "t": 140, "d": [110,295], "a": 1 }, + { "px": [128,144], "src": [32,96], "f": 0, "t": 140, "d": [110,296], "a": 1 }, + { "px": [144,144], "src": [0,96], "f": 0, "t": 138, "d": [110,297], "a": 1 }, + { "px": [272,144], "src": [32,96], "f": 0, "t": 140, "d": [110,305], "a": 1 }, + { "px": [480,176], "src": [32,96], "f": 0, "t": 140, "d": [110,382], "a": 1 }, + { "px": [304,192], "src": [0,96], "f": 0, "t": 138, "d": [110,403], "a": 1 }, + { "px": [320,240], "src": [0,96], "f": 0, "t": 138, "d": [110,500], "a": 1 }, + { "px": [336,240], "src": [32,96], "f": 0, "t": 140, "d": [110,501], "a": 1 }, + { "px": [368,240], "src": [0,96], "f": 0, "t": 138, "d": [110,503], "a": 1 }, + { "px": [384,240], "src": [32,96], "f": 0, "t": 140, "d": [110,504], "a": 1 }, + { "px": [400,240], "src": [32,96], "f": 0, "t": 140, "d": [110,505], "a": 1 }, + { "px": [416,240], "src": [32,96], "f": 0, "t": 140, "d": [110,506], "a": 1 }, + { "px": [432,240], "src": [0,96], "f": 0, "t": 138, "d": [110,507], "a": 1 }, + { "px": [448,400], "src": [32,96], "f": 0, "t": 140, "d": [110,828], "a": 1 }, + { "px": [464,400], "src": [0,96], "f": 0, "t": 138, "d": [110,829], "a": 1 } + ], + "seed": 6011873, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a3688700-66b0-11ec-9cd7-5d0a637306d6", + "levelId": 4, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [384,0], "src": [320,272], "f": 0, "t": 411, "d": [108,24], "a": 1 }, + { "px": [384,16], "src": [320,272], "f": 0, "t": 411, "d": [108,56], "a": 1 }, + { "px": [384,32], "src": [320,272], "f": 0, "t": 411, "d": [108,88], "a": 1 }, + { "px": [384,48], "src": [320,272], "f": 0, "t": 411, "d": [108,120], "a": 1 }, + { "px": [384,64], "src": [320,272], "f": 0, "t": 411, "d": [108,152], "a": 1 }, + { "px": [384,80], "src": [320,272], "f": 0, "t": 411, "d": [108,184], "a": 1 }, + { "px": [384,96], "src": [320,272], "f": 0, "t": 411, "d": [108,216], "a": 1 }, + { "px": [0,112], "src": [320,272], "f": 0, "t": 411, "d": [108,224], "a": 1 }, + { "px": [16,112], "src": [320,272], "f": 0, "t": 411, "d": [108,225], "a": 1 }, + { "px": [32,112], "src": [320,272], "f": 0, "t": 411, "d": [108,226], "a": 1 }, + { "px": [48,112], "src": [320,272], "f": 0, "t": 411, "d": [108,227], "a": 1 }, + { "px": [64,112], "src": [320,272], "f": 0, "t": 411, "d": [108,228], "a": 1 }, + { "px": [96,112], "src": [320,272], "f": 0, "t": 411, "d": [108,230], "a": 1 }, + { "px": [112,112], "src": [320,272], "f": 0, "t": 411, "d": [108,231], "a": 1 }, + { "px": [128,112], "src": [320,272], "f": 0, "t": 411, "d": [108,232], "a": 1 }, + { "px": [144,112], "src": [320,272], "f": 0, "t": 411, "d": [108,233], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [108,235], "a": 1 }, + { "px": [192,112], "src": [320,272], "f": 0, "t": 411, "d": [108,236], "a": 1 }, + { "px": [208,112], "src": [320,272], "f": 0, "t": 411, "d": [108,237], "a": 1 }, + { "px": [224,112], "src": [320,272], "f": 0, "t": 411, "d": [108,238], "a": 1 }, + { "px": [240,112], "src": [320,272], "f": 0, "t": 411, "d": [108,239], "a": 1 }, + { "px": [256,112], "src": [320,272], "f": 0, "t": 411, "d": [108,240], "a": 1 }, + { "px": [272,112], "src": [320,272], "f": 0, "t": 411, "d": [108,241], "a": 1 }, + { "px": [288,112], "src": [320,272], "f": 0, "t": 411, "d": [108,242], "a": 1 }, + { "px": [304,112], "src": [320,272], "f": 0, "t": 411, "d": [108,243], "a": 1 }, + { "px": [384,112], "src": [320,272], "f": 0, "t": 411, "d": [108,248], "a": 1 }, + { "px": [0,128], "src": [320,272], "f": 0, "t": 411, "d": [108,256], "a": 1 }, + { "px": [16,128], "src": [320,272], "f": 0, "t": 411, "d": [108,257], "a": 1 }, + { "px": [32,128], "src": [320,272], "f": 0, "t": 411, "d": [108,258], "a": 1 }, + { "px": [48,128], "src": [320,272], "f": 0, "t": 411, "d": [108,259], "a": 1 }, + { "px": [64,128], "src": [320,272], "f": 0, "t": 411, "d": [108,260], "a": 1 }, + { "px": [80,128], "src": [320,272], "f": 0, "t": 411, "d": [108,261], "a": 1 }, + { "px": [96,128], "src": [320,272], "f": 0, "t": 411, "d": [108,262], "a": 1 }, + { "px": [112,128], "src": [320,272], "f": 0, "t": 411, "d": [108,263], "a": 1 }, + { "px": [128,128], "src": [320,272], "f": 0, "t": 411, "d": [108,264], "a": 1 }, + { "px": [160,128], "src": [320,272], "f": 0, "t": 411, "d": [108,266], "a": 1 }, + { "px": [176,128], "src": [320,272], "f": 0, "t": 411, "d": [108,267], "a": 1 }, + { "px": [192,128], "src": [320,272], "f": 0, "t": 411, "d": [108,268], "a": 1 }, + { "px": [208,128], "src": [320,272], "f": 0, "t": 411, "d": [108,269], "a": 1 }, + { "px": [224,128], "src": [320,272], "f": 0, "t": 411, "d": [108,270], "a": 1 }, + { "px": [256,128], "src": [320,272], "f": 0, "t": 411, "d": [108,272], "a": 1 }, + { "px": [272,128], "src": [320,272], "f": 0, "t": 411, "d": [108,273], "a": 1 }, + { "px": [288,128], "src": [320,272], "f": 0, "t": 411, "d": [108,274], "a": 1 }, + { "px": [304,128], "src": [320,272], "f": 0, "t": 411, "d": [108,275], "a": 1 }, + { "px": [384,128], "src": [320,272], "f": 0, "t": 411, "d": [108,280], "a": 1 }, + { "px": [0,144], "src": [320,272], "f": 0, "t": 411, "d": [108,288], "a": 1 }, + { "px": [16,144], "src": [320,272], "f": 0, "t": 411, "d": [108,289], "a": 1 }, + { "px": [32,144], "src": [320,272], "f": 0, "t": 411, "d": [108,290], "a": 1 }, + { "px": [48,144], "src": [320,272], "f": 0, "t": 411, "d": [108,291], "a": 1 }, + { "px": [64,144], "src": [320,272], "f": 0, "t": 411, "d": [108,292], "a": 1 }, + { "px": [80,144], "src": [320,272], "f": 0, "t": 411, "d": [108,293], "a": 1 }, + { "px": [96,144], "src": [320,272], "f": 0, "t": 411, "d": [108,294], "a": 1 }, + { "px": [112,144], "src": [320,272], "f": 0, "t": 411, "d": [108,295], "a": 1 }, + { "px": [128,144], "src": [320,272], "f": 0, "t": 411, "d": [108,296], "a": 1 }, + { "px": [144,144], "src": [320,272], "f": 0, "t": 411, "d": [108,297], "a": 1 }, + { "px": [160,144], "src": [320,272], "f": 0, "t": 411, "d": [108,298], "a": 1 }, + { "px": [176,144], "src": [320,272], "f": 0, "t": 411, "d": [108,299], "a": 1 }, + { "px": [192,144], "src": [320,272], "f": 0, "t": 411, "d": [108,300], "a": 1 }, + { "px": [208,144], "src": [320,272], "f": 0, "t": 411, "d": [108,301], "a": 1 }, + { "px": [224,144], "src": [320,272], "f": 0, "t": 411, "d": [108,302], "a": 1 }, + { "px": [240,144], "src": [320,272], "f": 0, "t": 411, "d": [108,303], "a": 1 }, + { "px": [256,144], "src": [320,272], "f": 0, "t": 411, "d": [108,304], "a": 1 }, + { "px": [272,144], "src": [320,272], "f": 0, "t": 411, "d": [108,305], "a": 1 }, + { "px": [288,144], "src": [320,272], "f": 0, "t": 411, "d": [108,306], "a": 1 }, + { "px": [304,144], "src": [320,272], "f": 0, "t": 411, "d": [108,307], "a": 1 }, + { "px": [320,144], "src": [320,272], "f": 0, "t": 411, "d": [108,308], "a": 1 }, + { "px": [336,144], "src": [320,272], "f": 0, "t": 411, "d": [108,309], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [108,311], "a": 1 }, + { "px": [384,144], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [400,144], "src": [320,272], "f": 0, "t": 411, "d": [108,313], "a": 1 }, + { "px": [432,144], "src": [320,272], "f": 0, "t": 411, "d": [108,315], "a": 1 }, + { "px": [448,144], "src": [320,272], "f": 0, "t": 411, "d": [108,316], "a": 1 }, + { "px": [464,144], "src": [320,272], "f": 0, "t": 411, "d": [108,317], "a": 1 }, + { "px": [496,144], "src": [320,272], "f": 0, "t": 411, "d": [108,319], "a": 1 }, + { "px": [304,160], "src": [320,272], "f": 0, "t": 411, "d": [108,339], "a": 1 }, + { "px": [320,160], "src": [320,272], "f": 0, "t": 411, "d": [108,340], "a": 1 }, + { "px": [336,160], "src": [320,272], "f": 0, "t": 411, "d": [108,341], "a": 1 }, + { "px": [352,160], "src": [320,272], "f": 0, "t": 411, "d": [108,342], "a": 1 }, + { "px": [384,160], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [400,160], "src": [320,272], "f": 0, "t": 411, "d": [108,345], "a": 1 }, + { "px": [416,160], "src": [320,272], "f": 0, "t": 411, "d": [108,346], "a": 1 }, + { "px": [432,160], "src": [320,272], "f": 0, "t": 411, "d": [108,347], "a": 1 }, + { "px": [448,160], "src": [320,272], "f": 0, "t": 411, "d": [108,348], "a": 1 }, + { "px": [464,160], "src": [320,272], "f": 0, "t": 411, "d": [108,349], "a": 1 }, + { "px": [480,160], "src": [320,272], "f": 0, "t": 411, "d": [108,350], "a": 1 }, + { "px": [496,160], "src": [320,272], "f": 0, "t": 411, "d": [108,351], "a": 1 }, + { "px": [304,176], "src": [320,272], "f": 0, "t": 411, "d": [108,371], "a": 1 }, + { "px": [320,176], "src": [320,272], "f": 0, "t": 411, "d": [108,372], "a": 1 }, + { "px": [336,176], "src": [320,272], "f": 0, "t": 411, "d": [108,373], "a": 1 }, + { "px": [352,176], "src": [320,272], "f": 0, "t": 411, "d": [108,374], "a": 1 }, + { "px": [368,176], "src": [320,272], "f": 0, "t": 411, "d": [108,375], "a": 1 }, + { "px": [384,176], "src": [320,272], "f": 0, "t": 411, "d": [108,376], "a": 1 }, + { "px": [400,176], "src": [320,272], "f": 0, "t": 411, "d": [108,377], "a": 1 }, + { "px": [416,176], "src": [320,272], "f": 0, "t": 411, "d": [108,378], "a": 1 }, + { "px": [432,176], "src": [320,272], "f": 0, "t": 411, "d": [108,379], "a": 1 }, + { "px": [448,176], "src": [320,272], "f": 0, "t": 411, "d": [108,380], "a": 1 }, + { "px": [464,176], "src": [320,272], "f": 0, "t": 411, "d": [108,381], "a": 1 }, + { "px": [480,176], "src": [320,272], "f": 0, "t": 411, "d": [108,382], "a": 1 }, + { "px": [496,176], "src": [320,272], "f": 0, "t": 411, "d": [108,383], "a": 1 }, + { "px": [304,192], "src": [320,272], "f": 0, "t": 411, "d": [108,403], "a": 1 }, + { "px": [320,192], "src": [320,272], "f": 0, "t": 411, "d": [108,404], "a": 1 }, + { "px": [352,192], "src": [320,272], "f": 0, "t": 411, "d": [108,406], "a": 1 }, + { "px": [368,192], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [400,192], "src": [320,272], "f": 0, "t": 411, "d": [108,409], "a": 1 }, + { "px": [416,192], "src": [320,272], "f": 0, "t": 411, "d": [108,410], "a": 1 }, + { "px": [432,192], "src": [320,272], "f": 0, "t": 411, "d": [108,411], "a": 1 }, + { "px": [448,192], "src": [320,272], "f": 0, "t": 411, "d": [108,412], "a": 1 }, + { "px": [336,208], "src": [320,272], "f": 0, "t": 411, "d": [108,437], "a": 1 }, + { "px": [352,208], "src": [320,272], "f": 0, "t": 411, "d": [108,438], "a": 1 }, + { "px": [368,208], "src": [320,272], "f": 0, "t": 411, "d": [108,439], "a": 1 }, + { "px": [384,208], "src": [320,272], "f": 0, "t": 411, "d": [108,440], "a": 1 }, + { "px": [400,208], "src": [320,272], "f": 0, "t": 411, "d": [108,441], "a": 1 }, + { "px": [416,208], "src": [320,272], "f": 0, "t": 411, "d": [108,442], "a": 1 }, + { "px": [432,208], "src": [320,272], "f": 0, "t": 411, "d": [108,443], "a": 1 }, + { "px": [448,208], "src": [320,272], "f": 0, "t": 411, "d": [108,444], "a": 1 }, + { "px": [336,224], "src": [320,272], "f": 0, "t": 411, "d": [108,469], "a": 1 }, + { "px": [352,224], "src": [320,272], "f": 0, "t": 411, "d": [108,470], "a": 1 }, + { "px": [368,224], "src": [320,272], "f": 0, "t": 411, "d": [108,471], "a": 1 }, + { "px": [384,224], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [400,224], "src": [320,272], "f": 0, "t": 411, "d": [108,473], "a": 1 }, + { "px": [432,224], "src": [320,272], "f": 0, "t": 411, "d": [108,475], "a": 1 }, + { "px": [448,224], "src": [320,272], "f": 0, "t": 411, "d": [108,476], "a": 1 }, + { "px": [336,240], "src": [320,272], "f": 0, "t": 411, "d": [108,501], "a": 1 }, + { "px": [352,240], "src": [320,272], "f": 0, "t": 411, "d": [108,502], "a": 1 }, + { "px": [368,240], "src": [320,272], "f": 0, "t": 411, "d": [108,503], "a": 1 }, + { "px": [384,240], "src": [320,272], "f": 0, "t": 411, "d": [108,504], "a": 1 }, + { "px": [400,240], "src": [320,272], "f": 0, "t": 411, "d": [108,505], "a": 1 }, + { "px": [416,240], "src": [320,272], "f": 0, "t": 411, "d": [108,506], "a": 1 }, + { "px": [432,240], "src": [320,272], "f": 0, "t": 411, "d": [108,507], "a": 1 }, + { "px": [448,240], "src": [320,272], "f": 0, "t": 411, "d": [108,508], "a": 1 }, + { "px": [464,368], "src": [320,272], "f": 0, "t": 411, "d": [108,765], "a": 1 }, + { "px": [480,368], "src": [320,272], "f": 0, "t": 411, "d": [108,766], "a": 1 }, + { "px": [496,368], "src": [320,272], "f": 0, "t": 411, "d": [108,767], "a": 1 }, + { "px": [464,384], "src": [320,272], "f": 0, "t": 411, "d": [108,797], "a": 1 }, + { "px": [480,384], "src": [320,272], "f": 0, "t": 411, "d": [108,798], "a": 1 }, + { "px": [496,384], "src": [320,272], "f": 0, "t": 411, "d": [108,799], "a": 1 }, + { "px": [464,400], "src": [320,272], "f": 0, "t": 411, "d": [108,829], "a": 1 }, + { "px": [480,400], "src": [320,272], "f": 0, "t": 411, "d": [108,830], "a": 1 }, + { "px": [496,400], "src": [320,272], "f": 0, "t": 411, "d": [108,831], "a": 1 }, + { "px": [384,0], "src": [256,240], "f": 1, "t": 361, "d": [107,23], "a": 1 }, + { "px": [368,0], "src": [272,240], "f": 1, "t": 362, "d": [107,23], "a": 1 }, + { "px": [384,0], "src": [256,240], "f": 0, "t": 361, "d": [107,25], "a": 1 }, + { "px": [400,0], "src": [272,240], "f": 0, "t": 362, "d": [107,25], "a": 1 }, + { "px": [384,16], "src": [256,240], "f": 1, "t": 361, "d": [107,55], "a": 1 }, + { "px": [368,16], "src": [272,240], "f": 1, "t": 362, "d": [107,55], "a": 1 }, + { "px": [384,16], "src": [256,240], "f": 0, "t": 361, "d": [107,57], "a": 1 }, + { "px": [400,16], "src": [272,240], "f": 0, "t": 362, "d": [107,57], "a": 1 }, + { "px": [384,32], "src": [256,240], "f": 1, "t": 361, "d": [107,87], "a": 1 }, + { "px": [368,32], "src": [272,240], "f": 1, "t": 362, "d": [107,87], "a": 1 }, + { "px": [384,32], "src": [256,240], "f": 0, "t": 361, "d": [107,89], "a": 1 }, + { "px": [400,32], "src": [272,240], "f": 0, "t": 362, "d": [107,89], "a": 1 }, + { "px": [384,48], "src": [256,240], "f": 1, "t": 361, "d": [107,119], "a": 1 }, + { "px": [368,48], "src": [272,240], "f": 1, "t": 362, "d": [107,119], "a": 1 }, + { "px": [384,48], "src": [256,240], "f": 0, "t": 361, "d": [107,121], "a": 1 }, + { "px": [400,48], "src": [272,240], "f": 0, "t": 362, "d": [107,121], "a": 1 }, + { "px": [384,64], "src": [256,240], "f": 1, "t": 361, "d": [107,151], "a": 1 }, + { "px": [368,64], "src": [272,240], "f": 1, "t": 362, "d": [107,151], "a": 1 }, + { "px": [384,64], "src": [256,240], "f": 0, "t": 361, "d": [107,153], "a": 1 }, + { "px": [400,64], "src": [272,240], "f": 0, "t": 362, "d": [107,153], "a": 1 }, + { "px": [384,80], "src": [256,240], "f": 1, "t": 361, "d": [107,183], "a": 1 }, + { "px": [368,80], "src": [272,240], "f": 1, "t": 362, "d": [107,183], "a": 1 }, + { "px": [384,80], "src": [256,240], "f": 0, "t": 361, "d": [107,185], "a": 1 }, + { "px": [400,80], "src": [272,240], "f": 0, "t": 362, "d": [107,185], "a": 1 }, + { "px": [384,96], "src": [256,240], "f": 1, "t": 361, "d": [107,215], "a": 1 }, + { "px": [368,96], "src": [272,240], "f": 1, "t": 362, "d": [107,215], "a": 1 }, + { "px": [384,96], "src": [256,240], "f": 0, "t": 361, "d": [107,217], "a": 1 }, + { "px": [400,96], "src": [272,240], "f": 0, "t": 362, "d": [107,217], "a": 1 }, + { "px": [384,112], "src": [256,240], "f": 1, "t": 361, "d": [107,247], "a": 1 }, + { "px": [368,112], "src": [272,240], "f": 1, "t": 362, "d": [107,247], "a": 1 }, + { "px": [384,112], "src": [256,240], "f": 0, "t": 361, "d": [107,249], "a": 1 }, + { "px": [400,112], "src": [272,240], "f": 0, "t": 362, "d": [107,249], "a": 1 }, + { "px": [304,128], "src": [256,240], "f": 0, "t": 361, "d": [107,276], "a": 1 }, + { "px": [320,128], "src": [272,240], "f": 0, "t": 362, "d": [107,276], "a": 1 }, + { "px": [384,128], "src": [256,240], "f": 1, "t": 361, "d": [107,279], "a": 1 }, + { "px": [368,128], "src": [272,240], "f": 1, "t": 362, "d": [107,279], "a": 1 }, + { "px": [384,128], "src": [256,240], "f": 0, "t": 361, "d": [107,281], "a": 1 }, + { "px": [400,128], "src": [272,240], "f": 0, "t": 362, "d": [107,281], "a": 1 }, + { "px": [304,160], "src": [256,240], "f": 1, "t": 361, "d": [107,338], "a": 1 }, + { "px": [288,160], "src": [272,240], "f": 1, "t": 362, "d": [107,338], "a": 1 }, + { "px": [304,176], "src": [256,240], "f": 1, "t": 361, "d": [107,370], "a": 1 }, + { "px": [288,176], "src": [272,240], "f": 1, "t": 362, "d": [107,370], "a": 1 }, + { "px": [304,192], "src": [256,240], "f": 1, "t": 361, "d": [107,402], "a": 1 }, + { "px": [288,192], "src": [272,240], "f": 1, "t": 362, "d": [107,402], "a": 1 }, + { "px": [448,192], "src": [256,240], "f": 0, "t": 361, "d": [107,413], "a": 1 }, + { "px": [464,192], "src": [272,240], "f": 0, "t": 362, "d": [107,413], "a": 1 }, + { "px": [336,208], "src": [256,240], "f": 1, "t": 361, "d": [107,436], "a": 1 }, + { "px": [320,208], "src": [272,240], "f": 1, "t": 362, "d": [107,436], "a": 1 }, + { "px": [448,208], "src": [256,240], "f": 0, "t": 361, "d": [107,445], "a": 1 }, + { "px": [464,208], "src": [272,240], "f": 0, "t": 362, "d": [107,445], "a": 1 }, + { "px": [336,224], "src": [256,240], "f": 1, "t": 361, "d": [107,468], "a": 1 }, + { "px": [320,224], "src": [272,240], "f": 1, "t": 362, "d": [107,468], "a": 1 }, + { "px": [448,224], "src": [256,240], "f": 0, "t": 361, "d": [107,477], "a": 1 }, + { "px": [464,224], "src": [272,240], "f": 0, "t": 362, "d": [107,477], "a": 1 }, + { "px": [448,240], "src": [256,240], "f": 0, "t": 361, "d": [107,509], "a": 1 }, + { "px": [464,240], "src": [272,240], "f": 0, "t": 362, "d": [107,509], "a": 1 }, + { "px": [464,256], "src": [256,240], "f": 1, "t": 361, "d": [107,540], "a": 1 }, + { "px": [448,256], "src": [272,240], "f": 1, "t": 362, "d": [107,540], "a": 1 }, + { "px": [448,256], "src": [256,240], "f": 0, "t": 361, "d": [107,541], "a": 1 }, + { "px": [464,256], "src": [272,240], "f": 0, "t": 362, "d": [107,541], "a": 1 }, + { "px": [464,272], "src": [256,240], "f": 1, "t": 361, "d": [107,572], "a": 1 }, + { "px": [448,272], "src": [272,240], "f": 1, "t": 362, "d": [107,572], "a": 1 }, + { "px": [448,272], "src": [256,240], "f": 0, "t": 361, "d": [107,573], "a": 1 }, + { "px": [464,272], "src": [272,240], "f": 0, "t": 362, "d": [107,573], "a": 1 }, + { "px": [464,288], "src": [256,240], "f": 1, "t": 361, "d": [107,604], "a": 1 }, + { "px": [448,288], "src": [272,240], "f": 1, "t": 362, "d": [107,604], "a": 1 }, + { "px": [448,288], "src": [256,240], "f": 0, "t": 361, "d": [107,605], "a": 1 }, + { "px": [464,288], "src": [272,240], "f": 0, "t": 362, "d": [107,605], "a": 1 }, + { "px": [464,304], "src": [256,240], "f": 1, "t": 361, "d": [107,636], "a": 1 }, + { "px": [448,304], "src": [272,240], "f": 1, "t": 362, "d": [107,636], "a": 1 }, + { "px": [448,304], "src": [256,240], "f": 0, "t": 361, "d": [107,637], "a": 1 }, + { "px": [464,304], "src": [272,240], "f": 0, "t": 362, "d": [107,637], "a": 1 }, + { "px": [464,320], "src": [256,240], "f": 1, "t": 361, "d": [107,668], "a": 1 }, + { "px": [448,320], "src": [272,240], "f": 1, "t": 362, "d": [107,668], "a": 1 }, + { "px": [448,320], "src": [256,240], "f": 0, "t": 361, "d": [107,669], "a": 1 }, + { "px": [464,320], "src": [272,240], "f": 0, "t": 362, "d": [107,669], "a": 1 }, + { "px": [464,336], "src": [256,240], "f": 1, "t": 361, "d": [107,700], "a": 1 }, + { "px": [448,336], "src": [272,240], "f": 1, "t": 362, "d": [107,700], "a": 1 }, + { "px": [448,336], "src": [256,240], "f": 0, "t": 361, "d": [107,701], "a": 1 }, + { "px": [464,336], "src": [272,240], "f": 0, "t": 362, "d": [107,701], "a": 1 }, + { "px": [464,352], "src": [256,240], "f": 1, "t": 361, "d": [107,732], "a": 1 }, + { "px": [448,352], "src": [272,240], "f": 1, "t": 362, "d": [107,732], "a": 1 }, + { "px": [448,352], "src": [256,240], "f": 0, "t": 361, "d": [107,733], "a": 1 }, + { "px": [464,352], "src": [272,240], "f": 0, "t": 362, "d": [107,733], "a": 1 }, + { "px": [464,368], "src": [256,240], "f": 1, "t": 361, "d": [107,764], "a": 1 }, + { "px": [448,368], "src": [272,240], "f": 1, "t": 362, "d": [107,764], "a": 1 }, + { "px": [464,384], "src": [256,240], "f": 1, "t": 361, "d": [107,796], "a": 1 }, + { "px": [448,384], "src": [272,240], "f": 1, "t": 362, "d": [107,796], "a": 1 }, + { "px": [128,128], "src": [256,240], "f": 0, "t": 361, "d": [105,265], "a": 1 }, + { "px": [144,128], "src": [272,240], "f": 0, "t": 362, "d": [105,265], "a": 1 }, + { "px": [160,128], "src": [288,240], "f": 0, "t": 363, "d": [105,265], "a": 1 }, + { "px": [224,128], "src": [256,240], "f": 0, "t": 361, "d": [105,271], "a": 1 }, + { "px": [240,128], "src": [272,240], "f": 0, "t": 362, "d": [105,271], "a": 1 }, + { "px": [256,128], "src": [288,240], "f": 0, "t": 363, "d": [105,271], "a": 1 }, + { "px": [352,160], "src": [256,240], "f": 0, "t": 361, "d": [105,343], "a": 1 }, + { "px": [368,160], "src": [272,240], "f": 0, "t": 362, "d": [105,343], "a": 1 }, + { "px": [384,160], "src": [288,240], "f": 0, "t": 363, "d": [105,343], "a": 1 }, + { "px": [320,192], "src": [256,240], "f": 0, "t": 361, "d": [105,405], "a": 1 }, + { "px": [336,192], "src": [272,240], "f": 0, "t": 362, "d": [105,405], "a": 1 }, + { "px": [352,192], "src": [288,240], "f": 0, "t": 363, "d": [105,405], "a": 1 }, + { "px": [368,192], "src": [256,240], "f": 0, "t": 361, "d": [105,408], "a": 1 }, + { "px": [384,192], "src": [272,240], "f": 0, "t": 362, "d": [105,408], "a": 1 }, + { "px": [400,192], "src": [288,240], "f": 0, "t": 363, "d": [105,408], "a": 1 }, + { "px": [400,224], "src": [256,240], "f": 0, "t": 361, "d": [105,474], "a": 1 }, + { "px": [416,224], "src": [272,240], "f": 0, "t": 362, "d": [105,474], "a": 1 }, + { "px": [432,224], "src": [288,240], "f": 0, "t": 363, "d": [105,474], "a": 1 }, + { "px": [64,144], "src": [144,240], "f": 2, "t": 354, "d": [112,229], "a": 1 }, + { "px": [64,128], "src": [144,256], "f": 2, "t": 377, "d": [112,229], "a": 1 }, + { "px": [64,112], "src": [144,272], "f": 2, "t": 400, "d": [112,229], "a": 1 }, + { "px": [80,144], "src": [160,240], "f": 2, "t": 355, "d": [112,229], "a": 1 }, + { "px": [80,128], "src": [160,256], "f": 2, "t": 378, "d": [112,229], "a": 1 }, + { "px": [80,112], "src": [160,272], "f": 2, "t": 401, "d": [112,229], "a": 1 }, + { "px": [96,144], "src": [176,240], "f": 2, "t": 356, "d": [112,229], "a": 1 }, + { "px": [96,128], "src": [176,256], "f": 2, "t": 379, "d": [112,229], "a": 1 }, + { "px": [96,112], "src": [176,272], "f": 2, "t": 402, "d": [112,229], "a": 1 }, + { "px": [144,144], "src": [144,240], "f": 2, "t": 354, "d": [112,234], "a": 1 }, + { "px": [144,128], "src": [144,256], "f": 2, "t": 377, "d": [112,234], "a": 1 }, + { "px": [144,112], "src": [144,272], "f": 2, "t": 400, "d": [112,234], "a": 1 }, + { "px": [160,144], "src": [160,240], "f": 2, "t": 355, "d": [112,234], "a": 1 }, + { "px": [160,128], "src": [160,256], "f": 2, "t": 378, "d": [112,234], "a": 1 }, + { "px": [160,112], "src": [160,272], "f": 2, "t": 401, "d": [112,234], "a": 1 }, + { "px": [176,144], "src": [176,240], "f": 2, "t": 356, "d": [112,234], "a": 1 }, + { "px": [176,128], "src": [176,256], "f": 2, "t": 379, "d": [112,234], "a": 1 }, + { "px": [176,112], "src": [176,272], "f": 2, "t": 402, "d": [112,234], "a": 1 }, + { "px": [320,128], "src": [192,304], "f": 3, "t": 449, "d": [113,244], "a": 1 }, + { "px": [320,112], "src": [192,320], "f": 3, "t": 472, "d": [113,244], "a": 1 }, + { "px": [304,128], "src": [208,304], "f": 3, "t": 450, "d": [113,244], "a": 1 }, + { "px": [304,112], "src": [208,320], "f": 3, "t": 473, "d": [113,244], "a": 1 }, + { "px": [288,128], "src": [224,304], "f": 3, "t": 451, "d": [113,244], "a": 1 }, + { "px": [288,112], "src": [224,320], "f": 3, "t": 474, "d": [113,244], "a": 1 }, + { "px": [320,224], "src": [192,304], "f": 0, "t": 449, "d": [113,500], "a": 1 }, + { "px": [320,240], "src": [192,320], "f": 0, "t": 472, "d": [113,500], "a": 1 }, + { "px": [336,224], "src": [208,304], "f": 0, "t": 450, "d": [113,500], "a": 1 }, + { "px": [336,240], "src": [208,320], "f": 0, "t": 473, "d": [113,500], "a": 1 }, + { "px": [352,224], "src": [224,304], "f": 0, "t": 451, "d": [113,500], "a": 1 }, + { "px": [352,240], "src": [224,320], "f": 0, "t": 474, "d": [113,500], "a": 1 }, + { "px": [448,384], "src": [192,304], "f": 0, "t": 449, "d": [113,828], "a": 1 }, + { "px": [448,400], "src": [192,320], "f": 0, "t": 472, "d": [113,828], "a": 1 }, + { "px": [464,384], "src": [208,304], "f": 0, "t": 450, "d": [113,828], "a": 1 }, + { "px": [464,400], "src": [208,320], "f": 0, "t": 473, "d": [113,828], "a": 1 }, + { "px": [480,384], "src": [224,304], "f": 0, "t": 451, "d": [113,828], "a": 1 }, + { "px": [480,400], "src": [224,320], "f": 0, "t": 474, "d": [113,828], "a": 1 }, + { "px": [416,144], "src": [128,224], "f": 0, "t": 330, "d": [114,314], "a": 1 }, + { "px": [480,144], "src": [96,208], "f": 0, "t": 305, "d": [114,318], "a": 1 } + ], + "seed": 9114910, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a367c3b0-66b0-11ec-9cd7-91690c910c97", "dir": "n" }, { "levelIid": "a36a34b0-66b0-11ec-9cd7-09ebc042e238", "dir": "w" }, { "levelIid": "a36fda00-66b0-11ec-9cd7-ffa8f8d0b484", "dir": "e" }, { "levelIid": "07caf540-66b0-11ec-a595-a55a7e13679d", "dir": "e" } ] + }, + { + "identifier": "Ossuary", + "iid": "a368fc30-66b0-11ec-9cd7-d141af83d44b", + "uid": 65, + "worldX": -1024, + "worldY": 0, + "worldDepth": 0, + "pxWid": 512, + "pxHei": 768, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a368fc35-66b0-11ec-9cd7-af2d845c740f", + "levelId": 65, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 6779321, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Item", + "__grid": [15,41], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 0, "y": 640, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a368fc36-66b0-11ec-9cd7-d54493e15d01", + "width": 24, + "height": 24, + "defUid": 72, + "px": [248,672], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Armor", "__tile": { "tilesetUid": 133, "x": 0, "y": 640, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Armor"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [7,41], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 208, "y": 432, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a368fc37-66b0-11ec-9cd7-6da7cb2a925d", + "width": 24, + "height": 24, + "defUid": 72, + "px": [120,672], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Fire_blade", "__tile": { "tilesetUid": 133, "x": 208, "y": 432, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Fire_blade"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Ladder", + "__grid": [21,36], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "b58d0c40-66b0-11ec-9ccd-71b951d72c41", + "width": 16, + "height": 96, + "defUid": 134, + "px": [336,576], + "fieldInstances": [] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a368fc38-66b0-11ec-9cd7-3fdf9a637a15", + "levelId": 65, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [448,112], "src": [320,128], "f": 0, "t": 204, "d": [26,252], "a": 1 }, + { "px": [448,144], "src": [320,128], "f": 0, "t": 204, "d": [26,316], "a": 1 }, + { "px": [448,160], "src": [320,128], "f": 0, "t": 204, "d": [26,348], "a": 1 }, + { "px": [448,176], "src": [320,128], "f": 0, "t": 204, "d": [26,380], "a": 1 }, + { "px": [448,192], "src": [320,128], "f": 0, "t": 204, "d": [26,412], "a": 1 }, + { "px": [448,208], "src": [320,128], "f": 0, "t": 204, "d": [26,444], "a": 1 }, + { "px": [448,224], "src": [320,128], "f": 0, "t": 204, "d": [26,476], "a": 1 }, + { "px": [448,240], "src": [320,128], "f": 0, "t": 204, "d": [26,508], "a": 1 }, + { "px": [448,256], "src": [320,128], "f": 0, "t": 204, "d": [26,540], "a": 1 }, + { "px": [448,272], "src": [320,128], "f": 0, "t": 204, "d": [26,572], "a": 1 }, + { "px": [448,288], "src": [320,128], "f": 0, "t": 204, "d": [26,604], "a": 1 }, + { "px": [448,304], "src": [320,128], "f": 0, "t": 204, "d": [26,636], "a": 1 }, + { "px": [448,320], "src": [320,128], "f": 0, "t": 204, "d": [26,668], "a": 1 }, + { "px": [448,336], "src": [320,128], "f": 0, "t": 204, "d": [26,700], "a": 1 }, + { "px": [448,352], "src": [320,128], "f": 0, "t": 204, "d": [26,732], "a": 1 }, + { "px": [448,368], "src": [320,128], "f": 0, "t": 204, "d": [26,764], "a": 1 }, + { "px": [448,384], "src": [320,128], "f": 0, "t": 204, "d": [26,796], "a": 1 }, + { "px": [384,400], "src": [320,128], "f": 0, "t": 204, "d": [26,824], "a": 1 }, + { "px": [384,416], "src": [320,128], "f": 0, "t": 204, "d": [26,856], "a": 1 }, + { "px": [64,432], "src": [320,128], "f": 0, "t": 204, "d": [26,868], "a": 1 }, + { "px": [80,432], "src": [320,128], "f": 1, "t": 204, "d": [26,869], "a": 1 }, + { "px": [128,432], "src": [320,128], "f": 0, "t": 204, "d": [26,872], "a": 1 }, + { "px": [144,432], "src": [320,128], "f": 1, "t": 204, "d": [26,873], "a": 1 }, + { "px": [192,432], "src": [320,128], "f": 0, "t": 204, "d": [26,876], "a": 1 }, + { "px": [208,432], "src": [320,128], "f": 1, "t": 204, "d": [26,877], "a": 1 }, + { "px": [256,432], "src": [320,128], "f": 0, "t": 204, "d": [26,880], "a": 1 }, + { "px": [272,432], "src": [320,128], "f": 1, "t": 204, "d": [26,881], "a": 1 }, + { "px": [320,432], "src": [320,128], "f": 0, "t": 204, "d": [26,884], "a": 1 }, + { "px": [336,432], "src": [320,128], "f": 1, "t": 204, "d": [26,885], "a": 1 }, + { "px": [384,432], "src": [320,128], "f": 0, "t": 204, "d": [26,888], "a": 1 }, + { "px": [64,448], "src": [320,128], "f": 0, "t": 204, "d": [26,900], "a": 1 }, + { "px": [80,448], "src": [320,128], "f": 1, "t": 204, "d": [26,901], "a": 1 }, + { "px": [128,448], "src": [320,128], "f": 0, "t": 204, "d": [26,904], "a": 1 }, + { "px": [144,448], "src": [320,128], "f": 1, "t": 204, "d": [26,905], "a": 1 }, + { "px": [192,448], "src": [320,128], "f": 0, "t": 204, "d": [26,908], "a": 1 }, + { "px": [208,448], "src": [320,128], "f": 1, "t": 204, "d": [26,909], "a": 1 }, + { "px": [256,448], "src": [320,128], "f": 0, "t": 204, "d": [26,912], "a": 1 }, + { "px": [272,448], "src": [320,128], "f": 1, "t": 204, "d": [26,913], "a": 1 }, + { "px": [320,448], "src": [320,128], "f": 0, "t": 204, "d": [26,916], "a": 1 }, + { "px": [336,448], "src": [320,128], "f": 1, "t": 204, "d": [26,917], "a": 1 }, + { "px": [384,448], "src": [320,128], "f": 0, "t": 204, "d": [26,920], "a": 1 }, + { "px": [64,464], "src": [320,128], "f": 0, "t": 204, "d": [26,932], "a": 1 }, + { "px": [448,464], "src": [320,128], "f": 1, "t": 204, "d": [26,956], "a": 1 }, + { "px": [64,480], "src": [320,128], "f": 0, "t": 204, "d": [26,964], "a": 1 }, + { "px": [448,480], "src": [320,128], "f": 1, "t": 204, "d": [26,988], "a": 1 }, + { "px": [64,496], "src": [320,128], "f": 0, "t": 204, "d": [26,996], "a": 1 }, + { "px": [448,496], "src": [320,128], "f": 1, "t": 204, "d": [26,1020], "a": 1 }, + { "px": [64,512], "src": [320,128], "f": 0, "t": 204, "d": [26,1028], "a": 1 }, + { "px": [64,528], "src": [320,128], "f": 0, "t": 204, "d": [26,1060], "a": 1 }, + { "px": [368,528], "src": [320,128], "f": 1, "t": 204, "d": [26,1079], "a": 1 }, + { "px": [64,544], "src": [320,128], "f": 0, "t": 204, "d": [26,1092], "a": 1 }, + { "px": [368,544], "src": [320,128], "f": 1, "t": 204, "d": [26,1111], "a": 1 }, + { "px": [64,560], "src": [320,128], "f": 0, "t": 204, "d": [26,1124], "a": 1 }, + { "px": [368,560], "src": [320,128], "f": 1, "t": 204, "d": [26,1143], "a": 1 }, + { "px": [64,576], "src": [320,128], "f": 0, "t": 204, "d": [26,1156], "a": 1 }, + { "px": [64,592], "src": [320,128], "f": 0, "t": 204, "d": [26,1188], "a": 1 }, + { "px": [368,592], "src": [320,128], "f": 1, "t": 204, "d": [26,1207], "a": 1 }, + { "px": [64,608], "src": [320,128], "f": 0, "t": 204, "d": [26,1220], "a": 1 }, + { "px": [368,608], "src": [320,128], "f": 1, "t": 204, "d": [26,1239], "a": 1 }, + { "px": [64,624], "src": [320,128], "f": 0, "t": 204, "d": [26,1252], "a": 1 }, + { "px": [368,624], "src": [320,128], "f": 1, "t": 204, "d": [26,1271], "a": 1 }, + { "px": [64,640], "src": [320,128], "f": 0, "t": 204, "d": [26,1284], "a": 1 }, + { "px": [368,640], "src": [320,128], "f": 1, "t": 204, "d": [26,1303], "a": 1 }, + { "px": [64,656], "src": [320,128], "f": 0, "t": 204, "d": [26,1316], "a": 1 }, + { "px": [368,656], "src": [320,128], "f": 1, "t": 204, "d": [26,1335], "a": 1 }, + { "px": [448,128], "src": [320,96], "f": 1, "t": 158, "d": [138,284], "a": 1 }, + { "px": [448,448], "src": [320,96], "f": 1, "t": 158, "d": [138,924], "a": 1 }, + { "px": [368,512], "src": [320,96], "f": 1, "t": 158, "d": [138,1047], "a": 1 }, + { "px": [336,576], "src": [320,96], "f": 1, "t": 158, "d": [138,1173], "a": 1 }, + { "px": [448,112], "src": [336,112], "f": 0, "t": 182, "d": [27,252], "a": 1 }, + { "px": [464,112], "src": [336,112], "f": 0, "t": 182, "d": [27,253], "a": 1 }, + { "px": [480,112], "src": [336,112], "f": 0, "t": 182, "d": [27,254], "a": 1 }, + { "px": [496,112], "src": [336,112], "f": 0, "t": 182, "d": [27,255], "a": 1 }, + { "px": [384,400], "src": [336,112], "f": 0, "t": 182, "d": [27,824], "a": 1 }, + { "px": [400,400], "src": [336,112], "f": 0, "t": 182, "d": [27,825], "a": 1 }, + { "px": [416,400], "src": [336,112], "f": 0, "t": 182, "d": [27,826], "a": 1 }, + { "px": [432,400], "src": [336,112], "f": 0, "t": 182, "d": [27,827], "a": 1 }, + { "px": [464,400], "src": [336,112], "f": 0, "t": 182, "d": [27,829], "a": 1 }, + { "px": [480,400], "src": [336,112], "f": 0, "t": 182, "d": [27,830], "a": 1 }, + { "px": [496,400], "src": [336,112], "f": 0, "t": 182, "d": [27,831], "a": 1 }, + { "px": [64,432], "src": [336,112], "f": 0, "t": 182, "d": [27,868], "a": 1 }, + { "px": [80,432], "src": [336,112], "f": 0, "t": 182, "d": [27,869], "a": 1 }, + { "px": [128,432], "src": [336,112], "f": 0, "t": 182, "d": [27,872], "a": 1 }, + { "px": [144,432], "src": [336,112], "f": 0, "t": 182, "d": [27,873], "a": 1 }, + { "px": [192,432], "src": [336,112], "f": 0, "t": 182, "d": [27,876], "a": 1 }, + { "px": [208,432], "src": [336,112], "f": 0, "t": 182, "d": [27,877], "a": 1 }, + { "px": [256,432], "src": [336,112], "f": 0, "t": 182, "d": [27,880], "a": 1 }, + { "px": [272,432], "src": [336,112], "f": 0, "t": 182, "d": [27,881], "a": 1 }, + { "px": [320,432], "src": [336,112], "f": 0, "t": 182, "d": [27,884], "a": 1 }, + { "px": [336,432], "src": [336,112], "f": 0, "t": 182, "d": [27,885], "a": 1 }, + { "px": [96,464], "src": [336,112], "f": 0, "t": 182, "d": [27,934], "a": 1 }, + { "px": [112,464], "src": [336,112], "f": 0, "t": 182, "d": [27,935], "a": 1 }, + { "px": [160,464], "src": [336,112], "f": 0, "t": 182, "d": [27,938], "a": 1 }, + { "px": [176,464], "src": [336,112], "f": 0, "t": 182, "d": [27,939], "a": 1 }, + { "px": [224,464], "src": [336,112], "f": 0, "t": 182, "d": [27,942], "a": 1 }, + { "px": [240,464], "src": [336,112], "f": 0, "t": 182, "d": [27,943], "a": 1 }, + { "px": [288,464], "src": [336,112], "f": 0, "t": 182, "d": [27,946], "a": 1 }, + { "px": [304,464], "src": [336,112], "f": 0, "t": 182, "d": [27,947], "a": 1 }, + { "px": [352,464], "src": [336,112], "f": 0, "t": 182, "d": [27,950], "a": 1 }, + { "px": [368,464], "src": [336,112], "f": 0, "t": 182, "d": [27,951], "a": 1 }, + { "px": [352,592], "src": [336,112], "f": 0, "t": 182, "d": [27,1206], "a": 1 }, + { "px": [368,592], "src": [336,112], "f": 0, "t": 182, "d": [27,1207], "a": 1 }, + { "px": [448,400], "src": [320,112], "f": 0, "t": 181, "d": [137,828], "a": 1 }, + { "px": [80,464], "src": [320,112], "f": 1, "t": 181, "d": [137,933], "a": 1 }, + { "px": [128,464], "src": [320,112], "f": 0, "t": 181, "d": [137,936], "a": 1 }, + { "px": [144,464], "src": [320,112], "f": 1, "t": 181, "d": [137,937], "a": 1 }, + { "px": [192,464], "src": [320,112], "f": 0, "t": 181, "d": [137,940], "a": 1 }, + { "px": [208,464], "src": [320,112], "f": 1, "t": 181, "d": [137,941], "a": 1 }, + { "px": [256,464], "src": [320,112], "f": 0, "t": 181, "d": [137,944], "a": 1 }, + { "px": [272,464], "src": [320,112], "f": 1, "t": 181, "d": [137,945], "a": 1 }, + { "px": [320,464], "src": [320,112], "f": 0, "t": 181, "d": [137,948], "a": 1 }, + { "px": [336,464], "src": [320,112], "f": 1, "t": 181, "d": [137,949], "a": 1 }, + { "px": [384,464], "src": [320,112], "f": 0, "t": 181, "d": [137,952], "a": 1 }, + { "px": [336,592], "src": [320,112], "f": 1, "t": 181, "d": [137,1205], "a": 1 } + ], + "seed": 5084082, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a368fc39-66b0-11ec-9cd7-c9b9402c11e4", + "levelId": 65, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1, + 1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,0,0, + 1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, + 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [400,64], "src": [32,32], "f": 0, "t": 48, "d": [8,153], "a": 1 }, + { "px": [432,64], "src": [32,32], "f": 0, "t": 48, "d": [8,155], "a": 1 }, + { "px": [464,64], "src": [32,32], "f": 0, "t": 48, "d": [8,157], "a": 1 }, + { "px": [416,80], "src": [32,32], "f": 0, "t": 48, "d": [8,186], "a": 1 }, + { "px": [480,80], "src": [32,32], "f": 0, "t": 48, "d": [8,190], "a": 1 }, + { "px": [416,144], "src": [32,32], "f": 0, "t": 48, "d": [8,314], "a": 1 }, + { "px": [480,144], "src": [32,32], "f": 0, "t": 48, "d": [8,318], "a": 1 }, + { "px": [400,160], "src": [32,32], "f": 0, "t": 48, "d": [8,345], "a": 1 }, + { "px": [416,176], "src": [32,32], "f": 0, "t": 48, "d": [8,378], "a": 1 }, + { "px": [400,192], "src": [32,32], "f": 0, "t": 48, "d": [8,409], "a": 1 }, + { "px": [416,208], "src": [32,32], "f": 0, "t": 48, "d": [8,442], "a": 1 }, + { "px": [480,208], "src": [32,32], "f": 0, "t": 48, "d": [8,446], "a": 1 }, + { "px": [400,224], "src": [32,32], "f": 0, "t": 48, "d": [8,473], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [8,479], "a": 1 }, + { "px": [416,240], "src": [32,32], "f": 0, "t": 48, "d": [8,506], "a": 1 }, + { "px": [416,272], "src": [32,32], "f": 0, "t": 48, "d": [8,570], "a": 1 }, + { "px": [496,288], "src": [32,32], "f": 0, "t": 48, "d": [8,607], "a": 1 }, + { "px": [416,304], "src": [32,32], "f": 0, "t": 48, "d": [8,634], "a": 1 }, + { "px": [480,304], "src": [32,32], "f": 0, "t": 48, "d": [8,638], "a": 1 }, + { "px": [416,336], "src": [32,32], "f": 0, "t": 48, "d": [8,698], "a": 1 }, + { "px": [480,336], "src": [32,32], "f": 0, "t": 48, "d": [8,702], "a": 1 }, + { "px": [336,352], "src": [32,32], "f": 0, "t": 48, "d": [8,725], "a": 1 }, + { "px": [368,352], "src": [32,32], "f": 0, "t": 48, "d": [8,727], "a": 1 }, + { "px": [496,352], "src": [32,32], "f": 0, "t": 48, "d": [8,735], "a": 1 }, + { "px": [352,368], "src": [32,32], "f": 0, "t": 48, "d": [8,758], "a": 1 }, + { "px": [480,368], "src": [32,32], "f": 0, "t": 48, "d": [8,766], "a": 1 }, + { "px": [16,384], "src": [32,32], "f": 0, "t": 48, "d": [8,769], "a": 1 }, + { "px": [48,384], "src": [32,32], "f": 0, "t": 48, "d": [8,771], "a": 1 }, + { "px": [112,384], "src": [32,32], "f": 0, "t": 48, "d": [8,775], "a": 1 }, + { "px": [144,384], "src": [32,32], "f": 0, "t": 48, "d": [8,777], "a": 1 }, + { "px": [176,384], "src": [32,32], "f": 0, "t": 48, "d": [8,779], "a": 1 }, + { "px": [240,384], "src": [32,32], "f": 0, "t": 48, "d": [8,783], "a": 1 }, + { "px": [336,384], "src": [32,32], "f": 0, "t": 48, "d": [8,789], "a": 1 }, + { "px": [64,400], "src": [32,32], "f": 0, "t": 48, "d": [8,804], "a": 1 }, + { "px": [96,400], "src": [32,32], "f": 0, "t": 48, "d": [8,806], "a": 1 }, + { "px": [128,400], "src": [32,32], "f": 0, "t": 48, "d": [8,808], "a": 1 }, + { "px": [192,400], "src": [32,32], "f": 0, "t": 48, "d": [8,812], "a": 1 }, + { "px": [320,400], "src": [32,32], "f": 0, "t": 48, "d": [8,820], "a": 1 }, + { "px": [352,400], "src": [32,32], "f": 0, "t": 48, "d": [8,822], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [8,897], "a": 1 }, + { "px": [480,464], "src": [32,32], "f": 0, "t": 48, "d": [8,958], "a": 1 }, + { "px": [16,512], "src": [32,32], "f": 0, "t": 48, "d": [8,1025], "a": 1 }, + { "px": [416,528], "src": [32,32], "f": 0, "t": 48, "d": [8,1082], "a": 1 }, + { "px": [448,528], "src": [32,32], "f": 0, "t": 48, "d": [8,1084], "a": 1 }, + { "px": [16,544], "src": [32,32], "f": 0, "t": 48, "d": [8,1089], "a": 1 }, + { "px": [432,544], "src": [32,32], "f": 0, "t": 48, "d": [8,1115], "a": 1 }, + { "px": [416,560], "src": [32,32], "f": 0, "t": 48, "d": [8,1146], "a": 1 }, + { "px": [16,576], "src": [32,32], "f": 0, "t": 48, "d": [8,1153], "a": 1 }, + { "px": [400,576], "src": [32,32], "f": 0, "t": 48, "d": [8,1177], "a": 1 }, + { "px": [32,592], "src": [32,32], "f": 0, "t": 48, "d": [8,1186], "a": 1 }, + { "px": [416,592], "src": [32,32], "f": 0, "t": 48, "d": [8,1210], "a": 1 }, + { "px": [16,608], "src": [32,32], "f": 0, "t": 48, "d": [8,1217], "a": 1 }, + { "px": [400,608], "src": [32,32], "f": 0, "t": 48, "d": [8,1241], "a": 1 }, + { "px": [416,624], "src": [32,32], "f": 0, "t": 48, "d": [8,1274], "a": 1 }, + { "px": [16,640], "src": [32,32], "f": 0, "t": 48, "d": [8,1281], "a": 1 }, + { "px": [32,656], "src": [32,32], "f": 0, "t": 48, "d": [8,1314], "a": 1 }, + { "px": [16,672], "src": [32,32], "f": 0, "t": 48, "d": [8,1345], "a": 1 }, + { "px": [64,688], "src": [32,32], "f": 0, "t": 48, "d": [8,1380], "a": 1 }, + { "px": [96,688], "src": [32,32], "f": 0, "t": 48, "d": [8,1382], "a": 1 }, + { "px": [160,688], "src": [32,32], "f": 0, "t": 48, "d": [8,1386], "a": 1 }, + { "px": [192,688], "src": [32,32], "f": 0, "t": 48, "d": [8,1388], "a": 1 }, + { "px": [288,688], "src": [32,32], "f": 0, "t": 48, "d": [8,1394], "a": 1 }, + { "px": [320,688], "src": [32,32], "f": 0, "t": 48, "d": [8,1396], "a": 1 }, + { "px": [352,688], "src": [32,32], "f": 0, "t": 48, "d": [8,1398], "a": 1 }, + { "px": [384,688], "src": [32,32], "f": 0, "t": 48, "d": [8,1400], "a": 1 }, + { "px": [112,704], "src": [32,32], "f": 0, "t": 48, "d": [8,1415], "a": 1 }, + { "px": [144,704], "src": [32,32], "f": 0, "t": 48, "d": [8,1417], "a": 1 }, + { "px": [176,704], "src": [32,32], "f": 0, "t": 48, "d": [8,1419], "a": 1 }, + { "px": [208,704], "src": [32,32], "f": 0, "t": 48, "d": [8,1421], "a": 1 }, + { "px": [272,704], "src": [32,32], "f": 0, "t": 48, "d": [8,1425], "a": 1 }, + { "px": [336,704], "src": [32,32], "f": 0, "t": 48, "d": [8,1429], "a": 1 }, + { "px": [368,704], "src": [32,32], "f": 0, "t": 48, "d": [8,1431], "a": 1 }, + { "px": [400,704], "src": [32,32], "f": 0, "t": 48, "d": [8,1433], "a": 1 }, + { "px": [496,64], "src": [96,96], "f": 0, "t": 144, "d": [83,159], "a": 1 }, + { "px": [448,80], "src": [64,96], "f": 0, "t": 142, "d": [83,188], "a": 1 }, + { "px": [400,96], "src": [96,96], "f": 0, "t": 144, "d": [83,217], "a": 1 }, + { "px": [416,112], "src": [96,96], "f": 0, "t": 144, "d": [83,250], "a": 1 }, + { "px": [400,128], "src": [64,96], "f": 0, "t": 142, "d": [83,281], "a": 1 }, + { "px": [496,160], "src": [64,96], "f": 0, "t": 142, "d": [83,351], "a": 1 }, + { "px": [480,176], "src": [64,96], "f": 0, "t": 142, "d": [83,382], "a": 1 }, + { "px": [496,192], "src": [64,96], "f": 0, "t": 142, "d": [83,415], "a": 1 }, + { "px": [480,240], "src": [96,96], "f": 0, "t": 144, "d": [83,510], "a": 1 }, + { "px": [400,256], "src": [64,96], "f": 0, "t": 142, "d": [83,537], "a": 1 }, + { "px": [496,256], "src": [64,96], "f": 0, "t": 142, "d": [83,543], "a": 1 }, + { "px": [480,272], "src": [64,96], "f": 0, "t": 142, "d": [83,574], "a": 1 }, + { "px": [400,288], "src": [96,96], "f": 0, "t": 144, "d": [83,601], "a": 1 }, + { "px": [400,320], "src": [64,96], "f": 0, "t": 142, "d": [83,665], "a": 1 }, + { "px": [496,320], "src": [96,96], "f": 0, "t": 144, "d": [83,671], "a": 1 }, + { "px": [400,352], "src": [96,96], "f": 0, "t": 144, "d": [83,729], "a": 1 }, + { "px": [384,368], "src": [96,96], "f": 0, "t": 144, "d": [83,760], "a": 1 }, + { "px": [416,368], "src": [96,96], "f": 0, "t": 144, "d": [83,762], "a": 1 }, + { "px": [80,384], "src": [96,96], "f": 0, "t": 144, "d": [83,773], "a": 1 }, + { "px": [208,384], "src": [96,96], "f": 0, "t": 144, "d": [83,781], "a": 1 }, + { "px": [272,384], "src": [96,96], "f": 0, "t": 144, "d": [83,785], "a": 1 }, + { "px": [304,384], "src": [96,96], "f": 0, "t": 144, "d": [83,787], "a": 1 }, + { "px": [32,400], "src": [96,96], "f": 0, "t": 144, "d": [83,802], "a": 1 }, + { "px": [160,400], "src": [96,96], "f": 0, "t": 144, "d": [83,810], "a": 1 }, + { "px": [224,400], "src": [96,96], "f": 0, "t": 144, "d": [83,814], "a": 1 }, + { "px": [256,400], "src": [64,96], "f": 0, "t": 142, "d": [83,816], "a": 1 }, + { "px": [288,400], "src": [96,96], "f": 0, "t": 144, "d": [83,818], "a": 1 }, + { "px": [16,416], "src": [64,96], "f": 0, "t": 142, "d": [83,833], "a": 1 }, + { "px": [32,432], "src": [96,96], "f": 0, "t": 144, "d": [83,866], "a": 1 }, + { "px": [32,464], "src": [96,96], "f": 0, "t": 144, "d": [83,930], "a": 1 }, + { "px": [16,480], "src": [96,96], "f": 0, "t": 144, "d": [83,961], "a": 1 }, + { "px": [496,480], "src": [64,96], "f": 0, "t": 142, "d": [83,991], "a": 1 }, + { "px": [32,496], "src": [64,96], "f": 0, "t": 142, "d": [83,994], "a": 1 }, + { "px": [480,496], "src": [64,96], "f": 0, "t": 142, "d": [83,1022], "a": 1 }, + { "px": [496,512], "src": [64,96], "f": 0, "t": 142, "d": [83,1055], "a": 1 }, + { "px": [32,528], "src": [64,96], "f": 0, "t": 142, "d": [83,1058], "a": 1 }, + { "px": [480,528], "src": [64,96], "f": 0, "t": 142, "d": [83,1086], "a": 1 }, + { "px": [400,544], "src": [96,96], "f": 0, "t": 144, "d": [83,1113], "a": 1 }, + { "px": [464,544], "src": [96,96], "f": 0, "t": 144, "d": [83,1117], "a": 1 }, + { "px": [496,544], "src": [64,96], "f": 0, "t": 142, "d": [83,1119], "a": 1 }, + { "px": [32,560], "src": [96,96], "f": 0, "t": 144, "d": [83,1122], "a": 1 }, + { "px": [32,624], "src": [64,96], "f": 0, "t": 142, "d": [83,1250], "a": 1 }, + { "px": [400,640], "src": [64,96], "f": 0, "t": 142, "d": [83,1305], "a": 1 }, + { "px": [416,656], "src": [96,96], "f": 0, "t": 144, "d": [83,1338], "a": 1 }, + { "px": [400,672], "src": [96,96], "f": 0, "t": 144, "d": [83,1369], "a": 1 }, + { "px": [32,688], "src": [96,96], "f": 0, "t": 144, "d": [83,1378], "a": 1 }, + { "px": [128,688], "src": [64,96], "f": 0, "t": 142, "d": [83,1384], "a": 1 }, + { "px": [224,688], "src": [96,96], "f": 0, "t": 144, "d": [83,1390], "a": 1 }, + { "px": [256,688], "src": [64,96], "f": 0, "t": 142, "d": [83,1392], "a": 1 }, + { "px": [416,688], "src": [96,96], "f": 0, "t": 144, "d": [83,1402], "a": 1 }, + { "px": [16,704], "src": [96,96], "f": 0, "t": 144, "d": [83,1409], "a": 1 }, + { "px": [48,704], "src": [64,96], "f": 0, "t": 142, "d": [83,1411], "a": 1 }, + { "px": [80,704], "src": [64,96], "f": 0, "t": 142, "d": [83,1413], "a": 1 }, + { "px": [240,704], "src": [64,96], "f": 0, "t": 142, "d": [83,1423], "a": 1 }, + { "px": [304,704], "src": [96,96], "f": 0, "t": 144, "d": [83,1427], "a": 1 }, + { "px": [416,64], "src": [192,16], "f": 0, "t": 35, "d": [101,154], "a": 1 }, + { "px": [448,64], "src": [224,96], "f": 0, "t": 152, "d": [101,156], "a": 1 }, + { "px": [480,64], "src": [224,96], "f": 0, "t": 152, "d": [101,158], "a": 1 }, + { "px": [400,80], "src": [96,0], "f": 0, "t": 6, "d": [101,185], "a": 1 }, + { "px": [432,80], "src": [224,96], "f": 0, "t": 152, "d": [101,187], "a": 1 }, + { "px": [464,80], "src": [224,96], "f": 0, "t": 152, "d": [101,189], "a": 1 }, + { "px": [496,80], "src": [192,16], "f": 0, "t": 35, "d": [101,191], "a": 1 }, + { "px": [416,96], "src": [96,0], "f": 0, "t": 6, "d": [101,218], "a": 1 }, + { "px": [400,112], "src": [96,0], "f": 0, "t": 6, "d": [101,249], "a": 1 }, + { "px": [416,128], "src": [224,96], "f": 0, "t": 152, "d": [101,282], "a": 1 }, + { "px": [400,144], "src": [192,16], "f": 0, "t": 35, "d": [101,313], "a": 1 }, + { "px": [496,144], "src": [192,16], "f": 0, "t": 35, "d": [101,319], "a": 1 }, + { "px": [416,160], "src": [224,96], "f": 0, "t": 152, "d": [101,346], "a": 1 }, + { "px": [480,160], "src": [224,96], "f": 0, "t": 152, "d": [101,350], "a": 1 }, + { "px": [400,176], "src": [224,96], "f": 0, "t": 152, "d": [101,377], "a": 1 }, + { "px": [496,176], "src": [96,0], "f": 0, "t": 6, "d": [101,383], "a": 1 }, + { "px": [416,192], "src": [224,96], "f": 0, "t": 152, "d": [101,410], "a": 1 }, + { "px": [480,192], "src": [192,16], "f": 0, "t": 35, "d": [101,414], "a": 1 }, + { "px": [400,208], "src": [192,16], "f": 0, "t": 35, "d": [101,441], "a": 1 }, + { "px": [496,208], "src": [224,96], "f": 0, "t": 152, "d": [101,447], "a": 1 }, + { "px": [416,224], "src": [96,0], "f": 0, "t": 6, "d": [101,474], "a": 1 }, + { "px": [480,224], "src": [96,0], "f": 0, "t": 6, "d": [101,478], "a": 1 }, + { "px": [400,240], "src": [224,96], "f": 0, "t": 152, "d": [101,505], "a": 1 }, + { "px": [496,240], "src": [192,16], "f": 0, "t": 35, "d": [101,511], "a": 1 }, + { "px": [416,256], "src": [96,0], "f": 0, "t": 6, "d": [101,538], "a": 1 }, + { "px": [480,256], "src": [192,16], "f": 0, "t": 35, "d": [101,542], "a": 1 }, + { "px": [400,272], "src": [224,96], "f": 0, "t": 152, "d": [101,569], "a": 1 }, + { "px": [496,272], "src": [192,16], "f": 0, "t": 35, "d": [101,575], "a": 1 }, + { "px": [416,288], "src": [192,16], "f": 0, "t": 35, "d": [101,602], "a": 1 }, + { "px": [480,288], "src": [224,96], "f": 0, "t": 152, "d": [101,606], "a": 1 }, + { "px": [400,304], "src": [96,0], "f": 0, "t": 6, "d": [101,633], "a": 1 }, + { "px": [496,304], "src": [192,16], "f": 0, "t": 35, "d": [101,639], "a": 1 }, + { "px": [416,320], "src": [192,16], "f": 0, "t": 35, "d": [101,666], "a": 1 }, + { "px": [480,320], "src": [96,0], "f": 0, "t": 6, "d": [101,670], "a": 1 }, + { "px": [400,336], "src": [192,16], "f": 0, "t": 35, "d": [101,697], "a": 1 }, + { "px": [496,336], "src": [96,0], "f": 0, "t": 6, "d": [101,703], "a": 1 }, + { "px": [352,352], "src": [192,16], "f": 0, "t": 35, "d": [101,726], "a": 1 }, + { "px": [384,352], "src": [192,16], "f": 0, "t": 35, "d": [101,728], "a": 1 }, + { "px": [416,352], "src": [96,0], "f": 0, "t": 6, "d": [101,730], "a": 1 }, + { "px": [480,352], "src": [192,16], "f": 0, "t": 35, "d": [101,734], "a": 1 }, + { "px": [336,368], "src": [224,96], "f": 0, "t": 152, "d": [101,757], "a": 1 }, + { "px": [368,368], "src": [192,16], "f": 0, "t": 35, "d": [101,759], "a": 1 }, + { "px": [400,368], "src": [192,16], "f": 0, "t": 35, "d": [101,761], "a": 1 }, + { "px": [496,368], "src": [192,16], "f": 0, "t": 35, "d": [101,767], "a": 1 }, + { "px": [32,384], "src": [96,0], "f": 0, "t": 6, "d": [101,770], "a": 1 }, + { "px": [64,384], "src": [96,0], "f": 0, "t": 6, "d": [101,772], "a": 1 }, + { "px": [96,384], "src": [96,0], "f": 0, "t": 6, "d": [101,774], "a": 1 }, + { "px": [128,384], "src": [96,0], "f": 0, "t": 6, "d": [101,776], "a": 1 }, + { "px": [160,384], "src": [96,0], "f": 0, "t": 6, "d": [101,778], "a": 1 }, + { "px": [192,384], "src": [96,0], "f": 0, "t": 6, "d": [101,780], "a": 1 }, + { "px": [224,384], "src": [192,16], "f": 0, "t": 35, "d": [101,782], "a": 1 }, + { "px": [256,384], "src": [224,96], "f": 0, "t": 152, "d": [101,784], "a": 1 }, + { "px": [288,384], "src": [192,16], "f": 0, "t": 35, "d": [101,786], "a": 1 }, + { "px": [320,384], "src": [96,0], "f": 0, "t": 6, "d": [101,788], "a": 1 }, + { "px": [352,384], "src": [96,0], "f": 0, "t": 6, "d": [101,790], "a": 1 }, + { "px": [16,400], "src": [192,16], "f": 0, "t": 35, "d": [101,801], "a": 1 }, + { "px": [48,400], "src": [192,16], "f": 0, "t": 35, "d": [101,803], "a": 1 }, + { "px": [80,400], "src": [192,16], "f": 0, "t": 35, "d": [101,805], "a": 1 }, + { "px": [112,400], "src": [192,16], "f": 0, "t": 35, "d": [101,807], "a": 1 }, + { "px": [144,400], "src": [192,16], "f": 0, "t": 35, "d": [101,809], "a": 1 }, + { "px": [176,400], "src": [192,16], "f": 0, "t": 35, "d": [101,811], "a": 1 }, + { "px": [208,400], "src": [224,96], "f": 0, "t": 152, "d": [101,813], "a": 1 }, + { "px": [240,400], "src": [192,16], "f": 0, "t": 35, "d": [101,815], "a": 1 }, + { "px": [272,400], "src": [224,96], "f": 0, "t": 152, "d": [101,817], "a": 1 }, + { "px": [304,400], "src": [224,96], "f": 0, "t": 152, "d": [101,819], "a": 1 }, + { "px": [336,400], "src": [96,0], "f": 0, "t": 6, "d": [101,821], "a": 1 }, + { "px": [32,416], "src": [96,0], "f": 0, "t": 6, "d": [101,834], "a": 1 }, + { "px": [16,432], "src": [224,96], "f": 0, "t": 152, "d": [101,865], "a": 1 }, + { "px": [32,448], "src": [192,16], "f": 0, "t": 35, "d": [101,898], "a": 1 }, + { "px": [16,464], "src": [96,0], "f": 0, "t": 6, "d": [101,929], "a": 1 }, + { "px": [496,464], "src": [224,96], "f": 0, "t": 152, "d": [101,959], "a": 1 }, + { "px": [32,480], "src": [96,0], "f": 0, "t": 6, "d": [101,962], "a": 1 }, + { "px": [480,480], "src": [224,96], "f": 0, "t": 152, "d": [101,990], "a": 1 }, + { "px": [16,496], "src": [96,0], "f": 0, "t": 6, "d": [101,993], "a": 1 }, + { "px": [496,496], "src": [96,0], "f": 0, "t": 6, "d": [101,1023], "a": 1 }, + { "px": [32,512], "src": [224,96], "f": 0, "t": 152, "d": [101,1026], "a": 1 }, + { "px": [480,512], "src": [192,16], "f": 0, "t": 35, "d": [101,1054], "a": 1 }, + { "px": [16,528], "src": [192,16], "f": 0, "t": 35, "d": [101,1057], "a": 1 }, + { "px": [400,528], "src": [96,0], "f": 0, "t": 6, "d": [101,1081], "a": 1 }, + { "px": [432,528], "src": [224,96], "f": 0, "t": 152, "d": [101,1083], "a": 1 }, + { "px": [464,528], "src": [224,96], "f": 0, "t": 152, "d": [101,1085], "a": 1 }, + { "px": [496,528], "src": [96,0], "f": 0, "t": 6, "d": [101,1087], "a": 1 }, + { "px": [32,544], "src": [96,0], "f": 0, "t": 6, "d": [101,1090], "a": 1 }, + { "px": [416,544], "src": [224,96], "f": 0, "t": 152, "d": [101,1114], "a": 1 }, + { "px": [448,544], "src": [96,0], "f": 0, "t": 6, "d": [101,1116], "a": 1 }, + { "px": [480,544], "src": [224,96], "f": 0, "t": 152, "d": [101,1118], "a": 1 }, + { "px": [16,560], "src": [96,0], "f": 0, "t": 6, "d": [101,1121], "a": 1 }, + { "px": [400,560], "src": [224,96], "f": 0, "t": 152, "d": [101,1145], "a": 1 }, + { "px": [32,576], "src": [224,96], "f": 0, "t": 152, "d": [101,1154], "a": 1 }, + { "px": [416,576], "src": [192,16], "f": 0, "t": 35, "d": [101,1178], "a": 1 }, + { "px": [16,592], "src": [224,96], "f": 0, "t": 152, "d": [101,1185], "a": 1 }, + { "px": [400,592], "src": [192,16], "f": 0, "t": 35, "d": [101,1209], "a": 1 }, + { "px": [32,608], "src": [224,96], "f": 0, "t": 152, "d": [101,1218], "a": 1 }, + { "px": [416,608], "src": [96,0], "f": 0, "t": 6, "d": [101,1242], "a": 1 }, + { "px": [16,624], "src": [224,96], "f": 0, "t": 152, "d": [101,1249], "a": 1 }, + { "px": [400,624], "src": [192,16], "f": 0, "t": 35, "d": [101,1273], "a": 1 }, + { "px": [32,640], "src": [96,0], "f": 0, "t": 6, "d": [101,1282], "a": 1 }, + { "px": [416,640], "src": [192,16], "f": 0, "t": 35, "d": [101,1306], "a": 1 }, + { "px": [16,656], "src": [96,0], "f": 0, "t": 6, "d": [101,1313], "a": 1 }, + { "px": [400,656], "src": [96,0], "f": 0, "t": 6, "d": [101,1337], "a": 1 }, + { "px": [32,672], "src": [192,16], "f": 0, "t": 35, "d": [101,1346], "a": 1 }, + { "px": [416,672], "src": [192,16], "f": 0, "t": 35, "d": [101,1370], "a": 1 }, + { "px": [16,688], "src": [192,16], "f": 0, "t": 35, "d": [101,1377], "a": 1 }, + { "px": [48,688], "src": [224,96], "f": 0, "t": 152, "d": [101,1379], "a": 1 }, + { "px": [80,688], "src": [192,16], "f": 0, "t": 35, "d": [101,1381], "a": 1 }, + { "px": [112,688], "src": [192,16], "f": 0, "t": 35, "d": [101,1383], "a": 1 }, + { "px": [144,688], "src": [192,16], "f": 0, "t": 35, "d": [101,1385], "a": 1 }, + { "px": [176,688], "src": [96,0], "f": 0, "t": 6, "d": [101,1387], "a": 1 }, + { "px": [208,688], "src": [224,96], "f": 0, "t": 152, "d": [101,1389], "a": 1 }, + { "px": [240,688], "src": [224,96], "f": 0, "t": 152, "d": [101,1391], "a": 1 }, + { "px": [272,688], "src": [96,0], "f": 0, "t": 6, "d": [101,1393], "a": 1 }, + { "px": [304,688], "src": [192,16], "f": 0, "t": 35, "d": [101,1395], "a": 1 }, + { "px": [336,688], "src": [96,0], "f": 0, "t": 6, "d": [101,1397], "a": 1 }, + { "px": [368,688], "src": [192,16], "f": 0, "t": 35, "d": [101,1399], "a": 1 }, + { "px": [400,688], "src": [96,0], "f": 0, "t": 6, "d": [101,1401], "a": 1 }, + { "px": [32,704], "src": [224,96], "f": 0, "t": 152, "d": [101,1410], "a": 1 }, + { "px": [64,704], "src": [224,96], "f": 0, "t": 152, "d": [101,1412], "a": 1 }, + { "px": [96,704], "src": [192,16], "f": 0, "t": 35, "d": [101,1414], "a": 1 }, + { "px": [128,704], "src": [224,96], "f": 0, "t": 152, "d": [101,1416], "a": 1 }, + { "px": [160,704], "src": [192,16], "f": 0, "t": 35, "d": [101,1418], "a": 1 }, + { "px": [192,704], "src": [192,16], "f": 0, "t": 35, "d": [101,1420], "a": 1 }, + { "px": [224,704], "src": [96,0], "f": 0, "t": 6, "d": [101,1422], "a": 1 }, + { "px": [256,704], "src": [224,96], "f": 0, "t": 152, "d": [101,1424], "a": 1 }, + { "px": [288,704], "src": [224,96], "f": 0, "t": 152, "d": [101,1426], "a": 1 }, + { "px": [320,704], "src": [224,96], "f": 0, "t": 152, "d": [101,1428], "a": 1 }, + { "px": [352,704], "src": [96,0], "f": 0, "t": 6, "d": [101,1430], "a": 1 }, + { "px": [384,704], "src": [192,16], "f": 0, "t": 35, "d": [101,1432], "a": 1 }, + { "px": [416,704], "src": [192,16], "f": 0, "t": 35, "d": [101,1434], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [96,0], "src": [32,32], "f": 0, "t": 48, "d": [127,6], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [127,8], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [160,0], "src": [32,32], "f": 0, "t": 48, "d": [127,10], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [127,21], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [127,23], "a": 1 }, + { "px": [384,0], "src": [32,32], "f": 0, "t": 48, "d": [127,24], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [127,25], "a": 1 }, + { "px": [416,0], "src": [32,32], "f": 0, "t": 48, "d": [127,26], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [127,27], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [127,28], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [127,31], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,32], "a": 1 }, + { "px": [16,16], "src": [32,32], "f": 0, "t": 48, "d": [127,33], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [127,34], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [127,36], "a": 1 }, + { "px": [80,16], "src": [32,32], "f": 0, "t": 48, "d": [127,37], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [127,38], "a": 1 }, + { "px": [112,16], "src": [32,32], "f": 0, "t": 48, "d": [127,39], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [127,40], "a": 1 }, + { "px": [144,16], "src": [32,32], "f": 0, "t": 48, "d": [127,41], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [127,42], "a": 1 }, + { "px": [176,16], "src": [32,32], "f": 0, "t": 48, "d": [127,43], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,44], "a": 1 }, + { "px": [208,16], "src": [32,32], "f": 0, "t": 48, "d": [127,45], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [127,51], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [127,52], "a": 1 }, + { "px": [336,16], "src": [32,32], "f": 0, "t": 48, "d": [127,53], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [127,54], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [127,56], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [127,58], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [127,60], "a": 1 }, + { "px": [464,16], "src": [32,32], "f": 0, "t": 48, "d": [127,61], "a": 1 }, + { "px": [480,16], "src": [32,32], "f": 0, "t": 48, "d": [127,62], "a": 1 }, + { "px": [496,16], "src": [32,32], "f": 0, "t": 48, "d": [127,63], "a": 1 }, + { "px": [0,32], "src": [32,32], "f": 0, "t": 48, "d": [127,64], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [127,65], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [127,67], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [127,69], "a": 1 }, + { "px": [96,32], "src": [32,32], "f": 0, "t": 48, "d": [127,70], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [127,71], "a": 1 }, + { "px": [128,32], "src": [32,32], "f": 0, "t": 48, "d": [127,72], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [127,73], "a": 1 }, + { "px": [160,32], "src": [32,32], "f": 0, "t": 48, "d": [127,74], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [127,75], "a": 1 }, + { "px": [192,32], "src": [32,32], "f": 0, "t": 48, "d": [127,76], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [127,77], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,79], "a": 1 }, + { "px": [256,32], "src": [32,32], "f": 0, "t": 48, "d": [127,80], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [127,81], "a": 1 }, + { "px": [288,32], "src": [32,32], "f": 0, "t": 48, "d": [127,82], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [127,83], "a": 1 }, + { "px": [320,32], "src": [32,32], "f": 0, "t": 48, "d": [127,84], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [127,85], "a": 1 }, + { "px": [352,32], "src": [32,32], "f": 0, "t": 48, "d": [127,86], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [127,87], "a": 1 }, + { "px": [400,32], "src": [32,32], "f": 0, "t": 48, "d": [127,89], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [127,91], "a": 1 }, + { "px": [448,32], "src": [32,32], "f": 0, "t": 48, "d": [127,92], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [127,93], "a": 1 }, + { "px": [480,32], "src": [32,32], "f": 0, "t": 48, "d": [127,94], "a": 1 }, + { "px": [496,32], "src": [32,32], "f": 0, "t": 48, "d": [127,95], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,96], "a": 1 }, + { "px": [16,48], "src": [32,32], "f": 0, "t": 48, "d": [127,97], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [127,98], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [127,100], "a": 1 }, + { "px": [80,48], "src": [32,32], "f": 0, "t": 48, "d": [127,101], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [127,102], "a": 1 }, + { "px": [112,48], "src": [32,32], "f": 0, "t": 48, "d": [127,103], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [127,104], "a": 1 }, + { "px": [160,48], "src": [32,32], "f": 0, "t": 48, "d": [127,106], "a": 1 }, + { "px": [176,48], "src": [32,32], "f": 0, "t": 48, "d": [127,107], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [127,108], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [127,110], "a": 1 }, + { "px": [256,48], "src": [32,32], "f": 0, "t": 48, "d": [127,112], "a": 1 }, + { "px": [272,48], "src": [32,32], "f": 0, "t": 48, "d": [127,113], "a": 1 }, + { "px": [288,48], "src": [32,32], "f": 0, "t": 48, "d": [127,114], "a": 1 }, + { "px": [304,48], "src": [32,32], "f": 0, "t": 48, "d": [127,115], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [127,116], "a": 1 }, + { "px": [352,48], "src": [32,32], "f": 0, "t": 48, "d": [127,118], "a": 1 }, + { "px": [384,48], "src": [32,32], "f": 0, "t": 48, "d": [127,120], "a": 1 }, + { "px": [416,48], "src": [32,32], "f": 0, "t": 48, "d": [127,122], "a": 1 }, + { "px": [432,48], "src": [32,32], "f": 0, "t": 48, "d": [127,123], "a": 1 }, + { "px": [448,48], "src": [32,32], "f": 0, "t": 48, "d": [127,124], "a": 1 }, + { "px": [464,48], "src": [32,32], "f": 0, "t": 48, "d": [127,125], "a": 1 }, + { "px": [480,48], "src": [32,32], "f": 0, "t": 48, "d": [127,126], "a": 1 }, + { "px": [496,48], "src": [32,32], "f": 0, "t": 48, "d": [127,127], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [127,129], "a": 1 }, + { "px": [32,64], "src": [32,32], "f": 0, "t": 48, "d": [127,130], "a": 1 }, + { "px": [48,64], "src": [32,32], "f": 0, "t": 48, "d": [127,131], "a": 1 }, + { "px": [64,64], "src": [32,32], "f": 0, "t": 48, "d": [127,132], "a": 1 }, + { "px": [80,64], "src": [32,32], "f": 0, "t": 48, "d": [127,133], "a": 1 }, + { "px": [96,64], "src": [32,32], "f": 0, "t": 48, "d": [127,134], "a": 1 }, + { "px": [112,64], "src": [32,32], "f": 0, "t": 48, "d": [127,135], "a": 1 }, + { "px": [128,64], "src": [32,32], "f": 0, "t": 48, "d": [127,136], "a": 1 }, + { "px": [144,64], "src": [32,32], "f": 0, "t": 48, "d": [127,137], "a": 1 }, + { "px": [160,64], "src": [32,32], "f": 0, "t": 48, "d": [127,138], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [127,139], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [127,141], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [127,143], "a": 1 }, + { "px": [256,64], "src": [32,32], "f": 0, "t": 48, "d": [127,144], "a": 1 }, + { "px": [272,64], "src": [32,32], "f": 0, "t": 48, "d": [127,145], "a": 1 }, + { "px": [288,64], "src": [32,32], "f": 0, "t": 48, "d": [127,146], "a": 1 }, + { "px": [304,64], "src": [32,32], "f": 0, "t": 48, "d": [127,147], "a": 1 }, + { "px": [336,64], "src": [32,32], "f": 0, "t": 48, "d": [127,149], "a": 1 }, + { "px": [368,64], "src": [32,32], "f": 0, "t": 48, "d": [127,151], "a": 1 }, + { "px": [384,64], "src": [32,32], "f": 0, "t": 48, "d": [127,152], "a": 1 }, + { "px": [0,80], "src": [32,32], "f": 0, "t": 48, "d": [127,160], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [127,162], "a": 1 }, + { "px": [64,80], "src": [32,32], "f": 0, "t": 48, "d": [127,164], "a": 1 }, + { "px": [80,80], "src": [32,32], "f": 0, "t": 48, "d": [127,165], "a": 1 }, + { "px": [96,80], "src": [32,32], "f": 0, "t": 48, "d": [127,166], "a": 1 }, + { "px": [112,80], "src": [32,32], "f": 0, "t": 48, "d": [127,167], "a": 1 }, + { "px": [128,80], "src": [32,32], "f": 0, "t": 48, "d": [127,168], "a": 1 }, + { "px": [144,80], "src": [32,32], "f": 0, "t": 48, "d": [127,169], "a": 1 }, + { "px": [160,80], "src": [32,32], "f": 0, "t": 48, "d": [127,170], "a": 1 }, + { "px": [192,80], "src": [32,32], "f": 0, "t": 48, "d": [127,172], "a": 1 }, + { "px": [208,80], "src": [32,32], "f": 0, "t": 48, "d": [127,173], "a": 1 }, + { "px": [224,80], "src": [32,32], "f": 0, "t": 48, "d": [127,174], "a": 1 }, + { "px": [256,80], "src": [32,32], "f": 0, "t": 48, "d": [127,176], "a": 1 }, + { "px": [272,80], "src": [32,32], "f": 0, "t": 48, "d": [127,177], "a": 1 }, + { "px": [288,80], "src": [32,32], "f": 0, "t": 48, "d": [127,178], "a": 1 }, + { "px": [304,80], "src": [32,32], "f": 0, "t": 48, "d": [127,179], "a": 1 }, + { "px": [320,80], "src": [32,32], "f": 0, "t": 48, "d": [127,180], "a": 1 }, + { "px": [352,80], "src": [32,32], "f": 0, "t": 48, "d": [127,182], "a": 1 }, + { "px": [384,80], "src": [32,32], "f": 0, "t": 48, "d": [127,184], "a": 1 }, + { "px": [0,96], "src": [32,32], "f": 0, "t": 48, "d": [127,192], "a": 1 }, + { "px": [16,96], "src": [32,32], "f": 0, "t": 48, "d": [127,193], "a": 1 }, + { "px": [48,96], "src": [32,32], "f": 0, "t": 48, "d": [127,195], "a": 1 }, + { "px": [80,96], "src": [32,32], "f": 0, "t": 48, "d": [127,197], "a": 1 }, + { "px": [112,96], "src": [32,32], "f": 0, "t": 48, "d": [127,199], "a": 1 }, + { "px": [128,96], "src": [32,32], "f": 0, "t": 48, "d": [127,200], "a": 1 }, + { "px": [144,96], "src": [32,32], "f": 0, "t": 48, "d": [127,201], "a": 1 }, + { "px": [160,96], "src": [32,32], "f": 0, "t": 48, "d": [127,202], "a": 1 }, + { "px": [176,96], "src": [32,32], "f": 0, "t": 48, "d": [127,203], "a": 1 }, + { "px": [208,96], "src": [32,32], "f": 0, "t": 48, "d": [127,205], "a": 1 }, + { "px": [224,96], "src": [32,32], "f": 0, "t": 48, "d": [127,206], "a": 1 }, + { "px": [240,96], "src": [32,32], "f": 0, "t": 48, "d": [127,207], "a": 1 }, + { "px": [256,96], "src": [32,32], "f": 0, "t": 48, "d": [127,208], "a": 1 }, + { "px": [272,96], "src": [32,32], "f": 0, "t": 48, "d": [127,209], "a": 1 }, + { "px": [288,96], "src": [32,32], "f": 0, "t": 48, "d": [127,210], "a": 1 }, + { "px": [304,96], "src": [32,32], "f": 0, "t": 48, "d": [127,211], "a": 1 }, + { "px": [320,96], "src": [32,32], "f": 0, "t": 48, "d": [127,212], "a": 1 }, + { "px": [336,96], "src": [32,32], "f": 0, "t": 48, "d": [127,213], "a": 1 }, + { "px": [368,96], "src": [32,32], "f": 0, "t": 48, "d": [127,215], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [127,224], "a": 1 }, + { "px": [32,112], "src": [32,32], "f": 0, "t": 48, "d": [127,226], "a": 1 }, + { "px": [48,112], "src": [32,32], "f": 0, "t": 48, "d": [127,227], "a": 1 }, + { "px": [64,112], "src": [32,32], "f": 0, "t": 48, "d": [127,228], "a": 1 }, + { "px": [96,112], "src": [32,32], "f": 0, "t": 48, "d": [127,230], "a": 1 }, + { "px": [112,112], "src": [32,32], "f": 0, "t": 48, "d": [127,231], "a": 1 }, + { "px": [128,112], "src": [32,32], "f": 0, "t": 48, "d": [127,232], "a": 1 }, + { "px": [144,112], "src": [32,32], "f": 0, "t": 48, "d": [127,233], "a": 1 }, + { "px": [160,112], "src": [32,32], "f": 0, "t": 48, "d": [127,234], "a": 1 }, + { "px": [192,112], "src": [32,32], "f": 0, "t": 48, "d": [127,236], "a": 1 }, + { "px": [224,112], "src": [32,32], "f": 0, "t": 48, "d": [127,238], "a": 1 }, + { "px": [256,112], "src": [32,32], "f": 0, "t": 48, "d": [127,240], "a": 1 }, + { "px": [272,112], "src": [32,32], "f": 0, "t": 48, "d": [127,241], "a": 1 }, + { "px": [288,112], "src": [32,32], "f": 0, "t": 48, "d": [127,242], "a": 1 }, + { "px": [304,112], "src": [32,32], "f": 0, "t": 48, "d": [127,243], "a": 1 }, + { "px": [320,112], "src": [32,32], "f": 0, "t": 48, "d": [127,244], "a": 1 }, + { "px": [352,112], "src": [32,32], "f": 0, "t": 48, "d": [127,246], "a": 1 }, + { "px": [384,112], "src": [32,32], "f": 0, "t": 48, "d": [127,248], "a": 1 }, + { "px": [16,128], "src": [32,32], "f": 0, "t": 48, "d": [127,257], "a": 1 }, + { "px": [32,128], "src": [32,32], "f": 0, "t": 48, "d": [127,258], "a": 1 }, + { "px": [48,128], "src": [32,32], "f": 0, "t": 48, "d": [127,259], "a": 1 }, + { "px": [80,128], "src": [32,32], "f": 0, "t": 48, "d": [127,261], "a": 1 }, + { "px": [96,128], "src": [32,32], "f": 0, "t": 48, "d": [127,262], "a": 1 }, + { "px": [112,128], "src": [32,32], "f": 0, "t": 48, "d": [127,263], "a": 1 }, + { "px": [128,128], "src": [32,32], "f": 0, "t": 48, "d": [127,264], "a": 1 }, + { "px": [144,128], "src": [32,32], "f": 0, "t": 48, "d": [127,265], "a": 1 }, + { "px": [176,128], "src": [32,32], "f": 0, "t": 48, "d": [127,267], "a": 1 }, + { "px": [208,128], "src": [32,32], "f": 0, "t": 48, "d": [127,269], "a": 1 }, + { "px": [240,128], "src": [32,32], "f": 0, "t": 48, "d": [127,271], "a": 1 }, + { "px": [272,128], "src": [32,32], "f": 0, "t": 48, "d": [127,273], "a": 1 }, + { "px": [288,128], "src": [32,32], "f": 0, "t": 48, "d": [127,274], "a": 1 }, + { "px": [304,128], "src": [32,32], "f": 0, "t": 48, "d": [127,275], "a": 1 }, + { "px": [320,128], "src": [32,32], "f": 0, "t": 48, "d": [127,276], "a": 1 }, + { "px": [336,128], "src": [32,32], "f": 0, "t": 48, "d": [127,277], "a": 1 }, + { "px": [368,128], "src": [32,32], "f": 0, "t": 48, "d": [127,279], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [127,288], "a": 1 }, + { "px": [32,144], "src": [32,32], "f": 0, "t": 48, "d": [127,290], "a": 1 }, + { "px": [48,144], "src": [32,32], "f": 0, "t": 48, "d": [127,291], "a": 1 }, + { "px": [64,144], "src": [32,32], "f": 0, "t": 48, "d": [127,292], "a": 1 }, + { "px": [96,144], "src": [32,32], "f": 0, "t": 48, "d": [127,294], "a": 1 }, + { "px": [128,144], "src": [32,32], "f": 0, "t": 48, "d": [127,296], "a": 1 }, + { "px": [144,144], "src": [32,32], "f": 0, "t": 48, "d": [127,297], "a": 1 }, + { "px": [160,144], "src": [32,32], "f": 0, "t": 48, "d": [127,298], "a": 1 }, + { "px": [176,144], "src": [32,32], "f": 0, "t": 48, "d": [127,299], "a": 1 }, + { "px": [192,144], "src": [32,32], "f": 0, "t": 48, "d": [127,300], "a": 1 }, + { "px": [224,144], "src": [32,32], "f": 0, "t": 48, "d": [127,302], "a": 1 }, + { "px": [240,144], "src": [32,32], "f": 0, "t": 48, "d": [127,303], "a": 1 }, + { "px": [256,144], "src": [32,32], "f": 0, "t": 48, "d": [127,304], "a": 1 }, + { "px": [272,144], "src": [32,32], "f": 0, "t": 48, "d": [127,305], "a": 1 }, + { "px": [288,144], "src": [32,32], "f": 0, "t": 48, "d": [127,306], "a": 1 }, + { "px": [304,144], "src": [32,32], "f": 0, "t": 48, "d": [127,307], "a": 1 }, + { "px": [320,144], "src": [32,32], "f": 0, "t": 48, "d": [127,308], "a": 1 }, + { "px": [352,144], "src": [32,32], "f": 0, "t": 48, "d": [127,310], "a": 1 }, + { "px": [384,144], "src": [32,32], "f": 0, "t": 48, "d": [127,312], "a": 1 }, + { "px": [0,160], "src": [32,32], "f": 0, "t": 48, "d": [127,320], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [127,321], "a": 1 }, + { "px": [32,160], "src": [32,32], "f": 0, "t": 48, "d": [127,322], "a": 1 }, + { "px": [48,160], "src": [32,32], "f": 0, "t": 48, "d": [127,323], "a": 1 }, + { "px": [64,160], "src": [32,32], "f": 0, "t": 48, "d": [127,324], "a": 1 }, + { "px": [80,160], "src": [32,32], "f": 0, "t": 48, "d": [127,325], "a": 1 }, + { "px": [112,160], "src": [32,32], "f": 0, "t": 48, "d": [127,327], "a": 1 }, + { "px": [128,160], "src": [32,32], "f": 0, "t": 48, "d": [127,328], "a": 1 }, + { "px": [144,160], "src": [32,32], "f": 0, "t": 48, "d": [127,329], "a": 1 }, + { "px": [176,160], "src": [32,32], "f": 0, "t": 48, "d": [127,331], "a": 1 }, + { "px": [208,160], "src": [32,32], "f": 0, "t": 48, "d": [127,333], "a": 1 }, + { "px": [240,160], "src": [32,32], "f": 0, "t": 48, "d": [127,335], "a": 1 }, + { "px": [256,160], "src": [32,32], "f": 0, "t": 48, "d": [127,336], "a": 1 }, + { "px": [272,160], "src": [32,32], "f": 0, "t": 48, "d": [127,337], "a": 1 }, + { "px": [288,160], "src": [32,32], "f": 0, "t": 48, "d": [127,338], "a": 1 }, + { "px": [304,160], "src": [32,32], "f": 0, "t": 48, "d": [127,339], "a": 1 }, + { "px": [336,160], "src": [32,32], "f": 0, "t": 48, "d": [127,341], "a": 1 }, + { "px": [368,160], "src": [32,32], "f": 0, "t": 48, "d": [127,343], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [127,352], "a": 1 }, + { "px": [16,176], "src": [32,32], "f": 0, "t": 48, "d": [127,353], "a": 1 }, + { "px": [32,176], "src": [32,32], "f": 0, "t": 48, "d": [127,354], "a": 1 }, + { "px": [48,176], "src": [32,32], "f": 0, "t": 48, "d": [127,355], "a": 1 }, + { "px": [64,176], "src": [32,32], "f": 0, "t": 48, "d": [127,356], "a": 1 }, + { "px": [80,176], "src": [32,32], "f": 0, "t": 48, "d": [127,357], "a": 1 }, + { "px": [96,176], "src": [32,32], "f": 0, "t": 48, "d": [127,358], "a": 1 }, + { "px": [128,176], "src": [32,32], "f": 0, "t": 48, "d": [127,360], "a": 1 }, + { "px": [144,176], "src": [32,32], "f": 0, "t": 48, "d": [127,361], "a": 1 }, + { "px": [160,176], "src": [32,32], "f": 0, "t": 48, "d": [127,362], "a": 1 }, + { "px": [192,176], "src": [32,32], "f": 0, "t": 48, "d": [127,364], "a": 1 }, + { "px": [224,176], "src": [32,32], "f": 0, "t": 48, "d": [127,366], "a": 1 }, + { "px": [240,176], "src": [32,32], "f": 0, "t": 48, "d": [127,367], "a": 1 }, + { "px": [256,176], "src": [32,32], "f": 0, "t": 48, "d": [127,368], "a": 1 }, + { "px": [272,176], "src": [32,32], "f": 0, "t": 48, "d": [127,369], "a": 1 }, + { "px": [288,176], "src": [32,32], "f": 0, "t": 48, "d": [127,370], "a": 1 }, + { "px": [304,176], "src": [32,32], "f": 0, "t": 48, "d": [127,371], "a": 1 }, + { "px": [320,176], "src": [32,32], "f": 0, "t": 48, "d": [127,372], "a": 1 }, + { "px": [336,176], "src": [32,32], "f": 0, "t": 48, "d": [127,373], "a": 1 }, + { "px": [352,176], "src": [32,32], "f": 0, "t": 48, "d": [127,374], "a": 1 }, + { "px": [384,176], "src": [32,32], "f": 0, "t": 48, "d": [127,376], "a": 1 }, + { "px": [0,192], "src": [32,32], "f": 0, "t": 48, "d": [127,384], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [127,385], "a": 1 }, + { "px": [32,192], "src": [32,32], "f": 0, "t": 48, "d": [127,386], "a": 1 }, + { "px": [48,192], "src": [32,32], "f": 0, "t": 48, "d": [127,387], "a": 1 }, + { "px": [64,192], "src": [32,32], "f": 0, "t": 48, "d": [127,388], "a": 1 }, + { "px": [80,192], "src": [32,32], "f": 0, "t": 48, "d": [127,389], "a": 1 }, + { "px": [112,192], "src": [32,32], "f": 0, "t": 48, "d": [127,391], "a": 1 }, + { "px": [128,192], "src": [32,32], "f": 0, "t": 48, "d": [127,392], "a": 1 }, + { "px": [144,192], "src": [32,32], "f": 0, "t": 48, "d": [127,393], "a": 1 }, + { "px": [160,192], "src": [32,32], "f": 0, "t": 48, "d": [127,394], "a": 1 }, + { "px": [176,192], "src": [32,32], "f": 0, "t": 48, "d": [127,395], "a": 1 }, + { "px": [192,192], "src": [32,32], "f": 0, "t": 48, "d": [127,396], "a": 1 }, + { "px": [208,192], "src": [32,32], "f": 0, "t": 48, "d": [127,397], "a": 1 }, + { "px": [224,192], "src": [32,32], "f": 0, "t": 48, "d": [127,398], "a": 1 }, + { "px": [240,192], "src": [32,32], "f": 0, "t": 48, "d": [127,399], "a": 1 }, + { "px": [256,192], "src": [32,32], "f": 0, "t": 48, "d": [127,400], "a": 1 }, + { "px": [272,192], "src": [32,32], "f": 0, "t": 48, "d": [127,401], "a": 1 }, + { "px": [288,192], "src": [32,32], "f": 0, "t": 48, "d": [127,402], "a": 1 }, + { "px": [304,192], "src": [32,32], "f": 0, "t": 48, "d": [127,403], "a": 1 }, + { "px": [320,192], "src": [32,32], "f": 0, "t": 48, "d": [127,404], "a": 1 }, + { "px": [336,192], "src": [32,32], "f": 0, "t": 48, "d": [127,405], "a": 1 }, + { "px": [368,192], "src": [32,32], "f": 0, "t": 48, "d": [127,407], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [127,416], "a": 1 }, + { "px": [16,208], "src": [32,32], "f": 0, "t": 48, "d": [127,417], "a": 1 }, + { "px": [32,208], "src": [32,32], "f": 0, "t": 48, "d": [127,418], "a": 1 }, + { "px": [48,208], "src": [32,32], "f": 0, "t": 48, "d": [127,419], "a": 1 }, + { "px": [64,208], "src": [32,32], "f": 0, "t": 48, "d": [127,420], "a": 1 }, + { "px": [80,208], "src": [32,32], "f": 0, "t": 48, "d": [127,421], "a": 1 }, + { "px": [96,208], "src": [32,32], "f": 0, "t": 48, "d": [127,422], "a": 1 }, + { "px": [112,208], "src": [32,32], "f": 0, "t": 48, "d": [127,423], "a": 1 }, + { "px": [128,208], "src": [32,32], "f": 0, "t": 48, "d": [127,424], "a": 1 }, + { "px": [144,208], "src": [32,32], "f": 0, "t": 48, "d": [127,425], "a": 1 }, + { "px": [160,208], "src": [32,32], "f": 0, "t": 48, "d": [127,426], "a": 1 }, + { "px": [176,208], "src": [32,32], "f": 0, "t": 48, "d": [127,427], "a": 1 }, + { "px": [192,208], "src": [32,32], "f": 0, "t": 48, "d": [127,428], "a": 1 }, + { "px": [208,208], "src": [32,32], "f": 0, "t": 48, "d": [127,429], "a": 1 }, + { "px": [224,208], "src": [32,32], "f": 0, "t": 48, "d": [127,430], "a": 1 }, + { "px": [256,208], "src": [32,32], "f": 0, "t": 48, "d": [127,432], "a": 1 }, + { "px": [272,208], "src": [32,32], "f": 0, "t": 48, "d": [127,433], "a": 1 }, + { "px": [288,208], "src": [32,32], "f": 0, "t": 48, "d": [127,434], "a": 1 }, + { "px": [320,208], "src": [32,32], "f": 0, "t": 48, "d": [127,436], "a": 1 }, + { "px": [336,208], "src": [32,32], "f": 0, "t": 48, "d": [127,437], "a": 1 }, + { "px": [352,208], "src": [32,32], "f": 0, "t": 48, "d": [127,438], "a": 1 }, + { "px": [384,208], "src": [32,32], "f": 0, "t": 48, "d": [127,440], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [127,449], "a": 1 }, + { "px": [32,224], "src": [32,32], "f": 0, "t": 48, "d": [127,450], "a": 1 }, + { "px": [48,224], "src": [32,32], "f": 0, "t": 48, "d": [127,451], "a": 1 }, + { "px": [64,224], "src": [32,32], "f": 0, "t": 48, "d": [127,452], "a": 1 }, + { "px": [80,224], "src": [32,32], "f": 0, "t": 48, "d": [127,453], "a": 1 }, + { "px": [112,224], "src": [32,32], "f": 0, "t": 48, "d": [127,455], "a": 1 }, + { "px": [128,224], "src": [32,32], "f": 0, "t": 48, "d": [127,456], "a": 1 }, + { "px": [144,224], "src": [32,32], "f": 0, "t": 48, "d": [127,457], "a": 1 }, + { "px": [176,224], "src": [32,32], "f": 0, "t": 48, "d": [127,459], "a": 1 }, + { "px": [192,224], "src": [32,32], "f": 0, "t": 48, "d": [127,460], "a": 1 }, + { "px": [208,224], "src": [32,32], "f": 0, "t": 48, "d": [127,461], "a": 1 }, + { "px": [224,224], "src": [32,32], "f": 0, "t": 48, "d": [127,462], "a": 1 }, + { "px": [240,224], "src": [32,32], "f": 0, "t": 48, "d": [127,463], "a": 1 }, + { "px": [272,224], "src": [32,32], "f": 0, "t": 48, "d": [127,465], "a": 1 }, + { "px": [304,224], "src": [32,32], "f": 0, "t": 48, "d": [127,467], "a": 1 }, + { "px": [336,224], "src": [32,32], "f": 0, "t": 48, "d": [127,469], "a": 1 }, + { "px": [368,224], "src": [32,32], "f": 0, "t": 48, "d": [127,471], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [127,480], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [127,482], "a": 1 }, + { "px": [48,240], "src": [32,32], "f": 0, "t": 48, "d": [127,483], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [127,484], "a": 1 }, + { "px": [96,240], "src": [32,32], "f": 0, "t": 48, "d": [127,486], "a": 1 }, + { "px": [128,240], "src": [32,32], "f": 0, "t": 48, "d": [127,488], "a": 1 }, + { "px": [144,240], "src": [32,32], "f": 0, "t": 48, "d": [127,489], "a": 1 }, + { "px": [160,240], "src": [32,32], "f": 0, "t": 48, "d": [127,490], "a": 1 }, + { "px": [176,240], "src": [32,32], "f": 0, "t": 48, "d": [127,491], "a": 1 }, + { "px": [192,240], "src": [32,32], "f": 0, "t": 48, "d": [127,492], "a": 1 }, + { "px": [208,240], "src": [32,32], "f": 0, "t": 48, "d": [127,493], "a": 1 }, + { "px": [224,240], "src": [32,32], "f": 0, "t": 48, "d": [127,494], "a": 1 }, + { "px": [256,240], "src": [32,32], "f": 0, "t": 48, "d": [127,496], "a": 1 }, + { "px": [288,240], "src": [32,32], "f": 0, "t": 48, "d": [127,498], "a": 1 }, + { "px": [304,240], "src": [32,32], "f": 0, "t": 48, "d": [127,499], "a": 1 }, + { "px": [320,240], "src": [32,32], "f": 0, "t": 48, "d": [127,500], "a": 1 }, + { "px": [336,240], "src": [32,32], "f": 0, "t": 48, "d": [127,501], "a": 1 }, + { "px": [352,240], "src": [32,32], "f": 0, "t": 48, "d": [127,502], "a": 1 }, + { "px": [384,240], "src": [32,32], "f": 0, "t": 48, "d": [127,504], "a": 1 }, + { "px": [0,256], "src": [32,32], "f": 0, "t": 48, "d": [127,512], "a": 1 }, + { "px": [16,256], "src": [32,32], "f": 0, "t": 48, "d": [127,513], "a": 1 }, + { "px": [32,256], "src": [32,32], "f": 0, "t": 48, "d": [127,514], "a": 1 }, + { "px": [48,256], "src": [32,32], "f": 0, "t": 48, "d": [127,515], "a": 1 }, + { "px": [64,256], "src": [32,32], "f": 0, "t": 48, "d": [127,516], "a": 1 }, + { "px": [80,256], "src": [32,32], "f": 0, "t": 48, "d": [127,517], "a": 1 }, + { "px": [112,256], "src": [32,32], "f": 0, "t": 48, "d": [127,519], "a": 1 }, + { "px": [144,256], "src": [32,32], "f": 0, "t": 48, "d": [127,521], "a": 1 }, + { "px": [160,256], "src": [32,32], "f": 0, "t": 48, "d": [127,522], "a": 1 }, + { "px": [176,256], "src": [32,32], "f": 0, "t": 48, "d": [127,523], "a": 1 }, + { "px": [192,256], "src": [32,32], "f": 0, "t": 48, "d": [127,524], "a": 1 }, + { "px": [208,256], "src": [32,32], "f": 0, "t": 48, "d": [127,525], "a": 1 }, + { "px": [224,256], "src": [32,32], "f": 0, "t": 48, "d": [127,526], "a": 1 }, + { "px": [240,256], "src": [32,32], "f": 0, "t": 48, "d": [127,527], "a": 1 }, + { "px": [256,256], "src": [32,32], "f": 0, "t": 48, "d": [127,528], "a": 1 }, + { "px": [272,256], "src": [32,32], "f": 0, "t": 48, "d": [127,529], "a": 1 }, + { "px": [288,256], "src": [32,32], "f": 0, "t": 48, "d": [127,530], "a": 1 }, + { "px": [304,256], "src": [32,32], "f": 0, "t": 48, "d": [127,531], "a": 1 }, + { "px": [320,256], "src": [32,32], "f": 0, "t": 48, "d": [127,532], "a": 1 }, + { "px": [336,256], "src": [32,32], "f": 0, "t": 48, "d": [127,533], "a": 1 }, + { "px": [352,256], "src": [32,32], "f": 0, "t": 48, "d": [127,534], "a": 1 }, + { "px": [368,256], "src": [32,32], "f": 0, "t": 48, "d": [127,535], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [127,544], "a": 1 }, + { "px": [16,272], "src": [32,32], "f": 0, "t": 48, "d": [127,545], "a": 1 }, + { "px": [32,272], "src": [32,32], "f": 0, "t": 48, "d": [127,546], "a": 1 }, + { "px": [48,272], "src": [32,32], "f": 0, "t": 48, "d": [127,547], "a": 1 }, + { "px": [64,272], "src": [32,32], "f": 0, "t": 48, "d": [127,548], "a": 1 }, + { "px": [80,272], "src": [32,32], "f": 0, "t": 48, "d": [127,549], "a": 1 }, + { "px": [96,272], "src": [32,32], "f": 0, "t": 48, "d": [127,550], "a": 1 }, + { "px": [112,272], "src": [32,32], "f": 0, "t": 48, "d": [127,551], "a": 1 }, + { "px": [128,272], "src": [32,32], "f": 0, "t": 48, "d": [127,552], "a": 1 }, + { "px": [160,272], "src": [32,32], "f": 0, "t": 48, "d": [127,554], "a": 1 }, + { "px": [176,272], "src": [32,32], "f": 0, "t": 48, "d": [127,555], "a": 1 }, + { "px": [192,272], "src": [32,32], "f": 0, "t": 48, "d": [127,556], "a": 1 }, + { "px": [208,272], "src": [32,32], "f": 0, "t": 48, "d": [127,557], "a": 1 }, + { "px": [224,272], "src": [32,32], "f": 0, "t": 48, "d": [127,558], "a": 1 }, + { "px": [240,272], "src": [32,32], "f": 0, "t": 48, "d": [127,559], "a": 1 }, + { "px": [256,272], "src": [32,32], "f": 0, "t": 48, "d": [127,560], "a": 1 }, + { "px": [272,272], "src": [32,32], "f": 0, "t": 48, "d": [127,561], "a": 1 }, + { "px": [288,272], "src": [32,32], "f": 0, "t": 48, "d": [127,562], "a": 1 }, + { "px": [304,272], "src": [32,32], "f": 0, "t": 48, "d": [127,563], "a": 1 }, + { "px": [320,272], "src": [32,32], "f": 0, "t": 48, "d": [127,564], "a": 1 }, + { "px": [352,272], "src": [32,32], "f": 0, "t": 48, "d": [127,566], "a": 1 }, + { "px": [368,272], "src": [32,32], "f": 0, "t": 48, "d": [127,567], "a": 1 }, + { "px": [384,272], "src": [32,32], "f": 0, "t": 48, "d": [127,568], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [127,577], "a": 1 }, + { "px": [32,288], "src": [32,32], "f": 0, "t": 48, "d": [127,578], "a": 1 }, + { "px": [48,288], "src": [32,32], "f": 0, "t": 48, "d": [127,579], "a": 1 }, + { "px": [80,288], "src": [32,32], "f": 0, "t": 48, "d": [127,581], "a": 1 }, + { "px": [96,288], "src": [32,32], "f": 0, "t": 48, "d": [127,582], "a": 1 }, + { "px": [112,288], "src": [32,32], "f": 0, "t": 48, "d": [127,583], "a": 1 }, + { "px": [128,288], "src": [32,32], "f": 0, "t": 48, "d": [127,584], "a": 1 }, + { "px": [144,288], "src": [32,32], "f": 0, "t": 48, "d": [127,585], "a": 1 }, + { "px": [160,288], "src": [32,32], "f": 0, "t": 48, "d": [127,586], "a": 1 }, + { "px": [176,288], "src": [32,32], "f": 0, "t": 48, "d": [127,587], "a": 1 }, + { "px": [208,288], "src": [32,32], "f": 0, "t": 48, "d": [127,589], "a": 1 }, + { "px": [224,288], "src": [32,32], "f": 0, "t": 48, "d": [127,590], "a": 1 }, + { "px": [240,288], "src": [32,32], "f": 0, "t": 48, "d": [127,591], "a": 1 }, + { "px": [272,288], "src": [32,32], "f": 0, "t": 48, "d": [127,593], "a": 1 }, + { "px": [304,288], "src": [32,32], "f": 0, "t": 48, "d": [127,595], "a": 1 }, + { "px": [336,288], "src": [32,32], "f": 0, "t": 48, "d": [127,597], "a": 1 }, + { "px": [352,288], "src": [32,32], "f": 0, "t": 48, "d": [127,598], "a": 1 }, + { "px": [368,288], "src": [32,32], "f": 0, "t": 48, "d": [127,599], "a": 1 }, + { "px": [384,288], "src": [32,32], "f": 0, "t": 48, "d": [127,600], "a": 1 }, + { "px": [0,304], "src": [32,32], "f": 0, "t": 48, "d": [127,608], "a": 1 }, + { "px": [16,304], "src": [32,32], "f": 0, "t": 48, "d": [127,609], "a": 1 }, + { "px": [32,304], "src": [32,32], "f": 0, "t": 48, "d": [127,610], "a": 1 }, + { "px": [48,304], "src": [32,32], "f": 0, "t": 48, "d": [127,611], "a": 1 }, + { "px": [64,304], "src": [32,32], "f": 0, "t": 48, "d": [127,612], "a": 1 }, + { "px": [80,304], "src": [32,32], "f": 0, "t": 48, "d": [127,613], "a": 1 }, + { "px": [96,304], "src": [32,32], "f": 0, "t": 48, "d": [127,614], "a": 1 }, + { "px": [112,304], "src": [32,32], "f": 0, "t": 48, "d": [127,615], "a": 1 }, + { "px": [128,304], "src": [32,32], "f": 0, "t": 48, "d": [127,616], "a": 1 }, + { "px": [144,304], "src": [32,32], "f": 0, "t": 48, "d": [127,617], "a": 1 }, + { "px": [160,304], "src": [32,32], "f": 0, "t": 48, "d": [127,618], "a": 1 }, + { "px": [192,304], "src": [32,32], "f": 0, "t": 48, "d": [127,620], "a": 1 }, + { "px": [208,304], "src": [32,32], "f": 0, "t": 48, "d": [127,621], "a": 1 }, + { "px": [224,304], "src": [32,32], "f": 0, "t": 48, "d": [127,622], "a": 1 }, + { "px": [240,304], "src": [32,32], "f": 0, "t": 48, "d": [127,623], "a": 1 }, + { "px": [256,304], "src": [32,32], "f": 0, "t": 48, "d": [127,624], "a": 1 }, + { "px": [288,304], "src": [32,32], "f": 0, "t": 48, "d": [127,626], "a": 1 }, + { "px": [320,304], "src": [32,32], "f": 0, "t": 48, "d": [127,628], "a": 1 }, + { "px": [336,304], "src": [32,32], "f": 0, "t": 48, "d": [127,629], "a": 1 }, + { "px": [352,304], "src": [32,32], "f": 0, "t": 48, "d": [127,630], "a": 1 }, + { "px": [384,304], "src": [32,32], "f": 0, "t": 48, "d": [127,632], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [127,641], "a": 1 }, + { "px": [32,320], "src": [32,32], "f": 0, "t": 48, "d": [127,642], "a": 1 }, + { "px": [48,320], "src": [32,32], "f": 0, "t": 48, "d": [127,643], "a": 1 }, + { "px": [64,320], "src": [32,32], "f": 0, "t": 48, "d": [127,644], "a": 1 }, + { "px": [80,320], "src": [32,32], "f": 0, "t": 48, "d": [127,645], "a": 1 }, + { "px": [96,320], "src": [32,32], "f": 0, "t": 48, "d": [127,646], "a": 1 }, + { "px": [112,320], "src": [32,32], "f": 0, "t": 48, "d": [127,647], "a": 1 }, + { "px": [128,320], "src": [32,32], "f": 0, "t": 48, "d": [127,648], "a": 1 }, + { "px": [144,320], "src": [32,32], "f": 0, "t": 48, "d": [127,649], "a": 1 }, + { "px": [160,320], "src": [32,32], "f": 0, "t": 48, "d": [127,650], "a": 1 }, + { "px": [176,320], "src": [32,32], "f": 0, "t": 48, "d": [127,651], "a": 1 }, + { "px": [208,320], "src": [32,32], "f": 0, "t": 48, "d": [127,653], "a": 1 }, + { "px": [240,320], "src": [32,32], "f": 0, "t": 48, "d": [127,655], "a": 1 }, + { "px": [272,320], "src": [32,32], "f": 0, "t": 48, "d": [127,657], "a": 1 }, + { "px": [288,320], "src": [32,32], "f": 0, "t": 48, "d": [127,658], "a": 1 }, + { "px": [304,320], "src": [32,32], "f": 0, "t": 48, "d": [127,659], "a": 1 }, + { "px": [336,320], "src": [32,32], "f": 0, "t": 48, "d": [127,661], "a": 1 }, + { "px": [352,320], "src": [32,32], "f": 0, "t": 48, "d": [127,662], "a": 1 }, + { "px": [368,320], "src": [32,32], "f": 0, "t": 48, "d": [127,663], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [127,672], "a": 1 }, + { "px": [16,336], "src": [32,32], "f": 0, "t": 48, "d": [127,673], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [127,674], "a": 1 }, + { "px": [64,336], "src": [32,32], "f": 0, "t": 48, "d": [127,676], "a": 1 }, + { "px": [96,336], "src": [32,32], "f": 0, "t": 48, "d": [127,678], "a": 1 }, + { "px": [112,336], "src": [32,32], "f": 0, "t": 48, "d": [127,679], "a": 1 }, + { "px": [128,336], "src": [32,32], "f": 0, "t": 48, "d": [127,680], "a": 1 }, + { "px": [144,336], "src": [32,32], "f": 0, "t": 48, "d": [127,681], "a": 1 }, + { "px": [160,336], "src": [32,32], "f": 0, "t": 48, "d": [127,682], "a": 1 }, + { "px": [192,336], "src": [32,32], "f": 0, "t": 48, "d": [127,684], "a": 1 }, + { "px": [224,336], "src": [32,32], "f": 0, "t": 48, "d": [127,686], "a": 1 }, + { "px": [256,336], "src": [32,32], "f": 0, "t": 48, "d": [127,688], "a": 1 }, + { "px": [288,336], "src": [32,32], "f": 0, "t": 48, "d": [127,690], "a": 1 }, + { "px": [304,336], "src": [32,32], "f": 0, "t": 48, "d": [127,691], "a": 1 }, + { "px": [320,336], "src": [32,32], "f": 0, "t": 48, "d": [127,692], "a": 1 }, + { "px": [336,336], "src": [32,32], "f": 0, "t": 48, "d": [127,693], "a": 1 }, + { "px": [352,336], "src": [32,32], "f": 0, "t": 48, "d": [127,694], "a": 1 }, + { "px": [384,336], "src": [32,32], "f": 0, "t": 48, "d": [127,696], "a": 1 }, + { "px": [0,352], "src": [32,32], "f": 0, "t": 48, "d": [127,704], "a": 1 }, + { "px": [16,352], "src": [32,32], "f": 0, "t": 48, "d": [127,705], "a": 1 }, + { "px": [32,352], "src": [32,32], "f": 0, "t": 48, "d": [127,706], "a": 1 }, + { "px": [48,352], "src": [32,32], "f": 0, "t": 48, "d": [127,707], "a": 1 }, + { "px": [64,352], "src": [32,32], "f": 0, "t": 48, "d": [127,708], "a": 1 }, + { "px": [80,352], "src": [32,32], "f": 0, "t": 48, "d": [127,709], "a": 1 }, + { "px": [112,352], "src": [32,32], "f": 0, "t": 48, "d": [127,711], "a": 1 }, + { "px": [128,352], "src": [32,32], "f": 0, "t": 48, "d": [127,712], "a": 1 }, + { "px": [144,352], "src": [32,32], "f": 0, "t": 48, "d": [127,713], "a": 1 }, + { "px": [176,352], "src": [32,32], "f": 0, "t": 48, "d": [127,715], "a": 1 }, + { "px": [208,352], "src": [32,32], "f": 0, "t": 48, "d": [127,717], "a": 1 }, + { "px": [224,352], "src": [32,32], "f": 0, "t": 48, "d": [127,718], "a": 1 }, + { "px": [240,352], "src": [32,32], "f": 0, "t": 48, "d": [127,719], "a": 1 }, + { "px": [256,352], "src": [32,32], "f": 0, "t": 48, "d": [127,720], "a": 1 }, + { "px": [272,352], "src": [32,32], "f": 0, "t": 48, "d": [127,721], "a": 1 }, + { "px": [288,352], "src": [32,32], "f": 0, "t": 48, "d": [127,722], "a": 1 }, + { "px": [304,352], "src": [32,32], "f": 0, "t": 48, "d": [127,723], "a": 1 }, + { "px": [320,352], "src": [32,32], "f": 0, "t": 48, "d": [127,724], "a": 1 }, + { "px": [0,368], "src": [32,32], "f": 0, "t": 48, "d": [127,736], "a": 1 }, + { "px": [16,368], "src": [32,32], "f": 0, "t": 48, "d": [127,737], "a": 1 }, + { "px": [32,368], "src": [32,32], "f": 0, "t": 48, "d": [127,738], "a": 1 }, + { "px": [64,368], "src": [32,32], "f": 0, "t": 48, "d": [127,740], "a": 1 }, + { "px": [80,368], "src": [32,32], "f": 0, "t": 48, "d": [127,741], "a": 1 }, + { "px": [96,368], "src": [32,32], "f": 0, "t": 48, "d": [127,742], "a": 1 }, + { "px": [128,368], "src": [32,32], "f": 0, "t": 48, "d": [127,744], "a": 1 }, + { "px": [144,368], "src": [32,32], "f": 0, "t": 48, "d": [127,745], "a": 1 }, + { "px": [160,368], "src": [32,32], "f": 0, "t": 48, "d": [127,746], "a": 1 }, + { "px": [176,368], "src": [32,32], "f": 0, "t": 48, "d": [127,747], "a": 1 }, + { "px": [192,368], "src": [32,32], "f": 0, "t": 48, "d": [127,748], "a": 1 }, + { "px": [208,368], "src": [32,32], "f": 0, "t": 48, "d": [127,749], "a": 1 }, + { "px": [224,368], "src": [32,32], "f": 0, "t": 48, "d": [127,750], "a": 1 }, + { "px": [240,368], "src": [32,32], "f": 0, "t": 48, "d": [127,751], "a": 1 }, + { "px": [256,368], "src": [32,32], "f": 0, "t": 48, "d": [127,752], "a": 1 }, + { "px": [272,368], "src": [32,32], "f": 0, "t": 48, "d": [127,753], "a": 1 }, + { "px": [288,368], "src": [32,32], "f": 0, "t": 48, "d": [127,754], "a": 1 }, + { "px": [304,368], "src": [32,32], "f": 0, "t": 48, "d": [127,755], "a": 1 }, + { "px": [320,368], "src": [32,32], "f": 0, "t": 48, "d": [127,756], "a": 1 }, + { "px": [0,400], "src": [32,32], "f": 0, "t": 48, "d": [127,800], "a": 1 }, + { "px": [0,416], "src": [32,32], "f": 0, "t": 48, "d": [127,832], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [127,864], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [127,928], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,992], "a": 1 }, + { "px": [0,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1056], "a": 1 }, + { "px": [0,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1120], "a": 1 }, + { "px": [432,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1147], "a": 1 }, + { "px": [448,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1148], "a": 1 }, + { "px": [464,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1149], "a": 1 }, + { "px": [480,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1150], "a": 1 }, + { "px": [496,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1151], "a": 1 }, + { "px": [0,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1152], "a": 1 }, + { "px": [432,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1179], "a": 1 }, + { "px": [448,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1180], "a": 1 }, + { "px": [464,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1181], "a": 1 }, + { "px": [480,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1182], "a": 1 }, + { "px": [496,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1183], "a": 1 }, + { "px": [0,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1184], "a": 1 }, + { "px": [432,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1211], "a": 1 }, + { "px": [448,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1212], "a": 1 }, + { "px": [464,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1213], "a": 1 }, + { "px": [480,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1214], "a": 1 }, + { "px": [0,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1216], "a": 1 }, + { "px": [432,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1243], "a": 1 }, + { "px": [448,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1244], "a": 1 }, + { "px": [464,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1245], "a": 1 }, + { "px": [496,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1247], "a": 1 }, + { "px": [0,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1248], "a": 1 }, + { "px": [432,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1275], "a": 1 }, + { "px": [448,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1276], "a": 1 }, + { "px": [480,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1278], "a": 1 }, + { "px": [0,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1280], "a": 1 }, + { "px": [432,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1307], "a": 1 }, + { "px": [448,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1308], "a": 1 }, + { "px": [464,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1309], "a": 1 }, + { "px": [496,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1311], "a": 1 }, + { "px": [0,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1312], "a": 1 }, + { "px": [432,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1339], "a": 1 }, + { "px": [448,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1340], "a": 1 }, + { "px": [464,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1341], "a": 1 }, + { "px": [480,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1342], "a": 1 }, + { "px": [496,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1343], "a": 1 }, + { "px": [0,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1344], "a": 1 }, + { "px": [432,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1371], "a": 1 }, + { "px": [448,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1372], "a": 1 }, + { "px": [464,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1373], "a": 1 }, + { "px": [480,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1374], "a": 1 }, + { "px": [496,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1375], "a": 1 }, + { "px": [0,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1376], "a": 1 }, + { "px": [432,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1403], "a": 1 }, + { "px": [448,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1404], "a": 1 }, + { "px": [464,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1405], "a": 1 }, + { "px": [480,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1406], "a": 1 }, + { "px": [496,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1407], "a": 1 }, + { "px": [432,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1435], "a": 1 }, + { "px": [448,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1436], "a": 1 }, + { "px": [464,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1437], "a": 1 }, + { "px": [480,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1438], "a": 1 }, + { "px": [496,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1439], "a": 1 }, + { "px": [0,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1440], "a": 1 }, + { "px": [16,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1441], "a": 1 }, + { "px": [32,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1442], "a": 1 }, + { "px": [64,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1444], "a": 1 }, + { "px": [96,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1446], "a": 1 }, + { "px": [112,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1447], "a": 1 }, + { "px": [128,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1448], "a": 1 }, + { "px": [160,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1450], "a": 1 }, + { "px": [192,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1452], "a": 1 }, + { "px": [224,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1454], "a": 1 }, + { "px": [240,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1455], "a": 1 }, + { "px": [256,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1456], "a": 1 }, + { "px": [272,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1457], "a": 1 }, + { "px": [288,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1458], "a": 1 }, + { "px": [304,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1459], "a": 1 }, + { "px": [320,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1460], "a": 1 }, + { "px": [336,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1461], "a": 1 }, + { "px": [352,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1462], "a": 1 }, + { "px": [368,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1463], "a": 1 }, + { "px": [384,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1464], "a": 1 }, + { "px": [416,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1466], "a": 1 }, + { "px": [432,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1467], "a": 1 }, + { "px": [448,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1468], "a": 1 }, + { "px": [480,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1470], "a": 1 }, + { "px": [496,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1471], "a": 1 }, + { "px": [16,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1473], "a": 1 }, + { "px": [48,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1475], "a": 1 }, + { "px": [64,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1476], "a": 1 }, + { "px": [80,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1477], "a": 1 }, + { "px": [96,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1478], "a": 1 }, + { "px": [112,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1479], "a": 1 }, + { "px": [144,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1481], "a": 1 }, + { "px": [160,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1482], "a": 1 }, + { "px": [176,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1483], "a": 1 }, + { "px": [208,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1485], "a": 1 }, + { "px": [240,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1487], "a": 1 }, + { "px": [256,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1488], "a": 1 }, + { "px": [272,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1489], "a": 1 }, + { "px": [288,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1490], "a": 1 }, + { "px": [304,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1491], "a": 1 }, + { "px": [320,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1492], "a": 1 }, + { "px": [336,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1493], "a": 1 }, + { "px": [368,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1495], "a": 1 }, + { "px": [384,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1496], "a": 1 }, + { "px": [400,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1497], "a": 1 }, + { "px": [416,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1498], "a": 1 }, + { "px": [432,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1499], "a": 1 }, + { "px": [448,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1500], "a": 1 }, + { "px": [464,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1501], "a": 1 }, + { "px": [496,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1503], "a": 1 }, + { "px": [0,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1504], "a": 1 }, + { "px": [32,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1506], "a": 1 }, + { "px": [64,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1508], "a": 1 }, + { "px": [80,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1509], "a": 1 }, + { "px": [96,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1510], "a": 1 }, + { "px": [112,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1511], "a": 1 }, + { "px": [128,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1512], "a": 1 }, + { "px": [160,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1514], "a": 1 }, + { "px": [176,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1515], "a": 1 }, + { "px": [192,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1516], "a": 1 }, + { "px": [224,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1518], "a": 1 }, + { "px": [240,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1519], "a": 1 }, + { "px": [256,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1520], "a": 1 }, + { "px": [272,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1521], "a": 1 }, + { "px": [288,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1522], "a": 1 }, + { "px": [304,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1523], "a": 1 }, + { "px": [320,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1524], "a": 1 }, + { "px": [336,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1525], "a": 1 }, + { "px": [352,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1526], "a": 1 }, + { "px": [384,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1528], "a": 1 }, + { "px": [400,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1529], "a": 1 }, + { "px": [416,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1530], "a": 1 }, + { "px": [432,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1531], "a": 1 }, + { "px": [448,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1532], "a": 1 }, + { "px": [480,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1534], "a": 1 }, + { "px": [496,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1535], "a": 1 }, + { "px": [0,0], "src": [96,96], "f": 0, "t": 144, "d": [126,0], "a": 1 }, + { "px": [32,0], "src": [96,96], "f": 0, "t": 144, "d": [126,2], "a": 1 }, + { "px": [64,0], "src": [64,96], "f": 0, "t": 142, "d": [126,4], "a": 1 }, + { "px": [192,0], "src": [96,96], "f": 0, "t": 144, "d": [126,12], "a": 1 }, + { "px": [256,0], "src": [96,96], "f": 0, "t": 144, "d": [126,16], "a": 1 }, + { "px": [320,0], "src": [96,96], "f": 0, "t": 144, "d": [126,20], "a": 1 }, + { "px": [352,0], "src": [64,96], "f": 0, "t": 142, "d": [126,22], "a": 1 }, + { "px": [480,0], "src": [96,96], "f": 0, "t": 144, "d": [126,30], "a": 1 }, + { "px": [48,16], "src": [64,96], "f": 0, "t": 142, "d": [126,35], "a": 1 }, + { "px": [240,16], "src": [96,96], "f": 0, "t": 144, "d": [126,47], "a": 1 }, + { "px": [272,16], "src": [64,96], "f": 0, "t": 142, "d": [126,49], "a": 1 }, + { "px": [368,16], "src": [64,96], "f": 0, "t": 142, "d": [126,55], "a": 1 }, + { "px": [400,16], "src": [64,96], "f": 0, "t": 142, "d": [126,57], "a": 1 }, + { "px": [432,16], "src": [96,96], "f": 0, "t": 144, "d": [126,59], "a": 1 }, + { "px": [32,32], "src": [64,96], "f": 0, "t": 142, "d": [126,66], "a": 1 }, + { "px": [64,32], "src": [64,96], "f": 0, "t": 142, "d": [126,68], "a": 1 }, + { "px": [224,32], "src": [96,96], "f": 0, "t": 144, "d": [126,78], "a": 1 }, + { "px": [384,32], "src": [96,96], "f": 0, "t": 144, "d": [126,88], "a": 1 }, + { "px": [416,32], "src": [64,96], "f": 0, "t": 142, "d": [126,90], "a": 1 }, + { "px": [48,48], "src": [64,96], "f": 0, "t": 142, "d": [126,99], "a": 1 }, + { "px": [144,48], "src": [64,96], "f": 0, "t": 142, "d": [126,105], "a": 1 }, + { "px": [208,48], "src": [64,96], "f": 0, "t": 142, "d": [126,109], "a": 1 }, + { "px": [240,48], "src": [96,96], "f": 0, "t": 144, "d": [126,111], "a": 1 }, + { "px": [336,48], "src": [64,96], "f": 0, "t": 142, "d": [126,117], "a": 1 }, + { "px": [368,48], "src": [96,96], "f": 0, "t": 144, "d": [126,119], "a": 1 }, + { "px": [400,48], "src": [96,96], "f": 0, "t": 144, "d": [126,121], "a": 1 }, + { "px": [0,64], "src": [64,96], "f": 0, "t": 142, "d": [126,128], "a": 1 }, + { "px": [192,64], "src": [96,96], "f": 0, "t": 144, "d": [126,140], "a": 1 }, + { "px": [224,64], "src": [64,96], "f": 0, "t": 142, "d": [126,142], "a": 1 }, + { "px": [320,64], "src": [96,96], "f": 0, "t": 144, "d": [126,148], "a": 1 }, + { "px": [352,64], "src": [64,96], "f": 0, "t": 142, "d": [126,150], "a": 1 }, + { "px": [16,80], "src": [96,96], "f": 0, "t": 144, "d": [126,161], "a": 1 }, + { "px": [48,80], "src": [96,96], "f": 0, "t": 144, "d": [126,163], "a": 1 }, + { "px": [176,80], "src": [96,96], "f": 0, "t": 144, "d": [126,171], "a": 1 }, + { "px": [240,80], "src": [96,96], "f": 0, "t": 144, "d": [126,175], "a": 1 }, + { "px": [336,80], "src": [64,96], "f": 0, "t": 142, "d": [126,181], "a": 1 }, + { "px": [368,80], "src": [64,96], "f": 0, "t": 142, "d": [126,183], "a": 1 }, + { "px": [32,96], "src": [96,96], "f": 0, "t": 144, "d": [126,194], "a": 1 }, + { "px": [64,96], "src": [96,96], "f": 0, "t": 144, "d": [126,196], "a": 1 }, + { "px": [96,96], "src": [64,96], "f": 0, "t": 142, "d": [126,198], "a": 1 }, + { "px": [192,96], "src": [96,96], "f": 0, "t": 144, "d": [126,204], "a": 1 }, + { "px": [352,96], "src": [64,96], "f": 0, "t": 142, "d": [126,214], "a": 1 }, + { "px": [384,96], "src": [64,96], "f": 0, "t": 142, "d": [126,216], "a": 1 }, + { "px": [16,112], "src": [64,96], "f": 0, "t": 142, "d": [126,225], "a": 1 }, + { "px": [80,112], "src": [64,96], "f": 0, "t": 142, "d": [126,229], "a": 1 }, + { "px": [176,112], "src": [96,96], "f": 0, "t": 144, "d": [126,235], "a": 1 }, + { "px": [208,112], "src": [64,96], "f": 0, "t": 142, "d": [126,237], "a": 1 }, + { "px": [240,112], "src": [64,96], "f": 0, "t": 142, "d": [126,239], "a": 1 }, + { "px": [336,112], "src": [64,96], "f": 0, "t": 142, "d": [126,245], "a": 1 }, + { "px": [368,112], "src": [64,96], "f": 0, "t": 142, "d": [126,247], "a": 1 }, + { "px": [0,128], "src": [64,96], "f": 0, "t": 142, "d": [126,256], "a": 1 }, + { "px": [64,128], "src": [96,96], "f": 0, "t": 144, "d": [126,260], "a": 1 }, + { "px": [160,128], "src": [96,96], "f": 0, "t": 144, "d": [126,266], "a": 1 }, + { "px": [192,128], "src": [64,96], "f": 0, "t": 142, "d": [126,268], "a": 1 }, + { "px": [224,128], "src": [64,96], "f": 0, "t": 142, "d": [126,270], "a": 1 }, + { "px": [256,128], "src": [64,96], "f": 0, "t": 142, "d": [126,272], "a": 1 }, + { "px": [352,128], "src": [64,96], "f": 0, "t": 142, "d": [126,278], "a": 1 }, + { "px": [384,128], "src": [96,96], "f": 0, "t": 144, "d": [126,280], "a": 1 }, + { "px": [16,144], "src": [64,96], "f": 0, "t": 142, "d": [126,289], "a": 1 }, + { "px": [80,144], "src": [64,96], "f": 0, "t": 142, "d": [126,293], "a": 1 }, + { "px": [112,144], "src": [96,96], "f": 0, "t": 144, "d": [126,295], "a": 1 }, + { "px": [208,144], "src": [96,96], "f": 0, "t": 144, "d": [126,301], "a": 1 }, + { "px": [336,144], "src": [64,96], "f": 0, "t": 142, "d": [126,309], "a": 1 }, + { "px": [368,144], "src": [64,96], "f": 0, "t": 142, "d": [126,311], "a": 1 }, + { "px": [96,160], "src": [96,96], "f": 0, "t": 144, "d": [126,326], "a": 1 }, + { "px": [160,160], "src": [64,96], "f": 0, "t": 142, "d": [126,330], "a": 1 }, + { "px": [192,160], "src": [96,96], "f": 0, "t": 144, "d": [126,332], "a": 1 }, + { "px": [224,160], "src": [64,96], "f": 0, "t": 142, "d": [126,334], "a": 1 }, + { "px": [320,160], "src": [64,96], "f": 0, "t": 142, "d": [126,340], "a": 1 }, + { "px": [352,160], "src": [64,96], "f": 0, "t": 142, "d": [126,342], "a": 1 }, + { "px": [384,160], "src": [64,96], "f": 0, "t": 142, "d": [126,344], "a": 1 }, + { "px": [112,176], "src": [96,96], "f": 0, "t": 144, "d": [126,359], "a": 1 }, + { "px": [176,176], "src": [96,96], "f": 0, "t": 144, "d": [126,363], "a": 1 }, + { "px": [208,176], "src": [64,96], "f": 0, "t": 142, "d": [126,365], "a": 1 }, + { "px": [368,176], "src": [96,96], "f": 0, "t": 144, "d": [126,375], "a": 1 }, + { "px": [96,192], "src": [64,96], "f": 0, "t": 142, "d": [126,390], "a": 1 }, + { "px": [352,192], "src": [64,96], "f": 0, "t": 142, "d": [126,406], "a": 1 }, + { "px": [384,192], "src": [96,96], "f": 0, "t": 144, "d": [126,408], "a": 1 }, + { "px": [240,208], "src": [64,96], "f": 0, "t": 142, "d": [126,431], "a": 1 }, + { "px": [304,208], "src": [96,96], "f": 0, "t": 144, "d": [126,435], "a": 1 }, + { "px": [368,208], "src": [64,96], "f": 0, "t": 142, "d": [126,439], "a": 1 }, + { "px": [0,224], "src": [64,96], "f": 0, "t": 142, "d": [126,448], "a": 1 }, + { "px": [96,224], "src": [64,96], "f": 0, "t": 142, "d": [126,454], "a": 1 }, + { "px": [160,224], "src": [64,96], "f": 0, "t": 142, "d": [126,458], "a": 1 }, + { "px": [256,224], "src": [64,96], "f": 0, "t": 142, "d": [126,464], "a": 1 }, + { "px": [288,224], "src": [64,96], "f": 0, "t": 142, "d": [126,466], "a": 1 }, + { "px": [320,224], "src": [64,96], "f": 0, "t": 142, "d": [126,468], "a": 1 }, + { "px": [352,224], "src": [96,96], "f": 0, "t": 144, "d": [126,470], "a": 1 }, + { "px": [384,224], "src": [96,96], "f": 0, "t": 144, "d": [126,472], "a": 1 }, + { "px": [16,240], "src": [64,96], "f": 0, "t": 142, "d": [126,481], "a": 1 }, + { "px": [80,240], "src": [64,96], "f": 0, "t": 142, "d": [126,485], "a": 1 }, + { "px": [112,240], "src": [64,96], "f": 0, "t": 142, "d": [126,487], "a": 1 }, + { "px": [240,240], "src": [96,96], "f": 0, "t": 144, "d": [126,495], "a": 1 }, + { "px": [272,240], "src": [96,96], "f": 0, "t": 144, "d": [126,497], "a": 1 }, + { "px": [368,240], "src": [96,96], "f": 0, "t": 144, "d": [126,503], "a": 1 }, + { "px": [96,256], "src": [96,96], "f": 0, "t": 144, "d": [126,518], "a": 1 }, + { "px": [128,256], "src": [96,96], "f": 0, "t": 144, "d": [126,520], "a": 1 }, + { "px": [384,256], "src": [64,96], "f": 0, "t": 142, "d": [126,536], "a": 1 }, + { "px": [144,272], "src": [64,96], "f": 0, "t": 142, "d": [126,553], "a": 1 }, + { "px": [336,272], "src": [96,96], "f": 0, "t": 144, "d": [126,565], "a": 1 }, + { "px": [0,288], "src": [96,96], "f": 0, "t": 144, "d": [126,576], "a": 1 }, + { "px": [64,288], "src": [64,96], "f": 0, "t": 142, "d": [126,580], "a": 1 }, + { "px": [192,288], "src": [96,96], "f": 0, "t": 144, "d": [126,588], "a": 1 }, + { "px": [256,288], "src": [96,96], "f": 0, "t": 144, "d": [126,592], "a": 1 }, + { "px": [288,288], "src": [96,96], "f": 0, "t": 144, "d": [126,594], "a": 1 }, + { "px": [320,288], "src": [96,96], "f": 0, "t": 144, "d": [126,596], "a": 1 }, + { "px": [176,304], "src": [64,96], "f": 0, "t": 142, "d": [126,619], "a": 1 }, + { "px": [272,304], "src": [96,96], "f": 0, "t": 144, "d": [126,625], "a": 1 }, + { "px": [304,304], "src": [64,96], "f": 0, "t": 142, "d": [126,627], "a": 1 }, + { "px": [368,304], "src": [64,96], "f": 0, "t": 142, "d": [126,631], "a": 1 }, + { "px": [0,320], "src": [96,96], "f": 0, "t": 144, "d": [126,640], "a": 1 }, + { "px": [192,320], "src": [96,96], "f": 0, "t": 144, "d": [126,652], "a": 1 }, + { "px": [224,320], "src": [64,96], "f": 0, "t": 142, "d": [126,654], "a": 1 }, + { "px": [256,320], "src": [64,96], "f": 0, "t": 142, "d": [126,656], "a": 1 }, + { "px": [320,320], "src": [64,96], "f": 0, "t": 142, "d": [126,660], "a": 1 }, + { "px": [384,320], "src": [64,96], "f": 0, "t": 142, "d": [126,664], "a": 1 }, + { "px": [48,336], "src": [64,96], "f": 0, "t": 142, "d": [126,675], "a": 1 }, + { "px": [80,336], "src": [96,96], "f": 0, "t": 144, "d": [126,677], "a": 1 }, + { "px": [176,336], "src": [96,96], "f": 0, "t": 144, "d": [126,683], "a": 1 }, + { "px": [208,336], "src": [96,96], "f": 0, "t": 144, "d": [126,685], "a": 1 }, + { "px": [240,336], "src": [96,96], "f": 0, "t": 144, "d": [126,687], "a": 1 }, + { "px": [272,336], "src": [96,96], "f": 0, "t": 144, "d": [126,689], "a": 1 }, + { "px": [368,336], "src": [96,96], "f": 0, "t": 144, "d": [126,695], "a": 1 }, + { "px": [96,352], "src": [96,96], "f": 0, "t": 144, "d": [126,710], "a": 1 }, + { "px": [160,352], "src": [96,96], "f": 0, "t": 144, "d": [126,714], "a": 1 }, + { "px": [192,352], "src": [96,96], "f": 0, "t": 144, "d": [126,716], "a": 1 }, + { "px": [48,368], "src": [96,96], "f": 0, "t": 144, "d": [126,739], "a": 1 }, + { "px": [112,368], "src": [96,96], "f": 0, "t": 144, "d": [126,743], "a": 1 }, + { "px": [0,384], "src": [64,96], "f": 0, "t": 142, "d": [126,768], "a": 1 }, + { "px": [0,448], "src": [96,96], "f": 0, "t": 144, "d": [126,896], "a": 1 }, + { "px": [0,480], "src": [64,96], "f": 0, "t": 142, "d": [126,960], "a": 1 }, + { "px": [0,512], "src": [64,96], "f": 0, "t": 142, "d": [126,1024], "a": 1 }, + { "px": [0,544], "src": [64,96], "f": 0, "t": 142, "d": [126,1088], "a": 1 }, + { "px": [496,592], "src": [64,96], "f": 0, "t": 142, "d": [126,1215], "a": 1 }, + { "px": [480,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1246], "a": 1 }, + { "px": [464,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1277], "a": 1 }, + { "px": [496,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1279], "a": 1 }, + { "px": [480,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1310], "a": 1 }, + { "px": [0,704], "src": [64,96], "f": 0, "t": 142, "d": [126,1408], "a": 1 }, + { "px": [48,720], "src": [64,96], "f": 0, "t": 142, "d": [126,1443], "a": 1 }, + { "px": [80,720], "src": [64,96], "f": 0, "t": 142, "d": [126,1445], "a": 1 }, + { "px": [144,720], "src": [96,96], "f": 0, "t": 144, "d": [126,1449], "a": 1 }, + { "px": [176,720], "src": [64,96], "f": 0, "t": 142, "d": [126,1451], "a": 1 }, + { "px": [208,720], "src": [96,96], "f": 0, "t": 144, "d": [126,1453], "a": 1 }, + { "px": [400,720], "src": [96,96], "f": 0, "t": 144, "d": [126,1465], "a": 1 }, + { "px": [464,720], "src": [96,96], "f": 0, "t": 144, "d": [126,1469], "a": 1 }, + { "px": [0,736], "src": [96,96], "f": 0, "t": 144, "d": [126,1472], "a": 1 }, + { "px": [32,736], "src": [96,96], "f": 0, "t": 144, "d": [126,1474], "a": 1 }, + { "px": [128,736], "src": [96,96], "f": 0, "t": 144, "d": [126,1480], "a": 1 }, + { "px": [192,736], "src": [64,96], "f": 0, "t": 142, "d": [126,1484], "a": 1 }, + { "px": [224,736], "src": [96,96], "f": 0, "t": 144, "d": [126,1486], "a": 1 }, + { "px": [352,736], "src": [96,96], "f": 0, "t": 144, "d": [126,1494], "a": 1 }, + { "px": [480,736], "src": [64,96], "f": 0, "t": 142, "d": [126,1502], "a": 1 }, + { "px": [16,752], "src": [96,96], "f": 0, "t": 144, "d": [126,1505], "a": 1 }, + { "px": [48,752], "src": [96,96], "f": 0, "t": 144, "d": [126,1507], "a": 1 }, + { "px": [144,752], "src": [64,96], "f": 0, "t": 142, "d": [126,1513], "a": 1 }, + { "px": [208,752], "src": [64,96], "f": 0, "t": 142, "d": [126,1517], "a": 1 }, + { "px": [368,752], "src": [96,96], "f": 0, "t": 144, "d": [126,1527], "a": 1 }, + { "px": [464,752], "src": [96,96], "f": 0, "t": 144, "d": [126,1533], "a": 1 }, + { "px": [448,96], "src": [256,160], "f": 0, "t": 246, "d": [12,220], "a": 1 }, + { "px": [464,96], "src": [256,160], "f": 0, "t": 246, "d": [12,221], "a": 1 }, + { "px": [480,96], "src": [256,160], "f": 0, "t": 246, "d": [12,222], "a": 1 }, + { "px": [496,96], "src": [256,160], "f": 0, "t": 246, "d": [12,223], "a": 1 }, + { "px": [384,384], "src": [256,160], "f": 0, "t": 246, "d": [12,792], "a": 1 }, + { "px": [400,384], "src": [256,160], "f": 0, "t": 246, "d": [12,793], "a": 1 }, + { "px": [416,384], "src": [256,160], "f": 0, "t": 246, "d": [12,794], "a": 1 }, + { "px": [480,384], "src": [256,160], "f": 0, "t": 246, "d": [12,798], "a": 1 }, + { "px": [64,416], "src": [256,160], "f": 0, "t": 246, "d": [12,836], "a": 1 }, + { "px": [128,416], "src": [256,160], "f": 0, "t": 246, "d": [12,840], "a": 1 }, + { "px": [144,416], "src": [256,160], "f": 0, "t": 246, "d": [12,841], "a": 1 }, + { "px": [192,416], "src": [256,160], "f": 0, "t": 246, "d": [12,844], "a": 1 }, + { "px": [208,416], "src": [256,160], "f": 0, "t": 246, "d": [12,845], "a": 1 }, + { "px": [256,416], "src": [256,160], "f": 0, "t": 246, "d": [12,848], "a": 1 }, + { "px": [272,416], "src": [256,160], "f": 0, "t": 246, "d": [12,849], "a": 1 }, + { "px": [320,416], "src": [256,160], "f": 0, "t": 246, "d": [12,852], "a": 1 }, + { "px": [336,416], "src": [256,160], "f": 0, "t": 246, "d": [12,853], "a": 1 }, + { "px": [480,128], "src": [256,96], "f": 0, "t": 154, "d": [9,286], "a": 1 }, + { "px": [496,128], "src": [256,96], "f": 0, "t": 154, "d": [9,287], "a": 1 }, + { "px": [480,448], "src": [256,96], "f": 0, "t": 154, "d": [9,926], "a": 1 }, + { "px": [496,448], "src": [256,96], "f": 0, "t": 154, "d": [9,927], "a": 1 }, + { "px": [400,512], "src": [256,96], "f": 0, "t": 154, "d": [9,1049], "a": 1 }, + { "px": [416,512], "src": [256,96], "f": 0, "t": 154, "d": [9,1050], "a": 1 }, + { "px": [432,512], "src": [256,96], "f": 0, "t": 154, "d": [9,1051], "a": 1 }, + { "px": [368,576], "src": [256,96], "f": 0, "t": 154, "d": [9,1175], "a": 1 }, + { "px": [64,672], "src": [256,96], "f": 0, "t": 154, "d": [9,1348], "a": 1 }, + { "px": [144,672], "src": [256,96], "f": 0, "t": 154, "d": [9,1353], "a": 1 }, + { "px": [160,672], "src": [256,96], "f": 0, "t": 154, "d": [9,1354], "a": 1 }, + { "px": [224,672], "src": [256,96], "f": 0, "t": 154, "d": [9,1358], "a": 1 }, + { "px": [240,672], "src": [256,96], "f": 0, "t": 154, "d": [9,1359], "a": 1 }, + { "px": [272,672], "src": [256,96], "f": 0, "t": 154, "d": [9,1361], "a": 1 }, + { "px": [288,672], "src": [256,96], "f": 0, "t": 154, "d": [9,1362], "a": 1 }, + { "px": [304,672], "src": [256,96], "f": 0, "t": 154, "d": [9,1363], "a": 1 }, + { "px": [320,672], "src": [256,96], "f": 0, "t": 154, "d": [9,1364], "a": 1 }, + { "px": [336,672], "src": [256,96], "f": 0, "t": 154, "d": [9,1365], "a": 1 }, + { "px": [432,112], "src": [224,128], "f": 1, "t": 198, "d": [10,251], "a": 1 }, + { "px": [432,128], "src": [224,128], "f": 1, "t": 198, "d": [10,283], "a": 1 }, + { "px": [432,144], "src": [224,128], "f": 1, "t": 198, "d": [10,315], "a": 1 }, + { "px": [464,144], "src": [224,128], "f": 0, "t": 198, "d": [10,317], "a": 1 }, + { "px": [432,160], "src": [224,128], "f": 1, "t": 198, "d": [10,347], "a": 1 }, + { "px": [464,160], "src": [224,128], "f": 0, "t": 198, "d": [10,349], "a": 1 }, + { "px": [432,176], "src": [224,128], "f": 1, "t": 198, "d": [10,379], "a": 1 }, + { "px": [464,176], "src": [224,128], "f": 0, "t": 198, "d": [10,381], "a": 1 }, + { "px": [432,192], "src": [224,128], "f": 1, "t": 198, "d": [10,411], "a": 1 }, + { "px": [464,192], "src": [224,128], "f": 0, "t": 198, "d": [10,413], "a": 1 }, + { "px": [432,208], "src": [224,128], "f": 1, "t": 198, "d": [10,443], "a": 1 }, + { "px": [464,208], "src": [224,128], "f": 0, "t": 198, "d": [10,445], "a": 1 }, + { "px": [432,224], "src": [224,128], "f": 1, "t": 198, "d": [10,475], "a": 1 }, + { "px": [464,224], "src": [224,128], "f": 0, "t": 198, "d": [10,477], "a": 1 }, + { "px": [432,240], "src": [224,128], "f": 1, "t": 198, "d": [10,507], "a": 1 }, + { "px": [464,240], "src": [224,128], "f": 0, "t": 198, "d": [10,509], "a": 1 }, + { "px": [432,256], "src": [224,128], "f": 1, "t": 198, "d": [10,539], "a": 1 }, + { "px": [464,256], "src": [224,128], "f": 0, "t": 198, "d": [10,541], "a": 1 }, + { "px": [432,272], "src": [224,128], "f": 1, "t": 198, "d": [10,571], "a": 1 }, + { "px": [464,272], "src": [224,128], "f": 0, "t": 198, "d": [10,573], "a": 1 }, + { "px": [432,288], "src": [224,128], "f": 1, "t": 198, "d": [10,603], "a": 1 }, + { "px": [464,288], "src": [224,128], "f": 0, "t": 198, "d": [10,605], "a": 1 }, + { "px": [432,304], "src": [224,128], "f": 1, "t": 198, "d": [10,635], "a": 1 }, + { "px": [464,304], "src": [224,128], "f": 0, "t": 198, "d": [10,637], "a": 1 }, + { "px": [432,320], "src": [224,128], "f": 1, "t": 198, "d": [10,667], "a": 1 }, + { "px": [464,320], "src": [224,128], "f": 0, "t": 198, "d": [10,669], "a": 1 }, + { "px": [432,336], "src": [224,128], "f": 1, "t": 198, "d": [10,699], "a": 1 }, + { "px": [464,336], "src": [224,128], "f": 0, "t": 198, "d": [10,701], "a": 1 }, + { "px": [432,352], "src": [224,128], "f": 1, "t": 198, "d": [10,731], "a": 1 }, + { "px": [464,352], "src": [224,128], "f": 0, "t": 198, "d": [10,733], "a": 1 }, + { "px": [432,368], "src": [224,128], "f": 1, "t": 198, "d": [10,763], "a": 1 }, + { "px": [464,368], "src": [224,128], "f": 0, "t": 198, "d": [10,765], "a": 1 }, + { "px": [368,400], "src": [224,128], "f": 1, "t": 198, "d": [10,823], "a": 1 }, + { "px": [368,416], "src": [224,128], "f": 1, "t": 198, "d": [10,855], "a": 1 }, + { "px": [48,432], "src": [224,128], "f": 1, "t": 198, "d": [10,867], "a": 1 }, + { "px": [96,432], "src": [224,128], "f": 0, "t": 198, "d": [10,870], "a": 1 }, + { "px": [112,432], "src": [224,128], "f": 1, "t": 198, "d": [10,871], "a": 1 }, + { "px": [160,432], "src": [224,128], "f": 0, "t": 198, "d": [10,874], "a": 1 }, + { "px": [176,432], "src": [224,128], "f": 1, "t": 198, "d": [10,875], "a": 1 }, + { "px": [224,432], "src": [224,128], "f": 0, "t": 198, "d": [10,878], "a": 1 }, + { "px": [240,432], "src": [224,128], "f": 1, "t": 198, "d": [10,879], "a": 1 }, + { "px": [288,432], "src": [224,128], "f": 0, "t": 198, "d": [10,882], "a": 1 }, + { "px": [304,432], "src": [224,128], "f": 1, "t": 198, "d": [10,883], "a": 1 }, + { "px": [352,432], "src": [224,128], "f": 0, "t": 198, "d": [10,886], "a": 1 }, + { "px": [368,432], "src": [224,128], "f": 1, "t": 198, "d": [10,887], "a": 1 }, + { "px": [48,448], "src": [224,128], "f": 1, "t": 198, "d": [10,899], "a": 1 }, + { "px": [48,464], "src": [224,128], "f": 1, "t": 198, "d": [10,931], "a": 1 }, + { "px": [464,464], "src": [224,128], "f": 0, "t": 198, "d": [10,957], "a": 1 }, + { "px": [48,480], "src": [224,128], "f": 1, "t": 198, "d": [10,963], "a": 1 }, + { "px": [464,480], "src": [224,128], "f": 0, "t": 198, "d": [10,989], "a": 1 }, + { "px": [48,496], "src": [224,128], "f": 1, "t": 198, "d": [10,995], "a": 1 }, + { "px": [464,496], "src": [224,128], "f": 0, "t": 198, "d": [10,1021], "a": 1 }, + { "px": [48,512], "src": [224,128], "f": 1, "t": 198, "d": [10,1027], "a": 1 }, + { "px": [48,528], "src": [224,128], "f": 1, "t": 198, "d": [10,1059], "a": 1 }, + { "px": [384,528], "src": [224,128], "f": 0, "t": 198, "d": [10,1080], "a": 1 }, + { "px": [48,544], "src": [224,128], "f": 1, "t": 198, "d": [10,1091], "a": 1 }, + { "px": [384,544], "src": [224,128], "f": 0, "t": 198, "d": [10,1112], "a": 1 }, + { "px": [48,560], "src": [224,128], "f": 1, "t": 198, "d": [10,1123], "a": 1 }, + { "px": [384,560], "src": [224,128], "f": 0, "t": 198, "d": [10,1144], "a": 1 }, + { "px": [48,576], "src": [224,128], "f": 1, "t": 198, "d": [10,1155], "a": 1 }, + { "px": [48,592], "src": [224,128], "f": 1, "t": 198, "d": [10,1187], "a": 1 }, + { "px": [384,592], "src": [224,128], "f": 0, "t": 198, "d": [10,1208], "a": 1 }, + { "px": [48,608], "src": [224,128], "f": 1, "t": 198, "d": [10,1219], "a": 1 }, + { "px": [384,608], "src": [224,128], "f": 0, "t": 198, "d": [10,1240], "a": 1 }, + { "px": [48,624], "src": [224,128], "f": 1, "t": 198, "d": [10,1251], "a": 1 }, + { "px": [384,624], "src": [224,128], "f": 0, "t": 198, "d": [10,1272], "a": 1 }, + { "px": [48,640], "src": [224,128], "f": 1, "t": 198, "d": [10,1283], "a": 1 }, + { "px": [384,640], "src": [224,128], "f": 0, "t": 198, "d": [10,1304], "a": 1 }, + { "px": [48,656], "src": [224,128], "f": 1, "t": 198, "d": [10,1315], "a": 1 }, + { "px": [384,656], "src": [224,128], "f": 0, "t": 198, "d": [10,1336], "a": 1 }, + { "px": [432,384], "src": [224,96], "f": 3, "t": 152, "d": [11,795], "a": 1 }, + { "px": [112,448], "src": [224,96], "f": 3, "t": 152, "d": [11,903], "a": 1 }, + { "px": [160,448], "src": [224,96], "f": 2, "t": 152, "d": [11,906], "a": 1 }, + { "px": [176,448], "src": [224,96], "f": 3, "t": 152, "d": [11,907], "a": 1 }, + { "px": [224,448], "src": [224,96], "f": 2, "t": 152, "d": [11,910], "a": 1 }, + { "px": [240,448], "src": [224,96], "f": 3, "t": 152, "d": [11,911], "a": 1 }, + { "px": [288,448], "src": [224,96], "f": 2, "t": 152, "d": [11,914], "a": 1 }, + { "px": [304,448], "src": [224,96], "f": 3, "t": 152, "d": [11,915], "a": 1 }, + { "px": [352,448], "src": [224,96], "f": 2, "t": 152, "d": [11,918], "a": 1 }, + { "px": [368,448], "src": [224,96], "f": 3, "t": 152, "d": [11,919], "a": 1 }, + { "px": [464,448], "src": [224,96], "f": 0, "t": 152, "d": [11,925], "a": 1 }, + { "px": [384,512], "src": [224,96], "f": 0, "t": 152, "d": [11,1048], "a": 1 }, + { "px": [352,576], "src": [224,96], "f": 0, "t": 152, "d": [11,1174], "a": 1 }, + { "px": [432,96], "src": [224,96], "f": 0, "t": 152, "d": [14,219], "a": 1 }, + { "px": [368,384], "src": [224,96], "f": 0, "t": 152, "d": [14,791], "a": 1 }, + { "px": [48,416], "src": [224,96], "f": 0, "t": 152, "d": [14,835], "a": 1 }, + { "px": [96,416], "src": [224,96], "f": 1, "t": 152, "d": [14,838], "a": 1 }, + { "px": [112,416], "src": [224,96], "f": 0, "t": 152, "d": [14,839], "a": 1 }, + { "px": [160,416], "src": [224,96], "f": 1, "t": 152, "d": [14,842], "a": 1 }, + { "px": [176,416], "src": [224,96], "f": 0, "t": 152, "d": [14,843], "a": 1 }, + { "px": [224,416], "src": [224,96], "f": 1, "t": 152, "d": [14,846], "a": 1 }, + { "px": [240,416], "src": [224,96], "f": 0, "t": 152, "d": [14,847], "a": 1 }, + { "px": [288,416], "src": [224,96], "f": 1, "t": 152, "d": [14,850], "a": 1 }, + { "px": [304,416], "src": [224,96], "f": 0, "t": 152, "d": [14,851], "a": 1 }, + { "px": [352,416], "src": [224,96], "f": 1, "t": 152, "d": [14,854], "a": 1 }, + { "px": [464,512], "src": [224,96], "f": 3, "t": 152, "d": [14,1053], "a": 1 }, + { "px": [384,576], "src": [224,96], "f": 1, "t": 152, "d": [14,1176], "a": 1 }, + { "px": [48,672], "src": [224,96], "f": 2, "t": 152, "d": [14,1347], "a": 1 }, + { "px": [384,672], "src": [224,96], "f": 3, "t": 152, "d": [14,1368], "a": 1 }, + { "px": [464,384], "src": [192,192], "f": 0, "t": 288, "d": [78,797], "a": 1 }, + { "px": [496,384], "src": [192,192], "f": 0, "t": 288, "d": [78,799], "a": 1 }, + { "px": [80,416], "src": [160,192], "f": 0, "t": 286, "d": [78,837], "a": 1 }, + { "px": [96,448], "src": [192,192], "f": 0, "t": 288, "d": [78,902], "a": 1 }, + { "px": [464,128], "src": [32,0], "f": 0, "t": 2, "d": [80,285], "a": 1 }, + { "px": [448,512], "src": [32,0], "f": 0, "t": 2, "d": [80,1052], "a": 1 }, + { "px": [80,672], "src": [32,0], "f": 0, "t": 2, "d": [80,1349], "a": 1 }, + { "px": [96,672], "src": [32,0], "f": 0, "t": 2, "d": [80,1350], "a": 1 }, + { "px": [112,672], "src": [32,0], "f": 0, "t": 2, "d": [80,1351], "a": 1 }, + { "px": [128,672], "src": [32,0], "f": 0, "t": 2, "d": [80,1352], "a": 1 }, + { "px": [176,672], "src": [32,0], "f": 0, "t": 2, "d": [80,1355], "a": 1 }, + { "px": [192,672], "src": [32,0], "f": 0, "t": 2, "d": [80,1356], "a": 1 }, + { "px": [208,672], "src": [32,0], "f": 0, "t": 2, "d": [80,1357], "a": 1 }, + { "px": [256,672], "src": [32,0], "f": 0, "t": 2, "d": [80,1360], "a": 1 }, + { "px": [352,672], "src": [32,0], "f": 0, "t": 2, "d": [80,1366], "a": 1 }, + { "px": [368,672], "src": [32,0], "f": 0, "t": 2, "d": [80,1367], "a": 1 }, + { "px": [480,112], "src": [32,96], "f": 0, "t": 140, "d": [110,254], "a": 1 }, + { "px": [496,112], "src": [32,96], "f": 0, "t": 140, "d": [110,255], "a": 1 }, + { "px": [480,432], "src": [0,96], "f": 0, "t": 138, "d": [110,894], "a": 1 }, + { "px": [400,496], "src": [0,96], "f": 0, "t": 138, "d": [110,1017], "a": 1 }, + { "px": [448,496], "src": [0,96], "f": 0, "t": 138, "d": [110,1020], "a": 1 }, + { "px": [80,656], "src": [32,96], "f": 0, "t": 140, "d": [110,1317], "a": 1 }, + { "px": [96,656], "src": [0,96], "f": 0, "t": 138, "d": [110,1318], "a": 1 }, + { "px": [112,656], "src": [32,96], "f": 0, "t": 140, "d": [110,1319], "a": 1 }, + { "px": [128,656], "src": [0,96], "f": 0, "t": 138, "d": [110,1320], "a": 1 }, + { "px": [144,656], "src": [32,96], "f": 0, "t": 140, "d": [110,1321], "a": 1 }, + { "px": [160,656], "src": [32,96], "f": 0, "t": 140, "d": [110,1322], "a": 1 }, + { "px": [192,656], "src": [32,96], "f": 0, "t": 140, "d": [110,1324], "a": 1 }, + { "px": [224,656], "src": [0,96], "f": 0, "t": 138, "d": [110,1326], "a": 1 }, + { "px": [304,656], "src": [32,96], "f": 0, "t": 140, "d": [110,1331], "a": 1 }, + { "px": [320,656], "src": [32,96], "f": 0, "t": 140, "d": [110,1332], "a": 1 }, + { "px": [352,656], "src": [0,96], "f": 0, "t": 138, "d": [110,1334], "a": 1 } + ], + "seed": 6011873, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a3694a50-66b0-11ec-9cd7-a5198b47a7dd", + "levelId": 65, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [464,112], "src": [320,272], "f": 0, "t": 411, "d": [108,253], "a": 1 }, + { "px": [480,112], "src": [320,272], "f": 0, "t": 411, "d": [108,254], "a": 1 }, + { "px": [496,112], "src": [320,272], "f": 0, "t": 411, "d": [108,255], "a": 1 }, + { "px": [416,400], "src": [320,272], "f": 0, "t": 411, "d": [108,826], "a": 1 }, + { "px": [432,400], "src": [320,272], "f": 0, "t": 411, "d": [108,827], "a": 1 }, + { "px": [448,400], "src": [320,272], "f": 0, "t": 411, "d": [108,828], "a": 1 }, + { "px": [464,400], "src": [320,272], "f": 0, "t": 411, "d": [108,829], "a": 1 }, + { "px": [480,400], "src": [320,272], "f": 0, "t": 411, "d": [108,830], "a": 1 }, + { "px": [496,400], "src": [320,272], "f": 0, "t": 411, "d": [108,831], "a": 1 }, + { "px": [400,416], "src": [320,272], "f": 0, "t": 411, "d": [108,857], "a": 1 }, + { "px": [416,416], "src": [320,272], "f": 0, "t": 411, "d": [108,858], "a": 1 }, + { "px": [432,416], "src": [320,272], "f": 0, "t": 411, "d": [108,859], "a": 1 }, + { "px": [448,416], "src": [320,272], "f": 0, "t": 411, "d": [108,860], "a": 1 }, + { "px": [464,416], "src": [320,272], "f": 0, "t": 411, "d": [108,861], "a": 1 }, + { "px": [480,416], "src": [320,272], "f": 0, "t": 411, "d": [108,862], "a": 1 }, + { "px": [496,416], "src": [320,272], "f": 0, "t": 411, "d": [108,863], "a": 1 }, + { "px": [400,432], "src": [320,272], "f": 0, "t": 411, "d": [108,889], "a": 1 }, + { "px": [416,432], "src": [320,272], "f": 0, "t": 411, "d": [108,890], "a": 1 }, + { "px": [432,432], "src": [320,272], "f": 0, "t": 411, "d": [108,891], "a": 1 }, + { "px": [448,432], "src": [320,272], "f": 0, "t": 411, "d": [108,892], "a": 1 }, + { "px": [464,432], "src": [320,272], "f": 0, "t": 411, "d": [108,893], "a": 1 }, + { "px": [496,432], "src": [320,272], "f": 0, "t": 411, "d": [108,895], "a": 1 }, + { "px": [400,448], "src": [320,272], "f": 0, "t": 411, "d": [108,921], "a": 1 }, + { "px": [416,448], "src": [320,272], "f": 0, "t": 411, "d": [108,922], "a": 1 }, + { "px": [432,448], "src": [320,272], "f": 0, "t": 411, "d": [108,923], "a": 1 }, + { "px": [80,464], "src": [320,272], "f": 0, "t": 411, "d": [108,933], "a": 1 }, + { "px": [112,464], "src": [320,272], "f": 0, "t": 411, "d": [108,935], "a": 1 }, + { "px": [128,464], "src": [320,272], "f": 0, "t": 411, "d": [108,936], "a": 1 }, + { "px": [144,464], "src": [320,272], "f": 0, "t": 411, "d": [108,937], "a": 1 }, + { "px": [160,464], "src": [320,272], "f": 0, "t": 411, "d": [108,938], "a": 1 }, + { "px": [176,464], "src": [320,272], "f": 0, "t": 411, "d": [108,939], "a": 1 }, + { "px": [192,464], "src": [320,272], "f": 0, "t": 411, "d": [108,940], "a": 1 }, + { "px": [208,464], "src": [320,272], "f": 0, "t": 411, "d": [108,941], "a": 1 }, + { "px": [240,464], "src": [320,272], "f": 0, "t": 411, "d": [108,943], "a": 1 }, + { "px": [256,464], "src": [320,272], "f": 0, "t": 411, "d": [108,944], "a": 1 }, + { "px": [272,464], "src": [320,272], "f": 0, "t": 411, "d": [108,945], "a": 1 }, + { "px": [288,464], "src": [320,272], "f": 0, "t": 411, "d": [108,946], "a": 1 }, + { "px": [304,464], "src": [320,272], "f": 0, "t": 411, "d": [108,947], "a": 1 }, + { "px": [320,464], "src": [320,272], "f": 0, "t": 411, "d": [108,948], "a": 1 }, + { "px": [336,464], "src": [320,272], "f": 0, "t": 411, "d": [108,949], "a": 1 }, + { "px": [368,464], "src": [320,272], "f": 0, "t": 411, "d": [108,951], "a": 1 }, + { "px": [384,464], "src": [320,272], "f": 0, "t": 411, "d": [108,952], "a": 1 }, + { "px": [400,464], "src": [320,272], "f": 0, "t": 411, "d": [108,953], "a": 1 }, + { "px": [416,464], "src": [320,272], "f": 0, "t": 411, "d": [108,954], "a": 1 }, + { "px": [432,464], "src": [320,272], "f": 0, "t": 411, "d": [108,955], "a": 1 }, + { "px": [80,480], "src": [320,272], "f": 0, "t": 411, "d": [108,965], "a": 1 }, + { "px": [96,480], "src": [320,272], "f": 0, "t": 411, "d": [108,966], "a": 1 }, + { "px": [112,480], "src": [320,272], "f": 0, "t": 411, "d": [108,967], "a": 1 }, + { "px": [144,480], "src": [320,272], "f": 0, "t": 411, "d": [108,969], "a": 1 }, + { "px": [160,480], "src": [320,272], "f": 0, "t": 411, "d": [108,970], "a": 1 }, + { "px": [176,480], "src": [320,272], "f": 0, "t": 411, "d": [108,971], "a": 1 }, + { "px": [192,480], "src": [320,272], "f": 0, "t": 411, "d": [108,972], "a": 1 }, + { "px": [208,480], "src": [320,272], "f": 0, "t": 411, "d": [108,973], "a": 1 }, + { "px": [224,480], "src": [320,272], "f": 0, "t": 411, "d": [108,974], "a": 1 }, + { "px": [240,480], "src": [320,272], "f": 0, "t": 411, "d": [108,975], "a": 1 }, + { "px": [256,480], "src": [320,272], "f": 0, "t": 411, "d": [108,976], "a": 1 }, + { "px": [288,480], "src": [320,272], "f": 0, "t": 411, "d": [108,978], "a": 1 }, + { "px": [304,480], "src": [320,272], "f": 0, "t": 411, "d": [108,979], "a": 1 }, + { "px": [320,480], "src": [320,272], "f": 0, "t": 411, "d": [108,980], "a": 1 }, + { "px": [336,480], "src": [320,272], "f": 0, "t": 411, "d": [108,981], "a": 1 }, + { "px": [352,480], "src": [320,272], "f": 0, "t": 411, "d": [108,982], "a": 1 }, + { "px": [368,480], "src": [320,272], "f": 0, "t": 411, "d": [108,983], "a": 1 }, + { "px": [384,480], "src": [320,272], "f": 0, "t": 411, "d": [108,984], "a": 1 }, + { "px": [400,480], "src": [320,272], "f": 0, "t": 411, "d": [108,985], "a": 1 }, + { "px": [416,480], "src": [320,272], "f": 0, "t": 411, "d": [108,986], "a": 1 }, + { "px": [432,480], "src": [320,272], "f": 0, "t": 411, "d": [108,987], "a": 1 }, + { "px": [80,496], "src": [320,272], "f": 0, "t": 411, "d": [108,997], "a": 1 }, + { "px": [96,496], "src": [320,272], "f": 0, "t": 411, "d": [108,998], "a": 1 }, + { "px": [112,496], "src": [320,272], "f": 0, "t": 411, "d": [108,999], "a": 1 }, + { "px": [128,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1000], "a": 1 }, + { "px": [144,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1001], "a": 1 }, + { "px": [160,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1002], "a": 1 }, + { "px": [176,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1003], "a": 1 }, + { "px": [192,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1004], "a": 1 }, + { "px": [208,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1005], "a": 1 }, + { "px": [224,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1006], "a": 1 }, + { "px": [240,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1007], "a": 1 }, + { "px": [256,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1008], "a": 1 }, + { "px": [272,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1009], "a": 1 }, + { "px": [288,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1010], "a": 1 }, + { "px": [304,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1011], "a": 1 }, + { "px": [320,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1012], "a": 1 }, + { "px": [336,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1013], "a": 1 }, + { "px": [352,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1014], "a": 1 }, + { "px": [368,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1015], "a": 1 }, + { "px": [384,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1016], "a": 1 }, + { "px": [400,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1017], "a": 1 }, + { "px": [416,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1018], "a": 1 }, + { "px": [432,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1019], "a": 1 }, + { "px": [80,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1029], "a": 1 }, + { "px": [112,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1031], "a": 1 }, + { "px": [128,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1032], "a": 1 }, + { "px": [160,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1034], "a": 1 }, + { "px": [176,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1035], "a": 1 }, + { "px": [192,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1036], "a": 1 }, + { "px": [208,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1037], "a": 1 }, + { "px": [224,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1038], "a": 1 }, + { "px": [240,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1039], "a": 1 }, + { "px": [256,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1040], "a": 1 }, + { "px": [272,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1041], "a": 1 }, + { "px": [304,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1043], "a": 1 }, + { "px": [320,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1044], "a": 1 }, + { "px": [352,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1046], "a": 1 }, + { "px": [80,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1061], "a": 1 }, + { "px": [96,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1062], "a": 1 }, + { "px": [112,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1063], "a": 1 }, + { "px": [128,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1064], "a": 1 }, + { "px": [144,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1065], "a": 1 }, + { "px": [160,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1066], "a": 1 }, + { "px": [176,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1067], "a": 1 }, + { "px": [192,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1068], "a": 1 }, + { "px": [208,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1069], "a": 1 }, + { "px": [224,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1070], "a": 1 }, + { "px": [240,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1071], "a": 1 }, + { "px": [256,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1072], "a": 1 }, + { "px": [272,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1073], "a": 1 }, + { "px": [288,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1074], "a": 1 }, + { "px": [304,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1075], "a": 1 }, + { "px": [320,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1076], "a": 1 }, + { "px": [336,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1077], "a": 1 }, + { "px": [352,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1078], "a": 1 }, + { "px": [80,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1093], "a": 1 }, + { "px": [96,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1094], "a": 1 }, + { "px": [112,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1095], "a": 1 }, + { "px": [128,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1096], "a": 1 }, + { "px": [144,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1097], "a": 1 }, + { "px": [160,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1098], "a": 1 }, + { "px": [176,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1099], "a": 1 }, + { "px": [192,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1100], "a": 1 }, + { "px": [208,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1101], "a": 1 }, + { "px": [224,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1102], "a": 1 }, + { "px": [240,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1103], "a": 1 }, + { "px": [256,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1104], "a": 1 }, + { "px": [272,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1105], "a": 1 }, + { "px": [288,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1106], "a": 1 }, + { "px": [304,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1107], "a": 1 }, + { "px": [320,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1108], "a": 1 }, + { "px": [336,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1109], "a": 1 }, + { "px": [352,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1110], "a": 1 }, + { "px": [80,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1125], "a": 1 }, + { "px": [96,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1126], "a": 1 }, + { "px": [112,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1127], "a": 1 }, + { "px": [128,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1128], "a": 1 }, + { "px": [144,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1129], "a": 1 }, + { "px": [160,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1130], "a": 1 }, + { "px": [176,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1131], "a": 1 }, + { "px": [192,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1132], "a": 1 }, + { "px": [208,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1133], "a": 1 }, + { "px": [224,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1134], "a": 1 }, + { "px": [240,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1135], "a": 1 }, + { "px": [256,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1136], "a": 1 }, + { "px": [272,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1137], "a": 1 }, + { "px": [288,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1138], "a": 1 }, + { "px": [304,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1139], "a": 1 }, + { "px": [320,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1140], "a": 1 }, + { "px": [336,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1141], "a": 1 }, + { "px": [352,560], "src": [320,272], "f": 0, "t": 411, "d": [108,1142], "a": 1 }, + { "px": [80,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1157], "a": 1 }, + { "px": [96,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1158], "a": 1 }, + { "px": [112,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1159], "a": 1 }, + { "px": [128,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1160], "a": 1 }, + { "px": [160,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1162], "a": 1 }, + { "px": [176,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1163], "a": 1 }, + { "px": [192,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1164], "a": 1 }, + { "px": [208,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1165], "a": 1 }, + { "px": [224,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1166], "a": 1 }, + { "px": [240,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1167], "a": 1 }, + { "px": [256,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1168], "a": 1 }, + { "px": [272,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1169], "a": 1 }, + { "px": [304,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1171], "a": 1 }, + { "px": [320,576], "src": [320,272], "f": 0, "t": 411, "d": [108,1172], "a": 1 }, + { "px": [80,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1189], "a": 1 }, + { "px": [96,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1190], "a": 1 }, + { "px": [112,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1191], "a": 1 }, + { "px": [128,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1192], "a": 1 }, + { "px": [144,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1193], "a": 1 }, + { "px": [160,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1194], "a": 1 }, + { "px": [176,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1195], "a": 1 }, + { "px": [192,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1196], "a": 1 }, + { "px": [208,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1197], "a": 1 }, + { "px": [224,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1198], "a": 1 }, + { "px": [240,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1199], "a": 1 }, + { "px": [256,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1200], "a": 1 }, + { "px": [272,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1201], "a": 1 }, + { "px": [288,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1202], "a": 1 }, + { "px": [304,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1203], "a": 1 }, + { "px": [320,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1204], "a": 1 }, + { "px": [336,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1205], "a": 1 }, + { "px": [352,592], "src": [320,272], "f": 0, "t": 411, "d": [108,1206], "a": 1 }, + { "px": [80,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1221], "a": 1 }, + { "px": [96,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1222], "a": 1 }, + { "px": [112,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1223], "a": 1 }, + { "px": [128,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1224], "a": 1 }, + { "px": [144,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1225], "a": 1 }, + { "px": [160,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1226], "a": 1 }, + { "px": [192,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1228], "a": 1 }, + { "px": [208,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1229], "a": 1 }, + { "px": [224,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1230], "a": 1 }, + { "px": [240,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1231], "a": 1 }, + { "px": [256,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1232], "a": 1 }, + { "px": [288,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1234], "a": 1 }, + { "px": [304,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1235], "a": 1 }, + { "px": [320,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1236], "a": 1 }, + { "px": [336,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1237], "a": 1 }, + { "px": [352,608], "src": [320,272], "f": 0, "t": 411, "d": [108,1238], "a": 1 }, + { "px": [80,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1253], "a": 1 }, + { "px": [96,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1254], "a": 1 }, + { "px": [112,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1255], "a": 1 }, + { "px": [128,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1256], "a": 1 }, + { "px": [144,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1257], "a": 1 }, + { "px": [160,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1258], "a": 1 }, + { "px": [176,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1259], "a": 1 }, + { "px": [192,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1260], "a": 1 }, + { "px": [208,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1261], "a": 1 }, + { "px": [224,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1262], "a": 1 }, + { "px": [240,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1263], "a": 1 }, + { "px": [256,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1264], "a": 1 }, + { "px": [272,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1265], "a": 1 }, + { "px": [288,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1266], "a": 1 }, + { "px": [304,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1267], "a": 1 }, + { "px": [320,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1268], "a": 1 }, + { "px": [336,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1269], "a": 1 }, + { "px": [352,624], "src": [320,272], "f": 0, "t": 411, "d": [108,1270], "a": 1 }, + { "px": [80,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1285], "a": 1 }, + { "px": [96,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1286], "a": 1 }, + { "px": [112,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1287], "a": 1 }, + { "px": [128,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1288], "a": 1 }, + { "px": [144,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1289], "a": 1 }, + { "px": [160,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1290], "a": 1 }, + { "px": [176,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1291], "a": 1 }, + { "px": [192,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1292], "a": 1 }, + { "px": [208,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1293], "a": 1 }, + { "px": [224,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1294], "a": 1 }, + { "px": [256,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1296], "a": 1 }, + { "px": [272,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1297], "a": 1 }, + { "px": [288,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1298], "a": 1 }, + { "px": [304,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1299], "a": 1 }, + { "px": [320,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1300], "a": 1 }, + { "px": [352,640], "src": [320,272], "f": 0, "t": 411, "d": [108,1302], "a": 1 }, + { "px": [96,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1318], "a": 1 }, + { "px": [112,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1319], "a": 1 }, + { "px": [128,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1320], "a": 1 }, + { "px": [144,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1321], "a": 1 }, + { "px": [176,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1323], "a": 1 }, + { "px": [192,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1324], "a": 1 }, + { "px": [208,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1325], "a": 1 }, + { "px": [224,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1326], "a": 1 }, + { "px": [256,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1328], "a": 1 }, + { "px": [272,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1329], "a": 1 }, + { "px": [288,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1330], "a": 1 }, + { "px": [304,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1331], "a": 1 }, + { "px": [320,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1332], "a": 1 }, + { "px": [336,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1333], "a": 1 }, + { "px": [352,656], "src": [320,272], "f": 0, "t": 411, "d": [108,1334], "a": 1 }, + { "px": [464,112], "src": [256,240], "f": 1, "t": 361, "d": [107,252], "a": 1 }, + { "px": [448,112], "src": [272,240], "f": 1, "t": 362, "d": [107,252], "a": 1 }, + { "px": [432,128], "src": [256,240], "f": 0, "t": 361, "d": [107,284], "a": 1 }, + { "px": [448,128], "src": [272,240], "f": 0, "t": 362, "d": [107,284], "a": 1 }, + { "px": [432,144], "src": [256,240], "f": 0, "t": 361, "d": [107,316], "a": 1 }, + { "px": [448,144], "src": [272,240], "f": 0, "t": 362, "d": [107,316], "a": 1 }, + { "px": [432,160], "src": [256,240], "f": 0, "t": 361, "d": [107,348], "a": 1 }, + { "px": [448,160], "src": [272,240], "f": 0, "t": 362, "d": [107,348], "a": 1 }, + { "px": [432,176], "src": [256,240], "f": 0, "t": 361, "d": [107,380], "a": 1 }, + { "px": [448,176], "src": [272,240], "f": 0, "t": 362, "d": [107,380], "a": 1 }, + { "px": [432,192], "src": [256,240], "f": 0, "t": 361, "d": [107,412], "a": 1 }, + { "px": [448,192], "src": [272,240], "f": 0, "t": 362, "d": [107,412], "a": 1 }, + { "px": [432,208], "src": [256,240], "f": 0, "t": 361, "d": [107,444], "a": 1 }, + { "px": [448,208], "src": [272,240], "f": 0, "t": 362, "d": [107,444], "a": 1 }, + { "px": [432,224], "src": [256,240], "f": 0, "t": 361, "d": [107,476], "a": 1 }, + { "px": [448,224], "src": [272,240], "f": 0, "t": 362, "d": [107,476], "a": 1 }, + { "px": [432,240], "src": [256,240], "f": 0, "t": 361, "d": [107,508], "a": 1 }, + { "px": [448,240], "src": [272,240], "f": 0, "t": 362, "d": [107,508], "a": 1 }, + { "px": [432,256], "src": [256,240], "f": 0, "t": 361, "d": [107,540], "a": 1 }, + { "px": [448,256], "src": [272,240], "f": 0, "t": 362, "d": [107,540], "a": 1 }, + { "px": [432,272], "src": [256,240], "f": 0, "t": 361, "d": [107,572], "a": 1 }, + { "px": [448,272], "src": [272,240], "f": 0, "t": 362, "d": [107,572], "a": 1 }, + { "px": [432,288], "src": [256,240], "f": 0, "t": 361, "d": [107,604], "a": 1 }, + { "px": [448,288], "src": [272,240], "f": 0, "t": 362, "d": [107,604], "a": 1 }, + { "px": [432,304], "src": [256,240], "f": 0, "t": 361, "d": [107,636], "a": 1 }, + { "px": [448,304], "src": [272,240], "f": 0, "t": 362, "d": [107,636], "a": 1 }, + { "px": [432,320], "src": [256,240], "f": 0, "t": 361, "d": [107,668], "a": 1 }, + { "px": [448,320], "src": [272,240], "f": 0, "t": 362, "d": [107,668], "a": 1 }, + { "px": [432,336], "src": [256,240], "f": 0, "t": 361, "d": [107,700], "a": 1 }, + { "px": [448,336], "src": [272,240], "f": 0, "t": 362, "d": [107,700], "a": 1 }, + { "px": [432,352], "src": [256,240], "f": 0, "t": 361, "d": [107,732], "a": 1 }, + { "px": [448,352], "src": [272,240], "f": 0, "t": 362, "d": [107,732], "a": 1 }, + { "px": [432,368], "src": [256,240], "f": 0, "t": 361, "d": [107,764], "a": 1 }, + { "px": [448,368], "src": [272,240], "f": 0, "t": 362, "d": [107,764], "a": 1 }, + { "px": [432,384], "src": [256,240], "f": 0, "t": 361, "d": [107,796], "a": 1 }, + { "px": [448,384], "src": [272,240], "f": 0, "t": 362, "d": [107,796], "a": 1 }, + { "px": [400,416], "src": [256,240], "f": 1, "t": 361, "d": [107,856], "a": 1 }, + { "px": [384,416], "src": [272,240], "f": 1, "t": 362, "d": [107,856], "a": 1 }, + { "px": [80,432], "src": [256,240], "f": 1, "t": 361, "d": [107,868], "a": 1 }, + { "px": [64,432], "src": [272,240], "f": 1, "t": 362, "d": [107,868], "a": 1 }, + { "px": [64,432], "src": [256,240], "f": 0, "t": 361, "d": [107,869], "a": 1 }, + { "px": [80,432], "src": [272,240], "f": 0, "t": 362, "d": [107,869], "a": 1 }, + { "px": [144,432], "src": [256,240], "f": 1, "t": 361, "d": [107,872], "a": 1 }, + { "px": [128,432], "src": [272,240], "f": 1, "t": 362, "d": [107,872], "a": 1 }, + { "px": [128,432], "src": [256,240], "f": 0, "t": 361, "d": [107,873], "a": 1 }, + { "px": [144,432], "src": [272,240], "f": 0, "t": 362, "d": [107,873], "a": 1 }, + { "px": [208,432], "src": [256,240], "f": 1, "t": 361, "d": [107,876], "a": 1 }, + { "px": [192,432], "src": [272,240], "f": 1, "t": 362, "d": [107,876], "a": 1 }, + { "px": [192,432], "src": [256,240], "f": 0, "t": 361, "d": [107,877], "a": 1 }, + { "px": [208,432], "src": [272,240], "f": 0, "t": 362, "d": [107,877], "a": 1 }, + { "px": [272,432], "src": [256,240], "f": 1, "t": 361, "d": [107,880], "a": 1 }, + { "px": [256,432], "src": [272,240], "f": 1, "t": 362, "d": [107,880], "a": 1 }, + { "px": [256,432], "src": [256,240], "f": 0, "t": 361, "d": [107,881], "a": 1 }, + { "px": [272,432], "src": [272,240], "f": 0, "t": 362, "d": [107,881], "a": 1 }, + { "px": [320,432], "src": [256,240], "f": 0, "t": 361, "d": [107,885], "a": 1 }, + { "px": [336,432], "src": [272,240], "f": 0, "t": 362, "d": [107,885], "a": 1 }, + { "px": [400,432], "src": [256,240], "f": 1, "t": 361, "d": [107,888], "a": 1 }, + { "px": [384,432], "src": [272,240], "f": 1, "t": 362, "d": [107,888], "a": 1 }, + { "px": [80,448], "src": [256,240], "f": 1, "t": 361, "d": [107,900], "a": 1 }, + { "px": [64,448], "src": [272,240], "f": 1, "t": 362, "d": [107,900], "a": 1 }, + { "px": [64,448], "src": [256,240], "f": 0, "t": 361, "d": [107,901], "a": 1 }, + { "px": [80,448], "src": [272,240], "f": 0, "t": 362, "d": [107,901], "a": 1 }, + { "px": [144,448], "src": [256,240], "f": 1, "t": 361, "d": [107,904], "a": 1 }, + { "px": [128,448], "src": [272,240], "f": 1, "t": 362, "d": [107,904], "a": 1 }, + { "px": [128,448], "src": [256,240], "f": 0, "t": 361, "d": [107,905], "a": 1 }, + { "px": [144,448], "src": [272,240], "f": 0, "t": 362, "d": [107,905], "a": 1 }, + { "px": [208,448], "src": [256,240], "f": 1, "t": 361, "d": [107,908], "a": 1 }, + { "px": [192,448], "src": [272,240], "f": 1, "t": 362, "d": [107,908], "a": 1 }, + { "px": [192,448], "src": [256,240], "f": 0, "t": 361, "d": [107,909], "a": 1 }, + { "px": [208,448], "src": [272,240], "f": 0, "t": 362, "d": [107,909], "a": 1 }, + { "px": [272,448], "src": [256,240], "f": 1, "t": 361, "d": [107,912], "a": 1 }, + { "px": [256,448], "src": [272,240], "f": 1, "t": 362, "d": [107,912], "a": 1 }, + { "px": [256,448], "src": [256,240], "f": 0, "t": 361, "d": [107,913], "a": 1 }, + { "px": [272,448], "src": [272,240], "f": 0, "t": 362, "d": [107,913], "a": 1 }, + { "px": [336,448], "src": [256,240], "f": 1, "t": 361, "d": [107,916], "a": 1 }, + { "px": [320,448], "src": [272,240], "f": 1, "t": 362, "d": [107,916], "a": 1 }, + { "px": [320,448], "src": [256,240], "f": 0, "t": 361, "d": [107,917], "a": 1 }, + { "px": [336,448], "src": [272,240], "f": 0, "t": 362, "d": [107,917], "a": 1 }, + { "px": [400,448], "src": [256,240], "f": 1, "t": 361, "d": [107,920], "a": 1 }, + { "px": [384,448], "src": [272,240], "f": 1, "t": 362, "d": [107,920], "a": 1 }, + { "px": [432,448], "src": [256,240], "f": 0, "t": 361, "d": [107,924], "a": 1 }, + { "px": [448,448], "src": [272,240], "f": 0, "t": 362, "d": [107,924], "a": 1 }, + { "px": [80,464], "src": [256,240], "f": 1, "t": 361, "d": [107,932], "a": 1 }, + { "px": [64,464], "src": [272,240], "f": 1, "t": 362, "d": [107,932], "a": 1 }, + { "px": [432,464], "src": [256,240], "f": 0, "t": 361, "d": [107,956], "a": 1 }, + { "px": [448,464], "src": [272,240], "f": 0, "t": 362, "d": [107,956], "a": 1 }, + { "px": [80,480], "src": [256,240], "f": 1, "t": 361, "d": [107,964], "a": 1 }, + { "px": [64,480], "src": [272,240], "f": 1, "t": 362, "d": [107,964], "a": 1 }, + { "px": [432,480], "src": [256,240], "f": 0, "t": 361, "d": [107,988], "a": 1 }, + { "px": [448,480], "src": [272,240], "f": 0, "t": 362, "d": [107,988], "a": 1 }, + { "px": [80,496], "src": [256,240], "f": 1, "t": 361, "d": [107,996], "a": 1 }, + { "px": [64,496], "src": [272,240], "f": 1, "t": 362, "d": [107,996], "a": 1 }, + { "px": [80,512], "src": [256,240], "f": 1, "t": 361, "d": [107,1028], "a": 1 }, + { "px": [64,512], "src": [272,240], "f": 1, "t": 362, "d": [107,1028], "a": 1 }, + { "px": [352,512], "src": [256,240], "f": 0, "t": 361, "d": [107,1047], "a": 1 }, + { "px": [368,512], "src": [272,240], "f": 0, "t": 362, "d": [107,1047], "a": 1 }, + { "px": [80,528], "src": [256,240], "f": 1, "t": 361, "d": [107,1060], "a": 1 }, + { "px": [64,528], "src": [272,240], "f": 1, "t": 362, "d": [107,1060], "a": 1 }, + { "px": [352,528], "src": [256,240], "f": 0, "t": 361, "d": [107,1079], "a": 1 }, + { "px": [368,528], "src": [272,240], "f": 0, "t": 362, "d": [107,1079], "a": 1 }, + { "px": [80,544], "src": [256,240], "f": 1, "t": 361, "d": [107,1092], "a": 1 }, + { "px": [64,544], "src": [272,240], "f": 1, "t": 362, "d": [107,1092], "a": 1 }, + { "px": [352,544], "src": [256,240], "f": 0, "t": 361, "d": [107,1111], "a": 1 }, + { "px": [368,544], "src": [272,240], "f": 0, "t": 362, "d": [107,1111], "a": 1 }, + { "px": [80,560], "src": [256,240], "f": 1, "t": 361, "d": [107,1124], "a": 1 }, + { "px": [64,560], "src": [272,240], "f": 1, "t": 362, "d": [107,1124], "a": 1 }, + { "px": [352,560], "src": [256,240], "f": 0, "t": 361, "d": [107,1143], "a": 1 }, + { "px": [368,560], "src": [272,240], "f": 0, "t": 362, "d": [107,1143], "a": 1 }, + { "px": [80,576], "src": [256,240], "f": 1, "t": 361, "d": [107,1156], "a": 1 }, + { "px": [64,576], "src": [272,240], "f": 1, "t": 362, "d": [107,1156], "a": 1 }, + { "px": [320,576], "src": [256,240], "f": 0, "t": 361, "d": [107,1173], "a": 1 }, + { "px": [336,576], "src": [272,240], "f": 0, "t": 362, "d": [107,1173], "a": 1 }, + { "px": [80,592], "src": [256,240], "f": 1, "t": 361, "d": [107,1188], "a": 1 }, + { "px": [64,592], "src": [272,240], "f": 1, "t": 362, "d": [107,1188], "a": 1 }, + { "px": [352,592], "src": [256,240], "f": 0, "t": 361, "d": [107,1207], "a": 1 }, + { "px": [368,592], "src": [272,240], "f": 0, "t": 362, "d": [107,1207], "a": 1 }, + { "px": [80,608], "src": [256,240], "f": 1, "t": 361, "d": [107,1220], "a": 1 }, + { "px": [64,608], "src": [272,240], "f": 1, "t": 362, "d": [107,1220], "a": 1 }, + { "px": [352,608], "src": [256,240], "f": 0, "t": 361, "d": [107,1239], "a": 1 }, + { "px": [368,608], "src": [272,240], "f": 0, "t": 362, "d": [107,1239], "a": 1 }, + { "px": [80,624], "src": [256,240], "f": 1, "t": 361, "d": [107,1252], "a": 1 }, + { "px": [64,624], "src": [272,240], "f": 1, "t": 362, "d": [107,1252], "a": 1 }, + { "px": [352,624], "src": [256,240], "f": 0, "t": 361, "d": [107,1271], "a": 1 }, + { "px": [368,624], "src": [272,240], "f": 0, "t": 362, "d": [107,1271], "a": 1 }, + { "px": [80,640], "src": [256,240], "f": 1, "t": 361, "d": [107,1284], "a": 1 }, + { "px": [64,640], "src": [272,240], "f": 1, "t": 362, "d": [107,1284], "a": 1 }, + { "px": [352,640], "src": [256,240], "f": 0, "t": 361, "d": [107,1303], "a": 1 }, + { "px": [368,640], "src": [272,240], "f": 0, "t": 362, "d": [107,1303], "a": 1 }, + { "px": [112,480], "src": [256,240], "f": 0, "t": 361, "d": [105,968], "a": 1 }, + { "px": [128,480], "src": [272,240], "f": 0, "t": 362, "d": [105,968], "a": 1 }, + { "px": [144,480], "src": [288,240], "f": 0, "t": 363, "d": [105,968], "a": 1 }, + { "px": [256,480], "src": [256,240], "f": 0, "t": 361, "d": [105,977], "a": 1 }, + { "px": [272,480], "src": [272,240], "f": 0, "t": 362, "d": [105,977], "a": 1 }, + { "px": [288,480], "src": [288,240], "f": 0, "t": 363, "d": [105,977], "a": 1 }, + { "px": [80,512], "src": [256,240], "f": 0, "t": 361, "d": [105,1030], "a": 1 }, + { "px": [96,512], "src": [272,240], "f": 0, "t": 362, "d": [105,1030], "a": 1 }, + { "px": [112,512], "src": [288,240], "f": 0, "t": 363, "d": [105,1030], "a": 1 }, + { "px": [128,512], "src": [256,240], "f": 0, "t": 361, "d": [105,1033], "a": 1 }, + { "px": [144,512], "src": [272,240], "f": 0, "t": 362, "d": [105,1033], "a": 1 }, + { "px": [160,512], "src": [288,240], "f": 0, "t": 363, "d": [105,1033], "a": 1 }, + { "px": [272,512], "src": [256,240], "f": 0, "t": 361, "d": [105,1042], "a": 1 }, + { "px": [288,512], "src": [272,240], "f": 0, "t": 362, "d": [105,1042], "a": 1 }, + { "px": [304,512], "src": [288,240], "f": 0, "t": 363, "d": [105,1042], "a": 1 }, + { "px": [320,512], "src": [256,240], "f": 0, "t": 361, "d": [105,1045], "a": 1 }, + { "px": [336,512], "src": [272,240], "f": 0, "t": 362, "d": [105,1045], "a": 1 }, + { "px": [352,512], "src": [288,240], "f": 0, "t": 363, "d": [105,1045], "a": 1 }, + { "px": [128,576], "src": [256,240], "f": 0, "t": 361, "d": [105,1161], "a": 1 }, + { "px": [144,576], "src": [272,240], "f": 0, "t": 362, "d": [105,1161], "a": 1 }, + { "px": [160,576], "src": [288,240], "f": 0, "t": 363, "d": [105,1161], "a": 1 }, + { "px": [272,576], "src": [256,240], "f": 0, "t": 361, "d": [105,1170], "a": 1 }, + { "px": [288,576], "src": [272,240], "f": 0, "t": 362, "d": [105,1170], "a": 1 }, + { "px": [304,576], "src": [288,240], "f": 0, "t": 363, "d": [105,1170], "a": 1 }, + { "px": [160,608], "src": [256,240], "f": 0, "t": 361, "d": [105,1227], "a": 1 }, + { "px": [176,608], "src": [272,240], "f": 0, "t": 362, "d": [105,1227], "a": 1 }, + { "px": [192,608], "src": [288,240], "f": 0, "t": 363, "d": [105,1227], "a": 1 }, + { "px": [256,608], "src": [256,240], "f": 0, "t": 361, "d": [105,1233], "a": 1 }, + { "px": [272,608], "src": [272,240], "f": 0, "t": 362, "d": [105,1233], "a": 1 }, + { "px": [288,608], "src": [288,240], "f": 0, "t": 363, "d": [105,1233], "a": 1 }, + { "px": [224,640], "src": [256,240], "f": 0, "t": 361, "d": [105,1295], "a": 1 }, + { "px": [240,640], "src": [272,240], "f": 0, "t": 362, "d": [105,1295], "a": 1 }, + { "px": [256,640], "src": [288,240], "f": 0, "t": 363, "d": [105,1295], "a": 1 }, + { "px": [320,640], "src": [256,240], "f": 0, "t": 361, "d": [105,1301], "a": 1 }, + { "px": [336,640], "src": [272,240], "f": 0, "t": 362, "d": [105,1301], "a": 1 }, + { "px": [352,640], "src": [288,240], "f": 0, "t": 363, "d": [105,1301], "a": 1 }, + { "px": [384,432], "src": [144,240], "f": 2, "t": 354, "d": [112,825], "a": 1 }, + { "px": [384,416], "src": [144,256], "f": 2, "t": 377, "d": [112,825], "a": 1 }, + { "px": [384,400], "src": [144,272], "f": 2, "t": 400, "d": [112,825], "a": 1 }, + { "px": [400,432], "src": [160,240], "f": 2, "t": 355, "d": [112,825], "a": 1 }, + { "px": [400,416], "src": [160,256], "f": 2, "t": 378, "d": [112,825], "a": 1 }, + { "px": [400,400], "src": [160,272], "f": 2, "t": 401, "d": [112,825], "a": 1 }, + { "px": [416,432], "src": [176,240], "f": 2, "t": 356, "d": [112,825], "a": 1 }, + { "px": [416,416], "src": [176,256], "f": 2, "t": 379, "d": [112,825], "a": 1 }, + { "px": [416,400], "src": [176,272], "f": 2, "t": 402, "d": [112,825], "a": 1 }, + { "px": [464,400], "src": [144,240], "f": 0, "t": 354, "d": [112,894], "a": 1 }, + { "px": [464,416], "src": [144,256], "f": 0, "t": 377, "d": [112,894], "a": 1 }, + { "px": [464,432], "src": [144,272], "f": 0, "t": 400, "d": [112,894], "a": 1 }, + { "px": [480,400], "src": [160,240], "f": 0, "t": 355, "d": [112,894], "a": 1 }, + { "px": [480,416], "src": [160,256], "f": 0, "t": 378, "d": [112,894], "a": 1 }, + { "px": [480,432], "src": [160,272], "f": 0, "t": 401, "d": [112,894], "a": 1 }, + { "px": [496,400], "src": [176,240], "f": 0, "t": 356, "d": [112,894], "a": 1 }, + { "px": [496,416], "src": [176,256], "f": 0, "t": 379, "d": [112,894], "a": 1 }, + { "px": [496,432], "src": [176,272], "f": 0, "t": 402, "d": [112,894], "a": 1 }, + { "px": [64,624], "src": [144,240], "f": 0, "t": 354, "d": [112,1317], "a": 1 }, + { "px": [64,640], "src": [144,256], "f": 0, "t": 377, "d": [112,1317], "a": 1 }, + { "px": [64,656], "src": [144,272], "f": 0, "t": 400, "d": [112,1317], "a": 1 }, + { "px": [80,624], "src": [160,240], "f": 0, "t": 355, "d": [112,1317], "a": 1 }, + { "px": [80,640], "src": [160,256], "f": 0, "t": 378, "d": [112,1317], "a": 1 }, + { "px": [80,656], "src": [160,272], "f": 0, "t": 401, "d": [112,1317], "a": 1 }, + { "px": [96,624], "src": [176,240], "f": 0, "t": 356, "d": [112,1317], "a": 1 }, + { "px": [96,640], "src": [176,256], "f": 0, "t": 379, "d": [112,1317], "a": 1 }, + { "px": [96,656], "src": [176,272], "f": 0, "t": 402, "d": [112,1317], "a": 1 }, + { "px": [144,624], "src": [144,240], "f": 0, "t": 354, "d": [112,1322], "a": 1 }, + { "px": [144,640], "src": [144,256], "f": 0, "t": 377, "d": [112,1322], "a": 1 }, + { "px": [144,656], "src": [144,272], "f": 0, "t": 400, "d": [112,1322], "a": 1 }, + { "px": [160,624], "src": [160,240], "f": 0, "t": 355, "d": [112,1322], "a": 1 }, + { "px": [160,640], "src": [160,256], "f": 0, "t": 378, "d": [112,1322], "a": 1 }, + { "px": [160,656], "src": [160,272], "f": 0, "t": 401, "d": [112,1322], "a": 1 }, + { "px": [176,624], "src": [176,240], "f": 0, "t": 356, "d": [112,1322], "a": 1 }, + { "px": [176,640], "src": [176,256], "f": 0, "t": 379, "d": [112,1322], "a": 1 }, + { "px": [176,656], "src": [176,272], "f": 0, "t": 402, "d": [112,1322], "a": 1 }, + { "px": [224,624], "src": [144,240], "f": 0, "t": 354, "d": [112,1327], "a": 1 }, + { "px": [224,640], "src": [144,256], "f": 0, "t": 377, "d": [112,1327], "a": 1 }, + { "px": [224,656], "src": [144,272], "f": 0, "t": 400, "d": [112,1327], "a": 1 }, + { "px": [240,624], "src": [160,240], "f": 0, "t": 355, "d": [112,1327], "a": 1 }, + { "px": [240,640], "src": [160,256], "f": 0, "t": 378, "d": [112,1327], "a": 1 }, + { "px": [240,656], "src": [160,272], "f": 0, "t": 401, "d": [112,1327], "a": 1 }, + { "px": [256,624], "src": [176,240], "f": 0, "t": 356, "d": [112,1327], "a": 1 }, + { "px": [256,640], "src": [176,256], "f": 0, "t": 379, "d": [112,1327], "a": 1 }, + { "px": [256,656], "src": [176,272], "f": 0, "t": 402, "d": [112,1327], "a": 1 }, + { "px": [448,480], "src": [192,304], "f": 1, "t": 449, "d": [113,1020], "a": 1 }, + { "px": [448,496], "src": [192,320], "f": 1, "t": 472, "d": [113,1020], "a": 1 }, + { "px": [432,480], "src": [208,304], "f": 1, "t": 450, "d": [113,1020], "a": 1 }, + { "px": [432,496], "src": [208,320], "f": 1, "t": 473, "d": [113,1020], "a": 1 }, + { "px": [416,480], "src": [224,304], "f": 1, "t": 451, "d": [113,1020], "a": 1 }, + { "px": [416,496], "src": [224,320], "f": 1, "t": 474, "d": [113,1020], "a": 1 }, + { "px": [64,640], "src": [192,304], "f": 0, "t": 449, "d": [113,1316], "a": 1 }, + { "px": [64,656], "src": [192,320], "f": 0, "t": 472, "d": [113,1316], "a": 1 }, + { "px": [80,640], "src": [208,304], "f": 0, "t": 450, "d": [113,1316], "a": 1 }, + { "px": [80,656], "src": [208,320], "f": 0, "t": 473, "d": [113,1316], "a": 1 }, + { "px": [96,640], "src": [224,304], "f": 0, "t": 451, "d": [113,1316], "a": 1 }, + { "px": [96,656], "src": [224,320], "f": 0, "t": 474, "d": [113,1316], "a": 1 }, + { "px": [368,640], "src": [192,304], "f": 1, "t": 449, "d": [113,1335], "a": 1 }, + { "px": [368,656], "src": [192,320], "f": 1, "t": 472, "d": [113,1335], "a": 1 }, + { "px": [352,640], "src": [208,304], "f": 1, "t": 450, "d": [113,1335], "a": 1 }, + { "px": [352,656], "src": [208,320], "f": 1, "t": 473, "d": [113,1335], "a": 1 }, + { "px": [336,640], "src": [224,304], "f": 1, "t": 451, "d": [113,1335], "a": 1 }, + { "px": [336,656], "src": [224,320], "f": 1, "t": 474, "d": [113,1335], "a": 1 }, + { "px": [384,400], "src": [128,224], "f": 0, "t": 330, "d": [114,824], "a": 1 }, + { "px": [320,432], "src": [128,224], "f": 0, "t": 330, "d": [114,884], "a": 1 }, + { "px": [96,464], "src": [128,224], "f": 0, "t": 330, "d": [114,934], "a": 1 }, + { "px": [224,464], "src": [128,224], "f": 0, "t": 330, "d": [114,942], "a": 1 }, + { "px": [352,464], "src": [128,224], "f": 0, "t": 330, "d": [114,950], "a": 1 } + ], + "seed": 7595714, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [{ "levelIid": "a36a34b0-66b0-11ec-9cd7-09ebc042e238", "dir": "e" }] + }, + { + "identifier": "Water_supply", + "iid": "a36a34b0-66b0-11ec-9cd7-09ebc042e238", + "uid": 66, + "worldX": -512, + "worldY": 0, + "worldDepth": 0, + "pxWid": 512, + "pxHei": 512, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a36a34b5-66b0-11ec-9cd7-3bdbce2d2f7e", + "levelId": 66, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 1452875, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Item", + "__grid": [17,25], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 32, "y": 992, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a36a34b6-66b0-11ec-9cd7-6192e3dc5680", + "width": 24, + "height": 24, + "defUid": 72, + "px": [280,416], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Green_gem", "__tile": { "tilesetUid": 133, "x": 32, "y": 992, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Green_gem"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [24,25], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a36a34b7-66b0-11ec-9cd7-49f57098a445", + "width": 24, + "height": 24, + "defUid": 72, + "px": [392,416], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gold", "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gold"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 50, "__tile": null, "defUid": 139, "realEditorValues": [{ "id": "V_Int", "params": [50] }] } + ] + }, + { + "__identifier": "Item", + "__grid": [6,19], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 48, "y": 320, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a36a34b9-66b0-11ec-9cd7-c1de732b0896", + "width": 24, + "height": 24, + "defUid": 72, + "px": [104,320], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Meat", "__tile": { "tilesetUid": 133, "x": 48, "y": 320, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Meat"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [null] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [14,10], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 0, "y": 640, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a36a34ba-66b0-11ec-9cd7-3d92ac9679f8", + "width": 24, + "height": 24, + "defUid": 72, + "px": [232,176], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Armor", "__tile": { "tilesetUid": 133, "x": 0, "y": 640, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Armor"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "SecretArea", + "__grid": [3,5], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 133, "x": 336, "y": 16, "w": 16, "h": 16 }, + "__smartColor": "#FFCC00", + "iid": "a36a34bb-66b0-11ec-9cd7-5b38c50aa489", + "width": 224, + "height": 112, + "defUid": 96, + "px": [48,80], + "fieldInstances": [{ "__identifier": "playSecretJingle", "__type": "Bool", "__value": true, "__tile": null, "defUid": 97, "realEditorValues": [] }] + }, + { + "__identifier": "Ladder", + "__grid": [20,16], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "ad4d1430-66b0-11ec-9ccd-9d4683fc5a08", + "width": 16, + "height": 160, + "defUid": 134, + "px": [320,256], + "fieldInstances": [] + }, + { + "__identifier": "Ladder", + "__grid": [4,20], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "b2ce1350-66b0-11ec-9ccd-313511d6a7cc", + "width": 16, + "height": 128, + "defUid": 134, + "px": [64,320], + "fieldInstances": [] + }, + { + "__identifier": "Ladder", + "__grid": [28,16], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "1bebdd90-66b0-11ec-9ccd-bb4ef2660ecd", + "width": 16, + "height": 160, + "defUid": 134, + "px": [448,256], + "fieldInstances": [] + }, + { + "__identifier": "Item", + "__grid": [21,25], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "260c2b70-7820-11ed-b4b8-e7d3d85992e6", + "width": 24, + "height": 24, + "defUid": 72, + "px": [344,416], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gold", "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gold"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 20, "__tile": null, "defUid": 139, "realEditorValues": [{ "id": "V_Int", "params": [20] }] } + ] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36a34bc-66b0-11ec-9cd7-8b3509639e48", + "levelId": 66, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [64,96], "src": [320,128], "f": 0, "t": 204, "d": [26,196], "a": 1 }, + { "px": [240,96], "src": [320,128], "f": 1, "t": 204, "d": [26,207], "a": 1 }, + { "px": [240,112], "src": [320,128], "f": 1, "t": 204, "d": [26,239], "a": 1 }, + { "px": [320,112], "src": [320,128], "f": 0, "t": 204, "d": [26,244], "a": 1 }, + { "px": [240,128], "src": [320,128], "f": 1, "t": 204, "d": [26,271], "a": 1 }, + { "px": [320,128], "src": [320,128], "f": 0, "t": 204, "d": [26,276], "a": 1 }, + { "px": [320,144], "src": [320,128], "f": 0, "t": 204, "d": [26,308], "a": 1 }, + { "px": [320,160], "src": [320,128], "f": 0, "t": 204, "d": [26,340], "a": 1 }, + { "px": [320,176], "src": [320,128], "f": 0, "t": 204, "d": [26,372], "a": 1 }, + { "px": [320,192], "src": [320,128], "f": 0, "t": 204, "d": [26,404], "a": 1 }, + { "px": [464,192], "src": [320,128], "f": 1, "t": 204, "d": [26,413], "a": 1 }, + { "px": [64,208], "src": [320,128], "f": 0, "t": 204, "d": [26,420], "a": 1 }, + { "px": [464,208], "src": [320,128], "f": 1, "t": 204, "d": [26,445], "a": 1 }, + { "px": [48,224], "src": [320,128], "f": 0, "t": 204, "d": [26,451], "a": 1 }, + { "px": [464,224], "src": [320,128], "f": 1, "t": 204, "d": [26,477], "a": 1 }, + { "px": [48,240], "src": [320,128], "f": 0, "t": 204, "d": [26,483], "a": 1 }, + { "px": [464,240], "src": [320,128], "f": 1, "t": 204, "d": [26,509], "a": 1 }, + { "px": [48,256], "src": [320,128], "f": 0, "t": 204, "d": [26,515], "a": 1 }, + { "px": [48,272], "src": [320,128], "f": 0, "t": 204, "d": [26,547], "a": 1 }, + { "px": [176,272], "src": [320,128], "f": 1, "t": 204, "d": [26,555], "a": 1 }, + { "px": [320,272], "src": [320,128], "f": 0, "t": 204, "d": [26,564], "a": 1 }, + { "px": [464,272], "src": [320,128], "f": 1, "t": 204, "d": [26,573], "a": 1 }, + { "px": [48,288], "src": [320,128], "f": 0, "t": 204, "d": [26,579], "a": 1 }, + { "px": [176,288], "src": [320,128], "f": 1, "t": 204, "d": [26,587], "a": 1 }, + { "px": [320,288], "src": [320,128], "f": 0, "t": 204, "d": [26,596], "a": 1 }, + { "px": [448,288], "src": [320,128], "f": 0, "t": 204, "d": [26,604], "a": 1 }, + { "px": [464,288], "src": [320,128], "f": 1, "t": 204, "d": [26,605], "a": 1 }, + { "px": [48,304], "src": [320,128], "f": 0, "t": 204, "d": [26,611], "a": 1 }, + { "px": [176,304], "src": [320,128], "f": 1, "t": 204, "d": [26,619], "a": 1 }, + { "px": [320,304], "src": [320,128], "f": 0, "t": 204, "d": [26,628], "a": 1 }, + { "px": [448,304], "src": [320,128], "f": 0, "t": 204, "d": [26,636], "a": 1 }, + { "px": [464,304], "src": [320,128], "f": 1, "t": 204, "d": [26,637], "a": 1 }, + { "px": [48,320], "src": [320,128], "f": 0, "t": 204, "d": [26,643], "a": 1 }, + { "px": [176,320], "src": [320,128], "f": 1, "t": 204, "d": [26,651], "a": 1 }, + { "px": [224,320], "src": [320,128], "f": 0, "t": 204, "d": [26,654], "a": 1 }, + { "px": [400,320], "src": [320,128], "f": 1, "t": 204, "d": [26,665], "a": 1 }, + { "px": [448,320], "src": [320,128], "f": 0, "t": 204, "d": [26,668], "a": 1 }, + { "px": [464,320], "src": [320,128], "f": 1, "t": 204, "d": [26,669], "a": 1 }, + { "px": [48,336], "src": [320,128], "f": 0, "t": 204, "d": [26,675], "a": 1 }, + { "px": [64,336], "src": [320,128], "f": 1, "t": 204, "d": [26,676], "a": 1 }, + { "px": [224,336], "src": [320,128], "f": 0, "t": 204, "d": [26,686], "a": 1 }, + { "px": [400,336], "src": [320,128], "f": 1, "t": 204, "d": [26,697], "a": 1 }, + { "px": [448,336], "src": [320,128], "f": 0, "t": 204, "d": [26,700], "a": 1 }, + { "px": [464,336], "src": [320,128], "f": 1, "t": 204, "d": [26,701], "a": 1 }, + { "px": [48,352], "src": [320,128], "f": 0, "t": 204, "d": [26,707], "a": 1 }, + { "px": [64,352], "src": [320,128], "f": 1, "t": 204, "d": [26,708], "a": 1 }, + { "px": [448,352], "src": [320,128], "f": 0, "t": 204, "d": [26,732], "a": 1 }, + { "px": [464,352], "src": [320,128], "f": 1, "t": 204, "d": [26,733], "a": 1 }, + { "px": [48,368], "src": [320,128], "f": 0, "t": 204, "d": [26,739], "a": 1 }, + { "px": [64,368], "src": [320,128], "f": 1, "t": 204, "d": [26,740], "a": 1 }, + { "px": [448,368], "src": [320,128], "f": 0, "t": 204, "d": [26,764], "a": 1 }, + { "px": [48,384], "src": [320,128], "f": 0, "t": 204, "d": [26,771], "a": 1 }, + { "px": [64,384], "src": [320,128], "f": 1, "t": 204, "d": [26,772], "a": 1 }, + { "px": [448,384], "src": [320,128], "f": 0, "t": 204, "d": [26,796], "a": 1 }, + { "px": [64,400], "src": [320,128], "f": 1, "t": 204, "d": [26,804], "a": 1 }, + { "px": [448,400], "src": [320,128], "f": 0, "t": 204, "d": [26,828], "a": 1 }, + { "px": [64,416], "src": [320,128], "f": 1, "t": 204, "d": [26,836], "a": 1 }, + { "px": [64,432], "src": [320,128], "f": 1, "t": 204, "d": [26,868], "a": 1 }, + { "px": [64,128], "src": [320,96], "f": 0, "t": 158, "d": [138,260], "a": 1 }, + { "px": [416,176], "src": [320,96], "f": 1, "t": 158, "d": [138,378], "a": 1 }, + { "px": [176,256], "src": [320,96], "f": 1, "t": 158, "d": [138,523], "a": 1 }, + { "px": [320,256], "src": [320,96], "f": 0, "t": 158, "d": [138,532], "a": 1 }, + { "px": [448,256], "src": [320,96], "f": 0, "t": 158, "d": [138,540], "a": 1 }, + { "px": [64,320], "src": [320,96], "f": 1, "t": 158, "d": [138,644], "a": 1 }, + { "px": [112,320], "src": [320,96], "f": 0, "t": 158, "d": [138,647], "a": 1 }, + { "px": [64,96], "src": [336,112], "f": 0, "t": 182, "d": [27,196], "a": 1 }, + { "px": [80,96], "src": [336,112], "f": 0, "t": 182, "d": [27,197], "a": 1 }, + { "px": [96,96], "src": [336,112], "f": 0, "t": 182, "d": [27,198], "a": 1 }, + { "px": [112,96], "src": [336,112], "f": 0, "t": 182, "d": [27,199], "a": 1 }, + { "px": [128,96], "src": [336,112], "f": 0, "t": 182, "d": [27,200], "a": 1 }, + { "px": [144,96], "src": [336,112], "f": 0, "t": 182, "d": [27,201], "a": 1 }, + { "px": [160,96], "src": [336,112], "f": 0, "t": 182, "d": [27,202], "a": 1 }, + { "px": [176,96], "src": [336,112], "f": 0, "t": 182, "d": [27,203], "a": 1 }, + { "px": [192,96], "src": [336,112], "f": 0, "t": 182, "d": [27,204], "a": 1 }, + { "px": [208,96], "src": [336,112], "f": 0, "t": 182, "d": [27,205], "a": 1 }, + { "px": [224,96], "src": [336,112], "f": 0, "t": 182, "d": [27,206], "a": 1 }, + { "px": [240,96], "src": [336,112], "f": 0, "t": 182, "d": [27,207], "a": 1 }, + { "px": [0,112], "src": [336,112], "f": 0, "t": 182, "d": [27,224], "a": 1 }, + { "px": [16,112], "src": [336,112], "f": 0, "t": 182, "d": [27,225], "a": 1 }, + { "px": [32,112], "src": [336,112], "f": 0, "t": 182, "d": [27,226], "a": 1 }, + { "px": [48,112], "src": [336,112], "f": 0, "t": 182, "d": [27,227], "a": 1 }, + { "px": [320,112], "src": [336,112], "f": 0, "t": 182, "d": [27,244], "a": 1 }, + { "px": [336,112], "src": [336,112], "f": 0, "t": 182, "d": [27,245], "a": 1 }, + { "px": [352,112], "src": [336,112], "f": 0, "t": 182, "d": [27,246], "a": 1 }, + { "px": [368,112], "src": [336,112], "f": 0, "t": 182, "d": [27,247], "a": 1 }, + { "px": [384,112], "src": [336,112], "f": 0, "t": 182, "d": [27,248], "a": 1 }, + { "px": [400,112], "src": [336,112], "f": 0, "t": 182, "d": [27,249], "a": 1 }, + { "px": [416,112], "src": [336,112], "f": 0, "t": 182, "d": [27,250], "a": 1 }, + { "px": [432,112], "src": [336,112], "f": 0, "t": 182, "d": [27,251], "a": 1 }, + { "px": [448,112], "src": [336,112], "f": 0, "t": 182, "d": [27,252], "a": 1 }, + { "px": [464,112], "src": [336,112], "f": 0, "t": 182, "d": [27,253], "a": 1 }, + { "px": [480,112], "src": [336,112], "f": 0, "t": 182, "d": [27,254], "a": 1 }, + { "px": [496,112], "src": [336,112], "f": 0, "t": 182, "d": [27,255], "a": 1 }, + { "px": [432,192], "src": [336,112], "f": 0, "t": 182, "d": [27,411], "a": 1 }, + { "px": [448,192], "src": [336,112], "f": 0, "t": 182, "d": [27,412], "a": 1 }, + { "px": [464,192], "src": [336,112], "f": 0, "t": 182, "d": [27,413], "a": 1 }, + { "px": [64,208], "src": [336,112], "f": 0, "t": 182, "d": [27,420], "a": 1 }, + { "px": [80,208], "src": [336,112], "f": 0, "t": 182, "d": [27,421], "a": 1 }, + { "px": [96,208], "src": [336,112], "f": 0, "t": 182, "d": [27,422], "a": 1 }, + { "px": [112,208], "src": [336,112], "f": 0, "t": 182, "d": [27,423], "a": 1 }, + { "px": [128,208], "src": [336,112], "f": 0, "t": 182, "d": [27,424], "a": 1 }, + { "px": [144,208], "src": [336,112], "f": 0, "t": 182, "d": [27,425], "a": 1 }, + { "px": [160,208], "src": [336,112], "f": 0, "t": 182, "d": [27,426], "a": 1 }, + { "px": [176,208], "src": [336,112], "f": 0, "t": 182, "d": [27,427], "a": 1 }, + { "px": [192,208], "src": [336,112], "f": 0, "t": 182, "d": [27,428], "a": 1 }, + { "px": [208,208], "src": [336,112], "f": 0, "t": 182, "d": [27,429], "a": 1 }, + { "px": [224,208], "src": [336,112], "f": 0, "t": 182, "d": [27,430], "a": 1 }, + { "px": [240,208], "src": [336,112], "f": 0, "t": 182, "d": [27,431], "a": 1 }, + { "px": [256,208], "src": [336,112], "f": 0, "t": 182, "d": [27,432], "a": 1 }, + { "px": [272,208], "src": [336,112], "f": 0, "t": 182, "d": [27,433], "a": 1 }, + { "px": [288,208], "src": [336,112], "f": 0, "t": 182, "d": [27,434], "a": 1 }, + { "px": [304,208], "src": [336,112], "f": 0, "t": 182, "d": [27,435], "a": 1 }, + { "px": [48,224], "src": [336,112], "f": 0, "t": 182, "d": [27,451], "a": 1 }, + { "px": [464,272], "src": [336,112], "f": 0, "t": 182, "d": [27,573], "a": 1 }, + { "px": [224,320], "src": [336,112], "f": 0, "t": 182, "d": [27,654], "a": 1 }, + { "px": [240,320], "src": [336,112], "f": 0, "t": 182, "d": [27,655], "a": 1 }, + { "px": [256,320], "src": [336,112], "f": 0, "t": 182, "d": [27,656], "a": 1 }, + { "px": [272,320], "src": [336,112], "f": 0, "t": 182, "d": [27,657], "a": 1 }, + { "px": [288,320], "src": [336,112], "f": 0, "t": 182, "d": [27,658], "a": 1 }, + { "px": [304,320], "src": [336,112], "f": 0, "t": 182, "d": [27,659], "a": 1 }, + { "px": [336,320], "src": [336,112], "f": 0, "t": 182, "d": [27,661], "a": 1 }, + { "px": [352,320], "src": [336,112], "f": 0, "t": 182, "d": [27,662], "a": 1 }, + { "px": [368,320], "src": [336,112], "f": 0, "t": 182, "d": [27,663], "a": 1 }, + { "px": [384,320], "src": [336,112], "f": 0, "t": 182, "d": [27,664], "a": 1 }, + { "px": [400,320], "src": [336,112], "f": 0, "t": 182, "d": [27,665], "a": 1 }, + { "px": [480,368], "src": [336,112], "f": 0, "t": 182, "d": [27,766], "a": 1 }, + { "px": [496,368], "src": [336,112], "f": 0, "t": 182, "d": [27,767], "a": 1 }, + { "px": [0,400], "src": [336,112], "f": 0, "t": 182, "d": [27,800], "a": 1 }, + { "px": [16,400], "src": [336,112], "f": 0, "t": 182, "d": [27,801], "a": 1 }, + { "px": [32,400], "src": [336,112], "f": 0, "t": 182, "d": [27,802], "a": 1 }, + { "px": [64,112], "src": [320,112], "f": 0, "t": 181, "d": [137,228], "a": 1 }, + { "px": [416,192], "src": [320,112], "f": 1, "t": 181, "d": [137,410], "a": 1 }, + { "px": [320,208], "src": [320,112], "f": 0, "t": 181, "d": [137,436], "a": 1 }, + { "px": [64,224], "src": [320,112], "f": 0, "t": 181, "d": [137,452], "a": 1 }, + { "px": [448,272], "src": [320,112], "f": 1, "t": 181, "d": [137,572], "a": 1 }, + { "px": [320,320], "src": [320,112], "f": 0, "t": 181, "d": [137,660], "a": 1 }, + { "px": [464,368], "src": [320,112], "f": 1, "t": 181, "d": [137,765], "a": 1 }, + { "px": [48,400], "src": [320,112], "f": 0, "t": 181, "d": [137,803], "a": 1 } + ], + "seed": 5084082, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36a5bc0-66b0-11ec-9cd7-d3afe6234c77", + "levelId": 66, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0, + 0,0,0,0,0,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0, + 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1, + 1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1, + 1,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1, + 1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,1, + 1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,0,0,1,1,1,1,1,0,0,1,1,2,2,2,2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 0,0,1,1,1,1,1,0,0,1,1,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,1, + 1,1,1,1,0,0,1,1,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,0,0,1,1, + 1,0,0,1,1,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,0,0,0,0,0,0,0, + 1,1,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,0,0,0,0,0,0,0,1,1,2, + 2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,2,2,2,2, + 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [64,160], "src": [320,176], "f": 0, "t": 273, "d": [28,324], "a": 1 }, + { "px": [80,160], "src": [320,176], "f": 0, "t": 273, "d": [28,325], "a": 1 }, + { "px": [96,160], "src": [320,176], "f": 0, "t": 273, "d": [28,326], "a": 1 }, + { "px": [112,160], "src": [320,176], "f": 0, "t": 273, "d": [28,327], "a": 1 }, + { "px": [128,160], "src": [320,176], "f": 0, "t": 273, "d": [28,328], "a": 1 }, + { "px": [144,160], "src": [320,176], "f": 0, "t": 273, "d": [28,329], "a": 1 }, + { "px": [160,160], "src": [320,176], "f": 0, "t": 273, "d": [28,330], "a": 1 }, + { "px": [176,160], "src": [320,176], "f": 0, "t": 273, "d": [28,331], "a": 1 }, + { "px": [192,160], "src": [320,176], "f": 0, "t": 273, "d": [28,332], "a": 1 }, + { "px": [208,160], "src": [320,176], "f": 0, "t": 273, "d": [28,333], "a": 1 }, + { "px": [224,160], "src": [320,176], "f": 0, "t": 273, "d": [28,334], "a": 1 }, + { "px": [240,160], "src": [320,176], "f": 0, "t": 273, "d": [28,335], "a": 1 }, + { "px": [112,352], "src": [320,176], "f": 0, "t": 273, "d": [28,711], "a": 1 }, + { "px": [128,352], "src": [320,176], "f": 0, "t": 273, "d": [28,712], "a": 1 }, + { "px": [144,352], "src": [320,176], "f": 0, "t": 273, "d": [28,713], "a": 1 }, + { "px": [160,352], "src": [320,176], "f": 0, "t": 273, "d": [28,714], "a": 1 }, + { "px": [176,352], "src": [320,176], "f": 0, "t": 273, "d": [28,715], "a": 1 }, + { "px": [112,368], "src": [320,176], "f": 0, "t": 273, "d": [28,743], "a": 1 }, + { "px": [128,368], "src": [320,176], "f": 0, "t": 273, "d": [28,744], "a": 1 }, + { "px": [144,368], "src": [320,176], "f": 0, "t": 273, "d": [28,745], "a": 1 }, + { "px": [160,368], "src": [320,176], "f": 0, "t": 273, "d": [28,746], "a": 1 }, + { "px": [176,368], "src": [320,176], "f": 0, "t": 273, "d": [28,747], "a": 1 }, + { "px": [224,368], "src": [320,176], "f": 0, "t": 273, "d": [28,750], "a": 1 }, + { "px": [240,368], "src": [320,176], "f": 0, "t": 273, "d": [28,751], "a": 1 }, + { "px": [256,368], "src": [320,176], "f": 0, "t": 273, "d": [28,752], "a": 1 }, + { "px": [272,368], "src": [320,176], "f": 0, "t": 273, "d": [28,753], "a": 1 }, + { "px": [288,368], "src": [320,176], "f": 0, "t": 273, "d": [28,754], "a": 1 }, + { "px": [304,368], "src": [320,176], "f": 0, "t": 273, "d": [28,755], "a": 1 }, + { "px": [320,368], "src": [320,176], "f": 0, "t": 273, "d": [28,756], "a": 1 }, + { "px": [336,368], "src": [320,176], "f": 0, "t": 273, "d": [28,757], "a": 1 }, + { "px": [352,368], "src": [320,176], "f": 0, "t": 273, "d": [28,758], "a": 1 }, + { "px": [368,368], "src": [320,176], "f": 0, "t": 273, "d": [28,759], "a": 1 }, + { "px": [384,368], "src": [320,176], "f": 0, "t": 273, "d": [28,760], "a": 1 }, + { "px": [400,368], "src": [320,176], "f": 0, "t": 273, "d": [28,761], "a": 1 }, + { "px": [112,384], "src": [320,176], "f": 0, "t": 273, "d": [28,775], "a": 1 }, + { "px": [128,384], "src": [320,176], "f": 0, "t": 273, "d": [28,776], "a": 1 }, + { "px": [144,384], "src": [320,176], "f": 0, "t": 273, "d": [28,777], "a": 1 }, + { "px": [160,384], "src": [320,176], "f": 0, "t": 273, "d": [28,778], "a": 1 }, + { "px": [176,384], "src": [320,176], "f": 0, "t": 273, "d": [28,779], "a": 1 }, + { "px": [224,384], "src": [320,176], "f": 0, "t": 273, "d": [28,782], "a": 1 }, + { "px": [240,384], "src": [320,176], "f": 0, "t": 273, "d": [28,783], "a": 1 }, + { "px": [256,384], "src": [320,176], "f": 0, "t": 273, "d": [28,784], "a": 1 }, + { "px": [272,384], "src": [320,176], "f": 0, "t": 273, "d": [28,785], "a": 1 }, + { "px": [288,384], "src": [320,176], "f": 0, "t": 273, "d": [28,786], "a": 1 }, + { "px": [304,384], "src": [320,176], "f": 0, "t": 273, "d": [28,787], "a": 1 }, + { "px": [320,384], "src": [320,176], "f": 0, "t": 273, "d": [28,788], "a": 1 }, + { "px": [336,384], "src": [320,176], "f": 0, "t": 273, "d": [28,789], "a": 1 }, + { "px": [352,384], "src": [320,176], "f": 0, "t": 273, "d": [28,790], "a": 1 }, + { "px": [368,384], "src": [320,176], "f": 0, "t": 273, "d": [28,791], "a": 1 }, + { "px": [384,384], "src": [320,176], "f": 0, "t": 273, "d": [28,792], "a": 1 }, + { "px": [400,384], "src": [320,176], "f": 0, "t": 273, "d": [28,793], "a": 1 }, + { "px": [112,400], "src": [320,176], "f": 0, "t": 273, "d": [28,807], "a": 1 }, + { "px": [128,400], "src": [320,176], "f": 0, "t": 273, "d": [28,808], "a": 1 }, + { "px": [144,400], "src": [320,176], "f": 0, "t": 273, "d": [28,809], "a": 1 }, + { "px": [160,400], "src": [320,176], "f": 0, "t": 273, "d": [28,810], "a": 1 }, + { "px": [176,400], "src": [320,176], "f": 0, "t": 273, "d": [28,811], "a": 1 }, + { "px": [224,400], "src": [320,176], "f": 0, "t": 273, "d": [28,814], "a": 1 }, + { "px": [240,400], "src": [320,176], "f": 0, "t": 273, "d": [28,815], "a": 1 }, + { "px": [256,400], "src": [320,176], "f": 0, "t": 273, "d": [28,816], "a": 1 }, + { "px": [272,400], "src": [320,176], "f": 0, "t": 273, "d": [28,817], "a": 1 }, + { "px": [288,400], "src": [320,176], "f": 0, "t": 273, "d": [28,818], "a": 1 }, + { "px": [304,400], "src": [320,176], "f": 0, "t": 273, "d": [28,819], "a": 1 }, + { "px": [320,400], "src": [320,176], "f": 0, "t": 273, "d": [28,820], "a": 1 }, + { "px": [336,400], "src": [320,176], "f": 0, "t": 273, "d": [28,821], "a": 1 }, + { "px": [352,400], "src": [320,176], "f": 0, "t": 273, "d": [28,822], "a": 1 }, + { "px": [368,400], "src": [320,176], "f": 0, "t": 273, "d": [28,823], "a": 1 }, + { "px": [384,400], "src": [320,176], "f": 0, "t": 273, "d": [28,824], "a": 1 }, + { "px": [400,400], "src": [320,176], "f": 0, "t": 273, "d": [28,825], "a": 1 }, + { "px": [112,416], "src": [320,176], "f": 0, "t": 273, "d": [28,839], "a": 1 }, + { "px": [128,416], "src": [320,176], "f": 0, "t": 273, "d": [28,840], "a": 1 }, + { "px": [144,416], "src": [320,176], "f": 0, "t": 273, "d": [28,841], "a": 1 }, + { "px": [160,416], "src": [320,176], "f": 0, "t": 273, "d": [28,842], "a": 1 }, + { "px": [176,416], "src": [320,176], "f": 0, "t": 273, "d": [28,843], "a": 1 }, + { "px": [112,432], "src": [320,176], "f": 0, "t": 273, "d": [28,871], "a": 1 }, + { "px": [128,432], "src": [320,176], "f": 0, "t": 273, "d": [28,872], "a": 1 }, + { "px": [144,432], "src": [320,176], "f": 0, "t": 273, "d": [28,873], "a": 1 }, + { "px": [160,432], "src": [320,176], "f": 0, "t": 273, "d": [28,874], "a": 1 }, + { "px": [176,432], "src": [320,176], "f": 0, "t": 273, "d": [28,875], "a": 1 }, + { "px": [112,448], "src": [320,176], "f": 0, "t": 273, "d": [28,903], "a": 1 }, + { "px": [128,448], "src": [320,176], "f": 0, "t": 273, "d": [28,904], "a": 1 }, + { "px": [144,448], "src": [320,176], "f": 0, "t": 273, "d": [28,905], "a": 1 }, + { "px": [160,448], "src": [320,176], "f": 0, "t": 273, "d": [28,906], "a": 1 }, + { "px": [176,448], "src": [320,176], "f": 0, "t": 273, "d": [28,907], "a": 1 }, + { "px": [112,464], "src": [320,176], "f": 0, "t": 273, "d": [28,935], "a": 1 }, + { "px": [128,464], "src": [320,176], "f": 0, "t": 273, "d": [28,936], "a": 1 }, + { "px": [144,464], "src": [320,176], "f": 0, "t": 273, "d": [28,937], "a": 1 }, + { "px": [160,464], "src": [320,176], "f": 0, "t": 273, "d": [28,938], "a": 1 }, + { "px": [176,464], "src": [320,176], "f": 0, "t": 273, "d": [28,939], "a": 1 }, + { "px": [64,144], "src": [320,160], "f": 0, "t": 250, "d": [21,292], "a": 1 }, + { "px": [80,144], "src": [320,160], "f": 0, "t": 250, "d": [21,293], "a": 1 }, + { "px": [96,144], "src": [320,160], "f": 0, "t": 250, "d": [21,294], "a": 1 }, + { "px": [112,144], "src": [320,160], "f": 0, "t": 250, "d": [21,295], "a": 1 }, + { "px": [128,144], "src": [320,160], "f": 0, "t": 250, "d": [21,296], "a": 1 }, + { "px": [144,144], "src": [320,160], "f": 0, "t": 250, "d": [21,297], "a": 1 }, + { "px": [160,144], "src": [320,160], "f": 0, "t": 250, "d": [21,298], "a": 1 }, + { "px": [176,144], "src": [320,160], "f": 0, "t": 250, "d": [21,299], "a": 1 }, + { "px": [192,144], "src": [320,160], "f": 0, "t": 250, "d": [21,300], "a": 1 }, + { "px": [208,144], "src": [320,160], "f": 0, "t": 250, "d": [21,301], "a": 1 }, + { "px": [224,144], "src": [320,160], "f": 0, "t": 250, "d": [21,302], "a": 1 }, + { "px": [240,144], "src": [320,160], "f": 0, "t": 250, "d": [21,303], "a": 1 }, + { "px": [112,336], "src": [320,160], "f": 0, "t": 250, "d": [21,679], "a": 1 }, + { "px": [128,336], "src": [320,160], "f": 0, "t": 250, "d": [21,680], "a": 1 }, + { "px": [144,336], "src": [320,160], "f": 0, "t": 250, "d": [21,681], "a": 1 }, + { "px": [160,336], "src": [320,160], "f": 0, "t": 250, "d": [21,682], "a": 1 }, + { "px": [176,336], "src": [320,160], "f": 0, "t": 250, "d": [21,683], "a": 1 }, + { "px": [224,352], "src": [320,160], "f": 0, "t": 250, "d": [21,718], "a": 1 }, + { "px": [240,352], "src": [320,160], "f": 0, "t": 250, "d": [21,719], "a": 1 }, + { "px": [256,352], "src": [320,160], "f": 0, "t": 250, "d": [21,720], "a": 1 }, + { "px": [272,352], "src": [320,160], "f": 0, "t": 250, "d": [21,721], "a": 1 }, + { "px": [288,352], "src": [320,160], "f": 0, "t": 250, "d": [21,722], "a": 1 }, + { "px": [304,352], "src": [320,160], "f": 0, "t": 250, "d": [21,723], "a": 1 }, + { "px": [320,352], "src": [320,160], "f": 0, "t": 250, "d": [21,724], "a": 1 }, + { "px": [336,352], "src": [320,160], "f": 0, "t": 250, "d": [21,725], "a": 1 }, + { "px": [352,352], "src": [320,160], "f": 0, "t": 250, "d": [21,726], "a": 1 }, + { "px": [368,352], "src": [320,160], "f": 0, "t": 250, "d": [21,727], "a": 1 }, + { "px": [384,352], "src": [320,160], "f": 0, "t": 250, "d": [21,728], "a": 1 }, + { "px": [400,352], "src": [320,160], "f": 0, "t": 250, "d": [21,729], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [8,98], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [8,102], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [8,104], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [8,108], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [8,110], "a": 1 }, + { "px": [256,48], "src": [32,32], "f": 0, "t": 48, "d": [8,112], "a": 1 }, + { "px": [288,48], "src": [32,32], "f": 0, "t": 48, "d": [8,114], "a": 1 }, + { "px": [48,64], "src": [32,32], "f": 0, "t": 48, "d": [8,131], "a": 1 }, + { "px": [112,64], "src": [32,32], "f": 0, "t": 48, "d": [8,135], "a": 1 }, + { "px": [144,64], "src": [32,32], "f": 0, "t": 48, "d": [8,137], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [8,139], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [8,141], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [8,143], "a": 1 }, + { "px": [272,64], "src": [32,32], "f": 0, "t": 48, "d": [8,145], "a": 1 }, + { "px": [304,64], "src": [32,32], "f": 0, "t": 48, "d": [8,147], "a": 1 }, + { "px": [336,64], "src": [32,32], "f": 0, "t": 48, "d": [8,149], "a": 1 }, + { "px": [368,64], "src": [32,32], "f": 0, "t": 48, "d": [8,151], "a": 1 }, + { "px": [400,64], "src": [32,32], "f": 0, "t": 48, "d": [8,153], "a": 1 }, + { "px": [432,64], "src": [32,32], "f": 0, "t": 48, "d": [8,155], "a": 1 }, + { "px": [464,64], "src": [32,32], "f": 0, "t": 48, "d": [8,157], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [8,162], "a": 1 }, + { "px": [288,80], "src": [32,32], "f": 0, "t": 48, "d": [8,178], "a": 1 }, + { "px": [384,80], "src": [32,32], "f": 0, "t": 48, "d": [8,184], "a": 1 }, + { "px": [416,80], "src": [32,32], "f": 0, "t": 48, "d": [8,186], "a": 1 }, + { "px": [480,80], "src": [32,32], "f": 0, "t": 48, "d": [8,190], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [8,288], "a": 1 }, + { "px": [32,144], "src": [32,32], "f": 0, "t": 48, "d": [8,290], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [8,321], "a": 1 }, + { "px": [272,160], "src": [32,32], "f": 0, "t": 48, "d": [8,337], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [8,352], "a": 1 }, + { "px": [32,176], "src": [32,32], "f": 0, "t": 48, "d": [8,354], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [8,385], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [8,416], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [8,449], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [8,479], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [8,480], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [8,544], "a": 1 }, + { "px": [224,272], "src": [32,32], "f": 0, "t": 48, "d": [8,558], "a": 1 }, + { "px": [256,272], "src": [32,32], "f": 0, "t": 48, "d": [8,560], "a": 1 }, + { "px": [384,272], "src": [32,32], "f": 0, "t": 48, "d": [8,568], "a": 1 }, + { "px": [416,272], "src": [32,32], "f": 0, "t": 48, "d": [8,570], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [8,577], "a": 1 }, + { "px": [240,288], "src": [32,32], "f": 0, "t": 48, "d": [8,591], "a": 1 }, + { "px": [272,288], "src": [32,32], "f": 0, "t": 48, "d": [8,593], "a": 1 }, + { "px": [368,288], "src": [32,32], "f": 0, "t": 48, "d": [8,599], "a": 1 }, + { "px": [496,288], "src": [32,32], "f": 0, "t": 48, "d": [8,607], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [8,641], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [8,672], "a": 1 }, + { "px": [224,432], "src": [32,32], "f": 0, "t": 48, "d": [8,878], "a": 1 }, + { "px": [256,432], "src": [32,32], "f": 0, "t": 48, "d": [8,880], "a": 1 }, + { "px": [320,432], "src": [32,32], "f": 0, "t": 48, "d": [8,884], "a": 1 }, + { "px": [352,432], "src": [32,32], "f": 0, "t": 48, "d": [8,886], "a": 1 }, + { "px": [384,432], "src": [32,32], "f": 0, "t": 48, "d": [8,888], "a": 1 }, + { "px": [208,448], "src": [32,32], "f": 0, "t": 48, "d": [8,909], "a": 1 }, + { "px": [240,448], "src": [32,32], "f": 0, "t": 48, "d": [8,911], "a": 1 }, + { "px": [272,448], "src": [32,32], "f": 0, "t": 48, "d": [8,913], "a": 1 }, + { "px": [304,448], "src": [32,32], "f": 0, "t": 48, "d": [8,915], "a": 1 }, + { "px": [336,448], "src": [32,32], "f": 0, "t": 48, "d": [8,917], "a": 1 }, + { "px": [368,448], "src": [32,32], "f": 0, "t": 48, "d": [8,919], "a": 1 }, + { "px": [400,448], "src": [32,32], "f": 0, "t": 48, "d": [8,921], "a": 1 }, + { "px": [432,448], "src": [32,32], "f": 0, "t": 48, "d": [8,923], "a": 1 }, + { "px": [464,448], "src": [32,32], "f": 0, "t": 48, "d": [8,925], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [8,928], "a": 1 }, + { "px": [224,464], "src": [32,32], "f": 0, "t": 48, "d": [8,942], "a": 1 }, + { "px": [48,480], "src": [32,32], "f": 0, "t": 48, "d": [8,963], "a": 1 }, + { "px": [80,480], "src": [32,32], "f": 0, "t": 48, "d": [8,965], "a": 1 }, + { "px": [208,480], "src": [32,32], "f": 0, "t": 48, "d": [8,973], "a": 1 }, + { "px": [96,496], "src": [32,32], "f": 0, "t": 48, "d": [8,998], "a": 1 }, + { "px": [128,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1000], "a": 1 }, + { "px": [160,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1002], "a": 1 }, + { "px": [192,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1004], "a": 1 }, + { "px": [224,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1006], "a": 1 }, + { "px": [64,48], "src": [96,96], "f": 0, "t": 144, "d": [83,100], "a": 1 }, + { "px": [160,48], "src": [64,96], "f": 0, "t": 142, "d": [83,106], "a": 1 }, + { "px": [16,64], "src": [64,96], "f": 0, "t": 142, "d": [83,129], "a": 1 }, + { "px": [80,64], "src": [64,96], "f": 0, "t": 142, "d": [83,133], "a": 1 }, + { "px": [496,64], "src": [96,96], "f": 0, "t": 144, "d": [83,159], "a": 1 }, + { "px": [0,80], "src": [64,96], "f": 0, "t": 142, "d": [83,160], "a": 1 }, + { "px": [320,80], "src": [64,96], "f": 0, "t": 142, "d": [83,180], "a": 1 }, + { "px": [352,80], "src": [96,96], "f": 0, "t": 144, "d": [83,182], "a": 1 }, + { "px": [448,80], "src": [64,96], "f": 0, "t": 142, "d": [83,188], "a": 1 }, + { "px": [272,96], "src": [96,96], "f": 0, "t": 144, "d": [83,209], "a": 1 }, + { "px": [288,112], "src": [96,96], "f": 0, "t": 144, "d": [83,242], "a": 1 }, + { "px": [272,128], "src": [64,96], "f": 0, "t": 142, "d": [83,273], "a": 1 }, + { "px": [288,144], "src": [64,96], "f": 0, "t": 142, "d": [83,306], "a": 1 }, + { "px": [288,176], "src": [96,96], "f": 0, "t": 144, "d": [83,370], "a": 1 }, + { "px": [496,192], "src": [64,96], "f": 0, "t": 142, "d": [83,415], "a": 1 }, + { "px": [16,256], "src": [96,96], "f": 0, "t": 144, "d": [83,513], "a": 1 }, + { "px": [496,256], "src": [64,96], "f": 0, "t": 142, "d": [83,543], "a": 1 }, + { "px": [288,272], "src": [96,96], "f": 0, "t": 144, "d": [83,562], "a": 1 }, + { "px": [352,272], "src": [96,96], "f": 0, "t": 144, "d": [83,566], "a": 1 }, + { "px": [208,288], "src": [64,96], "f": 0, "t": 142, "d": [83,589], "a": 1 }, + { "px": [400,288], "src": [96,96], "f": 0, "t": 144, "d": [83,601], "a": 1 }, + { "px": [0,304], "src": [96,96], "f": 0, "t": 144, "d": [83,608], "a": 1 }, + { "px": [496,320], "src": [96,96], "f": 0, "t": 144, "d": [83,671], "a": 1 }, + { "px": [16,352], "src": [64,96], "f": 0, "t": 142, "d": [83,705], "a": 1 }, + { "px": [0,368], "src": [96,96], "f": 0, "t": 144, "d": [83,736], "a": 1 }, + { "px": [288,432], "src": [64,96], "f": 0, "t": 142, "d": [83,882], "a": 1 }, + { "px": [416,432], "src": [64,96], "f": 0, "t": 142, "d": [83,890], "a": 1 }, + { "px": [448,432], "src": [96,96], "f": 0, "t": 144, "d": [83,892], "a": 1 }, + { "px": [480,432], "src": [96,96], "f": 0, "t": 144, "d": [83,894], "a": 1 }, + { "px": [496,448], "src": [96,96], "f": 0, "t": 144, "d": [83,927], "a": 1 }, + { "px": [32,464], "src": [96,96], "f": 0, "t": 144, "d": [83,930], "a": 1 }, + { "px": [64,464], "src": [96,96], "f": 0, "t": 144, "d": [83,932], "a": 1 }, + { "px": [16,480], "src": [96,96], "f": 0, "t": 144, "d": [83,961], "a": 1 }, + { "px": [64,496], "src": [64,96], "f": 0, "t": 142, "d": [83,996], "a": 1 }, + { "px": [16,48], "src": [224,96], "f": 0, "t": 152, "d": [101,97], "a": 1 }, + { "px": [48,48], "src": [96,0], "f": 0, "t": 6, "d": [101,99], "a": 1 }, + { "px": [80,48], "src": [96,0], "f": 0, "t": 6, "d": [101,101], "a": 1 }, + { "px": [112,48], "src": [96,0], "f": 0, "t": 6, "d": [101,103], "a": 1 }, + { "px": [144,48], "src": [224,96], "f": 0, "t": 152, "d": [101,105], "a": 1 }, + { "px": [176,48], "src": [224,96], "f": 0, "t": 152, "d": [101,107], "a": 1 }, + { "px": [208,48], "src": [224,96], "f": 0, "t": 152, "d": [101,109], "a": 1 }, + { "px": [240,48], "src": [224,96], "f": 0, "t": 152, "d": [101,111], "a": 1 }, + { "px": [272,48], "src": [96,0], "f": 0, "t": 6, "d": [101,113], "a": 1 }, + { "px": [0,64], "src": [96,0], "f": 0, "t": 6, "d": [101,128], "a": 1 }, + { "px": [32,64], "src": [192,16], "f": 0, "t": 35, "d": [101,130], "a": 1 }, + { "px": [64,64], "src": [224,96], "f": 0, "t": 152, "d": [101,132], "a": 1 }, + { "px": [96,64], "src": [96,0], "f": 0, "t": 6, "d": [101,134], "a": 1 }, + { "px": [128,64], "src": [224,96], "f": 0, "t": 152, "d": [101,136], "a": 1 }, + { "px": [160,64], "src": [224,96], "f": 0, "t": 152, "d": [101,138], "a": 1 }, + { "px": [192,64], "src": [192,16], "f": 0, "t": 35, "d": [101,140], "a": 1 }, + { "px": [224,64], "src": [96,0], "f": 0, "t": 6, "d": [101,142], "a": 1 }, + { "px": [256,64], "src": [224,96], "f": 0, "t": 152, "d": [101,144], "a": 1 }, + { "px": [288,64], "src": [96,0], "f": 0, "t": 6, "d": [101,146], "a": 1 }, + { "px": [320,64], "src": [192,16], "f": 0, "t": 35, "d": [101,148], "a": 1 }, + { "px": [352,64], "src": [96,0], "f": 0, "t": 6, "d": [101,150], "a": 1 }, + { "px": [384,64], "src": [224,96], "f": 0, "t": 152, "d": [101,152], "a": 1 }, + { "px": [416,64], "src": [192,16], "f": 0, "t": 35, "d": [101,154], "a": 1 }, + { "px": [448,64], "src": [224,96], "f": 0, "t": 152, "d": [101,156], "a": 1 }, + { "px": [480,64], "src": [224,96], "f": 0, "t": 152, "d": [101,158], "a": 1 }, + { "px": [16,80], "src": [224,96], "f": 0, "t": 152, "d": [101,161], "a": 1 }, + { "px": [272,80], "src": [96,0], "f": 0, "t": 6, "d": [101,177], "a": 1 }, + { "px": [304,80], "src": [224,96], "f": 0, "t": 152, "d": [101,179], "a": 1 }, + { "px": [336,80], "src": [192,16], "f": 0, "t": 35, "d": [101,181], "a": 1 }, + { "px": [368,80], "src": [224,96], "f": 0, "t": 152, "d": [101,183], "a": 1 }, + { "px": [400,80], "src": [96,0], "f": 0, "t": 6, "d": [101,185], "a": 1 }, + { "px": [432,80], "src": [224,96], "f": 0, "t": 152, "d": [101,187], "a": 1 }, + { "px": [464,80], "src": [224,96], "f": 0, "t": 152, "d": [101,189], "a": 1 }, + { "px": [496,80], "src": [192,16], "f": 0, "t": 35, "d": [101,191], "a": 1 }, + { "px": [288,96], "src": [96,0], "f": 0, "t": 6, "d": [101,210], "a": 1 }, + { "px": [272,112], "src": [96,0], "f": 0, "t": 6, "d": [101,241], "a": 1 }, + { "px": [288,128], "src": [192,16], "f": 0, "t": 35, "d": [101,274], "a": 1 }, + { "px": [16,144], "src": [224,96], "f": 0, "t": 152, "d": [101,289], "a": 1 }, + { "px": [272,144], "src": [96,0], "f": 0, "t": 6, "d": [101,305], "a": 1 }, + { "px": [0,160], "src": [224,96], "f": 0, "t": 152, "d": [101,320], "a": 1 }, + { "px": [32,160], "src": [224,96], "f": 0, "t": 152, "d": [101,322], "a": 1 }, + { "px": [288,160], "src": [224,96], "f": 0, "t": 152, "d": [101,338], "a": 1 }, + { "px": [16,176], "src": [96,0], "f": 0, "t": 6, "d": [101,353], "a": 1 }, + { "px": [272,176], "src": [192,16], "f": 0, "t": 35, "d": [101,369], "a": 1 }, + { "px": [0,192], "src": [96,0], "f": 0, "t": 6, "d": [101,384], "a": 1 }, + { "px": [32,192], "src": [96,0], "f": 0, "t": 6, "d": [101,386], "a": 1 }, + { "px": [16,208], "src": [224,96], "f": 0, "t": 152, "d": [101,417], "a": 1 }, + { "px": [496,208], "src": [224,96], "f": 0, "t": 152, "d": [101,447], "a": 1 }, + { "px": [0,224], "src": [96,0], "f": 0, "t": 6, "d": [101,448], "a": 1 }, + { "px": [16,240], "src": [192,16], "f": 0, "t": 35, "d": [101,481], "a": 1 }, + { "px": [496,240], "src": [192,16], "f": 0, "t": 35, "d": [101,511], "a": 1 }, + { "px": [0,256], "src": [192,16], "f": 0, "t": 35, "d": [101,512], "a": 1 }, + { "px": [16,272], "src": [96,0], "f": 0, "t": 6, "d": [101,545], "a": 1 }, + { "px": [208,272], "src": [96,0], "f": 0, "t": 6, "d": [101,557], "a": 1 }, + { "px": [240,272], "src": [192,16], "f": 0, "t": 35, "d": [101,559], "a": 1 }, + { "px": [272,272], "src": [96,0], "f": 0, "t": 6, "d": [101,561], "a": 1 }, + { "px": [368,272], "src": [224,96], "f": 0, "t": 152, "d": [101,567], "a": 1 }, + { "px": [400,272], "src": [224,96], "f": 0, "t": 152, "d": [101,569], "a": 1 }, + { "px": [496,272], "src": [192,16], "f": 0, "t": 35, "d": [101,575], "a": 1 }, + { "px": [0,288], "src": [96,0], "f": 0, "t": 6, "d": [101,576], "a": 1 }, + { "px": [224,288], "src": [192,16], "f": 0, "t": 35, "d": [101,590], "a": 1 }, + { "px": [256,288], "src": [96,0], "f": 0, "t": 6, "d": [101,592], "a": 1 }, + { "px": [288,288], "src": [96,0], "f": 0, "t": 6, "d": [101,594], "a": 1 }, + { "px": [352,288], "src": [192,16], "f": 0, "t": 35, "d": [101,598], "a": 1 }, + { "px": [384,288], "src": [96,0], "f": 0, "t": 6, "d": [101,600], "a": 1 }, + { "px": [416,288], "src": [192,16], "f": 0, "t": 35, "d": [101,602], "a": 1 }, + { "px": [16,304], "src": [192,16], "f": 0, "t": 35, "d": [101,609], "a": 1 }, + { "px": [496,304], "src": [192,16], "f": 0, "t": 35, "d": [101,639], "a": 1 }, + { "px": [0,320], "src": [224,96], "f": 0, "t": 152, "d": [101,640], "a": 1 }, + { "px": [16,336], "src": [192,16], "f": 0, "t": 35, "d": [101,673], "a": 1 }, + { "px": [496,336], "src": [96,0], "f": 0, "t": 6, "d": [101,703], "a": 1 }, + { "px": [0,352], "src": [96,0], "f": 0, "t": 6, "d": [101,704], "a": 1 }, + { "px": [16,368], "src": [96,0], "f": 0, "t": 6, "d": [101,737], "a": 1 }, + { "px": [208,432], "src": [192,16], "f": 0, "t": 35, "d": [101,877], "a": 1 }, + { "px": [240,432], "src": [96,0], "f": 0, "t": 6, "d": [101,879], "a": 1 }, + { "px": [272,432], "src": [224,96], "f": 0, "t": 152, "d": [101,881], "a": 1 }, + { "px": [304,432], "src": [224,96], "f": 0, "t": 152, "d": [101,883], "a": 1 }, + { "px": [336,432], "src": [96,0], "f": 0, "t": 6, "d": [101,885], "a": 1 }, + { "px": [368,432], "src": [224,96], "f": 0, "t": 152, "d": [101,887], "a": 1 }, + { "px": [400,432], "src": [224,96], "f": 0, "t": 152, "d": [101,889], "a": 1 }, + { "px": [432,432], "src": [224,96], "f": 0, "t": 152, "d": [101,891], "a": 1 }, + { "px": [464,432], "src": [224,96], "f": 0, "t": 152, "d": [101,893], "a": 1 }, + { "px": [496,432], "src": [96,0], "f": 0, "t": 6, "d": [101,895], "a": 1 }, + { "px": [224,448], "src": [96,0], "f": 0, "t": 6, "d": [101,910], "a": 1 }, + { "px": [256,448], "src": [192,16], "f": 0, "t": 35, "d": [101,912], "a": 1 }, + { "px": [288,448], "src": [224,96], "f": 0, "t": 152, "d": [101,914], "a": 1 }, + { "px": [320,448], "src": [96,0], "f": 0, "t": 6, "d": [101,916], "a": 1 }, + { "px": [352,448], "src": [224,96], "f": 0, "t": 152, "d": [101,918], "a": 1 }, + { "px": [384,448], "src": [224,96], "f": 0, "t": 152, "d": [101,920], "a": 1 }, + { "px": [416,448], "src": [224,96], "f": 0, "t": 152, "d": [101,922], "a": 1 }, + { "px": [448,448], "src": [96,0], "f": 0, "t": 6, "d": [101,924], "a": 1 }, + { "px": [480,448], "src": [224,96], "f": 0, "t": 152, "d": [101,926], "a": 1 }, + { "px": [16,464], "src": [96,0], "f": 0, "t": 6, "d": [101,929], "a": 1 }, + { "px": [48,464], "src": [224,96], "f": 0, "t": 152, "d": [101,931], "a": 1 }, + { "px": [80,464], "src": [224,96], "f": 0, "t": 152, "d": [101,933], "a": 1 }, + { "px": [208,464], "src": [224,96], "f": 0, "t": 152, "d": [101,941], "a": 1 }, + { "px": [0,480], "src": [96,0], "f": 0, "t": 6, "d": [101,960], "a": 1 }, + { "px": [32,480], "src": [96,0], "f": 0, "t": 6, "d": [101,962], "a": 1 }, + { "px": [64,480], "src": [96,0], "f": 0, "t": 6, "d": [101,964], "a": 1 }, + { "px": [224,480], "src": [96,0], "f": 0, "t": 6, "d": [101,974], "a": 1 }, + { "px": [80,496], "src": [96,0], "f": 0, "t": 6, "d": [101,997], "a": 1 }, + { "px": [112,496], "src": [224,96], "f": 0, "t": 152, "d": [101,999], "a": 1 }, + { "px": [144,496], "src": [96,0], "f": 0, "t": 6, "d": [101,1001], "a": 1 }, + { "px": [176,496], "src": [96,0], "f": 0, "t": 6, "d": [101,1003], "a": 1 }, + { "px": [208,496], "src": [224,96], "f": 0, "t": 152, "d": [101,1005], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [96,0], "src": [32,32], "f": 0, "t": 48, "d": [127,6], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [127,8], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [160,0], "src": [32,32], "f": 0, "t": 48, "d": [127,10], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [127,21], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [127,23], "a": 1 }, + { "px": [384,0], "src": [32,32], "f": 0, "t": 48, "d": [127,24], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [127,25], "a": 1 }, + { "px": [416,0], "src": [32,32], "f": 0, "t": 48, "d": [127,26], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [127,27], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [127,28], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [127,31], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,32], "a": 1 }, + { "px": [16,16], "src": [32,32], "f": 0, "t": 48, "d": [127,33], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [127,34], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [127,36], "a": 1 }, + { "px": [80,16], "src": [32,32], "f": 0, "t": 48, "d": [127,37], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [127,38], "a": 1 }, + { "px": [112,16], "src": [32,32], "f": 0, "t": 48, "d": [127,39], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [127,40], "a": 1 }, + { "px": [144,16], "src": [32,32], "f": 0, "t": 48, "d": [127,41], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [127,42], "a": 1 }, + { "px": [176,16], "src": [32,32], "f": 0, "t": 48, "d": [127,43], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,44], "a": 1 }, + { "px": [208,16], "src": [32,32], "f": 0, "t": 48, "d": [127,45], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [127,51], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [127,52], "a": 1 }, + { "px": [336,16], "src": [32,32], "f": 0, "t": 48, "d": [127,53], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [127,54], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [127,56], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [127,58], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [127,60], "a": 1 }, + { "px": [464,16], "src": [32,32], "f": 0, "t": 48, "d": [127,61], "a": 1 }, + { "px": [480,16], "src": [32,32], "f": 0, "t": 48, "d": [127,62], "a": 1 }, + { "px": [496,16], "src": [32,32], "f": 0, "t": 48, "d": [127,63], "a": 1 }, + { "px": [0,32], "src": [32,32], "f": 0, "t": 48, "d": [127,64], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [127,65], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [127,67], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [127,69], "a": 1 }, + { "px": [96,32], "src": [32,32], "f": 0, "t": 48, "d": [127,70], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [127,71], "a": 1 }, + { "px": [128,32], "src": [32,32], "f": 0, "t": 48, "d": [127,72], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [127,73], "a": 1 }, + { "px": [160,32], "src": [32,32], "f": 0, "t": 48, "d": [127,74], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [127,75], "a": 1 }, + { "px": [192,32], "src": [32,32], "f": 0, "t": 48, "d": [127,76], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [127,77], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,79], "a": 1 }, + { "px": [256,32], "src": [32,32], "f": 0, "t": 48, "d": [127,80], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [127,81], "a": 1 }, + { "px": [288,32], "src": [32,32], "f": 0, "t": 48, "d": [127,82], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [127,83], "a": 1 }, + { "px": [320,32], "src": [32,32], "f": 0, "t": 48, "d": [127,84], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [127,85], "a": 1 }, + { "px": [352,32], "src": [32,32], "f": 0, "t": 48, "d": [127,86], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [127,87], "a": 1 }, + { "px": [400,32], "src": [32,32], "f": 0, "t": 48, "d": [127,89], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [127,91], "a": 1 }, + { "px": [448,32], "src": [32,32], "f": 0, "t": 48, "d": [127,92], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [127,93], "a": 1 }, + { "px": [480,32], "src": [32,32], "f": 0, "t": 48, "d": [127,94], "a": 1 }, + { "px": [496,32], "src": [32,32], "f": 0, "t": 48, "d": [127,95], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,96], "a": 1 }, + { "px": [304,48], "src": [32,32], "f": 0, "t": 48, "d": [127,115], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [127,116], "a": 1 }, + { "px": [352,48], "src": [32,32], "f": 0, "t": 48, "d": [127,118], "a": 1 }, + { "px": [384,48], "src": [32,32], "f": 0, "t": 48, "d": [127,120], "a": 1 }, + { "px": [416,48], "src": [32,32], "f": 0, "t": 48, "d": [127,122], "a": 1 }, + { "px": [432,48], "src": [32,32], "f": 0, "t": 48, "d": [127,123], "a": 1 }, + { "px": [448,48], "src": [32,32], "f": 0, "t": 48, "d": [127,124], "a": 1 }, + { "px": [464,48], "src": [32,32], "f": 0, "t": 48, "d": [127,125], "a": 1 }, + { "px": [480,48], "src": [32,32], "f": 0, "t": 48, "d": [127,126], "a": 1 }, + { "px": [496,48], "src": [32,32], "f": 0, "t": 48, "d": [127,127], "a": 1 }, + { "px": [240,464], "src": [32,32], "f": 0, "t": 48, "d": [127,943], "a": 1 }, + { "px": [256,464], "src": [32,32], "f": 0, "t": 48, "d": [127,944], "a": 1 }, + { "px": [272,464], "src": [32,32], "f": 0, "t": 48, "d": [127,945], "a": 1 }, + { "px": [288,464], "src": [32,32], "f": 0, "t": 48, "d": [127,946], "a": 1 }, + { "px": [320,464], "src": [32,32], "f": 0, "t": 48, "d": [127,948], "a": 1 }, + { "px": [336,464], "src": [32,32], "f": 0, "t": 48, "d": [127,949], "a": 1 }, + { "px": [352,464], "src": [32,32], "f": 0, "t": 48, "d": [127,950], "a": 1 }, + { "px": [368,464], "src": [32,32], "f": 0, "t": 48, "d": [127,951], "a": 1 }, + { "px": [384,464], "src": [32,32], "f": 0, "t": 48, "d": [127,952], "a": 1 }, + { "px": [400,464], "src": [32,32], "f": 0, "t": 48, "d": [127,953], "a": 1 }, + { "px": [416,464], "src": [32,32], "f": 0, "t": 48, "d": [127,954], "a": 1 }, + { "px": [432,464], "src": [32,32], "f": 0, "t": 48, "d": [127,955], "a": 1 }, + { "px": [448,464], "src": [32,32], "f": 0, "t": 48, "d": [127,956], "a": 1 }, + { "px": [464,464], "src": [32,32], "f": 0, "t": 48, "d": [127,957], "a": 1 }, + { "px": [480,464], "src": [32,32], "f": 0, "t": 48, "d": [127,958], "a": 1 }, + { "px": [496,464], "src": [32,32], "f": 0, "t": 48, "d": [127,959], "a": 1 }, + { "px": [240,480], "src": [32,32], "f": 0, "t": 48, "d": [127,975], "a": 1 }, + { "px": [272,480], "src": [32,32], "f": 0, "t": 48, "d": [127,977], "a": 1 }, + { "px": [304,480], "src": [32,32], "f": 0, "t": 48, "d": [127,979], "a": 1 }, + { "px": [336,480], "src": [32,32], "f": 0, "t": 48, "d": [127,981], "a": 1 }, + { "px": [352,480], "src": [32,32], "f": 0, "t": 48, "d": [127,982], "a": 1 }, + { "px": [368,480], "src": [32,32], "f": 0, "t": 48, "d": [127,983], "a": 1 }, + { "px": [384,480], "src": [32,32], "f": 0, "t": 48, "d": [127,984], "a": 1 }, + { "px": [400,480], "src": [32,32], "f": 0, "t": 48, "d": [127,985], "a": 1 }, + { "px": [432,480], "src": [32,32], "f": 0, "t": 48, "d": [127,987], "a": 1 }, + { "px": [448,480], "src": [32,32], "f": 0, "t": 48, "d": [127,988], "a": 1 }, + { "px": [464,480], "src": [32,32], "f": 0, "t": 48, "d": [127,989], "a": 1 }, + { "px": [480,480], "src": [32,32], "f": 0, "t": 48, "d": [127,990], "a": 1 }, + { "px": [496,480], "src": [32,32], "f": 0, "t": 48, "d": [127,991], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,992], "a": 1 }, + { "px": [32,496], "src": [32,32], "f": 0, "t": 48, "d": [127,994], "a": 1 }, + { "px": [256,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1008], "a": 1 }, + { "px": [288,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1010], "a": 1 }, + { "px": [320,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1012], "a": 1 }, + { "px": [336,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1013], "a": 1 }, + { "px": [352,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1014], "a": 1 }, + { "px": [368,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1015], "a": 1 }, + { "px": [384,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1016], "a": 1 }, + { "px": [400,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1017], "a": 1 }, + { "px": [416,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1018], "a": 1 }, + { "px": [432,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1019], "a": 1 }, + { "px": [448,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1020], "a": 1 }, + { "px": [464,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1021], "a": 1 }, + { "px": [480,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1022], "a": 1 }, + { "px": [0,0], "src": [96,96], "f": 0, "t": 144, "d": [126,0], "a": 1 }, + { "px": [32,0], "src": [96,96], "f": 0, "t": 144, "d": [126,2], "a": 1 }, + { "px": [64,0], "src": [64,96], "f": 0, "t": 142, "d": [126,4], "a": 1 }, + { "px": [192,0], "src": [96,96], "f": 0, "t": 144, "d": [126,12], "a": 1 }, + { "px": [256,0], "src": [96,96], "f": 0, "t": 144, "d": [126,16], "a": 1 }, + { "px": [320,0], "src": [96,96], "f": 0, "t": 144, "d": [126,20], "a": 1 }, + { "px": [352,0], "src": [64,96], "f": 0, "t": 142, "d": [126,22], "a": 1 }, + { "px": [480,0], "src": [96,96], "f": 0, "t": 144, "d": [126,30], "a": 1 }, + { "px": [48,16], "src": [64,96], "f": 0, "t": 142, "d": [126,35], "a": 1 }, + { "px": [240,16], "src": [96,96], "f": 0, "t": 144, "d": [126,47], "a": 1 }, + { "px": [272,16], "src": [64,96], "f": 0, "t": 142, "d": [126,49], "a": 1 }, + { "px": [368,16], "src": [64,96], "f": 0, "t": 142, "d": [126,55], "a": 1 }, + { "px": [400,16], "src": [64,96], "f": 0, "t": 142, "d": [126,57], "a": 1 }, + { "px": [432,16], "src": [96,96], "f": 0, "t": 144, "d": [126,59], "a": 1 }, + { "px": [32,32], "src": [64,96], "f": 0, "t": 142, "d": [126,66], "a": 1 }, + { "px": [64,32], "src": [64,96], "f": 0, "t": 142, "d": [126,68], "a": 1 }, + { "px": [224,32], "src": [96,96], "f": 0, "t": 144, "d": [126,78], "a": 1 }, + { "px": [384,32], "src": [96,96], "f": 0, "t": 144, "d": [126,88], "a": 1 }, + { "px": [416,32], "src": [64,96], "f": 0, "t": 142, "d": [126,90], "a": 1 }, + { "px": [336,48], "src": [64,96], "f": 0, "t": 142, "d": [126,117], "a": 1 }, + { "px": [368,48], "src": [96,96], "f": 0, "t": 144, "d": [126,119], "a": 1 }, + { "px": [400,48], "src": [96,96], "f": 0, "t": 144, "d": [126,121], "a": 1 }, + { "px": [304,464], "src": [64,96], "f": 0, "t": 142, "d": [126,947], "a": 1 }, + { "px": [256,480], "src": [96,96], "f": 0, "t": 144, "d": [126,976], "a": 1 }, + { "px": [288,480], "src": [64,96], "f": 0, "t": 142, "d": [126,978], "a": 1 }, + { "px": [320,480], "src": [96,96], "f": 0, "t": 144, "d": [126,980], "a": 1 }, + { "px": [416,480], "src": [64,96], "f": 0, "t": 142, "d": [126,986], "a": 1 }, + { "px": [16,496], "src": [64,96], "f": 0, "t": 142, "d": [126,993], "a": 1 }, + { "px": [48,496], "src": [96,96], "f": 0, "t": 144, "d": [126,995], "a": 1 }, + { "px": [240,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1007], "a": 1 }, + { "px": [272,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1009], "a": 1 }, + { "px": [304,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1011], "a": 1 }, + { "px": [496,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1023], "a": 1 }, + { "px": [64,80], "src": [256,160], "f": 0, "t": 246, "d": [12,164], "a": 1 }, + { "px": [80,80], "src": [256,160], "f": 0, "t": 246, "d": [12,165], "a": 1 }, + { "px": [112,80], "src": [256,160], "f": 0, "t": 246, "d": [12,167], "a": 1 }, + { "px": [128,80], "src": [256,160], "f": 0, "t": 246, "d": [12,168], "a": 1 }, + { "px": [160,80], "src": [256,160], "f": 0, "t": 246, "d": [12,170], "a": 1 }, + { "px": [176,80], "src": [256,160], "f": 0, "t": 246, "d": [12,171], "a": 1 }, + { "px": [0,96], "src": [256,160], "f": 0, "t": 246, "d": [12,192], "a": 1 }, + { "px": [16,96], "src": [256,160], "f": 0, "t": 246, "d": [12,193], "a": 1 }, + { "px": [32,96], "src": [256,160], "f": 0, "t": 246, "d": [12,194], "a": 1 }, + { "px": [320,96], "src": [256,160], "f": 0, "t": 246, "d": [12,212], "a": 1 }, + { "px": [336,96], "src": [256,160], "f": 0, "t": 246, "d": [12,213], "a": 1 }, + { "px": [352,96], "src": [256,160], "f": 0, "t": 246, "d": [12,214], "a": 1 }, + { "px": [368,96], "src": [256,160], "f": 0, "t": 246, "d": [12,215], "a": 1 }, + { "px": [384,96], "src": [256,160], "f": 0, "t": 246, "d": [12,216], "a": 1 }, + { "px": [400,96], "src": [256,160], "f": 0, "t": 246, "d": [12,217], "a": 1 }, + { "px": [448,96], "src": [256,160], "f": 0, "t": 246, "d": [12,220], "a": 1 }, + { "px": [464,96], "src": [256,160], "f": 0, "t": 246, "d": [12,221], "a": 1 }, + { "px": [480,96], "src": [256,160], "f": 0, "t": 246, "d": [12,222], "a": 1 }, + { "px": [496,96], "src": [256,160], "f": 0, "t": 246, "d": [12,223], "a": 1 }, + { "px": [80,192], "src": [256,160], "f": 0, "t": 246, "d": [12,389], "a": 1 }, + { "px": [96,192], "src": [256,160], "f": 0, "t": 246, "d": [12,390], "a": 1 }, + { "px": [112,192], "src": [256,160], "f": 0, "t": 246, "d": [12,391], "a": 1 }, + { "px": [128,192], "src": [256,160], "f": 0, "t": 246, "d": [12,392], "a": 1 }, + { "px": [144,192], "src": [256,160], "f": 0, "t": 246, "d": [12,393], "a": 1 }, + { "px": [176,192], "src": [256,160], "f": 0, "t": 246, "d": [12,395], "a": 1 }, + { "px": [192,192], "src": [256,160], "f": 0, "t": 246, "d": [12,396], "a": 1 }, + { "px": [208,192], "src": [256,160], "f": 0, "t": 246, "d": [12,397], "a": 1 }, + { "px": [224,192], "src": [256,160], "f": 0, "t": 246, "d": [12,398], "a": 1 }, + { "px": [256,192], "src": [256,160], "f": 0, "t": 246, "d": [12,400], "a": 1 }, + { "px": [224,304], "src": [256,160], "f": 0, "t": 246, "d": [12,622], "a": 1 }, + { "px": [240,304], "src": [256,160], "f": 0, "t": 246, "d": [12,623], "a": 1 }, + { "px": [256,304], "src": [256,160], "f": 0, "t": 246, "d": [12,624], "a": 1 }, + { "px": [272,304], "src": [256,160], "f": 0, "t": 246, "d": [12,625], "a": 1 }, + { "px": [288,304], "src": [256,160], "f": 0, "t": 246, "d": [12,626], "a": 1 }, + { "px": [368,304], "src": [256,160], "f": 0, "t": 246, "d": [12,631], "a": 1 }, + { "px": [384,304], "src": [256,160], "f": 0, "t": 246, "d": [12,632], "a": 1 }, + { "px": [400,304], "src": [256,160], "f": 0, "t": 246, "d": [12,633], "a": 1 }, + { "px": [496,352], "src": [256,160], "f": 0, "t": 246, "d": [12,735], "a": 1 }, + { "px": [0,384], "src": [256,160], "f": 0, "t": 246, "d": [12,768], "a": 1 }, + { "px": [16,384], "src": [256,160], "f": 0, "t": 246, "d": [12,769], "a": 1 }, + { "px": [0,128], "src": [256,96], "f": 0, "t": 154, "d": [9,256], "a": 1 }, + { "px": [16,128], "src": [256,96], "f": 0, "t": 154, "d": [9,257], "a": 1 }, + { "px": [32,128], "src": [256,96], "f": 0, "t": 154, "d": [9,258], "a": 1 }, + { "px": [64,176], "src": [256,96], "f": 0, "t": 154, "d": [9,356], "a": 1 }, + { "px": [80,176], "src": [256,96], "f": 0, "t": 154, "d": [9,357], "a": 1 }, + { "px": [96,176], "src": [256,96], "f": 0, "t": 154, "d": [9,358], "a": 1 }, + { "px": [112,176], "src": [256,96], "f": 0, "t": 154, "d": [9,359], "a": 1 }, + { "px": [128,176], "src": [256,96], "f": 0, "t": 154, "d": [9,360], "a": 1 }, + { "px": [144,176], "src": [256,96], "f": 0, "t": 154, "d": [9,361], "a": 1 }, + { "px": [160,176], "src": [256,96], "f": 0, "t": 154, "d": [9,362], "a": 1 }, + { "px": [176,176], "src": [256,96], "f": 0, "t": 154, "d": [9,363], "a": 1 }, + { "px": [192,176], "src": [256,96], "f": 0, "t": 154, "d": [9,364], "a": 1 }, + { "px": [208,176], "src": [256,96], "f": 0, "t": 154, "d": [9,365], "a": 1 }, + { "px": [224,176], "src": [256,96], "f": 0, "t": 154, "d": [9,366], "a": 1 }, + { "px": [240,176], "src": [256,96], "f": 0, "t": 154, "d": [9,367], "a": 1 }, + { "px": [448,176], "src": [256,96], "f": 0, "t": 154, "d": [9,380], "a": 1 }, + { "px": [464,176], "src": [256,96], "f": 0, "t": 154, "d": [9,381], "a": 1 }, + { "px": [496,176], "src": [256,96], "f": 0, "t": 154, "d": [9,383], "a": 1 }, + { "px": [272,256], "src": [256,96], "f": 0, "t": 154, "d": [9,529], "a": 1 }, + { "px": [288,256], "src": [256,96], "f": 0, "t": 154, "d": [9,530], "a": 1 }, + { "px": [352,256], "src": [256,96], "f": 0, "t": 154, "d": [9,534], "a": 1 }, + { "px": [368,256], "src": [256,96], "f": 0, "t": 154, "d": [9,535], "a": 1 }, + { "px": [384,256], "src": [256,96], "f": 0, "t": 154, "d": [9,536], "a": 1 }, + { "px": [400,256], "src": [256,96], "f": 0, "t": 154, "d": [9,537], "a": 1 }, + { "px": [224,416], "src": [256,96], "f": 0, "t": 154, "d": [9,846], "a": 1 }, + { "px": [240,416], "src": [256,96], "f": 0, "t": 154, "d": [9,847], "a": 1 }, + { "px": [256,416], "src": [256,96], "f": 0, "t": 154, "d": [9,848], "a": 1 }, + { "px": [272,416], "src": [256,96], "f": 0, "t": 154, "d": [9,849], "a": 1 }, + { "px": [288,416], "src": [256,96], "f": 0, "t": 154, "d": [9,850], "a": 1 }, + { "px": [304,416], "src": [256,96], "f": 0, "t": 154, "d": [9,851], "a": 1 }, + { "px": [320,416], "src": [256,96], "f": 0, "t": 154, "d": [9,852], "a": 1 }, + { "px": [336,416], "src": [256,96], "f": 0, "t": 154, "d": [9,853], "a": 1 }, + { "px": [352,416], "src": [256,96], "f": 0, "t": 154, "d": [9,854], "a": 1 }, + { "px": [368,416], "src": [256,96], "f": 0, "t": 154, "d": [9,855], "a": 1 }, + { "px": [384,416], "src": [256,96], "f": 0, "t": 154, "d": [9,856], "a": 1 }, + { "px": [400,416], "src": [256,96], "f": 0, "t": 154, "d": [9,857], "a": 1 }, + { "px": [0,448], "src": [256,96], "f": 0, "t": 154, "d": [9,896], "a": 1 }, + { "px": [16,448], "src": [256,96], "f": 0, "t": 154, "d": [9,897], "a": 1 }, + { "px": [32,448], "src": [256,96], "f": 0, "t": 154, "d": [9,898], "a": 1 }, + { "px": [48,448], "src": [256,96], "f": 0, "t": 154, "d": [9,899], "a": 1 }, + { "px": [64,448], "src": [256,96], "f": 0, "t": 154, "d": [9,900], "a": 1 }, + { "px": [112,480], "src": [256,96], "f": 0, "t": 154, "d": [9,967], "a": 1 }, + { "px": [128,480], "src": [256,96], "f": 0, "t": 154, "d": [9,968], "a": 1 }, + { "px": [144,480], "src": [256,96], "f": 0, "t": 154, "d": [9,969], "a": 1 }, + { "px": [160,480], "src": [256,96], "f": 0, "t": 154, "d": [9,970], "a": 1 }, + { "px": [176,480], "src": [256,96], "f": 0, "t": 154, "d": [9,971], "a": 1 }, + { "px": [256,96], "src": [224,128], "f": 0, "t": 198, "d": [10,208], "a": 1 }, + { "px": [256,112], "src": [224,128], "f": 0, "t": 198, "d": [10,240], "a": 1 }, + { "px": [304,112], "src": [224,128], "f": 1, "t": 198, "d": [10,243], "a": 1 }, + { "px": [256,128], "src": [224,128], "f": 0, "t": 198, "d": [10,272], "a": 1 }, + { "px": [304,128], "src": [224,128], "f": 1, "t": 198, "d": [10,275], "a": 1 }, + { "px": [48,144], "src": [224,128], "f": 1, "t": 198, "d": [10,291], "a": 1 }, + { "px": [256,144], "src": [224,128], "f": 0, "t": 198, "d": [10,304], "a": 1 }, + { "px": [304,144], "src": [224,128], "f": 1, "t": 198, "d": [10,307], "a": 1 }, + { "px": [48,160], "src": [224,128], "f": 1, "t": 198, "d": [10,323], "a": 1 }, + { "px": [256,160], "src": [224,128], "f": 0, "t": 198, "d": [10,336], "a": 1 }, + { "px": [304,160], "src": [224,128], "f": 1, "t": 198, "d": [10,339], "a": 1 }, + { "px": [304,176], "src": [224,128], "f": 1, "t": 198, "d": [10,371], "a": 1 }, + { "px": [480,192], "src": [224,128], "f": 0, "t": 198, "d": [10,414], "a": 1 }, + { "px": [480,208], "src": [224,128], "f": 0, "t": 198, "d": [10,446], "a": 1 }, + { "px": [32,224], "src": [224,128], "f": 1, "t": 198, "d": [10,450], "a": 1 }, + { "px": [480,224], "src": [224,128], "f": 0, "t": 198, "d": [10,478], "a": 1 }, + { "px": [32,240], "src": [224,128], "f": 1, "t": 198, "d": [10,482], "a": 1 }, + { "px": [480,240], "src": [224,128], "f": 0, "t": 198, "d": [10,510], "a": 1 }, + { "px": [32,256], "src": [224,128], "f": 1, "t": 198, "d": [10,514], "a": 1 }, + { "px": [32,272], "src": [224,128], "f": 1, "t": 198, "d": [10,546], "a": 1 }, + { "px": [192,272], "src": [224,128], "f": 0, "t": 198, "d": [10,556], "a": 1 }, + { "px": [304,272], "src": [224,128], "f": 1, "t": 198, "d": [10,563], "a": 1 }, + { "px": [336,272], "src": [224,128], "f": 0, "t": 198, "d": [10,565], "a": 1 }, + { "px": [432,272], "src": [224,128], "f": 1, "t": 198, "d": [10,571], "a": 1 }, + { "px": [480,272], "src": [224,128], "f": 0, "t": 198, "d": [10,574], "a": 1 }, + { "px": [32,288], "src": [224,128], "f": 1, "t": 198, "d": [10,578], "a": 1 }, + { "px": [192,288], "src": [224,128], "f": 0, "t": 198, "d": [10,588], "a": 1 }, + { "px": [304,288], "src": [224,128], "f": 1, "t": 198, "d": [10,595], "a": 1 }, + { "px": [336,288], "src": [224,128], "f": 0, "t": 198, "d": [10,597], "a": 1 }, + { "px": [432,288], "src": [224,128], "f": 1, "t": 198, "d": [10,603], "a": 1 }, + { "px": [480,288], "src": [224,128], "f": 0, "t": 198, "d": [10,606], "a": 1 }, + { "px": [32,304], "src": [224,128], "f": 1, "t": 198, "d": [10,610], "a": 1 }, + { "px": [192,304], "src": [224,128], "f": 0, "t": 198, "d": [10,620], "a": 1 }, + { "px": [432,304], "src": [224,128], "f": 1, "t": 198, "d": [10,635], "a": 1 }, + { "px": [480,304], "src": [224,128], "f": 0, "t": 198, "d": [10,638], "a": 1 }, + { "px": [32,320], "src": [224,128], "f": 1, "t": 198, "d": [10,642], "a": 1 }, + { "px": [192,320], "src": [224,128], "f": 0, "t": 198, "d": [10,652], "a": 1 }, + { "px": [208,320], "src": [224,128], "f": 1, "t": 198, "d": [10,653], "a": 1 }, + { "px": [416,320], "src": [224,128], "f": 0, "t": 198, "d": [10,666], "a": 1 }, + { "px": [432,320], "src": [224,128], "f": 1, "t": 198, "d": [10,667], "a": 1 }, + { "px": [480,320], "src": [224,128], "f": 0, "t": 198, "d": [10,670], "a": 1 }, + { "px": [32,336], "src": [224,128], "f": 1, "t": 198, "d": [10,674], "a": 1 }, + { "px": [80,336], "src": [224,128], "f": 0, "t": 198, "d": [10,677], "a": 1 }, + { "px": [96,336], "src": [224,128], "f": 1, "t": 198, "d": [10,678], "a": 1 }, + { "px": [192,336], "src": [224,128], "f": 0, "t": 198, "d": [10,684], "a": 1 }, + { "px": [208,336], "src": [224,128], "f": 1, "t": 198, "d": [10,685], "a": 1 }, + { "px": [416,336], "src": [224,128], "f": 0, "t": 198, "d": [10,698], "a": 1 }, + { "px": [432,336], "src": [224,128], "f": 1, "t": 198, "d": [10,699], "a": 1 }, + { "px": [480,336], "src": [224,128], "f": 0, "t": 198, "d": [10,702], "a": 1 }, + { "px": [32,352], "src": [224,128], "f": 1, "t": 198, "d": [10,706], "a": 1 }, + { "px": [80,352], "src": [224,128], "f": 0, "t": 198, "d": [10,709], "a": 1 }, + { "px": [96,352], "src": [224,128], "f": 1, "t": 198, "d": [10,710], "a": 1 }, + { "px": [192,352], "src": [224,128], "f": 0, "t": 198, "d": [10,716], "a": 1 }, + { "px": [208,352], "src": [224,128], "f": 1, "t": 198, "d": [10,717], "a": 1 }, + { "px": [416,352], "src": [224,128], "f": 0, "t": 198, "d": [10,730], "a": 1 }, + { "px": [432,352], "src": [224,128], "f": 1, "t": 198, "d": [10,731], "a": 1 }, + { "px": [32,368], "src": [224,128], "f": 1, "t": 198, "d": [10,738], "a": 1 }, + { "px": [80,368], "src": [224,128], "f": 0, "t": 198, "d": [10,741], "a": 1 }, + { "px": [96,368], "src": [224,128], "f": 1, "t": 198, "d": [10,742], "a": 1 }, + { "px": [192,368], "src": [224,128], "f": 0, "t": 198, "d": [10,748], "a": 1 }, + { "px": [208,368], "src": [224,128], "f": 1, "t": 198, "d": [10,749], "a": 1 }, + { "px": [416,368], "src": [224,128], "f": 0, "t": 198, "d": [10,762], "a": 1 }, + { "px": [432,368], "src": [224,128], "f": 1, "t": 198, "d": [10,763], "a": 1 }, + { "px": [80,384], "src": [224,128], "f": 0, "t": 198, "d": [10,773], "a": 1 }, + { "px": [96,384], "src": [224,128], "f": 1, "t": 198, "d": [10,774], "a": 1 }, + { "px": [192,384], "src": [224,128], "f": 0, "t": 198, "d": [10,780], "a": 1 }, + { "px": [208,384], "src": [224,128], "f": 1, "t": 198, "d": [10,781], "a": 1 }, + { "px": [416,384], "src": [224,128], "f": 0, "t": 198, "d": [10,794], "a": 1 }, + { "px": [432,384], "src": [224,128], "f": 1, "t": 198, "d": [10,795], "a": 1 }, + { "px": [80,400], "src": [224,128], "f": 0, "t": 198, "d": [10,805], "a": 1 }, + { "px": [96,400], "src": [224,128], "f": 1, "t": 198, "d": [10,806], "a": 1 }, + { "px": [192,400], "src": [224,128], "f": 0, "t": 198, "d": [10,812], "a": 1 }, + { "px": [208,400], "src": [224,128], "f": 1, "t": 198, "d": [10,813], "a": 1 }, + { "px": [416,400], "src": [224,128], "f": 0, "t": 198, "d": [10,826], "a": 1 }, + { "px": [432,400], "src": [224,128], "f": 1, "t": 198, "d": [10,827], "a": 1 }, + { "px": [80,416], "src": [224,128], "f": 0, "t": 198, "d": [10,837], "a": 1 }, + { "px": [96,416], "src": [224,128], "f": 1, "t": 198, "d": [10,838], "a": 1 }, + { "px": [192,416], "src": [224,128], "f": 0, "t": 198, "d": [10,844], "a": 1 }, + { "px": [80,432], "src": [224,128], "f": 0, "t": 198, "d": [10,869], "a": 1 }, + { "px": [96,432], "src": [224,128], "f": 1, "t": 198, "d": [10,870], "a": 1 }, + { "px": [192,432], "src": [224,128], "f": 0, "t": 198, "d": [10,876], "a": 1 }, + { "px": [96,448], "src": [224,128], "f": 1, "t": 198, "d": [10,902], "a": 1 }, + { "px": [192,448], "src": [224,128], "f": 0, "t": 198, "d": [10,908], "a": 1 }, + { "px": [96,464], "src": [224,128], "f": 1, "t": 198, "d": [10,934], "a": 1 }, + { "px": [192,464], "src": [224,128], "f": 0, "t": 198, "d": [10,940], "a": 1 }, + { "px": [48,128], "src": [224,96], "f": 1, "t": 152, "d": [11,259], "a": 1 }, + { "px": [432,176], "src": [224,96], "f": 0, "t": 152, "d": [11,379], "a": 1 }, + { "px": [304,192], "src": [224,96], "f": 3, "t": 152, "d": [11,403], "a": 1 }, + { "px": [192,256], "src": [224,96], "f": 0, "t": 152, "d": [11,524], "a": 1 }, + { "px": [304,256], "src": [224,96], "f": 1, "t": 152, "d": [11,531], "a": 1 }, + { "px": [464,256], "src": [224,96], "f": 0, "t": 152, "d": [11,541], "a": 1 }, + { "px": [304,304], "src": [224,96], "f": 3, "t": 152, "d": [11,627], "a": 1 }, + { "px": [80,320], "src": [224,96], "f": 0, "t": 152, "d": [11,645], "a": 1 }, + { "px": [96,320], "src": [224,96], "f": 1, "t": 152, "d": [11,646], "a": 1 }, + { "px": [480,352], "src": [224,96], "f": 2, "t": 152, "d": [11,734], "a": 1 }, + { "px": [32,384], "src": [224,96], "f": 3, "t": 152, "d": [11,770], "a": 1 }, + { "px": [48,80], "src": [224,96], "f": 0, "t": 152, "d": [14,163], "a": 1 }, + { "px": [256,80], "src": [224,96], "f": 1, "t": 152, "d": [14,176], "a": 1 }, + { "px": [304,96], "src": [224,96], "f": 0, "t": 152, "d": [14,211], "a": 1 }, + { "px": [48,176], "src": [224,96], "f": 2, "t": 152, "d": [14,355], "a": 1 }, + { "px": [256,176], "src": [224,96], "f": 3, "t": 152, "d": [14,368], "a": 1 }, + { "px": [480,176], "src": [224,96], "f": 1, "t": 152, "d": [14,382], "a": 1 }, + { "px": [48,192], "src": [224,96], "f": 0, "t": 152, "d": [14,387], "a": 1 }, + { "px": [32,208], "src": [224,96], "f": 0, "t": 152, "d": [14,418], "a": 1 }, + { "px": [480,256], "src": [224,96], "f": 1, "t": 152, "d": [14,542], "a": 1 }, + { "px": [208,304], "src": [224,96], "f": 0, "t": 152, "d": [14,621], "a": 1 }, + { "px": [416,304], "src": [224,96], "f": 1, "t": 152, "d": [14,634], "a": 1 }, + { "px": [208,416], "src": [224,96], "f": 2, "t": 152, "d": [14,845], "a": 1 }, + { "px": [416,416], "src": [224,96], "f": 3, "t": 152, "d": [14,858], "a": 1 }, + { "px": [432,416], "src": [224,96], "f": 2, "t": 152, "d": [14,859], "a": 1 }, + { "px": [80,448], "src": [224,96], "f": 3, "t": 152, "d": [14,901], "a": 1 }, + { "px": [96,480], "src": [224,96], "f": 2, "t": 152, "d": [14,966], "a": 1 }, + { "px": [192,480], "src": [224,96], "f": 3, "t": 152, "d": [14,972], "a": 1 }, + { "px": [96,80], "src": [192,192], "f": 0, "t": 288, "d": [78,166], "a": 1 }, + { "px": [144,80], "src": [160,192], "f": 0, "t": 286, "d": [78,169], "a": 1 }, + { "px": [192,80], "src": [192,192], "f": 0, "t": 288, "d": [78,172], "a": 1 }, + { "px": [208,80], "src": [160,192], "f": 0, "t": 286, "d": [78,173], "a": 1 }, + { "px": [224,80], "src": [192,192], "f": 0, "t": 288, "d": [78,174], "a": 1 }, + { "px": [240,80], "src": [160,192], "f": 0, "t": 286, "d": [78,175], "a": 1 }, + { "px": [48,96], "src": [192,192], "f": 0, "t": 288, "d": [78,195], "a": 1 }, + { "px": [416,96], "src": [160,192], "f": 0, "t": 286, "d": [78,218], "a": 1 }, + { "px": [432,96], "src": [160,192], "f": 0, "t": 286, "d": [78,219], "a": 1 }, + { "px": [64,192], "src": [160,192], "f": 0, "t": 286, "d": [78,388], "a": 1 }, + { "px": [160,192], "src": [192,192], "f": 0, "t": 288, "d": [78,394], "a": 1 }, + { "px": [240,192], "src": [160,192], "f": 0, "t": 286, "d": [78,399], "a": 1 }, + { "px": [272,192], "src": [160,192], "f": 0, "t": 286, "d": [78,401], "a": 1 }, + { "px": [288,192], "src": [192,192], "f": 0, "t": 288, "d": [78,402], "a": 1 }, + { "px": [48,208], "src": [192,192], "f": 0, "t": 288, "d": [78,419], "a": 1 }, + { "px": [336,304], "src": [192,192], "f": 0, "t": 288, "d": [78,629], "a": 1 }, + { "px": [352,304], "src": [160,192], "f": 0, "t": 286, "d": [78,630], "a": 1 }, + { "px": [208,256], "src": [32,0], "f": 0, "t": 2, "d": [80,525], "a": 1 }, + { "px": [224,256], "src": [32,0], "f": 0, "t": 2, "d": [80,526], "a": 1 }, + { "px": [240,256], "src": [32,0], "f": 0, "t": 2, "d": [80,527], "a": 1 }, + { "px": [256,256], "src": [32,0], "f": 0, "t": 2, "d": [80,528], "a": 1 }, + { "px": [336,256], "src": [32,0], "f": 0, "t": 2, "d": [80,533], "a": 1 }, + { "px": [416,256], "src": [32,0], "f": 0, "t": 2, "d": [80,538], "a": 1 }, + { "px": [432,256], "src": [32,0], "f": 0, "t": 2, "d": [80,539], "a": 1 }, + { "px": [448,416], "src": [32,0], "f": 0, "t": 2, "d": [80,860], "a": 1 }, + { "px": [464,416], "src": [32,0], "f": 0, "t": 2, "d": [80,861], "a": 1 }, + { "px": [480,416], "src": [32,0], "f": 0, "t": 2, "d": [80,862], "a": 1 }, + { "px": [496,416], "src": [32,0], "f": 0, "t": 2, "d": [80,863], "a": 1 }, + { "px": [16,112], "src": [0,96], "f": 0, "t": 138, "d": [110,225], "a": 1 }, + { "px": [48,112], "src": [32,96], "f": 0, "t": 140, "d": [110,227], "a": 1 }, + { "px": [480,160], "src": [32,96], "f": 0, "t": 140, "d": [110,350], "a": 1 }, + { "px": [496,160], "src": [32,96], "f": 0, "t": 140, "d": [110,351], "a": 1 }, + { "px": [208,240], "src": [0,96], "f": 0, "t": 138, "d": [110,493], "a": 1 }, + { "px": [288,240], "src": [32,96], "f": 0, "t": 140, "d": [110,498], "a": 1 }, + { "px": [336,240], "src": [32,96], "f": 0, "t": 140, "d": [110,501], "a": 1 }, + { "px": [368,240], "src": [0,96], "f": 0, "t": 138, "d": [110,503], "a": 1 }, + { "px": [384,240], "src": [32,96], "f": 0, "t": 140, "d": [110,504], "a": 1 }, + { "px": [400,240], "src": [32,96], "f": 0, "t": 140, "d": [110,505], "a": 1 }, + { "px": [416,240], "src": [32,96], "f": 0, "t": 140, "d": [110,506], "a": 1 }, + { "px": [432,240], "src": [0,96], "f": 0, "t": 138, "d": [110,507], "a": 1 }, + { "px": [80,304], "src": [0,96], "f": 0, "t": 138, "d": [110,613], "a": 1 }, + { "px": [96,304], "src": [0,96], "f": 0, "t": 138, "d": [110,614], "a": 1 }, + { "px": [448,400], "src": [32,96], "f": 0, "t": 140, "d": [110,828], "a": 1 }, + { "px": [464,400], "src": [0,96], "f": 0, "t": 138, "d": [110,829], "a": 1 }, + { "px": [48,432], "src": [0,96], "f": 0, "t": 138, "d": [110,867], "a": 1 } + ], + "seed": 6011873, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36a5bc1-66b0-11ec-9cd7-9b69f1f01963", + "levelId": 66, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [112,96], "src": [320,272], "f": 0, "t": 411, "d": [108,199], "a": 1 }, + { "px": [144,96], "src": [320,272], "f": 0, "t": 411, "d": [108,201], "a": 1 }, + { "px": [176,96], "src": [320,272], "f": 0, "t": 411, "d": [108,203], "a": 1 }, + { "px": [208,96], "src": [320,272], "f": 0, "t": 411, "d": [108,205], "a": 1 }, + { "px": [0,112], "src": [320,272], "f": 0, "t": 411, "d": [108,224], "a": 1 }, + { "px": [16,112], "src": [320,272], "f": 0, "t": 411, "d": [108,225], "a": 1 }, + { "px": [32,112], "src": [320,272], "f": 0, "t": 411, "d": [108,226], "a": 1 }, + { "px": [48,112], "src": [320,272], "f": 0, "t": 411, "d": [108,227], "a": 1 }, + { "px": [64,112], "src": [320,272], "f": 0, "t": 411, "d": [108,228], "a": 1 }, + { "px": [80,112], "src": [320,272], "f": 0, "t": 411, "d": [108,229], "a": 1 }, + { "px": [96,112], "src": [320,272], "f": 0, "t": 411, "d": [108,230], "a": 1 }, + { "px": [112,112], "src": [320,272], "f": 0, "t": 411, "d": [108,231], "a": 1 }, + { "px": [128,112], "src": [320,272], "f": 0, "t": 411, "d": [108,232], "a": 1 }, + { "px": [144,112], "src": [320,272], "f": 0, "t": 411, "d": [108,233], "a": 1 }, + { "px": [160,112], "src": [320,272], "f": 0, "t": 411, "d": [108,234], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [108,235], "a": 1 }, + { "px": [192,112], "src": [320,272], "f": 0, "t": 411, "d": [108,236], "a": 1 }, + { "px": [208,112], "src": [320,272], "f": 0, "t": 411, "d": [108,237], "a": 1 }, + { "px": [224,112], "src": [320,272], "f": 0, "t": 411, "d": [108,238], "a": 1 }, + { "px": [336,112], "src": [320,272], "f": 0, "t": 411, "d": [108,245], "a": 1 }, + { "px": [368,112], "src": [320,272], "f": 0, "t": 411, "d": [108,247], "a": 1 }, + { "px": [400,112], "src": [320,272], "f": 0, "t": 411, "d": [108,249], "a": 1 }, + { "px": [432,112], "src": [320,272], "f": 0, "t": 411, "d": [108,251], "a": 1 }, + { "px": [464,112], "src": [320,272], "f": 0, "t": 411, "d": [108,253], "a": 1 }, + { "px": [496,112], "src": [320,272], "f": 0, "t": 411, "d": [108,255], "a": 1 }, + { "px": [80,128], "src": [320,272], "f": 0, "t": 411, "d": [108,261], "a": 1 }, + { "px": [96,128], "src": [320,272], "f": 0, "t": 411, "d": [108,262], "a": 1 }, + { "px": [112,128], "src": [320,272], "f": 0, "t": 411, "d": [108,263], "a": 1 }, + { "px": [128,128], "src": [320,272], "f": 0, "t": 411, "d": [108,264], "a": 1 }, + { "px": [144,128], "src": [320,272], "f": 0, "t": 411, "d": [108,265], "a": 1 }, + { "px": [160,128], "src": [320,272], "f": 0, "t": 411, "d": [108,266], "a": 1 }, + { "px": [176,128], "src": [320,272], "f": 0, "t": 411, "d": [108,267], "a": 1 }, + { "px": [192,128], "src": [320,272], "f": 0, "t": 411, "d": [108,268], "a": 1 }, + { "px": [208,128], "src": [320,272], "f": 0, "t": 411, "d": [108,269], "a": 1 }, + { "px": [224,128], "src": [320,272], "f": 0, "t": 411, "d": [108,270], "a": 1 }, + { "px": [336,128], "src": [320,272], "f": 0, "t": 411, "d": [108,277], "a": 1 }, + { "px": [352,128], "src": [320,272], "f": 0, "t": 411, "d": [108,278], "a": 1 }, + { "px": [368,128], "src": [320,272], "f": 0, "t": 411, "d": [108,279], "a": 1 }, + { "px": [400,128], "src": [320,272], "f": 0, "t": 411, "d": [108,281], "a": 1 }, + { "px": [416,128], "src": [320,272], "f": 0, "t": 411, "d": [108,282], "a": 1 }, + { "px": [432,128], "src": [320,272], "f": 0, "t": 411, "d": [108,283], "a": 1 }, + { "px": [448,128], "src": [320,272], "f": 0, "t": 411, "d": [108,284], "a": 1 }, + { "px": [464,128], "src": [320,272], "f": 0, "t": 411, "d": [108,285], "a": 1 }, + { "px": [480,128], "src": [320,272], "f": 0, "t": 411, "d": [108,286], "a": 1 }, + { "px": [496,128], "src": [320,272], "f": 0, "t": 411, "d": [108,287], "a": 1 }, + { "px": [64,144], "src": [320,272], "f": 0, "t": 411, "d": [108,292], "a": 1 }, + { "px": [80,144], "src": [320,272], "f": 0, "t": 411, "d": [108,293], "a": 1 }, + { "px": [96,144], "src": [320,272], "f": 0, "t": 411, "d": [108,294], "a": 1 }, + { "px": [112,144], "src": [320,272], "f": 0, "t": 411, "d": [108,295], "a": 1 }, + { "px": [128,144], "src": [320,272], "f": 0, "t": 411, "d": [108,296], "a": 1 }, + { "px": [144,144], "src": [320,272], "f": 0, "t": 411, "d": [108,297], "a": 1 }, + { "px": [160,144], "src": [320,272], "f": 0, "t": 411, "d": [108,298], "a": 1 }, + { "px": [176,144], "src": [320,272], "f": 0, "t": 411, "d": [108,299], "a": 1 }, + { "px": [192,144], "src": [320,272], "f": 0, "t": 411, "d": [108,300], "a": 1 }, + { "px": [208,144], "src": [320,272], "f": 0, "t": 411, "d": [108,301], "a": 1 }, + { "px": [224,144], "src": [320,272], "f": 0, "t": 411, "d": [108,302], "a": 1 }, + { "px": [240,144], "src": [320,272], "f": 0, "t": 411, "d": [108,303], "a": 1 }, + { "px": [336,144], "src": [320,272], "f": 0, "t": 411, "d": [108,309], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [108,311], "a": 1 }, + { "px": [384,144], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [400,144], "src": [320,272], "f": 0, "t": 411, "d": [108,313], "a": 1 }, + { "px": [416,144], "src": [320,272], "f": 0, "t": 411, "d": [108,314], "a": 1 }, + { "px": [432,144], "src": [320,272], "f": 0, "t": 411, "d": [108,315], "a": 1 }, + { "px": [448,144], "src": [320,272], "f": 0, "t": 411, "d": [108,316], "a": 1 }, + { "px": [464,144], "src": [320,272], "f": 0, "t": 411, "d": [108,317], "a": 1 }, + { "px": [480,144], "src": [320,272], "f": 0, "t": 411, "d": [108,318], "a": 1 }, + { "px": [496,144], "src": [320,272], "f": 0, "t": 411, "d": [108,319], "a": 1 }, + { "px": [64,160], "src": [320,272], "f": 0, "t": 411, "d": [108,324], "a": 1 }, + { "px": [80,160], "src": [320,272], "f": 0, "t": 411, "d": [108,325], "a": 1 }, + { "px": [96,160], "src": [320,272], "f": 0, "t": 411, "d": [108,326], "a": 1 }, + { "px": [112,160], "src": [320,272], "f": 0, "t": 411, "d": [108,327], "a": 1 }, + { "px": [128,160], "src": [320,272], "f": 0, "t": 411, "d": [108,328], "a": 1 }, + { "px": [144,160], "src": [320,272], "f": 0, "t": 411, "d": [108,329], "a": 1 }, + { "px": [160,160], "src": [320,272], "f": 0, "t": 411, "d": [108,330], "a": 1 }, + { "px": [176,160], "src": [320,272], "f": 0, "t": 411, "d": [108,331], "a": 1 }, + { "px": [192,160], "src": [320,272], "f": 0, "t": 411, "d": [108,332], "a": 1 }, + { "px": [208,160], "src": [320,272], "f": 0, "t": 411, "d": [108,333], "a": 1 }, + { "px": [224,160], "src": [320,272], "f": 0, "t": 411, "d": [108,334], "a": 1 }, + { "px": [240,160], "src": [320,272], "f": 0, "t": 411, "d": [108,335], "a": 1 }, + { "px": [336,160], "src": [320,272], "f": 0, "t": 411, "d": [108,341], "a": 1 }, + { "px": [352,160], "src": [320,272], "f": 0, "t": 411, "d": [108,342], "a": 1 }, + { "px": [368,160], "src": [320,272], "f": 0, "t": 411, "d": [108,343], "a": 1 }, + { "px": [384,160], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [400,160], "src": [320,272], "f": 0, "t": 411, "d": [108,345], "a": 1 }, + { "px": [416,160], "src": [320,272], "f": 0, "t": 411, "d": [108,346], "a": 1 }, + { "px": [432,160], "src": [320,272], "f": 0, "t": 411, "d": [108,347], "a": 1 }, + { "px": [448,160], "src": [320,272], "f": 0, "t": 411, "d": [108,348], "a": 1 }, + { "px": [464,160], "src": [320,272], "f": 0, "t": 411, "d": [108,349], "a": 1 }, + { "px": [496,160], "src": [320,272], "f": 0, "t": 411, "d": [108,351], "a": 1 }, + { "px": [336,176], "src": [320,272], "f": 0, "t": 411, "d": [108,373], "a": 1 }, + { "px": [352,176], "src": [320,272], "f": 0, "t": 411, "d": [108,374], "a": 1 }, + { "px": [368,176], "src": [320,272], "f": 0, "t": 411, "d": [108,375], "a": 1 }, + { "px": [384,176], "src": [320,272], "f": 0, "t": 411, "d": [108,376], "a": 1 }, + { "px": [400,176], "src": [320,272], "f": 0, "t": 411, "d": [108,377], "a": 1 }, + { "px": [352,192], "src": [320,272], "f": 0, "t": 411, "d": [108,406], "a": 1 }, + { "px": [368,192], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [400,192], "src": [320,272], "f": 0, "t": 411, "d": [108,409], "a": 1 }, + { "px": [416,192], "src": [320,272], "f": 0, "t": 411, "d": [108,410], "a": 1 }, + { "px": [432,192], "src": [320,272], "f": 0, "t": 411, "d": [108,411], "a": 1 }, + { "px": [80,208], "src": [320,272], "f": 0, "t": 411, "d": [108,421], "a": 1 }, + { "px": [96,208], "src": [320,272], "f": 0, "t": 411, "d": [108,422], "a": 1 }, + { "px": [112,208], "src": [320,272], "f": 0, "t": 411, "d": [108,423], "a": 1 }, + { "px": [144,208], "src": [320,272], "f": 0, "t": 411, "d": [108,425], "a": 1 }, + { "px": [176,208], "src": [320,272], "f": 0, "t": 411, "d": [108,427], "a": 1 }, + { "px": [192,208], "src": [320,272], "f": 0, "t": 411, "d": [108,428], "a": 1 }, + { "px": [208,208], "src": [320,272], "f": 0, "t": 411, "d": [108,429], "a": 1 }, + { "px": [224,208], "src": [320,272], "f": 0, "t": 411, "d": [108,430], "a": 1 }, + { "px": [256,208], "src": [320,272], "f": 0, "t": 411, "d": [108,432], "a": 1 }, + { "px": [272,208], "src": [320,272], "f": 0, "t": 411, "d": [108,433], "a": 1 }, + { "px": [288,208], "src": [320,272], "f": 0, "t": 411, "d": [108,434], "a": 1 }, + { "px": [304,208], "src": [320,272], "f": 0, "t": 411, "d": [108,435], "a": 1 }, + { "px": [320,208], "src": [320,272], "f": 0, "t": 411, "d": [108,436], "a": 1 }, + { "px": [336,208], "src": [320,272], "f": 0, "t": 411, "d": [108,437], "a": 1 }, + { "px": [352,208], "src": [320,272], "f": 0, "t": 411, "d": [108,438], "a": 1 }, + { "px": [368,208], "src": [320,272], "f": 0, "t": 411, "d": [108,439], "a": 1 }, + { "px": [384,208], "src": [320,272], "f": 0, "t": 411, "d": [108,440], "a": 1 }, + { "px": [400,208], "src": [320,272], "f": 0, "t": 411, "d": [108,441], "a": 1 }, + { "px": [416,208], "src": [320,272], "f": 0, "t": 411, "d": [108,442], "a": 1 }, + { "px": [432,208], "src": [320,272], "f": 0, "t": 411, "d": [108,443], "a": 1 }, + { "px": [448,208], "src": [320,272], "f": 0, "t": 411, "d": [108,444], "a": 1 }, + { "px": [64,224], "src": [320,272], "f": 0, "t": 411, "d": [108,452], "a": 1 }, + { "px": [80,224], "src": [320,272], "f": 0, "t": 411, "d": [108,453], "a": 1 }, + { "px": [96,224], "src": [320,272], "f": 0, "t": 411, "d": [108,454], "a": 1 }, + { "px": [112,224], "src": [320,272], "f": 0, "t": 411, "d": [108,455], "a": 1 }, + { "px": [144,224], "src": [320,272], "f": 0, "t": 411, "d": [108,457], "a": 1 }, + { "px": [160,224], "src": [320,272], "f": 0, "t": 411, "d": [108,458], "a": 1 }, + { "px": [176,224], "src": [320,272], "f": 0, "t": 411, "d": [108,459], "a": 1 }, + { "px": [192,224], "src": [320,272], "f": 0, "t": 411, "d": [108,460], "a": 1 }, + { "px": [208,224], "src": [320,272], "f": 0, "t": 411, "d": [108,461], "a": 1 }, + { "px": [224,224], "src": [320,272], "f": 0, "t": 411, "d": [108,462], "a": 1 }, + { "px": [240,224], "src": [320,272], "f": 0, "t": 411, "d": [108,463], "a": 1 }, + { "px": [256,224], "src": [320,272], "f": 0, "t": 411, "d": [108,464], "a": 1 }, + { "px": [288,224], "src": [320,272], "f": 0, "t": 411, "d": [108,466], "a": 1 }, + { "px": [304,224], "src": [320,272], "f": 0, "t": 411, "d": [108,467], "a": 1 }, + { "px": [336,224], "src": [320,272], "f": 0, "t": 411, "d": [108,469], "a": 1 }, + { "px": [352,224], "src": [320,272], "f": 0, "t": 411, "d": [108,470], "a": 1 }, + { "px": [368,224], "src": [320,272], "f": 0, "t": 411, "d": [108,471], "a": 1 }, + { "px": [384,224], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [400,224], "src": [320,272], "f": 0, "t": 411, "d": [108,473], "a": 1 }, + { "px": [416,224], "src": [320,272], "f": 0, "t": 411, "d": [108,474], "a": 1 }, + { "px": [432,224], "src": [320,272], "f": 0, "t": 411, "d": [108,475], "a": 1 }, + { "px": [448,224], "src": [320,272], "f": 0, "t": 411, "d": [108,476], "a": 1 }, + { "px": [64,240], "src": [320,272], "f": 0, "t": 411, "d": [108,484], "a": 1 }, + { "px": [80,240], "src": [320,272], "f": 0, "t": 411, "d": [108,485], "a": 1 }, + { "px": [96,240], "src": [320,272], "f": 0, "t": 411, "d": [108,486], "a": 1 }, + { "px": [112,240], "src": [320,272], "f": 0, "t": 411, "d": [108,487], "a": 1 }, + { "px": [128,240], "src": [320,272], "f": 0, "t": 411, "d": [108,488], "a": 1 }, + { "px": [144,240], "src": [320,272], "f": 0, "t": 411, "d": [108,489], "a": 1 }, + { "px": [160,240], "src": [320,272], "f": 0, "t": 411, "d": [108,490], "a": 1 }, + { "px": [176,240], "src": [320,272], "f": 0, "t": 411, "d": [108,491], "a": 1 }, + { "px": [192,240], "src": [320,272], "f": 0, "t": 411, "d": [108,492], "a": 1 }, + { "px": [208,240], "src": [320,272], "f": 0, "t": 411, "d": [108,493], "a": 1 }, + { "px": [224,240], "src": [320,272], "f": 0, "t": 411, "d": [108,494], "a": 1 }, + { "px": [256,240], "src": [320,272], "f": 0, "t": 411, "d": [108,496], "a": 1 }, + { "px": [272,240], "src": [320,272], "f": 0, "t": 411, "d": [108,497], "a": 1 }, + { "px": [288,240], "src": [320,272], "f": 0, "t": 411, "d": [108,498], "a": 1 }, + { "px": [304,240], "src": [320,272], "f": 0, "t": 411, "d": [108,499], "a": 1 }, + { "px": [320,240], "src": [320,272], "f": 0, "t": 411, "d": [108,500], "a": 1 }, + { "px": [336,240], "src": [320,272], "f": 0, "t": 411, "d": [108,501], "a": 1 }, + { "px": [352,240], "src": [320,272], "f": 0, "t": 411, "d": [108,502], "a": 1 }, + { "px": [368,240], "src": [320,272], "f": 0, "t": 411, "d": [108,503], "a": 1 }, + { "px": [384,240], "src": [320,272], "f": 0, "t": 411, "d": [108,504], "a": 1 }, + { "px": [400,240], "src": [320,272], "f": 0, "t": 411, "d": [108,505], "a": 1 }, + { "px": [416,240], "src": [320,272], "f": 0, "t": 411, "d": [108,506], "a": 1 }, + { "px": [432,240], "src": [320,272], "f": 0, "t": 411, "d": [108,507], "a": 1 }, + { "px": [448,240], "src": [320,272], "f": 0, "t": 411, "d": [108,508], "a": 1 }, + { "px": [64,256], "src": [320,272], "f": 0, "t": 411, "d": [108,516], "a": 1 }, + { "px": [80,256], "src": [320,272], "f": 0, "t": 411, "d": [108,517], "a": 1 }, + { "px": [112,256], "src": [320,272], "f": 0, "t": 411, "d": [108,519], "a": 1 }, + { "px": [128,256], "src": [320,272], "f": 0, "t": 411, "d": [108,520], "a": 1 }, + { "px": [144,256], "src": [320,272], "f": 0, "t": 411, "d": [108,521], "a": 1 }, + { "px": [160,256], "src": [320,272], "f": 0, "t": 411, "d": [108,522], "a": 1 }, + { "px": [64,272], "src": [320,272], "f": 0, "t": 411, "d": [108,548], "a": 1 }, + { "px": [80,272], "src": [320,272], "f": 0, "t": 411, "d": [108,549], "a": 1 }, + { "px": [96,272], "src": [320,272], "f": 0, "t": 411, "d": [108,550], "a": 1 }, + { "px": [112,272], "src": [320,272], "f": 0, "t": 411, "d": [108,551], "a": 1 }, + { "px": [128,272], "src": [320,272], "f": 0, "t": 411, "d": [108,552], "a": 1 }, + { "px": [144,272], "src": [320,272], "f": 0, "t": 411, "d": [108,553], "a": 1 }, + { "px": [160,272], "src": [320,272], "f": 0, "t": 411, "d": [108,554], "a": 1 }, + { "px": [64,288], "src": [320,272], "f": 0, "t": 411, "d": [108,580], "a": 1 }, + { "px": [80,288], "src": [320,272], "f": 0, "t": 411, "d": [108,581], "a": 1 }, + { "px": [96,288], "src": [320,272], "f": 0, "t": 411, "d": [108,582], "a": 1 }, + { "px": [112,288], "src": [320,272], "f": 0, "t": 411, "d": [108,583], "a": 1 }, + { "px": [128,288], "src": [320,272], "f": 0, "t": 411, "d": [108,584], "a": 1 }, + { "px": [144,288], "src": [320,272], "f": 0, "t": 411, "d": [108,585], "a": 1 }, + { "px": [160,288], "src": [320,272], "f": 0, "t": 411, "d": [108,586], "a": 1 }, + { "px": [64,304], "src": [320,272], "f": 0, "t": 411, "d": [108,612], "a": 1 }, + { "px": [80,304], "src": [320,272], "f": 0, "t": 411, "d": [108,613], "a": 1 }, + { "px": [96,304], "src": [320,272], "f": 0, "t": 411, "d": [108,614], "a": 1 }, + { "px": [112,304], "src": [320,272], "f": 0, "t": 411, "d": [108,615], "a": 1 }, + { "px": [128,304], "src": [320,272], "f": 0, "t": 411, "d": [108,616], "a": 1 }, + { "px": [144,304], "src": [320,272], "f": 0, "t": 411, "d": [108,617], "a": 1 }, + { "px": [160,304], "src": [320,272], "f": 0, "t": 411, "d": [108,618], "a": 1 }, + { "px": [128,320], "src": [320,272], "f": 0, "t": 411, "d": [108,648], "a": 1 }, + { "px": [144,320], "src": [320,272], "f": 0, "t": 411, "d": [108,649], "a": 1 }, + { "px": [160,320], "src": [320,272], "f": 0, "t": 411, "d": [108,650], "a": 1 }, + { "px": [240,320], "src": [320,272], "f": 0, "t": 411, "d": [108,655], "a": 1 }, + { "px": [256,320], "src": [320,272], "f": 0, "t": 411, "d": [108,656], "a": 1 }, + { "px": [272,320], "src": [320,272], "f": 0, "t": 411, "d": [108,657], "a": 1 }, + { "px": [304,320], "src": [320,272], "f": 0, "t": 411, "d": [108,659], "a": 1 }, + { "px": [320,320], "src": [320,272], "f": 0, "t": 411, "d": [108,660], "a": 1 }, + { "px": [336,320], "src": [320,272], "f": 0, "t": 411, "d": [108,661], "a": 1 }, + { "px": [368,320], "src": [320,272], "f": 0, "t": 411, "d": [108,663], "a": 1 }, + { "px": [384,320], "src": [320,272], "f": 0, "t": 411, "d": [108,664], "a": 1 }, + { "px": [112,336], "src": [320,272], "f": 0, "t": 411, "d": [108,679], "a": 1 }, + { "px": [128,336], "src": [320,272], "f": 0, "t": 411, "d": [108,680], "a": 1 }, + { "px": [144,336], "src": [320,272], "f": 0, "t": 411, "d": [108,681], "a": 1 }, + { "px": [160,336], "src": [320,272], "f": 0, "t": 411, "d": [108,682], "a": 1 }, + { "px": [176,336], "src": [320,272], "f": 0, "t": 411, "d": [108,683], "a": 1 }, + { "px": [240,336], "src": [320,272], "f": 0, "t": 411, "d": [108,687], "a": 1 }, + { "px": [256,336], "src": [320,272], "f": 0, "t": 411, "d": [108,688], "a": 1 }, + { "px": [272,336], "src": [320,272], "f": 0, "t": 411, "d": [108,689], "a": 1 }, + { "px": [288,336], "src": [320,272], "f": 0, "t": 411, "d": [108,690], "a": 1 }, + { "px": [304,336], "src": [320,272], "f": 0, "t": 411, "d": [108,691], "a": 1 }, + { "px": [320,336], "src": [320,272], "f": 0, "t": 411, "d": [108,692], "a": 1 }, + { "px": [336,336], "src": [320,272], "f": 0, "t": 411, "d": [108,693], "a": 1 }, + { "px": [352,336], "src": [320,272], "f": 0, "t": 411, "d": [108,694], "a": 1 }, + { "px": [368,336], "src": [320,272], "f": 0, "t": 411, "d": [108,695], "a": 1 }, + { "px": [384,336], "src": [320,272], "f": 0, "t": 411, "d": [108,696], "a": 1 }, + { "px": [112,352], "src": [320,272], "f": 0, "t": 411, "d": [108,711], "a": 1 }, + { "px": [128,352], "src": [320,272], "f": 0, "t": 411, "d": [108,712], "a": 1 }, + { "px": [144,352], "src": [320,272], "f": 0, "t": 411, "d": [108,713], "a": 1 }, + { "px": [160,352], "src": [320,272], "f": 0, "t": 411, "d": [108,714], "a": 1 }, + { "px": [176,352], "src": [320,272], "f": 0, "t": 411, "d": [108,715], "a": 1 }, + { "px": [224,352], "src": [320,272], "f": 0, "t": 411, "d": [108,718], "a": 1 }, + { "px": [240,352], "src": [320,272], "f": 0, "t": 411, "d": [108,719], "a": 1 }, + { "px": [256,352], "src": [320,272], "f": 0, "t": 411, "d": [108,720], "a": 1 }, + { "px": [272,352], "src": [320,272], "f": 0, "t": 411, "d": [108,721], "a": 1 }, + { "px": [288,352], "src": [320,272], "f": 0, "t": 411, "d": [108,722], "a": 1 }, + { "px": [304,352], "src": [320,272], "f": 0, "t": 411, "d": [108,723], "a": 1 }, + { "px": [320,352], "src": [320,272], "f": 0, "t": 411, "d": [108,724], "a": 1 }, + { "px": [336,352], "src": [320,272], "f": 0, "t": 411, "d": [108,725], "a": 1 }, + { "px": [352,352], "src": [320,272], "f": 0, "t": 411, "d": [108,726], "a": 1 }, + { "px": [368,352], "src": [320,272], "f": 0, "t": 411, "d": [108,727], "a": 1 }, + { "px": [384,352], "src": [320,272], "f": 0, "t": 411, "d": [108,728], "a": 1 }, + { "px": [400,352], "src": [320,272], "f": 0, "t": 411, "d": [108,729], "a": 1 }, + { "px": [112,368], "src": [320,272], "f": 0, "t": 411, "d": [108,743], "a": 1 }, + { "px": [128,368], "src": [320,272], "f": 0, "t": 411, "d": [108,744], "a": 1 }, + { "px": [144,368], "src": [320,272], "f": 0, "t": 411, "d": [108,745], "a": 1 }, + { "px": [160,368], "src": [320,272], "f": 0, "t": 411, "d": [108,746], "a": 1 }, + { "px": [176,368], "src": [320,272], "f": 0, "t": 411, "d": [108,747], "a": 1 }, + { "px": [224,368], "src": [320,272], "f": 0, "t": 411, "d": [108,750], "a": 1 }, + { "px": [240,368], "src": [320,272], "f": 0, "t": 411, "d": [108,751], "a": 1 }, + { "px": [256,368], "src": [320,272], "f": 0, "t": 411, "d": [108,752], "a": 1 }, + { "px": [272,368], "src": [320,272], "f": 0, "t": 411, "d": [108,753], "a": 1 }, + { "px": [288,368], "src": [320,272], "f": 0, "t": 411, "d": [108,754], "a": 1 }, + { "px": [304,368], "src": [320,272], "f": 0, "t": 411, "d": [108,755], "a": 1 }, + { "px": [320,368], "src": [320,272], "f": 0, "t": 411, "d": [108,756], "a": 1 }, + { "px": [336,368], "src": [320,272], "f": 0, "t": 411, "d": [108,757], "a": 1 }, + { "px": [352,368], "src": [320,272], "f": 0, "t": 411, "d": [108,758], "a": 1 }, + { "px": [368,368], "src": [320,272], "f": 0, "t": 411, "d": [108,759], "a": 1 }, + { "px": [384,368], "src": [320,272], "f": 0, "t": 411, "d": [108,760], "a": 1 }, + { "px": [400,368], "src": [320,272], "f": 0, "t": 411, "d": [108,761], "a": 1 }, + { "px": [464,368], "src": [320,272], "f": 0, "t": 411, "d": [108,765], "a": 1 }, + { "px": [480,368], "src": [320,272], "f": 0, "t": 411, "d": [108,766], "a": 1 }, + { "px": [496,368], "src": [320,272], "f": 0, "t": 411, "d": [108,767], "a": 1 }, + { "px": [112,384], "src": [320,272], "f": 0, "t": 411, "d": [108,775], "a": 1 }, + { "px": [128,384], "src": [320,272], "f": 0, "t": 411, "d": [108,776], "a": 1 }, + { "px": [144,384], "src": [320,272], "f": 0, "t": 411, "d": [108,777], "a": 1 }, + { "px": [160,384], "src": [320,272], "f": 0, "t": 411, "d": [108,778], "a": 1 }, + { "px": [176,384], "src": [320,272], "f": 0, "t": 411, "d": [108,779], "a": 1 }, + { "px": [224,384], "src": [320,272], "f": 0, "t": 411, "d": [108,782], "a": 1 }, + { "px": [240,384], "src": [320,272], "f": 0, "t": 411, "d": [108,783], "a": 1 }, + { "px": [256,384], "src": [320,272], "f": 0, "t": 411, "d": [108,784], "a": 1 }, + { "px": [272,384], "src": [320,272], "f": 0, "t": 411, "d": [108,785], "a": 1 }, + { "px": [288,384], "src": [320,272], "f": 0, "t": 411, "d": [108,786], "a": 1 }, + { "px": [304,384], "src": [320,272], "f": 0, "t": 411, "d": [108,787], "a": 1 }, + { "px": [320,384], "src": [320,272], "f": 0, "t": 411, "d": [108,788], "a": 1 }, + { "px": [336,384], "src": [320,272], "f": 0, "t": 411, "d": [108,789], "a": 1 }, + { "px": [352,384], "src": [320,272], "f": 0, "t": 411, "d": [108,790], "a": 1 }, + { "px": [368,384], "src": [320,272], "f": 0, "t": 411, "d": [108,791], "a": 1 }, + { "px": [384,384], "src": [320,272], "f": 0, "t": 411, "d": [108,792], "a": 1 }, + { "px": [400,384], "src": [320,272], "f": 0, "t": 411, "d": [108,793], "a": 1 }, + { "px": [464,384], "src": [320,272], "f": 0, "t": 411, "d": [108,797], "a": 1 }, + { "px": [496,384], "src": [320,272], "f": 0, "t": 411, "d": [108,799], "a": 1 }, + { "px": [0,400], "src": [320,272], "f": 0, "t": 411, "d": [108,800], "a": 1 }, + { "px": [16,400], "src": [320,272], "f": 0, "t": 411, "d": [108,801], "a": 1 }, + { "px": [48,400], "src": [320,272], "f": 0, "t": 411, "d": [108,803], "a": 1 }, + { "px": [112,400], "src": [320,272], "f": 0, "t": 411, "d": [108,807], "a": 1 }, + { "px": [128,400], "src": [320,272], "f": 0, "t": 411, "d": [108,808], "a": 1 }, + { "px": [144,400], "src": [320,272], "f": 0, "t": 411, "d": [108,809], "a": 1 }, + { "px": [160,400], "src": [320,272], "f": 0, "t": 411, "d": [108,810], "a": 1 }, + { "px": [176,400], "src": [320,272], "f": 0, "t": 411, "d": [108,811], "a": 1 }, + { "px": [224,400], "src": [320,272], "f": 0, "t": 411, "d": [108,814], "a": 1 }, + { "px": [240,400], "src": [320,272], "f": 0, "t": 411, "d": [108,815], "a": 1 }, + { "px": [256,400], "src": [320,272], "f": 0, "t": 411, "d": [108,816], "a": 1 }, + { "px": [272,400], "src": [320,272], "f": 0, "t": 411, "d": [108,817], "a": 1 }, + { "px": [288,400], "src": [320,272], "f": 0, "t": 411, "d": [108,818], "a": 1 }, + { "px": [304,400], "src": [320,272], "f": 0, "t": 411, "d": [108,819], "a": 1 }, + { "px": [320,400], "src": [320,272], "f": 0, "t": 411, "d": [108,820], "a": 1 }, + { "px": [336,400], "src": [320,272], "f": 0, "t": 411, "d": [108,821], "a": 1 }, + { "px": [352,400], "src": [320,272], "f": 0, "t": 411, "d": [108,822], "a": 1 }, + { "px": [368,400], "src": [320,272], "f": 0, "t": 411, "d": [108,823], "a": 1 }, + { "px": [384,400], "src": [320,272], "f": 0, "t": 411, "d": [108,824], "a": 1 }, + { "px": [400,400], "src": [320,272], "f": 0, "t": 411, "d": [108,825], "a": 1 }, + { "px": [464,400], "src": [320,272], "f": 0, "t": 411, "d": [108,829], "a": 1 }, + { "px": [480,400], "src": [320,272], "f": 0, "t": 411, "d": [108,830], "a": 1 }, + { "px": [496,400], "src": [320,272], "f": 0, "t": 411, "d": [108,831], "a": 1 }, + { "px": [0,416], "src": [320,272], "f": 0, "t": 411, "d": [108,832], "a": 1 }, + { "px": [16,416], "src": [320,272], "f": 0, "t": 411, "d": [108,833], "a": 1 }, + { "px": [32,416], "src": [320,272], "f": 0, "t": 411, "d": [108,834], "a": 1 }, + { "px": [48,416], "src": [320,272], "f": 0, "t": 411, "d": [108,835], "a": 1 }, + { "px": [112,416], "src": [320,272], "f": 0, "t": 411, "d": [108,839], "a": 1 }, + { "px": [128,416], "src": [320,272], "f": 0, "t": 411, "d": [108,840], "a": 1 }, + { "px": [144,416], "src": [320,272], "f": 0, "t": 411, "d": [108,841], "a": 1 }, + { "px": [160,416], "src": [320,272], "f": 0, "t": 411, "d": [108,842], "a": 1 }, + { "px": [176,416], "src": [320,272], "f": 0, "t": 411, "d": [108,843], "a": 1 }, + { "px": [0,432], "src": [320,272], "f": 0, "t": 411, "d": [108,864], "a": 1 }, + { "px": [16,432], "src": [320,272], "f": 0, "t": 411, "d": [108,865], "a": 1 }, + { "px": [32,432], "src": [320,272], "f": 0, "t": 411, "d": [108,866], "a": 1 }, + { "px": [48,432], "src": [320,272], "f": 0, "t": 411, "d": [108,867], "a": 1 }, + { "px": [112,432], "src": [320,272], "f": 0, "t": 411, "d": [108,871], "a": 1 }, + { "px": [128,432], "src": [320,272], "f": 0, "t": 411, "d": [108,872], "a": 1 }, + { "px": [144,432], "src": [320,272], "f": 0, "t": 411, "d": [108,873], "a": 1 }, + { "px": [160,432], "src": [320,272], "f": 0, "t": 411, "d": [108,874], "a": 1 }, + { "px": [176,432], "src": [320,272], "f": 0, "t": 411, "d": [108,875], "a": 1 }, + { "px": [112,448], "src": [320,272], "f": 0, "t": 411, "d": [108,903], "a": 1 }, + { "px": [128,448], "src": [320,272], "f": 0, "t": 411, "d": [108,904], "a": 1 }, + { "px": [144,448], "src": [320,272], "f": 0, "t": 411, "d": [108,905], "a": 1 }, + { "px": [160,448], "src": [320,272], "f": 0, "t": 411, "d": [108,906], "a": 1 }, + { "px": [176,448], "src": [320,272], "f": 0, "t": 411, "d": [108,907], "a": 1 }, + { "px": [112,464], "src": [320,272], "f": 0, "t": 411, "d": [108,935], "a": 1 }, + { "px": [128,464], "src": [320,272], "f": 0, "t": 411, "d": [108,936], "a": 1 }, + { "px": [144,464], "src": [320,272], "f": 0, "t": 411, "d": [108,937], "a": 1 }, + { "px": [160,464], "src": [320,272], "f": 0, "t": 411, "d": [108,938], "a": 1 }, + { "px": [176,464], "src": [320,272], "f": 0, "t": 411, "d": [108,939], "a": 1 }, + { "px": [80,96], "src": [256,240], "f": 1, "t": 361, "d": [107,196], "a": 1 }, + { "px": [64,96], "src": [272,240], "f": 1, "t": 362, "d": [107,196], "a": 1 }, + { "px": [224,112], "src": [256,240], "f": 0, "t": 361, "d": [107,239], "a": 1 }, + { "px": [240,112], "src": [272,240], "f": 0, "t": 362, "d": [107,239], "a": 1 }, + { "px": [80,128], "src": [256,240], "f": 1, "t": 361, "d": [107,260], "a": 1 }, + { "px": [64,128], "src": [272,240], "f": 1, "t": 362, "d": [107,260], "a": 1 }, + { "px": [224,128], "src": [256,240], "f": 0, "t": 361, "d": [107,271], "a": 1 }, + { "px": [240,128], "src": [272,240], "f": 0, "t": 362, "d": [107,271], "a": 1 }, + { "px": [336,128], "src": [256,240], "f": 1, "t": 361, "d": [107,276], "a": 1 }, + { "px": [320,128], "src": [272,240], "f": 1, "t": 362, "d": [107,276], "a": 1 }, + { "px": [336,144], "src": [256,240], "f": 1, "t": 361, "d": [107,308], "a": 1 }, + { "px": [320,144], "src": [272,240], "f": 1, "t": 362, "d": [107,308], "a": 1 }, + { "px": [336,160], "src": [256,240], "f": 1, "t": 361, "d": [107,340], "a": 1 }, + { "px": [320,160], "src": [272,240], "f": 1, "t": 362, "d": [107,340], "a": 1 }, + { "px": [336,176], "src": [256,240], "f": 1, "t": 361, "d": [107,372], "a": 1 }, + { "px": [320,176], "src": [272,240], "f": 1, "t": 362, "d": [107,372], "a": 1 }, + { "px": [400,176], "src": [256,240], "f": 0, "t": 361, "d": [107,378], "a": 1 }, + { "px": [416,176], "src": [272,240], "f": 0, "t": 362, "d": [107,378], "a": 1 }, + { "px": [336,192], "src": [256,240], "f": 1, "t": 361, "d": [107,404], "a": 1 }, + { "px": [320,192], "src": [272,240], "f": 1, "t": 362, "d": [107,404], "a": 1 }, + { "px": [448,208], "src": [256,240], "f": 0, "t": 361, "d": [107,445], "a": 1 }, + { "px": [464,208], "src": [272,240], "f": 0, "t": 362, "d": [107,445], "a": 1 }, + { "px": [64,224], "src": [256,240], "f": 1, "t": 361, "d": [107,451], "a": 1 }, + { "px": [48,224], "src": [272,240], "f": 1, "t": 362, "d": [107,451], "a": 1 }, + { "px": [448,224], "src": [256,240], "f": 0, "t": 361, "d": [107,477], "a": 1 }, + { "px": [464,224], "src": [272,240], "f": 0, "t": 362, "d": [107,477], "a": 1 }, + { "px": [64,240], "src": [256,240], "f": 1, "t": 361, "d": [107,483], "a": 1 }, + { "px": [48,240], "src": [272,240], "f": 1, "t": 362, "d": [107,483], "a": 1 }, + { "px": [448,240], "src": [256,240], "f": 0, "t": 361, "d": [107,509], "a": 1 }, + { "px": [464,240], "src": [272,240], "f": 0, "t": 362, "d": [107,509], "a": 1 }, + { "px": [64,256], "src": [256,240], "f": 1, "t": 361, "d": [107,515], "a": 1 }, + { "px": [48,256], "src": [272,240], "f": 1, "t": 362, "d": [107,515], "a": 1 }, + { "px": [160,256], "src": [256,240], "f": 0, "t": 361, "d": [107,523], "a": 1 }, + { "px": [176,256], "src": [272,240], "f": 0, "t": 362, "d": [107,523], "a": 1 }, + { "px": [304,256], "src": [256,240], "f": 0, "t": 361, "d": [107,532], "a": 1 }, + { "px": [320,256], "src": [272,240], "f": 0, "t": 362, "d": [107,532], "a": 1 }, + { "px": [432,256], "src": [256,240], "f": 0, "t": 361, "d": [107,540], "a": 1 }, + { "px": [448,256], "src": [272,240], "f": 0, "t": 362, "d": [107,540], "a": 1 }, + { "px": [64,272], "src": [256,240], "f": 1, "t": 361, "d": [107,547], "a": 1 }, + { "px": [48,272], "src": [272,240], "f": 1, "t": 362, "d": [107,547], "a": 1 }, + { "px": [160,272], "src": [256,240], "f": 0, "t": 361, "d": [107,555], "a": 1 }, + { "px": [176,272], "src": [272,240], "f": 0, "t": 362, "d": [107,555], "a": 1 }, + { "px": [304,272], "src": [256,240], "f": 0, "t": 361, "d": [107,564], "a": 1 }, + { "px": [320,272], "src": [272,240], "f": 0, "t": 362, "d": [107,564], "a": 1 }, + { "px": [464,272], "src": [256,240], "f": 1, "t": 361, "d": [107,572], "a": 1 }, + { "px": [448,272], "src": [272,240], "f": 1, "t": 362, "d": [107,572], "a": 1 }, + { "px": [448,272], "src": [256,240], "f": 0, "t": 361, "d": [107,573], "a": 1 }, + { "px": [464,272], "src": [272,240], "f": 0, "t": 362, "d": [107,573], "a": 1 }, + { "px": [64,288], "src": [256,240], "f": 1, "t": 361, "d": [107,579], "a": 1 }, + { "px": [48,288], "src": [272,240], "f": 1, "t": 362, "d": [107,579], "a": 1 }, + { "px": [160,288], "src": [256,240], "f": 0, "t": 361, "d": [107,587], "a": 1 }, + { "px": [176,288], "src": [272,240], "f": 0, "t": 362, "d": [107,587], "a": 1 }, + { "px": [304,288], "src": [256,240], "f": 0, "t": 361, "d": [107,596], "a": 1 }, + { "px": [320,288], "src": [272,240], "f": 0, "t": 362, "d": [107,596], "a": 1 }, + { "px": [464,288], "src": [256,240], "f": 1, "t": 361, "d": [107,604], "a": 1 }, + { "px": [448,288], "src": [272,240], "f": 1, "t": 362, "d": [107,604], "a": 1 }, + { "px": [448,288], "src": [256,240], "f": 0, "t": 361, "d": [107,605], "a": 1 }, + { "px": [464,288], "src": [272,240], "f": 0, "t": 362, "d": [107,605], "a": 1 }, + { "px": [64,304], "src": [256,240], "f": 1, "t": 361, "d": [107,611], "a": 1 }, + { "px": [48,304], "src": [272,240], "f": 1, "t": 362, "d": [107,611], "a": 1 }, + { "px": [160,304], "src": [256,240], "f": 0, "t": 361, "d": [107,619], "a": 1 }, + { "px": [176,304], "src": [272,240], "f": 0, "t": 362, "d": [107,619], "a": 1 }, + { "px": [304,304], "src": [256,240], "f": 0, "t": 361, "d": [107,628], "a": 1 }, + { "px": [320,304], "src": [272,240], "f": 0, "t": 362, "d": [107,628], "a": 1 }, + { "px": [464,304], "src": [256,240], "f": 1, "t": 361, "d": [107,636], "a": 1 }, + { "px": [448,304], "src": [272,240], "f": 1, "t": 362, "d": [107,636], "a": 1 }, + { "px": [448,304], "src": [256,240], "f": 0, "t": 361, "d": [107,637], "a": 1 }, + { "px": [464,304], "src": [272,240], "f": 0, "t": 362, "d": [107,637], "a": 1 }, + { "px": [64,320], "src": [256,240], "f": 1, "t": 361, "d": [107,643], "a": 1 }, + { "px": [48,320], "src": [272,240], "f": 1, "t": 362, "d": [107,643], "a": 1 }, + { "px": [48,320], "src": [256,240], "f": 0, "t": 361, "d": [107,644], "a": 1 }, + { "px": [64,320], "src": [272,240], "f": 0, "t": 362, "d": [107,644], "a": 1 }, + { "px": [128,320], "src": [256,240], "f": 1, "t": 361, "d": [107,647], "a": 1 }, + { "px": [112,320], "src": [272,240], "f": 1, "t": 362, "d": [107,647], "a": 1 }, + { "px": [160,320], "src": [256,240], "f": 0, "t": 361, "d": [107,651], "a": 1 }, + { "px": [176,320], "src": [272,240], "f": 0, "t": 362, "d": [107,651], "a": 1 }, + { "px": [240,320], "src": [256,240], "f": 1, "t": 361, "d": [107,654], "a": 1 }, + { "px": [224,320], "src": [272,240], "f": 1, "t": 362, "d": [107,654], "a": 1 }, + { "px": [464,320], "src": [256,240], "f": 1, "t": 361, "d": [107,668], "a": 1 }, + { "px": [448,320], "src": [272,240], "f": 1, "t": 362, "d": [107,668], "a": 1 }, + { "px": [448,320], "src": [256,240], "f": 0, "t": 361, "d": [107,669], "a": 1 }, + { "px": [464,320], "src": [272,240], "f": 0, "t": 362, "d": [107,669], "a": 1 }, + { "px": [64,336], "src": [256,240], "f": 1, "t": 361, "d": [107,675], "a": 1 }, + { "px": [48,336], "src": [272,240], "f": 1, "t": 362, "d": [107,675], "a": 1 }, + { "px": [48,336], "src": [256,240], "f": 0, "t": 361, "d": [107,676], "a": 1 }, + { "px": [64,336], "src": [272,240], "f": 0, "t": 362, "d": [107,676], "a": 1 }, + { "px": [240,336], "src": [256,240], "f": 1, "t": 361, "d": [107,686], "a": 1 }, + { "px": [224,336], "src": [272,240], "f": 1, "t": 362, "d": [107,686], "a": 1 }, + { "px": [384,336], "src": [256,240], "f": 0, "t": 361, "d": [107,697], "a": 1 }, + { "px": [400,336], "src": [272,240], "f": 0, "t": 362, "d": [107,697], "a": 1 }, + { "px": [464,336], "src": [256,240], "f": 1, "t": 361, "d": [107,700], "a": 1 }, + { "px": [448,336], "src": [272,240], "f": 1, "t": 362, "d": [107,700], "a": 1 }, + { "px": [448,336], "src": [256,240], "f": 0, "t": 361, "d": [107,701], "a": 1 }, + { "px": [464,336], "src": [272,240], "f": 0, "t": 362, "d": [107,701], "a": 1 }, + { "px": [64,352], "src": [256,240], "f": 1, "t": 361, "d": [107,707], "a": 1 }, + { "px": [48,352], "src": [272,240], "f": 1, "t": 362, "d": [107,707], "a": 1 }, + { "px": [48,352], "src": [256,240], "f": 0, "t": 361, "d": [107,708], "a": 1 }, + { "px": [64,352], "src": [272,240], "f": 0, "t": 362, "d": [107,708], "a": 1 }, + { "px": [464,352], "src": [256,240], "f": 1, "t": 361, "d": [107,732], "a": 1 }, + { "px": [448,352], "src": [272,240], "f": 1, "t": 362, "d": [107,732], "a": 1 }, + { "px": [448,352], "src": [256,240], "f": 0, "t": 361, "d": [107,733], "a": 1 }, + { "px": [464,352], "src": [272,240], "f": 0, "t": 362, "d": [107,733], "a": 1 }, + { "px": [64,368], "src": [256,240], "f": 1, "t": 361, "d": [107,739], "a": 1 }, + { "px": [48,368], "src": [272,240], "f": 1, "t": 362, "d": [107,739], "a": 1 }, + { "px": [48,368], "src": [256,240], "f": 0, "t": 361, "d": [107,740], "a": 1 }, + { "px": [64,368], "src": [272,240], "f": 0, "t": 362, "d": [107,740], "a": 1 }, + { "px": [464,368], "src": [256,240], "f": 1, "t": 361, "d": [107,764], "a": 1 }, + { "px": [448,368], "src": [272,240], "f": 1, "t": 362, "d": [107,764], "a": 1 }, + { "px": [64,384], "src": [256,240], "f": 1, "t": 361, "d": [107,771], "a": 1 }, + { "px": [48,384], "src": [272,240], "f": 1, "t": 362, "d": [107,771], "a": 1 }, + { "px": [48,384], "src": [256,240], "f": 0, "t": 361, "d": [107,772], "a": 1 }, + { "px": [64,384], "src": [272,240], "f": 0, "t": 362, "d": [107,772], "a": 1 }, + { "px": [464,384], "src": [256,240], "f": 1, "t": 361, "d": [107,796], "a": 1 }, + { "px": [448,384], "src": [272,240], "f": 1, "t": 362, "d": [107,796], "a": 1 }, + { "px": [48,400], "src": [256,240], "f": 0, "t": 361, "d": [107,804], "a": 1 }, + { "px": [64,400], "src": [272,240], "f": 0, "t": 362, "d": [107,804], "a": 1 }, + { "px": [48,416], "src": [256,240], "f": 0, "t": 361, "d": [107,836], "a": 1 }, + { "px": [64,416], "src": [272,240], "f": 0, "t": 362, "d": [107,836], "a": 1 }, + { "px": [368,128], "src": [256,240], "f": 0, "t": 361, "d": [105,280], "a": 1 }, + { "px": [384,128], "src": [272,240], "f": 0, "t": 362, "d": [105,280], "a": 1 }, + { "px": [400,128], "src": [288,240], "f": 0, "t": 363, "d": [105,280], "a": 1 }, + { "px": [320,192], "src": [256,240], "f": 0, "t": 361, "d": [105,405], "a": 1 }, + { "px": [336,192], "src": [272,240], "f": 0, "t": 362, "d": [105,405], "a": 1 }, + { "px": [352,192], "src": [288,240], "f": 0, "t": 363, "d": [105,405], "a": 1 }, + { "px": [368,192], "src": [256,240], "f": 0, "t": 361, "d": [105,408], "a": 1 }, + { "px": [384,192], "src": [272,240], "f": 0, "t": 362, "d": [105,408], "a": 1 }, + { "px": [400,192], "src": [288,240], "f": 0, "t": 363, "d": [105,408], "a": 1 }, + { "px": [112,224], "src": [256,240], "f": 0, "t": 361, "d": [105,456], "a": 1 }, + { "px": [128,224], "src": [272,240], "f": 0, "t": 362, "d": [105,456], "a": 1 }, + { "px": [144,224], "src": [288,240], "f": 0, "t": 363, "d": [105,456], "a": 1 }, + { "px": [256,224], "src": [256,240], "f": 0, "t": 361, "d": [105,465], "a": 1 }, + { "px": [272,224], "src": [272,240], "f": 0, "t": 362, "d": [105,465], "a": 1 }, + { "px": [288,224], "src": [288,240], "f": 0, "t": 363, "d": [105,465], "a": 1 }, + { "px": [304,224], "src": [256,240], "f": 0, "t": 361, "d": [105,468], "a": 1 }, + { "px": [320,224], "src": [272,240], "f": 0, "t": 362, "d": [105,468], "a": 1 }, + { "px": [336,224], "src": [288,240], "f": 0, "t": 363, "d": [105,468], "a": 1 }, + { "px": [80,256], "src": [256,240], "f": 0, "t": 361, "d": [105,518], "a": 1 }, + { "px": [96,256], "src": [272,240], "f": 0, "t": 362, "d": [105,518], "a": 1 }, + { "px": [112,256], "src": [288,240], "f": 0, "t": 363, "d": [105,518], "a": 1 }, + { "px": [464,384], "src": [256,240], "f": 0, "t": 361, "d": [105,798], "a": 1 }, + { "px": [480,384], "src": [272,240], "f": 0, "t": 362, "d": [105,798], "a": 1 }, + { "px": [496,384], "src": [288,240], "f": 0, "t": 363, "d": [105,798], "a": 1 }, + { "px": [64,128], "src": [144,240], "f": 2, "t": 354, "d": [112,197], "a": 1 }, + { "px": [64,112], "src": [144,256], "f": 2, "t": 377, "d": [112,197], "a": 1 }, + { "px": [64,96], "src": [144,272], "f": 2, "t": 400, "d": [112,197], "a": 1 }, + { "px": [80,128], "src": [160,240], "f": 2, "t": 355, "d": [112,197], "a": 1 }, + { "px": [80,112], "src": [160,256], "f": 2, "t": 378, "d": [112,197], "a": 1 }, + { "px": [80,96], "src": [160,272], "f": 2, "t": 401, "d": [112,197], "a": 1 }, + { "px": [96,128], "src": [176,240], "f": 2, "t": 356, "d": [112,197], "a": 1 }, + { "px": [96,112], "src": [176,256], "f": 2, "t": 379, "d": [112,197], "a": 1 }, + { "px": [96,96], "src": [176,272], "f": 2, "t": 402, "d": [112,197], "a": 1 }, + { "px": [464,144], "src": [144,240], "f": 2, "t": 354, "d": [112,254], "a": 1 }, + { "px": [464,128], "src": [144,256], "f": 2, "t": 377, "d": [112,254], "a": 1 }, + { "px": [464,112], "src": [144,272], "f": 2, "t": 400, "d": [112,254], "a": 1 }, + { "px": [480,144], "src": [160,240], "f": 2, "t": 355, "d": [112,254], "a": 1 }, + { "px": [480,128], "src": [160,256], "f": 2, "t": 378, "d": [112,254], "a": 1 }, + { "px": [480,112], "src": [160,272], "f": 2, "t": 401, "d": [112,254], "a": 1 }, + { "px": [496,144], "src": [176,240], "f": 2, "t": 356, "d": [112,254], "a": 1 }, + { "px": [496,128], "src": [176,256], "f": 2, "t": 379, "d": [112,254], "a": 1 }, + { "px": [496,112], "src": [176,272], "f": 2, "t": 402, "d": [112,254], "a": 1 }, + { "px": [464,128], "src": [144,240], "f": 0, "t": 354, "d": [112,350], "a": 1 }, + { "px": [464,144], "src": [144,256], "f": 0, "t": 377, "d": [112,350], "a": 1 }, + { "px": [464,160], "src": [144,272], "f": 0, "t": 400, "d": [112,350], "a": 1 }, + { "px": [480,128], "src": [160,240], "f": 0, "t": 355, "d": [112,350], "a": 1 }, + { "px": [480,144], "src": [160,256], "f": 0, "t": 378, "d": [112,350], "a": 1 }, + { "px": [480,160], "src": [160,272], "f": 0, "t": 401, "d": [112,350], "a": 1 }, + { "px": [496,128], "src": [176,240], "f": 0, "t": 356, "d": [112,350], "a": 1 }, + { "px": [496,144], "src": [176,256], "f": 0, "t": 379, "d": [112,350], "a": 1 }, + { "px": [496,160], "src": [176,272], "f": 0, "t": 402, "d": [112,350], "a": 1 }, + { "px": [144,240], "src": [144,240], "f": 2, "t": 354, "d": [112,426], "a": 1 }, + { "px": [144,224], "src": [144,256], "f": 2, "t": 377, "d": [112,426], "a": 1 }, + { "px": [144,208], "src": [144,272], "f": 2, "t": 400, "d": [112,426], "a": 1 }, + { "px": [160,240], "src": [160,240], "f": 2, "t": 355, "d": [112,426], "a": 1 }, + { "px": [160,224], "src": [160,256], "f": 2, "t": 378, "d": [112,426], "a": 1 }, + { "px": [160,208], "src": [160,272], "f": 2, "t": 401, "d": [112,426], "a": 1 }, + { "px": [176,240], "src": [176,240], "f": 2, "t": 356, "d": [112,426], "a": 1 }, + { "px": [176,224], "src": [176,256], "f": 2, "t": 379, "d": [112,426], "a": 1 }, + { "px": [176,208], "src": [176,272], "f": 2, "t": 402, "d": [112,426], "a": 1 }, + { "px": [224,240], "src": [144,240], "f": 2, "t": 354, "d": [112,431], "a": 1 }, + { "px": [224,224], "src": [144,256], "f": 2, "t": 377, "d": [112,431], "a": 1 }, + { "px": [224,208], "src": [144,272], "f": 2, "t": 400, "d": [112,431], "a": 1 }, + { "px": [240,240], "src": [160,240], "f": 2, "t": 355, "d": [112,431], "a": 1 }, + { "px": [240,224], "src": [160,256], "f": 2, "t": 378, "d": [112,431], "a": 1 }, + { "px": [240,208], "src": [160,272], "f": 2, "t": 401, "d": [112,431], "a": 1 }, + { "px": [256,240], "src": [176,240], "f": 2, "t": 356, "d": [112,431], "a": 1 }, + { "px": [256,224], "src": [176,256], "f": 2, "t": 379, "d": [112,431], "a": 1 }, + { "px": [256,208], "src": [176,272], "f": 2, "t": 402, "d": [112,431], "a": 1 }, + { "px": [224,208], "src": [144,240], "f": 0, "t": 354, "d": [112,495], "a": 1 }, + { "px": [224,224], "src": [144,256], "f": 0, "t": 377, "d": [112,495], "a": 1 }, + { "px": [224,240], "src": [144,272], "f": 0, "t": 400, "d": [112,495], "a": 1 }, + { "px": [240,208], "src": [160,240], "f": 0, "t": 355, "d": [112,495], "a": 1 }, + { "px": [240,224], "src": [160,256], "f": 0, "t": 378, "d": [112,495], "a": 1 }, + { "px": [240,240], "src": [160,272], "f": 0, "t": 401, "d": [112,495], "a": 1 }, + { "px": [256,208], "src": [176,240], "f": 0, "t": 356, "d": [112,495], "a": 1 }, + { "px": [256,224], "src": [176,256], "f": 0, "t": 379, "d": [112,495], "a": 1 }, + { "px": [256,240], "src": [176,272], "f": 0, "t": 402, "d": [112,495], "a": 1 }, + { "px": [240,112], "src": [192,304], "f": 3, "t": 449, "d": [113,207], "a": 1 }, + { "px": [240,96], "src": [192,320], "f": 3, "t": 472, "d": [113,207], "a": 1 }, + { "px": [224,112], "src": [208,304], "f": 3, "t": 450, "d": [113,207], "a": 1 }, + { "px": [224,96], "src": [208,320], "f": 3, "t": 473, "d": [113,207], "a": 1 }, + { "px": [208,112], "src": [224,304], "f": 3, "t": 451, "d": [113,207], "a": 1 }, + { "px": [208,96], "src": [224,320], "f": 3, "t": 474, "d": [113,207], "a": 1 }, + { "px": [464,208], "src": [192,304], "f": 3, "t": 449, "d": [113,413], "a": 1 }, + { "px": [464,192], "src": [192,320], "f": 3, "t": 472, "d": [113,413], "a": 1 }, + { "px": [448,208], "src": [208,304], "f": 3, "t": 450, "d": [113,413], "a": 1 }, + { "px": [448,192], "src": [208,320], "f": 3, "t": 473, "d": [113,413], "a": 1 }, + { "px": [432,208], "src": [224,304], "f": 3, "t": 451, "d": [113,413], "a": 1 }, + { "px": [432,192], "src": [224,320], "f": 3, "t": 474, "d": [113,413], "a": 1 }, + { "px": [400,336], "src": [192,304], "f": 3, "t": 449, "d": [113,665], "a": 1 }, + { "px": [400,320], "src": [192,320], "f": 3, "t": 472, "d": [113,665], "a": 1 }, + { "px": [384,336], "src": [208,304], "f": 3, "t": 450, "d": [113,665], "a": 1 }, + { "px": [384,320], "src": [208,320], "f": 3, "t": 473, "d": [113,665], "a": 1 }, + { "px": [368,336], "src": [224,304], "f": 3, "t": 451, "d": [113,665], "a": 1 }, + { "px": [368,320], "src": [224,320], "f": 3, "t": 474, "d": [113,665], "a": 1 }, + { "px": [448,384], "src": [192,304], "f": 0, "t": 449, "d": [113,828], "a": 1 }, + { "px": [448,400], "src": [192,320], "f": 0, "t": 472, "d": [113,828], "a": 1 }, + { "px": [464,384], "src": [208,304], "f": 0, "t": 450, "d": [113,828], "a": 1 }, + { "px": [464,400], "src": [208,320], "f": 0, "t": 473, "d": [113,828], "a": 1 }, + { "px": [480,384], "src": [224,304], "f": 0, "t": 451, "d": [113,828], "a": 1 }, + { "px": [480,400], "src": [224,320], "f": 0, "t": 474, "d": [113,828], "a": 1 }, + { "px": [64,416], "src": [192,304], "f": 1, "t": 449, "d": [113,868], "a": 1 }, + { "px": [64,432], "src": [192,320], "f": 1, "t": 472, "d": [113,868], "a": 1 }, + { "px": [48,416], "src": [208,304], "f": 1, "t": 450, "d": [113,868], "a": 1 }, + { "px": [48,432], "src": [208,320], "f": 1, "t": 473, "d": [113,868], "a": 1 }, + { "px": [32,416], "src": [224,304], "f": 1, "t": 451, "d": [113,868], "a": 1 }, + { "px": [32,432], "src": [224,320], "f": 1, "t": 474, "d": [113,868], "a": 1 }, + { "px": [96,96], "src": [128,224], "f": 0, "t": 330, "d": [114,198], "a": 1 }, + { "px": [128,96], "src": [96,208], "f": 0, "t": 305, "d": [114,200], "a": 1 }, + { "px": [160,96], "src": [128,224], "f": 0, "t": 330, "d": [114,202], "a": 1 }, + { "px": [192,96], "src": [128,224], "f": 0, "t": 330, "d": [114,204], "a": 1 }, + { "px": [224,96], "src": [128,224], "f": 0, "t": 330, "d": [114,206], "a": 1 }, + { "px": [320,112], "src": [96,208], "f": 0, "t": 305, "d": [114,244], "a": 1 }, + { "px": [352,112], "src": [128,224], "f": 0, "t": 330, "d": [114,246], "a": 1 }, + { "px": [384,112], "src": [128,224], "f": 0, "t": 330, "d": [114,248], "a": 1 }, + { "px": [416,112], "src": [96,208], "f": 0, "t": 305, "d": [114,250], "a": 1 }, + { "px": [448,192], "src": [128,224], "f": 0, "t": 330, "d": [114,412], "a": 1 }, + { "px": [64,208], "src": [96,208], "f": 0, "t": 305, "d": [114,420], "a": 1 }, + { "px": [128,208], "src": [96,208], "f": 0, "t": 305, "d": [114,424], "a": 1 }, + { "px": [288,320], "src": [128,224], "f": 0, "t": 330, "d": [114,658], "a": 1 }, + { "px": [32,400], "src": [128,224], "f": 0, "t": 330, "d": [114,802], "a": 1 }, + { "px": [448,112], "src": [128,208], "f": 0, "t": 307, "d": [115,252], "a": 1 }, + { "px": [448,128], "src": [128,224], "f": 0, "t": 330, "d": [115,252], "a": 1 }, + { "px": [352,320], "src": [128,208], "f": 0, "t": 307, "d": [115,662], "a": 1 }, + { "px": [352,336], "src": [128,224], "f": 0, "t": 330, "d": [115,662], "a": 1 } + ], + "seed": 8883950, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a367c3b0-66b0-11ec-9cd7-91690c910c97", "dir": "e" }, { "levelIid": "a36811d0-66b0-11ec-9cd7-4367627fb745", "dir": "e" }, { "levelIid": "a368fc30-66b0-11ec-9cd7-d141af83d44b", "dir": "w" } ] + }, + { + "identifier": "Sewers2", + "iid": "a36b6d30-66b0-11ec-9cd7-8145d2a69a56", + "uid": 59, + "worldX": 256, + "worldY": 1024, + "worldDepth": 0, + "pxWid": 512, + "pxHei": 512, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a36b6d35-66b0-11ec-9cd7-430b1023ae6b", + "levelId": 59, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 1070610, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Item", + "__grid": [21,19], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 112, "y": 544, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a36b6d36-66b0-11ec-9cd7-69fba161c5fc", + "width": 24, + "height": 24, + "defUid": 72, + "px": [344,320], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Ammo", "__tile": { "tilesetUid": 133, "x": 112, "y": 544, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Ammo"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 10, "__tile": null, "defUid": 139, "realEditorValues": [{ "id": "V_Int", "params": [10] }] } + ] + }, + { + "__identifier": "Teleport", + "__grid": [29,15], + "__pivot": [0.5,1], + "__tags": ["actor"], + "__tile": { "tilesetUid": 133, "x": 224, "y": 176, "w": 16, "h": 16 }, + "__smartColor": "#EC50FF", + "iid": "1a247570-66b0-11ec-b893-3368fa8363b5", + "width": 24, + "height": 24, + "defUid": 130, + "px": [472,256], + "fieldInstances": [{ "__identifier": "destination", "__type": "EntityRef", "__value": { + "entityIid": "abd6a7b0-66b0-11ec-a595-ffcc1299ef8f", + "layerIid": "9312a0d1-66b0-11ec-a595-23396da8cf9f", + "levelIid": "9312a0d0-66b0-11ec-a595-a934707bd447", + "worldIid": "ca3d7420-c640-11ed-ad34-5f1a115c4cf3" + }, "__tile": null, "defUid": 131, "realEditorValues": [{ + "id": "V_String", + "params": ["abd6a7b0-66b0-11ec-a595-ffcc1299ef8f"] + }] }] + }, + { + "__identifier": "Ladder", + "__grid": [27,16], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "8cee7d00-66b0-11ec-9ccd-e9d0ce504542", + "width": 16, + "height": 64, + "defUid": 134, + "px": [432,256], + "fieldInstances": [] + }, + { + "__identifier": "Ladder", + "__grid": [9,12], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "dda183f0-66b0-11ec-9ccd-6dd03959680e", + "width": 16, + "height": 224, + "defUid": 134, + "px": [144,192], + "fieldInstances": [] + }, + { + "__identifier": "Ladder", + "__grid": [5,26], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "deec0550-66b0-11ec-9ccd-b937773f1451", + "width": 16, + "height": 96, + "defUid": 134, + "px": [80,416], + "fieldInstances": [] + }, + { + "__identifier": "Ladder", + "__grid": [28,0], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "0838d5f0-66b0-11ec-9ccd-e5960751723f", + "width": 16, + "height": 64, + "defUid": 134, + "px": [448,0], + "fieldInstances": [] + }, + { + "__identifier": "Ladder", + "__grid": [26,4], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "130bade0-66b0-11ec-9ccd-43c233a37d30", + "width": 16, + "height": 112, + "defUid": 134, + "px": [416,64], + "fieldInstances": [] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36b6d37-66b0-11ec-9cd7-79a82019cc1c", + "levelId": 59, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [416,16], "src": [320,128], "f": 0, "t": 204, "d": [26,58], "a": 1 }, + { "px": [448,16], "src": [320,128], "f": 1, "t": 204, "d": [26,60], "a": 1 }, + { "px": [416,32], "src": [320,128], "f": 0, "t": 204, "d": [26,90], "a": 1 }, + { "px": [448,32], "src": [320,128], "f": 1, "t": 204, "d": [26,92], "a": 1 }, + { "px": [416,48], "src": [320,128], "f": 0, "t": 204, "d": [26,122], "a": 1 }, + { "px": [448,48], "src": [320,128], "f": 1, "t": 204, "d": [26,124], "a": 1 }, + { "px": [448,80], "src": [320,128], "f": 1, "t": 204, "d": [26,188], "a": 1 }, + { "px": [416,96], "src": [320,128], "f": 0, "t": 204, "d": [26,218], "a": 1 }, + { "px": [448,96], "src": [320,128], "f": 1, "t": 204, "d": [26,220], "a": 1 }, + { "px": [416,112], "src": [320,128], "f": 0, "t": 204, "d": [26,250], "a": 1 }, + { "px": [448,112], "src": [320,128], "f": 1, "t": 204, "d": [26,252], "a": 1 }, + { "px": [320,128], "src": [320,128], "f": 0, "t": 204, "d": [26,276], "a": 1 }, + { "px": [448,128], "src": [320,128], "f": 1, "t": 204, "d": [26,284], "a": 1 }, + { "px": [320,144], "src": [320,128], "f": 0, "t": 204, "d": [26,308], "a": 1 }, + { "px": [448,144], "src": [320,128], "f": 1, "t": 204, "d": [26,316], "a": 1 }, + { "px": [128,160], "src": [320,128], "f": 0, "t": 204, "d": [26,328], "a": 1 }, + { "px": [272,160], "src": [320,128], "f": 1, "t": 204, "d": [26,337], "a": 1 }, + { "px": [320,160], "src": [320,128], "f": 0, "t": 204, "d": [26,340], "a": 1 }, + { "px": [448,160], "src": [320,128], "f": 1, "t": 204, "d": [26,348], "a": 1 }, + { "px": [128,176], "src": [320,128], "f": 0, "t": 204, "d": [26,360], "a": 1 }, + { "px": [272,176], "src": [320,128], "f": 1, "t": 204, "d": [26,369], "a": 1 }, + { "px": [320,176], "src": [320,128], "f": 0, "t": 204, "d": [26,372], "a": 1 }, + { "px": [128,192], "src": [320,128], "f": 0, "t": 204, "d": [26,392], "a": 1 }, + { "px": [272,192], "src": [320,128], "f": 1, "t": 204, "d": [26,401], "a": 1 }, + { "px": [320,192], "src": [320,128], "f": 0, "t": 204, "d": [26,404], "a": 1 }, + { "px": [352,192], "src": [320,128], "f": 1, "t": 204, "d": [26,406], "a": 1 }, + { "px": [128,208], "src": [320,128], "f": 0, "t": 204, "d": [26,424], "a": 1 }, + { "px": [144,208], "src": [320,128], "f": 1, "t": 204, "d": [26,425], "a": 1 }, + { "px": [256,208], "src": [320,128], "f": 0, "t": 204, "d": [26,432], "a": 1 }, + { "px": [272,208], "src": [320,128], "f": 1, "t": 204, "d": [26,433], "a": 1 }, + { "px": [320,208], "src": [320,128], "f": 0, "t": 204, "d": [26,436], "a": 1 }, + { "px": [480,208], "src": [320,128], "f": 1, "t": 204, "d": [26,446], "a": 1 }, + { "px": [128,224], "src": [320,128], "f": 0, "t": 204, "d": [26,456], "a": 1 }, + { "px": [144,224], "src": [320,128], "f": 1, "t": 204, "d": [26,457], "a": 1 }, + { "px": [256,224], "src": [320,128], "f": 0, "t": 204, "d": [26,464], "a": 1 }, + { "px": [272,224], "src": [320,128], "f": 1, "t": 204, "d": [26,465], "a": 1 }, + { "px": [320,224], "src": [320,128], "f": 0, "t": 204, "d": [26,468], "a": 1 }, + { "px": [480,224], "src": [320,128], "f": 1, "t": 204, "d": [26,478], "a": 1 }, + { "px": [128,240], "src": [320,128], "f": 0, "t": 204, "d": [26,488], "a": 1 }, + { "px": [144,240], "src": [320,128], "f": 1, "t": 204, "d": [26,489], "a": 1 }, + { "px": [256,240], "src": [320,128], "f": 0, "t": 204, "d": [26,496], "a": 1 }, + { "px": [272,240], "src": [320,128], "f": 1, "t": 204, "d": [26,497], "a": 1 }, + { "px": [320,240], "src": [320,128], "f": 0, "t": 204, "d": [26,500], "a": 1 }, + { "px": [480,240], "src": [320,128], "f": 1, "t": 204, "d": [26,510], "a": 1 }, + { "px": [128,256], "src": [320,128], "f": 0, "t": 204, "d": [26,520], "a": 1 }, + { "px": [144,256], "src": [320,128], "f": 1, "t": 204, "d": [26,521], "a": 1 }, + { "px": [256,256], "src": [320,128], "f": 0, "t": 204, "d": [26,528], "a": 1 }, + { "px": [272,256], "src": [320,128], "f": 1, "t": 204, "d": [26,529], "a": 1 }, + { "px": [320,256], "src": [320,128], "f": 0, "t": 204, "d": [26,532], "a": 1 }, + { "px": [128,272], "src": [320,128], "f": 0, "t": 204, "d": [26,552], "a": 1 }, + { "px": [144,272], "src": [320,128], "f": 1, "t": 204, "d": [26,553], "a": 1 }, + { "px": [256,272], "src": [320,128], "f": 0, "t": 204, "d": [26,560], "a": 1 }, + { "px": [272,272], "src": [320,128], "f": 1, "t": 204, "d": [26,561], "a": 1 }, + { "px": [320,272], "src": [320,128], "f": 0, "t": 204, "d": [26,564], "a": 1 }, + { "px": [432,272], "src": [320,128], "f": 1, "t": 204, "d": [26,571], "a": 1 }, + { "px": [128,288], "src": [320,128], "f": 0, "t": 204, "d": [26,584], "a": 1 }, + { "px": [144,288], "src": [320,128], "f": 1, "t": 204, "d": [26,585], "a": 1 }, + { "px": [256,288], "src": [320,128], "f": 0, "t": 204, "d": [26,592], "a": 1 }, + { "px": [432,288], "src": [320,128], "f": 1, "t": 204, "d": [26,603], "a": 1 }, + { "px": [128,304], "src": [320,128], "f": 0, "t": 204, "d": [26,616], "a": 1 }, + { "px": [144,304], "src": [320,128], "f": 1, "t": 204, "d": [26,617], "a": 1 }, + { "px": [256,304], "src": [320,128], "f": 0, "t": 204, "d": [26,624], "a": 1 }, + { "px": [432,304], "src": [320,128], "f": 1, "t": 204, "d": [26,635], "a": 1 }, + { "px": [128,320], "src": [320,128], "f": 0, "t": 204, "d": [26,648], "a": 1 }, + { "px": [144,320], "src": [320,128], "f": 1, "t": 204, "d": [26,649], "a": 1 }, + { "px": [128,336], "src": [320,128], "f": 0, "t": 204, "d": [26,680], "a": 1 }, + { "px": [144,336], "src": [320,128], "f": 1, "t": 204, "d": [26,681], "a": 1 }, + { "px": [368,336], "src": [320,128], "f": 0, "t": 204, "d": [26,695], "a": 1 }, + { "px": [400,336], "src": [320,128], "f": 1, "t": 204, "d": [26,697], "a": 1 }, + { "px": [128,352], "src": [320,128], "f": 0, "t": 204, "d": [26,712], "a": 1 }, + { "px": [144,352], "src": [320,128], "f": 1, "t": 204, "d": [26,713], "a": 1 }, + { "px": [368,352], "src": [320,128], "f": 0, "t": 204, "d": [26,727], "a": 1 }, + { "px": [400,352], "src": [320,128], "f": 1, "t": 204, "d": [26,729], "a": 1 }, + { "px": [128,368], "src": [320,128], "f": 0, "t": 204, "d": [26,744], "a": 1 }, + { "px": [144,368], "src": [320,128], "f": 1, "t": 204, "d": [26,745], "a": 1 }, + { "px": [368,368], "src": [320,128], "f": 0, "t": 204, "d": [26,759], "a": 1 }, + { "px": [400,368], "src": [320,128], "f": 1, "t": 204, "d": [26,761], "a": 1 }, + { "px": [64,384], "src": [320,128], "f": 0, "t": 204, "d": [26,772], "a": 1 }, + { "px": [144,384], "src": [320,128], "f": 1, "t": 204, "d": [26,777], "a": 1 }, + { "px": [368,384], "src": [320,128], "f": 0, "t": 204, "d": [26,791], "a": 1 }, + { "px": [400,384], "src": [320,128], "f": 1, "t": 204, "d": [26,793], "a": 1 }, + { "px": [64,400], "src": [320,128], "f": 0, "t": 204, "d": [26,804], "a": 1 }, + { "px": [144,400], "src": [320,128], "f": 1, "t": 204, "d": [26,809], "a": 1 }, + { "px": [368,400], "src": [320,128], "f": 0, "t": 204, "d": [26,823], "a": 1 }, + { "px": [400,400], "src": [320,128], "f": 1, "t": 204, "d": [26,825], "a": 1 }, + { "px": [64,416], "src": [320,128], "f": 0, "t": 204, "d": [26,836], "a": 1 }, + { "px": [368,416], "src": [320,128], "f": 0, "t": 204, "d": [26,855], "a": 1 }, + { "px": [400,416], "src": [320,128], "f": 1, "t": 204, "d": [26,857], "a": 1 }, + { "px": [64,432], "src": [320,128], "f": 0, "t": 204, "d": [26,868], "a": 1 }, + { "px": [80,432], "src": [320,128], "f": 1, "t": 204, "d": [26,869], "a": 1 }, + { "px": [368,432], "src": [320,128], "f": 0, "t": 204, "d": [26,887], "a": 1 }, + { "px": [400,432], "src": [320,128], "f": 1, "t": 204, "d": [26,889], "a": 1 }, + { "px": [64,448], "src": [320,128], "f": 0, "t": 204, "d": [26,900], "a": 1 }, + { "px": [80,448], "src": [320,128], "f": 1, "t": 204, "d": [26,901], "a": 1 }, + { "px": [368,448], "src": [320,128], "f": 0, "t": 204, "d": [26,919], "a": 1 }, + { "px": [400,448], "src": [320,128], "f": 1, "t": 204, "d": [26,921], "a": 1 }, + { "px": [64,464], "src": [320,128], "f": 0, "t": 204, "d": [26,932], "a": 1 }, + { "px": [80,464], "src": [320,128], "f": 1, "t": 204, "d": [26,933], "a": 1 }, + { "px": [368,464], "src": [320,128], "f": 0, "t": 204, "d": [26,951], "a": 1 }, + { "px": [400,464], "src": [320,128], "f": 1, "t": 204, "d": [26,953], "a": 1 }, + { "px": [64,480], "src": [320,128], "f": 0, "t": 204, "d": [26,964], "a": 1 }, + { "px": [80,480], "src": [320,128], "f": 1, "t": 204, "d": [26,965], "a": 1 }, + { "px": [368,480], "src": [320,128], "f": 0, "t": 204, "d": [26,983], "a": 1 }, + { "px": [400,480], "src": [320,128], "f": 1, "t": 204, "d": [26,985], "a": 1 }, + { "px": [64,496], "src": [320,128], "f": 0, "t": 204, "d": [26,996], "a": 1 }, + { "px": [80,496], "src": [320,128], "f": 1, "t": 204, "d": [26,997], "a": 1 }, + { "px": [368,496], "src": [320,128], "f": 0, "t": 204, "d": [26,1015], "a": 1 }, + { "px": [400,496], "src": [320,128], "f": 1, "t": 204, "d": [26,1017], "a": 1 }, + { "px": [416,64], "src": [320,96], "f": 1, "t": 158, "d": [138,154], "a": 1 }, + { "px": [352,176], "src": [320,96], "f": 1, "t": 158, "d": [138,374], "a": 1 }, + { "px": [144,192], "src": [320,96], "f": 1, "t": 158, "d": [138,393], "a": 1 }, + { "px": [256,192], "src": [320,96], "f": 0, "t": 158, "d": [138,400], "a": 1 }, + { "px": [432,256], "src": [320,96], "f": 1, "t": 158, "d": [138,539], "a": 1 }, + { "px": [368,320], "src": [320,96], "f": 0, "t": 158, "d": [138,663], "a": 1 }, + { "px": [400,320], "src": [320,96], "f": 1, "t": 158, "d": [138,665], "a": 1 }, + { "px": [80,416], "src": [320,96], "f": 1, "t": 158, "d": [138,837], "a": 1 }, + { "px": [432,80], "src": [336,112], "f": 0, "t": 182, "d": [27,187], "a": 1 }, + { "px": [448,80], "src": [336,112], "f": 0, "t": 182, "d": [27,188], "a": 1 }, + { "px": [320,128], "src": [336,112], "f": 0, "t": 182, "d": [27,276], "a": 1 }, + { "px": [336,128], "src": [336,112], "f": 0, "t": 182, "d": [27,277], "a": 1 }, + { "px": [352,128], "src": [336,112], "f": 0, "t": 182, "d": [27,278], "a": 1 }, + { "px": [368,128], "src": [336,112], "f": 0, "t": 182, "d": [27,279], "a": 1 }, + { "px": [384,128], "src": [336,112], "f": 0, "t": 182, "d": [27,280], "a": 1 }, + { "px": [400,128], "src": [336,112], "f": 0, "t": 182, "d": [27,281], "a": 1 }, + { "px": [128,160], "src": [336,112], "f": 0, "t": 182, "d": [27,328], "a": 1 }, + { "px": [144,160], "src": [336,112], "f": 0, "t": 182, "d": [27,329], "a": 1 }, + { "px": [160,160], "src": [336,112], "f": 0, "t": 182, "d": [27,330], "a": 1 }, + { "px": [176,160], "src": [336,112], "f": 0, "t": 182, "d": [27,331], "a": 1 }, + { "px": [192,160], "src": [336,112], "f": 0, "t": 182, "d": [27,332], "a": 1 }, + { "px": [208,160], "src": [336,112], "f": 0, "t": 182, "d": [27,333], "a": 1 }, + { "px": [224,160], "src": [336,112], "f": 0, "t": 182, "d": [27,334], "a": 1 }, + { "px": [240,160], "src": [336,112], "f": 0, "t": 182, "d": [27,335], "a": 1 }, + { "px": [256,160], "src": [336,112], "f": 0, "t": 182, "d": [27,336], "a": 1 }, + { "px": [272,160], "src": [336,112], "f": 0, "t": 182, "d": [27,337], "a": 1 }, + { "px": [368,208], "src": [336,112], "f": 0, "t": 182, "d": [27,439], "a": 1 }, + { "px": [384,208], "src": [336,112], "f": 0, "t": 182, "d": [27,440], "a": 1 }, + { "px": [400,208], "src": [336,112], "f": 0, "t": 182, "d": [27,441], "a": 1 }, + { "px": [416,208], "src": [336,112], "f": 0, "t": 182, "d": [27,442], "a": 1 }, + { "px": [432,208], "src": [336,112], "f": 0, "t": 182, "d": [27,443], "a": 1 }, + { "px": [448,208], "src": [336,112], "f": 0, "t": 182, "d": [27,444], "a": 1 }, + { "px": [464,208], "src": [336,112], "f": 0, "t": 182, "d": [27,445], "a": 1 }, + { "px": [480,208], "src": [336,112], "f": 0, "t": 182, "d": [27,446], "a": 1 }, + { "px": [288,288], "src": [336,112], "f": 0, "t": 182, "d": [27,594], "a": 1 }, + { "px": [304,288], "src": [336,112], "f": 0, "t": 182, "d": [27,595], "a": 1 }, + { "px": [64,384], "src": [336,112], "f": 0, "t": 182, "d": [27,772], "a": 1 }, + { "px": [80,384], "src": [336,112], "f": 0, "t": 182, "d": [27,773], "a": 1 }, + { "px": [96,384], "src": [336,112], "f": 0, "t": 182, "d": [27,774], "a": 1 }, + { "px": [112,384], "src": [336,112], "f": 0, "t": 182, "d": [27,775], "a": 1 }, + { "px": [416,80], "src": [320,112], "f": 1, "t": 181, "d": [137,186], "a": 1 }, + { "px": [416,128], "src": [320,112], "f": 0, "t": 181, "d": [137,282], "a": 1 }, + { "px": [352,208], "src": [320,112], "f": 1, "t": 181, "d": [137,438], "a": 1 }, + { "px": [272,288], "src": [320,112], "f": 1, "t": 181, "d": [137,593], "a": 1 }, + { "px": [320,288], "src": [320,112], "f": 0, "t": 181, "d": [137,596], "a": 1 }, + { "px": [128,384], "src": [320,112], "f": 0, "t": 181, "d": [137,776], "a": 1 } + ], + "seed": 5084082, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36b6d38-66b0-11ec-9cd7-078f43aaa6c8", + "levelId": 59, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, + 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0, + 0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1, + 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,0,0,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0, + 1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1, + 1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1, + 0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0, + 0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1, + 1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0, + 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 0,0,0,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [8,23], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [8,56], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [8,87], "a": 1 }, + { "px": [384,48], "src": [32,32], "f": 0, "t": 48, "d": [8,120], "a": 1 }, + { "px": [480,48], "src": [32,32], "f": 0, "t": 48, "d": [8,126], "a": 1 }, + { "px": [368,64], "src": [32,32], "f": 0, "t": 48, "d": [8,151], "a": 1 }, + { "px": [288,80], "src": [32,32], "f": 0, "t": 48, "d": [8,178], "a": 1 }, + { "px": [384,80], "src": [32,32], "f": 0, "t": 48, "d": [8,184], "a": 1 }, + { "px": [480,80], "src": [32,32], "f": 0, "t": 48, "d": [8,190], "a": 1 }, + { "px": [336,96], "src": [32,32], "f": 0, "t": 48, "d": [8,213], "a": 1 }, + { "px": [496,96], "src": [32,32], "f": 0, "t": 48, "d": [8,223], "a": 1 }, + { "px": [160,112], "src": [32,32], "f": 0, "t": 48, "d": [8,234], "a": 1 }, + { "px": [192,112], "src": [32,32], "f": 0, "t": 48, "d": [8,236], "a": 1 }, + { "px": [224,112], "src": [32,32], "f": 0, "t": 48, "d": [8,238], "a": 1 }, + { "px": [144,128], "src": [32,32], "f": 0, "t": 48, "d": [8,265], "a": 1 }, + { "px": [176,128], "src": [32,32], "f": 0, "t": 48, "d": [8,267], "a": 1 }, + { "px": [208,128], "src": [32,32], "f": 0, "t": 48, "d": [8,269], "a": 1 }, + { "px": [240,128], "src": [32,32], "f": 0, "t": 48, "d": [8,271], "a": 1 }, + { "px": [496,128], "src": [32,32], "f": 0, "t": 48, "d": [8,287], "a": 1 }, + { "px": [480,144], "src": [32,32], "f": 0, "t": 48, "d": [8,318], "a": 1 }, + { "px": [80,160], "src": [32,32], "f": 0, "t": 48, "d": [8,325], "a": 1 }, + { "px": [96,176], "src": [32,32], "f": 0, "t": 48, "d": [8,358], "a": 1 }, + { "px": [80,192], "src": [32,32], "f": 0, "t": 48, "d": [8,389], "a": 1 }, + { "px": [96,208], "src": [32,32], "f": 0, "t": 48, "d": [8,422], "a": 1 }, + { "px": [192,208], "src": [32,32], "f": 0, "t": 48, "d": [8,428], "a": 1 }, + { "px": [80,224], "src": [32,32], "f": 0, "t": 48, "d": [8,453], "a": 1 }, + { "px": [176,224], "src": [32,32], "f": 0, "t": 48, "d": [8,459], "a": 1 }, + { "px": [224,240], "src": [32,32], "f": 0, "t": 48, "d": [8,494], "a": 1 }, + { "px": [80,256], "src": [32,32], "f": 0, "t": 48, "d": [8,517], "a": 1 }, + { "px": [208,256], "src": [32,32], "f": 0, "t": 48, "d": [8,525], "a": 1 }, + { "px": [192,272], "src": [32,32], "f": 0, "t": 48, "d": [8,556], "a": 1 }, + { "px": [224,272], "src": [32,32], "f": 0, "t": 48, "d": [8,558], "a": 1 }, + { "px": [496,288], "src": [32,32], "f": 0, "t": 48, "d": [8,607], "a": 1 }, + { "px": [192,304], "src": [32,32], "f": 0, "t": 48, "d": [8,620], "a": 1 }, + { "px": [224,304], "src": [32,32], "f": 0, "t": 48, "d": [8,622], "a": 1 }, + { "px": [480,304], "src": [32,32], "f": 0, "t": 48, "d": [8,638], "a": 1 }, + { "px": [176,320], "src": [32,32], "f": 0, "t": 48, "d": [8,651], "a": 1 }, + { "px": [208,320], "src": [32,32], "f": 0, "t": 48, "d": [8,653], "a": 1 }, + { "px": [464,320], "src": [32,32], "f": 0, "t": 48, "d": [8,669], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [8,674], "a": 1 }, + { "px": [64,336], "src": [32,32], "f": 0, "t": 48, "d": [8,676], "a": 1 }, + { "px": [192,336], "src": [32,32], "f": 0, "t": 48, "d": [8,684], "a": 1 }, + { "px": [256,336], "src": [32,32], "f": 0, "t": 48, "d": [8,688], "a": 1 }, + { "px": [320,336], "src": [32,32], "f": 0, "t": 48, "d": [8,692], "a": 1 }, + { "px": [448,336], "src": [32,32], "f": 0, "t": 48, "d": [8,700], "a": 1 }, + { "px": [480,336], "src": [32,32], "f": 0, "t": 48, "d": [8,702], "a": 1 }, + { "px": [48,352], "src": [32,32], "f": 0, "t": 48, "d": [8,707], "a": 1 }, + { "px": [80,352], "src": [32,32], "f": 0, "t": 48, "d": [8,709], "a": 1 }, + { "px": [176,352], "src": [32,32], "f": 0, "t": 48, "d": [8,715], "a": 1 }, + { "px": [208,352], "src": [32,32], "f": 0, "t": 48, "d": [8,717], "a": 1 }, + { "px": [336,352], "src": [32,32], "f": 0, "t": 48, "d": [8,725], "a": 1 }, + { "px": [464,352], "src": [32,32], "f": 0, "t": 48, "d": [8,733], "a": 1 }, + { "px": [32,368], "src": [32,32], "f": 0, "t": 48, "d": [8,738], "a": 1 }, + { "px": [320,368], "src": [32,32], "f": 0, "t": 48, "d": [8,756], "a": 1 }, + { "px": [448,368], "src": [32,32], "f": 0, "t": 48, "d": [8,764], "a": 1 }, + { "px": [16,384], "src": [32,32], "f": 0, "t": 48, "d": [8,769], "a": 1 }, + { "px": [176,384], "src": [32,32], "f": 0, "t": 48, "d": [8,779], "a": 1 }, + { "px": [336,384], "src": [32,32], "f": 0, "t": 48, "d": [8,789], "a": 1 }, + { "px": [192,400], "src": [32,32], "f": 0, "t": 48, "d": [8,812], "a": 1 }, + { "px": [320,400], "src": [32,32], "f": 0, "t": 48, "d": [8,820], "a": 1 }, + { "px": [176,416], "src": [32,32], "f": 0, "t": 48, "d": [8,843], "a": 1 }, + { "px": [336,416], "src": [32,32], "f": 0, "t": 48, "d": [8,853], "a": 1 }, + { "px": [128,432], "src": [32,32], "f": 0, "t": 48, "d": [8,872], "a": 1 }, + { "px": [160,432], "src": [32,32], "f": 0, "t": 48, "d": [8,874], "a": 1 }, + { "px": [192,432], "src": [32,32], "f": 0, "t": 48, "d": [8,876], "a": 1 }, + { "px": [320,432], "src": [32,32], "f": 0, "t": 48, "d": [8,884], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [8,897], "a": 1 }, + { "px": [176,448], "src": [32,32], "f": 0, "t": 48, "d": [8,907], "a": 1 }, + { "px": [336,448], "src": [32,32], "f": 0, "t": 48, "d": [8,917], "a": 1 }, + { "px": [432,448], "src": [32,32], "f": 0, "t": 48, "d": [8,923], "a": 1 }, + { "px": [128,464], "src": [32,32], "f": 0, "t": 48, "d": [8,936], "a": 1 }, + { "px": [320,464], "src": [32,32], "f": 0, "t": 48, "d": [8,948], "a": 1 }, + { "px": [448,464], "src": [32,32], "f": 0, "t": 48, "d": [8,956], "a": 1 }, + { "px": [112,480], "src": [32,32], "f": 0, "t": 48, "d": [8,967], "a": 1 }, + { "px": [432,480], "src": [32,32], "f": 0, "t": 48, "d": [8,987], "a": 1 }, + { "px": [128,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1000], "a": 1 }, + { "px": [320,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1012], "a": 1 }, + { "px": [448,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1020], "a": 1 }, + { "px": [496,0], "src": [96,96], "f": 0, "t": 144, "d": [83,31], "a": 1 }, + { "px": [480,16], "src": [64,96], "f": 0, "t": 142, "d": [83,62], "a": 1 }, + { "px": [496,32], "src": [64,96], "f": 0, "t": 142, "d": [83,95], "a": 1 }, + { "px": [496,64], "src": [96,96], "f": 0, "t": 144, "d": [83,159], "a": 1 }, + { "px": [320,80], "src": [64,96], "f": 0, "t": 142, "d": [83,180], "a": 1 }, + { "px": [352,80], "src": [96,96], "f": 0, "t": 144, "d": [83,182], "a": 1 }, + { "px": [272,96], "src": [96,96], "f": 0, "t": 144, "d": [83,209], "a": 1 }, + { "px": [304,96], "src": [64,96], "f": 0, "t": 142, "d": [83,211], "a": 1 }, + { "px": [368,96], "src": [96,96], "f": 0, "t": 144, "d": [83,215], "a": 1 }, + { "px": [96,112], "src": [96,96], "f": 0, "t": 144, "d": [83,230], "a": 1 }, + { "px": [128,112], "src": [96,96], "f": 0, "t": 144, "d": [83,232], "a": 1 }, + { "px": [256,112], "src": [96,96], "f": 0, "t": 144, "d": [83,240], "a": 1 }, + { "px": [288,112], "src": [96,96], "f": 0, "t": 144, "d": [83,242], "a": 1 }, + { "px": [480,112], "src": [96,96], "f": 0, "t": 144, "d": [83,254], "a": 1 }, + { "px": [80,128], "src": [64,96], "f": 0, "t": 142, "d": [83,261], "a": 1 }, + { "px": [112,128], "src": [96,96], "f": 0, "t": 144, "d": [83,263], "a": 1 }, + { "px": [272,128], "src": [64,96], "f": 0, "t": 142, "d": [83,273], "a": 1 }, + { "px": [96,144], "src": [64,96], "f": 0, "t": 142, "d": [83,294], "a": 1 }, + { "px": [496,160], "src": [64,96], "f": 0, "t": 142, "d": [83,351], "a": 1 }, + { "px": [480,176], "src": [64,96], "f": 0, "t": 142, "d": [83,382], "a": 1 }, + { "px": [224,208], "src": [64,96], "f": 0, "t": 142, "d": [83,430], "a": 1 }, + { "px": [208,224], "src": [64,96], "f": 0, "t": 142, "d": [83,461], "a": 1 }, + { "px": [96,240], "src": [96,96], "f": 0, "t": 144, "d": [83,486], "a": 1 }, + { "px": [192,240], "src": [96,96], "f": 0, "t": 144, "d": [83,492], "a": 1 }, + { "px": [176,256], "src": [96,96], "f": 0, "t": 144, "d": [83,523], "a": 1 }, + { "px": [96,272], "src": [96,96], "f": 0, "t": 144, "d": [83,550], "a": 1 }, + { "px": [480,272], "src": [64,96], "f": 0, "t": 142, "d": [83,574], "a": 1 }, + { "px": [80,288], "src": [96,96], "f": 0, "t": 144, "d": [83,581], "a": 1 }, + { "px": [176,288], "src": [64,96], "f": 0, "t": 142, "d": [83,587], "a": 1 }, + { "px": [208,288], "src": [64,96], "f": 0, "t": 142, "d": [83,589], "a": 1 }, + { "px": [464,288], "src": [96,96], "f": 0, "t": 144, "d": [83,605], "a": 1 }, + { "px": [96,304], "src": [96,96], "f": 0, "t": 144, "d": [83,614], "a": 1 }, + { "px": [80,320], "src": [64,96], "f": 0, "t": 142, "d": [83,645], "a": 1 }, + { "px": [96,336], "src": [96,96], "f": 0, "t": 144, "d": [83,678], "a": 1 }, + { "px": [224,336], "src": [96,96], "f": 0, "t": 144, "d": [83,686], "a": 1 }, + { "px": [288,336], "src": [96,96], "f": 0, "t": 144, "d": [83,690], "a": 1 }, + { "px": [16,352], "src": [64,96], "f": 0, "t": 142, "d": [83,705], "a": 1 }, + { "px": [240,352], "src": [96,96], "f": 0, "t": 144, "d": [83,719], "a": 1 }, + { "px": [272,352], "src": [96,96], "f": 0, "t": 144, "d": [83,721], "a": 1 }, + { "px": [304,352], "src": [64,96], "f": 0, "t": 142, "d": [83,723], "a": 1 }, + { "px": [432,352], "src": [96,96], "f": 0, "t": 144, "d": [83,731], "a": 1 }, + { "px": [192,368], "src": [64,96], "f": 0, "t": 142, "d": [83,748], "a": 1 }, + { "px": [432,384], "src": [96,96], "f": 0, "t": 144, "d": [83,795], "a": 1 }, + { "px": [32,400], "src": [96,96], "f": 0, "t": 144, "d": [83,802], "a": 1 }, + { "px": [448,400], "src": [96,96], "f": 0, "t": 144, "d": [83,828], "a": 1 }, + { "px": [16,416], "src": [64,96], "f": 0, "t": 142, "d": [83,833], "a": 1 }, + { "px": [432,416], "src": [96,96], "f": 0, "t": 144, "d": [83,859], "a": 1 }, + { "px": [32,432], "src": [96,96], "f": 0, "t": 144, "d": [83,866], "a": 1 }, + { "px": [448,432], "src": [96,96], "f": 0, "t": 144, "d": [83,892], "a": 1 }, + { "px": [112,448], "src": [96,96], "f": 0, "t": 144, "d": [83,903], "a": 1 }, + { "px": [144,448], "src": [64,96], "f": 0, "t": 142, "d": [83,905], "a": 1 }, + { "px": [32,464], "src": [96,96], "f": 0, "t": 144, "d": [83,930], "a": 1 }, + { "px": [16,480], "src": [96,96], "f": 0, "t": 144, "d": [83,961], "a": 1 }, + { "px": [336,480], "src": [96,96], "f": 0, "t": 144, "d": [83,981], "a": 1 }, + { "px": [32,496], "src": [64,96], "f": 0, "t": 142, "d": [83,994], "a": 1 }, + { "px": [384,0], "src": [224,96], "f": 0, "t": 152, "d": [101,24], "a": 1 }, + { "px": [480,0], "src": [224,96], "f": 0, "t": 152, "d": [101,30], "a": 1 }, + { "px": [368,16], "src": [192,16], "f": 0, "t": 35, "d": [101,55], "a": 1 }, + { "px": [496,16], "src": [224,96], "f": 0, "t": 152, "d": [101,63], "a": 1 }, + { "px": [384,32], "src": [224,96], "f": 0, "t": 152, "d": [101,88], "a": 1 }, + { "px": [480,32], "src": [96,0], "f": 0, "t": 6, "d": [101,94], "a": 1 }, + { "px": [368,48], "src": [224,96], "f": 0, "t": 152, "d": [101,119], "a": 1 }, + { "px": [496,48], "src": [224,96], "f": 0, "t": 152, "d": [101,127], "a": 1 }, + { "px": [384,64], "src": [224,96], "f": 0, "t": 152, "d": [101,152], "a": 1 }, + { "px": [480,64], "src": [224,96], "f": 0, "t": 152, "d": [101,158], "a": 1 }, + { "px": [272,80], "src": [96,0], "f": 0, "t": 6, "d": [101,177], "a": 1 }, + { "px": [304,80], "src": [224,96], "f": 0, "t": 152, "d": [101,179], "a": 1 }, + { "px": [336,80], "src": [192,16], "f": 0, "t": 35, "d": [101,181], "a": 1 }, + { "px": [368,80], "src": [224,96], "f": 0, "t": 152, "d": [101,183], "a": 1 }, + { "px": [496,80], "src": [192,16], "f": 0, "t": 35, "d": [101,191], "a": 1 }, + { "px": [288,96], "src": [96,0], "f": 0, "t": 6, "d": [101,210], "a": 1 }, + { "px": [320,96], "src": [96,0], "f": 0, "t": 6, "d": [101,212], "a": 1 }, + { "px": [352,96], "src": [224,96], "f": 0, "t": 152, "d": [101,214], "a": 1 }, + { "px": [384,96], "src": [96,0], "f": 0, "t": 6, "d": [101,216], "a": 1 }, + { "px": [480,96], "src": [96,0], "f": 0, "t": 6, "d": [101,222], "a": 1 }, + { "px": [80,112], "src": [224,96], "f": 0, "t": 152, "d": [101,229], "a": 1 }, + { "px": [112,112], "src": [96,0], "f": 0, "t": 6, "d": [101,231], "a": 1 }, + { "px": [144,112], "src": [192,16], "f": 0, "t": 35, "d": [101,233], "a": 1 }, + { "px": [176,112], "src": [224,96], "f": 0, "t": 152, "d": [101,235], "a": 1 }, + { "px": [208,112], "src": [192,16], "f": 0, "t": 35, "d": [101,237], "a": 1 }, + { "px": [240,112], "src": [224,96], "f": 0, "t": 152, "d": [101,239], "a": 1 }, + { "px": [272,112], "src": [96,0], "f": 0, "t": 6, "d": [101,241], "a": 1 }, + { "px": [496,112], "src": [224,96], "f": 0, "t": 152, "d": [101,255], "a": 1 }, + { "px": [96,128], "src": [96,0], "f": 0, "t": 6, "d": [101,262], "a": 1 }, + { "px": [128,128], "src": [192,16], "f": 0, "t": 35, "d": [101,264], "a": 1 }, + { "px": [160,128], "src": [224,96], "f": 0, "t": 152, "d": [101,266], "a": 1 }, + { "px": [192,128], "src": [224,96], "f": 0, "t": 152, "d": [101,268], "a": 1 }, + { "px": [224,128], "src": [192,16], "f": 0, "t": 35, "d": [101,270], "a": 1 }, + { "px": [256,128], "src": [224,96], "f": 0, "t": 152, "d": [101,272], "a": 1 }, + { "px": [288,128], "src": [192,16], "f": 0, "t": 35, "d": [101,274], "a": 1 }, + { "px": [480,128], "src": [192,16], "f": 0, "t": 35, "d": [101,286], "a": 1 }, + { "px": [80,144], "src": [192,16], "f": 0, "t": 35, "d": [101,293], "a": 1 }, + { "px": [496,144], "src": [192,16], "f": 0, "t": 35, "d": [101,319], "a": 1 }, + { "px": [96,160], "src": [192,16], "f": 0, "t": 35, "d": [101,326], "a": 1 }, + { "px": [480,160], "src": [224,96], "f": 0, "t": 152, "d": [101,350], "a": 1 }, + { "px": [80,176], "src": [224,96], "f": 0, "t": 152, "d": [101,357], "a": 1 }, + { "px": [496,176], "src": [96,0], "f": 0, "t": 6, "d": [101,383], "a": 1 }, + { "px": [96,192], "src": [96,0], "f": 0, "t": 6, "d": [101,390], "a": 1 }, + { "px": [80,208], "src": [96,0], "f": 0, "t": 6, "d": [101,421], "a": 1 }, + { "px": [176,208], "src": [192,16], "f": 0, "t": 35, "d": [101,427], "a": 1 }, + { "px": [208,208], "src": [192,16], "f": 0, "t": 35, "d": [101,429], "a": 1 }, + { "px": [96,224], "src": [192,16], "f": 0, "t": 35, "d": [101,454], "a": 1 }, + { "px": [192,224], "src": [192,16], "f": 0, "t": 35, "d": [101,460], "a": 1 }, + { "px": [224,224], "src": [192,16], "f": 0, "t": 35, "d": [101,462], "a": 1 }, + { "px": [80,240], "src": [96,0], "f": 0, "t": 6, "d": [101,485], "a": 1 }, + { "px": [176,240], "src": [96,0], "f": 0, "t": 6, "d": [101,491], "a": 1 }, + { "px": [208,240], "src": [224,96], "f": 0, "t": 152, "d": [101,493], "a": 1 }, + { "px": [96,256], "src": [224,96], "f": 0, "t": 152, "d": [101,518], "a": 1 }, + { "px": [192,256], "src": [96,0], "f": 0, "t": 6, "d": [101,524], "a": 1 }, + { "px": [224,256], "src": [192,16], "f": 0, "t": 35, "d": [101,526], "a": 1 }, + { "px": [80,272], "src": [192,16], "f": 0, "t": 35, "d": [101,549], "a": 1 }, + { "px": [176,272], "src": [96,0], "f": 0, "t": 6, "d": [101,555], "a": 1 }, + { "px": [208,272], "src": [96,0], "f": 0, "t": 6, "d": [101,557], "a": 1 }, + { "px": [464,272], "src": [96,0], "f": 0, "t": 6, "d": [101,573], "a": 1 }, + { "px": [496,272], "src": [192,16], "f": 0, "t": 35, "d": [101,575], "a": 1 }, + { "px": [96,288], "src": [224,96], "f": 0, "t": 152, "d": [101,582], "a": 1 }, + { "px": [192,288], "src": [224,96], "f": 0, "t": 152, "d": [101,588], "a": 1 }, + { "px": [224,288], "src": [192,16], "f": 0, "t": 35, "d": [101,590], "a": 1 }, + { "px": [480,288], "src": [224,96], "f": 0, "t": 152, "d": [101,606], "a": 1 }, + { "px": [80,304], "src": [192,16], "f": 0, "t": 35, "d": [101,613], "a": 1 }, + { "px": [176,304], "src": [192,16], "f": 0, "t": 35, "d": [101,619], "a": 1 }, + { "px": [208,304], "src": [192,16], "f": 0, "t": 35, "d": [101,621], "a": 1 }, + { "px": [464,304], "src": [224,96], "f": 0, "t": 152, "d": [101,637], "a": 1 }, + { "px": [96,320], "src": [96,0], "f": 0, "t": 6, "d": [101,646], "a": 1 }, + { "px": [192,320], "src": [224,96], "f": 0, "t": 152, "d": [101,652], "a": 1 }, + { "px": [224,320], "src": [96,0], "f": 0, "t": 6, "d": [101,654], "a": 1 }, + { "px": [480,320], "src": [96,0], "f": 0, "t": 6, "d": [101,670], "a": 1 }, + { "px": [16,336], "src": [192,16], "f": 0, "t": 35, "d": [101,673], "a": 1 }, + { "px": [48,336], "src": [224,96], "f": 0, "t": 152, "d": [101,675], "a": 1 }, + { "px": [80,336], "src": [192,16], "f": 0, "t": 35, "d": [101,677], "a": 1 }, + { "px": [176,336], "src": [96,0], "f": 0, "t": 6, "d": [101,683], "a": 1 }, + { "px": [208,336], "src": [192,16], "f": 0, "t": 35, "d": [101,685], "a": 1 }, + { "px": [240,336], "src": [96,0], "f": 0, "t": 6, "d": [101,687], "a": 1 }, + { "px": [272,336], "src": [96,0], "f": 0, "t": 6, "d": [101,689], "a": 1 }, + { "px": [304,336], "src": [192,16], "f": 0, "t": 35, "d": [101,691], "a": 1 }, + { "px": [336,336], "src": [192,16], "f": 0, "t": 35, "d": [101,693], "a": 1 }, + { "px": [432,336], "src": [192,16], "f": 0, "t": 35, "d": [101,699], "a": 1 }, + { "px": [464,336], "src": [192,16], "f": 0, "t": 35, "d": [101,701], "a": 1 }, + { "px": [32,352], "src": [192,16], "f": 0, "t": 35, "d": [101,706], "a": 1 }, + { "px": [64,352], "src": [224,96], "f": 0, "t": 152, "d": [101,708], "a": 1 }, + { "px": [96,352], "src": [96,0], "f": 0, "t": 6, "d": [101,710], "a": 1 }, + { "px": [192,352], "src": [96,0], "f": 0, "t": 6, "d": [101,716], "a": 1 }, + { "px": [224,352], "src": [96,0], "f": 0, "t": 6, "d": [101,718], "a": 1 }, + { "px": [256,352], "src": [224,96], "f": 0, "t": 152, "d": [101,720], "a": 1 }, + { "px": [288,352], "src": [192,16], "f": 0, "t": 35, "d": [101,722], "a": 1 }, + { "px": [320,352], "src": [192,16], "f": 0, "t": 35, "d": [101,724], "a": 1 }, + { "px": [448,352], "src": [96,0], "f": 0, "t": 6, "d": [101,732], "a": 1 }, + { "px": [480,352], "src": [192,16], "f": 0, "t": 35, "d": [101,734], "a": 1 }, + { "px": [16,368], "src": [96,0], "f": 0, "t": 6, "d": [101,737], "a": 1 }, + { "px": [176,368], "src": [224,96], "f": 0, "t": 152, "d": [101,747], "a": 1 }, + { "px": [336,368], "src": [224,96], "f": 0, "t": 152, "d": [101,757], "a": 1 }, + { "px": [432,368], "src": [96,0], "f": 0, "t": 6, "d": [101,763], "a": 1 }, + { "px": [32,384], "src": [96,0], "f": 0, "t": 6, "d": [101,770], "a": 1 }, + { "px": [192,384], "src": [96,0], "f": 0, "t": 6, "d": [101,780], "a": 1 }, + { "px": [320,384], "src": [96,0], "f": 0, "t": 6, "d": [101,788], "a": 1 }, + { "px": [448,384], "src": [192,16], "f": 0, "t": 35, "d": [101,796], "a": 1 }, + { "px": [16,400], "src": [192,16], "f": 0, "t": 35, "d": [101,801], "a": 1 }, + { "px": [176,400], "src": [192,16], "f": 0, "t": 35, "d": [101,811], "a": 1 }, + { "px": [336,400], "src": [96,0], "f": 0, "t": 6, "d": [101,821], "a": 1 }, + { "px": [432,400], "src": [224,96], "f": 0, "t": 152, "d": [101,827], "a": 1 }, + { "px": [32,416], "src": [96,0], "f": 0, "t": 6, "d": [101,834], "a": 1 }, + { "px": [192,416], "src": [96,0], "f": 0, "t": 6, "d": [101,844], "a": 1 }, + { "px": [320,416], "src": [192,16], "f": 0, "t": 35, "d": [101,852], "a": 1 }, + { "px": [448,416], "src": [192,16], "f": 0, "t": 35, "d": [101,860], "a": 1 }, + { "px": [16,432], "src": [224,96], "f": 0, "t": 152, "d": [101,865], "a": 1 }, + { "px": [112,432], "src": [224,96], "f": 0, "t": 152, "d": [101,871], "a": 1 }, + { "px": [144,432], "src": [192,16], "f": 0, "t": 35, "d": [101,873], "a": 1 }, + { "px": [176,432], "src": [96,0], "f": 0, "t": 6, "d": [101,875], "a": 1 }, + { "px": [336,432], "src": [96,0], "f": 0, "t": 6, "d": [101,885], "a": 1 }, + { "px": [432,432], "src": [224,96], "f": 0, "t": 152, "d": [101,891], "a": 1 }, + { "px": [32,448], "src": [192,16], "f": 0, "t": 35, "d": [101,898], "a": 1 }, + { "px": [128,448], "src": [224,96], "f": 0, "t": 152, "d": [101,904], "a": 1 }, + { "px": [160,448], "src": [224,96], "f": 0, "t": 152, "d": [101,906], "a": 1 }, + { "px": [192,448], "src": [192,16], "f": 0, "t": 35, "d": [101,908], "a": 1 }, + { "px": [320,448], "src": [96,0], "f": 0, "t": 6, "d": [101,916], "a": 1 }, + { "px": [448,448], "src": [96,0], "f": 0, "t": 6, "d": [101,924], "a": 1 }, + { "px": [16,464], "src": [96,0], "f": 0, "t": 6, "d": [101,929], "a": 1 }, + { "px": [112,464], "src": [192,16], "f": 0, "t": 35, "d": [101,935], "a": 1 }, + { "px": [336,464], "src": [224,96], "f": 0, "t": 152, "d": [101,949], "a": 1 }, + { "px": [432,464], "src": [96,0], "f": 0, "t": 6, "d": [101,955], "a": 1 }, + { "px": [32,480], "src": [96,0], "f": 0, "t": 6, "d": [101,962], "a": 1 }, + { "px": [128,480], "src": [96,0], "f": 0, "t": 6, "d": [101,968], "a": 1 }, + { "px": [320,480], "src": [192,16], "f": 0, "t": 35, "d": [101,980], "a": 1 }, + { "px": [448,480], "src": [192,16], "f": 0, "t": 35, "d": [101,988], "a": 1 }, + { "px": [16,496], "src": [96,0], "f": 0, "t": 6, "d": [101,993], "a": 1 }, + { "px": [112,496], "src": [224,96], "f": 0, "t": 152, "d": [101,999], "a": 1 }, + { "px": [336,496], "src": [192,16], "f": 0, "t": 35, "d": [101,1013], "a": 1 }, + { "px": [432,496], "src": [192,16], "f": 0, "t": 35, "d": [101,1019], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [96,0], "src": [32,32], "f": 0, "t": 48, "d": [127,6], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [127,8], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [160,0], "src": [32,32], "f": 0, "t": 48, "d": [127,10], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [127,21], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,32], "a": 1 }, + { "px": [16,16], "src": [32,32], "f": 0, "t": 48, "d": [127,33], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [127,34], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [127,36], "a": 1 }, + { "px": [80,16], "src": [32,32], "f": 0, "t": 48, "d": [127,37], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [127,38], "a": 1 }, + { "px": [112,16], "src": [32,32], "f": 0, "t": 48, "d": [127,39], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [127,40], "a": 1 }, + { "px": [144,16], "src": [32,32], "f": 0, "t": 48, "d": [127,41], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [127,42], "a": 1 }, + { "px": [176,16], "src": [32,32], "f": 0, "t": 48, "d": [127,43], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,44], "a": 1 }, + { "px": [208,16], "src": [32,32], "f": 0, "t": 48, "d": [127,45], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [127,51], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [127,52], "a": 1 }, + { "px": [336,16], "src": [32,32], "f": 0, "t": 48, "d": [127,53], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [127,54], "a": 1 }, + { "px": [0,32], "src": [32,32], "f": 0, "t": 48, "d": [127,64], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [127,65], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [127,67], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [127,69], "a": 1 }, + { "px": [96,32], "src": [32,32], "f": 0, "t": 48, "d": [127,70], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [127,71], "a": 1 }, + { "px": [128,32], "src": [32,32], "f": 0, "t": 48, "d": [127,72], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [127,73], "a": 1 }, + { "px": [160,32], "src": [32,32], "f": 0, "t": 48, "d": [127,74], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [127,75], "a": 1 }, + { "px": [192,32], "src": [32,32], "f": 0, "t": 48, "d": [127,76], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [127,77], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,79], "a": 1 }, + { "px": [256,32], "src": [32,32], "f": 0, "t": 48, "d": [127,80], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [127,81], "a": 1 }, + { "px": [288,32], "src": [32,32], "f": 0, "t": 48, "d": [127,82], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [127,83], "a": 1 }, + { "px": [320,32], "src": [32,32], "f": 0, "t": 48, "d": [127,84], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [127,85], "a": 1 }, + { "px": [352,32], "src": [32,32], "f": 0, "t": 48, "d": [127,86], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,96], "a": 1 }, + { "px": [16,48], "src": [32,32], "f": 0, "t": 48, "d": [127,97], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [127,98], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [127,100], "a": 1 }, + { "px": [80,48], "src": [32,32], "f": 0, "t": 48, "d": [127,101], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [127,102], "a": 1 }, + { "px": [112,48], "src": [32,32], "f": 0, "t": 48, "d": [127,103], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [127,104], "a": 1 }, + { "px": [160,48], "src": [32,32], "f": 0, "t": 48, "d": [127,106], "a": 1 }, + { "px": [176,48], "src": [32,32], "f": 0, "t": 48, "d": [127,107], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [127,108], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [127,110], "a": 1 }, + { "px": [256,48], "src": [32,32], "f": 0, "t": 48, "d": [127,112], "a": 1 }, + { "px": [272,48], "src": [32,32], "f": 0, "t": 48, "d": [127,113], "a": 1 }, + { "px": [288,48], "src": [32,32], "f": 0, "t": 48, "d": [127,114], "a": 1 }, + { "px": [304,48], "src": [32,32], "f": 0, "t": 48, "d": [127,115], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [127,116], "a": 1 }, + { "px": [352,48], "src": [32,32], "f": 0, "t": 48, "d": [127,118], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [127,129], "a": 1 }, + { "px": [32,64], "src": [32,32], "f": 0, "t": 48, "d": [127,130], "a": 1 }, + { "px": [48,64], "src": [32,32], "f": 0, "t": 48, "d": [127,131], "a": 1 }, + { "px": [64,64], "src": [32,32], "f": 0, "t": 48, "d": [127,132], "a": 1 }, + { "px": [80,64], "src": [32,32], "f": 0, "t": 48, "d": [127,133], "a": 1 }, + { "px": [96,64], "src": [32,32], "f": 0, "t": 48, "d": [127,134], "a": 1 }, + { "px": [112,64], "src": [32,32], "f": 0, "t": 48, "d": [127,135], "a": 1 }, + { "px": [128,64], "src": [32,32], "f": 0, "t": 48, "d": [127,136], "a": 1 }, + { "px": [144,64], "src": [32,32], "f": 0, "t": 48, "d": [127,137], "a": 1 }, + { "px": [160,64], "src": [32,32], "f": 0, "t": 48, "d": [127,138], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [127,139], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [127,141], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [127,143], "a": 1 }, + { "px": [256,64], "src": [32,32], "f": 0, "t": 48, "d": [127,144], "a": 1 }, + { "px": [272,64], "src": [32,32], "f": 0, "t": 48, "d": [127,145], "a": 1 }, + { "px": [288,64], "src": [32,32], "f": 0, "t": 48, "d": [127,146], "a": 1 }, + { "px": [304,64], "src": [32,32], "f": 0, "t": 48, "d": [127,147], "a": 1 }, + { "px": [336,64], "src": [32,32], "f": 0, "t": 48, "d": [127,149], "a": 1 }, + { "px": [0,80], "src": [32,32], "f": 0, "t": 48, "d": [127,160], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [127,162], "a": 1 }, + { "px": [64,80], "src": [32,32], "f": 0, "t": 48, "d": [127,164], "a": 1 }, + { "px": [80,80], "src": [32,32], "f": 0, "t": 48, "d": [127,165], "a": 1 }, + { "px": [96,80], "src": [32,32], "f": 0, "t": 48, "d": [127,166], "a": 1 }, + { "px": [112,80], "src": [32,32], "f": 0, "t": 48, "d": [127,167], "a": 1 }, + { "px": [128,80], "src": [32,32], "f": 0, "t": 48, "d": [127,168], "a": 1 }, + { "px": [144,80], "src": [32,32], "f": 0, "t": 48, "d": [127,169], "a": 1 }, + { "px": [160,80], "src": [32,32], "f": 0, "t": 48, "d": [127,170], "a": 1 }, + { "px": [192,80], "src": [32,32], "f": 0, "t": 48, "d": [127,172], "a": 1 }, + { "px": [208,80], "src": [32,32], "f": 0, "t": 48, "d": [127,173], "a": 1 }, + { "px": [224,80], "src": [32,32], "f": 0, "t": 48, "d": [127,174], "a": 1 }, + { "px": [256,80], "src": [32,32], "f": 0, "t": 48, "d": [127,176], "a": 1 }, + { "px": [0,96], "src": [32,32], "f": 0, "t": 48, "d": [127,192], "a": 1 }, + { "px": [16,96], "src": [32,32], "f": 0, "t": 48, "d": [127,193], "a": 1 }, + { "px": [48,96], "src": [32,32], "f": 0, "t": 48, "d": [127,195], "a": 1 }, + { "px": [80,96], "src": [32,32], "f": 0, "t": 48, "d": [127,197], "a": 1 }, + { "px": [112,96], "src": [32,32], "f": 0, "t": 48, "d": [127,199], "a": 1 }, + { "px": [128,96], "src": [32,32], "f": 0, "t": 48, "d": [127,200], "a": 1 }, + { "px": [144,96], "src": [32,32], "f": 0, "t": 48, "d": [127,201], "a": 1 }, + { "px": [160,96], "src": [32,32], "f": 0, "t": 48, "d": [127,202], "a": 1 }, + { "px": [176,96], "src": [32,32], "f": 0, "t": 48, "d": [127,203], "a": 1 }, + { "px": [208,96], "src": [32,32], "f": 0, "t": 48, "d": [127,205], "a": 1 }, + { "px": [224,96], "src": [32,32], "f": 0, "t": 48, "d": [127,206], "a": 1 }, + { "px": [240,96], "src": [32,32], "f": 0, "t": 48, "d": [127,207], "a": 1 }, + { "px": [256,96], "src": [32,32], "f": 0, "t": 48, "d": [127,208], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [127,224], "a": 1 }, + { "px": [32,112], "src": [32,32], "f": 0, "t": 48, "d": [127,226], "a": 1 }, + { "px": [48,112], "src": [32,32], "f": 0, "t": 48, "d": [127,227], "a": 1 }, + { "px": [64,112], "src": [32,32], "f": 0, "t": 48, "d": [127,228], "a": 1 }, + { "px": [16,128], "src": [32,32], "f": 0, "t": 48, "d": [127,257], "a": 1 }, + { "px": [32,128], "src": [32,32], "f": 0, "t": 48, "d": [127,258], "a": 1 }, + { "px": [48,128], "src": [32,32], "f": 0, "t": 48, "d": [127,259], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [127,288], "a": 1 }, + { "px": [32,144], "src": [32,32], "f": 0, "t": 48, "d": [127,290], "a": 1 }, + { "px": [48,144], "src": [32,32], "f": 0, "t": 48, "d": [127,291], "a": 1 }, + { "px": [64,144], "src": [32,32], "f": 0, "t": 48, "d": [127,292], "a": 1 }, + { "px": [0,160], "src": [32,32], "f": 0, "t": 48, "d": [127,320], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [127,321], "a": 1 }, + { "px": [32,160], "src": [32,32], "f": 0, "t": 48, "d": [127,322], "a": 1 }, + { "px": [48,160], "src": [32,32], "f": 0, "t": 48, "d": [127,323], "a": 1 }, + { "px": [64,160], "src": [32,32], "f": 0, "t": 48, "d": [127,324], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [127,352], "a": 1 }, + { "px": [16,176], "src": [32,32], "f": 0, "t": 48, "d": [127,353], "a": 1 }, + { "px": [32,176], "src": [32,32], "f": 0, "t": 48, "d": [127,354], "a": 1 }, + { "px": [48,176], "src": [32,32], "f": 0, "t": 48, "d": [127,355], "a": 1 }, + { "px": [64,176], "src": [32,32], "f": 0, "t": 48, "d": [127,356], "a": 1 }, + { "px": [0,192], "src": [32,32], "f": 0, "t": 48, "d": [127,384], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [127,385], "a": 1 }, + { "px": [32,192], "src": [32,32], "f": 0, "t": 48, "d": [127,386], "a": 1 }, + { "px": [48,192], "src": [32,32], "f": 0, "t": 48, "d": [127,387], "a": 1 }, + { "px": [64,192], "src": [32,32], "f": 0, "t": 48, "d": [127,388], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [127,416], "a": 1 }, + { "px": [16,208], "src": [32,32], "f": 0, "t": 48, "d": [127,417], "a": 1 }, + { "px": [32,208], "src": [32,32], "f": 0, "t": 48, "d": [127,418], "a": 1 }, + { "px": [48,208], "src": [32,32], "f": 0, "t": 48, "d": [127,419], "a": 1 }, + { "px": [64,208], "src": [32,32], "f": 0, "t": 48, "d": [127,420], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [127,449], "a": 1 }, + { "px": [32,224], "src": [32,32], "f": 0, "t": 48, "d": [127,450], "a": 1 }, + { "px": [48,224], "src": [32,32], "f": 0, "t": 48, "d": [127,451], "a": 1 }, + { "px": [64,224], "src": [32,32], "f": 0, "t": 48, "d": [127,452], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [127,480], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [127,482], "a": 1 }, + { "px": [48,240], "src": [32,32], "f": 0, "t": 48, "d": [127,483], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [127,484], "a": 1 }, + { "px": [0,256], "src": [32,32], "f": 0, "t": 48, "d": [127,512], "a": 1 }, + { "px": [16,256], "src": [32,32], "f": 0, "t": 48, "d": [127,513], "a": 1 }, + { "px": [32,256], "src": [32,32], "f": 0, "t": 48, "d": [127,514], "a": 1 }, + { "px": [48,256], "src": [32,32], "f": 0, "t": 48, "d": [127,515], "a": 1 }, + { "px": [64,256], "src": [32,32], "f": 0, "t": 48, "d": [127,516], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [127,544], "a": 1 }, + { "px": [16,272], "src": [32,32], "f": 0, "t": 48, "d": [127,545], "a": 1 }, + { "px": [32,272], "src": [32,32], "f": 0, "t": 48, "d": [127,546], "a": 1 }, + { "px": [48,272], "src": [32,32], "f": 0, "t": 48, "d": [127,547], "a": 1 }, + { "px": [64,272], "src": [32,32], "f": 0, "t": 48, "d": [127,548], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [127,577], "a": 1 }, + { "px": [32,288], "src": [32,32], "f": 0, "t": 48, "d": [127,578], "a": 1 }, + { "px": [48,288], "src": [32,32], "f": 0, "t": 48, "d": [127,579], "a": 1 }, + { "px": [0,304], "src": [32,32], "f": 0, "t": 48, "d": [127,608], "a": 1 }, + { "px": [16,304], "src": [32,32], "f": 0, "t": 48, "d": [127,609], "a": 1 }, + { "px": [32,304], "src": [32,32], "f": 0, "t": 48, "d": [127,610], "a": 1 }, + { "px": [48,304], "src": [32,32], "f": 0, "t": 48, "d": [127,611], "a": 1 }, + { "px": [64,304], "src": [32,32], "f": 0, "t": 48, "d": [127,612], "a": 1 }, + { "px": [496,304], "src": [32,32], "f": 0, "t": 48, "d": [127,639], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [127,641], "a": 1 }, + { "px": [32,320], "src": [32,32], "f": 0, "t": 48, "d": [127,642], "a": 1 }, + { "px": [48,320], "src": [32,32], "f": 0, "t": 48, "d": [127,643], "a": 1 }, + { "px": [64,320], "src": [32,32], "f": 0, "t": 48, "d": [127,644], "a": 1 }, + { "px": [496,320], "src": [32,32], "f": 0, "t": 48, "d": [127,671], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [127,672], "a": 1 }, + { "px": [496,336], "src": [32,32], "f": 0, "t": 48, "d": [127,703], "a": 1 }, + { "px": [0,352], "src": [32,32], "f": 0, "t": 48, "d": [127,704], "a": 1 }, + { "px": [496,352], "src": [32,32], "f": 0, "t": 48, "d": [127,735], "a": 1 }, + { "px": [0,368], "src": [32,32], "f": 0, "t": 48, "d": [127,736], "a": 1 }, + { "px": [208,368], "src": [32,32], "f": 0, "t": 48, "d": [127,749], "a": 1 }, + { "px": [224,368], "src": [32,32], "f": 0, "t": 48, "d": [127,750], "a": 1 }, + { "px": [240,368], "src": [32,32], "f": 0, "t": 48, "d": [127,751], "a": 1 }, + { "px": [256,368], "src": [32,32], "f": 0, "t": 48, "d": [127,752], "a": 1 }, + { "px": [272,368], "src": [32,32], "f": 0, "t": 48, "d": [127,753], "a": 1 }, + { "px": [288,368], "src": [32,32], "f": 0, "t": 48, "d": [127,754], "a": 1 }, + { "px": [304,368], "src": [32,32], "f": 0, "t": 48, "d": [127,755], "a": 1 }, + { "px": [480,368], "src": [32,32], "f": 0, "t": 48, "d": [127,766], "a": 1 }, + { "px": [496,368], "src": [32,32], "f": 0, "t": 48, "d": [127,767], "a": 1 }, + { "px": [208,384], "src": [32,32], "f": 0, "t": 48, "d": [127,781], "a": 1 }, + { "px": [240,384], "src": [32,32], "f": 0, "t": 48, "d": [127,783], "a": 1 }, + { "px": [256,384], "src": [32,32], "f": 0, "t": 48, "d": [127,784], "a": 1 }, + { "px": [272,384], "src": [32,32], "f": 0, "t": 48, "d": [127,785], "a": 1 }, + { "px": [288,384], "src": [32,32], "f": 0, "t": 48, "d": [127,786], "a": 1 }, + { "px": [304,384], "src": [32,32], "f": 0, "t": 48, "d": [127,787], "a": 1 }, + { "px": [464,384], "src": [32,32], "f": 0, "t": 48, "d": [127,797], "a": 1 }, + { "px": [496,384], "src": [32,32], "f": 0, "t": 48, "d": [127,799], "a": 1 }, + { "px": [0,400], "src": [32,32], "f": 0, "t": 48, "d": [127,800], "a": 1 }, + { "px": [224,400], "src": [32,32], "f": 0, "t": 48, "d": [127,814], "a": 1 }, + { "px": [240,400], "src": [32,32], "f": 0, "t": 48, "d": [127,815], "a": 1 }, + { "px": [256,400], "src": [32,32], "f": 0, "t": 48, "d": [127,816], "a": 1 }, + { "px": [272,400], "src": [32,32], "f": 0, "t": 48, "d": [127,817], "a": 1 }, + { "px": [288,400], "src": [32,32], "f": 0, "t": 48, "d": [127,818], "a": 1 }, + { "px": [464,400], "src": [32,32], "f": 0, "t": 48, "d": [127,829], "a": 1 }, + { "px": [480,400], "src": [32,32], "f": 0, "t": 48, "d": [127,830], "a": 1 }, + { "px": [0,416], "src": [32,32], "f": 0, "t": 48, "d": [127,832], "a": 1 }, + { "px": [208,416], "src": [32,32], "f": 0, "t": 48, "d": [127,845], "a": 1 }, + { "px": [240,416], "src": [32,32], "f": 0, "t": 48, "d": [127,847], "a": 1 }, + { "px": [256,416], "src": [32,32], "f": 0, "t": 48, "d": [127,848], "a": 1 }, + { "px": [272,416], "src": [32,32], "f": 0, "t": 48, "d": [127,849], "a": 1 }, + { "px": [304,416], "src": [32,32], "f": 0, "t": 48, "d": [127,851], "a": 1 }, + { "px": [464,416], "src": [32,32], "f": 0, "t": 48, "d": [127,861], "a": 1 }, + { "px": [480,416], "src": [32,32], "f": 0, "t": 48, "d": [127,862], "a": 1 }, + { "px": [496,416], "src": [32,32], "f": 0, "t": 48, "d": [127,863], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [127,864], "a": 1 }, + { "px": [224,432], "src": [32,32], "f": 0, "t": 48, "d": [127,878], "a": 1 }, + { "px": [240,432], "src": [32,32], "f": 0, "t": 48, "d": [127,879], "a": 1 }, + { "px": [256,432], "src": [32,32], "f": 0, "t": 48, "d": [127,880], "a": 1 }, + { "px": [288,432], "src": [32,32], "f": 0, "t": 48, "d": [127,882], "a": 1 }, + { "px": [464,432], "src": [32,32], "f": 0, "t": 48, "d": [127,893], "a": 1 }, + { "px": [480,432], "src": [32,32], "f": 0, "t": 48, "d": [127,894], "a": 1 }, + { "px": [496,432], "src": [32,32], "f": 0, "t": 48, "d": [127,895], "a": 1 }, + { "px": [208,448], "src": [32,32], "f": 0, "t": 48, "d": [127,909], "a": 1 }, + { "px": [224,448], "src": [32,32], "f": 0, "t": 48, "d": [127,910], "a": 1 }, + { "px": [240,448], "src": [32,32], "f": 0, "t": 48, "d": [127,911], "a": 1 }, + { "px": [256,448], "src": [32,32], "f": 0, "t": 48, "d": [127,912], "a": 1 }, + { "px": [272,448], "src": [32,32], "f": 0, "t": 48, "d": [127,913], "a": 1 }, + { "px": [304,448], "src": [32,32], "f": 0, "t": 48, "d": [127,915], "a": 1 }, + { "px": [464,448], "src": [32,32], "f": 0, "t": 48, "d": [127,925], "a": 1 }, + { "px": [480,448], "src": [32,32], "f": 0, "t": 48, "d": [127,926], "a": 1 }, + { "px": [496,448], "src": [32,32], "f": 0, "t": 48, "d": [127,927], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [127,928], "a": 1 }, + { "px": [144,464], "src": [32,32], "f": 0, "t": 48, "d": [127,937], "a": 1 }, + { "px": [160,464], "src": [32,32], "f": 0, "t": 48, "d": [127,938], "a": 1 }, + { "px": [192,464], "src": [32,32], "f": 0, "t": 48, "d": [127,940], "a": 1 }, + { "px": [224,464], "src": [32,32], "f": 0, "t": 48, "d": [127,942], "a": 1 }, + { "px": [240,464], "src": [32,32], "f": 0, "t": 48, "d": [127,943], "a": 1 }, + { "px": [256,464], "src": [32,32], "f": 0, "t": 48, "d": [127,944], "a": 1 }, + { "px": [272,464], "src": [32,32], "f": 0, "t": 48, "d": [127,945], "a": 1 }, + { "px": [288,464], "src": [32,32], "f": 0, "t": 48, "d": [127,946], "a": 1 }, + { "px": [464,464], "src": [32,32], "f": 0, "t": 48, "d": [127,957], "a": 1 }, + { "px": [480,464], "src": [32,32], "f": 0, "t": 48, "d": [127,958], "a": 1 }, + { "px": [496,464], "src": [32,32], "f": 0, "t": 48, "d": [127,959], "a": 1 }, + { "px": [144,480], "src": [32,32], "f": 0, "t": 48, "d": [127,969], "a": 1 }, + { "px": [176,480], "src": [32,32], "f": 0, "t": 48, "d": [127,971], "a": 1 }, + { "px": [208,480], "src": [32,32], "f": 0, "t": 48, "d": [127,973], "a": 1 }, + { "px": [224,480], "src": [32,32], "f": 0, "t": 48, "d": [127,974], "a": 1 }, + { "px": [240,480], "src": [32,32], "f": 0, "t": 48, "d": [127,975], "a": 1 }, + { "px": [272,480], "src": [32,32], "f": 0, "t": 48, "d": [127,977], "a": 1 }, + { "px": [304,480], "src": [32,32], "f": 0, "t": 48, "d": [127,979], "a": 1 }, + { "px": [464,480], "src": [32,32], "f": 0, "t": 48, "d": [127,989], "a": 1 }, + { "px": [480,480], "src": [32,32], "f": 0, "t": 48, "d": [127,990], "a": 1 }, + { "px": [496,480], "src": [32,32], "f": 0, "t": 48, "d": [127,991], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,992], "a": 1 }, + { "px": [144,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1001], "a": 1 }, + { "px": [160,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1002], "a": 1 }, + { "px": [176,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1003], "a": 1 }, + { "px": [192,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1004], "a": 1 }, + { "px": [208,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1005], "a": 1 }, + { "px": [224,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1006], "a": 1 }, + { "px": [256,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1008], "a": 1 }, + { "px": [288,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1010], "a": 1 }, + { "px": [464,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1021], "a": 1 }, + { "px": [480,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1022], "a": 1 }, + { "px": [0,0], "src": [96,96], "f": 0, "t": 144, "d": [126,0], "a": 1 }, + { "px": [32,0], "src": [96,96], "f": 0, "t": 144, "d": [126,2], "a": 1 }, + { "px": [64,0], "src": [64,96], "f": 0, "t": 142, "d": [126,4], "a": 1 }, + { "px": [192,0], "src": [96,96], "f": 0, "t": 144, "d": [126,12], "a": 1 }, + { "px": [256,0], "src": [96,96], "f": 0, "t": 144, "d": [126,16], "a": 1 }, + { "px": [320,0], "src": [96,96], "f": 0, "t": 144, "d": [126,20], "a": 1 }, + { "px": [352,0], "src": [64,96], "f": 0, "t": 142, "d": [126,22], "a": 1 }, + { "px": [48,16], "src": [64,96], "f": 0, "t": 142, "d": [126,35], "a": 1 }, + { "px": [240,16], "src": [96,96], "f": 0, "t": 144, "d": [126,47], "a": 1 }, + { "px": [272,16], "src": [64,96], "f": 0, "t": 142, "d": [126,49], "a": 1 }, + { "px": [32,32], "src": [64,96], "f": 0, "t": 142, "d": [126,66], "a": 1 }, + { "px": [64,32], "src": [64,96], "f": 0, "t": 142, "d": [126,68], "a": 1 }, + { "px": [224,32], "src": [96,96], "f": 0, "t": 144, "d": [126,78], "a": 1 }, + { "px": [48,48], "src": [64,96], "f": 0, "t": 142, "d": [126,99], "a": 1 }, + { "px": [144,48], "src": [64,96], "f": 0, "t": 142, "d": [126,105], "a": 1 }, + { "px": [208,48], "src": [64,96], "f": 0, "t": 142, "d": [126,109], "a": 1 }, + { "px": [240,48], "src": [96,96], "f": 0, "t": 144, "d": [126,111], "a": 1 }, + { "px": [336,48], "src": [64,96], "f": 0, "t": 142, "d": [126,117], "a": 1 }, + { "px": [0,64], "src": [64,96], "f": 0, "t": 142, "d": [126,128], "a": 1 }, + { "px": [192,64], "src": [96,96], "f": 0, "t": 144, "d": [126,140], "a": 1 }, + { "px": [224,64], "src": [64,96], "f": 0, "t": 142, "d": [126,142], "a": 1 }, + { "px": [320,64], "src": [96,96], "f": 0, "t": 144, "d": [126,148], "a": 1 }, + { "px": [352,64], "src": [64,96], "f": 0, "t": 142, "d": [126,150], "a": 1 }, + { "px": [16,80], "src": [96,96], "f": 0, "t": 144, "d": [126,161], "a": 1 }, + { "px": [48,80], "src": [96,96], "f": 0, "t": 144, "d": [126,163], "a": 1 }, + { "px": [176,80], "src": [96,96], "f": 0, "t": 144, "d": [126,171], "a": 1 }, + { "px": [240,80], "src": [96,96], "f": 0, "t": 144, "d": [126,175], "a": 1 }, + { "px": [32,96], "src": [96,96], "f": 0, "t": 144, "d": [126,194], "a": 1 }, + { "px": [64,96], "src": [96,96], "f": 0, "t": 144, "d": [126,196], "a": 1 }, + { "px": [96,96], "src": [64,96], "f": 0, "t": 142, "d": [126,198], "a": 1 }, + { "px": [192,96], "src": [96,96], "f": 0, "t": 144, "d": [126,204], "a": 1 }, + { "px": [16,112], "src": [64,96], "f": 0, "t": 142, "d": [126,225], "a": 1 }, + { "px": [0,128], "src": [64,96], "f": 0, "t": 142, "d": [126,256], "a": 1 }, + { "px": [64,128], "src": [96,96], "f": 0, "t": 144, "d": [126,260], "a": 1 }, + { "px": [16,144], "src": [64,96], "f": 0, "t": 142, "d": [126,289], "a": 1 }, + { "px": [0,224], "src": [64,96], "f": 0, "t": 142, "d": [126,448], "a": 1 }, + { "px": [16,240], "src": [64,96], "f": 0, "t": 142, "d": [126,481], "a": 1 }, + { "px": [0,288], "src": [96,96], "f": 0, "t": 144, "d": [126,576], "a": 1 }, + { "px": [64,288], "src": [64,96], "f": 0, "t": 142, "d": [126,580], "a": 1 }, + { "px": [0,320], "src": [96,96], "f": 0, "t": 144, "d": [126,640], "a": 1 }, + { "px": [464,368], "src": [96,96], "f": 0, "t": 144, "d": [126,765], "a": 1 }, + { "px": [0,384], "src": [64,96], "f": 0, "t": 142, "d": [126,768], "a": 1 }, + { "px": [224,384], "src": [96,96], "f": 0, "t": 144, "d": [126,782], "a": 1 }, + { "px": [480,384], "src": [96,96], "f": 0, "t": 144, "d": [126,798], "a": 1 }, + { "px": [208,400], "src": [64,96], "f": 0, "t": 142, "d": [126,813], "a": 1 }, + { "px": [304,400], "src": [64,96], "f": 0, "t": 142, "d": [126,819], "a": 1 }, + { "px": [496,400], "src": [96,96], "f": 0, "t": 144, "d": [126,831], "a": 1 }, + { "px": [224,416], "src": [64,96], "f": 0, "t": 142, "d": [126,846], "a": 1 }, + { "px": [288,416], "src": [96,96], "f": 0, "t": 144, "d": [126,850], "a": 1 }, + { "px": [208,432], "src": [96,96], "f": 0, "t": 144, "d": [126,877], "a": 1 }, + { "px": [272,432], "src": [96,96], "f": 0, "t": 144, "d": [126,881], "a": 1 }, + { "px": [304,432], "src": [64,96], "f": 0, "t": 142, "d": [126,883], "a": 1 }, + { "px": [0,448], "src": [96,96], "f": 0, "t": 144, "d": [126,896], "a": 1 }, + { "px": [288,448], "src": [64,96], "f": 0, "t": 142, "d": [126,914], "a": 1 }, + { "px": [176,464], "src": [64,96], "f": 0, "t": 142, "d": [126,939], "a": 1 }, + { "px": [208,464], "src": [96,96], "f": 0, "t": 144, "d": [126,941], "a": 1 }, + { "px": [304,464], "src": [64,96], "f": 0, "t": 142, "d": [126,947], "a": 1 }, + { "px": [0,480], "src": [64,96], "f": 0, "t": 142, "d": [126,960], "a": 1 }, + { "px": [160,480], "src": [64,96], "f": 0, "t": 142, "d": [126,970], "a": 1 }, + { "px": [192,480], "src": [96,96], "f": 0, "t": 144, "d": [126,972], "a": 1 }, + { "px": [256,480], "src": [96,96], "f": 0, "t": 144, "d": [126,976], "a": 1 }, + { "px": [288,480], "src": [64,96], "f": 0, "t": 142, "d": [126,978], "a": 1 }, + { "px": [240,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1007], "a": 1 }, + { "px": [272,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1009], "a": 1 }, + { "px": [304,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1011], "a": 1 }, + { "px": [496,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1023], "a": 1 }, + { "px": [336,112], "src": [256,160], "f": 0, "t": 246, "d": [12,245], "a": 1 }, + { "px": [352,112], "src": [256,160], "f": 0, "t": 246, "d": [12,246], "a": 1 }, + { "px": [128,144], "src": [256,160], "f": 0, "t": 246, "d": [12,296], "a": 1 }, + { "px": [144,144], "src": [256,160], "f": 0, "t": 246, "d": [12,297], "a": 1 }, + { "px": [176,144], "src": [256,160], "f": 0, "t": 246, "d": [12,299], "a": 1 }, + { "px": [224,144], "src": [256,160], "f": 0, "t": 246, "d": [12,302], "a": 1 }, + { "px": [272,144], "src": [256,160], "f": 0, "t": 246, "d": [12,305], "a": 1 }, + { "px": [400,192], "src": [256,160], "f": 0, "t": 246, "d": [12,409], "a": 1 }, + { "px": [416,192], "src": [256,160], "f": 0, "t": 246, "d": [12,410], "a": 1 }, + { "px": [432,192], "src": [256,160], "f": 0, "t": 246, "d": [12,411], "a": 1 }, + { "px": [464,192], "src": [256,160], "f": 0, "t": 246, "d": [12,413], "a": 1 }, + { "px": [480,192], "src": [256,160], "f": 0, "t": 246, "d": [12,414], "a": 1 }, + { "px": [96,368], "src": [256,160], "f": 0, "t": 246, "d": [12,742], "a": 1 }, + { "px": [448,64], "src": [256,96], "f": 0, "t": 154, "d": [9,156], "a": 1 }, + { "px": [176,192], "src": [256,96], "f": 0, "t": 154, "d": [9,395], "a": 1 }, + { "px": [192,192], "src": [256,96], "f": 0, "t": 154, "d": [9,396], "a": 1 }, + { "px": [208,192], "src": [256,96], "f": 0, "t": 154, "d": [9,397], "a": 1 }, + { "px": [224,192], "src": [256,96], "f": 0, "t": 154, "d": [9,398], "a": 1 }, + { "px": [272,320], "src": [256,96], "f": 0, "t": 154, "d": [9,657], "a": 1 }, + { "px": [288,320], "src": [256,96], "f": 0, "t": 154, "d": [9,658], "a": 1 }, + { "px": [304,320], "src": [256,96], "f": 0, "t": 154, "d": [9,659], "a": 1 }, + { "px": [320,320], "src": [256,96], "f": 0, "t": 154, "d": [9,660], "a": 1 }, + { "px": [336,320], "src": [256,96], "f": 0, "t": 154, "d": [9,661], "a": 1 }, + { "px": [432,320], "src": [256,96], "f": 0, "t": 154, "d": [9,667], "a": 1 }, + { "px": [128,416], "src": [256,96], "f": 0, "t": 154, "d": [9,840], "a": 1 }, + { "px": [144,416], "src": [256,96], "f": 0, "t": 154, "d": [9,841], "a": 1 }, + { "px": [400,0], "src": [224,128], "f": 1, "t": 198, "d": [10,25], "a": 1 }, + { "px": [464,0], "src": [224,128], "f": 0, "t": 198, "d": [10,29], "a": 1 }, + { "px": [400,16], "src": [224,128], "f": 1, "t": 198, "d": [10,57], "a": 1 }, + { "px": [464,16], "src": [224,128], "f": 0, "t": 198, "d": [10,61], "a": 1 }, + { "px": [400,32], "src": [224,128], "f": 1, "t": 198, "d": [10,89], "a": 1 }, + { "px": [464,32], "src": [224,128], "f": 0, "t": 198, "d": [10,93], "a": 1 }, + { "px": [400,48], "src": [224,128], "f": 1, "t": 198, "d": [10,121], "a": 1 }, + { "px": [464,48], "src": [224,128], "f": 0, "t": 198, "d": [10,125], "a": 1 }, + { "px": [400,64], "src": [224,128], "f": 1, "t": 198, "d": [10,153], "a": 1 }, + { "px": [400,80], "src": [224,128], "f": 1, "t": 198, "d": [10,185], "a": 1 }, + { "px": [464,80], "src": [224,128], "f": 0, "t": 198, "d": [10,189], "a": 1 }, + { "px": [400,96], "src": [224,128], "f": 1, "t": 198, "d": [10,217], "a": 1 }, + { "px": [464,96], "src": [224,128], "f": 0, "t": 198, "d": [10,221], "a": 1 }, + { "px": [464,112], "src": [224,128], "f": 0, "t": 198, "d": [10,253], "a": 1 }, + { "px": [304,128], "src": [224,128], "f": 1, "t": 198, "d": [10,275], "a": 1 }, + { "px": [464,128], "src": [224,128], "f": 0, "t": 198, "d": [10,285], "a": 1 }, + { "px": [304,144], "src": [224,128], "f": 1, "t": 198, "d": [10,307], "a": 1 }, + { "px": [464,144], "src": [224,128], "f": 0, "t": 198, "d": [10,317], "a": 1 }, + { "px": [112,160], "src": [224,128], "f": 1, "t": 198, "d": [10,327], "a": 1 }, + { "px": [288,160], "src": [224,128], "f": 0, "t": 198, "d": [10,338], "a": 1 }, + { "px": [304,160], "src": [224,128], "f": 1, "t": 198, "d": [10,339], "a": 1 }, + { "px": [464,160], "src": [224,128], "f": 0, "t": 198, "d": [10,349], "a": 1 }, + { "px": [112,176], "src": [224,128], "f": 1, "t": 198, "d": [10,359], "a": 1 }, + { "px": [288,176], "src": [224,128], "f": 0, "t": 198, "d": [10,370], "a": 1 }, + { "px": [304,176], "src": [224,128], "f": 1, "t": 198, "d": [10,371], "a": 1 }, + { "px": [112,192], "src": [224,128], "f": 1, "t": 198, "d": [10,391], "a": 1 }, + { "px": [288,192], "src": [224,128], "f": 0, "t": 198, "d": [10,402], "a": 1 }, + { "px": [304,192], "src": [224,128], "f": 1, "t": 198, "d": [10,403], "a": 1 }, + { "px": [112,208], "src": [224,128], "f": 1, "t": 198, "d": [10,423], "a": 1 }, + { "px": [160,208], "src": [224,128], "f": 0, "t": 198, "d": [10,426], "a": 1 }, + { "px": [240,208], "src": [224,128], "f": 1, "t": 198, "d": [10,431], "a": 1 }, + { "px": [288,208], "src": [224,128], "f": 0, "t": 198, "d": [10,434], "a": 1 }, + { "px": [304,208], "src": [224,128], "f": 1, "t": 198, "d": [10,435], "a": 1 }, + { "px": [496,208], "src": [224,128], "f": 0, "t": 198, "d": [10,447], "a": 1 }, + { "px": [112,224], "src": [224,128], "f": 1, "t": 198, "d": [10,455], "a": 1 }, + { "px": [160,224], "src": [224,128], "f": 0, "t": 198, "d": [10,458], "a": 1 }, + { "px": [240,224], "src": [224,128], "f": 1, "t": 198, "d": [10,463], "a": 1 }, + { "px": [288,224], "src": [224,128], "f": 0, "t": 198, "d": [10,466], "a": 1 }, + { "px": [304,224], "src": [224,128], "f": 1, "t": 198, "d": [10,467], "a": 1 }, + { "px": [496,224], "src": [224,128], "f": 0, "t": 198, "d": [10,479], "a": 1 }, + { "px": [112,240], "src": [224,128], "f": 1, "t": 198, "d": [10,487], "a": 1 }, + { "px": [160,240], "src": [224,128], "f": 0, "t": 198, "d": [10,490], "a": 1 }, + { "px": [240,240], "src": [224,128], "f": 1, "t": 198, "d": [10,495], "a": 1 }, + { "px": [288,240], "src": [224,128], "f": 0, "t": 198, "d": [10,498], "a": 1 }, + { "px": [304,240], "src": [224,128], "f": 1, "t": 198, "d": [10,499], "a": 1 }, + { "px": [496,240], "src": [224,128], "f": 0, "t": 198, "d": [10,511], "a": 1 }, + { "px": [112,256], "src": [224,128], "f": 1, "t": 198, "d": [10,519], "a": 1 }, + { "px": [160,256], "src": [224,128], "f": 0, "t": 198, "d": [10,522], "a": 1 }, + { "px": [240,256], "src": [224,128], "f": 1, "t": 198, "d": [10,527], "a": 1 }, + { "px": [288,256], "src": [224,128], "f": 0, "t": 198, "d": [10,530], "a": 1 }, + { "px": [304,256], "src": [224,128], "f": 1, "t": 198, "d": [10,531], "a": 1 }, + { "px": [112,272], "src": [224,128], "f": 1, "t": 198, "d": [10,551], "a": 1 }, + { "px": [160,272], "src": [224,128], "f": 0, "t": 198, "d": [10,554], "a": 1 }, + { "px": [240,272], "src": [224,128], "f": 1, "t": 198, "d": [10,559], "a": 1 }, + { "px": [448,272], "src": [224,128], "f": 0, "t": 198, "d": [10,572], "a": 1 }, + { "px": [112,288], "src": [224,128], "f": 1, "t": 198, "d": [10,583], "a": 1 }, + { "px": [160,288], "src": [224,128], "f": 0, "t": 198, "d": [10,586], "a": 1 }, + { "px": [240,288], "src": [224,128], "f": 1, "t": 198, "d": [10,591], "a": 1 }, + { "px": [448,288], "src": [224,128], "f": 0, "t": 198, "d": [10,604], "a": 1 }, + { "px": [112,304], "src": [224,128], "f": 1, "t": 198, "d": [10,615], "a": 1 }, + { "px": [160,304], "src": [224,128], "f": 0, "t": 198, "d": [10,618], "a": 1 }, + { "px": [240,304], "src": [224,128], "f": 1, "t": 198, "d": [10,623], "a": 1 }, + { "px": [448,304], "src": [224,128], "f": 0, "t": 198, "d": [10,636], "a": 1 }, + { "px": [112,320], "src": [224,128], "f": 1, "t": 198, "d": [10,647], "a": 1 }, + { "px": [160,320], "src": [224,128], "f": 0, "t": 198, "d": [10,650], "a": 1 }, + { "px": [112,336], "src": [224,128], "f": 1, "t": 198, "d": [10,679], "a": 1 }, + { "px": [160,336], "src": [224,128], "f": 0, "t": 198, "d": [10,682], "a": 1 }, + { "px": [352,336], "src": [224,128], "f": 1, "t": 198, "d": [10,694], "a": 1 }, + { "px": [416,336], "src": [224,128], "f": 0, "t": 198, "d": [10,698], "a": 1 }, + { "px": [112,352], "src": [224,128], "f": 1, "t": 198, "d": [10,711], "a": 1 }, + { "px": [160,352], "src": [224,128], "f": 0, "t": 198, "d": [10,714], "a": 1 }, + { "px": [352,352], "src": [224,128], "f": 1, "t": 198, "d": [10,726], "a": 1 }, + { "px": [416,352], "src": [224,128], "f": 0, "t": 198, "d": [10,730], "a": 1 }, + { "px": [160,368], "src": [224,128], "f": 0, "t": 198, "d": [10,746], "a": 1 }, + { "px": [352,368], "src": [224,128], "f": 1, "t": 198, "d": [10,758], "a": 1 }, + { "px": [416,368], "src": [224,128], "f": 0, "t": 198, "d": [10,762], "a": 1 }, + { "px": [48,384], "src": [224,128], "f": 1, "t": 198, "d": [10,771], "a": 1 }, + { "px": [160,384], "src": [224,128], "f": 0, "t": 198, "d": [10,778], "a": 1 }, + { "px": [352,384], "src": [224,128], "f": 1, "t": 198, "d": [10,790], "a": 1 }, + { "px": [416,384], "src": [224,128], "f": 0, "t": 198, "d": [10,794], "a": 1 }, + { "px": [48,400], "src": [224,128], "f": 1, "t": 198, "d": [10,803], "a": 1 }, + { "px": [160,400], "src": [224,128], "f": 0, "t": 198, "d": [10,810], "a": 1 }, + { "px": [352,400], "src": [224,128], "f": 1, "t": 198, "d": [10,822], "a": 1 }, + { "px": [416,400], "src": [224,128], "f": 0, "t": 198, "d": [10,826], "a": 1 }, + { "px": [48,416], "src": [224,128], "f": 1, "t": 198, "d": [10,835], "a": 1 }, + { "px": [352,416], "src": [224,128], "f": 1, "t": 198, "d": [10,854], "a": 1 }, + { "px": [416,416], "src": [224,128], "f": 0, "t": 198, "d": [10,858], "a": 1 }, + { "px": [48,432], "src": [224,128], "f": 1, "t": 198, "d": [10,867], "a": 1 }, + { "px": [96,432], "src": [224,128], "f": 0, "t": 198, "d": [10,870], "a": 1 }, + { "px": [352,432], "src": [224,128], "f": 1, "t": 198, "d": [10,886], "a": 1 }, + { "px": [416,432], "src": [224,128], "f": 0, "t": 198, "d": [10,890], "a": 1 }, + { "px": [48,448], "src": [224,128], "f": 1, "t": 198, "d": [10,899], "a": 1 }, + { "px": [96,448], "src": [224,128], "f": 0, "t": 198, "d": [10,902], "a": 1 }, + { "px": [352,448], "src": [224,128], "f": 1, "t": 198, "d": [10,918], "a": 1 }, + { "px": [416,448], "src": [224,128], "f": 0, "t": 198, "d": [10,922], "a": 1 }, + { "px": [48,464], "src": [224,128], "f": 1, "t": 198, "d": [10,931], "a": 1 }, + { "px": [96,464], "src": [224,128], "f": 0, "t": 198, "d": [10,934], "a": 1 }, + { "px": [352,464], "src": [224,128], "f": 1, "t": 198, "d": [10,950], "a": 1 }, + { "px": [416,464], "src": [224,128], "f": 0, "t": 198, "d": [10,954], "a": 1 }, + { "px": [48,480], "src": [224,128], "f": 1, "t": 198, "d": [10,963], "a": 1 }, + { "px": [96,480], "src": [224,128], "f": 0, "t": 198, "d": [10,966], "a": 1 }, + { "px": [352,480], "src": [224,128], "f": 1, "t": 198, "d": [10,982], "a": 1 }, + { "px": [416,480], "src": [224,128], "f": 0, "t": 198, "d": [10,986], "a": 1 }, + { "px": [48,496], "src": [224,128], "f": 1, "t": 198, "d": [10,995], "a": 1 }, + { "px": [96,496], "src": [224,128], "f": 0, "t": 198, "d": [10,998], "a": 1 }, + { "px": [352,496], "src": [224,128], "f": 1, "t": 198, "d": [10,1014], "a": 1 }, + { "px": [416,496], "src": [224,128], "f": 0, "t": 198, "d": [10,1018], "a": 1 }, + { "px": [432,64], "src": [224,96], "f": 0, "t": 152, "d": [11,155], "a": 1 }, + { "px": [400,112], "src": [224,96], "f": 3, "t": 152, "d": [11,249], "a": 1 }, + { "px": [368,176], "src": [224,96], "f": 0, "t": 152, "d": [11,375], "a": 1 }, + { "px": [160,192], "src": [224,96], "f": 0, "t": 152, "d": [11,394], "a": 1 }, + { "px": [368,192], "src": [224,96], "f": 2, "t": 152, "d": [11,407], "a": 1 }, + { "px": [288,272], "src": [224,96], "f": 2, "t": 152, "d": [11,562], "a": 1 }, + { "px": [304,272], "src": [224,96], "f": 3, "t": 152, "d": [11,563], "a": 1 }, + { "px": [416,320], "src": [224,96], "f": 0, "t": 152, "d": [11,666], "a": 1 }, + { "px": [112,368], "src": [224,96], "f": 3, "t": 152, "d": [11,743], "a": 1 }, + { "px": [464,64], "src": [224,96], "f": 1, "t": 152, "d": [14,157], "a": 1 }, + { "px": [304,112], "src": [224,96], "f": 0, "t": 152, "d": [14,243], "a": 1 }, + { "px": [112,144], "src": [224,96], "f": 0, "t": 152, "d": [14,295], "a": 1 }, + { "px": [288,144], "src": [224,96], "f": 1, "t": 152, "d": [14,306], "a": 1 }, + { "px": [464,176], "src": [224,96], "f": 3, "t": 152, "d": [14,381], "a": 1 }, + { "px": [496,192], "src": [224,96], "f": 1, "t": 152, "d": [14,415], "a": 1 }, + { "px": [496,256], "src": [224,96], "f": 3, "t": 152, "d": [14,543], "a": 1 }, + { "px": [240,320], "src": [224,96], "f": 2, "t": 152, "d": [14,655], "a": 1 }, + { "px": [448,320], "src": [224,96], "f": 3, "t": 152, "d": [14,668], "a": 1 }, + { "px": [48,368], "src": [224,96], "f": 0, "t": 152, "d": [14,739], "a": 1 }, + { "px": [160,416], "src": [224,96], "f": 3, "t": 152, "d": [14,842], "a": 1 }, + { "px": [320,112], "src": [160,192], "f": 0, "t": 286, "d": [78,244], "a": 1 }, + { "px": [368,112], "src": [160,192], "f": 0, "t": 286, "d": [78,247], "a": 1 }, + { "px": [384,112], "src": [192,192], "f": 0, "t": 288, "d": [78,248], "a": 1 }, + { "px": [160,144], "src": [160,192], "f": 0, "t": 286, "d": [78,298], "a": 1 }, + { "px": [192,144], "src": [192,192], "f": 0, "t": 288, "d": [78,300], "a": 1 }, + { "px": [208,144], "src": [192,192], "f": 0, "t": 288, "d": [78,301], "a": 1 }, + { "px": [240,144], "src": [160,192], "f": 0, "t": 286, "d": [78,303], "a": 1 }, + { "px": [256,144], "src": [192,192], "f": 0, "t": 288, "d": [78,304], "a": 1 }, + { "px": [384,192], "src": [160,192], "f": 0, "t": 286, "d": [78,408], "a": 1 }, + { "px": [448,192], "src": [192,192], "f": 0, "t": 288, "d": [78,412], "a": 1 }, + { "px": [64,368], "src": [192,192], "f": 0, "t": 288, "d": [78,740], "a": 1 }, + { "px": [80,368], "src": [192,192], "f": 0, "t": 288, "d": [78,741], "a": 1 }, + { "px": [384,176], "src": [32,0], "f": 0, "t": 2, "d": [80,376], "a": 1 }, + { "px": [400,176], "src": [32,0], "f": 0, "t": 2, "d": [80,377], "a": 1 }, + { "px": [416,176], "src": [32,0], "f": 0, "t": 2, "d": [80,378], "a": 1 }, + { "px": [432,176], "src": [32,0], "f": 0, "t": 2, "d": [80,379], "a": 1 }, + { "px": [448,176], "src": [32,0], "f": 0, "t": 2, "d": [80,380], "a": 1 }, + { "px": [240,192], "src": [32,0], "f": 0, "t": 2, "d": [80,399], "a": 1 }, + { "px": [448,256], "src": [32,0], "f": 0, "t": 2, "d": [80,540], "a": 1 }, + { "px": [464,256], "src": [32,0], "f": 0, "t": 2, "d": [80,541], "a": 1 }, + { "px": [480,256], "src": [32,0], "f": 0, "t": 2, "d": [80,542], "a": 1 }, + { "px": [256,320], "src": [32,0], "f": 0, "t": 2, "d": [80,656], "a": 1 }, + { "px": [352,320], "src": [32,0], "f": 0, "t": 2, "d": [80,662], "a": 1 }, + { "px": [96,416], "src": [32,0], "f": 0, "t": 2, "d": [80,838], "a": 1 }, + { "px": [112,416], "src": [32,0], "f": 0, "t": 2, "d": [80,839], "a": 1 }, + { "px": [384,160], "src": [0,96], "f": 0, "t": 138, "d": [110,344], "a": 1 }, + { "px": [448,160], "src": [0,96], "f": 0, "t": 138, "d": [110,348], "a": 1 }, + { "px": [160,176], "src": [32,96], "f": 0, "t": 140, "d": [110,362], "a": 1 }, + { "px": [176,176], "src": [32,96], "f": 0, "t": 140, "d": [110,363], "a": 1 }, + { "px": [192,176], "src": [32,96], "f": 0, "t": 140, "d": [110,364], "a": 1 }, + { "px": [208,176], "src": [0,96], "f": 0, "t": 138, "d": [110,365], "a": 1 }, + { "px": [224,176], "src": [0,96], "f": 0, "t": 138, "d": [110,366], "a": 1 }, + { "px": [448,240], "src": [0,96], "f": 0, "t": 138, "d": [110,508], "a": 1 }, + { "px": [480,240], "src": [32,96], "f": 0, "t": 140, "d": [110,510], "a": 1 }, + { "px": [256,304], "src": [32,96], "f": 0, "t": 140, "d": [110,624], "a": 1 }, + { "px": [272,304], "src": [32,96], "f": 0, "t": 140, "d": [110,625], "a": 1 }, + { "px": [304,304], "src": [0,96], "f": 0, "t": 138, "d": [110,627], "a": 1 }, + { "px": [320,304], "src": [32,96], "f": 0, "t": 140, "d": [110,628], "a": 1 }, + { "px": [336,304], "src": [32,96], "f": 0, "t": 140, "d": [110,629], "a": 1 }, + { "px": [416,304], "src": [32,96], "f": 0, "t": 140, "d": [110,634], "a": 1 }, + { "px": [432,304], "src": [0,96], "f": 0, "t": 138, "d": [110,635], "a": 1 }, + { "px": [96,400], "src": [0,96], "f": 0, "t": 138, "d": [110,806], "a": 1 }, + { "px": [112,400], "src": [0,96], "f": 0, "t": 138, "d": [110,807], "a": 1 } + ], + "seed": 6011873, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36b9440-66b0-11ec-9cd7-41d7e67d7815", + "levelId": 59, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [432,0], "src": [320,272], "f": 0, "t": 411, "d": [108,27], "a": 1 }, + { "px": [432,16], "src": [320,272], "f": 0, "t": 411, "d": [108,59], "a": 1 }, + { "px": [432,32], "src": [320,272], "f": 0, "t": 411, "d": [108,91], "a": 1 }, + { "px": [432,48], "src": [320,272], "f": 0, "t": 411, "d": [108,123], "a": 1 }, + { "px": [432,80], "src": [320,272], "f": 0, "t": 411, "d": [108,187], "a": 1 }, + { "px": [432,96], "src": [320,272], "f": 0, "t": 411, "d": [108,219], "a": 1 }, + { "px": [432,112], "src": [320,272], "f": 0, "t": 411, "d": [108,251], "a": 1 }, + { "px": [336,128], "src": [320,272], "f": 0, "t": 411, "d": [108,277], "a": 1 }, + { "px": [352,128], "src": [320,272], "f": 0, "t": 411, "d": [108,278], "a": 1 }, + { "px": [368,128], "src": [320,272], "f": 0, "t": 411, "d": [108,279], "a": 1 }, + { "px": [384,128], "src": [320,272], "f": 0, "t": 411, "d": [108,280], "a": 1 }, + { "px": [400,128], "src": [320,272], "f": 0, "t": 411, "d": [108,281], "a": 1 }, + { "px": [416,128], "src": [320,272], "f": 0, "t": 411, "d": [108,282], "a": 1 }, + { "px": [432,128], "src": [320,272], "f": 0, "t": 411, "d": [108,283], "a": 1 }, + { "px": [336,144], "src": [320,272], "f": 0, "t": 411, "d": [108,309], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [108,311], "a": 1 }, + { "px": [384,144], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [400,144], "src": [320,272], "f": 0, "t": 411, "d": [108,313], "a": 1 }, + { "px": [416,144], "src": [320,272], "f": 0, "t": 411, "d": [108,314], "a": 1 }, + { "px": [432,144], "src": [320,272], "f": 0, "t": 411, "d": [108,315], "a": 1 }, + { "px": [144,160], "src": [320,272], "f": 0, "t": 411, "d": [108,329], "a": 1 }, + { "px": [176,160], "src": [320,272], "f": 0, "t": 411, "d": [108,331], "a": 1 }, + { "px": [192,160], "src": [320,272], "f": 0, "t": 411, "d": [108,332], "a": 1 }, + { "px": [208,160], "src": [320,272], "f": 0, "t": 411, "d": [108,333], "a": 1 }, + { "px": [224,160], "src": [320,272], "f": 0, "t": 411, "d": [108,334], "a": 1 }, + { "px": [240,160], "src": [320,272], "f": 0, "t": 411, "d": [108,335], "a": 1 }, + { "px": [256,160], "src": [320,272], "f": 0, "t": 411, "d": [108,336], "a": 1 }, + { "px": [336,160], "src": [320,272], "f": 0, "t": 411, "d": [108,341], "a": 1 }, + { "px": [352,160], "src": [320,272], "f": 0, "t": 411, "d": [108,342], "a": 1 }, + { "px": [368,160], "src": [320,272], "f": 0, "t": 411, "d": [108,343], "a": 1 }, + { "px": [384,160], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [416,160], "src": [320,272], "f": 0, "t": 411, "d": [108,346], "a": 1 }, + { "px": [432,160], "src": [320,272], "f": 0, "t": 411, "d": [108,347], "a": 1 }, + { "px": [144,176], "src": [320,272], "f": 0, "t": 411, "d": [108,361], "a": 1 }, + { "px": [160,176], "src": [320,272], "f": 0, "t": 411, "d": [108,362], "a": 1 }, + { "px": [176,176], "src": [320,272], "f": 0, "t": 411, "d": [108,363], "a": 1 }, + { "px": [192,176], "src": [320,272], "f": 0, "t": 411, "d": [108,364], "a": 1 }, + { "px": [208,176], "src": [320,272], "f": 0, "t": 411, "d": [108,365], "a": 1 }, + { "px": [224,176], "src": [320,272], "f": 0, "t": 411, "d": [108,366], "a": 1 }, + { "px": [240,176], "src": [320,272], "f": 0, "t": 411, "d": [108,367], "a": 1 }, + { "px": [256,176], "src": [320,272], "f": 0, "t": 411, "d": [108,368], "a": 1 }, + { "px": [336,176], "src": [320,272], "f": 0, "t": 411, "d": [108,373], "a": 1 }, + { "px": [336,208], "src": [320,272], "f": 0, "t": 411, "d": [108,437], "a": 1 }, + { "px": [352,208], "src": [320,272], "f": 0, "t": 411, "d": [108,438], "a": 1 }, + { "px": [368,208], "src": [320,272], "f": 0, "t": 411, "d": [108,439], "a": 1 }, + { "px": [384,208], "src": [320,272], "f": 0, "t": 411, "d": [108,440], "a": 1 }, + { "px": [400,208], "src": [320,272], "f": 0, "t": 411, "d": [108,441], "a": 1 }, + { "px": [432,208], "src": [320,272], "f": 0, "t": 411, "d": [108,443], "a": 1 }, + { "px": [448,208], "src": [320,272], "f": 0, "t": 411, "d": [108,444], "a": 1 }, + { "px": [464,208], "src": [320,272], "f": 0, "t": 411, "d": [108,445], "a": 1 }, + { "px": [336,224], "src": [320,272], "f": 0, "t": 411, "d": [108,469], "a": 1 }, + { "px": [352,224], "src": [320,272], "f": 0, "t": 411, "d": [108,470], "a": 1 }, + { "px": [384,224], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [400,224], "src": [320,272], "f": 0, "t": 411, "d": [108,473], "a": 1 }, + { "px": [416,224], "src": [320,272], "f": 0, "t": 411, "d": [108,474], "a": 1 }, + { "px": [432,224], "src": [320,272], "f": 0, "t": 411, "d": [108,475], "a": 1 }, + { "px": [448,224], "src": [320,272], "f": 0, "t": 411, "d": [108,476], "a": 1 }, + { "px": [464,224], "src": [320,272], "f": 0, "t": 411, "d": [108,477], "a": 1 }, + { "px": [336,240], "src": [320,272], "f": 0, "t": 411, "d": [108,501], "a": 1 }, + { "px": [352,240], "src": [320,272], "f": 0, "t": 411, "d": [108,502], "a": 1 }, + { "px": [368,240], "src": [320,272], "f": 0, "t": 411, "d": [108,503], "a": 1 }, + { "px": [384,240], "src": [320,272], "f": 0, "t": 411, "d": [108,504], "a": 1 }, + { "px": [400,240], "src": [320,272], "f": 0, "t": 411, "d": [108,505], "a": 1 }, + { "px": [416,240], "src": [320,272], "f": 0, "t": 411, "d": [108,506], "a": 1 }, + { "px": [432,240], "src": [320,272], "f": 0, "t": 411, "d": [108,507], "a": 1 }, + { "px": [448,240], "src": [320,272], "f": 0, "t": 411, "d": [108,508], "a": 1 }, + { "px": [464,240], "src": [320,272], "f": 0, "t": 411, "d": [108,509], "a": 1 }, + { "px": [336,256], "src": [320,272], "f": 0, "t": 411, "d": [108,533], "a": 1 }, + { "px": [352,256], "src": [320,272], "f": 0, "t": 411, "d": [108,534], "a": 1 }, + { "px": [368,256], "src": [320,272], "f": 0, "t": 411, "d": [108,535], "a": 1 }, + { "px": [384,256], "src": [320,272], "f": 0, "t": 411, "d": [108,536], "a": 1 }, + { "px": [400,256], "src": [320,272], "f": 0, "t": 411, "d": [108,537], "a": 1 }, + { "px": [416,256], "src": [320,272], "f": 0, "t": 411, "d": [108,538], "a": 1 }, + { "px": [336,272], "src": [320,272], "f": 0, "t": 411, "d": [108,565], "a": 1 }, + { "px": [352,272], "src": [320,272], "f": 0, "t": 411, "d": [108,566], "a": 1 }, + { "px": [368,272], "src": [320,272], "f": 0, "t": 411, "d": [108,567], "a": 1 }, + { "px": [384,272], "src": [320,272], "f": 0, "t": 411, "d": [108,568], "a": 1 }, + { "px": [400,272], "src": [320,272], "f": 0, "t": 411, "d": [108,569], "a": 1 }, + { "px": [416,272], "src": [320,272], "f": 0, "t": 411, "d": [108,570], "a": 1 }, + { "px": [272,288], "src": [320,272], "f": 0, "t": 411, "d": [108,593], "a": 1 }, + { "px": [288,288], "src": [320,272], "f": 0, "t": 411, "d": [108,594], "a": 1 }, + { "px": [304,288], "src": [320,272], "f": 0, "t": 411, "d": [108,595], "a": 1 }, + { "px": [320,288], "src": [320,272], "f": 0, "t": 411, "d": [108,596], "a": 1 }, + { "px": [336,288], "src": [320,272], "f": 0, "t": 411, "d": [108,597], "a": 1 }, + { "px": [352,288], "src": [320,272], "f": 0, "t": 411, "d": [108,598], "a": 1 }, + { "px": [368,288], "src": [320,272], "f": 0, "t": 411, "d": [108,599], "a": 1 }, + { "px": [384,288], "src": [320,272], "f": 0, "t": 411, "d": [108,600], "a": 1 }, + { "px": [400,288], "src": [320,272], "f": 0, "t": 411, "d": [108,601], "a": 1 }, + { "px": [416,288], "src": [320,272], "f": 0, "t": 411, "d": [108,602], "a": 1 }, + { "px": [272,304], "src": [320,272], "f": 0, "t": 411, "d": [108,625], "a": 1 }, + { "px": [288,304], "src": [320,272], "f": 0, "t": 411, "d": [108,626], "a": 1 }, + { "px": [304,304], "src": [320,272], "f": 0, "t": 411, "d": [108,627], "a": 1 }, + { "px": [320,304], "src": [320,272], "f": 0, "t": 411, "d": [108,628], "a": 1 }, + { "px": [336,304], "src": [320,272], "f": 0, "t": 411, "d": [108,629], "a": 1 }, + { "px": [352,304], "src": [320,272], "f": 0, "t": 411, "d": [108,630], "a": 1 }, + { "px": [368,304], "src": [320,272], "f": 0, "t": 411, "d": [108,631], "a": 1 }, + { "px": [384,304], "src": [320,272], "f": 0, "t": 411, "d": [108,632], "a": 1 }, + { "px": [400,304], "src": [320,272], "f": 0, "t": 411, "d": [108,633], "a": 1 }, + { "px": [416,304], "src": [320,272], "f": 0, "t": 411, "d": [108,634], "a": 1 }, + { "px": [384,320], "src": [320,272], "f": 0, "t": 411, "d": [108,664], "a": 1 }, + { "px": [384,336], "src": [320,272], "f": 0, "t": 411, "d": [108,696], "a": 1 }, + { "px": [384,352], "src": [320,272], "f": 0, "t": 411, "d": [108,728], "a": 1 }, + { "px": [384,368], "src": [320,272], "f": 0, "t": 411, "d": [108,760], "a": 1 }, + { "px": [80,384], "src": [320,272], "f": 0, "t": 411, "d": [108,773], "a": 1 }, + { "px": [96,384], "src": [320,272], "f": 0, "t": 411, "d": [108,774], "a": 1 }, + { "px": [112,384], "src": [320,272], "f": 0, "t": 411, "d": [108,775], "a": 1 }, + { "px": [128,384], "src": [320,272], "f": 0, "t": 411, "d": [108,776], "a": 1 }, + { "px": [80,400], "src": [320,272], "f": 0, "t": 411, "d": [108,805], "a": 1 }, + { "px": [96,400], "src": [320,272], "f": 0, "t": 411, "d": [108,806], "a": 1 }, + { "px": [112,400], "src": [320,272], "f": 0, "t": 411, "d": [108,807], "a": 1 }, + { "px": [128,400], "src": [320,272], "f": 0, "t": 411, "d": [108,808], "a": 1 }, + { "px": [384,400], "src": [320,272], "f": 0, "t": 411, "d": [108,824], "a": 1 }, + { "px": [384,416], "src": [320,272], "f": 0, "t": 411, "d": [108,856], "a": 1 }, + { "px": [384,432], "src": [320,272], "f": 0, "t": 411, "d": [108,888], "a": 1 }, + { "px": [384,464], "src": [320,272], "f": 0, "t": 411, "d": [108,952], "a": 1 }, + { "px": [384,480], "src": [320,272], "f": 0, "t": 411, "d": [108,984], "a": 1 }, + { "px": [384,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1016], "a": 1 }, + { "px": [432,0], "src": [256,240], "f": 1, "t": 361, "d": [107,26], "a": 1 }, + { "px": [416,0], "src": [272,240], "f": 1, "t": 362, "d": [107,26], "a": 1 }, + { "px": [432,0], "src": [256,240], "f": 0, "t": 361, "d": [107,28], "a": 1 }, + { "px": [448,0], "src": [272,240], "f": 0, "t": 362, "d": [107,28], "a": 1 }, + { "px": [432,16], "src": [256,240], "f": 1, "t": 361, "d": [107,58], "a": 1 }, + { "px": [416,16], "src": [272,240], "f": 1, "t": 362, "d": [107,58], "a": 1 }, + { "px": [432,16], "src": [256,240], "f": 0, "t": 361, "d": [107,60], "a": 1 }, + { "px": [448,16], "src": [272,240], "f": 0, "t": 362, "d": [107,60], "a": 1 }, + { "px": [432,32], "src": [256,240], "f": 1, "t": 361, "d": [107,90], "a": 1 }, + { "px": [416,32], "src": [272,240], "f": 1, "t": 362, "d": [107,90], "a": 1 }, + { "px": [432,32], "src": [256,240], "f": 0, "t": 361, "d": [107,92], "a": 1 }, + { "px": [448,32], "src": [272,240], "f": 0, "t": 362, "d": [107,92], "a": 1 }, + { "px": [432,48], "src": [256,240], "f": 1, "t": 361, "d": [107,122], "a": 1 }, + { "px": [416,48], "src": [272,240], "f": 1, "t": 362, "d": [107,122], "a": 1 }, + { "px": [432,48], "src": [256,240], "f": 0, "t": 361, "d": [107,124], "a": 1 }, + { "px": [448,48], "src": [272,240], "f": 0, "t": 362, "d": [107,124], "a": 1 }, + { "px": [400,64], "src": [256,240], "f": 0, "t": 361, "d": [107,154], "a": 1 }, + { "px": [416,64], "src": [272,240], "f": 0, "t": 362, "d": [107,154], "a": 1 }, + { "px": [432,80], "src": [256,240], "f": 1, "t": 361, "d": [107,186], "a": 1 }, + { "px": [416,80], "src": [272,240], "f": 1, "t": 362, "d": [107,186], "a": 1 }, + { "px": [432,80], "src": [256,240], "f": 0, "t": 361, "d": [107,188], "a": 1 }, + { "px": [448,80], "src": [272,240], "f": 0, "t": 362, "d": [107,188], "a": 1 }, + { "px": [432,96], "src": [256,240], "f": 1, "t": 361, "d": [107,218], "a": 1 }, + { "px": [416,96], "src": [272,240], "f": 1, "t": 362, "d": [107,218], "a": 1 }, + { "px": [432,96], "src": [256,240], "f": 0, "t": 361, "d": [107,220], "a": 1 }, + { "px": [448,96], "src": [272,240], "f": 0, "t": 362, "d": [107,220], "a": 1 }, + { "px": [432,112], "src": [256,240], "f": 1, "t": 361, "d": [107,250], "a": 1 }, + { "px": [416,112], "src": [272,240], "f": 1, "t": 362, "d": [107,250], "a": 1 }, + { "px": [432,112], "src": [256,240], "f": 0, "t": 361, "d": [107,252], "a": 1 }, + { "px": [448,112], "src": [272,240], "f": 0, "t": 362, "d": [107,252], "a": 1 }, + { "px": [336,128], "src": [256,240], "f": 1, "t": 361, "d": [107,276], "a": 1 }, + { "px": [320,128], "src": [272,240], "f": 1, "t": 362, "d": [107,276], "a": 1 }, + { "px": [432,128], "src": [256,240], "f": 0, "t": 361, "d": [107,284], "a": 1 }, + { "px": [448,128], "src": [272,240], "f": 0, "t": 362, "d": [107,284], "a": 1 }, + { "px": [336,144], "src": [256,240], "f": 1, "t": 361, "d": [107,308], "a": 1 }, + { "px": [320,144], "src": [272,240], "f": 1, "t": 362, "d": [107,308], "a": 1 }, + { "px": [432,144], "src": [256,240], "f": 0, "t": 361, "d": [107,316], "a": 1 }, + { "px": [448,144], "src": [272,240], "f": 0, "t": 362, "d": [107,316], "a": 1 }, + { "px": [256,160], "src": [256,240], "f": 0, "t": 361, "d": [107,337], "a": 1 }, + { "px": [272,160], "src": [272,240], "f": 0, "t": 362, "d": [107,337], "a": 1 }, + { "px": [336,160], "src": [256,240], "f": 1, "t": 361, "d": [107,340], "a": 1 }, + { "px": [320,160], "src": [272,240], "f": 1, "t": 362, "d": [107,340], "a": 1 }, + { "px": [144,176], "src": [256,240], "f": 1, "t": 361, "d": [107,360], "a": 1 }, + { "px": [128,176], "src": [272,240], "f": 1, "t": 362, "d": [107,360], "a": 1 }, + { "px": [256,176], "src": [256,240], "f": 0, "t": 361, "d": [107,369], "a": 1 }, + { "px": [272,176], "src": [272,240], "f": 0, "t": 362, "d": [107,369], "a": 1 }, + { "px": [336,176], "src": [256,240], "f": 1, "t": 361, "d": [107,372], "a": 1 }, + { "px": [320,176], "src": [272,240], "f": 1, "t": 362, "d": [107,372], "a": 1 }, + { "px": [336,176], "src": [256,240], "f": 0, "t": 361, "d": [107,374], "a": 1 }, + { "px": [352,176], "src": [272,240], "f": 0, "t": 362, "d": [107,374], "a": 1 }, + { "px": [144,192], "src": [256,240], "f": 1, "t": 361, "d": [107,392], "a": 1 }, + { "px": [128,192], "src": [272,240], "f": 1, "t": 362, "d": [107,392], "a": 1 }, + { "px": [128,192], "src": [256,240], "f": 0, "t": 361, "d": [107,393], "a": 1 }, + { "px": [144,192], "src": [272,240], "f": 0, "t": 362, "d": [107,393], "a": 1 }, + { "px": [272,192], "src": [256,240], "f": 1, "t": 361, "d": [107,400], "a": 1 }, + { "px": [256,192], "src": [272,240], "f": 1, "t": 362, "d": [107,400], "a": 1 }, + { "px": [256,192], "src": [256,240], "f": 0, "t": 361, "d": [107,401], "a": 1 }, + { "px": [272,192], "src": [272,240], "f": 0, "t": 362, "d": [107,401], "a": 1 }, + { "px": [336,192], "src": [256,240], "f": 1, "t": 361, "d": [107,404], "a": 1 }, + { "px": [320,192], "src": [272,240], "f": 1, "t": 362, "d": [107,404], "a": 1 }, + { "px": [336,192], "src": [256,240], "f": 0, "t": 361, "d": [107,406], "a": 1 }, + { "px": [352,192], "src": [272,240], "f": 0, "t": 362, "d": [107,406], "a": 1 }, + { "px": [144,208], "src": [256,240], "f": 1, "t": 361, "d": [107,424], "a": 1 }, + { "px": [128,208], "src": [272,240], "f": 1, "t": 362, "d": [107,424], "a": 1 }, + { "px": [128,208], "src": [256,240], "f": 0, "t": 361, "d": [107,425], "a": 1 }, + { "px": [144,208], "src": [272,240], "f": 0, "t": 362, "d": [107,425], "a": 1 }, + { "px": [272,208], "src": [256,240], "f": 1, "t": 361, "d": [107,432], "a": 1 }, + { "px": [256,208], "src": [272,240], "f": 1, "t": 362, "d": [107,432], "a": 1 }, + { "px": [256,208], "src": [256,240], "f": 0, "t": 361, "d": [107,433], "a": 1 }, + { "px": [272,208], "src": [272,240], "f": 0, "t": 362, "d": [107,433], "a": 1 }, + { "px": [336,208], "src": [256,240], "f": 1, "t": 361, "d": [107,436], "a": 1 }, + { "px": [320,208], "src": [272,240], "f": 1, "t": 362, "d": [107,436], "a": 1 }, + { "px": [144,224], "src": [256,240], "f": 1, "t": 361, "d": [107,456], "a": 1 }, + { "px": [128,224], "src": [272,240], "f": 1, "t": 362, "d": [107,456], "a": 1 }, + { "px": [128,224], "src": [256,240], "f": 0, "t": 361, "d": [107,457], "a": 1 }, + { "px": [144,224], "src": [272,240], "f": 0, "t": 362, "d": [107,457], "a": 1 }, + { "px": [272,224], "src": [256,240], "f": 1, "t": 361, "d": [107,464], "a": 1 }, + { "px": [256,224], "src": [272,240], "f": 1, "t": 362, "d": [107,464], "a": 1 }, + { "px": [256,224], "src": [256,240], "f": 0, "t": 361, "d": [107,465], "a": 1 }, + { "px": [272,224], "src": [272,240], "f": 0, "t": 362, "d": [107,465], "a": 1 }, + { "px": [336,224], "src": [256,240], "f": 1, "t": 361, "d": [107,468], "a": 1 }, + { "px": [320,224], "src": [272,240], "f": 1, "t": 362, "d": [107,468], "a": 1 }, + { "px": [464,224], "src": [256,240], "f": 0, "t": 361, "d": [107,478], "a": 1 }, + { "px": [480,224], "src": [272,240], "f": 0, "t": 362, "d": [107,478], "a": 1 }, + { "px": [144,240], "src": [256,240], "f": 1, "t": 361, "d": [107,488], "a": 1 }, + { "px": [128,240], "src": [272,240], "f": 1, "t": 362, "d": [107,488], "a": 1 }, + { "px": [128,240], "src": [256,240], "f": 0, "t": 361, "d": [107,489], "a": 1 }, + { "px": [144,240], "src": [272,240], "f": 0, "t": 362, "d": [107,489], "a": 1 }, + { "px": [272,240], "src": [256,240], "f": 1, "t": 361, "d": [107,496], "a": 1 }, + { "px": [256,240], "src": [272,240], "f": 1, "t": 362, "d": [107,496], "a": 1 }, + { "px": [256,240], "src": [256,240], "f": 0, "t": 361, "d": [107,497], "a": 1 }, + { "px": [272,240], "src": [272,240], "f": 0, "t": 362, "d": [107,497], "a": 1 }, + { "px": [336,240], "src": [256,240], "f": 1, "t": 361, "d": [107,500], "a": 1 }, + { "px": [320,240], "src": [272,240], "f": 1, "t": 362, "d": [107,500], "a": 1 }, + { "px": [144,256], "src": [256,240], "f": 1, "t": 361, "d": [107,520], "a": 1 }, + { "px": [128,256], "src": [272,240], "f": 1, "t": 362, "d": [107,520], "a": 1 }, + { "px": [128,256], "src": [256,240], "f": 0, "t": 361, "d": [107,521], "a": 1 }, + { "px": [144,256], "src": [272,240], "f": 0, "t": 362, "d": [107,521], "a": 1 }, + { "px": [272,256], "src": [256,240], "f": 1, "t": 361, "d": [107,528], "a": 1 }, + { "px": [256,256], "src": [272,240], "f": 1, "t": 362, "d": [107,528], "a": 1 }, + { "px": [256,256], "src": [256,240], "f": 0, "t": 361, "d": [107,529], "a": 1 }, + { "px": [272,256], "src": [272,240], "f": 0, "t": 362, "d": [107,529], "a": 1 }, + { "px": [336,256], "src": [256,240], "f": 1, "t": 361, "d": [107,532], "a": 1 }, + { "px": [320,256], "src": [272,240], "f": 1, "t": 362, "d": [107,532], "a": 1 }, + { "px": [416,256], "src": [256,240], "f": 0, "t": 361, "d": [107,539], "a": 1 }, + { "px": [432,256], "src": [272,240], "f": 0, "t": 362, "d": [107,539], "a": 1 }, + { "px": [144,272], "src": [256,240], "f": 1, "t": 361, "d": [107,552], "a": 1 }, + { "px": [128,272], "src": [272,240], "f": 1, "t": 362, "d": [107,552], "a": 1 }, + { "px": [128,272], "src": [256,240], "f": 0, "t": 361, "d": [107,553], "a": 1 }, + { "px": [144,272], "src": [272,240], "f": 0, "t": 362, "d": [107,553], "a": 1 }, + { "px": [272,272], "src": [256,240], "f": 1, "t": 361, "d": [107,560], "a": 1 }, + { "px": [256,272], "src": [272,240], "f": 1, "t": 362, "d": [107,560], "a": 1 }, + { "px": [256,272], "src": [256,240], "f": 0, "t": 361, "d": [107,561], "a": 1 }, + { "px": [272,272], "src": [272,240], "f": 0, "t": 362, "d": [107,561], "a": 1 }, + { "px": [336,272], "src": [256,240], "f": 1, "t": 361, "d": [107,564], "a": 1 }, + { "px": [320,272], "src": [272,240], "f": 1, "t": 362, "d": [107,564], "a": 1 }, + { "px": [416,272], "src": [256,240], "f": 0, "t": 361, "d": [107,571], "a": 1 }, + { "px": [432,272], "src": [272,240], "f": 0, "t": 362, "d": [107,571], "a": 1 }, + { "px": [144,288], "src": [256,240], "f": 1, "t": 361, "d": [107,584], "a": 1 }, + { "px": [128,288], "src": [272,240], "f": 1, "t": 362, "d": [107,584], "a": 1 }, + { "px": [128,288], "src": [256,240], "f": 0, "t": 361, "d": [107,585], "a": 1 }, + { "px": [144,288], "src": [272,240], "f": 0, "t": 362, "d": [107,585], "a": 1 }, + { "px": [272,288], "src": [256,240], "f": 1, "t": 361, "d": [107,592], "a": 1 }, + { "px": [256,288], "src": [272,240], "f": 1, "t": 362, "d": [107,592], "a": 1 }, + { "px": [416,288], "src": [256,240], "f": 0, "t": 361, "d": [107,603], "a": 1 }, + { "px": [432,288], "src": [272,240], "f": 0, "t": 362, "d": [107,603], "a": 1 }, + { "px": [144,304], "src": [256,240], "f": 1, "t": 361, "d": [107,616], "a": 1 }, + { "px": [128,304], "src": [272,240], "f": 1, "t": 362, "d": [107,616], "a": 1 }, + { "px": [128,304], "src": [256,240], "f": 0, "t": 361, "d": [107,617], "a": 1 }, + { "px": [144,304], "src": [272,240], "f": 0, "t": 362, "d": [107,617], "a": 1 }, + { "px": [416,304], "src": [256,240], "f": 0, "t": 361, "d": [107,635], "a": 1 }, + { "px": [432,304], "src": [272,240], "f": 0, "t": 362, "d": [107,635], "a": 1 }, + { "px": [144,320], "src": [256,240], "f": 1, "t": 361, "d": [107,648], "a": 1 }, + { "px": [128,320], "src": [272,240], "f": 1, "t": 362, "d": [107,648], "a": 1 }, + { "px": [128,320], "src": [256,240], "f": 0, "t": 361, "d": [107,649], "a": 1 }, + { "px": [144,320], "src": [272,240], "f": 0, "t": 362, "d": [107,649], "a": 1 }, + { "px": [384,320], "src": [256,240], "f": 1, "t": 361, "d": [107,663], "a": 1 }, + { "px": [368,320], "src": [272,240], "f": 1, "t": 362, "d": [107,663], "a": 1 }, + { "px": [384,320], "src": [256,240], "f": 0, "t": 361, "d": [107,665], "a": 1 }, + { "px": [400,320], "src": [272,240], "f": 0, "t": 362, "d": [107,665], "a": 1 }, + { "px": [144,336], "src": [256,240], "f": 1, "t": 361, "d": [107,680], "a": 1 }, + { "px": [128,336], "src": [272,240], "f": 1, "t": 362, "d": [107,680], "a": 1 }, + { "px": [128,336], "src": [256,240], "f": 0, "t": 361, "d": [107,681], "a": 1 }, + { "px": [144,336], "src": [272,240], "f": 0, "t": 362, "d": [107,681], "a": 1 }, + { "px": [384,336], "src": [256,240], "f": 1, "t": 361, "d": [107,695], "a": 1 }, + { "px": [368,336], "src": [272,240], "f": 1, "t": 362, "d": [107,695], "a": 1 }, + { "px": [384,336], "src": [256,240], "f": 0, "t": 361, "d": [107,697], "a": 1 }, + { "px": [400,336], "src": [272,240], "f": 0, "t": 362, "d": [107,697], "a": 1 }, + { "px": [144,352], "src": [256,240], "f": 1, "t": 361, "d": [107,712], "a": 1 }, + { "px": [128,352], "src": [272,240], "f": 1, "t": 362, "d": [107,712], "a": 1 }, + { "px": [128,352], "src": [256,240], "f": 0, "t": 361, "d": [107,713], "a": 1 }, + { "px": [144,352], "src": [272,240], "f": 0, "t": 362, "d": [107,713], "a": 1 }, + { "px": [384,352], "src": [256,240], "f": 1, "t": 361, "d": [107,727], "a": 1 }, + { "px": [368,352], "src": [272,240], "f": 1, "t": 362, "d": [107,727], "a": 1 }, + { "px": [384,352], "src": [256,240], "f": 0, "t": 361, "d": [107,729], "a": 1 }, + { "px": [400,352], "src": [272,240], "f": 0, "t": 362, "d": [107,729], "a": 1 }, + { "px": [144,368], "src": [256,240], "f": 1, "t": 361, "d": [107,744], "a": 1 }, + { "px": [128,368], "src": [272,240], "f": 1, "t": 362, "d": [107,744], "a": 1 }, + { "px": [128,368], "src": [256,240], "f": 0, "t": 361, "d": [107,745], "a": 1 }, + { "px": [144,368], "src": [272,240], "f": 0, "t": 362, "d": [107,745], "a": 1 }, + { "px": [384,368], "src": [256,240], "f": 1, "t": 361, "d": [107,759], "a": 1 }, + { "px": [368,368], "src": [272,240], "f": 1, "t": 362, "d": [107,759], "a": 1 }, + { "px": [384,368], "src": [256,240], "f": 0, "t": 361, "d": [107,761], "a": 1 }, + { "px": [400,368], "src": [272,240], "f": 0, "t": 362, "d": [107,761], "a": 1 }, + { "px": [128,384], "src": [256,240], "f": 0, "t": 361, "d": [107,777], "a": 1 }, + { "px": [144,384], "src": [272,240], "f": 0, "t": 362, "d": [107,777], "a": 1 }, + { "px": [384,384], "src": [256,240], "f": 1, "t": 361, "d": [107,791], "a": 1 }, + { "px": [368,384], "src": [272,240], "f": 1, "t": 362, "d": [107,791], "a": 1 }, + { "px": [384,384], "src": [256,240], "f": 0, "t": 361, "d": [107,793], "a": 1 }, + { "px": [400,384], "src": [272,240], "f": 0, "t": 362, "d": [107,793], "a": 1 }, + { "px": [80,400], "src": [256,240], "f": 1, "t": 361, "d": [107,804], "a": 1 }, + { "px": [64,400], "src": [272,240], "f": 1, "t": 362, "d": [107,804], "a": 1 }, + { "px": [128,400], "src": [256,240], "f": 0, "t": 361, "d": [107,809], "a": 1 }, + { "px": [144,400], "src": [272,240], "f": 0, "t": 362, "d": [107,809], "a": 1 }, + { "px": [384,400], "src": [256,240], "f": 1, "t": 361, "d": [107,823], "a": 1 }, + { "px": [368,400], "src": [272,240], "f": 1, "t": 362, "d": [107,823], "a": 1 }, + { "px": [384,400], "src": [256,240], "f": 0, "t": 361, "d": [107,825], "a": 1 }, + { "px": [400,400], "src": [272,240], "f": 0, "t": 362, "d": [107,825], "a": 1 }, + { "px": [80,416], "src": [256,240], "f": 1, "t": 361, "d": [107,836], "a": 1 }, + { "px": [64,416], "src": [272,240], "f": 1, "t": 362, "d": [107,836], "a": 1 }, + { "px": [64,416], "src": [256,240], "f": 0, "t": 361, "d": [107,837], "a": 1 }, + { "px": [80,416], "src": [272,240], "f": 0, "t": 362, "d": [107,837], "a": 1 }, + { "px": [384,416], "src": [256,240], "f": 1, "t": 361, "d": [107,855], "a": 1 }, + { "px": [368,416], "src": [272,240], "f": 1, "t": 362, "d": [107,855], "a": 1 }, + { "px": [384,416], "src": [256,240], "f": 0, "t": 361, "d": [107,857], "a": 1 }, + { "px": [400,416], "src": [272,240], "f": 0, "t": 362, "d": [107,857], "a": 1 }, + { "px": [80,432], "src": [256,240], "f": 1, "t": 361, "d": [107,868], "a": 1 }, + { "px": [64,432], "src": [272,240], "f": 1, "t": 362, "d": [107,868], "a": 1 }, + { "px": [64,432], "src": [256,240], "f": 0, "t": 361, "d": [107,869], "a": 1 }, + { "px": [80,432], "src": [272,240], "f": 0, "t": 362, "d": [107,869], "a": 1 }, + { "px": [384,432], "src": [256,240], "f": 1, "t": 361, "d": [107,887], "a": 1 }, + { "px": [368,432], "src": [272,240], "f": 1, "t": 362, "d": [107,887], "a": 1 }, + { "px": [384,432], "src": [256,240], "f": 0, "t": 361, "d": [107,889], "a": 1 }, + { "px": [400,432], "src": [272,240], "f": 0, "t": 362, "d": [107,889], "a": 1 }, + { "px": [80,448], "src": [256,240], "f": 1, "t": 361, "d": [107,900], "a": 1 }, + { "px": [64,448], "src": [272,240], "f": 1, "t": 362, "d": [107,900], "a": 1 }, + { "px": [64,448], "src": [256,240], "f": 0, "t": 361, "d": [107,901], "a": 1 }, + { "px": [80,448], "src": [272,240], "f": 0, "t": 362, "d": [107,901], "a": 1 }, + { "px": [384,448], "src": [256,240], "f": 1, "t": 361, "d": [107,919], "a": 1 }, + { "px": [368,448], "src": [272,240], "f": 1, "t": 362, "d": [107,919], "a": 1 }, + { "px": [384,448], "src": [256,240], "f": 0, "t": 361, "d": [107,921], "a": 1 }, + { "px": [400,448], "src": [272,240], "f": 0, "t": 362, "d": [107,921], "a": 1 }, + { "px": [80,464], "src": [256,240], "f": 1, "t": 361, "d": [107,932], "a": 1 }, + { "px": [64,464], "src": [272,240], "f": 1, "t": 362, "d": [107,932], "a": 1 }, + { "px": [64,464], "src": [256,240], "f": 0, "t": 361, "d": [107,933], "a": 1 }, + { "px": [80,464], "src": [272,240], "f": 0, "t": 362, "d": [107,933], "a": 1 }, + { "px": [384,464], "src": [256,240], "f": 1, "t": 361, "d": [107,951], "a": 1 }, + { "px": [368,464], "src": [272,240], "f": 1, "t": 362, "d": [107,951], "a": 1 }, + { "px": [384,464], "src": [256,240], "f": 0, "t": 361, "d": [107,953], "a": 1 }, + { "px": [400,464], "src": [272,240], "f": 0, "t": 362, "d": [107,953], "a": 1 }, + { "px": [80,480], "src": [256,240], "f": 1, "t": 361, "d": [107,964], "a": 1 }, + { "px": [64,480], "src": [272,240], "f": 1, "t": 362, "d": [107,964], "a": 1 }, + { "px": [64,480], "src": [256,240], "f": 0, "t": 361, "d": [107,965], "a": 1 }, + { "px": [80,480], "src": [272,240], "f": 0, "t": 362, "d": [107,965], "a": 1 }, + { "px": [384,480], "src": [256,240], "f": 1, "t": 361, "d": [107,983], "a": 1 }, + { "px": [368,480], "src": [272,240], "f": 1, "t": 362, "d": [107,983], "a": 1 }, + { "px": [384,480], "src": [256,240], "f": 0, "t": 361, "d": [107,985], "a": 1 }, + { "px": [400,480], "src": [272,240], "f": 0, "t": 362, "d": [107,985], "a": 1 }, + { "px": [80,496], "src": [256,240], "f": 1, "t": 361, "d": [107,996], "a": 1 }, + { "px": [64,496], "src": [272,240], "f": 1, "t": 362, "d": [107,996], "a": 1 }, + { "px": [64,496], "src": [256,240], "f": 0, "t": 361, "d": [107,997], "a": 1 }, + { "px": [80,496], "src": [272,240], "f": 0, "t": 362, "d": [107,997], "a": 1 }, + { "px": [384,496], "src": [256,240], "f": 1, "t": 361, "d": [107,1015], "a": 1 }, + { "px": [368,496], "src": [272,240], "f": 1, "t": 362, "d": [107,1015], "a": 1 }, + { "px": [384,496], "src": [256,240], "f": 0, "t": 361, "d": [107,1017], "a": 1 }, + { "px": [400,496], "src": [272,240], "f": 0, "t": 362, "d": [107,1017], "a": 1 }, + { "px": [320,192], "src": [256,240], "f": 0, "t": 361, "d": [105,405], "a": 1 }, + { "px": [336,192], "src": [272,240], "f": 0, "t": 362, "d": [105,405], "a": 1 }, + { "px": [352,192], "src": [288,240], "f": 0, "t": 363, "d": [105,405], "a": 1 }, + { "px": [352,224], "src": [256,240], "f": 0, "t": 361, "d": [105,471], "a": 1 }, + { "px": [368,224], "src": [272,240], "f": 0, "t": 362, "d": [105,471], "a": 1 }, + { "px": [384,224], "src": [288,240], "f": 0, "t": 363, "d": [105,471], "a": 1 }, + { "px": [368,384], "src": [256,240], "f": 0, "t": 361, "d": [105,792], "a": 1 }, + { "px": [384,384], "src": [272,240], "f": 0, "t": 362, "d": [105,792], "a": 1 }, + { "px": [400,384], "src": [288,240], "f": 0, "t": 363, "d": [105,792], "a": 1 }, + { "px": [368,448], "src": [256,240], "f": 0, "t": 361, "d": [105,920], "a": 1 }, + { "px": [384,448], "src": [272,240], "f": 0, "t": 362, "d": [105,920], "a": 1 }, + { "px": [400,448], "src": [288,240], "f": 0, "t": 363, "d": [105,920], "a": 1 }, + { "px": [384,128], "src": [144,240], "f": 0, "t": 354, "d": [112,345], "a": 1 }, + { "px": [384,144], "src": [144,256], "f": 0, "t": 377, "d": [112,345], "a": 1 }, + { "px": [384,160], "src": [144,272], "f": 0, "t": 400, "d": [112,345], "a": 1 }, + { "px": [400,128], "src": [160,240], "f": 0, "t": 355, "d": [112,345], "a": 1 }, + { "px": [400,144], "src": [160,256], "f": 0, "t": 378, "d": [112,345], "a": 1 }, + { "px": [400,160], "src": [160,272], "f": 0, "t": 401, "d": [112,345], "a": 1 }, + { "px": [416,128], "src": [176,240], "f": 0, "t": 356, "d": [112,345], "a": 1 }, + { "px": [416,144], "src": [176,256], "f": 0, "t": 379, "d": [112,345], "a": 1 }, + { "px": [416,160], "src": [176,272], "f": 0, "t": 402, "d": [112,345], "a": 1 }, + { "px": [128,176], "src": [192,304], "f": 2, "t": 449, "d": [113,328], "a": 1 }, + { "px": [128,160], "src": [192,320], "f": 2, "t": 472, "d": [113,328], "a": 1 }, + { "px": [144,176], "src": [208,304], "f": 2, "t": 450, "d": [113,328], "a": 1 }, + { "px": [144,160], "src": [208,320], "f": 2, "t": 473, "d": [113,328], "a": 1 }, + { "px": [160,176], "src": [224,304], "f": 2, "t": 451, "d": [113,328], "a": 1 }, + { "px": [160,160], "src": [224,320], "f": 2, "t": 474, "d": [113,328], "a": 1 }, + { "px": [448,144], "src": [192,304], "f": 1, "t": 449, "d": [113,348], "a": 1 }, + { "px": [448,160], "src": [192,320], "f": 1, "t": 472, "d": [113,348], "a": 1 }, + { "px": [432,144], "src": [208,304], "f": 1, "t": 450, "d": [113,348], "a": 1 }, + { "px": [432,160], "src": [208,320], "f": 1, "t": 473, "d": [113,348], "a": 1 }, + { "px": [416,144], "src": [224,304], "f": 1, "t": 451, "d": [113,348], "a": 1 }, + { "px": [416,160], "src": [224,320], "f": 1, "t": 474, "d": [113,348], "a": 1 }, + { "px": [480,224], "src": [192,304], "f": 3, "t": 449, "d": [113,446], "a": 1 }, + { "px": [480,208], "src": [192,320], "f": 3, "t": 472, "d": [113,446], "a": 1 }, + { "px": [464,224], "src": [208,304], "f": 3, "t": 450, "d": [113,446], "a": 1 }, + { "px": [464,208], "src": [208,320], "f": 3, "t": 473, "d": [113,446], "a": 1 }, + { "px": [448,224], "src": [224,304], "f": 3, "t": 451, "d": [113,446], "a": 1 }, + { "px": [448,208], "src": [224,320], "f": 3, "t": 474, "d": [113,446], "a": 1 }, + { "px": [480,224], "src": [192,304], "f": 1, "t": 449, "d": [113,510], "a": 1 }, + { "px": [480,240], "src": [192,320], "f": 1, "t": 472, "d": [113,510], "a": 1 }, + { "px": [464,224], "src": [208,304], "f": 1, "t": 450, "d": [113,510], "a": 1 }, + { "px": [464,240], "src": [208,320], "f": 1, "t": 473, "d": [113,510], "a": 1 }, + { "px": [448,224], "src": [224,304], "f": 1, "t": 451, "d": [113,510], "a": 1 }, + { "px": [448,240], "src": [224,320], "f": 1, "t": 474, "d": [113,510], "a": 1 }, + { "px": [256,288], "src": [192,304], "f": 0, "t": 449, "d": [113,624], "a": 1 }, + { "px": [256,304], "src": [192,320], "f": 0, "t": 472, "d": [113,624], "a": 1 }, + { "px": [272,288], "src": [208,304], "f": 0, "t": 450, "d": [113,624], "a": 1 }, + { "px": [272,304], "src": [208,320], "f": 0, "t": 473, "d": [113,624], "a": 1 }, + { "px": [288,288], "src": [224,304], "f": 0, "t": 451, "d": [113,624], "a": 1 }, + { "px": [288,304], "src": [224,320], "f": 0, "t": 474, "d": [113,624], "a": 1 }, + { "px": [64,400], "src": [192,304], "f": 2, "t": 449, "d": [113,772], "a": 1 }, + { "px": [64,384], "src": [192,320], "f": 2, "t": 472, "d": [113,772], "a": 1 }, + { "px": [80,400], "src": [208,304], "f": 2, "t": 450, "d": [113,772], "a": 1 }, + { "px": [80,384], "src": [208,320], "f": 2, "t": 473, "d": [113,772], "a": 1 }, + { "px": [96,400], "src": [224,304], "f": 2, "t": 451, "d": [113,772], "a": 1 }, + { "px": [96,384], "src": [224,320], "f": 2, "t": 474, "d": [113,772], "a": 1 }, + { "px": [160,160], "src": [128,224], "f": 0, "t": 330, "d": [114,330], "a": 1 }, + { "px": [416,208], "src": [96,208], "f": 0, "t": 305, "d": [114,442], "a": 1 } + ], + "seed": 422163, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a36c5790-66b0-11ec-9cd7-0d08d7991930", "dir": "s" }, { "levelIid": "a36fda00-66b0-11ec-9cd7-ffa8f8d0b484", "dir": "n" } ] + }, + { + "identifier": "Sewers_trash", + "iid": "a36c5790-66b0-11ec-9cd7-0d08d7991930", + "uid": 61, + "worldX": 256, + "worldY": 1536, + "worldDepth": 0, + "pxWid": 512, + "pxHei": 512, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a36c5795-66b0-11ec-9cd7-7fa9d2419694", + "levelId": 61, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 5961450, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Item", + "__grid": [5,17], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 208, "y": 432, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a36c5796-66b0-11ec-9cd7-abe4f8e55b6a", + "width": 24, + "height": 24, + "defUid": 72, + "px": [88,288], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Fire_blade", "__tile": { "tilesetUid": 133, "x": 208, "y": 432, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Fire_blade"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Ladder", + "__grid": [22,10], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "c08daaf0-66b0-11ec-9ccd-e19e0bbbe943", + "width": 16, + "height": 288, + "defUid": 134, + "px": [352,160], + "fieldInstances": [] + }, + { + "__identifier": "Ladder", + "__grid": [7,18], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "c238e9f0-66b0-11ec-9ccd-019be134d42b", + "width": 16, + "height": 160, + "defUid": 134, + "px": [112,288], + "fieldInstances": [] + }, + { + "__identifier": "Ladder", + "__grid": [5,0], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "e7eab980-66b0-11ec-9ccd-492e6ed5ee3f", + "width": 16, + "height": 176, + "defUid": 134, + "px": [80,0], + "fieldInstances": [] + }, + { + "__identifier": "Ladder", + "__grid": [1,11], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "e945dcb0-66b0-11ec-9ccd-0f70f0549c1f", + "width": 16, + "height": 112, + "defUid": 134, + "px": [16,176], + "fieldInstances": [] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36c5797-66b0-11ec-9cd7-33e93cba3de6", + "levelId": 61, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [64,16], "src": [320,128], "f": 0, "t": 204, "d": [26,36], "a": 1 }, + { "px": [80,16], "src": [320,128], "f": 1, "t": 204, "d": [26,37], "a": 1 }, + { "px": [368,16], "src": [320,128], "f": 0, "t": 204, "d": [26,55], "a": 1 }, + { "px": [400,16], "src": [320,128], "f": 1, "t": 204, "d": [26,57], "a": 1 }, + { "px": [64,32], "src": [320,128], "f": 0, "t": 204, "d": [26,68], "a": 1 }, + { "px": [80,32], "src": [320,128], "f": 1, "t": 204, "d": [26,69], "a": 1 }, + { "px": [368,32], "src": [320,128], "f": 0, "t": 204, "d": [26,87], "a": 1 }, + { "px": [400,32], "src": [320,128], "f": 1, "t": 204, "d": [26,89], "a": 1 }, + { "px": [64,48], "src": [320,128], "f": 0, "t": 204, "d": [26,100], "a": 1 }, + { "px": [80,48], "src": [320,128], "f": 1, "t": 204, "d": [26,101], "a": 1 }, + { "px": [368,48], "src": [320,128], "f": 0, "t": 204, "d": [26,119], "a": 1 }, + { "px": [400,48], "src": [320,128], "f": 1, "t": 204, "d": [26,121], "a": 1 }, + { "px": [64,64], "src": [320,128], "f": 0, "t": 204, "d": [26,132], "a": 1 }, + { "px": [80,64], "src": [320,128], "f": 1, "t": 204, "d": [26,133], "a": 1 }, + { "px": [368,64], "src": [320,128], "f": 0, "t": 204, "d": [26,151], "a": 1 }, + { "px": [400,64], "src": [320,128], "f": 1, "t": 204, "d": [26,153], "a": 1 }, + { "px": [64,80], "src": [320,128], "f": 0, "t": 204, "d": [26,164], "a": 1 }, + { "px": [80,80], "src": [320,128], "f": 1, "t": 204, "d": [26,165], "a": 1 }, + { "px": [368,80], "src": [320,128], "f": 0, "t": 204, "d": [26,183], "a": 1 }, + { "px": [400,80], "src": [320,128], "f": 1, "t": 204, "d": [26,185], "a": 1 }, + { "px": [64,96], "src": [320,128], "f": 0, "t": 204, "d": [26,196], "a": 1 }, + { "px": [80,96], "src": [320,128], "f": 1, "t": 204, "d": [26,197], "a": 1 }, + { "px": [368,96], "src": [320,128], "f": 0, "t": 204, "d": [26,215], "a": 1 }, + { "px": [400,96], "src": [320,128], "f": 1, "t": 204, "d": [26,217], "a": 1 }, + { "px": [64,112], "src": [320,128], "f": 0, "t": 204, "d": [26,228], "a": 1 }, + { "px": [80,112], "src": [320,128], "f": 1, "t": 204, "d": [26,229], "a": 1 }, + { "px": [368,112], "src": [320,128], "f": 0, "t": 204, "d": [26,247], "a": 1 }, + { "px": [400,112], "src": [320,128], "f": 1, "t": 204, "d": [26,249], "a": 1 }, + { "px": [64,128], "src": [320,128], "f": 0, "t": 204, "d": [26,260], "a": 1 }, + { "px": [80,128], "src": [320,128], "f": 1, "t": 204, "d": [26,261], "a": 1 }, + { "px": [320,128], "src": [320,128], "f": 0, "t": 204, "d": [26,276], "a": 1 }, + { "px": [448,128], "src": [320,128], "f": 1, "t": 204, "d": [26,284], "a": 1 }, + { "px": [16,144], "src": [320,128], "f": 0, "t": 204, "d": [26,289], "a": 1 }, + { "px": [80,144], "src": [320,128], "f": 1, "t": 204, "d": [26,293], "a": 1 }, + { "px": [320,144], "src": [320,128], "f": 0, "t": 204, "d": [26,308], "a": 1 }, + { "px": [448,144], "src": [320,128], "f": 1, "t": 204, "d": [26,316], "a": 1 }, + { "px": [16,160], "src": [320,128], "f": 0, "t": 204, "d": [26,321], "a": 1 }, + { "px": [80,160], "src": [320,128], "f": 1, "t": 204, "d": [26,325], "a": 1 }, + { "px": [320,160], "src": [320,128], "f": 0, "t": 204, "d": [26,340], "a": 1 }, + { "px": [320,176], "src": [320,128], "f": 0, "t": 204, "d": [26,372], "a": 1 }, + { "px": [352,176], "src": [320,128], "f": 1, "t": 204, "d": [26,374], "a": 1 }, + { "px": [16,192], "src": [320,128], "f": 0, "t": 204, "d": [26,385], "a": 1 }, + { "px": [320,192], "src": [320,128], "f": 0, "t": 204, "d": [26,404], "a": 1 }, + { "px": [448,192], "src": [320,128], "f": 1, "t": 204, "d": [26,412], "a": 1 }, + { "px": [16,208], "src": [320,128], "f": 0, "t": 204, "d": [26,417], "a": 1 }, + { "px": [64,208], "src": [320,128], "f": 0, "t": 204, "d": [26,420], "a": 1 }, + { "px": [448,208], "src": [320,128], "f": 1, "t": 204, "d": [26,444], "a": 1 }, + { "px": [16,224], "src": [320,128], "f": 0, "t": 204, "d": [26,449], "a": 1 }, + { "px": [64,224], "src": [320,128], "f": 0, "t": 204, "d": [26,452], "a": 1 }, + { "px": [448,224], "src": [320,128], "f": 1, "t": 204, "d": [26,476], "a": 1 }, + { "px": [16,240], "src": [320,128], "f": 0, "t": 204, "d": [26,481], "a": 1 }, + { "px": [64,240], "src": [320,128], "f": 0, "t": 204, "d": [26,484], "a": 1 }, + { "px": [448,240], "src": [320,128], "f": 1, "t": 204, "d": [26,508], "a": 1 }, + { "px": [448,256], "src": [320,128], "f": 1, "t": 204, "d": [26,540], "a": 1 }, + { "px": [16,272], "src": [320,128], "f": 0, "t": 204, "d": [26,545], "a": 1 }, + { "px": [448,272], "src": [320,128], "f": 1, "t": 204, "d": [26,572], "a": 1 }, + { "px": [448,288], "src": [320,128], "f": 1, "t": 204, "d": [26,604], "a": 1 }, + { "px": [64,304], "src": [320,128], "f": 0, "t": 204, "d": [26,612], "a": 1 }, + { "px": [448,304], "src": [320,128], "f": 1, "t": 204, "d": [26,636], "a": 1 }, + { "px": [64,320], "src": [320,128], "f": 0, "t": 204, "d": [26,644], "a": 1 }, + { "px": [448,320], "src": [320,128], "f": 1, "t": 204, "d": [26,668], "a": 1 }, + { "px": [64,336], "src": [320,128], "f": 0, "t": 204, "d": [26,676], "a": 1 }, + { "px": [448,336], "src": [320,128], "f": 1, "t": 204, "d": [26,700], "a": 1 }, + { "px": [64,352], "src": [320,128], "f": 0, "t": 204, "d": [26,708], "a": 1 }, + { "px": [448,352], "src": [320,128], "f": 1, "t": 204, "d": [26,732], "a": 1 }, + { "px": [352,160], "src": [320,96], "f": 1, "t": 158, "d": [138,342], "a": 1 }, + { "px": [16,176], "src": [320,96], "f": 1, "t": 158, "d": [138,353], "a": 1 }, + { "px": [112,288], "src": [320,96], "f": 0, "t": 158, "d": [138,583], "a": 1 }, + { "px": [320,128], "src": [336,112], "f": 0, "t": 182, "d": [27,276], "a": 1 }, + { "px": [336,128], "src": [336,112], "f": 0, "t": 182, "d": [27,277], "a": 1 }, + { "px": [352,128], "src": [336,112], "f": 0, "t": 182, "d": [27,278], "a": 1 }, + { "px": [416,128], "src": [336,112], "f": 0, "t": 182, "d": [27,282], "a": 1 }, + { "px": [432,128], "src": [336,112], "f": 0, "t": 182, "d": [27,283], "a": 1 }, + { "px": [448,128], "src": [336,112], "f": 0, "t": 182, "d": [27,284], "a": 1 }, + { "px": [16,144], "src": [336,112], "f": 0, "t": 182, "d": [27,289], "a": 1 }, + { "px": [32,144], "src": [336,112], "f": 0, "t": 182, "d": [27,290], "a": 1 }, + { "px": [48,144], "src": [336,112], "f": 0, "t": 182, "d": [27,291], "a": 1 }, + { "px": [368,192], "src": [336,112], "f": 0, "t": 182, "d": [27,407], "a": 1 }, + { "px": [384,192], "src": [336,112], "f": 0, "t": 182, "d": [27,408], "a": 1 }, + { "px": [400,192], "src": [336,112], "f": 0, "t": 182, "d": [27,409], "a": 1 }, + { "px": [416,192], "src": [336,112], "f": 0, "t": 182, "d": [27,410], "a": 1 }, + { "px": [432,192], "src": [336,112], "f": 0, "t": 182, "d": [27,411], "a": 1 }, + { "px": [448,192], "src": [336,112], "f": 0, "t": 182, "d": [27,412], "a": 1 }, + { "px": [64,208], "src": [336,112], "f": 0, "t": 182, "d": [27,420], "a": 1 }, + { "px": [80,208], "src": [336,112], "f": 0, "t": 182, "d": [27,421], "a": 1 }, + { "px": [96,208], "src": [336,112], "f": 0, "t": 182, "d": [27,422], "a": 1 }, + { "px": [112,208], "src": [336,112], "f": 0, "t": 182, "d": [27,423], "a": 1 }, + { "px": [128,208], "src": [336,112], "f": 0, "t": 182, "d": [27,424], "a": 1 }, + { "px": [144,208], "src": [336,112], "f": 0, "t": 182, "d": [27,425], "a": 1 }, + { "px": [160,208], "src": [336,112], "f": 0, "t": 182, "d": [27,426], "a": 1 }, + { "px": [176,208], "src": [336,112], "f": 0, "t": 182, "d": [27,427], "a": 1 }, + { "px": [192,208], "src": [336,112], "f": 0, "t": 182, "d": [27,428], "a": 1 }, + { "px": [208,208], "src": [336,112], "f": 0, "t": 182, "d": [27,429], "a": 1 }, + { "px": [224,208], "src": [336,112], "f": 0, "t": 182, "d": [27,430], "a": 1 }, + { "px": [240,208], "src": [336,112], "f": 0, "t": 182, "d": [27,431], "a": 1 }, + { "px": [256,208], "src": [336,112], "f": 0, "t": 182, "d": [27,432], "a": 1 }, + { "px": [272,208], "src": [336,112], "f": 0, "t": 182, "d": [27,433], "a": 1 }, + { "px": [288,208], "src": [336,112], "f": 0, "t": 182, "d": [27,434], "a": 1 }, + { "px": [304,208], "src": [336,112], "f": 0, "t": 182, "d": [27,435], "a": 1 }, + { "px": [32,256], "src": [336,112], "f": 0, "t": 182, "d": [27,514], "a": 1 }, + { "px": [48,256], "src": [336,112], "f": 0, "t": 182, "d": [27,515], "a": 1 }, + { "px": [64,304], "src": [336,112], "f": 0, "t": 182, "d": [27,612], "a": 1 }, + { "px": [80,304], "src": [336,112], "f": 0, "t": 182, "d": [27,613], "a": 1 }, + { "px": [96,304], "src": [336,112], "f": 0, "t": 182, "d": [27,614], "a": 1 }, + { "px": [368,128], "src": [320,112], "f": 0, "t": 181, "d": [137,279], "a": 1 }, + { "px": [400,128], "src": [320,112], "f": 1, "t": 181, "d": [137,281], "a": 1 }, + { "px": [64,144], "src": [320,112], "f": 0, "t": 181, "d": [137,292], "a": 1 }, + { "px": [352,192], "src": [320,112], "f": 1, "t": 181, "d": [137,406], "a": 1 }, + { "px": [320,208], "src": [320,112], "f": 0, "t": 181, "d": [137,436], "a": 1 }, + { "px": [16,256], "src": [320,112], "f": 1, "t": 181, "d": [137,513], "a": 1 }, + { "px": [64,256], "src": [320,112], "f": 0, "t": 181, "d": [137,516], "a": 1 }, + { "px": [112,304], "src": [320,112], "f": 0, "t": 181, "d": [137,615], "a": 1 } + ], + "seed": 5084082, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36c5798-66b0-11ec-9cd7-ed61e9aafc9d", + "levelId": 61, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1, + 1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, + 0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0, + 0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1, + 1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1, + 1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [64,384], "src": [320,176], "f": 0, "t": 273, "d": [28,772], "a": 1 }, + { "px": [80,384], "src": [320,176], "f": 0, "t": 273, "d": [28,773], "a": 1 }, + { "px": [96,384], "src": [320,176], "f": 0, "t": 273, "d": [28,774], "a": 1 }, + { "px": [112,384], "src": [320,176], "f": 0, "t": 273, "d": [28,775], "a": 1 }, + { "px": [128,384], "src": [320,176], "f": 0, "t": 273, "d": [28,776], "a": 1 }, + { "px": [144,384], "src": [320,176], "f": 0, "t": 273, "d": [28,777], "a": 1 }, + { "px": [160,384], "src": [320,176], "f": 0, "t": 273, "d": [28,778], "a": 1 }, + { "px": [176,384], "src": [320,176], "f": 0, "t": 273, "d": [28,779], "a": 1 }, + { "px": [192,384], "src": [320,176], "f": 0, "t": 273, "d": [28,780], "a": 1 }, + { "px": [208,384], "src": [320,176], "f": 0, "t": 273, "d": [28,781], "a": 1 }, + { "px": [224,384], "src": [320,176], "f": 0, "t": 273, "d": [28,782], "a": 1 }, + { "px": [240,384], "src": [320,176], "f": 0, "t": 273, "d": [28,783], "a": 1 }, + { "px": [256,384], "src": [320,176], "f": 0, "t": 273, "d": [28,784], "a": 1 }, + { "px": [272,384], "src": [320,176], "f": 0, "t": 273, "d": [28,785], "a": 1 }, + { "px": [288,384], "src": [320,176], "f": 0, "t": 273, "d": [28,786], "a": 1 }, + { "px": [304,384], "src": [320,176], "f": 0, "t": 273, "d": [28,787], "a": 1 }, + { "px": [320,384], "src": [320,176], "f": 0, "t": 273, "d": [28,788], "a": 1 }, + { "px": [336,384], "src": [320,176], "f": 0, "t": 273, "d": [28,789], "a": 1 }, + { "px": [352,384], "src": [320,176], "f": 0, "t": 273, "d": [28,790], "a": 1 }, + { "px": [368,384], "src": [320,176], "f": 0, "t": 273, "d": [28,791], "a": 1 }, + { "px": [384,384], "src": [320,176], "f": 0, "t": 273, "d": [28,792], "a": 1 }, + { "px": [400,384], "src": [320,176], "f": 0, "t": 273, "d": [28,793], "a": 1 }, + { "px": [416,384], "src": [320,176], "f": 0, "t": 273, "d": [28,794], "a": 1 }, + { "px": [432,384], "src": [320,176], "f": 0, "t": 273, "d": [28,795], "a": 1 }, + { "px": [448,384], "src": [320,176], "f": 0, "t": 273, "d": [28,796], "a": 1 }, + { "px": [64,400], "src": [320,176], "f": 0, "t": 273, "d": [28,804], "a": 1 }, + { "px": [80,400], "src": [320,176], "f": 0, "t": 273, "d": [28,805], "a": 1 }, + { "px": [96,400], "src": [320,176], "f": 0, "t": 273, "d": [28,806], "a": 1 }, + { "px": [112,400], "src": [320,176], "f": 0, "t": 273, "d": [28,807], "a": 1 }, + { "px": [128,400], "src": [320,176], "f": 0, "t": 273, "d": [28,808], "a": 1 }, + { "px": [144,400], "src": [320,176], "f": 0, "t": 273, "d": [28,809], "a": 1 }, + { "px": [160,400], "src": [320,176], "f": 0, "t": 273, "d": [28,810], "a": 1 }, + { "px": [176,400], "src": [320,176], "f": 0, "t": 273, "d": [28,811], "a": 1 }, + { "px": [192,400], "src": [320,176], "f": 0, "t": 273, "d": [28,812], "a": 1 }, + { "px": [208,400], "src": [320,176], "f": 0, "t": 273, "d": [28,813], "a": 1 }, + { "px": [224,400], "src": [320,176], "f": 0, "t": 273, "d": [28,814], "a": 1 }, + { "px": [240,400], "src": [320,176], "f": 0, "t": 273, "d": [28,815], "a": 1 }, + { "px": [256,400], "src": [320,176], "f": 0, "t": 273, "d": [28,816], "a": 1 }, + { "px": [272,400], "src": [320,176], "f": 0, "t": 273, "d": [28,817], "a": 1 }, + { "px": [288,400], "src": [320,176], "f": 0, "t": 273, "d": [28,818], "a": 1 }, + { "px": [304,400], "src": [320,176], "f": 0, "t": 273, "d": [28,819], "a": 1 }, + { "px": [320,400], "src": [320,176], "f": 0, "t": 273, "d": [28,820], "a": 1 }, + { "px": [336,400], "src": [320,176], "f": 0, "t": 273, "d": [28,821], "a": 1 }, + { "px": [352,400], "src": [320,176], "f": 0, "t": 273, "d": [28,822], "a": 1 }, + { "px": [368,400], "src": [320,176], "f": 0, "t": 273, "d": [28,823], "a": 1 }, + { "px": [384,400], "src": [320,176], "f": 0, "t": 273, "d": [28,824], "a": 1 }, + { "px": [400,400], "src": [320,176], "f": 0, "t": 273, "d": [28,825], "a": 1 }, + { "px": [416,400], "src": [320,176], "f": 0, "t": 273, "d": [28,826], "a": 1 }, + { "px": [432,400], "src": [320,176], "f": 0, "t": 273, "d": [28,827], "a": 1 }, + { "px": [448,400], "src": [320,176], "f": 0, "t": 273, "d": [28,828], "a": 1 }, + { "px": [64,416], "src": [320,176], "f": 0, "t": 273, "d": [28,836], "a": 1 }, + { "px": [80,416], "src": [320,176], "f": 0, "t": 273, "d": [28,837], "a": 1 }, + { "px": [96,416], "src": [320,176], "f": 0, "t": 273, "d": [28,838], "a": 1 }, + { "px": [112,416], "src": [320,176], "f": 0, "t": 273, "d": [28,839], "a": 1 }, + { "px": [128,416], "src": [320,176], "f": 0, "t": 273, "d": [28,840], "a": 1 }, + { "px": [144,416], "src": [320,176], "f": 0, "t": 273, "d": [28,841], "a": 1 }, + { "px": [160,416], "src": [320,176], "f": 0, "t": 273, "d": [28,842], "a": 1 }, + { "px": [176,416], "src": [320,176], "f": 0, "t": 273, "d": [28,843], "a": 1 }, + { "px": [192,416], "src": [320,176], "f": 0, "t": 273, "d": [28,844], "a": 1 }, + { "px": [208,416], "src": [320,176], "f": 0, "t": 273, "d": [28,845], "a": 1 }, + { "px": [224,416], "src": [320,176], "f": 0, "t": 273, "d": [28,846], "a": 1 }, + { "px": [240,416], "src": [320,176], "f": 0, "t": 273, "d": [28,847], "a": 1 }, + { "px": [256,416], "src": [320,176], "f": 0, "t": 273, "d": [28,848], "a": 1 }, + { "px": [272,416], "src": [320,176], "f": 0, "t": 273, "d": [28,849], "a": 1 }, + { "px": [288,416], "src": [320,176], "f": 0, "t": 273, "d": [28,850], "a": 1 }, + { "px": [304,416], "src": [320,176], "f": 0, "t": 273, "d": [28,851], "a": 1 }, + { "px": [320,416], "src": [320,176], "f": 0, "t": 273, "d": [28,852], "a": 1 }, + { "px": [336,416], "src": [320,176], "f": 0, "t": 273, "d": [28,853], "a": 1 }, + { "px": [352,416], "src": [320,176], "f": 0, "t": 273, "d": [28,854], "a": 1 }, + { "px": [368,416], "src": [320,176], "f": 0, "t": 273, "d": [28,855], "a": 1 }, + { "px": [384,416], "src": [320,176], "f": 0, "t": 273, "d": [28,856], "a": 1 }, + { "px": [400,416], "src": [320,176], "f": 0, "t": 273, "d": [28,857], "a": 1 }, + { "px": [416,416], "src": [320,176], "f": 0, "t": 273, "d": [28,858], "a": 1 }, + { "px": [432,416], "src": [320,176], "f": 0, "t": 273, "d": [28,859], "a": 1 }, + { "px": [448,416], "src": [320,176], "f": 0, "t": 273, "d": [28,860], "a": 1 }, + { "px": [64,432], "src": [320,176], "f": 0, "t": 273, "d": [28,868], "a": 1 }, + { "px": [80,432], "src": [320,176], "f": 0, "t": 273, "d": [28,869], "a": 1 }, + { "px": [96,432], "src": [320,176], "f": 0, "t": 273, "d": [28,870], "a": 1 }, + { "px": [112,432], "src": [320,176], "f": 0, "t": 273, "d": [28,871], "a": 1 }, + { "px": [128,432], "src": [320,176], "f": 0, "t": 273, "d": [28,872], "a": 1 }, + { "px": [144,432], "src": [320,176], "f": 0, "t": 273, "d": [28,873], "a": 1 }, + { "px": [160,432], "src": [320,176], "f": 0, "t": 273, "d": [28,874], "a": 1 }, + { "px": [176,432], "src": [320,176], "f": 0, "t": 273, "d": [28,875], "a": 1 }, + { "px": [192,432], "src": [320,176], "f": 0, "t": 273, "d": [28,876], "a": 1 }, + { "px": [208,432], "src": [320,176], "f": 0, "t": 273, "d": [28,877], "a": 1 }, + { "px": [224,432], "src": [320,176], "f": 0, "t": 273, "d": [28,878], "a": 1 }, + { "px": [240,432], "src": [320,176], "f": 0, "t": 273, "d": [28,879], "a": 1 }, + { "px": [256,432], "src": [320,176], "f": 0, "t": 273, "d": [28,880], "a": 1 }, + { "px": [272,432], "src": [320,176], "f": 0, "t": 273, "d": [28,881], "a": 1 }, + { "px": [288,432], "src": [320,176], "f": 0, "t": 273, "d": [28,882], "a": 1 }, + { "px": [304,432], "src": [320,176], "f": 0, "t": 273, "d": [28,883], "a": 1 }, + { "px": [320,432], "src": [320,176], "f": 0, "t": 273, "d": [28,884], "a": 1 }, + { "px": [336,432], "src": [320,176], "f": 0, "t": 273, "d": [28,885], "a": 1 }, + { "px": [352,432], "src": [320,176], "f": 0, "t": 273, "d": [28,886], "a": 1 }, + { "px": [368,432], "src": [320,176], "f": 0, "t": 273, "d": [28,887], "a": 1 }, + { "px": [384,432], "src": [320,176], "f": 0, "t": 273, "d": [28,888], "a": 1 }, + { "px": [400,432], "src": [320,176], "f": 0, "t": 273, "d": [28,889], "a": 1 }, + { "px": [416,432], "src": [320,176], "f": 0, "t": 273, "d": [28,890], "a": 1 }, + { "px": [432,432], "src": [320,176], "f": 0, "t": 273, "d": [28,891], "a": 1 }, + { "px": [448,432], "src": [320,176], "f": 0, "t": 273, "d": [28,892], "a": 1 }, + { "px": [64,368], "src": [320,160], "f": 0, "t": 250, "d": [21,740], "a": 1 }, + { "px": [80,368], "src": [320,160], "f": 0, "t": 250, "d": [21,741], "a": 1 }, + { "px": [96,368], "src": [320,160], "f": 0, "t": 250, "d": [21,742], "a": 1 }, + { "px": [112,368], "src": [320,160], "f": 0, "t": 250, "d": [21,743], "a": 1 }, + { "px": [128,368], "src": [320,160], "f": 0, "t": 250, "d": [21,744], "a": 1 }, + { "px": [144,368], "src": [320,160], "f": 0, "t": 250, "d": [21,745], "a": 1 }, + { "px": [160,368], "src": [320,160], "f": 0, "t": 250, "d": [21,746], "a": 1 }, + { "px": [176,368], "src": [320,160], "f": 0, "t": 250, "d": [21,747], "a": 1 }, + { "px": [192,368], "src": [320,160], "f": 0, "t": 250, "d": [21,748], "a": 1 }, + { "px": [208,368], "src": [320,160], "f": 0, "t": 250, "d": [21,749], "a": 1 }, + { "px": [224,368], "src": [320,160], "f": 0, "t": 250, "d": [21,750], "a": 1 }, + { "px": [240,368], "src": [320,160], "f": 0, "t": 250, "d": [21,751], "a": 1 }, + { "px": [256,368], "src": [320,160], "f": 0, "t": 250, "d": [21,752], "a": 1 }, + { "px": [272,368], "src": [320,160], "f": 0, "t": 250, "d": [21,753], "a": 1 }, + { "px": [288,368], "src": [320,160], "f": 0, "t": 250, "d": [21,754], "a": 1 }, + { "px": [304,368], "src": [320,160], "f": 0, "t": 250, "d": [21,755], "a": 1 }, + { "px": [320,368], "src": [320,160], "f": 0, "t": 250, "d": [21,756], "a": 1 }, + { "px": [336,368], "src": [320,160], "f": 0, "t": 250, "d": [21,757], "a": 1 }, + { "px": [352,368], "src": [320,160], "f": 0, "t": 250, "d": [21,758], "a": 1 }, + { "px": [368,368], "src": [320,160], "f": 0, "t": 250, "d": [21,759], "a": 1 }, + { "px": [384,368], "src": [320,160], "f": 0, "t": 250, "d": [21,760], "a": 1 }, + { "px": [400,368], "src": [320,160], "f": 0, "t": 250, "d": [21,761], "a": 1 }, + { "px": [416,368], "src": [320,160], "f": 0, "t": 250, "d": [21,762], "a": 1 }, + { "px": [432,368], "src": [320,160], "f": 0, "t": 250, "d": [21,763], "a": 1 }, + { "px": [448,368], "src": [320,160], "f": 0, "t": 250, "d": [21,764], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [8,1], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [8,21], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [8,34], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [8,52], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [8,60], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [8,65], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [8,85], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [8,91], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [8,98], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [8,104], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [8,116], "a": 1 }, + { "px": [448,48], "src": [32,32], "f": 0, "t": 48, "d": [8,124], "a": 1 }, + { "px": [112,64], "src": [32,32], "f": 0, "t": 48, "d": [8,135], "a": 1 }, + { "px": [336,64], "src": [32,32], "f": 0, "t": 48, "d": [8,149], "a": 1 }, + { "px": [432,64], "src": [32,32], "f": 0, "t": 48, "d": [8,155], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [8,162], "a": 1 }, + { "px": [128,80], "src": [32,32], "f": 0, "t": 48, "d": [8,168], "a": 1 }, + { "px": [288,80], "src": [32,32], "f": 0, "t": 48, "d": [8,178], "a": 1 }, + { "px": [480,80], "src": [32,32], "f": 0, "t": 48, "d": [8,190], "a": 1 }, + { "px": [16,96], "src": [32,32], "f": 0, "t": 48, "d": [8,193], "a": 1 }, + { "px": [112,96], "src": [32,32], "f": 0, "t": 48, "d": [8,199], "a": 1 }, + { "px": [336,96], "src": [32,32], "f": 0, "t": 48, "d": [8,213], "a": 1 }, + { "px": [432,96], "src": [32,32], "f": 0, "t": 48, "d": [8,219], "a": 1 }, + { "px": [496,96], "src": [32,32], "f": 0, "t": 48, "d": [8,223], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [8,224], "a": 1 }, + { "px": [496,128], "src": [32,32], "f": 0, "t": 48, "d": [8,287], "a": 1 }, + { "px": [480,144], "src": [32,32], "f": 0, "t": 48, "d": [8,318], "a": 1 }, + { "px": [112,160], "src": [32,32], "f": 0, "t": 48, "d": [8,327], "a": 1 }, + { "px": [176,160], "src": [32,32], "f": 0, "t": 48, "d": [8,331], "a": 1 }, + { "px": [208,160], "src": [32,32], "f": 0, "t": 48, "d": [8,333], "a": 1 }, + { "px": [240,160], "src": [32,32], "f": 0, "t": 48, "d": [8,335], "a": 1 }, + { "px": [272,160], "src": [32,32], "f": 0, "t": 48, "d": [8,337], "a": 1 }, + { "px": [160,176], "src": [32,32], "f": 0, "t": 48, "d": [8,362], "a": 1 }, + { "px": [192,176], "src": [32,32], "f": 0, "t": 48, "d": [8,364], "a": 1 }, + { "px": [256,176], "src": [32,32], "f": 0, "t": 48, "d": [8,368], "a": 1 }, + { "px": [480,208], "src": [32,32], "f": 0, "t": 48, "d": [8,446], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [8,479], "a": 1 }, + { "px": [496,288], "src": [32,32], "f": 0, "t": 48, "d": [8,607], "a": 1 }, + { "px": [32,304], "src": [32,32], "f": 0, "t": 48, "d": [8,610], "a": 1 }, + { "px": [480,304], "src": [32,32], "f": 0, "t": 48, "d": [8,638], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [8,641], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [8,674], "a": 1 }, + { "px": [480,336], "src": [32,32], "f": 0, "t": 48, "d": [8,702], "a": 1 }, + { "px": [496,352], "src": [32,32], "f": 0, "t": 48, "d": [8,735], "a": 1 }, + { "px": [32,368], "src": [32,32], "f": 0, "t": 48, "d": [8,738], "a": 1 }, + { "px": [480,368], "src": [32,32], "f": 0, "t": 48, "d": [8,766], "a": 1 }, + { "px": [16,384], "src": [32,32], "f": 0, "t": 48, "d": [8,769], "a": 1 }, + { "px": [496,384], "src": [32,32], "f": 0, "t": 48, "d": [8,799], "a": 1 }, + { "px": [480,400], "src": [32,32], "f": 0, "t": 48, "d": [8,830], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [8,897], "a": 1 }, + { "px": [96,464], "src": [32,32], "f": 0, "t": 48, "d": [8,934], "a": 1 }, + { "px": [128,464], "src": [32,32], "f": 0, "t": 48, "d": [8,936], "a": 1 }, + { "px": [192,464], "src": [32,32], "f": 0, "t": 48, "d": [8,940], "a": 1 }, + { "px": [224,464], "src": [32,32], "f": 0, "t": 48, "d": [8,942], "a": 1 }, + { "px": [288,464], "src": [32,32], "f": 0, "t": 48, "d": [8,946], "a": 1 }, + { "px": [320,464], "src": [32,32], "f": 0, "t": 48, "d": [8,948], "a": 1 }, + { "px": [384,464], "src": [32,32], "f": 0, "t": 48, "d": [8,952], "a": 1 }, + { "px": [416,464], "src": [32,32], "f": 0, "t": 48, "d": [8,954], "a": 1 }, + { "px": [448,464], "src": [32,32], "f": 0, "t": 48, "d": [8,956], "a": 1 }, + { "px": [480,464], "src": [32,32], "f": 0, "t": 48, "d": [8,958], "a": 1 }, + { "px": [48,480], "src": [32,32], "f": 0, "t": 48, "d": [8,963], "a": 1 }, + { "px": [80,480], "src": [32,32], "f": 0, "t": 48, "d": [8,965], "a": 1 }, + { "px": [112,480], "src": [32,32], "f": 0, "t": 48, "d": [8,967], "a": 1 }, + { "px": [176,480], "src": [32,32], "f": 0, "t": 48, "d": [8,971], "a": 1 }, + { "px": [208,480], "src": [32,32], "f": 0, "t": 48, "d": [8,973], "a": 1 }, + { "px": [240,480], "src": [32,32], "f": 0, "t": 48, "d": [8,975], "a": 1 }, + { "px": [272,480], "src": [32,32], "f": 0, "t": 48, "d": [8,977], "a": 1 }, + { "px": [304,480], "src": [32,32], "f": 0, "t": 48, "d": [8,979], "a": 1 }, + { "px": [400,480], "src": [32,32], "f": 0, "t": 48, "d": [8,985], "a": 1 }, + { "px": [432,480], "src": [32,32], "f": 0, "t": 48, "d": [8,987], "a": 1 }, + { "px": [464,480], "src": [32,32], "f": 0, "t": 48, "d": [8,989], "a": 1 }, + { "px": [112,0], "src": [96,96], "f": 0, "t": 144, "d": [83,7], "a": 1 }, + { "px": [432,0], "src": [64,96], "f": 0, "t": 142, "d": [83,27], "a": 1 }, + { "px": [128,16], "src": [96,96], "f": 0, "t": 144, "d": [83,40], "a": 1 }, + { "px": [112,32], "src": [64,96], "f": 0, "t": 142, "d": [83,71], "a": 1 }, + { "px": [16,64], "src": [64,96], "f": 0, "t": 142, "d": [83,129], "a": 1 }, + { "px": [320,80], "src": [64,96], "f": 0, "t": 142, "d": [83,180], "a": 1 }, + { "px": [448,80], "src": [64,96], "f": 0, "t": 142, "d": [83,188], "a": 1 }, + { "px": [272,96], "src": [96,96], "f": 0, "t": 144, "d": [83,209], "a": 1 }, + { "px": [304,96], "src": [64,96], "f": 0, "t": 142, "d": [83,211], "a": 1 }, + { "px": [464,96], "src": [64,96], "f": 0, "t": 142, "d": [83,221], "a": 1 }, + { "px": [32,112], "src": [96,96], "f": 0, "t": 144, "d": [83,226], "a": 1 }, + { "px": [128,112], "src": [96,96], "f": 0, "t": 144, "d": [83,232], "a": 1 }, + { "px": [288,112], "src": [96,96], "f": 0, "t": 144, "d": [83,242], "a": 1 }, + { "px": [480,112], "src": [96,96], "f": 0, "t": 144, "d": [83,254], "a": 1 }, + { "px": [112,128], "src": [96,96], "f": 0, "t": 144, "d": [83,263], "a": 1 }, + { "px": [272,128], "src": [64,96], "f": 0, "t": 142, "d": [83,273], "a": 1 }, + { "px": [128,144], "src": [64,96], "f": 0, "t": 142, "d": [83,296], "a": 1 }, + { "px": [288,144], "src": [64,96], "f": 0, "t": 142, "d": [83,306], "a": 1 }, + { "px": [144,160], "src": [96,96], "f": 0, "t": 144, "d": [83,329], "a": 1 }, + { "px": [496,160], "src": [64,96], "f": 0, "t": 142, "d": [83,351], "a": 1 }, + { "px": [128,176], "src": [64,96], "f": 0, "t": 142, "d": [83,360], "a": 1 }, + { "px": [224,176], "src": [96,96], "f": 0, "t": 144, "d": [83,366], "a": 1 }, + { "px": [288,176], "src": [96,96], "f": 0, "t": 144, "d": [83,370], "a": 1 }, + { "px": [480,176], "src": [64,96], "f": 0, "t": 142, "d": [83,382], "a": 1 }, + { "px": [496,192], "src": [64,96], "f": 0, "t": 142, "d": [83,415], "a": 1 }, + { "px": [480,240], "src": [96,96], "f": 0, "t": 144, "d": [83,510], "a": 1 }, + { "px": [496,256], "src": [64,96], "f": 0, "t": 142, "d": [83,543], "a": 1 }, + { "px": [480,272], "src": [64,96], "f": 0, "t": 142, "d": [83,574], "a": 1 }, + { "px": [0,304], "src": [96,96], "f": 0, "t": 144, "d": [83,608], "a": 1 }, + { "px": [496,320], "src": [96,96], "f": 0, "t": 144, "d": [83,671], "a": 1 }, + { "px": [16,352], "src": [64,96], "f": 0, "t": 142, "d": [83,705], "a": 1 }, + { "px": [32,400], "src": [96,96], "f": 0, "t": 144, "d": [83,802], "a": 1 }, + { "px": [16,416], "src": [64,96], "f": 0, "t": 142, "d": [83,833], "a": 1 }, + { "px": [496,416], "src": [96,96], "f": 0, "t": 144, "d": [83,863], "a": 1 }, + { "px": [32,432], "src": [96,96], "f": 0, "t": 144, "d": [83,866], "a": 1 }, + { "px": [480,432], "src": [96,96], "f": 0, "t": 144, "d": [83,894], "a": 1 }, + { "px": [496,448], "src": [96,96], "f": 0, "t": 144, "d": [83,927], "a": 1 }, + { "px": [32,464], "src": [96,96], "f": 0, "t": 144, "d": [83,930], "a": 1 }, + { "px": [64,464], "src": [96,96], "f": 0, "t": 144, "d": [83,932], "a": 1 }, + { "px": [160,464], "src": [96,96], "f": 0, "t": 144, "d": [83,938], "a": 1 }, + { "px": [256,464], "src": [96,96], "f": 0, "t": 144, "d": [83,944], "a": 1 }, + { "px": [352,464], "src": [64,96], "f": 0, "t": 142, "d": [83,950], "a": 1 }, + { "px": [16,480], "src": [96,96], "f": 0, "t": 144, "d": [83,961], "a": 1 }, + { "px": [144,480], "src": [64,96], "f": 0, "t": 142, "d": [83,969], "a": 1 }, + { "px": [336,480], "src": [96,96], "f": 0, "t": 144, "d": [83,981], "a": 1 }, + { "px": [368,480], "src": [64,96], "f": 0, "t": 142, "d": [83,983], "a": 1 }, + { "px": [496,480], "src": [64,96], "f": 0, "t": 142, "d": [83,991], "a": 1 }, + { "px": [32,0], "src": [192,16], "f": 0, "t": 35, "d": [101,2], "a": 1 }, + { "px": [128,0], "src": [192,16], "f": 0, "t": 35, "d": [101,8], "a": 1 }, + { "px": [320,0], "src": [192,16], "f": 0, "t": 35, "d": [101,20], "a": 1 }, + { "px": [448,0], "src": [96,0], "f": 0, "t": 6, "d": [101,28], "a": 1 }, + { "px": [16,16], "src": [96,0], "f": 0, "t": 6, "d": [101,33], "a": 1 }, + { "px": [112,16], "src": [224,96], "f": 0, "t": 152, "d": [101,39], "a": 1 }, + { "px": [336,16], "src": [192,16], "f": 0, "t": 35, "d": [101,53], "a": 1 }, + { "px": [432,16], "src": [224,96], "f": 0, "t": 152, "d": [101,59], "a": 1 }, + { "px": [32,32], "src": [224,96], "f": 0, "t": 152, "d": [101,66], "a": 1 }, + { "px": [128,32], "src": [224,96], "f": 0, "t": 152, "d": [101,72], "a": 1 }, + { "px": [320,32], "src": [224,96], "f": 0, "t": 152, "d": [101,84], "a": 1 }, + { "px": [448,32], "src": [96,0], "f": 0, "t": 6, "d": [101,92], "a": 1 }, + { "px": [16,48], "src": [224,96], "f": 0, "t": 152, "d": [101,97], "a": 1 }, + { "px": [112,48], "src": [96,0], "f": 0, "t": 6, "d": [101,103], "a": 1 }, + { "px": [336,48], "src": [96,0], "f": 0, "t": 6, "d": [101,117], "a": 1 }, + { "px": [432,48], "src": [224,96], "f": 0, "t": 152, "d": [101,123], "a": 1 }, + { "px": [32,64], "src": [192,16], "f": 0, "t": 35, "d": [101,130], "a": 1 }, + { "px": [128,64], "src": [224,96], "f": 0, "t": 152, "d": [101,136], "a": 1 }, + { "px": [320,64], "src": [192,16], "f": 0, "t": 35, "d": [101,148], "a": 1 }, + { "px": [448,64], "src": [224,96], "f": 0, "t": 152, "d": [101,156], "a": 1 }, + { "px": [16,80], "src": [224,96], "f": 0, "t": 152, "d": [101,161], "a": 1 }, + { "px": [112,80], "src": [224,96], "f": 0, "t": 152, "d": [101,167], "a": 1 }, + { "px": [272,80], "src": [96,0], "f": 0, "t": 6, "d": [101,177], "a": 1 }, + { "px": [304,80], "src": [224,96], "f": 0, "t": 152, "d": [101,179], "a": 1 }, + { "px": [336,80], "src": [192,16], "f": 0, "t": 35, "d": [101,181], "a": 1 }, + { "px": [432,80], "src": [224,96], "f": 0, "t": 152, "d": [101,187], "a": 1 }, + { "px": [464,80], "src": [224,96], "f": 0, "t": 152, "d": [101,189], "a": 1 }, + { "px": [496,80], "src": [192,16], "f": 0, "t": 35, "d": [101,191], "a": 1 }, + { "px": [0,96], "src": [192,16], "f": 0, "t": 35, "d": [101,192], "a": 1 }, + { "px": [32,96], "src": [192,16], "f": 0, "t": 35, "d": [101,194], "a": 1 }, + { "px": [128,96], "src": [224,96], "f": 0, "t": 152, "d": [101,200], "a": 1 }, + { "px": [288,96], "src": [96,0], "f": 0, "t": 6, "d": [101,210], "a": 1 }, + { "px": [320,96], "src": [96,0], "f": 0, "t": 6, "d": [101,212], "a": 1 }, + { "px": [448,96], "src": [224,96], "f": 0, "t": 152, "d": [101,220], "a": 1 }, + { "px": [480,96], "src": [96,0], "f": 0, "t": 6, "d": [101,222], "a": 1 }, + { "px": [16,112], "src": [224,96], "f": 0, "t": 152, "d": [101,225], "a": 1 }, + { "px": [112,112], "src": [96,0], "f": 0, "t": 6, "d": [101,231], "a": 1 }, + { "px": [272,112], "src": [96,0], "f": 0, "t": 6, "d": [101,241], "a": 1 }, + { "px": [496,112], "src": [224,96], "f": 0, "t": 152, "d": [101,255], "a": 1 }, + { "px": [128,128], "src": [192,16], "f": 0, "t": 35, "d": [101,264], "a": 1 }, + { "px": [288,128], "src": [192,16], "f": 0, "t": 35, "d": [101,274], "a": 1 }, + { "px": [480,128], "src": [192,16], "f": 0, "t": 35, "d": [101,286], "a": 1 }, + { "px": [112,144], "src": [96,0], "f": 0, "t": 6, "d": [101,295], "a": 1 }, + { "px": [272,144], "src": [96,0], "f": 0, "t": 6, "d": [101,305], "a": 1 }, + { "px": [496,144], "src": [192,16], "f": 0, "t": 35, "d": [101,319], "a": 1 }, + { "px": [128,160], "src": [224,96], "f": 0, "t": 152, "d": [101,328], "a": 1 }, + { "px": [160,160], "src": [224,96], "f": 0, "t": 152, "d": [101,330], "a": 1 }, + { "px": [192,160], "src": [192,16], "f": 0, "t": 35, "d": [101,332], "a": 1 }, + { "px": [224,160], "src": [192,16], "f": 0, "t": 35, "d": [101,334], "a": 1 }, + { "px": [256,160], "src": [224,96], "f": 0, "t": 152, "d": [101,336], "a": 1 }, + { "px": [288,160], "src": [224,96], "f": 0, "t": 152, "d": [101,338], "a": 1 }, + { "px": [480,160], "src": [224,96], "f": 0, "t": 152, "d": [101,350], "a": 1 }, + { "px": [112,176], "src": [96,0], "f": 0, "t": 6, "d": [101,359], "a": 1 }, + { "px": [144,176], "src": [96,0], "f": 0, "t": 6, "d": [101,361], "a": 1 }, + { "px": [176,176], "src": [192,16], "f": 0, "t": 35, "d": [101,363], "a": 1 }, + { "px": [208,176], "src": [224,96], "f": 0, "t": 152, "d": [101,365], "a": 1 }, + { "px": [240,176], "src": [224,96], "f": 0, "t": 152, "d": [101,367], "a": 1 }, + { "px": [272,176], "src": [192,16], "f": 0, "t": 35, "d": [101,369], "a": 1 }, + { "px": [496,176], "src": [96,0], "f": 0, "t": 6, "d": [101,383], "a": 1 }, + { "px": [480,192], "src": [192,16], "f": 0, "t": 35, "d": [101,414], "a": 1 }, + { "px": [496,208], "src": [224,96], "f": 0, "t": 152, "d": [101,447], "a": 1 }, + { "px": [480,224], "src": [96,0], "f": 0, "t": 6, "d": [101,478], "a": 1 }, + { "px": [496,240], "src": [192,16], "f": 0, "t": 35, "d": [101,511], "a": 1 }, + { "px": [480,256], "src": [192,16], "f": 0, "t": 35, "d": [101,542], "a": 1 }, + { "px": [496,272], "src": [192,16], "f": 0, "t": 35, "d": [101,575], "a": 1 }, + { "px": [480,288], "src": [224,96], "f": 0, "t": 152, "d": [101,606], "a": 1 }, + { "px": [16,304], "src": [192,16], "f": 0, "t": 35, "d": [101,609], "a": 1 }, + { "px": [496,304], "src": [192,16], "f": 0, "t": 35, "d": [101,639], "a": 1 }, + { "px": [0,320], "src": [224,96], "f": 0, "t": 152, "d": [101,640], "a": 1 }, + { "px": [32,320], "src": [192,16], "f": 0, "t": 35, "d": [101,642], "a": 1 }, + { "px": [480,320], "src": [96,0], "f": 0, "t": 6, "d": [101,670], "a": 1 }, + { "px": [16,336], "src": [192,16], "f": 0, "t": 35, "d": [101,673], "a": 1 }, + { "px": [496,336], "src": [96,0], "f": 0, "t": 6, "d": [101,703], "a": 1 }, + { "px": [32,352], "src": [192,16], "f": 0, "t": 35, "d": [101,706], "a": 1 }, + { "px": [480,352], "src": [192,16], "f": 0, "t": 35, "d": [101,734], "a": 1 }, + { "px": [16,368], "src": [96,0], "f": 0, "t": 6, "d": [101,737], "a": 1 }, + { "px": [496,368], "src": [192,16], "f": 0, "t": 35, "d": [101,767], "a": 1 }, + { "px": [32,384], "src": [96,0], "f": 0, "t": 6, "d": [101,770], "a": 1 }, + { "px": [480,384], "src": [224,96], "f": 0, "t": 152, "d": [101,798], "a": 1 }, + { "px": [16,400], "src": [192,16], "f": 0, "t": 35, "d": [101,801], "a": 1 }, + { "px": [496,400], "src": [224,96], "f": 0, "t": 152, "d": [101,831], "a": 1 }, + { "px": [32,416], "src": [96,0], "f": 0, "t": 6, "d": [101,834], "a": 1 }, + { "px": [480,416], "src": [192,16], "f": 0, "t": 35, "d": [101,862], "a": 1 }, + { "px": [16,432], "src": [224,96], "f": 0, "t": 152, "d": [101,865], "a": 1 }, + { "px": [496,432], "src": [96,0], "f": 0, "t": 6, "d": [101,895], "a": 1 }, + { "px": [32,448], "src": [192,16], "f": 0, "t": 35, "d": [101,898], "a": 1 }, + { "px": [480,448], "src": [224,96], "f": 0, "t": 152, "d": [101,926], "a": 1 }, + { "px": [16,464], "src": [96,0], "f": 0, "t": 6, "d": [101,929], "a": 1 }, + { "px": [48,464], "src": [224,96], "f": 0, "t": 152, "d": [101,931], "a": 1 }, + { "px": [80,464], "src": [224,96], "f": 0, "t": 152, "d": [101,933], "a": 1 }, + { "px": [112,464], "src": [192,16], "f": 0, "t": 35, "d": [101,935], "a": 1 }, + { "px": [144,464], "src": [224,96], "f": 0, "t": 152, "d": [101,937], "a": 1 }, + { "px": [176,464], "src": [192,16], "f": 0, "t": 35, "d": [101,939], "a": 1 }, + { "px": [208,464], "src": [224,96], "f": 0, "t": 152, "d": [101,941], "a": 1 }, + { "px": [240,464], "src": [96,0], "f": 0, "t": 6, "d": [101,943], "a": 1 }, + { "px": [272,464], "src": [224,96], "f": 0, "t": 152, "d": [101,945], "a": 1 }, + { "px": [304,464], "src": [224,96], "f": 0, "t": 152, "d": [101,947], "a": 1 }, + { "px": [336,464], "src": [224,96], "f": 0, "t": 152, "d": [101,949], "a": 1 }, + { "px": [368,464], "src": [96,0], "f": 0, "t": 6, "d": [101,951], "a": 1 }, + { "px": [400,464], "src": [224,96], "f": 0, "t": 152, "d": [101,953], "a": 1 }, + { "px": [432,464], "src": [96,0], "f": 0, "t": 6, "d": [101,955], "a": 1 }, + { "px": [464,464], "src": [224,96], "f": 0, "t": 152, "d": [101,957], "a": 1 }, + { "px": [496,464], "src": [224,96], "f": 0, "t": 152, "d": [101,959], "a": 1 }, + { "px": [32,480], "src": [96,0], "f": 0, "t": 6, "d": [101,962], "a": 1 }, + { "px": [64,480], "src": [96,0], "f": 0, "t": 6, "d": [101,964], "a": 1 }, + { "px": [96,480], "src": [192,16], "f": 0, "t": 35, "d": [101,966], "a": 1 }, + { "px": [128,480], "src": [96,0], "f": 0, "t": 6, "d": [101,968], "a": 1 }, + { "px": [160,480], "src": [224,96], "f": 0, "t": 152, "d": [101,970], "a": 1 }, + { "px": [192,480], "src": [192,16], "f": 0, "t": 35, "d": [101,972], "a": 1 }, + { "px": [224,480], "src": [96,0], "f": 0, "t": 6, "d": [101,974], "a": 1 }, + { "px": [256,480], "src": [192,16], "f": 0, "t": 35, "d": [101,976], "a": 1 }, + { "px": [288,480], "src": [192,16], "f": 0, "t": 35, "d": [101,978], "a": 1 }, + { "px": [320,480], "src": [192,16], "f": 0, "t": 35, "d": [101,980], "a": 1 }, + { "px": [352,480], "src": [224,96], "f": 0, "t": 152, "d": [101,982], "a": 1 }, + { "px": [384,480], "src": [96,0], "f": 0, "t": 6, "d": [101,984], "a": 1 }, + { "px": [416,480], "src": [192,16], "f": 0, "t": 35, "d": [101,986], "a": 1 }, + { "px": [448,480], "src": [192,16], "f": 0, "t": 35, "d": [101,988], "a": 1 }, + { "px": [480,480], "src": [224,96], "f": 0, "t": 152, "d": [101,990], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [160,0], "src": [32,32], "f": 0, "t": 48, "d": [127,10], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [127,31], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,32], "a": 1 }, + { "px": [144,16], "src": [32,32], "f": 0, "t": 48, "d": [127,41], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [127,42], "a": 1 }, + { "px": [176,16], "src": [32,32], "f": 0, "t": 48, "d": [127,43], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,44], "a": 1 }, + { "px": [208,16], "src": [32,32], "f": 0, "t": 48, "d": [127,45], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [127,51], "a": 1 }, + { "px": [464,16], "src": [32,32], "f": 0, "t": 48, "d": [127,61], "a": 1 }, + { "px": [480,16], "src": [32,32], "f": 0, "t": 48, "d": [127,62], "a": 1 }, + { "px": [496,16], "src": [32,32], "f": 0, "t": 48, "d": [127,63], "a": 1 }, + { "px": [0,32], "src": [32,32], "f": 0, "t": 48, "d": [127,64], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [127,73], "a": 1 }, + { "px": [160,32], "src": [32,32], "f": 0, "t": 48, "d": [127,74], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [127,75], "a": 1 }, + { "px": [192,32], "src": [32,32], "f": 0, "t": 48, "d": [127,76], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [127,77], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,79], "a": 1 }, + { "px": [256,32], "src": [32,32], "f": 0, "t": 48, "d": [127,80], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [127,81], "a": 1 }, + { "px": [288,32], "src": [32,32], "f": 0, "t": 48, "d": [127,82], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [127,83], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [127,93], "a": 1 }, + { "px": [480,32], "src": [32,32], "f": 0, "t": 48, "d": [127,94], "a": 1 }, + { "px": [496,32], "src": [32,32], "f": 0, "t": 48, "d": [127,95], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,96], "a": 1 }, + { "px": [160,48], "src": [32,32], "f": 0, "t": 48, "d": [127,106], "a": 1 }, + { "px": [176,48], "src": [32,32], "f": 0, "t": 48, "d": [127,107], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [127,108], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [127,110], "a": 1 }, + { "px": [256,48], "src": [32,32], "f": 0, "t": 48, "d": [127,112], "a": 1 }, + { "px": [272,48], "src": [32,32], "f": 0, "t": 48, "d": [127,113], "a": 1 }, + { "px": [288,48], "src": [32,32], "f": 0, "t": 48, "d": [127,114], "a": 1 }, + { "px": [304,48], "src": [32,32], "f": 0, "t": 48, "d": [127,115], "a": 1 }, + { "px": [464,48], "src": [32,32], "f": 0, "t": 48, "d": [127,125], "a": 1 }, + { "px": [480,48], "src": [32,32], "f": 0, "t": 48, "d": [127,126], "a": 1 }, + { "px": [496,48], "src": [32,32], "f": 0, "t": 48, "d": [127,127], "a": 1 }, + { "px": [144,64], "src": [32,32], "f": 0, "t": 48, "d": [127,137], "a": 1 }, + { "px": [160,64], "src": [32,32], "f": 0, "t": 48, "d": [127,138], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [127,139], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [127,141], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [127,143], "a": 1 }, + { "px": [256,64], "src": [32,32], "f": 0, "t": 48, "d": [127,144], "a": 1 }, + { "px": [272,64], "src": [32,32], "f": 0, "t": 48, "d": [127,145], "a": 1 }, + { "px": [288,64], "src": [32,32], "f": 0, "t": 48, "d": [127,146], "a": 1 }, + { "px": [304,64], "src": [32,32], "f": 0, "t": 48, "d": [127,147], "a": 1 }, + { "px": [464,64], "src": [32,32], "f": 0, "t": 48, "d": [127,157], "a": 1 }, + { "px": [480,64], "src": [32,32], "f": 0, "t": 48, "d": [127,158], "a": 1 }, + { "px": [496,64], "src": [32,32], "f": 0, "t": 48, "d": [127,159], "a": 1 }, + { "px": [0,80], "src": [32,32], "f": 0, "t": 48, "d": [127,160], "a": 1 }, + { "px": [144,80], "src": [32,32], "f": 0, "t": 48, "d": [127,169], "a": 1 }, + { "px": [160,80], "src": [32,32], "f": 0, "t": 48, "d": [127,170], "a": 1 }, + { "px": [192,80], "src": [32,32], "f": 0, "t": 48, "d": [127,172], "a": 1 }, + { "px": [208,80], "src": [32,32], "f": 0, "t": 48, "d": [127,173], "a": 1 }, + { "px": [224,80], "src": [32,32], "f": 0, "t": 48, "d": [127,174], "a": 1 }, + { "px": [256,80], "src": [32,32], "f": 0, "t": 48, "d": [127,176], "a": 1 }, + { "px": [144,96], "src": [32,32], "f": 0, "t": 48, "d": [127,201], "a": 1 }, + { "px": [160,96], "src": [32,32], "f": 0, "t": 48, "d": [127,202], "a": 1 }, + { "px": [176,96], "src": [32,32], "f": 0, "t": 48, "d": [127,203], "a": 1 }, + { "px": [208,96], "src": [32,32], "f": 0, "t": 48, "d": [127,205], "a": 1 }, + { "px": [224,96], "src": [32,32], "f": 0, "t": 48, "d": [127,206], "a": 1 }, + { "px": [240,96], "src": [32,32], "f": 0, "t": 48, "d": [127,207], "a": 1 }, + { "px": [256,96], "src": [32,32], "f": 0, "t": 48, "d": [127,208], "a": 1 }, + { "px": [144,112], "src": [32,32], "f": 0, "t": 48, "d": [127,233], "a": 1 }, + { "px": [160,112], "src": [32,32], "f": 0, "t": 48, "d": [127,234], "a": 1 }, + { "px": [192,112], "src": [32,32], "f": 0, "t": 48, "d": [127,236], "a": 1 }, + { "px": [224,112], "src": [32,32], "f": 0, "t": 48, "d": [127,238], "a": 1 }, + { "px": [256,112], "src": [32,32], "f": 0, "t": 48, "d": [127,240], "a": 1 }, + { "px": [144,128], "src": [32,32], "f": 0, "t": 48, "d": [127,265], "a": 1 }, + { "px": [176,128], "src": [32,32], "f": 0, "t": 48, "d": [127,267], "a": 1 }, + { "px": [208,128], "src": [32,32], "f": 0, "t": 48, "d": [127,269], "a": 1 }, + { "px": [240,128], "src": [32,32], "f": 0, "t": 48, "d": [127,271], "a": 1 }, + { "px": [144,144], "src": [32,32], "f": 0, "t": 48, "d": [127,297], "a": 1 }, + { "px": [160,144], "src": [32,32], "f": 0, "t": 48, "d": [127,298], "a": 1 }, + { "px": [176,144], "src": [32,32], "f": 0, "t": 48, "d": [127,299], "a": 1 }, + { "px": [192,144], "src": [32,32], "f": 0, "t": 48, "d": [127,300], "a": 1 }, + { "px": [224,144], "src": [32,32], "f": 0, "t": 48, "d": [127,302], "a": 1 }, + { "px": [240,144], "src": [32,32], "f": 0, "t": 48, "d": [127,303], "a": 1 }, + { "px": [256,144], "src": [32,32], "f": 0, "t": 48, "d": [127,304], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [127,672], "a": 1 }, + { "px": [0,352], "src": [32,32], "f": 0, "t": 48, "d": [127,704], "a": 1 }, + { "px": [0,368], "src": [32,32], "f": 0, "t": 48, "d": [127,736], "a": 1 }, + { "px": [0,400], "src": [32,32], "f": 0, "t": 48, "d": [127,800], "a": 1 }, + { "px": [0,416], "src": [32,32], "f": 0, "t": 48, "d": [127,832], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [127,864], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [127,928], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,992], "a": 1 }, + { "px": [32,496], "src": [32,32], "f": 0, "t": 48, "d": [127,994], "a": 1 }, + { "px": [64,496], "src": [32,32], "f": 0, "t": 48, "d": [127,996], "a": 1 }, + { "px": [96,496], "src": [32,32], "f": 0, "t": 48, "d": [127,998], "a": 1 }, + { "px": [112,496], "src": [32,32], "f": 0, "t": 48, "d": [127,999], "a": 1 }, + { "px": [128,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1000], "a": 1 }, + { "px": [144,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1001], "a": 1 }, + { "px": [160,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1002], "a": 1 }, + { "px": [176,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1003], "a": 1 }, + { "px": [192,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1004], "a": 1 }, + { "px": [208,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1005], "a": 1 }, + { "px": [224,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1006], "a": 1 }, + { "px": [256,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1008], "a": 1 }, + { "px": [288,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1010], "a": 1 }, + { "px": [320,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1012], "a": 1 }, + { "px": [336,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1013], "a": 1 }, + { "px": [352,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1014], "a": 1 }, + { "px": [368,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1015], "a": 1 }, + { "px": [384,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1016], "a": 1 }, + { "px": [400,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1017], "a": 1 }, + { "px": [416,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1018], "a": 1 }, + { "px": [432,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1019], "a": 1 }, + { "px": [448,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1020], "a": 1 }, + { "px": [464,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1021], "a": 1 }, + { "px": [480,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1022], "a": 1 }, + { "px": [0,0], "src": [96,96], "f": 0, "t": 144, "d": [126,0], "a": 1 }, + { "px": [192,0], "src": [96,96], "f": 0, "t": 144, "d": [126,12], "a": 1 }, + { "px": [256,0], "src": [96,96], "f": 0, "t": 144, "d": [126,16], "a": 1 }, + { "px": [480,0], "src": [96,96], "f": 0, "t": 144, "d": [126,30], "a": 1 }, + { "px": [240,16], "src": [96,96], "f": 0, "t": 144, "d": [126,47], "a": 1 }, + { "px": [272,16], "src": [64,96], "f": 0, "t": 142, "d": [126,49], "a": 1 }, + { "px": [224,32], "src": [96,96], "f": 0, "t": 144, "d": [126,78], "a": 1 }, + { "px": [144,48], "src": [64,96], "f": 0, "t": 142, "d": [126,105], "a": 1 }, + { "px": [208,48], "src": [64,96], "f": 0, "t": 142, "d": [126,109], "a": 1 }, + { "px": [240,48], "src": [96,96], "f": 0, "t": 144, "d": [126,111], "a": 1 }, + { "px": [0,64], "src": [64,96], "f": 0, "t": 142, "d": [126,128], "a": 1 }, + { "px": [192,64], "src": [96,96], "f": 0, "t": 144, "d": [126,140], "a": 1 }, + { "px": [224,64], "src": [64,96], "f": 0, "t": 142, "d": [126,142], "a": 1 }, + { "px": [176,80], "src": [96,96], "f": 0, "t": 144, "d": [126,171], "a": 1 }, + { "px": [240,80], "src": [96,96], "f": 0, "t": 144, "d": [126,175], "a": 1 }, + { "px": [192,96], "src": [96,96], "f": 0, "t": 144, "d": [126,204], "a": 1 }, + { "px": [176,112], "src": [96,96], "f": 0, "t": 144, "d": [126,235], "a": 1 }, + { "px": [208,112], "src": [64,96], "f": 0, "t": 142, "d": [126,237], "a": 1 }, + { "px": [240,112], "src": [64,96], "f": 0, "t": 142, "d": [126,239], "a": 1 }, + { "px": [160,128], "src": [96,96], "f": 0, "t": 144, "d": [126,266], "a": 1 }, + { "px": [192,128], "src": [64,96], "f": 0, "t": 142, "d": [126,268], "a": 1 }, + { "px": [224,128], "src": [64,96], "f": 0, "t": 142, "d": [126,270], "a": 1 }, + { "px": [256,128], "src": [64,96], "f": 0, "t": 142, "d": [126,272], "a": 1 }, + { "px": [208,144], "src": [96,96], "f": 0, "t": 144, "d": [126,301], "a": 1 }, + { "px": [0,384], "src": [64,96], "f": 0, "t": 142, "d": [126,768], "a": 1 }, + { "px": [0,448], "src": [96,96], "f": 0, "t": 144, "d": [126,896], "a": 1 }, + { "px": [0,480], "src": [64,96], "f": 0, "t": 142, "d": [126,960], "a": 1 }, + { "px": [16,496], "src": [64,96], "f": 0, "t": 142, "d": [126,993], "a": 1 }, + { "px": [48,496], "src": [96,96], "f": 0, "t": 144, "d": [126,995], "a": 1 }, + { "px": [80,496], "src": [96,96], "f": 0, "t": 144, "d": [126,997], "a": 1 }, + { "px": [240,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1007], "a": 1 }, + { "px": [272,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1009], "a": 1 }, + { "px": [304,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1011], "a": 1 }, + { "px": [496,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1023], "a": 1 }, + { "px": [336,112], "src": [256,160], "f": 0, "t": 246, "d": [12,245], "a": 1 }, + { "px": [448,112], "src": [256,160], "f": 0, "t": 246, "d": [12,252], "a": 1 }, + { "px": [16,128], "src": [256,160], "f": 0, "t": 246, "d": [12,257], "a": 1 }, + { "px": [32,128], "src": [256,160], "f": 0, "t": 246, "d": [12,258], "a": 1 }, + { "px": [400,176], "src": [256,160], "f": 0, "t": 246, "d": [12,377], "a": 1 }, + { "px": [448,176], "src": [256,160], "f": 0, "t": 246, "d": [12,380], "a": 1 }, + { "px": [80,192], "src": [256,160], "f": 0, "t": 246, "d": [12,389], "a": 1 }, + { "px": [96,192], "src": [256,160], "f": 0, "t": 246, "d": [12,390], "a": 1 }, + { "px": [112,192], "src": [256,160], "f": 0, "t": 246, "d": [12,391], "a": 1 }, + { "px": [128,192], "src": [256,160], "f": 0, "t": 246, "d": [12,392], "a": 1 }, + { "px": [144,192], "src": [256,160], "f": 0, "t": 246, "d": [12,393], "a": 1 }, + { "px": [176,192], "src": [256,160], "f": 0, "t": 246, "d": [12,395], "a": 1 }, + { "px": [192,192], "src": [256,160], "f": 0, "t": 246, "d": [12,396], "a": 1 }, + { "px": [208,192], "src": [256,160], "f": 0, "t": 246, "d": [12,397], "a": 1 }, + { "px": [224,192], "src": [256,160], "f": 0, "t": 246, "d": [12,398], "a": 1 }, + { "px": [256,192], "src": [256,160], "f": 0, "t": 246, "d": [12,400], "a": 1 }, + { "px": [448,160], "src": [256,96], "f": 0, "t": 154, "d": [9,348], "a": 1 }, + { "px": [48,176], "src": [256,96], "f": 0, "t": 154, "d": [9,355], "a": 1 }, + { "px": [16,288], "src": [256,96], "f": 0, "t": 154, "d": [9,577], "a": 1 }, + { "px": [32,288], "src": [256,96], "f": 0, "t": 154, "d": [9,578], "a": 1 }, + { "px": [64,288], "src": [256,96], "f": 0, "t": 154, "d": [9,580], "a": 1 }, + { "px": [80,288], "src": [256,96], "f": 0, "t": 154, "d": [9,581], "a": 1 }, + { "px": [64,448], "src": [256,96], "f": 0, "t": 154, "d": [9,900], "a": 1 }, + { "px": [80,448], "src": [256,96], "f": 0, "t": 154, "d": [9,901], "a": 1 }, + { "px": [96,448], "src": [256,96], "f": 0, "t": 154, "d": [9,902], "a": 1 }, + { "px": [112,448], "src": [256,96], "f": 0, "t": 154, "d": [9,903], "a": 1 }, + { "px": [128,448], "src": [256,96], "f": 0, "t": 154, "d": [9,904], "a": 1 }, + { "px": [144,448], "src": [256,96], "f": 0, "t": 154, "d": [9,905], "a": 1 }, + { "px": [160,448], "src": [256,96], "f": 0, "t": 154, "d": [9,906], "a": 1 }, + { "px": [176,448], "src": [256,96], "f": 0, "t": 154, "d": [9,907], "a": 1 }, + { "px": [192,448], "src": [256,96], "f": 0, "t": 154, "d": [9,908], "a": 1 }, + { "px": [208,448], "src": [256,96], "f": 0, "t": 154, "d": [9,909], "a": 1 }, + { "px": [224,448], "src": [256,96], "f": 0, "t": 154, "d": [9,910], "a": 1 }, + { "px": [240,448], "src": [256,96], "f": 0, "t": 154, "d": [9,911], "a": 1 }, + { "px": [256,448], "src": [256,96], "f": 0, "t": 154, "d": [9,912], "a": 1 }, + { "px": [272,448], "src": [256,96], "f": 0, "t": 154, "d": [9,913], "a": 1 }, + { "px": [288,448], "src": [256,96], "f": 0, "t": 154, "d": [9,914], "a": 1 }, + { "px": [304,448], "src": [256,96], "f": 0, "t": 154, "d": [9,915], "a": 1 }, + { "px": [320,448], "src": [256,96], "f": 0, "t": 154, "d": [9,916], "a": 1 }, + { "px": [336,448], "src": [256,96], "f": 0, "t": 154, "d": [9,917], "a": 1 }, + { "px": [352,448], "src": [256,96], "f": 0, "t": 154, "d": [9,918], "a": 1 }, + { "px": [368,448], "src": [256,96], "f": 0, "t": 154, "d": [9,919], "a": 1 }, + { "px": [384,448], "src": [256,96], "f": 0, "t": 154, "d": [9,920], "a": 1 }, + { "px": [400,448], "src": [256,96], "f": 0, "t": 154, "d": [9,921], "a": 1 }, + { "px": [416,448], "src": [256,96], "f": 0, "t": 154, "d": [9,922], "a": 1 }, + { "px": [432,448], "src": [256,96], "f": 0, "t": 154, "d": [9,923], "a": 1 }, + { "px": [448,448], "src": [256,96], "f": 0, "t": 154, "d": [9,924], "a": 1 }, + { "px": [48,0], "src": [224,128], "f": 1, "t": 198, "d": [10,3], "a": 1 }, + { "px": [96,0], "src": [224,128], "f": 0, "t": 198, "d": [10,6], "a": 1 }, + { "px": [352,0], "src": [224,128], "f": 1, "t": 198, "d": [10,22], "a": 1 }, + { "px": [416,0], "src": [224,128], "f": 0, "t": 198, "d": [10,26], "a": 1 }, + { "px": [48,16], "src": [224,128], "f": 1, "t": 198, "d": [10,35], "a": 1 }, + { "px": [96,16], "src": [224,128], "f": 0, "t": 198, "d": [10,38], "a": 1 }, + { "px": [352,16], "src": [224,128], "f": 1, "t": 198, "d": [10,54], "a": 1 }, + { "px": [416,16], "src": [224,128], "f": 0, "t": 198, "d": [10,58], "a": 1 }, + { "px": [48,32], "src": [224,128], "f": 1, "t": 198, "d": [10,67], "a": 1 }, + { "px": [96,32], "src": [224,128], "f": 0, "t": 198, "d": [10,70], "a": 1 }, + { "px": [352,32], "src": [224,128], "f": 1, "t": 198, "d": [10,86], "a": 1 }, + { "px": [416,32], "src": [224,128], "f": 0, "t": 198, "d": [10,90], "a": 1 }, + { "px": [48,48], "src": [224,128], "f": 1, "t": 198, "d": [10,99], "a": 1 }, + { "px": [96,48], "src": [224,128], "f": 0, "t": 198, "d": [10,102], "a": 1 }, + { "px": [352,48], "src": [224,128], "f": 1, "t": 198, "d": [10,118], "a": 1 }, + { "px": [416,48], "src": [224,128], "f": 0, "t": 198, "d": [10,122], "a": 1 }, + { "px": [48,64], "src": [224,128], "f": 1, "t": 198, "d": [10,131], "a": 1 }, + { "px": [96,64], "src": [224,128], "f": 0, "t": 198, "d": [10,134], "a": 1 }, + { "px": [352,64], "src": [224,128], "f": 1, "t": 198, "d": [10,150], "a": 1 }, + { "px": [416,64], "src": [224,128], "f": 0, "t": 198, "d": [10,154], "a": 1 }, + { "px": [48,80], "src": [224,128], "f": 1, "t": 198, "d": [10,163], "a": 1 }, + { "px": [96,80], "src": [224,128], "f": 0, "t": 198, "d": [10,166], "a": 1 }, + { "px": [352,80], "src": [224,128], "f": 1, "t": 198, "d": [10,182], "a": 1 }, + { "px": [416,80], "src": [224,128], "f": 0, "t": 198, "d": [10,186], "a": 1 }, + { "px": [48,96], "src": [224,128], "f": 1, "t": 198, "d": [10,195], "a": 1 }, + { "px": [96,96], "src": [224,128], "f": 0, "t": 198, "d": [10,198], "a": 1 }, + { "px": [352,96], "src": [224,128], "f": 1, "t": 198, "d": [10,214], "a": 1 }, + { "px": [416,96], "src": [224,128], "f": 0, "t": 198, "d": [10,218], "a": 1 }, + { "px": [48,112], "src": [224,128], "f": 1, "t": 198, "d": [10,227], "a": 1 }, + { "px": [96,112], "src": [224,128], "f": 0, "t": 198, "d": [10,230], "a": 1 }, + { "px": [96,128], "src": [224,128], "f": 0, "t": 198, "d": [10,262], "a": 1 }, + { "px": [304,128], "src": [224,128], "f": 1, "t": 198, "d": [10,275], "a": 1 }, + { "px": [464,128], "src": [224,128], "f": 0, "t": 198, "d": [10,285], "a": 1 }, + { "px": [0,144], "src": [224,128], "f": 1, "t": 198, "d": [10,288], "a": 1 }, + { "px": [96,144], "src": [224,128], "f": 0, "t": 198, "d": [10,294], "a": 1 }, + { "px": [304,144], "src": [224,128], "f": 1, "t": 198, "d": [10,307], "a": 1 }, + { "px": [464,144], "src": [224,128], "f": 0, "t": 198, "d": [10,317], "a": 1 }, + { "px": [0,160], "src": [224,128], "f": 1, "t": 198, "d": [10,320], "a": 1 }, + { "px": [96,160], "src": [224,128], "f": 0, "t": 198, "d": [10,326], "a": 1 }, + { "px": [304,160], "src": [224,128], "f": 1, "t": 198, "d": [10,339], "a": 1 }, + { "px": [0,176], "src": [224,128], "f": 1, "t": 198, "d": [10,352], "a": 1 }, + { "px": [304,176], "src": [224,128], "f": 1, "t": 198, "d": [10,371], "a": 1 }, + { "px": [0,192], "src": [224,128], "f": 1, "t": 198, "d": [10,384], "a": 1 }, + { "px": [32,192], "src": [224,128], "f": 0, "t": 198, "d": [10,386], "a": 1 }, + { "px": [464,192], "src": [224,128], "f": 0, "t": 198, "d": [10,413], "a": 1 }, + { "px": [0,208], "src": [224,128], "f": 1, "t": 198, "d": [10,416], "a": 1 }, + { "px": [32,208], "src": [224,128], "f": 0, "t": 198, "d": [10,418], "a": 1 }, + { "px": [48,208], "src": [224,128], "f": 1, "t": 198, "d": [10,419], "a": 1 }, + { "px": [464,208], "src": [224,128], "f": 0, "t": 198, "d": [10,445], "a": 1 }, + { "px": [0,224], "src": [224,128], "f": 1, "t": 198, "d": [10,448], "a": 1 }, + { "px": [32,224], "src": [224,128], "f": 0, "t": 198, "d": [10,450], "a": 1 }, + { "px": [48,224], "src": [224,128], "f": 1, "t": 198, "d": [10,451], "a": 1 }, + { "px": [464,224], "src": [224,128], "f": 0, "t": 198, "d": [10,477], "a": 1 }, + { "px": [0,240], "src": [224,128], "f": 1, "t": 198, "d": [10,480], "a": 1 }, + { "px": [464,240], "src": [224,128], "f": 0, "t": 198, "d": [10,509], "a": 1 }, + { "px": [0,256], "src": [224,128], "f": 1, "t": 198, "d": [10,512], "a": 1 }, + { "px": [464,256], "src": [224,128], "f": 0, "t": 198, "d": [10,541], "a": 1 }, + { "px": [0,272], "src": [224,128], "f": 1, "t": 198, "d": [10,544], "a": 1 }, + { "px": [464,272], "src": [224,128], "f": 0, "t": 198, "d": [10,573], "a": 1 }, + { "px": [464,288], "src": [224,128], "f": 0, "t": 198, "d": [10,605], "a": 1 }, + { "px": [48,304], "src": [224,128], "f": 1, "t": 198, "d": [10,611], "a": 1 }, + { "px": [464,304], "src": [224,128], "f": 0, "t": 198, "d": [10,637], "a": 1 }, + { "px": [48,320], "src": [224,128], "f": 1, "t": 198, "d": [10,643], "a": 1 }, + { "px": [464,320], "src": [224,128], "f": 0, "t": 198, "d": [10,669], "a": 1 }, + { "px": [48,336], "src": [224,128], "f": 1, "t": 198, "d": [10,675], "a": 1 }, + { "px": [464,336], "src": [224,128], "f": 0, "t": 198, "d": [10,701], "a": 1 }, + { "px": [48,352], "src": [224,128], "f": 1, "t": 198, "d": [10,707], "a": 1 }, + { "px": [464,352], "src": [224,128], "f": 0, "t": 198, "d": [10,733], "a": 1 }, + { "px": [48,368], "src": [224,128], "f": 1, "t": 198, "d": [10,739], "a": 1 }, + { "px": [464,368], "src": [224,128], "f": 0, "t": 198, "d": [10,765], "a": 1 }, + { "px": [48,384], "src": [224,128], "f": 1, "t": 198, "d": [10,771], "a": 1 }, + { "px": [464,384], "src": [224,128], "f": 0, "t": 198, "d": [10,797], "a": 1 }, + { "px": [48,400], "src": [224,128], "f": 1, "t": 198, "d": [10,803], "a": 1 }, + { "px": [464,400], "src": [224,128], "f": 0, "t": 198, "d": [10,829], "a": 1 }, + { "px": [48,416], "src": [224,128], "f": 1, "t": 198, "d": [10,835], "a": 1 }, + { "px": [464,416], "src": [224,128], "f": 0, "t": 198, "d": [10,861], "a": 1 }, + { "px": [48,432], "src": [224,128], "f": 1, "t": 198, "d": [10,867], "a": 1 }, + { "px": [464,432], "src": [224,128], "f": 0, "t": 198, "d": [10,893], "a": 1 }, + { "px": [352,112], "src": [224,96], "f": 3, "t": 152, "d": [11,246], "a": 1 }, + { "px": [32,176], "src": [224,96], "f": 0, "t": 152, "d": [11,354], "a": 1 }, + { "px": [304,192], "src": [224,96], "f": 3, "t": 152, "d": [11,403], "a": 1 }, + { "px": [32,240], "src": [224,96], "f": 2, "t": 152, "d": [11,482], "a": 1 }, + { "px": [48,240], "src": [224,96], "f": 3, "t": 152, "d": [11,483], "a": 1 }, + { "px": [96,288], "src": [224,96], "f": 1, "t": 152, "d": [11,582], "a": 1 }, + { "px": [304,112], "src": [224,96], "f": 0, "t": 152, "d": [14,243], "a": 1 }, + { "px": [464,112], "src": [224,96], "f": 1, "t": 152, "d": [14,253], "a": 1 }, + { "px": [0,128], "src": [224,96], "f": 0, "t": 152, "d": [14,256], "a": 1 }, + { "px": [464,160], "src": [224,96], "f": 3, "t": 152, "d": [14,349], "a": 1 }, + { "px": [96,176], "src": [224,96], "f": 3, "t": 152, "d": [14,358], "a": 1 }, + { "px": [464,176], "src": [224,96], "f": 1, "t": 152, "d": [14,381], "a": 1 }, + { "px": [48,192], "src": [224,96], "f": 0, "t": 152, "d": [14,387], "a": 1 }, + { "px": [0,288], "src": [224,96], "f": 2, "t": 152, "d": [14,576], "a": 1 }, + { "px": [48,288], "src": [224,96], "f": 0, "t": 152, "d": [14,579], "a": 1 }, + { "px": [48,448], "src": [224,96], "f": 2, "t": 152, "d": [14,899], "a": 1 }, + { "px": [464,448], "src": [224,96], "f": 3, "t": 152, "d": [14,925], "a": 1 }, + { "px": [320,112], "src": [160,192], "f": 0, "t": 286, "d": [78,244], "a": 1 }, + { "px": [416,112], "src": [192,192], "f": 0, "t": 288, "d": [78,250], "a": 1 }, + { "px": [432,112], "src": [192,192], "f": 0, "t": 288, "d": [78,251], "a": 1 }, + { "px": [48,128], "src": [192,192], "f": 0, "t": 288, "d": [78,259], "a": 1 }, + { "px": [368,176], "src": [192,192], "f": 0, "t": 288, "d": [78,375], "a": 1 }, + { "px": [384,176], "src": [192,192], "f": 0, "t": 288, "d": [78,376], "a": 1 }, + { "px": [416,176], "src": [192,192], "f": 0, "t": 288, "d": [78,378], "a": 1 }, + { "px": [432,176], "src": [160,192], "f": 0, "t": 286, "d": [78,379], "a": 1 }, + { "px": [64,192], "src": [160,192], "f": 0, "t": 286, "d": [78,388], "a": 1 }, + { "px": [160,192], "src": [192,192], "f": 0, "t": 288, "d": [78,394], "a": 1 }, + { "px": [240,192], "src": [160,192], "f": 0, "t": 286, "d": [78,399], "a": 1 }, + { "px": [272,192], "src": [160,192], "f": 0, "t": 286, "d": [78,401], "a": 1 }, + { "px": [288,192], "src": [192,192], "f": 0, "t": 288, "d": [78,402], "a": 1 }, + { "px": [368,160], "src": [32,0], "f": 0, "t": 2, "d": [80,343], "a": 1 }, + { "px": [384,160], "src": [32,0], "f": 0, "t": 2, "d": [80,344], "a": 1 }, + { "px": [400,160], "src": [32,0], "f": 0, "t": 2, "d": [80,345], "a": 1 }, + { "px": [416,160], "src": [32,0], "f": 0, "t": 2, "d": [80,346], "a": 1 }, + { "px": [432,160], "src": [32,0], "f": 0, "t": 2, "d": [80,347], "a": 1 }, + { "px": [64,176], "src": [32,0], "f": 0, "t": 2, "d": [80,356], "a": 1 }, + { "px": [80,176], "src": [32,0], "f": 0, "t": 2, "d": [80,357], "a": 1 }, + { "px": [368,144], "src": [0,96], "f": 0, "t": 138, "d": [110,311], "a": 1 }, + { "px": [384,144], "src": [0,96], "f": 0, "t": 138, "d": [110,312], "a": 1 }, + { "px": [400,144], "src": [0,96], "f": 0, "t": 138, "d": [110,313], "a": 1 }, + { "px": [80,160], "src": [32,96], "f": 0, "t": 140, "d": [110,325], "a": 1 }, + { "px": [16,272], "src": [32,96], "f": 0, "t": 140, "d": [110,545], "a": 1 }, + { "px": [32,272], "src": [0,96], "f": 0, "t": 138, "d": [110,546], "a": 1 }, + { "px": [48,272], "src": [0,96], "f": 0, "t": 138, "d": [110,547], "a": 1 } + ], + "seed": 6011873, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36c7ea0-66b0-11ec-9cd7-e9658be7d824", + "levelId": 61, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [384,0], "src": [320,272], "f": 0, "t": 411, "d": [108,24], "a": 1 }, + { "px": [384,16], "src": [320,272], "f": 0, "t": 411, "d": [108,56], "a": 1 }, + { "px": [384,32], "src": [320,272], "f": 0, "t": 411, "d": [108,88], "a": 1 }, + { "px": [384,48], "src": [320,272], "f": 0, "t": 411, "d": [108,120], "a": 1 }, + { "px": [384,80], "src": [320,272], "f": 0, "t": 411, "d": [108,184], "a": 1 }, + { "px": [384,96], "src": [320,272], "f": 0, "t": 411, "d": [108,216], "a": 1 }, + { "px": [384,112], "src": [320,272], "f": 0, "t": 411, "d": [108,248], "a": 1 }, + { "px": [336,128], "src": [320,272], "f": 0, "t": 411, "d": [108,277], "a": 1 }, + { "px": [352,128], "src": [320,272], "f": 0, "t": 411, "d": [108,278], "a": 1 }, + { "px": [368,128], "src": [320,272], "f": 0, "t": 411, "d": [108,279], "a": 1 }, + { "px": [384,128], "src": [320,272], "f": 0, "t": 411, "d": [108,280], "a": 1 }, + { "px": [400,128], "src": [320,272], "f": 0, "t": 411, "d": [108,281], "a": 1 }, + { "px": [416,128], "src": [320,272], "f": 0, "t": 411, "d": [108,282], "a": 1 }, + { "px": [432,128], "src": [320,272], "f": 0, "t": 411, "d": [108,283], "a": 1 }, + { "px": [32,144], "src": [320,272], "f": 0, "t": 411, "d": [108,290], "a": 1 }, + { "px": [48,144], "src": [320,272], "f": 0, "t": 411, "d": [108,291], "a": 1 }, + { "px": [64,144], "src": [320,272], "f": 0, "t": 411, "d": [108,292], "a": 1 }, + { "px": [336,144], "src": [320,272], "f": 0, "t": 411, "d": [108,309], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [108,311], "a": 1 }, + { "px": [384,144], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [400,144], "src": [320,272], "f": 0, "t": 411, "d": [108,313], "a": 1 }, + { "px": [416,144], "src": [320,272], "f": 0, "t": 411, "d": [108,314], "a": 1 }, + { "px": [432,144], "src": [320,272], "f": 0, "t": 411, "d": [108,315], "a": 1 }, + { "px": [32,160], "src": [320,272], "f": 0, "t": 411, "d": [108,322], "a": 1 }, + { "px": [48,160], "src": [320,272], "f": 0, "t": 411, "d": [108,323], "a": 1 }, + { "px": [64,160], "src": [320,272], "f": 0, "t": 411, "d": [108,324], "a": 1 }, + { "px": [336,160], "src": [320,272], "f": 0, "t": 411, "d": [108,341], "a": 1 }, + { "px": [336,176], "src": [320,272], "f": 0, "t": 411, "d": [108,373], "a": 1 }, + { "px": [336,192], "src": [320,272], "f": 0, "t": 411, "d": [108,405], "a": 1 }, + { "px": [352,192], "src": [320,272], "f": 0, "t": 411, "d": [108,406], "a": 1 }, + { "px": [368,192], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [432,192], "src": [320,272], "f": 0, "t": 411, "d": [108,411], "a": 1 }, + { "px": [96,208], "src": [320,272], "f": 0, "t": 411, "d": [108,422], "a": 1 }, + { "px": [112,208], "src": [320,272], "f": 0, "t": 411, "d": [108,423], "a": 1 }, + { "px": [128,208], "src": [320,272], "f": 0, "t": 411, "d": [108,424], "a": 1 }, + { "px": [144,208], "src": [320,272], "f": 0, "t": 411, "d": [108,425], "a": 1 }, + { "px": [176,208], "src": [320,272], "f": 0, "t": 411, "d": [108,427], "a": 1 }, + { "px": [192,208], "src": [320,272], "f": 0, "t": 411, "d": [108,428], "a": 1 }, + { "px": [208,208], "src": [320,272], "f": 0, "t": 411, "d": [108,429], "a": 1 }, + { "px": [224,208], "src": [320,272], "f": 0, "t": 411, "d": [108,430], "a": 1 }, + { "px": [256,208], "src": [320,272], "f": 0, "t": 411, "d": [108,432], "a": 1 }, + { "px": [272,208], "src": [320,272], "f": 0, "t": 411, "d": [108,433], "a": 1 }, + { "px": [304,208], "src": [320,272], "f": 0, "t": 411, "d": [108,435], "a": 1 }, + { "px": [320,208], "src": [320,272], "f": 0, "t": 411, "d": [108,436], "a": 1 }, + { "px": [336,208], "src": [320,272], "f": 0, "t": 411, "d": [108,437], "a": 1 }, + { "px": [352,208], "src": [320,272], "f": 0, "t": 411, "d": [108,438], "a": 1 }, + { "px": [368,208], "src": [320,272], "f": 0, "t": 411, "d": [108,439], "a": 1 }, + { "px": [384,208], "src": [320,272], "f": 0, "t": 411, "d": [108,440], "a": 1 }, + { "px": [400,208], "src": [320,272], "f": 0, "t": 411, "d": [108,441], "a": 1 }, + { "px": [416,208], "src": [320,272], "f": 0, "t": 411, "d": [108,442], "a": 1 }, + { "px": [432,208], "src": [320,272], "f": 0, "t": 411, "d": [108,443], "a": 1 }, + { "px": [80,224], "src": [320,272], "f": 0, "t": 411, "d": [108,453], "a": 1 }, + { "px": [96,224], "src": [320,272], "f": 0, "t": 411, "d": [108,454], "a": 1 }, + { "px": [112,224], "src": [320,272], "f": 0, "t": 411, "d": [108,455], "a": 1 }, + { "px": [128,224], "src": [320,272], "f": 0, "t": 411, "d": [108,456], "a": 1 }, + { "px": [144,224], "src": [320,272], "f": 0, "t": 411, "d": [108,457], "a": 1 }, + { "px": [160,224], "src": [320,272], "f": 0, "t": 411, "d": [108,458], "a": 1 }, + { "px": [192,224], "src": [320,272], "f": 0, "t": 411, "d": [108,460], "a": 1 }, + { "px": [208,224], "src": [320,272], "f": 0, "t": 411, "d": [108,461], "a": 1 }, + { "px": [224,224], "src": [320,272], "f": 0, "t": 411, "d": [108,462], "a": 1 }, + { "px": [240,224], "src": [320,272], "f": 0, "t": 411, "d": [108,463], "a": 1 }, + { "px": [256,224], "src": [320,272], "f": 0, "t": 411, "d": [108,464], "a": 1 }, + { "px": [272,224], "src": [320,272], "f": 0, "t": 411, "d": [108,465], "a": 1 }, + { "px": [288,224], "src": [320,272], "f": 0, "t": 411, "d": [108,466], "a": 1 }, + { "px": [304,224], "src": [320,272], "f": 0, "t": 411, "d": [108,467], "a": 1 }, + { "px": [320,224], "src": [320,272], "f": 0, "t": 411, "d": [108,468], "a": 1 }, + { "px": [336,224], "src": [320,272], "f": 0, "t": 411, "d": [108,469], "a": 1 }, + { "px": [352,224], "src": [320,272], "f": 0, "t": 411, "d": [108,470], "a": 1 }, + { "px": [368,224], "src": [320,272], "f": 0, "t": 411, "d": [108,471], "a": 1 }, + { "px": [384,224], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [400,224], "src": [320,272], "f": 0, "t": 411, "d": [108,473], "a": 1 }, + { "px": [432,224], "src": [320,272], "f": 0, "t": 411, "d": [108,475], "a": 1 }, + { "px": [80,240], "src": [320,272], "f": 0, "t": 411, "d": [108,485], "a": 1 }, + { "px": [96,240], "src": [320,272], "f": 0, "t": 411, "d": [108,486], "a": 1 }, + { "px": [112,240], "src": [320,272], "f": 0, "t": 411, "d": [108,487], "a": 1 }, + { "px": [128,240], "src": [320,272], "f": 0, "t": 411, "d": [108,488], "a": 1 }, + { "px": [144,240], "src": [320,272], "f": 0, "t": 411, "d": [108,489], "a": 1 }, + { "px": [160,240], "src": [320,272], "f": 0, "t": 411, "d": [108,490], "a": 1 }, + { "px": [176,240], "src": [320,272], "f": 0, "t": 411, "d": [108,491], "a": 1 }, + { "px": [192,240], "src": [320,272], "f": 0, "t": 411, "d": [108,492], "a": 1 }, + { "px": [208,240], "src": [320,272], "f": 0, "t": 411, "d": [108,493], "a": 1 }, + { "px": [224,240], "src": [320,272], "f": 0, "t": 411, "d": [108,494], "a": 1 }, + { "px": [240,240], "src": [320,272], "f": 0, "t": 411, "d": [108,495], "a": 1 }, + { "px": [256,240], "src": [320,272], "f": 0, "t": 411, "d": [108,496], "a": 1 }, + { "px": [272,240], "src": [320,272], "f": 0, "t": 411, "d": [108,497], "a": 1 }, + { "px": [288,240], "src": [320,272], "f": 0, "t": 411, "d": [108,498], "a": 1 }, + { "px": [304,240], "src": [320,272], "f": 0, "t": 411, "d": [108,499], "a": 1 }, + { "px": [320,240], "src": [320,272], "f": 0, "t": 411, "d": [108,500], "a": 1 }, + { "px": [336,240], "src": [320,272], "f": 0, "t": 411, "d": [108,501], "a": 1 }, + { "px": [352,240], "src": [320,272], "f": 0, "t": 411, "d": [108,502], "a": 1 }, + { "px": [368,240], "src": [320,272], "f": 0, "t": 411, "d": [108,503], "a": 1 }, + { "px": [384,240], "src": [320,272], "f": 0, "t": 411, "d": [108,504], "a": 1 }, + { "px": [400,240], "src": [320,272], "f": 0, "t": 411, "d": [108,505], "a": 1 }, + { "px": [416,240], "src": [320,272], "f": 0, "t": 411, "d": [108,506], "a": 1 }, + { "px": [432,240], "src": [320,272], "f": 0, "t": 411, "d": [108,507], "a": 1 }, + { "px": [32,256], "src": [320,272], "f": 0, "t": 411, "d": [108,514], "a": 1 }, + { "px": [48,256], "src": [320,272], "f": 0, "t": 411, "d": [108,515], "a": 1 }, + { "px": [64,256], "src": [320,272], "f": 0, "t": 411, "d": [108,516], "a": 1 }, + { "px": [80,256], "src": [320,272], "f": 0, "t": 411, "d": [108,517], "a": 1 }, + { "px": [96,256], "src": [320,272], "f": 0, "t": 411, "d": [108,518], "a": 1 }, + { "px": [112,256], "src": [320,272], "f": 0, "t": 411, "d": [108,519], "a": 1 }, + { "px": [128,256], "src": [320,272], "f": 0, "t": 411, "d": [108,520], "a": 1 }, + { "px": [144,256], "src": [320,272], "f": 0, "t": 411, "d": [108,521], "a": 1 }, + { "px": [160,256], "src": [320,272], "f": 0, "t": 411, "d": [108,522], "a": 1 }, + { "px": [176,256], "src": [320,272], "f": 0, "t": 411, "d": [108,523], "a": 1 }, + { "px": [192,256], "src": [320,272], "f": 0, "t": 411, "d": [108,524], "a": 1 }, + { "px": [208,256], "src": [320,272], "f": 0, "t": 411, "d": [108,525], "a": 1 }, + { "px": [224,256], "src": [320,272], "f": 0, "t": 411, "d": [108,526], "a": 1 }, + { "px": [240,256], "src": [320,272], "f": 0, "t": 411, "d": [108,527], "a": 1 }, + { "px": [256,256], "src": [320,272], "f": 0, "t": 411, "d": [108,528], "a": 1 }, + { "px": [272,256], "src": [320,272], "f": 0, "t": 411, "d": [108,529], "a": 1 }, + { "px": [304,256], "src": [320,272], "f": 0, "t": 411, "d": [108,531], "a": 1 }, + { "px": [320,256], "src": [320,272], "f": 0, "t": 411, "d": [108,532], "a": 1 }, + { "px": [336,256], "src": [320,272], "f": 0, "t": 411, "d": [108,533], "a": 1 }, + { "px": [352,256], "src": [320,272], "f": 0, "t": 411, "d": [108,534], "a": 1 }, + { "px": [368,256], "src": [320,272], "f": 0, "t": 411, "d": [108,535], "a": 1 }, + { "px": [384,256], "src": [320,272], "f": 0, "t": 411, "d": [108,536], "a": 1 }, + { "px": [400,256], "src": [320,272], "f": 0, "t": 411, "d": [108,537], "a": 1 }, + { "px": [416,256], "src": [320,272], "f": 0, "t": 411, "d": [108,538], "a": 1 }, + { "px": [432,256], "src": [320,272], "f": 0, "t": 411, "d": [108,539], "a": 1 }, + { "px": [32,272], "src": [320,272], "f": 0, "t": 411, "d": [108,546], "a": 1 }, + { "px": [48,272], "src": [320,272], "f": 0, "t": 411, "d": [108,547], "a": 1 }, + { "px": [64,272], "src": [320,272], "f": 0, "t": 411, "d": [108,548], "a": 1 }, + { "px": [80,272], "src": [320,272], "f": 0, "t": 411, "d": [108,549], "a": 1 }, + { "px": [96,272], "src": [320,272], "f": 0, "t": 411, "d": [108,550], "a": 1 }, + { "px": [112,272], "src": [320,272], "f": 0, "t": 411, "d": [108,551], "a": 1 }, + { "px": [128,272], "src": [320,272], "f": 0, "t": 411, "d": [108,552], "a": 1 }, + { "px": [144,272], "src": [320,272], "f": 0, "t": 411, "d": [108,553], "a": 1 }, + { "px": [160,272], "src": [320,272], "f": 0, "t": 411, "d": [108,554], "a": 1 }, + { "px": [176,272], "src": [320,272], "f": 0, "t": 411, "d": [108,555], "a": 1 }, + { "px": [192,272], "src": [320,272], "f": 0, "t": 411, "d": [108,556], "a": 1 }, + { "px": [208,272], "src": [320,272], "f": 0, "t": 411, "d": [108,557], "a": 1 }, + { "px": [224,272], "src": [320,272], "f": 0, "t": 411, "d": [108,558], "a": 1 }, + { "px": [240,272], "src": [320,272], "f": 0, "t": 411, "d": [108,559], "a": 1 }, + { "px": [256,272], "src": [320,272], "f": 0, "t": 411, "d": [108,560], "a": 1 }, + { "px": [272,272], "src": [320,272], "f": 0, "t": 411, "d": [108,561], "a": 1 }, + { "px": [288,272], "src": [320,272], "f": 0, "t": 411, "d": [108,562], "a": 1 }, + { "px": [304,272], "src": [320,272], "f": 0, "t": 411, "d": [108,563], "a": 1 }, + { "px": [320,272], "src": [320,272], "f": 0, "t": 411, "d": [108,564], "a": 1 }, + { "px": [336,272], "src": [320,272], "f": 0, "t": 411, "d": [108,565], "a": 1 }, + { "px": [352,272], "src": [320,272], "f": 0, "t": 411, "d": [108,566], "a": 1 }, + { "px": [368,272], "src": [320,272], "f": 0, "t": 411, "d": [108,567], "a": 1 }, + { "px": [384,272], "src": [320,272], "f": 0, "t": 411, "d": [108,568], "a": 1 }, + { "px": [400,272], "src": [320,272], "f": 0, "t": 411, "d": [108,569], "a": 1 }, + { "px": [416,272], "src": [320,272], "f": 0, "t": 411, "d": [108,570], "a": 1 }, + { "px": [432,272], "src": [320,272], "f": 0, "t": 411, "d": [108,571], "a": 1 }, + { "px": [128,288], "src": [320,272], "f": 0, "t": 411, "d": [108,584], "a": 1 }, + { "px": [144,288], "src": [320,272], "f": 0, "t": 411, "d": [108,585], "a": 1 }, + { "px": [160,288], "src": [320,272], "f": 0, "t": 411, "d": [108,586], "a": 1 }, + { "px": [176,288], "src": [320,272], "f": 0, "t": 411, "d": [108,587], "a": 1 }, + { "px": [192,288], "src": [320,272], "f": 0, "t": 411, "d": [108,588], "a": 1 }, + { "px": [208,288], "src": [320,272], "f": 0, "t": 411, "d": [108,589], "a": 1 }, + { "px": [224,288], "src": [320,272], "f": 0, "t": 411, "d": [108,590], "a": 1 }, + { "px": [240,288], "src": [320,272], "f": 0, "t": 411, "d": [108,591], "a": 1 }, + { "px": [256,288], "src": [320,272], "f": 0, "t": 411, "d": [108,592], "a": 1 }, + { "px": [288,288], "src": [320,272], "f": 0, "t": 411, "d": [108,594], "a": 1 }, + { "px": [304,288], "src": [320,272], "f": 0, "t": 411, "d": [108,595], "a": 1 }, + { "px": [336,288], "src": [320,272], "f": 0, "t": 411, "d": [108,597], "a": 1 }, + { "px": [352,288], "src": [320,272], "f": 0, "t": 411, "d": [108,598], "a": 1 }, + { "px": [368,288], "src": [320,272], "f": 0, "t": 411, "d": [108,599], "a": 1 }, + { "px": [384,288], "src": [320,272], "f": 0, "t": 411, "d": [108,600], "a": 1 }, + { "px": [400,288], "src": [320,272], "f": 0, "t": 411, "d": [108,601], "a": 1 }, + { "px": [416,288], "src": [320,272], "f": 0, "t": 411, "d": [108,602], "a": 1 }, + { "px": [432,288], "src": [320,272], "f": 0, "t": 411, "d": [108,603], "a": 1 }, + { "px": [96,304], "src": [320,272], "f": 0, "t": 411, "d": [108,614], "a": 1 }, + { "px": [112,304], "src": [320,272], "f": 0, "t": 411, "d": [108,615], "a": 1 }, + { "px": [128,304], "src": [320,272], "f": 0, "t": 411, "d": [108,616], "a": 1 }, + { "px": [144,304], "src": [320,272], "f": 0, "t": 411, "d": [108,617], "a": 1 }, + { "px": [160,304], "src": [320,272], "f": 0, "t": 411, "d": [108,618], "a": 1 }, + { "px": [176,304], "src": [320,272], "f": 0, "t": 411, "d": [108,619], "a": 1 }, + { "px": [192,304], "src": [320,272], "f": 0, "t": 411, "d": [108,620], "a": 1 }, + { "px": [208,304], "src": [320,272], "f": 0, "t": 411, "d": [108,621], "a": 1 }, + { "px": [224,304], "src": [320,272], "f": 0, "t": 411, "d": [108,622], "a": 1 }, + { "px": [240,304], "src": [320,272], "f": 0, "t": 411, "d": [108,623], "a": 1 }, + { "px": [256,304], "src": [320,272], "f": 0, "t": 411, "d": [108,624], "a": 1 }, + { "px": [272,304], "src": [320,272], "f": 0, "t": 411, "d": [108,625], "a": 1 }, + { "px": [288,304], "src": [320,272], "f": 0, "t": 411, "d": [108,626], "a": 1 }, + { "px": [304,304], "src": [320,272], "f": 0, "t": 411, "d": [108,627], "a": 1 }, + { "px": [320,304], "src": [320,272], "f": 0, "t": 411, "d": [108,628], "a": 1 }, + { "px": [336,304], "src": [320,272], "f": 0, "t": 411, "d": [108,629], "a": 1 }, + { "px": [352,304], "src": [320,272], "f": 0, "t": 411, "d": [108,630], "a": 1 }, + { "px": [368,304], "src": [320,272], "f": 0, "t": 411, "d": [108,631], "a": 1 }, + { "px": [384,304], "src": [320,272], "f": 0, "t": 411, "d": [108,632], "a": 1 }, + { "px": [400,304], "src": [320,272], "f": 0, "t": 411, "d": [108,633], "a": 1 }, + { "px": [416,304], "src": [320,272], "f": 0, "t": 411, "d": [108,634], "a": 1 }, + { "px": [432,304], "src": [320,272], "f": 0, "t": 411, "d": [108,635], "a": 1 }, + { "px": [80,320], "src": [320,272], "f": 0, "t": 411, "d": [108,645], "a": 1 }, + { "px": [112,320], "src": [320,272], "f": 0, "t": 411, "d": [108,647], "a": 1 }, + { "px": [128,320], "src": [320,272], "f": 0, "t": 411, "d": [108,648], "a": 1 }, + { "px": [144,320], "src": [320,272], "f": 0, "t": 411, "d": [108,649], "a": 1 }, + { "px": [160,320], "src": [320,272], "f": 0, "t": 411, "d": [108,650], "a": 1 }, + { "px": [176,320], "src": [320,272], "f": 0, "t": 411, "d": [108,651], "a": 1 }, + { "px": [192,320], "src": [320,272], "f": 0, "t": 411, "d": [108,652], "a": 1 }, + { "px": [208,320], "src": [320,272], "f": 0, "t": 411, "d": [108,653], "a": 1 }, + { "px": [224,320], "src": [320,272], "f": 0, "t": 411, "d": [108,654], "a": 1 }, + { "px": [256,320], "src": [320,272], "f": 0, "t": 411, "d": [108,656], "a": 1 }, + { "px": [272,320], "src": [320,272], "f": 0, "t": 411, "d": [108,657], "a": 1 }, + { "px": [304,320], "src": [320,272], "f": 0, "t": 411, "d": [108,659], "a": 1 }, + { "px": [320,320], "src": [320,272], "f": 0, "t": 411, "d": [108,660], "a": 1 }, + { "px": [336,320], "src": [320,272], "f": 0, "t": 411, "d": [108,661], "a": 1 }, + { "px": [352,320], "src": [320,272], "f": 0, "t": 411, "d": [108,662], "a": 1 }, + { "px": [368,320], "src": [320,272], "f": 0, "t": 411, "d": [108,663], "a": 1 }, + { "px": [384,320], "src": [320,272], "f": 0, "t": 411, "d": [108,664], "a": 1 }, + { "px": [400,320], "src": [320,272], "f": 0, "t": 411, "d": [108,665], "a": 1 }, + { "px": [416,320], "src": [320,272], "f": 0, "t": 411, "d": [108,666], "a": 1 }, + { "px": [432,320], "src": [320,272], "f": 0, "t": 411, "d": [108,667], "a": 1 }, + { "px": [80,336], "src": [320,272], "f": 0, "t": 411, "d": [108,677], "a": 1 }, + { "px": [96,336], "src": [320,272], "f": 0, "t": 411, "d": [108,678], "a": 1 }, + { "px": [112,336], "src": [320,272], "f": 0, "t": 411, "d": [108,679], "a": 1 }, + { "px": [128,336], "src": [320,272], "f": 0, "t": 411, "d": [108,680], "a": 1 }, + { "px": [144,336], "src": [320,272], "f": 0, "t": 411, "d": [108,681], "a": 1 }, + { "px": [160,336], "src": [320,272], "f": 0, "t": 411, "d": [108,682], "a": 1 }, + { "px": [176,336], "src": [320,272], "f": 0, "t": 411, "d": [108,683], "a": 1 }, + { "px": [192,336], "src": [320,272], "f": 0, "t": 411, "d": [108,684], "a": 1 }, + { "px": [208,336], "src": [320,272], "f": 0, "t": 411, "d": [108,685], "a": 1 }, + { "px": [224,336], "src": [320,272], "f": 0, "t": 411, "d": [108,686], "a": 1 }, + { "px": [240,336], "src": [320,272], "f": 0, "t": 411, "d": [108,687], "a": 1 }, + { "px": [256,336], "src": [320,272], "f": 0, "t": 411, "d": [108,688], "a": 1 }, + { "px": [272,336], "src": [320,272], "f": 0, "t": 411, "d": [108,689], "a": 1 }, + { "px": [288,336], "src": [320,272], "f": 0, "t": 411, "d": [108,690], "a": 1 }, + { "px": [304,336], "src": [320,272], "f": 0, "t": 411, "d": [108,691], "a": 1 }, + { "px": [320,336], "src": [320,272], "f": 0, "t": 411, "d": [108,692], "a": 1 }, + { "px": [336,336], "src": [320,272], "f": 0, "t": 411, "d": [108,693], "a": 1 }, + { "px": [352,336], "src": [320,272], "f": 0, "t": 411, "d": [108,694], "a": 1 }, + { "px": [368,336], "src": [320,272], "f": 0, "t": 411, "d": [108,695], "a": 1 }, + { "px": [384,336], "src": [320,272], "f": 0, "t": 411, "d": [108,696], "a": 1 }, + { "px": [400,336], "src": [320,272], "f": 0, "t": 411, "d": [108,697], "a": 1 }, + { "px": [416,336], "src": [320,272], "f": 0, "t": 411, "d": [108,698], "a": 1 }, + { "px": [432,336], "src": [320,272], "f": 0, "t": 411, "d": [108,699], "a": 1 }, + { "px": [80,352], "src": [320,272], "f": 0, "t": 411, "d": [108,709], "a": 1 }, + { "px": [96,352], "src": [320,272], "f": 0, "t": 411, "d": [108,710], "a": 1 }, + { "px": [112,352], "src": [320,272], "f": 0, "t": 411, "d": [108,711], "a": 1 }, + { "px": [128,352], "src": [320,272], "f": 0, "t": 411, "d": [108,712], "a": 1 }, + { "px": [144,352], "src": [320,272], "f": 0, "t": 411, "d": [108,713], "a": 1 }, + { "px": [160,352], "src": [320,272], "f": 0, "t": 411, "d": [108,714], "a": 1 }, + { "px": [176,352], "src": [320,272], "f": 0, "t": 411, "d": [108,715], "a": 1 }, + { "px": [192,352], "src": [320,272], "f": 0, "t": 411, "d": [108,716], "a": 1 }, + { "px": [208,352], "src": [320,272], "f": 0, "t": 411, "d": [108,717], "a": 1 }, + { "px": [224,352], "src": [320,272], "f": 0, "t": 411, "d": [108,718], "a": 1 }, + { "px": [240,352], "src": [320,272], "f": 0, "t": 411, "d": [108,719], "a": 1 }, + { "px": [256,352], "src": [320,272], "f": 0, "t": 411, "d": [108,720], "a": 1 }, + { "px": [272,352], "src": [320,272], "f": 0, "t": 411, "d": [108,721], "a": 1 }, + { "px": [288,352], "src": [320,272], "f": 0, "t": 411, "d": [108,722], "a": 1 }, + { "px": [304,352], "src": [320,272], "f": 0, "t": 411, "d": [108,723], "a": 1 }, + { "px": [320,352], "src": [320,272], "f": 0, "t": 411, "d": [108,724], "a": 1 }, + { "px": [336,352], "src": [320,272], "f": 0, "t": 411, "d": [108,725], "a": 1 }, + { "px": [352,352], "src": [320,272], "f": 0, "t": 411, "d": [108,726], "a": 1 }, + { "px": [368,352], "src": [320,272], "f": 0, "t": 411, "d": [108,727], "a": 1 }, + { "px": [384,352], "src": [320,272], "f": 0, "t": 411, "d": [108,728], "a": 1 }, + { "px": [400,352], "src": [320,272], "f": 0, "t": 411, "d": [108,729], "a": 1 }, + { "px": [416,352], "src": [320,272], "f": 0, "t": 411, "d": [108,730], "a": 1 }, + { "px": [432,352], "src": [320,272], "f": 0, "t": 411, "d": [108,731], "a": 1 }, + { "px": [64,368], "src": [320,272], "f": 0, "t": 411, "d": [108,740], "a": 1 }, + { "px": [80,368], "src": [320,272], "f": 0, "t": 411, "d": [108,741], "a": 1 }, + { "px": [96,368], "src": [320,272], "f": 0, "t": 411, "d": [108,742], "a": 1 }, + { "px": [112,368], "src": [320,272], "f": 0, "t": 411, "d": [108,743], "a": 1 }, + { "px": [128,368], "src": [320,272], "f": 0, "t": 411, "d": [108,744], "a": 1 }, + { "px": [144,368], "src": [320,272], "f": 0, "t": 411, "d": [108,745], "a": 1 }, + { "px": [160,368], "src": [320,272], "f": 0, "t": 411, "d": [108,746], "a": 1 }, + { "px": [176,368], "src": [320,272], "f": 0, "t": 411, "d": [108,747], "a": 1 }, + { "px": [192,368], "src": [320,272], "f": 0, "t": 411, "d": [108,748], "a": 1 }, + { "px": [208,368], "src": [320,272], "f": 0, "t": 411, "d": [108,749], "a": 1 }, + { "px": [224,368], "src": [320,272], "f": 0, "t": 411, "d": [108,750], "a": 1 }, + { "px": [240,368], "src": [320,272], "f": 0, "t": 411, "d": [108,751], "a": 1 }, + { "px": [256,368], "src": [320,272], "f": 0, "t": 411, "d": [108,752], "a": 1 }, + { "px": [272,368], "src": [320,272], "f": 0, "t": 411, "d": [108,753], "a": 1 }, + { "px": [288,368], "src": [320,272], "f": 0, "t": 411, "d": [108,754], "a": 1 }, + { "px": [304,368], "src": [320,272], "f": 0, "t": 411, "d": [108,755], "a": 1 }, + { "px": [320,368], "src": [320,272], "f": 0, "t": 411, "d": [108,756], "a": 1 }, + { "px": [336,368], "src": [320,272], "f": 0, "t": 411, "d": [108,757], "a": 1 }, + { "px": [352,368], "src": [320,272], "f": 0, "t": 411, "d": [108,758], "a": 1 }, + { "px": [368,368], "src": [320,272], "f": 0, "t": 411, "d": [108,759], "a": 1 }, + { "px": [384,368], "src": [320,272], "f": 0, "t": 411, "d": [108,760], "a": 1 }, + { "px": [400,368], "src": [320,272], "f": 0, "t": 411, "d": [108,761], "a": 1 }, + { "px": [416,368], "src": [320,272], "f": 0, "t": 411, "d": [108,762], "a": 1 }, + { "px": [432,368], "src": [320,272], "f": 0, "t": 411, "d": [108,763], "a": 1 }, + { "px": [448,368], "src": [320,272], "f": 0, "t": 411, "d": [108,764], "a": 1 }, + { "px": [64,384], "src": [320,272], "f": 0, "t": 411, "d": [108,772], "a": 1 }, + { "px": [80,384], "src": [320,272], "f": 0, "t": 411, "d": [108,773], "a": 1 }, + { "px": [96,384], "src": [320,272], "f": 0, "t": 411, "d": [108,774], "a": 1 }, + { "px": [112,384], "src": [320,272], "f": 0, "t": 411, "d": [108,775], "a": 1 }, + { "px": [128,384], "src": [320,272], "f": 0, "t": 411, "d": [108,776], "a": 1 }, + { "px": [144,384], "src": [320,272], "f": 0, "t": 411, "d": [108,777], "a": 1 }, + { "px": [160,384], "src": [320,272], "f": 0, "t": 411, "d": [108,778], "a": 1 }, + { "px": [176,384], "src": [320,272], "f": 0, "t": 411, "d": [108,779], "a": 1 }, + { "px": [192,384], "src": [320,272], "f": 0, "t": 411, "d": [108,780], "a": 1 }, + { "px": [208,384], "src": [320,272], "f": 0, "t": 411, "d": [108,781], "a": 1 }, + { "px": [224,384], "src": [320,272], "f": 0, "t": 411, "d": [108,782], "a": 1 }, + { "px": [240,384], "src": [320,272], "f": 0, "t": 411, "d": [108,783], "a": 1 }, + { "px": [256,384], "src": [320,272], "f": 0, "t": 411, "d": [108,784], "a": 1 }, + { "px": [272,384], "src": [320,272], "f": 0, "t": 411, "d": [108,785], "a": 1 }, + { "px": [288,384], "src": [320,272], "f": 0, "t": 411, "d": [108,786], "a": 1 }, + { "px": [304,384], "src": [320,272], "f": 0, "t": 411, "d": [108,787], "a": 1 }, + { "px": [320,384], "src": [320,272], "f": 0, "t": 411, "d": [108,788], "a": 1 }, + { "px": [336,384], "src": [320,272], "f": 0, "t": 411, "d": [108,789], "a": 1 }, + { "px": [352,384], "src": [320,272], "f": 0, "t": 411, "d": [108,790], "a": 1 }, + { "px": [368,384], "src": [320,272], "f": 0, "t": 411, "d": [108,791], "a": 1 }, + { "px": [384,384], "src": [320,272], "f": 0, "t": 411, "d": [108,792], "a": 1 }, + { "px": [400,384], "src": [320,272], "f": 0, "t": 411, "d": [108,793], "a": 1 }, + { "px": [416,384], "src": [320,272], "f": 0, "t": 411, "d": [108,794], "a": 1 }, + { "px": [432,384], "src": [320,272], "f": 0, "t": 411, "d": [108,795], "a": 1 }, + { "px": [448,384], "src": [320,272], "f": 0, "t": 411, "d": [108,796], "a": 1 }, + { "px": [64,400], "src": [320,272], "f": 0, "t": 411, "d": [108,804], "a": 1 }, + { "px": [80,400], "src": [320,272], "f": 0, "t": 411, "d": [108,805], "a": 1 }, + { "px": [96,400], "src": [320,272], "f": 0, "t": 411, "d": [108,806], "a": 1 }, + { "px": [112,400], "src": [320,272], "f": 0, "t": 411, "d": [108,807], "a": 1 }, + { "px": [128,400], "src": [320,272], "f": 0, "t": 411, "d": [108,808], "a": 1 }, + { "px": [144,400], "src": [320,272], "f": 0, "t": 411, "d": [108,809], "a": 1 }, + { "px": [160,400], "src": [320,272], "f": 0, "t": 411, "d": [108,810], "a": 1 }, + { "px": [176,400], "src": [320,272], "f": 0, "t": 411, "d": [108,811], "a": 1 }, + { "px": [192,400], "src": [320,272], "f": 0, "t": 411, "d": [108,812], "a": 1 }, + { "px": [208,400], "src": [320,272], "f": 0, "t": 411, "d": [108,813], "a": 1 }, + { "px": [224,400], "src": [320,272], "f": 0, "t": 411, "d": [108,814], "a": 1 }, + { "px": [240,400], "src": [320,272], "f": 0, "t": 411, "d": [108,815], "a": 1 }, + { "px": [256,400], "src": [320,272], "f": 0, "t": 411, "d": [108,816], "a": 1 }, + { "px": [272,400], "src": [320,272], "f": 0, "t": 411, "d": [108,817], "a": 1 }, + { "px": [288,400], "src": [320,272], "f": 0, "t": 411, "d": [108,818], "a": 1 }, + { "px": [304,400], "src": [320,272], "f": 0, "t": 411, "d": [108,819], "a": 1 }, + { "px": [320,400], "src": [320,272], "f": 0, "t": 411, "d": [108,820], "a": 1 }, + { "px": [336,400], "src": [320,272], "f": 0, "t": 411, "d": [108,821], "a": 1 }, + { "px": [352,400], "src": [320,272], "f": 0, "t": 411, "d": [108,822], "a": 1 }, + { "px": [368,400], "src": [320,272], "f": 0, "t": 411, "d": [108,823], "a": 1 }, + { "px": [384,400], "src": [320,272], "f": 0, "t": 411, "d": [108,824], "a": 1 }, + { "px": [400,400], "src": [320,272], "f": 0, "t": 411, "d": [108,825], "a": 1 }, + { "px": [416,400], "src": [320,272], "f": 0, "t": 411, "d": [108,826], "a": 1 }, + { "px": [432,400], "src": [320,272], "f": 0, "t": 411, "d": [108,827], "a": 1 }, + { "px": [448,400], "src": [320,272], "f": 0, "t": 411, "d": [108,828], "a": 1 }, + { "px": [64,416], "src": [320,272], "f": 0, "t": 411, "d": [108,836], "a": 1 }, + { "px": [80,416], "src": [320,272], "f": 0, "t": 411, "d": [108,837], "a": 1 }, + { "px": [96,416], "src": [320,272], "f": 0, "t": 411, "d": [108,838], "a": 1 }, + { "px": [112,416], "src": [320,272], "f": 0, "t": 411, "d": [108,839], "a": 1 }, + { "px": [128,416], "src": [320,272], "f": 0, "t": 411, "d": [108,840], "a": 1 }, + { "px": [144,416], "src": [320,272], "f": 0, "t": 411, "d": [108,841], "a": 1 }, + { "px": [160,416], "src": [320,272], "f": 0, "t": 411, "d": [108,842], "a": 1 }, + { "px": [176,416], "src": [320,272], "f": 0, "t": 411, "d": [108,843], "a": 1 }, + { "px": [192,416], "src": [320,272], "f": 0, "t": 411, "d": [108,844], "a": 1 }, + { "px": [208,416], "src": [320,272], "f": 0, "t": 411, "d": [108,845], "a": 1 }, + { "px": [224,416], "src": [320,272], "f": 0, "t": 411, "d": [108,846], "a": 1 }, + { "px": [240,416], "src": [320,272], "f": 0, "t": 411, "d": [108,847], "a": 1 }, + { "px": [256,416], "src": [320,272], "f": 0, "t": 411, "d": [108,848], "a": 1 }, + { "px": [272,416], "src": [320,272], "f": 0, "t": 411, "d": [108,849], "a": 1 }, + { "px": [288,416], "src": [320,272], "f": 0, "t": 411, "d": [108,850], "a": 1 }, + { "px": [304,416], "src": [320,272], "f": 0, "t": 411, "d": [108,851], "a": 1 }, + { "px": [320,416], "src": [320,272], "f": 0, "t": 411, "d": [108,852], "a": 1 }, + { "px": [336,416], "src": [320,272], "f": 0, "t": 411, "d": [108,853], "a": 1 }, + { "px": [352,416], "src": [320,272], "f": 0, "t": 411, "d": [108,854], "a": 1 }, + { "px": [368,416], "src": [320,272], "f": 0, "t": 411, "d": [108,855], "a": 1 }, + { "px": [384,416], "src": [320,272], "f": 0, "t": 411, "d": [108,856], "a": 1 }, + { "px": [400,416], "src": [320,272], "f": 0, "t": 411, "d": [108,857], "a": 1 }, + { "px": [416,416], "src": [320,272], "f": 0, "t": 411, "d": [108,858], "a": 1 }, + { "px": [432,416], "src": [320,272], "f": 0, "t": 411, "d": [108,859], "a": 1 }, + { "px": [448,416], "src": [320,272], "f": 0, "t": 411, "d": [108,860], "a": 1 }, + { "px": [64,432], "src": [320,272], "f": 0, "t": 411, "d": [108,868], "a": 1 }, + { "px": [80,432], "src": [320,272], "f": 0, "t": 411, "d": [108,869], "a": 1 }, + { "px": [96,432], "src": [320,272], "f": 0, "t": 411, "d": [108,870], "a": 1 }, + { "px": [112,432], "src": [320,272], "f": 0, "t": 411, "d": [108,871], "a": 1 }, + { "px": [128,432], "src": [320,272], "f": 0, "t": 411, "d": [108,872], "a": 1 }, + { "px": [144,432], "src": [320,272], "f": 0, "t": 411, "d": [108,873], "a": 1 }, + { "px": [160,432], "src": [320,272], "f": 0, "t": 411, "d": [108,874], "a": 1 }, + { "px": [176,432], "src": [320,272], "f": 0, "t": 411, "d": [108,875], "a": 1 }, + { "px": [192,432], "src": [320,272], "f": 0, "t": 411, "d": [108,876], "a": 1 }, + { "px": [208,432], "src": [320,272], "f": 0, "t": 411, "d": [108,877], "a": 1 }, + { "px": [224,432], "src": [320,272], "f": 0, "t": 411, "d": [108,878], "a": 1 }, + { "px": [240,432], "src": [320,272], "f": 0, "t": 411, "d": [108,879], "a": 1 }, + { "px": [256,432], "src": [320,272], "f": 0, "t": 411, "d": [108,880], "a": 1 }, + { "px": [272,432], "src": [320,272], "f": 0, "t": 411, "d": [108,881], "a": 1 }, + { "px": [288,432], "src": [320,272], "f": 0, "t": 411, "d": [108,882], "a": 1 }, + { "px": [304,432], "src": [320,272], "f": 0, "t": 411, "d": [108,883], "a": 1 }, + { "px": [320,432], "src": [320,272], "f": 0, "t": 411, "d": [108,884], "a": 1 }, + { "px": [336,432], "src": [320,272], "f": 0, "t": 411, "d": [108,885], "a": 1 }, + { "px": [352,432], "src": [320,272], "f": 0, "t": 411, "d": [108,886], "a": 1 }, + { "px": [368,432], "src": [320,272], "f": 0, "t": 411, "d": [108,887], "a": 1 }, + { "px": [384,432], "src": [320,272], "f": 0, "t": 411, "d": [108,888], "a": 1 }, + { "px": [400,432], "src": [320,272], "f": 0, "t": 411, "d": [108,889], "a": 1 }, + { "px": [416,432], "src": [320,272], "f": 0, "t": 411, "d": [108,890], "a": 1 }, + { "px": [432,432], "src": [320,272], "f": 0, "t": 411, "d": [108,891], "a": 1 }, + { "px": [448,432], "src": [320,272], "f": 0, "t": 411, "d": [108,892], "a": 1 }, + { "px": [80,0], "src": [256,240], "f": 1, "t": 361, "d": [107,4], "a": 1 }, + { "px": [64,0], "src": [272,240], "f": 1, "t": 362, "d": [107,4], "a": 1 }, + { "px": [64,0], "src": [256,240], "f": 0, "t": 361, "d": [107,5], "a": 1 }, + { "px": [80,0], "src": [272,240], "f": 0, "t": 362, "d": [107,5], "a": 1 }, + { "px": [384,0], "src": [256,240], "f": 1, "t": 361, "d": [107,23], "a": 1 }, + { "px": [368,0], "src": [272,240], "f": 1, "t": 362, "d": [107,23], "a": 1 }, + { "px": [384,0], "src": [256,240], "f": 0, "t": 361, "d": [107,25], "a": 1 }, + { "px": [400,0], "src": [272,240], "f": 0, "t": 362, "d": [107,25], "a": 1 }, + { "px": [80,16], "src": [256,240], "f": 1, "t": 361, "d": [107,36], "a": 1 }, + { "px": [64,16], "src": [272,240], "f": 1, "t": 362, "d": [107,36], "a": 1 }, + { "px": [64,16], "src": [256,240], "f": 0, "t": 361, "d": [107,37], "a": 1 }, + { "px": [80,16], "src": [272,240], "f": 0, "t": 362, "d": [107,37], "a": 1 }, + { "px": [384,16], "src": [256,240], "f": 1, "t": 361, "d": [107,55], "a": 1 }, + { "px": [368,16], "src": [272,240], "f": 1, "t": 362, "d": [107,55], "a": 1 }, + { "px": [384,16], "src": [256,240], "f": 0, "t": 361, "d": [107,57], "a": 1 }, + { "px": [400,16], "src": [272,240], "f": 0, "t": 362, "d": [107,57], "a": 1 }, + { "px": [80,32], "src": [256,240], "f": 1, "t": 361, "d": [107,68], "a": 1 }, + { "px": [64,32], "src": [272,240], "f": 1, "t": 362, "d": [107,68], "a": 1 }, + { "px": [64,32], "src": [256,240], "f": 0, "t": 361, "d": [107,69], "a": 1 }, + { "px": [80,32], "src": [272,240], "f": 0, "t": 362, "d": [107,69], "a": 1 }, + { "px": [384,32], "src": [256,240], "f": 1, "t": 361, "d": [107,87], "a": 1 }, + { "px": [368,32], "src": [272,240], "f": 1, "t": 362, "d": [107,87], "a": 1 }, + { "px": [384,32], "src": [256,240], "f": 0, "t": 361, "d": [107,89], "a": 1 }, + { "px": [400,32], "src": [272,240], "f": 0, "t": 362, "d": [107,89], "a": 1 }, + { "px": [80,48], "src": [256,240], "f": 1, "t": 361, "d": [107,100], "a": 1 }, + { "px": [64,48], "src": [272,240], "f": 1, "t": 362, "d": [107,100], "a": 1 }, + { "px": [64,48], "src": [256,240], "f": 0, "t": 361, "d": [107,101], "a": 1 }, + { "px": [80,48], "src": [272,240], "f": 0, "t": 362, "d": [107,101], "a": 1 }, + { "px": [384,48], "src": [256,240], "f": 1, "t": 361, "d": [107,119], "a": 1 }, + { "px": [368,48], "src": [272,240], "f": 1, "t": 362, "d": [107,119], "a": 1 }, + { "px": [384,48], "src": [256,240], "f": 0, "t": 361, "d": [107,121], "a": 1 }, + { "px": [400,48], "src": [272,240], "f": 0, "t": 362, "d": [107,121], "a": 1 }, + { "px": [80,64], "src": [256,240], "f": 1, "t": 361, "d": [107,132], "a": 1 }, + { "px": [64,64], "src": [272,240], "f": 1, "t": 362, "d": [107,132], "a": 1 }, + { "px": [64,64], "src": [256,240], "f": 0, "t": 361, "d": [107,133], "a": 1 }, + { "px": [80,64], "src": [272,240], "f": 0, "t": 362, "d": [107,133], "a": 1 }, + { "px": [384,64], "src": [256,240], "f": 1, "t": 361, "d": [107,151], "a": 1 }, + { "px": [368,64], "src": [272,240], "f": 1, "t": 362, "d": [107,151], "a": 1 }, + { "px": [384,64], "src": [256,240], "f": 0, "t": 361, "d": [107,153], "a": 1 }, + { "px": [400,64], "src": [272,240], "f": 0, "t": 362, "d": [107,153], "a": 1 }, + { "px": [80,80], "src": [256,240], "f": 1, "t": 361, "d": [107,164], "a": 1 }, + { "px": [64,80], "src": [272,240], "f": 1, "t": 362, "d": [107,164], "a": 1 }, + { "px": [64,80], "src": [256,240], "f": 0, "t": 361, "d": [107,165], "a": 1 }, + { "px": [80,80], "src": [272,240], "f": 0, "t": 362, "d": [107,165], "a": 1 }, + { "px": [384,80], "src": [256,240], "f": 1, "t": 361, "d": [107,183], "a": 1 }, + { "px": [368,80], "src": [272,240], "f": 1, "t": 362, "d": [107,183], "a": 1 }, + { "px": [384,80], "src": [256,240], "f": 0, "t": 361, "d": [107,185], "a": 1 }, + { "px": [400,80], "src": [272,240], "f": 0, "t": 362, "d": [107,185], "a": 1 }, + { "px": [80,96], "src": [256,240], "f": 1, "t": 361, "d": [107,196], "a": 1 }, + { "px": [64,96], "src": [272,240], "f": 1, "t": 362, "d": [107,196], "a": 1 }, + { "px": [64,96], "src": [256,240], "f": 0, "t": 361, "d": [107,197], "a": 1 }, + { "px": [80,96], "src": [272,240], "f": 0, "t": 362, "d": [107,197], "a": 1 }, + { "px": [384,96], "src": [256,240], "f": 1, "t": 361, "d": [107,215], "a": 1 }, + { "px": [368,96], "src": [272,240], "f": 1, "t": 362, "d": [107,215], "a": 1 }, + { "px": [384,96], "src": [256,240], "f": 0, "t": 361, "d": [107,217], "a": 1 }, + { "px": [400,96], "src": [272,240], "f": 0, "t": 362, "d": [107,217], "a": 1 }, + { "px": [80,112], "src": [256,240], "f": 1, "t": 361, "d": [107,228], "a": 1 }, + { "px": [64,112], "src": [272,240], "f": 1, "t": 362, "d": [107,228], "a": 1 }, + { "px": [64,112], "src": [256,240], "f": 0, "t": 361, "d": [107,229], "a": 1 }, + { "px": [80,112], "src": [272,240], "f": 0, "t": 362, "d": [107,229], "a": 1 }, + { "px": [384,112], "src": [256,240], "f": 1, "t": 361, "d": [107,247], "a": 1 }, + { "px": [368,112], "src": [272,240], "f": 1, "t": 362, "d": [107,247], "a": 1 }, + { "px": [384,112], "src": [256,240], "f": 0, "t": 361, "d": [107,249], "a": 1 }, + { "px": [400,112], "src": [272,240], "f": 0, "t": 362, "d": [107,249], "a": 1 }, + { "px": [80,128], "src": [256,240], "f": 1, "t": 361, "d": [107,260], "a": 1 }, + { "px": [64,128], "src": [272,240], "f": 1, "t": 362, "d": [107,260], "a": 1 }, + { "px": [64,128], "src": [256,240], "f": 0, "t": 361, "d": [107,261], "a": 1 }, + { "px": [80,128], "src": [272,240], "f": 0, "t": 362, "d": [107,261], "a": 1 }, + { "px": [336,128], "src": [256,240], "f": 1, "t": 361, "d": [107,276], "a": 1 }, + { "px": [320,128], "src": [272,240], "f": 1, "t": 362, "d": [107,276], "a": 1 }, + { "px": [432,128], "src": [256,240], "f": 0, "t": 361, "d": [107,284], "a": 1 }, + { "px": [448,128], "src": [272,240], "f": 0, "t": 362, "d": [107,284], "a": 1 }, + { "px": [64,144], "src": [256,240], "f": 0, "t": 361, "d": [107,293], "a": 1 }, + { "px": [80,144], "src": [272,240], "f": 0, "t": 362, "d": [107,293], "a": 1 }, + { "px": [336,144], "src": [256,240], "f": 1, "t": 361, "d": [107,308], "a": 1 }, + { "px": [320,144], "src": [272,240], "f": 1, "t": 362, "d": [107,308], "a": 1 }, + { "px": [432,144], "src": [256,240], "f": 0, "t": 361, "d": [107,316], "a": 1 }, + { "px": [448,144], "src": [272,240], "f": 0, "t": 362, "d": [107,316], "a": 1 }, + { "px": [32,160], "src": [256,240], "f": 1, "t": 361, "d": [107,321], "a": 1 }, + { "px": [16,160], "src": [272,240], "f": 1, "t": 362, "d": [107,321], "a": 1 }, + { "px": [336,160], "src": [256,240], "f": 1, "t": 361, "d": [107,340], "a": 1 }, + { "px": [320,160], "src": [272,240], "f": 1, "t": 362, "d": [107,340], "a": 1 }, + { "px": [336,160], "src": [256,240], "f": 0, "t": 361, "d": [107,342], "a": 1 }, + { "px": [352,160], "src": [272,240], "f": 0, "t": 362, "d": [107,342], "a": 1 }, + { "px": [0,176], "src": [256,240], "f": 0, "t": 361, "d": [107,353], "a": 1 }, + { "px": [16,176], "src": [272,240], "f": 0, "t": 362, "d": [107,353], "a": 1 }, + { "px": [336,176], "src": [256,240], "f": 1, "t": 361, "d": [107,372], "a": 1 }, + { "px": [320,176], "src": [272,240], "f": 1, "t": 362, "d": [107,372], "a": 1 }, + { "px": [336,176], "src": [256,240], "f": 0, "t": 361, "d": [107,374], "a": 1 }, + { "px": [352,176], "src": [272,240], "f": 0, "t": 362, "d": [107,374], "a": 1 }, + { "px": [0,192], "src": [256,240], "f": 0, "t": 361, "d": [107,385], "a": 1 }, + { "px": [16,192], "src": [272,240], "f": 0, "t": 362, "d": [107,385], "a": 1 }, + { "px": [336,192], "src": [256,240], "f": 1, "t": 361, "d": [107,404], "a": 1 }, + { "px": [320,192], "src": [272,240], "f": 1, "t": 362, "d": [107,404], "a": 1 }, + { "px": [0,208], "src": [256,240], "f": 0, "t": 361, "d": [107,417], "a": 1 }, + { "px": [16,208], "src": [272,240], "f": 0, "t": 362, "d": [107,417], "a": 1 }, + { "px": [432,208], "src": [256,240], "f": 0, "t": 361, "d": [107,444], "a": 1 }, + { "px": [448,208], "src": [272,240], "f": 0, "t": 362, "d": [107,444], "a": 1 }, + { "px": [0,224], "src": [256,240], "f": 0, "t": 361, "d": [107,449], "a": 1 }, + { "px": [16,224], "src": [272,240], "f": 0, "t": 362, "d": [107,449], "a": 1 }, + { "px": [80,224], "src": [256,240], "f": 1, "t": 361, "d": [107,452], "a": 1 }, + { "px": [64,224], "src": [272,240], "f": 1, "t": 362, "d": [107,452], "a": 1 }, + { "px": [432,224], "src": [256,240], "f": 0, "t": 361, "d": [107,476], "a": 1 }, + { "px": [448,224], "src": [272,240], "f": 0, "t": 362, "d": [107,476], "a": 1 }, + { "px": [0,240], "src": [256,240], "f": 0, "t": 361, "d": [107,481], "a": 1 }, + { "px": [16,240], "src": [272,240], "f": 0, "t": 362, "d": [107,481], "a": 1 }, + { "px": [80,240], "src": [256,240], "f": 1, "t": 361, "d": [107,484], "a": 1 }, + { "px": [64,240], "src": [272,240], "f": 1, "t": 362, "d": [107,484], "a": 1 }, + { "px": [432,240], "src": [256,240], "f": 0, "t": 361, "d": [107,508], "a": 1 }, + { "px": [448,240], "src": [272,240], "f": 0, "t": 362, "d": [107,508], "a": 1 }, + { "px": [32,256], "src": [256,240], "f": 1, "t": 361, "d": [107,513], "a": 1 }, + { "px": [16,256], "src": [272,240], "f": 1, "t": 362, "d": [107,513], "a": 1 }, + { "px": [432,256], "src": [256,240], "f": 0, "t": 361, "d": [107,540], "a": 1 }, + { "px": [448,256], "src": [272,240], "f": 0, "t": 362, "d": [107,540], "a": 1 }, + { "px": [432,272], "src": [256,240], "f": 0, "t": 361, "d": [107,572], "a": 1 }, + { "px": [448,272], "src": [272,240], "f": 0, "t": 362, "d": [107,572], "a": 1 }, + { "px": [128,288], "src": [256,240], "f": 1, "t": 361, "d": [107,583], "a": 1 }, + { "px": [112,288], "src": [272,240], "f": 1, "t": 362, "d": [107,583], "a": 1 }, + { "px": [432,288], "src": [256,240], "f": 0, "t": 361, "d": [107,604], "a": 1 }, + { "px": [448,288], "src": [272,240], "f": 0, "t": 362, "d": [107,604], "a": 1 }, + { "px": [432,304], "src": [256,240], "f": 0, "t": 361, "d": [107,636], "a": 1 }, + { "px": [448,304], "src": [272,240], "f": 0, "t": 362, "d": [107,636], "a": 1 }, + { "px": [80,320], "src": [256,240], "f": 1, "t": 361, "d": [107,644], "a": 1 }, + { "px": [64,320], "src": [272,240], "f": 1, "t": 362, "d": [107,644], "a": 1 }, + { "px": [432,320], "src": [256,240], "f": 0, "t": 361, "d": [107,668], "a": 1 }, + { "px": [448,320], "src": [272,240], "f": 0, "t": 362, "d": [107,668], "a": 1 }, + { "px": [80,336], "src": [256,240], "f": 1, "t": 361, "d": [107,676], "a": 1 }, + { "px": [64,336], "src": [272,240], "f": 1, "t": 362, "d": [107,676], "a": 1 }, + { "px": [432,336], "src": [256,240], "f": 0, "t": 361, "d": [107,700], "a": 1 }, + { "px": [448,336], "src": [272,240], "f": 0, "t": 362, "d": [107,700], "a": 1 }, + { "px": [80,352], "src": [256,240], "f": 1, "t": 361, "d": [107,708], "a": 1 }, + { "px": [64,352], "src": [272,240], "f": 1, "t": 362, "d": [107,708], "a": 1 }, + { "px": [432,352], "src": [256,240], "f": 0, "t": 361, "d": [107,732], "a": 1 }, + { "px": [448,352], "src": [272,240], "f": 0, "t": 362, "d": [107,732], "a": 1 }, + { "px": [368,64], "src": [256,240], "f": 0, "t": 361, "d": [105,152], "a": 1 }, + { "px": [384,64], "src": [272,240], "f": 0, "t": 362, "d": [105,152], "a": 1 }, + { "px": [400,64], "src": [288,240], "f": 0, "t": 363, "d": [105,152], "a": 1 }, + { "px": [160,224], "src": [256,240], "f": 0, "t": 361, "d": [105,459], "a": 1 }, + { "px": [176,224], "src": [272,240], "f": 0, "t": 362, "d": [105,459], "a": 1 }, + { "px": [192,224], "src": [288,240], "f": 0, "t": 363, "d": [105,459], "a": 1 }, + { "px": [400,224], "src": [256,240], "f": 0, "t": 361, "d": [105,474], "a": 1 }, + { "px": [416,224], "src": [272,240], "f": 0, "t": 362, "d": [105,474], "a": 1 }, + { "px": [432,224], "src": [288,240], "f": 0, "t": 363, "d": [105,474], "a": 1 }, + { "px": [272,256], "src": [256,240], "f": 0, "t": 361, "d": [105,530], "a": 1 }, + { "px": [288,256], "src": [272,240], "f": 0, "t": 362, "d": [105,530], "a": 1 }, + { "px": [304,256], "src": [288,240], "f": 0, "t": 363, "d": [105,530], "a": 1 }, + { "px": [256,288], "src": [256,240], "f": 0, "t": 361, "d": [105,593], "a": 1 }, + { "px": [272,288], "src": [272,240], "f": 0, "t": 362, "d": [105,593], "a": 1 }, + { "px": [288,288], "src": [288,240], "f": 0, "t": 363, "d": [105,593], "a": 1 }, + { "px": [304,288], "src": [256,240], "f": 0, "t": 361, "d": [105,596], "a": 1 }, + { "px": [320,288], "src": [272,240], "f": 0, "t": 362, "d": [105,596], "a": 1 }, + { "px": [336,288], "src": [288,240], "f": 0, "t": 363, "d": [105,596], "a": 1 }, + { "px": [80,320], "src": [256,240], "f": 0, "t": 361, "d": [105,646], "a": 1 }, + { "px": [96,320], "src": [272,240], "f": 0, "t": 362, "d": [105,646], "a": 1 }, + { "px": [112,320], "src": [288,240], "f": 0, "t": 363, "d": [105,646], "a": 1 }, + { "px": [224,320], "src": [256,240], "f": 0, "t": 361, "d": [105,655], "a": 1 }, + { "px": [240,320], "src": [272,240], "f": 0, "t": 362, "d": [105,655], "a": 1 }, + { "px": [256,320], "src": [288,240], "f": 0, "t": 363, "d": [105,655], "a": 1 }, + { "px": [272,320], "src": [256,240], "f": 0, "t": 361, "d": [105,658], "a": 1 }, + { "px": [288,320], "src": [272,240], "f": 0, "t": 362, "d": [105,658], "a": 1 }, + { "px": [304,320], "src": [288,240], "f": 0, "t": 363, "d": [105,658], "a": 1 }, + { "px": [384,224], "src": [144,240], "f": 2, "t": 354, "d": [112,409], "a": 1 }, + { "px": [384,208], "src": [144,256], "f": 2, "t": 377, "d": [112,409], "a": 1 }, + { "px": [384,192], "src": [144,272], "f": 2, "t": 400, "d": [112,409], "a": 1 }, + { "px": [400,224], "src": [160,240], "f": 2, "t": 355, "d": [112,409], "a": 1 }, + { "px": [400,208], "src": [160,256], "f": 2, "t": 378, "d": [112,409], "a": 1 }, + { "px": [400,192], "src": [160,272], "f": 2, "t": 401, "d": [112,409], "a": 1 }, + { "px": [416,224], "src": [176,240], "f": 2, "t": 356, "d": [112,409], "a": 1 }, + { "px": [416,208], "src": [176,256], "f": 2, "t": 379, "d": [112,409], "a": 1 }, + { "px": [416,192], "src": [176,272], "f": 2, "t": 402, "d": [112,409], "a": 1 }, + { "px": [64,240], "src": [144,240], "f": 2, "t": 354, "d": [112,421], "a": 1 }, + { "px": [64,224], "src": [144,256], "f": 2, "t": 377, "d": [112,421], "a": 1 }, + { "px": [64,208], "src": [144,272], "f": 2, "t": 400, "d": [112,421], "a": 1 }, + { "px": [80,240], "src": [160,240], "f": 2, "t": 355, "d": [112,421], "a": 1 }, + { "px": [80,224], "src": [160,256], "f": 2, "t": 378, "d": [112,421], "a": 1 }, + { "px": [80,208], "src": [160,272], "f": 2, "t": 401, "d": [112,421], "a": 1 }, + { "px": [96,240], "src": [176,240], "f": 2, "t": 356, "d": [112,421], "a": 1 }, + { "px": [96,224], "src": [176,256], "f": 2, "t": 379, "d": [112,421], "a": 1 }, + { "px": [96,208], "src": [176,272], "f": 2, "t": 402, "d": [112,421], "a": 1 }, + { "px": [224,240], "src": [144,240], "f": 2, "t": 354, "d": [112,431], "a": 1 }, + { "px": [224,224], "src": [144,256], "f": 2, "t": 377, "d": [112,431], "a": 1 }, + { "px": [224,208], "src": [144,272], "f": 2, "t": 400, "d": [112,431], "a": 1 }, + { "px": [240,240], "src": [160,240], "f": 2, "t": 355, "d": [112,431], "a": 1 }, + { "px": [240,224], "src": [160,256], "f": 2, "t": 378, "d": [112,431], "a": 1 }, + { "px": [240,208], "src": [160,272], "f": 2, "t": 401, "d": [112,431], "a": 1 }, + { "px": [256,240], "src": [176,240], "f": 2, "t": 356, "d": [112,431], "a": 1 }, + { "px": [256,224], "src": [176,256], "f": 2, "t": 379, "d": [112,431], "a": 1 }, + { "px": [256,208], "src": [176,272], "f": 2, "t": 402, "d": [112,431], "a": 1 }, + { "px": [64,336], "src": [144,240], "f": 2, "t": 354, "d": [112,613], "a": 1 }, + { "px": [64,320], "src": [144,256], "f": 2, "t": 377, "d": [112,613], "a": 1 }, + { "px": [64,304], "src": [144,272], "f": 2, "t": 400, "d": [112,613], "a": 1 }, + { "px": [80,336], "src": [160,240], "f": 2, "t": 355, "d": [112,613], "a": 1 }, + { "px": [80,320], "src": [160,256], "f": 2, "t": 378, "d": [112,613], "a": 1 }, + { "px": [80,304], "src": [160,272], "f": 2, "t": 401, "d": [112,613], "a": 1 }, + { "px": [96,336], "src": [176,240], "f": 2, "t": 356, "d": [112,613], "a": 1 }, + { "px": [96,320], "src": [176,256], "f": 2, "t": 379, "d": [112,613], "a": 1 }, + { "px": [96,304], "src": [176,272], "f": 2, "t": 402, "d": [112,613], "a": 1 }, + { "px": [16,160], "src": [192,304], "f": 2, "t": 449, "d": [113,289], "a": 1 }, + { "px": [16,144], "src": [192,320], "f": 2, "t": 472, "d": [113,289], "a": 1 }, + { "px": [32,160], "src": [208,304], "f": 2, "t": 450, "d": [113,289], "a": 1 }, + { "px": [32,144], "src": [208,320], "f": 2, "t": 473, "d": [113,289], "a": 1 }, + { "px": [48,160], "src": [224,304], "f": 2, "t": 451, "d": [113,289], "a": 1 }, + { "px": [48,144], "src": [224,320], "f": 2, "t": 474, "d": [113,289], "a": 1 }, + { "px": [80,144], "src": [192,304], "f": 1, "t": 449, "d": [113,325], "a": 1 }, + { "px": [80,160], "src": [192,320], "f": 1, "t": 472, "d": [113,325], "a": 1 }, + { "px": [64,144], "src": [208,304], "f": 1, "t": 450, "d": [113,325], "a": 1 }, + { "px": [64,160], "src": [208,320], "f": 1, "t": 473, "d": [113,325], "a": 1 }, + { "px": [48,144], "src": [224,304], "f": 1, "t": 451, "d": [113,325], "a": 1 }, + { "px": [48,160], "src": [224,320], "f": 1, "t": 474, "d": [113,325], "a": 1 }, + { "px": [448,208], "src": [192,304], "f": 3, "t": 449, "d": [113,412], "a": 1 }, + { "px": [448,192], "src": [192,320], "f": 3, "t": 472, "d": [113,412], "a": 1 }, + { "px": [432,208], "src": [208,304], "f": 3, "t": 450, "d": [113,412], "a": 1 }, + { "px": [432,192], "src": [208,320], "f": 3, "t": 473, "d": [113,412], "a": 1 }, + { "px": [416,208], "src": [224,304], "f": 3, "t": 451, "d": [113,412], "a": 1 }, + { "px": [416,192], "src": [224,320], "f": 3, "t": 474, "d": [113,412], "a": 1 }, + { "px": [64,224], "src": [192,304], "f": 2, "t": 449, "d": [113,420], "a": 1 }, + { "px": [64,208], "src": [192,320], "f": 2, "t": 472, "d": [113,420], "a": 1 }, + { "px": [80,224], "src": [208,304], "f": 2, "t": 450, "d": [113,420], "a": 1 }, + { "px": [80,208], "src": [208,320], "f": 2, "t": 473, "d": [113,420], "a": 1 }, + { "px": [96,224], "src": [224,304], "f": 2, "t": 451, "d": [113,420], "a": 1 }, + { "px": [96,208], "src": [224,320], "f": 2, "t": 474, "d": [113,420], "a": 1 }, + { "px": [16,256], "src": [192,304], "f": 0, "t": 449, "d": [113,545], "a": 1 }, + { "px": [16,272], "src": [192,320], "f": 0, "t": 472, "d": [113,545], "a": 1 }, + { "px": [32,256], "src": [208,304], "f": 0, "t": 450, "d": [113,545], "a": 1 }, + { "px": [32,272], "src": [208,320], "f": 0, "t": 473, "d": [113,545], "a": 1 }, + { "px": [48,256], "src": [224,304], "f": 0, "t": 451, "d": [113,545], "a": 1 }, + { "px": [48,272], "src": [224,320], "f": 0, "t": 474, "d": [113,545], "a": 1 }, + { "px": [64,320], "src": [192,304], "f": 2, "t": 449, "d": [113,612], "a": 1 }, + { "px": [64,304], "src": [192,320], "f": 2, "t": 472, "d": [113,612], "a": 1 }, + { "px": [80,320], "src": [208,304], "f": 2, "t": 450, "d": [113,612], "a": 1 }, + { "px": [80,304], "src": [208,320], "f": 2, "t": 473, "d": [113,612], "a": 1 }, + { "px": [96,320], "src": [224,304], "f": 2, "t": 451, "d": [113,612], "a": 1 }, + { "px": [96,304], "src": [224,320], "f": 2, "t": 474, "d": [113,612], "a": 1 }, + { "px": [416,192], "src": [96,208], "f": 0, "t": 305, "d": [114,410], "a": 1 }, + { "px": [160,208], "src": [96,208], "f": 0, "t": 305, "d": [114,426], "a": 1 }, + { "px": [384,192], "src": [128,208], "f": 0, "t": 307, "d": [115,408], "a": 1 }, + { "px": [384,208], "src": [128,224], "f": 0, "t": 330, "d": [115,408], "a": 1 }, + { "px": [288,208], "src": [128,208], "f": 0, "t": 307, "d": [115,434], "a": 1 }, + { "px": [288,224], "src": [128,224], "f": 0, "t": 330, "d": [115,434], "a": 1 } + ], + "seed": 2993814, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [{ "levelIid": "a36b6d30-66b0-11ec-9cd7-8145d2a69a56", "dir": "n" }] + }, + { + "identifier": "Boss_room", + "iid": "a36d41f0-66b0-11ec-9cd7-e962574817d4", + "uid": 47, + "worldX": 1536, + "worldY": 512, + "worldDepth": 0, + "pxWid": 512, + "pxHei": 768, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#F09398", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": "Boss", "__tile": null, "defUid": 99, "realEditorValues": [{ + "id": "V_String", + "params": ["Boss"] + }] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a36d41f5-66b0-11ec-9cd7-a3a7b7c24dbb", + "levelId": 47, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 5091096, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Item", + "__grid": [23,20], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 208, "y": 432, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "f6a0ef30-66b0-11ec-9368-f1f32eefb458", + "width": 24, + "height": 24, + "defUid": 72, + "px": [376,336], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Fire_blade", "__tile": { "tilesetUid": 133, "x": 208, "y": 432, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Fire_blade"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [25,20], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 80, "y": 272, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "fd5d2d70-66b0-11ec-9368-d360386152ce", + "width": 24, + "height": 24, + "defUid": 72, + "px": [408,336], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Healing_potion", "__tile": { "tilesetUid": 133, "x": 80, "y": 272, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Healing_potion"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36d41f6-66b0-11ec-9cd7-a502c7165b4f", + "levelId": 47, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [48,176], "src": [320,128], "f": 0, "t": 204, "d": [26,355], "a": 1 }, + { "px": [416,176], "src": [320,128], "f": 1, "t": 204, "d": [26,378], "a": 1 }, + { "px": [48,192], "src": [320,128], "f": 0, "t": 204, "d": [26,387], "a": 1 }, + { "px": [416,192], "src": [320,128], "f": 1, "t": 204, "d": [26,410], "a": 1 }, + { "px": [48,208], "src": [320,128], "f": 0, "t": 204, "d": [26,419], "a": 1 }, + { "px": [416,208], "src": [320,128], "f": 1, "t": 204, "d": [26,442], "a": 1 }, + { "px": [48,224], "src": [320,128], "f": 0, "t": 204, "d": [26,451], "a": 1 }, + { "px": [416,224], "src": [320,128], "f": 1, "t": 204, "d": [26,474], "a": 1 }, + { "px": [48,240], "src": [320,128], "f": 0, "t": 204, "d": [26,483], "a": 1 }, + { "px": [416,240], "src": [320,128], "f": 1, "t": 204, "d": [26,506], "a": 1 }, + { "px": [48,256], "src": [320,128], "f": 0, "t": 204, "d": [26,515], "a": 1 }, + { "px": [416,256], "src": [320,128], "f": 1, "t": 204, "d": [26,538], "a": 1 }, + { "px": [48,272], "src": [320,128], "f": 0, "t": 204, "d": [26,547], "a": 1 }, + { "px": [416,272], "src": [320,128], "f": 1, "t": 204, "d": [26,570], "a": 1 }, + { "px": [48,288], "src": [320,128], "f": 0, "t": 204, "d": [26,579], "a": 1 }, + { "px": [416,288], "src": [320,128], "f": 1, "t": 204, "d": [26,602], "a": 1 }, + { "px": [48,304], "src": [320,128], "f": 0, "t": 204, "d": [26,611], "a": 1 }, + { "px": [416,304], "src": [320,128], "f": 1, "t": 204, "d": [26,634], "a": 1 }, + { "px": [48,320], "src": [320,128], "f": 0, "t": 204, "d": [26,643], "a": 1 }, + { "px": [416,320], "src": [320,128], "f": 1, "t": 204, "d": [26,666], "a": 1 }, + { "px": [416,352], "src": [320,128], "f": 1, "t": 204, "d": [26,730], "a": 1 }, + { "px": [416,368], "src": [320,128], "f": 1, "t": 204, "d": [26,762], "a": 1 }, + { "px": [416,384], "src": [320,128], "f": 1, "t": 204, "d": [26,794], "a": 1 }, + { "px": [48,400], "src": [320,128], "f": 0, "t": 204, "d": [26,803], "a": 1 }, + { "px": [416,400], "src": [320,128], "f": 1, "t": 204, "d": [26,826], "a": 1 }, + { "px": [48,416], "src": [320,128], "f": 0, "t": 204, "d": [26,835], "a": 1 }, + { "px": [416,416], "src": [320,128], "f": 1, "t": 204, "d": [26,858], "a": 1 }, + { "px": [416,432], "src": [320,128], "f": 1, "t": 204, "d": [26,890], "a": 1 }, + { "px": [80,448], "src": [320,128], "f": 0, "t": 204, "d": [26,901], "a": 1 }, + { "px": [416,448], "src": [320,128], "f": 1, "t": 204, "d": [26,922], "a": 1 }, + { "px": [80,464], "src": [320,128], "f": 0, "t": 204, "d": [26,933], "a": 1 }, + { "px": [416,464], "src": [320,128], "f": 1, "t": 204, "d": [26,954], "a": 1 }, + { "px": [80,480], "src": [320,128], "f": 0, "t": 204, "d": [26,965], "a": 1 }, + { "px": [416,480], "src": [320,128], "f": 1, "t": 204, "d": [26,986], "a": 1 }, + { "px": [416,496], "src": [320,128], "f": 1, "t": 204, "d": [26,1018], "a": 1 }, + { "px": [160,512], "src": [320,128], "f": 0, "t": 204, "d": [26,1034], "a": 1 }, + { "px": [416,512], "src": [320,128], "f": 1, "t": 204, "d": [26,1050], "a": 1 }, + { "px": [160,528], "src": [320,128], "f": 0, "t": 204, "d": [26,1066], "a": 1 }, + { "px": [416,528], "src": [320,128], "f": 1, "t": 204, "d": [26,1082], "a": 1 }, + { "px": [160,544], "src": [320,128], "f": 0, "t": 204, "d": [26,1098], "a": 1 }, + { "px": [416,544], "src": [320,128], "f": 1, "t": 204, "d": [26,1114], "a": 1 }, + { "px": [352,336], "src": [320,96], "f": 1, "t": 158, "d": [138,694], "a": 1 }, + { "px": [48,384], "src": [320,96], "f": 0, "t": 158, "d": [138,771], "a": 1 }, + { "px": [80,432], "src": [320,96], "f": 0, "t": 158, "d": [138,869], "a": 1 }, + { "px": [160,496], "src": [320,96], "f": 0, "t": 158, "d": [138,1002], "a": 1 }, + { "px": [0,48], "src": [336,112], "f": 0, "t": 182, "d": [27,96], "a": 1 }, + { "px": [16,48], "src": [336,112], "f": 0, "t": 182, "d": [27,97], "a": 1 }, + { "px": [32,48], "src": [336,112], "f": 0, "t": 182, "d": [27,98], "a": 1 }, + { "px": [48,48], "src": [336,112], "f": 0, "t": 182, "d": [27,99], "a": 1 }, + { "px": [64,48], "src": [336,112], "f": 0, "t": 182, "d": [27,100], "a": 1 }, + { "px": [48,176], "src": [336,112], "f": 0, "t": 182, "d": [27,355], "a": 1 }, + { "px": [64,176], "src": [336,112], "f": 0, "t": 182, "d": [27,356], "a": 1 }, + { "px": [80,176], "src": [336,112], "f": 0, "t": 182, "d": [27,357], "a": 1 }, + { "px": [96,176], "src": [336,112], "f": 0, "t": 182, "d": [27,358], "a": 1 }, + { "px": [112,176], "src": [336,112], "f": 0, "t": 182, "d": [27,359], "a": 1 }, + { "px": [128,176], "src": [336,112], "f": 0, "t": 182, "d": [27,360], "a": 1 }, + { "px": [144,176], "src": [336,112], "f": 0, "t": 182, "d": [27,361], "a": 1 }, + { "px": [160,176], "src": [336,112], "f": 0, "t": 182, "d": [27,362], "a": 1 }, + { "px": [176,176], "src": [336,112], "f": 0, "t": 182, "d": [27,363], "a": 1 }, + { "px": [192,176], "src": [336,112], "f": 0, "t": 182, "d": [27,364], "a": 1 }, + { "px": [208,176], "src": [336,112], "f": 0, "t": 182, "d": [27,365], "a": 1 }, + { "px": [224,176], "src": [336,112], "f": 0, "t": 182, "d": [27,366], "a": 1 }, + { "px": [240,176], "src": [336,112], "f": 0, "t": 182, "d": [27,367], "a": 1 }, + { "px": [256,176], "src": [336,112], "f": 0, "t": 182, "d": [27,368], "a": 1 }, + { "px": [272,176], "src": [336,112], "f": 0, "t": 182, "d": [27,369], "a": 1 }, + { "px": [288,176], "src": [336,112], "f": 0, "t": 182, "d": [27,370], "a": 1 }, + { "px": [304,176], "src": [336,112], "f": 0, "t": 182, "d": [27,371], "a": 1 }, + { "px": [320,176], "src": [336,112], "f": 0, "t": 182, "d": [27,372], "a": 1 }, + { "px": [336,176], "src": [336,112], "f": 0, "t": 182, "d": [27,373], "a": 1 }, + { "px": [352,176], "src": [336,112], "f": 0, "t": 182, "d": [27,374], "a": 1 }, + { "px": [368,176], "src": [336,112], "f": 0, "t": 182, "d": [27,375], "a": 1 }, + { "px": [384,176], "src": [336,112], "f": 0, "t": 182, "d": [27,376], "a": 1 }, + { "px": [400,176], "src": [336,112], "f": 0, "t": 182, "d": [27,377], "a": 1 }, + { "px": [416,176], "src": [336,112], "f": 0, "t": 182, "d": [27,378], "a": 1 }, + { "px": [0,336], "src": [336,112], "f": 0, "t": 182, "d": [27,672], "a": 1 }, + { "px": [16,336], "src": [336,112], "f": 0, "t": 182, "d": [27,673], "a": 1 }, + { "px": [32,336], "src": [336,112], "f": 0, "t": 182, "d": [27,674], "a": 1 }, + { "px": [368,352], "src": [336,112], "f": 0, "t": 182, "d": [27,727], "a": 1 }, + { "px": [384,352], "src": [336,112], "f": 0, "t": 182, "d": [27,728], "a": 1 }, + { "px": [400,352], "src": [336,112], "f": 0, "t": 182, "d": [27,729], "a": 1 }, + { "px": [416,352], "src": [336,112], "f": 0, "t": 182, "d": [27,730], "a": 1 }, + { "px": [48,336], "src": [320,112], "f": 0, "t": 181, "d": [137,675], "a": 1 }, + { "px": [352,352], "src": [320,112], "f": 1, "t": 181, "d": [137,726], "a": 1 } + ], + "seed": 5084082, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36d41f7-66b0-11ec-9cd7-3f881e1f54ac", + "levelId": 47, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, + 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [80,0], "src": [320,176], "f": 0, "t": 273, "d": [28,5], "a": 1 }, + { "px": [80,16], "src": [320,176], "f": 0, "t": 273, "d": [28,37], "a": 1 }, + { "px": [80,32], "src": [320,176], "f": 0, "t": 273, "d": [28,69], "a": 1 }, + { "px": [0,48], "src": [320,176], "f": 0, "t": 273, "d": [28,96], "a": 1 }, + { "px": [16,48], "src": [320,176], "f": 0, "t": 273, "d": [28,97], "a": 1 }, + { "px": [32,48], "src": [320,176], "f": 0, "t": 273, "d": [28,98], "a": 1 }, + { "px": [48,48], "src": [320,176], "f": 0, "t": 273, "d": [28,99], "a": 1 }, + { "px": [64,48], "src": [320,176], "f": 0, "t": 273, "d": [28,100], "a": 1 }, + { "px": [80,48], "src": [320,176], "f": 0, "t": 273, "d": [28,101], "a": 1 }, + { "px": [0,64], "src": [320,176], "f": 0, "t": 273, "d": [28,128], "a": 1 }, + { "px": [16,64], "src": [320,176], "f": 0, "t": 273, "d": [28,129], "a": 1 }, + { "px": [32,64], "src": [320,176], "f": 0, "t": 273, "d": [28,130], "a": 1 }, + { "px": [48,64], "src": [320,176], "f": 0, "t": 273, "d": [28,131], "a": 1 }, + { "px": [64,64], "src": [320,176], "f": 0, "t": 273, "d": [28,132], "a": 1 }, + { "px": [80,64], "src": [320,176], "f": 0, "t": 273, "d": [28,133], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [8,1], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [8,3], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [8,32], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [8,34], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [8,104], "a": 1 }, + { "px": [112,64], "src": [32,32], "f": 0, "t": 48, "d": [8,135], "a": 1 }, + { "px": [128,80], "src": [32,32], "f": 0, "t": 48, "d": [8,168], "a": 1 }, + { "px": [16,96], "src": [32,32], "f": 0, "t": 48, "d": [8,193], "a": 1 }, + { "px": [112,96], "src": [32,32], "f": 0, "t": 48, "d": [8,199], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [8,224], "a": 1 }, + { "px": [144,128], "src": [32,32], "f": 0, "t": 48, "d": [8,265], "a": 1 }, + { "px": [176,128], "src": [32,32], "f": 0, "t": 48, "d": [8,267], "a": 1 }, + { "px": [208,128], "src": [32,32], "f": 0, "t": 48, "d": [8,269], "a": 1 }, + { "px": [240,128], "src": [32,32], "f": 0, "t": 48, "d": [8,271], "a": 1 }, + { "px": [304,128], "src": [32,32], "f": 0, "t": 48, "d": [8,275], "a": 1 }, + { "px": [336,128], "src": [32,32], "f": 0, "t": 48, "d": [8,277], "a": 1 }, + { "px": [432,128], "src": [32,32], "f": 0, "t": 48, "d": [8,283], "a": 1 }, + { "px": [464,128], "src": [32,32], "f": 0, "t": 48, "d": [8,285], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [8,288], "a": 1 }, + { "px": [32,144], "src": [32,32], "f": 0, "t": 48, "d": [8,290], "a": 1 }, + { "px": [160,144], "src": [32,32], "f": 0, "t": 48, "d": [8,298], "a": 1 }, + { "px": [192,144], "src": [32,32], "f": 0, "t": 48, "d": [8,300], "a": 1 }, + { "px": [224,144], "src": [32,32], "f": 0, "t": 48, "d": [8,302], "a": 1 }, + { "px": [256,144], "src": [32,32], "f": 0, "t": 48, "d": [8,304], "a": 1 }, + { "px": [320,144], "src": [32,32], "f": 0, "t": 48, "d": [8,308], "a": 1 }, + { "px": [352,144], "src": [32,32], "f": 0, "t": 48, "d": [8,310], "a": 1 }, + { "px": [416,144], "src": [32,32], "f": 0, "t": 48, "d": [8,314], "a": 1 }, + { "px": [448,144], "src": [32,32], "f": 0, "t": 48, "d": [8,316], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [8,321], "a": 1 }, + { "px": [464,160], "src": [32,32], "f": 0, "t": 48, "d": [8,349], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [8,352], "a": 1 }, + { "px": [448,176], "src": [32,32], "f": 0, "t": 48, "d": [8,380], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [8,385], "a": 1 }, + { "px": [464,192], "src": [32,32], "f": 0, "t": 48, "d": [8,413], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [8,416], "a": 1 }, + { "px": [448,208], "src": [32,32], "f": 0, "t": 48, "d": [8,444], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [8,449], "a": 1 }, + { "px": [464,224], "src": [32,32], "f": 0, "t": 48, "d": [8,477], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [8,480], "a": 1 }, + { "px": [448,240], "src": [32,32], "f": 0, "t": 48, "d": [8,508], "a": 1 }, + { "px": [464,256], "src": [32,32], "f": 0, "t": 48, "d": [8,541], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [8,544], "a": 1 }, + { "px": [448,272], "src": [32,32], "f": 0, "t": 48, "d": [8,572], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [8,577], "a": 1 }, + { "px": [464,320], "src": [32,32], "f": 0, "t": 48, "d": [8,669], "a": 1 }, + { "px": [448,336], "src": [32,32], "f": 0, "t": 48, "d": [8,700], "a": 1 }, + { "px": [464,352], "src": [32,32], "f": 0, "t": 48, "d": [8,733], "a": 1 }, + { "px": [448,368], "src": [32,32], "f": 0, "t": 48, "d": [8,764], "a": 1 }, + { "px": [464,384], "src": [32,32], "f": 0, "t": 48, "d": [8,797], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [8,864], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [8,897], "a": 1 }, + { "px": [48,448], "src": [32,32], "f": 0, "t": 48, "d": [8,899], "a": 1 }, + { "px": [464,448], "src": [32,32], "f": 0, "t": 48, "d": [8,925], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [8,928], "a": 1 }, + { "px": [448,464], "src": [32,32], "f": 0, "t": 48, "d": [8,956], "a": 1 }, + { "px": [48,480], "src": [32,32], "f": 0, "t": 48, "d": [8,963], "a": 1 }, + { "px": [464,480], "src": [32,32], "f": 0, "t": 48, "d": [8,989], "a": 1 }, + { "px": [448,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1020], "a": 1 }, + { "px": [80,512], "src": [32,32], "f": 0, "t": 48, "d": [8,1029], "a": 1 }, + { "px": [112,512], "src": [32,32], "f": 0, "t": 48, "d": [8,1031], "a": 1 }, + { "px": [464,512], "src": [32,32], "f": 0, "t": 48, "d": [8,1053], "a": 1 }, + { "px": [64,528], "src": [32,32], "f": 0, "t": 48, "d": [8,1060], "a": 1 }, + { "px": [96,528], "src": [32,32], "f": 0, "t": 48, "d": [8,1062], "a": 1 }, + { "px": [128,528], "src": [32,32], "f": 0, "t": 48, "d": [8,1064], "a": 1 }, + { "px": [448,528], "src": [32,32], "f": 0, "t": 48, "d": [8,1084], "a": 1 }, + { "px": [112,544], "src": [32,32], "f": 0, "t": 48, "d": [8,1095], "a": 1 }, + { "px": [128,560], "src": [32,32], "f": 0, "t": 48, "d": [8,1128], "a": 1 }, + { "px": [448,560], "src": [32,32], "f": 0, "t": 48, "d": [8,1148], "a": 1 }, + { "px": [144,576], "src": [32,32], "f": 0, "t": 48, "d": [8,1161], "a": 1 }, + { "px": [176,576], "src": [32,32], "f": 0, "t": 48, "d": [8,1163], "a": 1 }, + { "px": [208,576], "src": [32,32], "f": 0, "t": 48, "d": [8,1165], "a": 1 }, + { "px": [304,576], "src": [32,32], "f": 0, "t": 48, "d": [8,1171], "a": 1 }, + { "px": [400,576], "src": [32,32], "f": 0, "t": 48, "d": [8,1177], "a": 1 }, + { "px": [432,576], "src": [32,32], "f": 0, "t": 48, "d": [8,1179], "a": 1 }, + { "px": [464,576], "src": [32,32], "f": 0, "t": 48, "d": [8,1181], "a": 1 }, + { "px": [128,592], "src": [32,32], "f": 0, "t": 48, "d": [8,1192], "a": 1 }, + { "px": [160,592], "src": [32,32], "f": 0, "t": 48, "d": [8,1194], "a": 1 }, + { "px": [192,592], "src": [32,32], "f": 0, "t": 48, "d": [8,1196], "a": 1 }, + { "px": [224,592], "src": [32,32], "f": 0, "t": 48, "d": [8,1198], "a": 1 }, + { "px": [256,592], "src": [32,32], "f": 0, "t": 48, "d": [8,1200], "a": 1 }, + { "px": [288,592], "src": [32,32], "f": 0, "t": 48, "d": [8,1202], "a": 1 }, + { "px": [384,592], "src": [32,32], "f": 0, "t": 48, "d": [8,1208], "a": 1 }, + { "px": [416,592], "src": [32,32], "f": 0, "t": 48, "d": [8,1210], "a": 1 }, + { "px": [448,592], "src": [32,32], "f": 0, "t": 48, "d": [8,1212], "a": 1 }, + { "px": [112,0], "src": [96,96], "f": 0, "t": 144, "d": [83,7], "a": 1 }, + { "px": [128,16], "src": [96,96], "f": 0, "t": 144, "d": [83,40], "a": 1 }, + { "px": [112,32], "src": [64,96], "f": 0, "t": 142, "d": [83,71], "a": 1 }, + { "px": [48,96], "src": [64,96], "f": 0, "t": 142, "d": [83,195], "a": 1 }, + { "px": [80,96], "src": [96,96], "f": 0, "t": 144, "d": [83,197], "a": 1 }, + { "px": [32,112], "src": [96,96], "f": 0, "t": 144, "d": [83,226], "a": 1 }, + { "px": [64,112], "src": [64,96], "f": 0, "t": 142, "d": [83,228], "a": 1 }, + { "px": [96,112], "src": [96,96], "f": 0, "t": 144, "d": [83,230], "a": 1 }, + { "px": [128,112], "src": [96,96], "f": 0, "t": 144, "d": [83,232], "a": 1 }, + { "px": [16,128], "src": [64,96], "f": 0, "t": 142, "d": [83,257], "a": 1 }, + { "px": [48,128], "src": [96,96], "f": 0, "t": 144, "d": [83,259], "a": 1 }, + { "px": [80,128], "src": [64,96], "f": 0, "t": 142, "d": [83,261], "a": 1 }, + { "px": [112,128], "src": [96,96], "f": 0, "t": 144, "d": [83,263], "a": 1 }, + { "px": [272,128], "src": [64,96], "f": 0, "t": 142, "d": [83,273], "a": 1 }, + { "px": [368,128], "src": [96,96], "f": 0, "t": 144, "d": [83,279], "a": 1 }, + { "px": [400,128], "src": [64,96], "f": 0, "t": 142, "d": [83,281], "a": 1 }, + { "px": [64,144], "src": [96,96], "f": 0, "t": 144, "d": [83,292], "a": 1 }, + { "px": [96,144], "src": [64,96], "f": 0, "t": 142, "d": [83,294], "a": 1 }, + { "px": [128,144], "src": [64,96], "f": 0, "t": 142, "d": [83,296], "a": 1 }, + { "px": [288,144], "src": [64,96], "f": 0, "t": 142, "d": [83,306], "a": 1 }, + { "px": [384,144], "src": [96,96], "f": 0, "t": 144, "d": [83,312], "a": 1 }, + { "px": [16,256], "src": [96,96], "f": 0, "t": 144, "d": [83,513], "a": 1 }, + { "px": [464,288], "src": [96,96], "f": 0, "t": 144, "d": [83,605], "a": 1 }, + { "px": [0,304], "src": [96,96], "f": 0, "t": 144, "d": [83,608], "a": 1 }, + { "px": [448,304], "src": [64,96], "f": 0, "t": 142, "d": [83,636], "a": 1 }, + { "px": [0,400], "src": [64,96], "f": 0, "t": 142, "d": [83,800], "a": 1 }, + { "px": [448,400], "src": [96,96], "f": 0, "t": 144, "d": [83,828], "a": 1 }, + { "px": [16,416], "src": [64,96], "f": 0, "t": 142, "d": [83,833], "a": 1 }, + { "px": [464,416], "src": [64,96], "f": 0, "t": 142, "d": [83,861], "a": 1 }, + { "px": [448,432], "src": [96,96], "f": 0, "t": 144, "d": [83,892], "a": 1 }, + { "px": [32,464], "src": [96,96], "f": 0, "t": 144, "d": [83,930], "a": 1 }, + { "px": [32,496], "src": [64,96], "f": 0, "t": 142, "d": [83,994], "a": 1 }, + { "px": [48,512], "src": [96,96], "f": 0, "t": 144, "d": [83,1027], "a": 1 }, + { "px": [32,528], "src": [64,96], "f": 0, "t": 142, "d": [83,1058], "a": 1 }, + { "px": [464,544], "src": [96,96], "f": 0, "t": 144, "d": [83,1117], "a": 1 }, + { "px": [112,576], "src": [96,96], "f": 0, "t": 144, "d": [83,1159], "a": 1 }, + { "px": [240,576], "src": [96,96], "f": 0, "t": 144, "d": [83,1167], "a": 1 }, + { "px": [272,576], "src": [96,96], "f": 0, "t": 144, "d": [83,1169], "a": 1 }, + { "px": [336,576], "src": [96,96], "f": 0, "t": 144, "d": [83,1173], "a": 1 }, + { "px": [368,576], "src": [64,96], "f": 0, "t": 142, "d": [83,1175], "a": 1 }, + { "px": [320,592], "src": [96,96], "f": 0, "t": 144, "d": [83,1204], "a": 1 }, + { "px": [352,592], "src": [64,96], "f": 0, "t": 142, "d": [83,1206], "a": 1 }, + { "px": [0,0], "src": [192,16], "f": 0, "t": 35, "d": [101,0], "a": 1 }, + { "px": [32,0], "src": [192,16], "f": 0, "t": 35, "d": [101,2], "a": 1 }, + { "px": [128,0], "src": [192,16], "f": 0, "t": 35, "d": [101,8], "a": 1 }, + { "px": [16,16], "src": [96,0], "f": 0, "t": 6, "d": [101,33], "a": 1 }, + { "px": [48,16], "src": [192,16], "f": 0, "t": 35, "d": [101,35], "a": 1 }, + { "px": [112,16], "src": [224,96], "f": 0, "t": 152, "d": [101,39], "a": 1 }, + { "px": [128,32], "src": [224,96], "f": 0, "t": 152, "d": [101,72], "a": 1 }, + { "px": [112,48], "src": [96,0], "f": 0, "t": 6, "d": [101,103], "a": 1 }, + { "px": [128,64], "src": [224,96], "f": 0, "t": 152, "d": [101,136], "a": 1 }, + { "px": [112,80], "src": [224,96], "f": 0, "t": 152, "d": [101,167], "a": 1 }, + { "px": [0,96], "src": [192,16], "f": 0, "t": 35, "d": [101,192], "a": 1 }, + { "px": [32,96], "src": [192,16], "f": 0, "t": 35, "d": [101,194], "a": 1 }, + { "px": [64,96], "src": [224,96], "f": 0, "t": 152, "d": [101,196], "a": 1 }, + { "px": [96,96], "src": [192,16], "f": 0, "t": 35, "d": [101,198], "a": 1 }, + { "px": [128,96], "src": [224,96], "f": 0, "t": 152, "d": [101,200], "a": 1 }, + { "px": [16,112], "src": [224,96], "f": 0, "t": 152, "d": [101,225], "a": 1 }, + { "px": [48,112], "src": [224,96], "f": 0, "t": 152, "d": [101,227], "a": 1 }, + { "px": [80,112], "src": [224,96], "f": 0, "t": 152, "d": [101,229], "a": 1 }, + { "px": [112,112], "src": [96,0], "f": 0, "t": 6, "d": [101,231], "a": 1 }, + { "px": [0,128], "src": [96,0], "f": 0, "t": 6, "d": [101,256], "a": 1 }, + { "px": [32,128], "src": [96,0], "f": 0, "t": 6, "d": [101,258], "a": 1 }, + { "px": [64,128], "src": [192,16], "f": 0, "t": 35, "d": [101,260], "a": 1 }, + { "px": [96,128], "src": [96,0], "f": 0, "t": 6, "d": [101,262], "a": 1 }, + { "px": [128,128], "src": [192,16], "f": 0, "t": 35, "d": [101,264], "a": 1 }, + { "px": [160,128], "src": [224,96], "f": 0, "t": 152, "d": [101,266], "a": 1 }, + { "px": [192,128], "src": [224,96], "f": 0, "t": 152, "d": [101,268], "a": 1 }, + { "px": [224,128], "src": [192,16], "f": 0, "t": 35, "d": [101,270], "a": 1 }, + { "px": [256,128], "src": [224,96], "f": 0, "t": 152, "d": [101,272], "a": 1 }, + { "px": [288,128], "src": [192,16], "f": 0, "t": 35, "d": [101,274], "a": 1 }, + { "px": [320,128], "src": [96,0], "f": 0, "t": 6, "d": [101,276], "a": 1 }, + { "px": [352,128], "src": [192,16], "f": 0, "t": 35, "d": [101,278], "a": 1 }, + { "px": [384,128], "src": [224,96], "f": 0, "t": 152, "d": [101,280], "a": 1 }, + { "px": [416,128], "src": [224,96], "f": 0, "t": 152, "d": [101,282], "a": 1 }, + { "px": [448,128], "src": [96,0], "f": 0, "t": 6, "d": [101,284], "a": 1 }, + { "px": [16,144], "src": [224,96], "f": 0, "t": 152, "d": [101,289], "a": 1 }, + { "px": [48,144], "src": [192,16], "f": 0, "t": 35, "d": [101,291], "a": 1 }, + { "px": [80,144], "src": [192,16], "f": 0, "t": 35, "d": [101,293], "a": 1 }, + { "px": [112,144], "src": [96,0], "f": 0, "t": 6, "d": [101,295], "a": 1 }, + { "px": [144,144], "src": [224,96], "f": 0, "t": 152, "d": [101,297], "a": 1 }, + { "px": [176,144], "src": [224,96], "f": 0, "t": 152, "d": [101,299], "a": 1 }, + { "px": [208,144], "src": [192,16], "f": 0, "t": 35, "d": [101,301], "a": 1 }, + { "px": [240,144], "src": [224,96], "f": 0, "t": 152, "d": [101,303], "a": 1 }, + { "px": [272,144], "src": [96,0], "f": 0, "t": 6, "d": [101,305], "a": 1 }, + { "px": [304,144], "src": [192,16], "f": 0, "t": 35, "d": [101,307], "a": 1 }, + { "px": [336,144], "src": [96,0], "f": 0, "t": 6, "d": [101,309], "a": 1 }, + { "px": [368,144], "src": [224,96], "f": 0, "t": 152, "d": [101,311], "a": 1 }, + { "px": [400,144], "src": [192,16], "f": 0, "t": 35, "d": [101,313], "a": 1 }, + { "px": [432,144], "src": [224,96], "f": 0, "t": 152, "d": [101,315], "a": 1 }, + { "px": [464,144], "src": [192,16], "f": 0, "t": 35, "d": [101,317], "a": 1 }, + { "px": [0,160], "src": [224,96], "f": 0, "t": 152, "d": [101,320], "a": 1 }, + { "px": [448,160], "src": [96,0], "f": 0, "t": 6, "d": [101,348], "a": 1 }, + { "px": [16,176], "src": [96,0], "f": 0, "t": 6, "d": [101,353], "a": 1 }, + { "px": [464,176], "src": [224,96], "f": 0, "t": 152, "d": [101,381], "a": 1 }, + { "px": [0,192], "src": [96,0], "f": 0, "t": 6, "d": [101,384], "a": 1 }, + { "px": [448,192], "src": [96,0], "f": 0, "t": 6, "d": [101,412], "a": 1 }, + { "px": [16,208], "src": [224,96], "f": 0, "t": 152, "d": [101,417], "a": 1 }, + { "px": [464,208], "src": [96,0], "f": 0, "t": 6, "d": [101,445], "a": 1 }, + { "px": [0,224], "src": [96,0], "f": 0, "t": 6, "d": [101,448], "a": 1 }, + { "px": [448,224], "src": [224,96], "f": 0, "t": 152, "d": [101,476], "a": 1 }, + { "px": [16,240], "src": [192,16], "f": 0, "t": 35, "d": [101,481], "a": 1 }, + { "px": [464,240], "src": [96,0], "f": 0, "t": 6, "d": [101,509], "a": 1 }, + { "px": [0,256], "src": [192,16], "f": 0, "t": 35, "d": [101,512], "a": 1 }, + { "px": [448,256], "src": [96,0], "f": 0, "t": 6, "d": [101,540], "a": 1 }, + { "px": [16,272], "src": [96,0], "f": 0, "t": 6, "d": [101,545], "a": 1 }, + { "px": [464,272], "src": [96,0], "f": 0, "t": 6, "d": [101,573], "a": 1 }, + { "px": [0,288], "src": [96,0], "f": 0, "t": 6, "d": [101,576], "a": 1 }, + { "px": [448,288], "src": [96,0], "f": 0, "t": 6, "d": [101,604], "a": 1 }, + { "px": [16,304], "src": [192,16], "f": 0, "t": 35, "d": [101,609], "a": 1 }, + { "px": [464,304], "src": [224,96], "f": 0, "t": 152, "d": [101,637], "a": 1 }, + { "px": [448,320], "src": [96,0], "f": 0, "t": 6, "d": [101,668], "a": 1 }, + { "px": [464,336], "src": [192,16], "f": 0, "t": 35, "d": [101,701], "a": 1 }, + { "px": [448,352], "src": [96,0], "f": 0, "t": 6, "d": [101,732], "a": 1 }, + { "px": [464,368], "src": [96,0], "f": 0, "t": 6, "d": [101,765], "a": 1 }, + { "px": [448,384], "src": [192,16], "f": 0, "t": 35, "d": [101,796], "a": 1 }, + { "px": [16,400], "src": [192,16], "f": 0, "t": 35, "d": [101,801], "a": 1 }, + { "px": [464,400], "src": [192,16], "f": 0, "t": 35, "d": [101,829], "a": 1 }, + { "px": [0,416], "src": [224,96], "f": 0, "t": 152, "d": [101,832], "a": 1 }, + { "px": [448,416], "src": [192,16], "f": 0, "t": 35, "d": [101,860], "a": 1 }, + { "px": [16,432], "src": [224,96], "f": 0, "t": 152, "d": [101,865], "a": 1 }, + { "px": [464,432], "src": [224,96], "f": 0, "t": 152, "d": [101,893], "a": 1 }, + { "px": [0,448], "src": [224,96], "f": 0, "t": 152, "d": [101,896], "a": 1 }, + { "px": [32,448], "src": [192,16], "f": 0, "t": 35, "d": [101,898], "a": 1 }, + { "px": [448,448], "src": [96,0], "f": 0, "t": 6, "d": [101,924], "a": 1 }, + { "px": [16,464], "src": [96,0], "f": 0, "t": 6, "d": [101,929], "a": 1 }, + { "px": [48,464], "src": [224,96], "f": 0, "t": 152, "d": [101,931], "a": 1 }, + { "px": [464,464], "src": [224,96], "f": 0, "t": 152, "d": [101,957], "a": 1 }, + { "px": [32,480], "src": [96,0], "f": 0, "t": 6, "d": [101,962], "a": 1 }, + { "px": [448,480], "src": [192,16], "f": 0, "t": 35, "d": [101,988], "a": 1 }, + { "px": [48,496], "src": [192,16], "f": 0, "t": 35, "d": [101,995], "a": 1 }, + { "px": [464,496], "src": [192,16], "f": 0, "t": 35, "d": [101,1021], "a": 1 }, + { "px": [32,512], "src": [224,96], "f": 0, "t": 152, "d": [101,1026], "a": 1 }, + { "px": [64,512], "src": [224,96], "f": 0, "t": 152, "d": [101,1028], "a": 1 }, + { "px": [96,512], "src": [224,96], "f": 0, "t": 152, "d": [101,1030], "a": 1 }, + { "px": [128,512], "src": [96,0], "f": 0, "t": 6, "d": [101,1032], "a": 1 }, + { "px": [448,512], "src": [192,16], "f": 0, "t": 35, "d": [101,1052], "a": 1 }, + { "px": [48,528], "src": [224,96], "f": 0, "t": 152, "d": [101,1059], "a": 1 }, + { "px": [80,528], "src": [96,0], "f": 0, "t": 6, "d": [101,1061], "a": 1 }, + { "px": [112,528], "src": [96,0], "f": 0, "t": 6, "d": [101,1063], "a": 1 }, + { "px": [464,528], "src": [224,96], "f": 0, "t": 152, "d": [101,1085], "a": 1 }, + { "px": [128,544], "src": [96,0], "f": 0, "t": 6, "d": [101,1096], "a": 1 }, + { "px": [448,544], "src": [96,0], "f": 0, "t": 6, "d": [101,1116], "a": 1 }, + { "px": [112,560], "src": [96,0], "f": 0, "t": 6, "d": [101,1127], "a": 1 }, + { "px": [464,560], "src": [192,16], "f": 0, "t": 35, "d": [101,1149], "a": 1 }, + { "px": [128,576], "src": [192,16], "f": 0, "t": 35, "d": [101,1160], "a": 1 }, + { "px": [160,576], "src": [192,16], "f": 0, "t": 35, "d": [101,1162], "a": 1 }, + { "px": [192,576], "src": [192,16], "f": 0, "t": 35, "d": [101,1164], "a": 1 }, + { "px": [224,576], "src": [96,0], "f": 0, "t": 6, "d": [101,1166], "a": 1 }, + { "px": [256,576], "src": [192,16], "f": 0, "t": 35, "d": [101,1168], "a": 1 }, + { "px": [288,576], "src": [224,96], "f": 0, "t": 152, "d": [101,1170], "a": 1 }, + { "px": [320,576], "src": [224,96], "f": 0, "t": 152, "d": [101,1172], "a": 1 }, + { "px": [352,576], "src": [224,96], "f": 0, "t": 152, "d": [101,1174], "a": 1 }, + { "px": [384,576], "src": [224,96], "f": 0, "t": 152, "d": [101,1176], "a": 1 }, + { "px": [416,576], "src": [192,16], "f": 0, "t": 35, "d": [101,1178], "a": 1 }, + { "px": [448,576], "src": [192,16], "f": 0, "t": 35, "d": [101,1180], "a": 1 }, + { "px": [112,592], "src": [224,96], "f": 0, "t": 152, "d": [101,1191], "a": 1 }, + { "px": [144,592], "src": [192,16], "f": 0, "t": 35, "d": [101,1193], "a": 1 }, + { "px": [176,592], "src": [96,0], "f": 0, "t": 6, "d": [101,1195], "a": 1 }, + { "px": [208,592], "src": [96,0], "f": 0, "t": 6, "d": [101,1197], "a": 1 }, + { "px": [240,592], "src": [96,0], "f": 0, "t": 6, "d": [101,1199], "a": 1 }, + { "px": [272,592], "src": [96,0], "f": 0, "t": 6, "d": [101,1201], "a": 1 }, + { "px": [304,592], "src": [224,96], "f": 0, "t": 152, "d": [101,1203], "a": 1 }, + { "px": [336,592], "src": [96,0], "f": 0, "t": 6, "d": [101,1205], "a": 1 }, + { "px": [368,592], "src": [192,16], "f": 0, "t": 35, "d": [101,1207], "a": 1 }, + { "px": [400,592], "src": [192,16], "f": 0, "t": 35, "d": [101,1209], "a": 1 }, + { "px": [432,592], "src": [96,0], "f": 0, "t": 6, "d": [101,1211], "a": 1 }, + { "px": [464,592], "src": [192,16], "f": 0, "t": 35, "d": [101,1213], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [160,0], "src": [32,32], "f": 0, "t": 48, "d": [127,10], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [127,21], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [127,23], "a": 1 }, + { "px": [384,0], "src": [32,32], "f": 0, "t": 48, "d": [127,24], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [127,25], "a": 1 }, + { "px": [416,0], "src": [32,32], "f": 0, "t": 48, "d": [127,26], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [127,27], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [127,28], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [127,31], "a": 1 }, + { "px": [144,16], "src": [32,32], "f": 0, "t": 48, "d": [127,41], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [127,42], "a": 1 }, + { "px": [176,16], "src": [32,32], "f": 0, "t": 48, "d": [127,43], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,44], "a": 1 }, + { "px": [208,16], "src": [32,32], "f": 0, "t": 48, "d": [127,45], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [127,51], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [127,52], "a": 1 }, + { "px": [336,16], "src": [32,32], "f": 0, "t": 48, "d": [127,53], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [127,54], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [127,56], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [127,58], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [127,60], "a": 1 }, + { "px": [464,16], "src": [32,32], "f": 0, "t": 48, "d": [127,61], "a": 1 }, + { "px": [480,16], "src": [32,32], "f": 0, "t": 48, "d": [127,62], "a": 1 }, + { "px": [496,16], "src": [32,32], "f": 0, "t": 48, "d": [127,63], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [127,73], "a": 1 }, + { "px": [160,32], "src": [32,32], "f": 0, "t": 48, "d": [127,74], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [127,75], "a": 1 }, + { "px": [192,32], "src": [32,32], "f": 0, "t": 48, "d": [127,76], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [127,77], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,79], "a": 1 }, + { "px": [256,32], "src": [32,32], "f": 0, "t": 48, "d": [127,80], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [127,81], "a": 1 }, + { "px": [288,32], "src": [32,32], "f": 0, "t": 48, "d": [127,82], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [127,83], "a": 1 }, + { "px": [320,32], "src": [32,32], "f": 0, "t": 48, "d": [127,84], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [127,85], "a": 1 }, + { "px": [352,32], "src": [32,32], "f": 0, "t": 48, "d": [127,86], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [127,87], "a": 1 }, + { "px": [400,32], "src": [32,32], "f": 0, "t": 48, "d": [127,89], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [127,91], "a": 1 }, + { "px": [448,32], "src": [32,32], "f": 0, "t": 48, "d": [127,92], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [127,93], "a": 1 }, + { "px": [480,32], "src": [32,32], "f": 0, "t": 48, "d": [127,94], "a": 1 }, + { "px": [496,32], "src": [32,32], "f": 0, "t": 48, "d": [127,95], "a": 1 }, + { "px": [160,48], "src": [32,32], "f": 0, "t": 48, "d": [127,106], "a": 1 }, + { "px": [176,48], "src": [32,32], "f": 0, "t": 48, "d": [127,107], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [127,108], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [127,110], "a": 1 }, + { "px": [256,48], "src": [32,32], "f": 0, "t": 48, "d": [127,112], "a": 1 }, + { "px": [272,48], "src": [32,32], "f": 0, "t": 48, "d": [127,113], "a": 1 }, + { "px": [288,48], "src": [32,32], "f": 0, "t": 48, "d": [127,114], "a": 1 }, + { "px": [304,48], "src": [32,32], "f": 0, "t": 48, "d": [127,115], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [127,116], "a": 1 }, + { "px": [352,48], "src": [32,32], "f": 0, "t": 48, "d": [127,118], "a": 1 }, + { "px": [384,48], "src": [32,32], "f": 0, "t": 48, "d": [127,120], "a": 1 }, + { "px": [416,48], "src": [32,32], "f": 0, "t": 48, "d": [127,122], "a": 1 }, + { "px": [432,48], "src": [32,32], "f": 0, "t": 48, "d": [127,123], "a": 1 }, + { "px": [448,48], "src": [32,32], "f": 0, "t": 48, "d": [127,124], "a": 1 }, + { "px": [464,48], "src": [32,32], "f": 0, "t": 48, "d": [127,125], "a": 1 }, + { "px": [480,48], "src": [32,32], "f": 0, "t": 48, "d": [127,126], "a": 1 }, + { "px": [496,48], "src": [32,32], "f": 0, "t": 48, "d": [127,127], "a": 1 }, + { "px": [144,64], "src": [32,32], "f": 0, "t": 48, "d": [127,137], "a": 1 }, + { "px": [160,64], "src": [32,32], "f": 0, "t": 48, "d": [127,138], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [127,139], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [127,141], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [127,143], "a": 1 }, + { "px": [256,64], "src": [32,32], "f": 0, "t": 48, "d": [127,144], "a": 1 }, + { "px": [272,64], "src": [32,32], "f": 0, "t": 48, "d": [127,145], "a": 1 }, + { "px": [288,64], "src": [32,32], "f": 0, "t": 48, "d": [127,146], "a": 1 }, + { "px": [304,64], "src": [32,32], "f": 0, "t": 48, "d": [127,147], "a": 1 }, + { "px": [336,64], "src": [32,32], "f": 0, "t": 48, "d": [127,149], "a": 1 }, + { "px": [368,64], "src": [32,32], "f": 0, "t": 48, "d": [127,151], "a": 1 }, + { "px": [384,64], "src": [32,32], "f": 0, "t": 48, "d": [127,152], "a": 1 }, + { "px": [400,64], "src": [32,32], "f": 0, "t": 48, "d": [127,153], "a": 1 }, + { "px": [416,64], "src": [32,32], "f": 0, "t": 48, "d": [127,154], "a": 1 }, + { "px": [432,64], "src": [32,32], "f": 0, "t": 48, "d": [127,155], "a": 1 }, + { "px": [448,64], "src": [32,32], "f": 0, "t": 48, "d": [127,156], "a": 1 }, + { "px": [464,64], "src": [32,32], "f": 0, "t": 48, "d": [127,157], "a": 1 }, + { "px": [480,64], "src": [32,32], "f": 0, "t": 48, "d": [127,158], "a": 1 }, + { "px": [496,64], "src": [32,32], "f": 0, "t": 48, "d": [127,159], "a": 1 }, + { "px": [144,80], "src": [32,32], "f": 0, "t": 48, "d": [127,169], "a": 1 }, + { "px": [160,80], "src": [32,32], "f": 0, "t": 48, "d": [127,170], "a": 1 }, + { "px": [192,80], "src": [32,32], "f": 0, "t": 48, "d": [127,172], "a": 1 }, + { "px": [208,80], "src": [32,32], "f": 0, "t": 48, "d": [127,173], "a": 1 }, + { "px": [224,80], "src": [32,32], "f": 0, "t": 48, "d": [127,174], "a": 1 }, + { "px": [256,80], "src": [32,32], "f": 0, "t": 48, "d": [127,176], "a": 1 }, + { "px": [272,80], "src": [32,32], "f": 0, "t": 48, "d": [127,177], "a": 1 }, + { "px": [288,80], "src": [32,32], "f": 0, "t": 48, "d": [127,178], "a": 1 }, + { "px": [304,80], "src": [32,32], "f": 0, "t": 48, "d": [127,179], "a": 1 }, + { "px": [320,80], "src": [32,32], "f": 0, "t": 48, "d": [127,180], "a": 1 }, + { "px": [352,80], "src": [32,32], "f": 0, "t": 48, "d": [127,182], "a": 1 }, + { "px": [384,80], "src": [32,32], "f": 0, "t": 48, "d": [127,184], "a": 1 }, + { "px": [416,80], "src": [32,32], "f": 0, "t": 48, "d": [127,186], "a": 1 }, + { "px": [432,80], "src": [32,32], "f": 0, "t": 48, "d": [127,187], "a": 1 }, + { "px": [448,80], "src": [32,32], "f": 0, "t": 48, "d": [127,188], "a": 1 }, + { "px": [464,80], "src": [32,32], "f": 0, "t": 48, "d": [127,189], "a": 1 }, + { "px": [480,80], "src": [32,32], "f": 0, "t": 48, "d": [127,190], "a": 1 }, + { "px": [496,80], "src": [32,32], "f": 0, "t": 48, "d": [127,191], "a": 1 }, + { "px": [144,96], "src": [32,32], "f": 0, "t": 48, "d": [127,201], "a": 1 }, + { "px": [160,96], "src": [32,32], "f": 0, "t": 48, "d": [127,202], "a": 1 }, + { "px": [176,96], "src": [32,32], "f": 0, "t": 48, "d": [127,203], "a": 1 }, + { "px": [208,96], "src": [32,32], "f": 0, "t": 48, "d": [127,205], "a": 1 }, + { "px": [224,96], "src": [32,32], "f": 0, "t": 48, "d": [127,206], "a": 1 }, + { "px": [240,96], "src": [32,32], "f": 0, "t": 48, "d": [127,207], "a": 1 }, + { "px": [256,96], "src": [32,32], "f": 0, "t": 48, "d": [127,208], "a": 1 }, + { "px": [272,96], "src": [32,32], "f": 0, "t": 48, "d": [127,209], "a": 1 }, + { "px": [288,96], "src": [32,32], "f": 0, "t": 48, "d": [127,210], "a": 1 }, + { "px": [304,96], "src": [32,32], "f": 0, "t": 48, "d": [127,211], "a": 1 }, + { "px": [320,96], "src": [32,32], "f": 0, "t": 48, "d": [127,212], "a": 1 }, + { "px": [336,96], "src": [32,32], "f": 0, "t": 48, "d": [127,213], "a": 1 }, + { "px": [368,96], "src": [32,32], "f": 0, "t": 48, "d": [127,215], "a": 1 }, + { "px": [400,96], "src": [32,32], "f": 0, "t": 48, "d": [127,217], "a": 1 }, + { "px": [416,96], "src": [32,32], "f": 0, "t": 48, "d": [127,218], "a": 1 }, + { "px": [432,96], "src": [32,32], "f": 0, "t": 48, "d": [127,219], "a": 1 }, + { "px": [464,96], "src": [32,32], "f": 0, "t": 48, "d": [127,221], "a": 1 }, + { "px": [496,96], "src": [32,32], "f": 0, "t": 48, "d": [127,223], "a": 1 }, + { "px": [144,112], "src": [32,32], "f": 0, "t": 48, "d": [127,233], "a": 1 }, + { "px": [160,112], "src": [32,32], "f": 0, "t": 48, "d": [127,234], "a": 1 }, + { "px": [192,112], "src": [32,32], "f": 0, "t": 48, "d": [127,236], "a": 1 }, + { "px": [224,112], "src": [32,32], "f": 0, "t": 48, "d": [127,238], "a": 1 }, + { "px": [256,112], "src": [32,32], "f": 0, "t": 48, "d": [127,240], "a": 1 }, + { "px": [272,112], "src": [32,32], "f": 0, "t": 48, "d": [127,241], "a": 1 }, + { "px": [288,112], "src": [32,32], "f": 0, "t": 48, "d": [127,242], "a": 1 }, + { "px": [304,112], "src": [32,32], "f": 0, "t": 48, "d": [127,243], "a": 1 }, + { "px": [320,112], "src": [32,32], "f": 0, "t": 48, "d": [127,244], "a": 1 }, + { "px": [352,112], "src": [32,32], "f": 0, "t": 48, "d": [127,246], "a": 1 }, + { "px": [384,112], "src": [32,32], "f": 0, "t": 48, "d": [127,248], "a": 1 }, + { "px": [400,112], "src": [32,32], "f": 0, "t": 48, "d": [127,249], "a": 1 }, + { "px": [416,112], "src": [32,32], "f": 0, "t": 48, "d": [127,250], "a": 1 }, + { "px": [432,112], "src": [32,32], "f": 0, "t": 48, "d": [127,251], "a": 1 }, + { "px": [448,112], "src": [32,32], "f": 0, "t": 48, "d": [127,252], "a": 1 }, + { "px": [480,112], "src": [32,32], "f": 0, "t": 48, "d": [127,254], "a": 1 }, + { "px": [480,128], "src": [32,32], "f": 0, "t": 48, "d": [127,286], "a": 1 }, + { "px": [496,128], "src": [32,32], "f": 0, "t": 48, "d": [127,287], "a": 1 }, + { "px": [480,144], "src": [32,32], "f": 0, "t": 48, "d": [127,318], "a": 1 }, + { "px": [480,160], "src": [32,32], "f": 0, "t": 48, "d": [127,350], "a": 1 }, + { "px": [496,160], "src": [32,32], "f": 0, "t": 48, "d": [127,351], "a": 1 }, + { "px": [480,176], "src": [32,32], "f": 0, "t": 48, "d": [127,382], "a": 1 }, + { "px": [496,192], "src": [32,32], "f": 0, "t": 48, "d": [127,415], "a": 1 }, + { "px": [480,208], "src": [32,32], "f": 0, "t": 48, "d": [127,446], "a": 1 }, + { "px": [480,224], "src": [32,32], "f": 0, "t": 48, "d": [127,478], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [127,479], "a": 1 }, + { "px": [480,240], "src": [32,32], "f": 0, "t": 48, "d": [127,510], "a": 1 }, + { "px": [496,240], "src": [32,32], "f": 0, "t": 48, "d": [127,511], "a": 1 }, + { "px": [480,256], "src": [32,32], "f": 0, "t": 48, "d": [127,542], "a": 1 }, + { "px": [496,256], "src": [32,32], "f": 0, "t": 48, "d": [127,543], "a": 1 }, + { "px": [480,272], "src": [32,32], "f": 0, "t": 48, "d": [127,574], "a": 1 }, + { "px": [496,272], "src": [32,32], "f": 0, "t": 48, "d": [127,575], "a": 1 }, + { "px": [496,288], "src": [32,32], "f": 0, "t": 48, "d": [127,607], "a": 1 }, + { "px": [480,304], "src": [32,32], "f": 0, "t": 48, "d": [127,638], "a": 1 }, + { "px": [496,304], "src": [32,32], "f": 0, "t": 48, "d": [127,639], "a": 1 }, + { "px": [496,320], "src": [32,32], "f": 0, "t": 48, "d": [127,671], "a": 1 }, + { "px": [480,336], "src": [32,32], "f": 0, "t": 48, "d": [127,702], "a": 1 }, + { "px": [496,336], "src": [32,32], "f": 0, "t": 48, "d": [127,703], "a": 1 }, + { "px": [480,352], "src": [32,32], "f": 0, "t": 48, "d": [127,734], "a": 1 }, + { "px": [496,352], "src": [32,32], "f": 0, "t": 48, "d": [127,735], "a": 1 }, + { "px": [480,368], "src": [32,32], "f": 0, "t": 48, "d": [127,766], "a": 1 }, + { "px": [496,368], "src": [32,32], "f": 0, "t": 48, "d": [127,767], "a": 1 }, + { "px": [496,384], "src": [32,32], "f": 0, "t": 48, "d": [127,799], "a": 1 }, + { "px": [480,400], "src": [32,32], "f": 0, "t": 48, "d": [127,830], "a": 1 }, + { "px": [480,416], "src": [32,32], "f": 0, "t": 48, "d": [127,862], "a": 1 }, + { "px": [496,416], "src": [32,32], "f": 0, "t": 48, "d": [127,863], "a": 1 }, + { "px": [480,432], "src": [32,32], "f": 0, "t": 48, "d": [127,894], "a": 1 }, + { "px": [496,432], "src": [32,32], "f": 0, "t": 48, "d": [127,895], "a": 1 }, + { "px": [480,448], "src": [32,32], "f": 0, "t": 48, "d": [127,926], "a": 1 }, + { "px": [496,448], "src": [32,32], "f": 0, "t": 48, "d": [127,927], "a": 1 }, + { "px": [480,464], "src": [32,32], "f": 0, "t": 48, "d": [127,958], "a": 1 }, + { "px": [496,464], "src": [32,32], "f": 0, "t": 48, "d": [127,959], "a": 1 }, + { "px": [16,480], "src": [32,32], "f": 0, "t": 48, "d": [127,961], "a": 1 }, + { "px": [480,480], "src": [32,32], "f": 0, "t": 48, "d": [127,990], "a": 1 }, + { "px": [496,480], "src": [32,32], "f": 0, "t": 48, "d": [127,991], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,992], "a": 1 }, + { "px": [480,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1022], "a": 1 }, + { "px": [16,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1025], "a": 1 }, + { "px": [496,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1055], "a": 1 }, + { "px": [0,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1056], "a": 1 }, + { "px": [480,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1086], "a": 1 }, + { "px": [16,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1089], "a": 1 }, + { "px": [32,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1090], "a": 1 }, + { "px": [48,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1091], "a": 1 }, + { "px": [64,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1092], "a": 1 }, + { "px": [80,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1093], "a": 1 }, + { "px": [496,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1119], "a": 1 }, + { "px": [0,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1120], "a": 1 }, + { "px": [16,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1121], "a": 1 }, + { "px": [32,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1122], "a": 1 }, + { "px": [48,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1123], "a": 1 }, + { "px": [64,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1124], "a": 1 }, + { "px": [96,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1126], "a": 1 }, + { "px": [480,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1150], "a": 1 }, + { "px": [496,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1151], "a": 1 }, + { "px": [0,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1152], "a": 1 }, + { "px": [16,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1153], "a": 1 }, + { "px": [32,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1154], "a": 1 }, + { "px": [48,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1155], "a": 1 }, + { "px": [64,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1156], "a": 1 }, + { "px": [80,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1157], "a": 1 }, + { "px": [96,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1158], "a": 1 }, + { "px": [480,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1182], "a": 1 }, + { "px": [496,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1183], "a": 1 }, + { "px": [0,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1184], "a": 1 }, + { "px": [16,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1185], "a": 1 }, + { "px": [32,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1186], "a": 1 }, + { "px": [48,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1187], "a": 1 }, + { "px": [64,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1188], "a": 1 }, + { "px": [96,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1190], "a": 1 }, + { "px": [480,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1214], "a": 1 }, + { "px": [0,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1216], "a": 1 }, + { "px": [16,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1217], "a": 1 }, + { "px": [32,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1218], "a": 1 }, + { "px": [48,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1219], "a": 1 }, + { "px": [64,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1220], "a": 1 }, + { "px": [80,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1221], "a": 1 }, + { "px": [112,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1223], "a": 1 }, + { "px": [144,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1225], "a": 1 }, + { "px": [160,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1226], "a": 1 }, + { "px": [176,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1227], "a": 1 }, + { "px": [192,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1228], "a": 1 }, + { "px": [208,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1229], "a": 1 }, + { "px": [224,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1230], "a": 1 }, + { "px": [240,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1231], "a": 1 }, + { "px": [272,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1233], "a": 1 }, + { "px": [288,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1234], "a": 1 }, + { "px": [304,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1235], "a": 1 }, + { "px": [336,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1237], "a": 1 }, + { "px": [352,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1238], "a": 1 }, + { "px": [368,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1239], "a": 1 }, + { "px": [384,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1240], "a": 1 }, + { "px": [400,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1241], "a": 1 }, + { "px": [416,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1242], "a": 1 }, + { "px": [432,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1243], "a": 1 }, + { "px": [448,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1244], "a": 1 }, + { "px": [464,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1245], "a": 1 }, + { "px": [496,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1247], "a": 1 }, + { "px": [0,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1248], "a": 1 }, + { "px": [16,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1249], "a": 1 }, + { "px": [32,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1250], "a": 1 }, + { "px": [48,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1251], "a": 1 }, + { "px": [64,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1252], "a": 1 }, + { "px": [80,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1253], "a": 1 }, + { "px": [96,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1254], "a": 1 }, + { "px": [112,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1255], "a": 1 }, + { "px": [128,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1256], "a": 1 }, + { "px": [144,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1257], "a": 1 }, + { "px": [160,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1258], "a": 1 }, + { "px": [176,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1259], "a": 1 }, + { "px": [192,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1260], "a": 1 }, + { "px": [208,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1261], "a": 1 }, + { "px": [224,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1262], "a": 1 }, + { "px": [256,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1264], "a": 1 }, + { "px": [272,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1265], "a": 1 }, + { "px": [288,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1266], "a": 1 }, + { "px": [320,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1268], "a": 1 }, + { "px": [352,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1270], "a": 1 }, + { "px": [368,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1271], "a": 1 }, + { "px": [384,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1272], "a": 1 }, + { "px": [400,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1273], "a": 1 }, + { "px": [416,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1274], "a": 1 }, + { "px": [432,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1275], "a": 1 }, + { "px": [448,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1276], "a": 1 }, + { "px": [480,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1278], "a": 1 }, + { "px": [0,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1280], "a": 1 }, + { "px": [16,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1281], "a": 1 }, + { "px": [32,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1282], "a": 1 }, + { "px": [48,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1283], "a": 1 }, + { "px": [80,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1285], "a": 1 }, + { "px": [96,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1286], "a": 1 }, + { "px": [112,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1287], "a": 1 }, + { "px": [144,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1289], "a": 1 }, + { "px": [176,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1291], "a": 1 }, + { "px": [192,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1292], "a": 1 }, + { "px": [208,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1293], "a": 1 }, + { "px": [224,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1294], "a": 1 }, + { "px": [240,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1295], "a": 1 }, + { "px": [272,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1297], "a": 1 }, + { "px": [304,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1299], "a": 1 }, + { "px": [336,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1301], "a": 1 }, + { "px": [352,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1302], "a": 1 }, + { "px": [368,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1303], "a": 1 }, + { "px": [384,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1304], "a": 1 }, + { "px": [400,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1305], "a": 1 }, + { "px": [416,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1306], "a": 1 }, + { "px": [432,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1307], "a": 1 }, + { "px": [448,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1308], "a": 1 }, + { "px": [464,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1309], "a": 1 }, + { "px": [496,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1311], "a": 1 }, + { "px": [0,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1312], "a": 1 }, + { "px": [16,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1313], "a": 1 }, + { "px": [32,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1314], "a": 1 }, + { "px": [48,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1315], "a": 1 }, + { "px": [64,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1316], "a": 1 }, + { "px": [80,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1317], "a": 1 }, + { "px": [96,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1318], "a": 1 }, + { "px": [112,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1319], "a": 1 }, + { "px": [128,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1320], "a": 1 }, + { "px": [144,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1321], "a": 1 }, + { "px": [160,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1322], "a": 1 }, + { "px": [176,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1323], "a": 1 }, + { "px": [192,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1324], "a": 1 }, + { "px": [208,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1325], "a": 1 }, + { "px": [224,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1326], "a": 1 }, + { "px": [240,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1327], "a": 1 }, + { "px": [256,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1328], "a": 1 }, + { "px": [272,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1329], "a": 1 }, + { "px": [288,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1330], "a": 1 }, + { "px": [304,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1331], "a": 1 }, + { "px": [320,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1332], "a": 1 }, + { "px": [336,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1333], "a": 1 }, + { "px": [352,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1334], "a": 1 }, + { "px": [368,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1335], "a": 1 }, + { "px": [384,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1336], "a": 1 }, + { "px": [416,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1338], "a": 1 }, + { "px": [432,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1339], "a": 1 }, + { "px": [448,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1340], "a": 1 }, + { "px": [464,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1341], "a": 1 }, + { "px": [480,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1342], "a": 1 }, + { "px": [496,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1343], "a": 1 }, + { "px": [0,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1344], "a": 1 }, + { "px": [16,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1345], "a": 1 }, + { "px": [32,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1346], "a": 1 }, + { "px": [48,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1347], "a": 1 }, + { "px": [64,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1348], "a": 1 }, + { "px": [80,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1349], "a": 1 }, + { "px": [96,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1350], "a": 1 }, + { "px": [112,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1351], "a": 1 }, + { "px": [128,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1352], "a": 1 }, + { "px": [144,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1353], "a": 1 }, + { "px": [176,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1355], "a": 1 }, + { "px": [192,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1356], "a": 1 }, + { "px": [208,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1357], "a": 1 }, + { "px": [224,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1358], "a": 1 }, + { "px": [240,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1359], "a": 1 }, + { "px": [256,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1360], "a": 1 }, + { "px": [272,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1361], "a": 1 }, + { "px": [288,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1362], "a": 1 }, + { "px": [304,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1363], "a": 1 }, + { "px": [320,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1364], "a": 1 }, + { "px": [336,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1365], "a": 1 }, + { "px": [368,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1367], "a": 1 }, + { "px": [384,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1368], "a": 1 }, + { "px": [400,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1369], "a": 1 }, + { "px": [432,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1371], "a": 1 }, + { "px": [448,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1372], "a": 1 }, + { "px": [464,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1373], "a": 1 }, + { "px": [480,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1374], "a": 1 }, + { "px": [496,672], "src": [32,32], "f": 0, "t": 48, "d": [127,1375], "a": 1 }, + { "px": [0,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1376], "a": 1 }, + { "px": [16,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1377], "a": 1 }, + { "px": [32,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1378], "a": 1 }, + { "px": [48,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1379], "a": 1 }, + { "px": [64,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1380], "a": 1 }, + { "px": [80,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1381], "a": 1 }, + { "px": [96,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1382], "a": 1 }, + { "px": [112,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1383], "a": 1 }, + { "px": [128,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1384], "a": 1 }, + { "px": [160,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1386], "a": 1 }, + { "px": [176,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1387], "a": 1 }, + { "px": [192,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1388], "a": 1 }, + { "px": [224,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1390], "a": 1 }, + { "px": [256,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1392], "a": 1 }, + { "px": [272,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1393], "a": 1 }, + { "px": [288,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1394], "a": 1 }, + { "px": [304,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1395], "a": 1 }, + { "px": [320,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1396], "a": 1 }, + { "px": [336,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1397], "a": 1 }, + { "px": [352,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1398], "a": 1 }, + { "px": [384,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1400], "a": 1 }, + { "px": [416,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1402], "a": 1 }, + { "px": [432,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1403], "a": 1 }, + { "px": [448,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1404], "a": 1 }, + { "px": [464,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1405], "a": 1 }, + { "px": [480,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1406], "a": 1 }, + { "px": [496,688], "src": [32,32], "f": 0, "t": 48, "d": [127,1407], "a": 1 }, + { "px": [16,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1409], "a": 1 }, + { "px": [32,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1410], "a": 1 }, + { "px": [48,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1411], "a": 1 }, + { "px": [64,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1412], "a": 1 }, + { "px": [80,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1413], "a": 1 }, + { "px": [96,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1414], "a": 1 }, + { "px": [112,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1415], "a": 1 }, + { "px": [128,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1416], "a": 1 }, + { "px": [144,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1417], "a": 1 }, + { "px": [176,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1419], "a": 1 }, + { "px": [192,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1420], "a": 1 }, + { "px": [208,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1421], "a": 1 }, + { "px": [240,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1423], "a": 1 }, + { "px": [256,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1424], "a": 1 }, + { "px": [272,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1425], "a": 1 }, + { "px": [288,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1426], "a": 1 }, + { "px": [304,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1427], "a": 1 }, + { "px": [320,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1428], "a": 1 }, + { "px": [336,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1429], "a": 1 }, + { "px": [368,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1431], "a": 1 }, + { "px": [384,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1432], "a": 1 }, + { "px": [400,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1433], "a": 1 }, + { "px": [416,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1434], "a": 1 }, + { "px": [432,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1435], "a": 1 }, + { "px": [448,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1436], "a": 1 }, + { "px": [464,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1437], "a": 1 }, + { "px": [480,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1438], "a": 1 }, + { "px": [496,704], "src": [32,32], "f": 0, "t": 48, "d": [127,1439], "a": 1 }, + { "px": [0,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1440], "a": 1 }, + { "px": [16,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1441], "a": 1 }, + { "px": [32,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1442], "a": 1 }, + { "px": [64,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1444], "a": 1 }, + { "px": [96,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1446], "a": 1 }, + { "px": [112,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1447], "a": 1 }, + { "px": [128,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1448], "a": 1 }, + { "px": [160,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1450], "a": 1 }, + { "px": [192,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1452], "a": 1 }, + { "px": [224,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1454], "a": 1 }, + { "px": [240,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1455], "a": 1 }, + { "px": [256,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1456], "a": 1 }, + { "px": [272,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1457], "a": 1 }, + { "px": [288,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1458], "a": 1 }, + { "px": [304,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1459], "a": 1 }, + { "px": [320,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1460], "a": 1 }, + { "px": [336,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1461], "a": 1 }, + { "px": [352,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1462], "a": 1 }, + { "px": [368,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1463], "a": 1 }, + { "px": [384,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1464], "a": 1 }, + { "px": [416,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1466], "a": 1 }, + { "px": [432,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1467], "a": 1 }, + { "px": [448,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1468], "a": 1 }, + { "px": [480,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1470], "a": 1 }, + { "px": [496,720], "src": [32,32], "f": 0, "t": 48, "d": [127,1471], "a": 1 }, + { "px": [16,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1473], "a": 1 }, + { "px": [48,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1475], "a": 1 }, + { "px": [64,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1476], "a": 1 }, + { "px": [80,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1477], "a": 1 }, + { "px": [96,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1478], "a": 1 }, + { "px": [112,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1479], "a": 1 }, + { "px": [144,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1481], "a": 1 }, + { "px": [160,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1482], "a": 1 }, + { "px": [176,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1483], "a": 1 }, + { "px": [208,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1485], "a": 1 }, + { "px": [240,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1487], "a": 1 }, + { "px": [256,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1488], "a": 1 }, + { "px": [272,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1489], "a": 1 }, + { "px": [288,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1490], "a": 1 }, + { "px": [304,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1491], "a": 1 }, + { "px": [320,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1492], "a": 1 }, + { "px": [336,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1493], "a": 1 }, + { "px": [368,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1495], "a": 1 }, + { "px": [384,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1496], "a": 1 }, + { "px": [400,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1497], "a": 1 }, + { "px": [416,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1498], "a": 1 }, + { "px": [432,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1499], "a": 1 }, + { "px": [448,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1500], "a": 1 }, + { "px": [464,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1501], "a": 1 }, + { "px": [496,736], "src": [32,32], "f": 0, "t": 48, "d": [127,1503], "a": 1 }, + { "px": [0,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1504], "a": 1 }, + { "px": [32,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1506], "a": 1 }, + { "px": [64,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1508], "a": 1 }, + { "px": [80,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1509], "a": 1 }, + { "px": [96,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1510], "a": 1 }, + { "px": [112,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1511], "a": 1 }, + { "px": [128,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1512], "a": 1 }, + { "px": [160,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1514], "a": 1 }, + { "px": [176,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1515], "a": 1 }, + { "px": [192,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1516], "a": 1 }, + { "px": [224,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1518], "a": 1 }, + { "px": [240,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1519], "a": 1 }, + { "px": [256,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1520], "a": 1 }, + { "px": [272,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1521], "a": 1 }, + { "px": [288,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1522], "a": 1 }, + { "px": [304,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1523], "a": 1 }, + { "px": [320,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1524], "a": 1 }, + { "px": [336,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1525], "a": 1 }, + { "px": [352,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1526], "a": 1 }, + { "px": [384,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1528], "a": 1 }, + { "px": [400,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1529], "a": 1 }, + { "px": [416,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1530], "a": 1 }, + { "px": [432,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1531], "a": 1 }, + { "px": [448,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1532], "a": 1 }, + { "px": [480,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1534], "a": 1 }, + { "px": [496,752], "src": [32,32], "f": 0, "t": 48, "d": [127,1535], "a": 1 }, + { "px": [192,0], "src": [96,96], "f": 0, "t": 144, "d": [126,12], "a": 1 }, + { "px": [256,0], "src": [96,96], "f": 0, "t": 144, "d": [126,16], "a": 1 }, + { "px": [320,0], "src": [96,96], "f": 0, "t": 144, "d": [126,20], "a": 1 }, + { "px": [352,0], "src": [64,96], "f": 0, "t": 142, "d": [126,22], "a": 1 }, + { "px": [480,0], "src": [96,96], "f": 0, "t": 144, "d": [126,30], "a": 1 }, + { "px": [240,16], "src": [96,96], "f": 0, "t": 144, "d": [126,47], "a": 1 }, + { "px": [272,16], "src": [64,96], "f": 0, "t": 142, "d": [126,49], "a": 1 }, + { "px": [368,16], "src": [64,96], "f": 0, "t": 142, "d": [126,55], "a": 1 }, + { "px": [400,16], "src": [64,96], "f": 0, "t": 142, "d": [126,57], "a": 1 }, + { "px": [432,16], "src": [96,96], "f": 0, "t": 144, "d": [126,59], "a": 1 }, + { "px": [224,32], "src": [96,96], "f": 0, "t": 144, "d": [126,78], "a": 1 }, + { "px": [384,32], "src": [96,96], "f": 0, "t": 144, "d": [126,88], "a": 1 }, + { "px": [416,32], "src": [64,96], "f": 0, "t": 142, "d": [126,90], "a": 1 }, + { "px": [144,48], "src": [64,96], "f": 0, "t": 142, "d": [126,105], "a": 1 }, + { "px": [208,48], "src": [64,96], "f": 0, "t": 142, "d": [126,109], "a": 1 }, + { "px": [240,48], "src": [96,96], "f": 0, "t": 144, "d": [126,111], "a": 1 }, + { "px": [336,48], "src": [64,96], "f": 0, "t": 142, "d": [126,117], "a": 1 }, + { "px": [368,48], "src": [96,96], "f": 0, "t": 144, "d": [126,119], "a": 1 }, + { "px": [400,48], "src": [96,96], "f": 0, "t": 144, "d": [126,121], "a": 1 }, + { "px": [192,64], "src": [96,96], "f": 0, "t": 144, "d": [126,140], "a": 1 }, + { "px": [224,64], "src": [64,96], "f": 0, "t": 142, "d": [126,142], "a": 1 }, + { "px": [320,64], "src": [96,96], "f": 0, "t": 144, "d": [126,148], "a": 1 }, + { "px": [352,64], "src": [64,96], "f": 0, "t": 142, "d": [126,150], "a": 1 }, + { "px": [176,80], "src": [96,96], "f": 0, "t": 144, "d": [126,171], "a": 1 }, + { "px": [240,80], "src": [96,96], "f": 0, "t": 144, "d": [126,175], "a": 1 }, + { "px": [336,80], "src": [64,96], "f": 0, "t": 142, "d": [126,181], "a": 1 }, + { "px": [368,80], "src": [64,96], "f": 0, "t": 142, "d": [126,183], "a": 1 }, + { "px": [400,80], "src": [64,96], "f": 0, "t": 142, "d": [126,185], "a": 1 }, + { "px": [192,96], "src": [96,96], "f": 0, "t": 144, "d": [126,204], "a": 1 }, + { "px": [352,96], "src": [64,96], "f": 0, "t": 142, "d": [126,214], "a": 1 }, + { "px": [384,96], "src": [64,96], "f": 0, "t": 142, "d": [126,216], "a": 1 }, + { "px": [448,96], "src": [64,96], "f": 0, "t": 142, "d": [126,220], "a": 1 }, + { "px": [480,96], "src": [96,96], "f": 0, "t": 144, "d": [126,222], "a": 1 }, + { "px": [176,112], "src": [96,96], "f": 0, "t": 144, "d": [126,235], "a": 1 }, + { "px": [208,112], "src": [64,96], "f": 0, "t": 142, "d": [126,237], "a": 1 }, + { "px": [240,112], "src": [64,96], "f": 0, "t": 142, "d": [126,239], "a": 1 }, + { "px": [336,112], "src": [64,96], "f": 0, "t": 142, "d": [126,245], "a": 1 }, + { "px": [368,112], "src": [64,96], "f": 0, "t": 142, "d": [126,247], "a": 1 }, + { "px": [464,112], "src": [64,96], "f": 0, "t": 142, "d": [126,253], "a": 1 }, + { "px": [496,112], "src": [96,96], "f": 0, "t": 144, "d": [126,255], "a": 1 }, + { "px": [496,144], "src": [64,96], "f": 0, "t": 142, "d": [126,319], "a": 1 }, + { "px": [496,176], "src": [96,96], "f": 0, "t": 144, "d": [126,383], "a": 1 }, + { "px": [480,192], "src": [96,96], "f": 0, "t": 144, "d": [126,414], "a": 1 }, + { "px": [496,208], "src": [64,96], "f": 0, "t": 142, "d": [126,447], "a": 1 }, + { "px": [480,288], "src": [96,96], "f": 0, "t": 144, "d": [126,606], "a": 1 }, + { "px": [480,320], "src": [96,96], "f": 0, "t": 144, "d": [126,670], "a": 1 }, + { "px": [480,384], "src": [96,96], "f": 0, "t": 144, "d": [126,798], "a": 1 }, + { "px": [496,400], "src": [96,96], "f": 0, "t": 144, "d": [126,831], "a": 1 }, + { "px": [0,480], "src": [64,96], "f": 0, "t": 142, "d": [126,960], "a": 1 }, + { "px": [16,496], "src": [64,96], "f": 0, "t": 142, "d": [126,993], "a": 1 }, + { "px": [496,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1023], "a": 1 }, + { "px": [0,512], "src": [64,96], "f": 0, "t": 142, "d": [126,1024], "a": 1 }, + { "px": [480,512], "src": [64,96], "f": 0, "t": 142, "d": [126,1054], "a": 1 }, + { "px": [16,528], "src": [96,96], "f": 0, "t": 144, "d": [126,1057], "a": 1 }, + { "px": [496,528], "src": [96,96], "f": 0, "t": 144, "d": [126,1087], "a": 1 }, + { "px": [0,544], "src": [64,96], "f": 0, "t": 142, "d": [126,1088], "a": 1 }, + { "px": [96,544], "src": [64,96], "f": 0, "t": 142, "d": [126,1094], "a": 1 }, + { "px": [480,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1118], "a": 1 }, + { "px": [80,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1125], "a": 1 }, + { "px": [80,592], "src": [96,96], "f": 0, "t": 144, "d": [126,1189], "a": 1 }, + { "px": [496,592], "src": [64,96], "f": 0, "t": 142, "d": [126,1215], "a": 1 }, + { "px": [96,608], "src": [96,96], "f": 0, "t": 144, "d": [126,1222], "a": 1 }, + { "px": [128,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1224], "a": 1 }, + { "px": [256,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1232], "a": 1 }, + { "px": [320,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1236], "a": 1 }, + { "px": [480,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1246], "a": 1 }, + { "px": [240,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1263], "a": 1 }, + { "px": [304,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1267], "a": 1 }, + { "px": [336,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1269], "a": 1 }, + { "px": [464,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1277], "a": 1 }, + { "px": [496,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1279], "a": 1 }, + { "px": [64,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1284], "a": 1 }, + { "px": [128,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1288], "a": 1 }, + { "px": [160,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1290], "a": 1 }, + { "px": [256,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1296], "a": 1 }, + { "px": [288,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1298], "a": 1 }, + { "px": [320,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1300], "a": 1 }, + { "px": [480,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1310], "a": 1 }, + { "px": [400,656], "src": [96,96], "f": 0, "t": 144, "d": [126,1337], "a": 1 }, + { "px": [160,672], "src": [64,96], "f": 0, "t": 142, "d": [126,1354], "a": 1 }, + { "px": [352,672], "src": [64,96], "f": 0, "t": 142, "d": [126,1366], "a": 1 }, + { "px": [416,672], "src": [64,96], "f": 0, "t": 142, "d": [126,1370], "a": 1 }, + { "px": [144,688], "src": [96,96], "f": 0, "t": 144, "d": [126,1385], "a": 1 }, + { "px": [208,688], "src": [96,96], "f": 0, "t": 144, "d": [126,1389], "a": 1 }, + { "px": [240,688], "src": [96,96], "f": 0, "t": 144, "d": [126,1391], "a": 1 }, + { "px": [368,688], "src": [96,96], "f": 0, "t": 144, "d": [126,1399], "a": 1 }, + { "px": [400,688], "src": [96,96], "f": 0, "t": 144, "d": [126,1401], "a": 1 }, + { "px": [0,704], "src": [64,96], "f": 0, "t": 142, "d": [126,1408], "a": 1 }, + { "px": [160,704], "src": [64,96], "f": 0, "t": 142, "d": [126,1418], "a": 1 }, + { "px": [224,704], "src": [96,96], "f": 0, "t": 144, "d": [126,1422], "a": 1 }, + { "px": [352,704], "src": [96,96], "f": 0, "t": 144, "d": [126,1430], "a": 1 }, + { "px": [48,720], "src": [64,96], "f": 0, "t": 142, "d": [126,1443], "a": 1 }, + { "px": [80,720], "src": [64,96], "f": 0, "t": 142, "d": [126,1445], "a": 1 }, + { "px": [144,720], "src": [96,96], "f": 0, "t": 144, "d": [126,1449], "a": 1 }, + { "px": [176,720], "src": [64,96], "f": 0, "t": 142, "d": [126,1451], "a": 1 }, + { "px": [208,720], "src": [96,96], "f": 0, "t": 144, "d": [126,1453], "a": 1 }, + { "px": [400,720], "src": [96,96], "f": 0, "t": 144, "d": [126,1465], "a": 1 }, + { "px": [464,720], "src": [96,96], "f": 0, "t": 144, "d": [126,1469], "a": 1 }, + { "px": [0,736], "src": [96,96], "f": 0, "t": 144, "d": [126,1472], "a": 1 }, + { "px": [32,736], "src": [96,96], "f": 0, "t": 144, "d": [126,1474], "a": 1 }, + { "px": [128,736], "src": [96,96], "f": 0, "t": 144, "d": [126,1480], "a": 1 }, + { "px": [192,736], "src": [64,96], "f": 0, "t": 142, "d": [126,1484], "a": 1 }, + { "px": [224,736], "src": [96,96], "f": 0, "t": 144, "d": [126,1486], "a": 1 }, + { "px": [352,736], "src": [96,96], "f": 0, "t": 144, "d": [126,1494], "a": 1 }, + { "px": [480,736], "src": [64,96], "f": 0, "t": 142, "d": [126,1502], "a": 1 }, + { "px": [16,752], "src": [96,96], "f": 0, "t": 144, "d": [126,1505], "a": 1 }, + { "px": [48,752], "src": [96,96], "f": 0, "t": 144, "d": [126,1507], "a": 1 }, + { "px": [144,752], "src": [64,96], "f": 0, "t": 142, "d": [126,1513], "a": 1 }, + { "px": [208,752], "src": [64,96], "f": 0, "t": 142, "d": [126,1517], "a": 1 }, + { "px": [368,752], "src": [96,96], "f": 0, "t": 144, "d": [126,1527], "a": 1 }, + { "px": [464,752], "src": [96,96], "f": 0, "t": 144, "d": [126,1533], "a": 1 }, + { "px": [0,32], "src": [256,160], "f": 0, "t": 246, "d": [12,64], "a": 1 }, + { "px": [16,32], "src": [256,160], "f": 0, "t": 246, "d": [12,65], "a": 1 }, + { "px": [32,32], "src": [256,160], "f": 0, "t": 246, "d": [12,66], "a": 1 }, + { "px": [48,160], "src": [256,160], "f": 0, "t": 246, "d": [12,323], "a": 1 }, + { "px": [64,160], "src": [256,160], "f": 0, "t": 246, "d": [12,324], "a": 1 }, + { "px": [80,160], "src": [256,160], "f": 0, "t": 246, "d": [12,325], "a": 1 }, + { "px": [96,160], "src": [256,160], "f": 0, "t": 246, "d": [12,326], "a": 1 }, + { "px": [112,160], "src": [256,160], "f": 0, "t": 246, "d": [12,327], "a": 1 }, + { "px": [128,160], "src": [256,160], "f": 0, "t": 246, "d": [12,328], "a": 1 }, + { "px": [144,160], "src": [256,160], "f": 0, "t": 246, "d": [12,329], "a": 1 }, + { "px": [160,160], "src": [256,160], "f": 0, "t": 246, "d": [12,330], "a": 1 }, + { "px": [176,160], "src": [256,160], "f": 0, "t": 246, "d": [12,331], "a": 1 }, + { "px": [224,160], "src": [256,160], "f": 0, "t": 246, "d": [12,334], "a": 1 }, + { "px": [240,160], "src": [256,160], "f": 0, "t": 246, "d": [12,335], "a": 1 }, + { "px": [256,160], "src": [256,160], "f": 0, "t": 246, "d": [12,336], "a": 1 }, + { "px": [272,160], "src": [256,160], "f": 0, "t": 246, "d": [12,337], "a": 1 }, + { "px": [288,160], "src": [256,160], "f": 0, "t": 246, "d": [12,338], "a": 1 }, + { "px": [320,160], "src": [256,160], "f": 0, "t": 246, "d": [12,340], "a": 1 }, + { "px": [336,160], "src": [256,160], "f": 0, "t": 246, "d": [12,341], "a": 1 }, + { "px": [368,160], "src": [256,160], "f": 0, "t": 246, "d": [12,343], "a": 1 }, + { "px": [0,320], "src": [256,160], "f": 0, "t": 246, "d": [12,640], "a": 1 }, + { "px": [16,320], "src": [256,160], "f": 0, "t": 246, "d": [12,641], "a": 1 }, + { "px": [0,80], "src": [256,96], "f": 0, "t": 154, "d": [9,160], "a": 1 }, + { "px": [16,80], "src": [256,96], "f": 0, "t": 154, "d": [9,161], "a": 1 }, + { "px": [32,80], "src": [256,96], "f": 0, "t": 154, "d": [9,162], "a": 1 }, + { "px": [48,80], "src": [256,96], "f": 0, "t": 154, "d": [9,163], "a": 1 }, + { "px": [64,80], "src": [256,96], "f": 0, "t": 154, "d": [9,164], "a": 1 }, + { "px": [80,80], "src": [256,96], "f": 0, "t": 154, "d": [9,165], "a": 1 }, + { "px": [384,336], "src": [256,96], "f": 0, "t": 154, "d": [9,696], "a": 1 }, + { "px": [400,336], "src": [256,96], "f": 0, "t": 154, "d": [9,697], "a": 1 }, + { "px": [416,336], "src": [256,96], "f": 0, "t": 154, "d": [9,698], "a": 1 }, + { "px": [0,384], "src": [256,96], "f": 0, "t": 154, "d": [9,768], "a": 1 }, + { "px": [16,384], "src": [256,96], "f": 0, "t": 154, "d": [9,769], "a": 1 }, + { "px": [48,432], "src": [256,96], "f": 0, "t": 154, "d": [9,867], "a": 1 }, + { "px": [176,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1131], "a": 1 }, + { "px": [192,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1132], "a": 1 }, + { "px": [208,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1133], "a": 1 }, + { "px": [224,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1134], "a": 1 }, + { "px": [240,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1135], "a": 1 }, + { "px": [256,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1136], "a": 1 }, + { "px": [272,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1137], "a": 1 }, + { "px": [288,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1138], "a": 1 }, + { "px": [304,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1139], "a": 1 }, + { "px": [320,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1140], "a": 1 }, + { "px": [336,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1141], "a": 1 }, + { "px": [400,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1145], "a": 1 }, + { "px": [416,560], "src": [256,96], "f": 0, "t": 154, "d": [9,1146], "a": 1 }, + { "px": [64,0], "src": [224,128], "f": 1, "t": 198, "d": [10,4], "a": 1 }, + { "px": [96,0], "src": [224,128], "f": 0, "t": 198, "d": [10,6], "a": 1 }, + { "px": [64,16], "src": [224,128], "f": 1, "t": 198, "d": [10,36], "a": 1 }, + { "px": [96,16], "src": [224,128], "f": 0, "t": 198, "d": [10,38], "a": 1 }, + { "px": [96,32], "src": [224,128], "f": 0, "t": 198, "d": [10,70], "a": 1 }, + { "px": [96,48], "src": [224,128], "f": 0, "t": 198, "d": [10,102], "a": 1 }, + { "px": [96,64], "src": [224,128], "f": 0, "t": 198, "d": [10,134], "a": 1 }, + { "px": [32,176], "src": [224,128], "f": 1, "t": 198, "d": [10,354], "a": 1 }, + { "px": [432,176], "src": [224,128], "f": 0, "t": 198, "d": [10,379], "a": 1 }, + { "px": [32,192], "src": [224,128], "f": 1, "t": 198, "d": [10,386], "a": 1 }, + { "px": [432,192], "src": [224,128], "f": 0, "t": 198, "d": [10,411], "a": 1 }, + { "px": [32,208], "src": [224,128], "f": 1, "t": 198, "d": [10,418], "a": 1 }, + { "px": [432,208], "src": [224,128], "f": 0, "t": 198, "d": [10,443], "a": 1 }, + { "px": [32,224], "src": [224,128], "f": 1, "t": 198, "d": [10,450], "a": 1 }, + { "px": [432,224], "src": [224,128], "f": 0, "t": 198, "d": [10,475], "a": 1 }, + { "px": [32,240], "src": [224,128], "f": 1, "t": 198, "d": [10,482], "a": 1 }, + { "px": [432,240], "src": [224,128], "f": 0, "t": 198, "d": [10,507], "a": 1 }, + { "px": [32,256], "src": [224,128], "f": 1, "t": 198, "d": [10,514], "a": 1 }, + { "px": [432,256], "src": [224,128], "f": 0, "t": 198, "d": [10,539], "a": 1 }, + { "px": [32,272], "src": [224,128], "f": 1, "t": 198, "d": [10,546], "a": 1 }, + { "px": [432,272], "src": [224,128], "f": 0, "t": 198, "d": [10,571], "a": 1 }, + { "px": [32,288], "src": [224,128], "f": 1, "t": 198, "d": [10,578], "a": 1 }, + { "px": [432,288], "src": [224,128], "f": 0, "t": 198, "d": [10,603], "a": 1 }, + { "px": [32,304], "src": [224,128], "f": 1, "t": 198, "d": [10,610], "a": 1 }, + { "px": [432,304], "src": [224,128], "f": 0, "t": 198, "d": [10,635], "a": 1 }, + { "px": [432,320], "src": [224,128], "f": 0, "t": 198, "d": [10,667], "a": 1 }, + { "px": [432,352], "src": [224,128], "f": 0, "t": 198, "d": [10,731], "a": 1 }, + { "px": [432,368], "src": [224,128], "f": 0, "t": 198, "d": [10,763], "a": 1 }, + { "px": [432,384], "src": [224,128], "f": 0, "t": 198, "d": [10,795], "a": 1 }, + { "px": [32,400], "src": [224,128], "f": 1, "t": 198, "d": [10,802], "a": 1 }, + { "px": [432,400], "src": [224,128], "f": 0, "t": 198, "d": [10,827], "a": 1 }, + { "px": [32,416], "src": [224,128], "f": 1, "t": 198, "d": [10,834], "a": 1 }, + { "px": [432,416], "src": [224,128], "f": 0, "t": 198, "d": [10,859], "a": 1 }, + { "px": [432,432], "src": [224,128], "f": 0, "t": 198, "d": [10,891], "a": 1 }, + { "px": [64,448], "src": [224,128], "f": 1, "t": 198, "d": [10,900], "a": 1 }, + { "px": [432,448], "src": [224,128], "f": 0, "t": 198, "d": [10,923], "a": 1 }, + { "px": [64,464], "src": [224,128], "f": 1, "t": 198, "d": [10,932], "a": 1 }, + { "px": [432,464], "src": [224,128], "f": 0, "t": 198, "d": [10,955], "a": 1 }, + { "px": [64,480], "src": [224,128], "f": 1, "t": 198, "d": [10,964], "a": 1 }, + { "px": [432,480], "src": [224,128], "f": 0, "t": 198, "d": [10,987], "a": 1 }, + { "px": [432,496], "src": [224,128], "f": 0, "t": 198, "d": [10,1019], "a": 1 }, + { "px": [144,512], "src": [224,128], "f": 1, "t": 198, "d": [10,1033], "a": 1 }, + { "px": [432,512], "src": [224,128], "f": 0, "t": 198, "d": [10,1051], "a": 1 }, + { "px": [144,528], "src": [224,128], "f": 1, "t": 198, "d": [10,1065], "a": 1 }, + { "px": [432,528], "src": [224,128], "f": 0, "t": 198, "d": [10,1083], "a": 1 }, + { "px": [144,544], "src": [224,128], "f": 1, "t": 198, "d": [10,1097], "a": 1 }, + { "px": [432,544], "src": [224,128], "f": 0, "t": 198, "d": [10,1115], "a": 1 }, + { "px": [32,320], "src": [224,96], "f": 3, "t": 152, "d": [11,642], "a": 1 }, + { "px": [368,336], "src": [224,96], "f": 0, "t": 152, "d": [11,695], "a": 1 }, + { "px": [32,384], "src": [224,96], "f": 1, "t": 152, "d": [11,770], "a": 1 }, + { "px": [64,432], "src": [224,96], "f": 1, "t": 152, "d": [11,868], "a": 1 }, + { "px": [96,80], "src": [224,96], "f": 3, "t": 152, "d": [14,166], "a": 1 }, + { "px": [32,160], "src": [224,96], "f": 0, "t": 152, "d": [14,322], "a": 1 }, + { "px": [432,160], "src": [224,96], "f": 1, "t": 152, "d": [14,347], "a": 1 }, + { "px": [432,336], "src": [224,96], "f": 1, "t": 152, "d": [14,699], "a": 1 }, + { "px": [32,432], "src": [224,96], "f": 2, "t": 152, "d": [14,866], "a": 1 }, + { "px": [64,496], "src": [224,96], "f": 2, "t": 152, "d": [14,996], "a": 1 }, + { "px": [144,560], "src": [224,96], "f": 2, "t": 152, "d": [14,1129], "a": 1 }, + { "px": [432,560], "src": [224,96], "f": 3, "t": 152, "d": [14,1147], "a": 1 }, + { "px": [48,32], "src": [160,192], "f": 0, "t": 286, "d": [78,67], "a": 1 }, + { "px": [64,32], "src": [160,192], "f": 0, "t": 286, "d": [78,68], "a": 1 }, + { "px": [192,160], "src": [160,192], "f": 0, "t": 286, "d": [78,332], "a": 1 }, + { "px": [208,160], "src": [192,192], "f": 0, "t": 288, "d": [78,333], "a": 1 }, + { "px": [304,160], "src": [160,192], "f": 0, "t": 286, "d": [78,339], "a": 1 }, + { "px": [352,160], "src": [160,192], "f": 0, "t": 286, "d": [78,342], "a": 1 }, + { "px": [384,160], "src": [160,192], "f": 0, "t": 286, "d": [78,344], "a": 1 }, + { "px": [400,160], "src": [192,192], "f": 0, "t": 288, "d": [78,345], "a": 1 }, + { "px": [416,160], "src": [192,192], "f": 0, "t": 288, "d": [78,346], "a": 1 }, + { "px": [80,496], "src": [32,0], "f": 0, "t": 2, "d": [80,997], "a": 1 }, + { "px": [96,496], "src": [32,0], "f": 0, "t": 2, "d": [80,998], "a": 1 }, + { "px": [112,496], "src": [32,0], "f": 0, "t": 2, "d": [80,999], "a": 1 }, + { "px": [128,496], "src": [32,0], "f": 0, "t": 2, "d": [80,1000], "a": 1 }, + { "px": [144,496], "src": [32,0], "f": 0, "t": 2, "d": [80,1001], "a": 1 }, + { "px": [160,560], "src": [32,0], "f": 0, "t": 2, "d": [80,1130], "a": 1 }, + { "px": [352,560], "src": [32,0], "f": 0, "t": 2, "d": [80,1142], "a": 1 }, + { "px": [368,560], "src": [32,0], "f": 0, "t": 2, "d": [80,1143], "a": 1 }, + { "px": [384,560], "src": [32,0], "f": 0, "t": 2, "d": [80,1144], "a": 1 }, + { "px": [16,368], "src": [0,96], "f": 0, "t": 138, "d": [110,737], "a": 1 }, + { "px": [64,416], "src": [32,96], "f": 0, "t": 140, "d": [110,836], "a": 1 }, + { "px": [80,480], "src": [32,96], "f": 0, "t": 140, "d": [110,965], "a": 1 }, + { "px": [112,480], "src": [0,96], "f": 0, "t": 138, "d": [110,967], "a": 1 }, + { "px": [128,480], "src": [32,96], "f": 0, "t": 140, "d": [110,968], "a": 1 }, + { "px": [144,480], "src": [0,96], "f": 0, "t": 138, "d": [110,969], "a": 1 }, + { "px": [176,544], "src": [0,96], "f": 0, "t": 138, "d": [110,1099], "a": 1 }, + { "px": [192,544], "src": [32,96], "f": 0, "t": 140, "d": [110,1100], "a": 1 }, + { "px": [336,544], "src": [32,96], "f": 0, "t": 140, "d": [110,1109], "a": 1 }, + { "px": [384,544], "src": [0,96], "f": 0, "t": 138, "d": [110,1112], "a": 1 } + ], + "seed": 6011873, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36d6900-66b0-11ec-9cd7-d187085e5ca3", + "levelId": 47, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [80,0], "src": [320,272], "f": 0, "t": 411, "d": [108,5], "a": 1 }, + { "px": [80,16], "src": [320,272], "f": 0, "t": 411, "d": [108,37], "a": 1 }, + { "px": [80,32], "src": [320,272], "f": 0, "t": 411, "d": [108,69], "a": 1 }, + { "px": [0,48], "src": [320,272], "f": 0, "t": 411, "d": [108,96], "a": 1 }, + { "px": [16,48], "src": [320,272], "f": 0, "t": 411, "d": [108,97], "a": 1 }, + { "px": [32,48], "src": [320,272], "f": 0, "t": 411, "d": [108,98], "a": 1 }, + { "px": [48,48], "src": [320,272], "f": 0, "t": 411, "d": [108,99], "a": 1 }, + { "px": [64,48], "src": [320,272], "f": 0, "t": 411, "d": [108,100], "a": 1 }, + { "px": [80,48], "src": [320,272], "f": 0, "t": 411, "d": [108,101], "a": 1 }, + { "px": [0,64], "src": [320,272], "f": 0, "t": 411, "d": [108,128], "a": 1 }, + { "px": [16,64], "src": [320,272], "f": 0, "t": 411, "d": [108,129], "a": 1 }, + { "px": [32,64], "src": [320,272], "f": 0, "t": 411, "d": [108,130], "a": 1 }, + { "px": [48,64], "src": [320,272], "f": 0, "t": 411, "d": [108,131], "a": 1 }, + { "px": [64,64], "src": [320,272], "f": 0, "t": 411, "d": [108,132], "a": 1 }, + { "px": [80,64], "src": [320,272], "f": 0, "t": 411, "d": [108,133], "a": 1 }, + { "px": [64,176], "src": [320,272], "f": 0, "t": 411, "d": [108,356], "a": 1 }, + { "px": [96,176], "src": [320,272], "f": 0, "t": 411, "d": [108,358], "a": 1 }, + { "px": [112,176], "src": [320,272], "f": 0, "t": 411, "d": [108,359], "a": 1 }, + { "px": [128,176], "src": [320,272], "f": 0, "t": 411, "d": [108,360], "a": 1 }, + { "px": [144,176], "src": [320,272], "f": 0, "t": 411, "d": [108,361], "a": 1 }, + { "px": [176,176], "src": [320,272], "f": 0, "t": 411, "d": [108,363], "a": 1 }, + { "px": [192,176], "src": [320,272], "f": 0, "t": 411, "d": [108,364], "a": 1 }, + { "px": [208,176], "src": [320,272], "f": 0, "t": 411, "d": [108,365], "a": 1 }, + { "px": [224,176], "src": [320,272], "f": 0, "t": 411, "d": [108,366], "a": 1 }, + { "px": [240,176], "src": [320,272], "f": 0, "t": 411, "d": [108,367], "a": 1 }, + { "px": [272,176], "src": [320,272], "f": 0, "t": 411, "d": [108,369], "a": 1 }, + { "px": [288,176], "src": [320,272], "f": 0, "t": 411, "d": [108,370], "a": 1 }, + { "px": [304,176], "src": [320,272], "f": 0, "t": 411, "d": [108,371], "a": 1 }, + { "px": [336,176], "src": [320,272], "f": 0, "t": 411, "d": [108,373], "a": 1 }, + { "px": [352,176], "src": [320,272], "f": 0, "t": 411, "d": [108,374], "a": 1 }, + { "px": [368,176], "src": [320,272], "f": 0, "t": 411, "d": [108,375], "a": 1 }, + { "px": [384,176], "src": [320,272], "f": 0, "t": 411, "d": [108,376], "a": 1 }, + { "px": [400,176], "src": [320,272], "f": 0, "t": 411, "d": [108,377], "a": 1 }, + { "px": [64,192], "src": [320,272], "f": 0, "t": 411, "d": [108,388], "a": 1 }, + { "px": [80,192], "src": [320,272], "f": 0, "t": 411, "d": [108,389], "a": 1 }, + { "px": [112,192], "src": [320,272], "f": 0, "t": 411, "d": [108,391], "a": 1 }, + { "px": [128,192], "src": [320,272], "f": 0, "t": 411, "d": [108,392], "a": 1 }, + { "px": [144,192], "src": [320,272], "f": 0, "t": 411, "d": [108,393], "a": 1 }, + { "px": [160,192], "src": [320,272], "f": 0, "t": 411, "d": [108,394], "a": 1 }, + { "px": [176,192], "src": [320,272], "f": 0, "t": 411, "d": [108,395], "a": 1 }, + { "px": [192,192], "src": [320,272], "f": 0, "t": 411, "d": [108,396], "a": 1 }, + { "px": [208,192], "src": [320,272], "f": 0, "t": 411, "d": [108,397], "a": 1 }, + { "px": [224,192], "src": [320,272], "f": 0, "t": 411, "d": [108,398], "a": 1 }, + { "px": [240,192], "src": [320,272], "f": 0, "t": 411, "d": [108,399], "a": 1 }, + { "px": [256,192], "src": [320,272], "f": 0, "t": 411, "d": [108,400], "a": 1 }, + { "px": [272,192], "src": [320,272], "f": 0, "t": 411, "d": [108,401], "a": 1 }, + { "px": [288,192], "src": [320,272], "f": 0, "t": 411, "d": [108,402], "a": 1 }, + { "px": [304,192], "src": [320,272], "f": 0, "t": 411, "d": [108,403], "a": 1 }, + { "px": [320,192], "src": [320,272], "f": 0, "t": 411, "d": [108,404], "a": 1 }, + { "px": [336,192], "src": [320,272], "f": 0, "t": 411, "d": [108,405], "a": 1 }, + { "px": [352,192], "src": [320,272], "f": 0, "t": 411, "d": [108,406], "a": 1 }, + { "px": [368,192], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [384,192], "src": [320,272], "f": 0, "t": 411, "d": [108,408], "a": 1 }, + { "px": [400,192], "src": [320,272], "f": 0, "t": 411, "d": [108,409], "a": 1 }, + { "px": [64,208], "src": [320,272], "f": 0, "t": 411, "d": [108,420], "a": 1 }, + { "px": [80,208], "src": [320,272], "f": 0, "t": 411, "d": [108,421], "a": 1 }, + { "px": [96,208], "src": [320,272], "f": 0, "t": 411, "d": [108,422], "a": 1 }, + { "px": [112,208], "src": [320,272], "f": 0, "t": 411, "d": [108,423], "a": 1 }, + { "px": [128,208], "src": [320,272], "f": 0, "t": 411, "d": [108,424], "a": 1 }, + { "px": [144,208], "src": [320,272], "f": 0, "t": 411, "d": [108,425], "a": 1 }, + { "px": [160,208], "src": [320,272], "f": 0, "t": 411, "d": [108,426], "a": 1 }, + { "px": [176,208], "src": [320,272], "f": 0, "t": 411, "d": [108,427], "a": 1 }, + { "px": [192,208], "src": [320,272], "f": 0, "t": 411, "d": [108,428], "a": 1 }, + { "px": [208,208], "src": [320,272], "f": 0, "t": 411, "d": [108,429], "a": 1 }, + { "px": [224,208], "src": [320,272], "f": 0, "t": 411, "d": [108,430], "a": 1 }, + { "px": [240,208], "src": [320,272], "f": 0, "t": 411, "d": [108,431], "a": 1 }, + { "px": [256,208], "src": [320,272], "f": 0, "t": 411, "d": [108,432], "a": 1 }, + { "px": [272,208], "src": [320,272], "f": 0, "t": 411, "d": [108,433], "a": 1 }, + { "px": [288,208], "src": [320,272], "f": 0, "t": 411, "d": [108,434], "a": 1 }, + { "px": [304,208], "src": [320,272], "f": 0, "t": 411, "d": [108,435], "a": 1 }, + { "px": [320,208], "src": [320,272], "f": 0, "t": 411, "d": [108,436], "a": 1 }, + { "px": [336,208], "src": [320,272], "f": 0, "t": 411, "d": [108,437], "a": 1 }, + { "px": [352,208], "src": [320,272], "f": 0, "t": 411, "d": [108,438], "a": 1 }, + { "px": [368,208], "src": [320,272], "f": 0, "t": 411, "d": [108,439], "a": 1 }, + { "px": [384,208], "src": [320,272], "f": 0, "t": 411, "d": [108,440], "a": 1 }, + { "px": [400,208], "src": [320,272], "f": 0, "t": 411, "d": [108,441], "a": 1 }, + { "px": [64,224], "src": [320,272], "f": 0, "t": 411, "d": [108,452], "a": 1 }, + { "px": [80,224], "src": [320,272], "f": 0, "t": 411, "d": [108,453], "a": 1 }, + { "px": [96,224], "src": [320,272], "f": 0, "t": 411, "d": [108,454], "a": 1 }, + { "px": [112,224], "src": [320,272], "f": 0, "t": 411, "d": [108,455], "a": 1 }, + { "px": [128,224], "src": [320,272], "f": 0, "t": 411, "d": [108,456], "a": 1 }, + { "px": [144,224], "src": [320,272], "f": 0, "t": 411, "d": [108,457], "a": 1 }, + { "px": [160,224], "src": [320,272], "f": 0, "t": 411, "d": [108,458], "a": 1 }, + { "px": [192,224], "src": [320,272], "f": 0, "t": 411, "d": [108,460], "a": 1 }, + { "px": [208,224], "src": [320,272], "f": 0, "t": 411, "d": [108,461], "a": 1 }, + { "px": [240,224], "src": [320,272], "f": 0, "t": 411, "d": [108,463], "a": 1 }, + { "px": [256,224], "src": [320,272], "f": 0, "t": 411, "d": [108,464], "a": 1 }, + { "px": [288,224], "src": [320,272], "f": 0, "t": 411, "d": [108,466], "a": 1 }, + { "px": [304,224], "src": [320,272], "f": 0, "t": 411, "d": [108,467], "a": 1 }, + { "px": [336,224], "src": [320,272], "f": 0, "t": 411, "d": [108,469], "a": 1 }, + { "px": [352,224], "src": [320,272], "f": 0, "t": 411, "d": [108,470], "a": 1 }, + { "px": [368,224], "src": [320,272], "f": 0, "t": 411, "d": [108,471], "a": 1 }, + { "px": [384,224], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [400,224], "src": [320,272], "f": 0, "t": 411, "d": [108,473], "a": 1 }, + { "px": [64,240], "src": [320,272], "f": 0, "t": 411, "d": [108,484], "a": 1 }, + { "px": [80,240], "src": [320,272], "f": 0, "t": 411, "d": [108,485], "a": 1 }, + { "px": [96,240], "src": [320,272], "f": 0, "t": 411, "d": [108,486], "a": 1 }, + { "px": [112,240], "src": [320,272], "f": 0, "t": 411, "d": [108,487], "a": 1 }, + { "px": [128,240], "src": [320,272], "f": 0, "t": 411, "d": [108,488], "a": 1 }, + { "px": [144,240], "src": [320,272], "f": 0, "t": 411, "d": [108,489], "a": 1 }, + { "px": [160,240], "src": [320,272], "f": 0, "t": 411, "d": [108,490], "a": 1 }, + { "px": [176,240], "src": [320,272], "f": 0, "t": 411, "d": [108,491], "a": 1 }, + { "px": [192,240], "src": [320,272], "f": 0, "t": 411, "d": [108,492], "a": 1 }, + { "px": [208,240], "src": [320,272], "f": 0, "t": 411, "d": [108,493], "a": 1 }, + { "px": [224,240], "src": [320,272], "f": 0, "t": 411, "d": [108,494], "a": 1 }, + { "px": [240,240], "src": [320,272], "f": 0, "t": 411, "d": [108,495], "a": 1 }, + { "px": [256,240], "src": [320,272], "f": 0, "t": 411, "d": [108,496], "a": 1 }, + { "px": [272,240], "src": [320,272], "f": 0, "t": 411, "d": [108,497], "a": 1 }, + { "px": [288,240], "src": [320,272], "f": 0, "t": 411, "d": [108,498], "a": 1 }, + { "px": [304,240], "src": [320,272], "f": 0, "t": 411, "d": [108,499], "a": 1 }, + { "px": [320,240], "src": [320,272], "f": 0, "t": 411, "d": [108,500], "a": 1 }, + { "px": [336,240], "src": [320,272], "f": 0, "t": 411, "d": [108,501], "a": 1 }, + { "px": [352,240], "src": [320,272], "f": 0, "t": 411, "d": [108,502], "a": 1 }, + { "px": [368,240], "src": [320,272], "f": 0, "t": 411, "d": [108,503], "a": 1 }, + { "px": [384,240], "src": [320,272], "f": 0, "t": 411, "d": [108,504], "a": 1 }, + { "px": [400,240], "src": [320,272], "f": 0, "t": 411, "d": [108,505], "a": 1 }, + { "px": [64,256], "src": [320,272], "f": 0, "t": 411, "d": [108,516], "a": 1 }, + { "px": [80,256], "src": [320,272], "f": 0, "t": 411, "d": [108,517], "a": 1 }, + { "px": [96,256], "src": [320,272], "f": 0, "t": 411, "d": [108,518], "a": 1 }, + { "px": [112,256], "src": [320,272], "f": 0, "t": 411, "d": [108,519], "a": 1 }, + { "px": [128,256], "src": [320,272], "f": 0, "t": 411, "d": [108,520], "a": 1 }, + { "px": [160,256], "src": [320,272], "f": 0, "t": 411, "d": [108,522], "a": 1 }, + { "px": [176,256], "src": [320,272], "f": 0, "t": 411, "d": [108,523], "a": 1 }, + { "px": [208,256], "src": [320,272], "f": 0, "t": 411, "d": [108,525], "a": 1 }, + { "px": [224,256], "src": [320,272], "f": 0, "t": 411, "d": [108,526], "a": 1 }, + { "px": [240,256], "src": [320,272], "f": 0, "t": 411, "d": [108,527], "a": 1 }, + { "px": [256,256], "src": [320,272], "f": 0, "t": 411, "d": [108,528], "a": 1 }, + { "px": [272,256], "src": [320,272], "f": 0, "t": 411, "d": [108,529], "a": 1 }, + { "px": [288,256], "src": [320,272], "f": 0, "t": 411, "d": [108,530], "a": 1 }, + { "px": [304,256], "src": [320,272], "f": 0, "t": 411, "d": [108,531], "a": 1 }, + { "px": [320,256], "src": [320,272], "f": 0, "t": 411, "d": [108,532], "a": 1 }, + { "px": [336,256], "src": [320,272], "f": 0, "t": 411, "d": [108,533], "a": 1 }, + { "px": [352,256], "src": [320,272], "f": 0, "t": 411, "d": [108,534], "a": 1 }, + { "px": [368,256], "src": [320,272], "f": 0, "t": 411, "d": [108,535], "a": 1 }, + { "px": [384,256], "src": [320,272], "f": 0, "t": 411, "d": [108,536], "a": 1 }, + { "px": [400,256], "src": [320,272], "f": 0, "t": 411, "d": [108,537], "a": 1 }, + { "px": [64,272], "src": [320,272], "f": 0, "t": 411, "d": [108,548], "a": 1 }, + { "px": [80,272], "src": [320,272], "f": 0, "t": 411, "d": [108,549], "a": 1 }, + { "px": [96,272], "src": [320,272], "f": 0, "t": 411, "d": [108,550], "a": 1 }, + { "px": [112,272], "src": [320,272], "f": 0, "t": 411, "d": [108,551], "a": 1 }, + { "px": [128,272], "src": [320,272], "f": 0, "t": 411, "d": [108,552], "a": 1 }, + { "px": [144,272], "src": [320,272], "f": 0, "t": 411, "d": [108,553], "a": 1 }, + { "px": [160,272], "src": [320,272], "f": 0, "t": 411, "d": [108,554], "a": 1 }, + { "px": [176,272], "src": [320,272], "f": 0, "t": 411, "d": [108,555], "a": 1 }, + { "px": [192,272], "src": [320,272], "f": 0, "t": 411, "d": [108,556], "a": 1 }, + { "px": [208,272], "src": [320,272], "f": 0, "t": 411, "d": [108,557], "a": 1 }, + { "px": [224,272], "src": [320,272], "f": 0, "t": 411, "d": [108,558], "a": 1 }, + { "px": [240,272], "src": [320,272], "f": 0, "t": 411, "d": [108,559], "a": 1 }, + { "px": [256,272], "src": [320,272], "f": 0, "t": 411, "d": [108,560], "a": 1 }, + { "px": [272,272], "src": [320,272], "f": 0, "t": 411, "d": [108,561], "a": 1 }, + { "px": [288,272], "src": [320,272], "f": 0, "t": 411, "d": [108,562], "a": 1 }, + { "px": [304,272], "src": [320,272], "f": 0, "t": 411, "d": [108,563], "a": 1 }, + { "px": [320,272], "src": [320,272], "f": 0, "t": 411, "d": [108,564], "a": 1 }, + { "px": [336,272], "src": [320,272], "f": 0, "t": 411, "d": [108,565], "a": 1 }, + { "px": [352,272], "src": [320,272], "f": 0, "t": 411, "d": [108,566], "a": 1 }, + { "px": [368,272], "src": [320,272], "f": 0, "t": 411, "d": [108,567], "a": 1 }, + { "px": [384,272], "src": [320,272], "f": 0, "t": 411, "d": [108,568], "a": 1 }, + { "px": [400,272], "src": [320,272], "f": 0, "t": 411, "d": [108,569], "a": 1 }, + { "px": [64,288], "src": [320,272], "f": 0, "t": 411, "d": [108,580], "a": 1 }, + { "px": [80,288], "src": [320,272], "f": 0, "t": 411, "d": [108,581], "a": 1 }, + { "px": [96,288], "src": [320,272], "f": 0, "t": 411, "d": [108,582], "a": 1 }, + { "px": [112,288], "src": [320,272], "f": 0, "t": 411, "d": [108,583], "a": 1 }, + { "px": [128,288], "src": [320,272], "f": 0, "t": 411, "d": [108,584], "a": 1 }, + { "px": [144,288], "src": [320,272], "f": 0, "t": 411, "d": [108,585], "a": 1 }, + { "px": [160,288], "src": [320,272], "f": 0, "t": 411, "d": [108,586], "a": 1 }, + { "px": [192,288], "src": [320,272], "f": 0, "t": 411, "d": [108,588], "a": 1 }, + { "px": [208,288], "src": [320,272], "f": 0, "t": 411, "d": [108,589], "a": 1 }, + { "px": [224,288], "src": [320,272], "f": 0, "t": 411, "d": [108,590], "a": 1 }, + { "px": [240,288], "src": [320,272], "f": 0, "t": 411, "d": [108,591], "a": 1 }, + { "px": [256,288], "src": [320,272], "f": 0, "t": 411, "d": [108,592], "a": 1 }, + { "px": [272,288], "src": [320,272], "f": 0, "t": 411, "d": [108,593], "a": 1 }, + { "px": [288,288], "src": [320,272], "f": 0, "t": 411, "d": [108,594], "a": 1 }, + { "px": [304,288], "src": [320,272], "f": 0, "t": 411, "d": [108,595], "a": 1 }, + { "px": [320,288], "src": [320,272], "f": 0, "t": 411, "d": [108,596], "a": 1 }, + { "px": [336,288], "src": [320,272], "f": 0, "t": 411, "d": [108,597], "a": 1 }, + { "px": [352,288], "src": [320,272], "f": 0, "t": 411, "d": [108,598], "a": 1 }, + { "px": [368,288], "src": [320,272], "f": 0, "t": 411, "d": [108,599], "a": 1 }, + { "px": [384,288], "src": [320,272], "f": 0, "t": 411, "d": [108,600], "a": 1 }, + { "px": [400,288], "src": [320,272], "f": 0, "t": 411, "d": [108,601], "a": 1 }, + { "px": [64,304], "src": [320,272], "f": 0, "t": 411, "d": [108,612], "a": 1 }, + { "px": [80,304], "src": [320,272], "f": 0, "t": 411, "d": [108,613], "a": 1 }, + { "px": [96,304], "src": [320,272], "f": 0, "t": 411, "d": [108,614], "a": 1 }, + { "px": [112,304], "src": [320,272], "f": 0, "t": 411, "d": [108,615], "a": 1 }, + { "px": [128,304], "src": [320,272], "f": 0, "t": 411, "d": [108,616], "a": 1 }, + { "px": [144,304], "src": [320,272], "f": 0, "t": 411, "d": [108,617], "a": 1 }, + { "px": [160,304], "src": [320,272], "f": 0, "t": 411, "d": [108,618], "a": 1 }, + { "px": [176,304], "src": [320,272], "f": 0, "t": 411, "d": [108,619], "a": 1 }, + { "px": [192,304], "src": [320,272], "f": 0, "t": 411, "d": [108,620], "a": 1 }, + { "px": [208,304], "src": [320,272], "f": 0, "t": 411, "d": [108,621], "a": 1 }, + { "px": [224,304], "src": [320,272], "f": 0, "t": 411, "d": [108,622], "a": 1 }, + { "px": [240,304], "src": [320,272], "f": 0, "t": 411, "d": [108,623], "a": 1 }, + { "px": [256,304], "src": [320,272], "f": 0, "t": 411, "d": [108,624], "a": 1 }, + { "px": [272,304], "src": [320,272], "f": 0, "t": 411, "d": [108,625], "a": 1 }, + { "px": [288,304], "src": [320,272], "f": 0, "t": 411, "d": [108,626], "a": 1 }, + { "px": [304,304], "src": [320,272], "f": 0, "t": 411, "d": [108,627], "a": 1 }, + { "px": [320,304], "src": [320,272], "f": 0, "t": 411, "d": [108,628], "a": 1 }, + { "px": [336,304], "src": [320,272], "f": 0, "t": 411, "d": [108,629], "a": 1 }, + { "px": [352,304], "src": [320,272], "f": 0, "t": 411, "d": [108,630], "a": 1 }, + { "px": [368,304], "src": [320,272], "f": 0, "t": 411, "d": [108,631], "a": 1 }, + { "px": [384,304], "src": [320,272], "f": 0, "t": 411, "d": [108,632], "a": 1 }, + { "px": [400,304], "src": [320,272], "f": 0, "t": 411, "d": [108,633], "a": 1 }, + { "px": [64,320], "src": [320,272], "f": 0, "t": 411, "d": [108,644], "a": 1 }, + { "px": [80,320], "src": [320,272], "f": 0, "t": 411, "d": [108,645], "a": 1 }, + { "px": [96,320], "src": [320,272], "f": 0, "t": 411, "d": [108,646], "a": 1 }, + { "px": [112,320], "src": [320,272], "f": 0, "t": 411, "d": [108,647], "a": 1 }, + { "px": [128,320], "src": [320,272], "f": 0, "t": 411, "d": [108,648], "a": 1 }, + { "px": [144,320], "src": [320,272], "f": 0, "t": 411, "d": [108,649], "a": 1 }, + { "px": [160,320], "src": [320,272], "f": 0, "t": 411, "d": [108,650], "a": 1 }, + { "px": [176,320], "src": [320,272], "f": 0, "t": 411, "d": [108,651], "a": 1 }, + { "px": [192,320], "src": [320,272], "f": 0, "t": 411, "d": [108,652], "a": 1 }, + { "px": [208,320], "src": [320,272], "f": 0, "t": 411, "d": [108,653], "a": 1 }, + { "px": [224,320], "src": [320,272], "f": 0, "t": 411, "d": [108,654], "a": 1 }, + { "px": [240,320], "src": [320,272], "f": 0, "t": 411, "d": [108,655], "a": 1 }, + { "px": [256,320], "src": [320,272], "f": 0, "t": 411, "d": [108,656], "a": 1 }, + { "px": [272,320], "src": [320,272], "f": 0, "t": 411, "d": [108,657], "a": 1 }, + { "px": [288,320], "src": [320,272], "f": 0, "t": 411, "d": [108,658], "a": 1 }, + { "px": [304,320], "src": [320,272], "f": 0, "t": 411, "d": [108,659], "a": 1 }, + { "px": [320,320], "src": [320,272], "f": 0, "t": 411, "d": [108,660], "a": 1 }, + { "px": [352,320], "src": [320,272], "f": 0, "t": 411, "d": [108,662], "a": 1 }, + { "px": [368,320], "src": [320,272], "f": 0, "t": 411, "d": [108,663], "a": 1 }, + { "px": [384,320], "src": [320,272], "f": 0, "t": 411, "d": [108,664], "a": 1 }, + { "px": [0,336], "src": [320,272], "f": 0, "t": 411, "d": [108,672], "a": 1 }, + { "px": [16,336], "src": [320,272], "f": 0, "t": 411, "d": [108,673], "a": 1 }, + { "px": [32,336], "src": [320,272], "f": 0, "t": 411, "d": [108,674], "a": 1 }, + { "px": [48,336], "src": [320,272], "f": 0, "t": 411, "d": [108,675], "a": 1 }, + { "px": [64,336], "src": [320,272], "f": 0, "t": 411, "d": [108,676], "a": 1 }, + { "px": [80,336], "src": [320,272], "f": 0, "t": 411, "d": [108,677], "a": 1 }, + { "px": [96,336], "src": [320,272], "f": 0, "t": 411, "d": [108,678], "a": 1 }, + { "px": [112,336], "src": [320,272], "f": 0, "t": 411, "d": [108,679], "a": 1 }, + { "px": [128,336], "src": [320,272], "f": 0, "t": 411, "d": [108,680], "a": 1 }, + { "px": [144,336], "src": [320,272], "f": 0, "t": 411, "d": [108,681], "a": 1 }, + { "px": [160,336], "src": [320,272], "f": 0, "t": 411, "d": [108,682], "a": 1 }, + { "px": [176,336], "src": [320,272], "f": 0, "t": 411, "d": [108,683], "a": 1 }, + { "px": [192,336], "src": [320,272], "f": 0, "t": 411, "d": [108,684], "a": 1 }, + { "px": [208,336], "src": [320,272], "f": 0, "t": 411, "d": [108,685], "a": 1 }, + { "px": [224,336], "src": [320,272], "f": 0, "t": 411, "d": [108,686], "a": 1 }, + { "px": [240,336], "src": [320,272], "f": 0, "t": 411, "d": [108,687], "a": 1 }, + { "px": [256,336], "src": [320,272], "f": 0, "t": 411, "d": [108,688], "a": 1 }, + { "px": [272,336], "src": [320,272], "f": 0, "t": 411, "d": [108,689], "a": 1 }, + { "px": [288,336], "src": [320,272], "f": 0, "t": 411, "d": [108,690], "a": 1 }, + { "px": [304,336], "src": [320,272], "f": 0, "t": 411, "d": [108,691], "a": 1 }, + { "px": [320,336], "src": [320,272], "f": 0, "t": 411, "d": [108,692], "a": 1 }, + { "px": [336,336], "src": [320,272], "f": 0, "t": 411, "d": [108,693], "a": 1 }, + { "px": [0,352], "src": [320,272], "f": 0, "t": 411, "d": [108,704], "a": 1 }, + { "px": [16,352], "src": [320,272], "f": 0, "t": 411, "d": [108,705], "a": 1 }, + { "px": [32,352], "src": [320,272], "f": 0, "t": 411, "d": [108,706], "a": 1 }, + { "px": [48,352], "src": [320,272], "f": 0, "t": 411, "d": [108,707], "a": 1 }, + { "px": [64,352], "src": [320,272], "f": 0, "t": 411, "d": [108,708], "a": 1 }, + { "px": [80,352], "src": [320,272], "f": 0, "t": 411, "d": [108,709], "a": 1 }, + { "px": [96,352], "src": [320,272], "f": 0, "t": 411, "d": [108,710], "a": 1 }, + { "px": [112,352], "src": [320,272], "f": 0, "t": 411, "d": [108,711], "a": 1 }, + { "px": [128,352], "src": [320,272], "f": 0, "t": 411, "d": [108,712], "a": 1 }, + { "px": [144,352], "src": [320,272], "f": 0, "t": 411, "d": [108,713], "a": 1 }, + { "px": [160,352], "src": [320,272], "f": 0, "t": 411, "d": [108,714], "a": 1 }, + { "px": [176,352], "src": [320,272], "f": 0, "t": 411, "d": [108,715], "a": 1 }, + { "px": [192,352], "src": [320,272], "f": 0, "t": 411, "d": [108,716], "a": 1 }, + { "px": [208,352], "src": [320,272], "f": 0, "t": 411, "d": [108,717], "a": 1 }, + { "px": [240,352], "src": [320,272], "f": 0, "t": 411, "d": [108,719], "a": 1 }, + { "px": [256,352], "src": [320,272], "f": 0, "t": 411, "d": [108,720], "a": 1 }, + { "px": [272,352], "src": [320,272], "f": 0, "t": 411, "d": [108,721], "a": 1 }, + { "px": [288,352], "src": [320,272], "f": 0, "t": 411, "d": [108,722], "a": 1 }, + { "px": [304,352], "src": [320,272], "f": 0, "t": 411, "d": [108,723], "a": 1 }, + { "px": [320,352], "src": [320,272], "f": 0, "t": 411, "d": [108,724], "a": 1 }, + { "px": [336,352], "src": [320,272], "f": 0, "t": 411, "d": [108,725], "a": 1 }, + { "px": [352,352], "src": [320,272], "f": 0, "t": 411, "d": [108,726], "a": 1 }, + { "px": [368,352], "src": [320,272], "f": 0, "t": 411, "d": [108,727], "a": 1 }, + { "px": [400,352], "src": [320,272], "f": 0, "t": 411, "d": [108,729], "a": 1 }, + { "px": [0,368], "src": [320,272], "f": 0, "t": 411, "d": [108,736], "a": 1 }, + { "px": [16,368], "src": [320,272], "f": 0, "t": 411, "d": [108,737], "a": 1 }, + { "px": [32,368], "src": [320,272], "f": 0, "t": 411, "d": [108,738], "a": 1 }, + { "px": [48,368], "src": [320,272], "f": 0, "t": 411, "d": [108,739], "a": 1 }, + { "px": [64,368], "src": [320,272], "f": 0, "t": 411, "d": [108,740], "a": 1 }, + { "px": [80,368], "src": [320,272], "f": 0, "t": 411, "d": [108,741], "a": 1 }, + { "px": [96,368], "src": [320,272], "f": 0, "t": 411, "d": [108,742], "a": 1 }, + { "px": [112,368], "src": [320,272], "f": 0, "t": 411, "d": [108,743], "a": 1 }, + { "px": [128,368], "src": [320,272], "f": 0, "t": 411, "d": [108,744], "a": 1 }, + { "px": [144,368], "src": [320,272], "f": 0, "t": 411, "d": [108,745], "a": 1 }, + { "px": [160,368], "src": [320,272], "f": 0, "t": 411, "d": [108,746], "a": 1 }, + { "px": [176,368], "src": [320,272], "f": 0, "t": 411, "d": [108,747], "a": 1 }, + { "px": [192,368], "src": [320,272], "f": 0, "t": 411, "d": [108,748], "a": 1 }, + { "px": [208,368], "src": [320,272], "f": 0, "t": 411, "d": [108,749], "a": 1 }, + { "px": [224,368], "src": [320,272], "f": 0, "t": 411, "d": [108,750], "a": 1 }, + { "px": [240,368], "src": [320,272], "f": 0, "t": 411, "d": [108,751], "a": 1 }, + { "px": [256,368], "src": [320,272], "f": 0, "t": 411, "d": [108,752], "a": 1 }, + { "px": [272,368], "src": [320,272], "f": 0, "t": 411, "d": [108,753], "a": 1 }, + { "px": [288,368], "src": [320,272], "f": 0, "t": 411, "d": [108,754], "a": 1 }, + { "px": [304,368], "src": [320,272], "f": 0, "t": 411, "d": [108,755], "a": 1 }, + { "px": [320,368], "src": [320,272], "f": 0, "t": 411, "d": [108,756], "a": 1 }, + { "px": [336,368], "src": [320,272], "f": 0, "t": 411, "d": [108,757], "a": 1 }, + { "px": [352,368], "src": [320,272], "f": 0, "t": 411, "d": [108,758], "a": 1 }, + { "px": [368,368], "src": [320,272], "f": 0, "t": 411, "d": [108,759], "a": 1 }, + { "px": [384,368], "src": [320,272], "f": 0, "t": 411, "d": [108,760], "a": 1 }, + { "px": [400,368], "src": [320,272], "f": 0, "t": 411, "d": [108,761], "a": 1 }, + { "px": [64,384], "src": [320,272], "f": 0, "t": 411, "d": [108,772], "a": 1 }, + { "px": [80,384], "src": [320,272], "f": 0, "t": 411, "d": [108,773], "a": 1 }, + { "px": [96,384], "src": [320,272], "f": 0, "t": 411, "d": [108,774], "a": 1 }, + { "px": [112,384], "src": [320,272], "f": 0, "t": 411, "d": [108,775], "a": 1 }, + { "px": [128,384], "src": [320,272], "f": 0, "t": 411, "d": [108,776], "a": 1 }, + { "px": [144,384], "src": [320,272], "f": 0, "t": 411, "d": [108,777], "a": 1 }, + { "px": [160,384], "src": [320,272], "f": 0, "t": 411, "d": [108,778], "a": 1 }, + { "px": [176,384], "src": [320,272], "f": 0, "t": 411, "d": [108,779], "a": 1 }, + { "px": [192,384], "src": [320,272], "f": 0, "t": 411, "d": [108,780], "a": 1 }, + { "px": [208,384], "src": [320,272], "f": 0, "t": 411, "d": [108,781], "a": 1 }, + { "px": [224,384], "src": [320,272], "f": 0, "t": 411, "d": [108,782], "a": 1 }, + { "px": [256,384], "src": [320,272], "f": 0, "t": 411, "d": [108,784], "a": 1 }, + { "px": [272,384], "src": [320,272], "f": 0, "t": 411, "d": [108,785], "a": 1 }, + { "px": [288,384], "src": [320,272], "f": 0, "t": 411, "d": [108,786], "a": 1 }, + { "px": [304,384], "src": [320,272], "f": 0, "t": 411, "d": [108,787], "a": 1 }, + { "px": [320,384], "src": [320,272], "f": 0, "t": 411, "d": [108,788], "a": 1 }, + { "px": [336,384], "src": [320,272], "f": 0, "t": 411, "d": [108,789], "a": 1 }, + { "px": [352,384], "src": [320,272], "f": 0, "t": 411, "d": [108,790], "a": 1 }, + { "px": [368,384], "src": [320,272], "f": 0, "t": 411, "d": [108,791], "a": 1 }, + { "px": [384,384], "src": [320,272], "f": 0, "t": 411, "d": [108,792], "a": 1 }, + { "px": [400,384], "src": [320,272], "f": 0, "t": 411, "d": [108,793], "a": 1 }, + { "px": [64,400], "src": [320,272], "f": 0, "t": 411, "d": [108,804], "a": 1 }, + { "px": [80,400], "src": [320,272], "f": 0, "t": 411, "d": [108,805], "a": 1 }, + { "px": [96,400], "src": [320,272], "f": 0, "t": 411, "d": [108,806], "a": 1 }, + { "px": [112,400], "src": [320,272], "f": 0, "t": 411, "d": [108,807], "a": 1 }, + { "px": [128,400], "src": [320,272], "f": 0, "t": 411, "d": [108,808], "a": 1 }, + { "px": [144,400], "src": [320,272], "f": 0, "t": 411, "d": [108,809], "a": 1 }, + { "px": [160,400], "src": [320,272], "f": 0, "t": 411, "d": [108,810], "a": 1 }, + { "px": [176,400], "src": [320,272], "f": 0, "t": 411, "d": [108,811], "a": 1 }, + { "px": [192,400], "src": [320,272], "f": 0, "t": 411, "d": [108,812], "a": 1 }, + { "px": [208,400], "src": [320,272], "f": 0, "t": 411, "d": [108,813], "a": 1 }, + { "px": [224,400], "src": [320,272], "f": 0, "t": 411, "d": [108,814], "a": 1 }, + { "px": [240,400], "src": [320,272], "f": 0, "t": 411, "d": [108,815], "a": 1 }, + { "px": [256,400], "src": [320,272], "f": 0, "t": 411, "d": [108,816], "a": 1 }, + { "px": [272,400], "src": [320,272], "f": 0, "t": 411, "d": [108,817], "a": 1 }, + { "px": [288,400], "src": [320,272], "f": 0, "t": 411, "d": [108,818], "a": 1 }, + { "px": [304,400], "src": [320,272], "f": 0, "t": 411, "d": [108,819], "a": 1 }, + { "px": [320,400], "src": [320,272], "f": 0, "t": 411, "d": [108,820], "a": 1 }, + { "px": [336,400], "src": [320,272], "f": 0, "t": 411, "d": [108,821], "a": 1 }, + { "px": [352,400], "src": [320,272], "f": 0, "t": 411, "d": [108,822], "a": 1 }, + { "px": [368,400], "src": [320,272], "f": 0, "t": 411, "d": [108,823], "a": 1 }, + { "px": [384,400], "src": [320,272], "f": 0, "t": 411, "d": [108,824], "a": 1 }, + { "px": [400,400], "src": [320,272], "f": 0, "t": 411, "d": [108,825], "a": 1 }, + { "px": [64,416], "src": [320,272], "f": 0, "t": 411, "d": [108,836], "a": 1 }, + { "px": [80,416], "src": [320,272], "f": 0, "t": 411, "d": [108,837], "a": 1 }, + { "px": [96,416], "src": [320,272], "f": 0, "t": 411, "d": [108,838], "a": 1 }, + { "px": [112,416], "src": [320,272], "f": 0, "t": 411, "d": [108,839], "a": 1 }, + { "px": [144,416], "src": [320,272], "f": 0, "t": 411, "d": [108,841], "a": 1 }, + { "px": [160,416], "src": [320,272], "f": 0, "t": 411, "d": [108,842], "a": 1 }, + { "px": [176,416], "src": [320,272], "f": 0, "t": 411, "d": [108,843], "a": 1 }, + { "px": [192,416], "src": [320,272], "f": 0, "t": 411, "d": [108,844], "a": 1 }, + { "px": [208,416], "src": [320,272], "f": 0, "t": 411, "d": [108,845], "a": 1 }, + { "px": [224,416], "src": [320,272], "f": 0, "t": 411, "d": [108,846], "a": 1 }, + { "px": [240,416], "src": [320,272], "f": 0, "t": 411, "d": [108,847], "a": 1 }, + { "px": [256,416], "src": [320,272], "f": 0, "t": 411, "d": [108,848], "a": 1 }, + { "px": [272,416], "src": [320,272], "f": 0, "t": 411, "d": [108,849], "a": 1 }, + { "px": [288,416], "src": [320,272], "f": 0, "t": 411, "d": [108,850], "a": 1 }, + { "px": [304,416], "src": [320,272], "f": 0, "t": 411, "d": [108,851], "a": 1 }, + { "px": [336,416], "src": [320,272], "f": 0, "t": 411, "d": [108,853], "a": 1 }, + { "px": [352,416], "src": [320,272], "f": 0, "t": 411, "d": [108,854], "a": 1 }, + { "px": [384,416], "src": [320,272], "f": 0, "t": 411, "d": [108,856], "a": 1 }, + { "px": [400,416], "src": [320,272], "f": 0, "t": 411, "d": [108,857], "a": 1 }, + { "px": [96,432], "src": [320,272], "f": 0, "t": 411, "d": [108,870], "a": 1 }, + { "px": [112,432], "src": [320,272], "f": 0, "t": 411, "d": [108,871], "a": 1 }, + { "px": [128,432], "src": [320,272], "f": 0, "t": 411, "d": [108,872], "a": 1 }, + { "px": [144,432], "src": [320,272], "f": 0, "t": 411, "d": [108,873], "a": 1 }, + { "px": [160,432], "src": [320,272], "f": 0, "t": 411, "d": [108,874], "a": 1 }, + { "px": [176,432], "src": [320,272], "f": 0, "t": 411, "d": [108,875], "a": 1 }, + { "px": [192,432], "src": [320,272], "f": 0, "t": 411, "d": [108,876], "a": 1 }, + { "px": [208,432], "src": [320,272], "f": 0, "t": 411, "d": [108,877], "a": 1 }, + { "px": [224,432], "src": [320,272], "f": 0, "t": 411, "d": [108,878], "a": 1 }, + { "px": [240,432], "src": [320,272], "f": 0, "t": 411, "d": [108,879], "a": 1 }, + { "px": [256,432], "src": [320,272], "f": 0, "t": 411, "d": [108,880], "a": 1 }, + { "px": [272,432], "src": [320,272], "f": 0, "t": 411, "d": [108,881], "a": 1 }, + { "px": [288,432], "src": [320,272], "f": 0, "t": 411, "d": [108,882], "a": 1 }, + { "px": [304,432], "src": [320,272], "f": 0, "t": 411, "d": [108,883], "a": 1 }, + { "px": [320,432], "src": [320,272], "f": 0, "t": 411, "d": [108,884], "a": 1 }, + { "px": [336,432], "src": [320,272], "f": 0, "t": 411, "d": [108,885], "a": 1 }, + { "px": [352,432], "src": [320,272], "f": 0, "t": 411, "d": [108,886], "a": 1 }, + { "px": [368,432], "src": [320,272], "f": 0, "t": 411, "d": [108,887], "a": 1 }, + { "px": [384,432], "src": [320,272], "f": 0, "t": 411, "d": [108,888], "a": 1 }, + { "px": [400,432], "src": [320,272], "f": 0, "t": 411, "d": [108,889], "a": 1 }, + { "px": [112,448], "src": [320,272], "f": 0, "t": 411, "d": [108,903], "a": 1 }, + { "px": [128,448], "src": [320,272], "f": 0, "t": 411, "d": [108,904], "a": 1 }, + { "px": [160,448], "src": [320,272], "f": 0, "t": 411, "d": [108,906], "a": 1 }, + { "px": [176,448], "src": [320,272], "f": 0, "t": 411, "d": [108,907], "a": 1 }, + { "px": [208,448], "src": [320,272], "f": 0, "t": 411, "d": [108,909], "a": 1 }, + { "px": [224,448], "src": [320,272], "f": 0, "t": 411, "d": [108,910], "a": 1 }, + { "px": [240,448], "src": [320,272], "f": 0, "t": 411, "d": [108,911], "a": 1 }, + { "px": [256,448], "src": [320,272], "f": 0, "t": 411, "d": [108,912], "a": 1 }, + { "px": [272,448], "src": [320,272], "f": 0, "t": 411, "d": [108,913], "a": 1 }, + { "px": [288,448], "src": [320,272], "f": 0, "t": 411, "d": [108,914], "a": 1 }, + { "px": [304,448], "src": [320,272], "f": 0, "t": 411, "d": [108,915], "a": 1 }, + { "px": [320,448], "src": [320,272], "f": 0, "t": 411, "d": [108,916], "a": 1 }, + { "px": [336,448], "src": [320,272], "f": 0, "t": 411, "d": [108,917], "a": 1 }, + { "px": [352,448], "src": [320,272], "f": 0, "t": 411, "d": [108,918], "a": 1 }, + { "px": [368,448], "src": [320,272], "f": 0, "t": 411, "d": [108,919], "a": 1 }, + { "px": [384,448], "src": [320,272], "f": 0, "t": 411, "d": [108,920], "a": 1 }, + { "px": [400,448], "src": [320,272], "f": 0, "t": 411, "d": [108,921], "a": 1 }, + { "px": [96,464], "src": [320,272], "f": 0, "t": 411, "d": [108,934], "a": 1 }, + { "px": [112,464], "src": [320,272], "f": 0, "t": 411, "d": [108,935], "a": 1 }, + { "px": [128,464], "src": [320,272], "f": 0, "t": 411, "d": [108,936], "a": 1 }, + { "px": [144,464], "src": [320,272], "f": 0, "t": 411, "d": [108,937], "a": 1 }, + { "px": [160,464], "src": [320,272], "f": 0, "t": 411, "d": [108,938], "a": 1 }, + { "px": [176,464], "src": [320,272], "f": 0, "t": 411, "d": [108,939], "a": 1 }, + { "px": [192,464], "src": [320,272], "f": 0, "t": 411, "d": [108,940], "a": 1 }, + { "px": [208,464], "src": [320,272], "f": 0, "t": 411, "d": [108,941], "a": 1 }, + { "px": [224,464], "src": [320,272], "f": 0, "t": 411, "d": [108,942], "a": 1 }, + { "px": [240,464], "src": [320,272], "f": 0, "t": 411, "d": [108,943], "a": 1 }, + { "px": [256,464], "src": [320,272], "f": 0, "t": 411, "d": [108,944], "a": 1 }, + { "px": [272,464], "src": [320,272], "f": 0, "t": 411, "d": [108,945], "a": 1 }, + { "px": [288,464], "src": [320,272], "f": 0, "t": 411, "d": [108,946], "a": 1 }, + { "px": [304,464], "src": [320,272], "f": 0, "t": 411, "d": [108,947], "a": 1 }, + { "px": [320,464], "src": [320,272], "f": 0, "t": 411, "d": [108,948], "a": 1 }, + { "px": [336,464], "src": [320,272], "f": 0, "t": 411, "d": [108,949], "a": 1 }, + { "px": [352,464], "src": [320,272], "f": 0, "t": 411, "d": [108,950], "a": 1 }, + { "px": [368,464], "src": [320,272], "f": 0, "t": 411, "d": [108,951], "a": 1 }, + { "px": [384,464], "src": [320,272], "f": 0, "t": 411, "d": [108,952], "a": 1 }, + { "px": [400,464], "src": [320,272], "f": 0, "t": 411, "d": [108,953], "a": 1 }, + { "px": [96,480], "src": [320,272], "f": 0, "t": 411, "d": [108,966], "a": 1 }, + { "px": [112,480], "src": [320,272], "f": 0, "t": 411, "d": [108,967], "a": 1 }, + { "px": [128,480], "src": [320,272], "f": 0, "t": 411, "d": [108,968], "a": 1 }, + { "px": [144,480], "src": [320,272], "f": 0, "t": 411, "d": [108,969], "a": 1 }, + { "px": [160,480], "src": [320,272], "f": 0, "t": 411, "d": [108,970], "a": 1 }, + { "px": [176,480], "src": [320,272], "f": 0, "t": 411, "d": [108,971], "a": 1 }, + { "px": [192,480], "src": [320,272], "f": 0, "t": 411, "d": [108,972], "a": 1 }, + { "px": [208,480], "src": [320,272], "f": 0, "t": 411, "d": [108,973], "a": 1 }, + { "px": [224,480], "src": [320,272], "f": 0, "t": 411, "d": [108,974], "a": 1 }, + { "px": [240,480], "src": [320,272], "f": 0, "t": 411, "d": [108,975], "a": 1 }, + { "px": [256,480], "src": [320,272], "f": 0, "t": 411, "d": [108,976], "a": 1 }, + { "px": [272,480], "src": [320,272], "f": 0, "t": 411, "d": [108,977], "a": 1 }, + { "px": [288,480], "src": [320,272], "f": 0, "t": 411, "d": [108,978], "a": 1 }, + { "px": [304,480], "src": [320,272], "f": 0, "t": 411, "d": [108,979], "a": 1 }, + { "px": [320,480], "src": [320,272], "f": 0, "t": 411, "d": [108,980], "a": 1 }, + { "px": [336,480], "src": [320,272], "f": 0, "t": 411, "d": [108,981], "a": 1 }, + { "px": [352,480], "src": [320,272], "f": 0, "t": 411, "d": [108,982], "a": 1 }, + { "px": [368,480], "src": [320,272], "f": 0, "t": 411, "d": [108,983], "a": 1 }, + { "px": [384,480], "src": [320,272], "f": 0, "t": 411, "d": [108,984], "a": 1 }, + { "px": [400,480], "src": [320,272], "f": 0, "t": 411, "d": [108,985], "a": 1 }, + { "px": [176,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1003], "a": 1 }, + { "px": [192,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1004], "a": 1 }, + { "px": [208,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1005], "a": 1 }, + { "px": [224,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1006], "a": 1 }, + { "px": [240,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1007], "a": 1 }, + { "px": [256,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1008], "a": 1 }, + { "px": [272,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1009], "a": 1 }, + { "px": [288,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1010], "a": 1 }, + { "px": [304,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1011], "a": 1 }, + { "px": [320,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1012], "a": 1 }, + { "px": [336,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1013], "a": 1 }, + { "px": [352,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1014], "a": 1 }, + { "px": [368,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1015], "a": 1 }, + { "px": [384,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1016], "a": 1 }, + { "px": [400,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1017], "a": 1 }, + { "px": [176,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1035], "a": 1 }, + { "px": [208,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1037], "a": 1 }, + { "px": [224,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1038], "a": 1 }, + { "px": [240,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1039], "a": 1 }, + { "px": [256,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1040], "a": 1 }, + { "px": [272,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1041], "a": 1 }, + { "px": [288,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1042], "a": 1 }, + { "px": [304,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1043], "a": 1 }, + { "px": [320,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1044], "a": 1 }, + { "px": [352,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1046], "a": 1 }, + { "px": [368,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1047], "a": 1 }, + { "px": [384,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1048], "a": 1 }, + { "px": [400,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1049], "a": 1 }, + { "px": [176,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1067], "a": 1 }, + { "px": [192,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1068], "a": 1 }, + { "px": [208,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1069], "a": 1 }, + { "px": [224,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1070], "a": 1 }, + { "px": [240,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1071], "a": 1 }, + { "px": [256,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1072], "a": 1 }, + { "px": [272,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1073], "a": 1 }, + { "px": [288,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1074], "a": 1 }, + { "px": [304,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1075], "a": 1 }, + { "px": [320,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1076], "a": 1 }, + { "px": [336,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1077], "a": 1 }, + { "px": [352,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1078], "a": 1 }, + { "px": [368,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1079], "a": 1 }, + { "px": [384,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1080], "a": 1 }, + { "px": [400,528], "src": [320,272], "f": 0, "t": 411, "d": [108,1081], "a": 1 }, + { "px": [176,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1099], "a": 1 }, + { "px": [192,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1100], "a": 1 }, + { "px": [208,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1101], "a": 1 }, + { "px": [224,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1102], "a": 1 }, + { "px": [240,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1103], "a": 1 }, + { "px": [256,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1104], "a": 1 }, + { "px": [272,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1105], "a": 1 }, + { "px": [288,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1106], "a": 1 }, + { "px": [304,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1107], "a": 1 }, + { "px": [336,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1109], "a": 1 }, + { "px": [352,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1110], "a": 1 }, + { "px": [368,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1111], "a": 1 }, + { "px": [384,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1112], "a": 1 }, + { "px": [400,544], "src": [320,272], "f": 0, "t": 411, "d": [108,1113], "a": 1 }, + { "px": [64,176], "src": [256,240], "f": 1, "t": 361, "d": [107,355], "a": 1 }, + { "px": [48,176], "src": [272,240], "f": 1, "t": 362, "d": [107,355], "a": 1 }, + { "px": [400,176], "src": [256,240], "f": 0, "t": 361, "d": [107,378], "a": 1 }, + { "px": [416,176], "src": [272,240], "f": 0, "t": 362, "d": [107,378], "a": 1 }, + { "px": [64,192], "src": [256,240], "f": 1, "t": 361, "d": [107,387], "a": 1 }, + { "px": [48,192], "src": [272,240], "f": 1, "t": 362, "d": [107,387], "a": 1 }, + { "px": [400,192], "src": [256,240], "f": 0, "t": 361, "d": [107,410], "a": 1 }, + { "px": [416,192], "src": [272,240], "f": 0, "t": 362, "d": [107,410], "a": 1 }, + { "px": [64,208], "src": [256,240], "f": 1, "t": 361, "d": [107,419], "a": 1 }, + { "px": [48,208], "src": [272,240], "f": 1, "t": 362, "d": [107,419], "a": 1 }, + { "px": [400,208], "src": [256,240], "f": 0, "t": 361, "d": [107,442], "a": 1 }, + { "px": [416,208], "src": [272,240], "f": 0, "t": 362, "d": [107,442], "a": 1 }, + { "px": [64,224], "src": [256,240], "f": 1, "t": 361, "d": [107,451], "a": 1 }, + { "px": [48,224], "src": [272,240], "f": 1, "t": 362, "d": [107,451], "a": 1 }, + { "px": [400,224], "src": [256,240], "f": 0, "t": 361, "d": [107,474], "a": 1 }, + { "px": [416,224], "src": [272,240], "f": 0, "t": 362, "d": [107,474], "a": 1 }, + { "px": [64,240], "src": [256,240], "f": 1, "t": 361, "d": [107,483], "a": 1 }, + { "px": [48,240], "src": [272,240], "f": 1, "t": 362, "d": [107,483], "a": 1 }, + { "px": [400,240], "src": [256,240], "f": 0, "t": 361, "d": [107,506], "a": 1 }, + { "px": [416,240], "src": [272,240], "f": 0, "t": 362, "d": [107,506], "a": 1 }, + { "px": [64,256], "src": [256,240], "f": 1, "t": 361, "d": [107,515], "a": 1 }, + { "px": [48,256], "src": [272,240], "f": 1, "t": 362, "d": [107,515], "a": 1 }, + { "px": [400,256], "src": [256,240], "f": 0, "t": 361, "d": [107,538], "a": 1 }, + { "px": [416,256], "src": [272,240], "f": 0, "t": 362, "d": [107,538], "a": 1 }, + { "px": [64,272], "src": [256,240], "f": 1, "t": 361, "d": [107,547], "a": 1 }, + { "px": [48,272], "src": [272,240], "f": 1, "t": 362, "d": [107,547], "a": 1 }, + { "px": [400,272], "src": [256,240], "f": 0, "t": 361, "d": [107,570], "a": 1 }, + { "px": [416,272], "src": [272,240], "f": 0, "t": 362, "d": [107,570], "a": 1 }, + { "px": [64,288], "src": [256,240], "f": 1, "t": 361, "d": [107,579], "a": 1 }, + { "px": [48,288], "src": [272,240], "f": 1, "t": 362, "d": [107,579], "a": 1 }, + { "px": [400,288], "src": [256,240], "f": 0, "t": 361, "d": [107,602], "a": 1 }, + { "px": [416,288], "src": [272,240], "f": 0, "t": 362, "d": [107,602], "a": 1 }, + { "px": [64,304], "src": [256,240], "f": 1, "t": 361, "d": [107,611], "a": 1 }, + { "px": [48,304], "src": [272,240], "f": 1, "t": 362, "d": [107,611], "a": 1 }, + { "px": [400,304], "src": [256,240], "f": 0, "t": 361, "d": [107,634], "a": 1 }, + { "px": [416,304], "src": [272,240], "f": 0, "t": 362, "d": [107,634], "a": 1 }, + { "px": [64,320], "src": [256,240], "f": 1, "t": 361, "d": [107,643], "a": 1 }, + { "px": [48,320], "src": [272,240], "f": 1, "t": 362, "d": [107,643], "a": 1 }, + { "px": [336,336], "src": [256,240], "f": 0, "t": 361, "d": [107,694], "a": 1 }, + { "px": [352,336], "src": [272,240], "f": 0, "t": 362, "d": [107,694], "a": 1 }, + { "px": [400,352], "src": [256,240], "f": 0, "t": 361, "d": [107,730], "a": 1 }, + { "px": [416,352], "src": [272,240], "f": 0, "t": 362, "d": [107,730], "a": 1 }, + { "px": [400,368], "src": [256,240], "f": 0, "t": 361, "d": [107,762], "a": 1 }, + { "px": [416,368], "src": [272,240], "f": 0, "t": 362, "d": [107,762], "a": 1 }, + { "px": [64,384], "src": [256,240], "f": 1, "t": 361, "d": [107,771], "a": 1 }, + { "px": [48,384], "src": [272,240], "f": 1, "t": 362, "d": [107,771], "a": 1 }, + { "px": [400,384], "src": [256,240], "f": 0, "t": 361, "d": [107,794], "a": 1 }, + { "px": [416,384], "src": [272,240], "f": 0, "t": 362, "d": [107,794], "a": 1 }, + { "px": [64,400], "src": [256,240], "f": 1, "t": 361, "d": [107,803], "a": 1 }, + { "px": [48,400], "src": [272,240], "f": 1, "t": 362, "d": [107,803], "a": 1 }, + { "px": [400,400], "src": [256,240], "f": 0, "t": 361, "d": [107,826], "a": 1 }, + { "px": [416,400], "src": [272,240], "f": 0, "t": 362, "d": [107,826], "a": 1 }, + { "px": [64,416], "src": [256,240], "f": 1, "t": 361, "d": [107,835], "a": 1 }, + { "px": [48,416], "src": [272,240], "f": 1, "t": 362, "d": [107,835], "a": 1 }, + { "px": [400,416], "src": [256,240], "f": 0, "t": 361, "d": [107,858], "a": 1 }, + { "px": [416,416], "src": [272,240], "f": 0, "t": 362, "d": [107,858], "a": 1 }, + { "px": [96,432], "src": [256,240], "f": 1, "t": 361, "d": [107,869], "a": 1 }, + { "px": [80,432], "src": [272,240], "f": 1, "t": 362, "d": [107,869], "a": 1 }, + { "px": [400,432], "src": [256,240], "f": 0, "t": 361, "d": [107,890], "a": 1 }, + { "px": [416,432], "src": [272,240], "f": 0, "t": 362, "d": [107,890], "a": 1 }, + { "px": [96,448], "src": [256,240], "f": 1, "t": 361, "d": [107,901], "a": 1 }, + { "px": [80,448], "src": [272,240], "f": 1, "t": 362, "d": [107,901], "a": 1 }, + { "px": [400,448], "src": [256,240], "f": 0, "t": 361, "d": [107,922], "a": 1 }, + { "px": [416,448], "src": [272,240], "f": 0, "t": 362, "d": [107,922], "a": 1 }, + { "px": [96,464], "src": [256,240], "f": 1, "t": 361, "d": [107,933], "a": 1 }, + { "px": [80,464], "src": [272,240], "f": 1, "t": 362, "d": [107,933], "a": 1 }, + { "px": [400,464], "src": [256,240], "f": 0, "t": 361, "d": [107,954], "a": 1 }, + { "px": [416,464], "src": [272,240], "f": 0, "t": 362, "d": [107,954], "a": 1 }, + { "px": [400,480], "src": [256,240], "f": 0, "t": 361, "d": [107,986], "a": 1 }, + { "px": [416,480], "src": [272,240], "f": 0, "t": 362, "d": [107,986], "a": 1 }, + { "px": [176,496], "src": [256,240], "f": 1, "t": 361, "d": [107,1002], "a": 1 }, + { "px": [160,496], "src": [272,240], "f": 1, "t": 362, "d": [107,1002], "a": 1 }, + { "px": [400,496], "src": [256,240], "f": 0, "t": 361, "d": [107,1018], "a": 1 }, + { "px": [416,496], "src": [272,240], "f": 0, "t": 362, "d": [107,1018], "a": 1 }, + { "px": [176,512], "src": [256,240], "f": 1, "t": 361, "d": [107,1034], "a": 1 }, + { "px": [160,512], "src": [272,240], "f": 1, "t": 362, "d": [107,1034], "a": 1 }, + { "px": [400,512], "src": [256,240], "f": 0, "t": 361, "d": [107,1050], "a": 1 }, + { "px": [416,512], "src": [272,240], "f": 0, "t": 362, "d": [107,1050], "a": 1 }, + { "px": [176,528], "src": [256,240], "f": 1, "t": 361, "d": [107,1066], "a": 1 }, + { "px": [160,528], "src": [272,240], "f": 1, "t": 362, "d": [107,1066], "a": 1 }, + { "px": [400,528], "src": [256,240], "f": 0, "t": 361, "d": [107,1082], "a": 1 }, + { "px": [416,528], "src": [272,240], "f": 0, "t": 362, "d": [107,1082], "a": 1 }, + { "px": [80,192], "src": [256,240], "f": 0, "t": 361, "d": [105,390], "a": 1 }, + { "px": [96,192], "src": [272,240], "f": 0, "t": 362, "d": [105,390], "a": 1 }, + { "px": [112,192], "src": [288,240], "f": 0, "t": 363, "d": [105,390], "a": 1 }, + { "px": [160,224], "src": [256,240], "f": 0, "t": 361, "d": [105,459], "a": 1 }, + { "px": [176,224], "src": [272,240], "f": 0, "t": 362, "d": [105,459], "a": 1 }, + { "px": [192,224], "src": [288,240], "f": 0, "t": 363, "d": [105,459], "a": 1 }, + { "px": [208,224], "src": [256,240], "f": 0, "t": 361, "d": [105,462], "a": 1 }, + { "px": [224,224], "src": [272,240], "f": 0, "t": 362, "d": [105,462], "a": 1 }, + { "px": [240,224], "src": [288,240], "f": 0, "t": 363, "d": [105,462], "a": 1 }, + { "px": [256,224], "src": [256,240], "f": 0, "t": 361, "d": [105,465], "a": 1 }, + { "px": [272,224], "src": [272,240], "f": 0, "t": 362, "d": [105,465], "a": 1 }, + { "px": [288,224], "src": [288,240], "f": 0, "t": 363, "d": [105,465], "a": 1 }, + { "px": [304,224], "src": [256,240], "f": 0, "t": 361, "d": [105,468], "a": 1 }, + { "px": [320,224], "src": [272,240], "f": 0, "t": 362, "d": [105,468], "a": 1 }, + { "px": [336,224], "src": [288,240], "f": 0, "t": 363, "d": [105,468], "a": 1 }, + { "px": [128,256], "src": [256,240], "f": 0, "t": 361, "d": [105,521], "a": 1 }, + { "px": [144,256], "src": [272,240], "f": 0, "t": 362, "d": [105,521], "a": 1 }, + { "px": [160,256], "src": [288,240], "f": 0, "t": 363, "d": [105,521], "a": 1 }, + { "px": [176,256], "src": [256,240], "f": 0, "t": 361, "d": [105,524], "a": 1 }, + { "px": [192,256], "src": [272,240], "f": 0, "t": 362, "d": [105,524], "a": 1 }, + { "px": [208,256], "src": [288,240], "f": 0, "t": 363, "d": [105,524], "a": 1 }, + { "px": [160,288], "src": [256,240], "f": 0, "t": 361, "d": [105,587], "a": 1 }, + { "px": [176,288], "src": [272,240], "f": 0, "t": 362, "d": [105,587], "a": 1 }, + { "px": [192,288], "src": [288,240], "f": 0, "t": 363, "d": [105,587], "a": 1 }, + { "px": [320,320], "src": [256,240], "f": 0, "t": 361, "d": [105,661], "a": 1 }, + { "px": [336,320], "src": [272,240], "f": 0, "t": 362, "d": [105,661], "a": 1 }, + { "px": [352,320], "src": [288,240], "f": 0, "t": 363, "d": [105,661], "a": 1 }, + { "px": [208,352], "src": [256,240], "f": 0, "t": 361, "d": [105,718], "a": 1 }, + { "px": [224,352], "src": [272,240], "f": 0, "t": 362, "d": [105,718], "a": 1 }, + { "px": [240,352], "src": [288,240], "f": 0, "t": 363, "d": [105,718], "a": 1 }, + { "px": [224,384], "src": [256,240], "f": 0, "t": 361, "d": [105,783], "a": 1 }, + { "px": [240,384], "src": [272,240], "f": 0, "t": 362, "d": [105,783], "a": 1 }, + { "px": [256,384], "src": [288,240], "f": 0, "t": 363, "d": [105,783], "a": 1 }, + { "px": [112,416], "src": [256,240], "f": 0, "t": 361, "d": [105,840], "a": 1 }, + { "px": [128,416], "src": [272,240], "f": 0, "t": 362, "d": [105,840], "a": 1 }, + { "px": [144,416], "src": [288,240], "f": 0, "t": 363, "d": [105,840], "a": 1 }, + { "px": [304,416], "src": [256,240], "f": 0, "t": 361, "d": [105,852], "a": 1 }, + { "px": [320,416], "src": [272,240], "f": 0, "t": 362, "d": [105,852], "a": 1 }, + { "px": [336,416], "src": [288,240], "f": 0, "t": 363, "d": [105,852], "a": 1 }, + { "px": [352,416], "src": [256,240], "f": 0, "t": 361, "d": [105,855], "a": 1 }, + { "px": [368,416], "src": [272,240], "f": 0, "t": 362, "d": [105,855], "a": 1 }, + { "px": [384,416], "src": [288,240], "f": 0, "t": 363, "d": [105,855], "a": 1 }, + { "px": [80,448], "src": [256,240], "f": 0, "t": 361, "d": [105,902], "a": 1 }, + { "px": [96,448], "src": [272,240], "f": 0, "t": 362, "d": [105,902], "a": 1 }, + { "px": [112,448], "src": [288,240], "f": 0, "t": 363, "d": [105,902], "a": 1 }, + { "px": [128,448], "src": [256,240], "f": 0, "t": 361, "d": [105,905], "a": 1 }, + { "px": [144,448], "src": [272,240], "f": 0, "t": 362, "d": [105,905], "a": 1 }, + { "px": [160,448], "src": [288,240], "f": 0, "t": 363, "d": [105,905], "a": 1 }, + { "px": [176,448], "src": [256,240], "f": 0, "t": 361, "d": [105,908], "a": 1 }, + { "px": [192,448], "src": [272,240], "f": 0, "t": 362, "d": [105,908], "a": 1 }, + { "px": [208,448], "src": [288,240], "f": 0, "t": 363, "d": [105,908], "a": 1 }, + { "px": [176,512], "src": [256,240], "f": 0, "t": 361, "d": [105,1036], "a": 1 }, + { "px": [192,512], "src": [272,240], "f": 0, "t": 362, "d": [105,1036], "a": 1 }, + { "px": [208,512], "src": [288,240], "f": 0, "t": 363, "d": [105,1036], "a": 1 }, + { "px": [320,512], "src": [256,240], "f": 0, "t": 361, "d": [105,1045], "a": 1 }, + { "px": [336,512], "src": [272,240], "f": 0, "t": 362, "d": [105,1045], "a": 1 }, + { "px": [352,512], "src": [288,240], "f": 0, "t": 363, "d": [105,1045], "a": 1 }, + { "px": [64,208], "src": [144,240], "f": 2, "t": 354, "d": [112,357], "a": 1 }, + { "px": [64,192], "src": [144,256], "f": 2, "t": 377, "d": [112,357], "a": 1 }, + { "px": [64,176], "src": [144,272], "f": 2, "t": 400, "d": [112,357], "a": 1 }, + { "px": [80,208], "src": [160,240], "f": 2, "t": 355, "d": [112,357], "a": 1 }, + { "px": [80,192], "src": [160,256], "f": 2, "t": 378, "d": [112,357], "a": 1 }, + { "px": [80,176], "src": [160,272], "f": 2, "t": 401, "d": [112,357], "a": 1 }, + { "px": [96,208], "src": [176,240], "f": 2, "t": 356, "d": [112,357], "a": 1 }, + { "px": [96,192], "src": [176,256], "f": 2, "t": 379, "d": [112,357], "a": 1 }, + { "px": [96,176], "src": [176,272], "f": 2, "t": 402, "d": [112,357], "a": 1 }, + { "px": [144,208], "src": [144,240], "f": 2, "t": 354, "d": [112,362], "a": 1 }, + { "px": [144,192], "src": [144,256], "f": 2, "t": 377, "d": [112,362], "a": 1 }, + { "px": [144,176], "src": [144,272], "f": 2, "t": 400, "d": [112,362], "a": 1 }, + { "px": [160,208], "src": [160,240], "f": 2, "t": 355, "d": [112,362], "a": 1 }, + { "px": [160,192], "src": [160,256], "f": 2, "t": 378, "d": [112,362], "a": 1 }, + { "px": [160,176], "src": [160,272], "f": 2, "t": 401, "d": [112,362], "a": 1 }, + { "px": [176,208], "src": [176,240], "f": 2, "t": 356, "d": [112,362], "a": 1 }, + { "px": [176,192], "src": [176,256], "f": 2, "t": 379, "d": [112,362], "a": 1 }, + { "px": [176,176], "src": [176,272], "f": 2, "t": 402, "d": [112,362], "a": 1 }, + { "px": [384,288], "src": [144,240], "f": 0, "t": 354, "d": [112,665], "a": 1 }, + { "px": [384,304], "src": [144,256], "f": 0, "t": 377, "d": [112,665], "a": 1 }, + { "px": [384,320], "src": [144,272], "f": 0, "t": 400, "d": [112,665], "a": 1 }, + { "px": [400,288], "src": [160,240], "f": 0, "t": 355, "d": [112,665], "a": 1 }, + { "px": [400,304], "src": [160,256], "f": 0, "t": 378, "d": [112,665], "a": 1 }, + { "px": [400,320], "src": [160,272], "f": 0, "t": 401, "d": [112,665], "a": 1 }, + { "px": [416,288], "src": [176,240], "f": 0, "t": 356, "d": [112,665], "a": 1 }, + { "px": [416,304], "src": [176,256], "f": 0, "t": 379, "d": [112,665], "a": 1 }, + { "px": [416,320], "src": [176,272], "f": 0, "t": 402, "d": [112,665], "a": 1 }, + { "px": [304,512], "src": [144,240], "f": 0, "t": 354, "d": [112,1108], "a": 1 }, + { "px": [304,528], "src": [144,256], "f": 0, "t": 377, "d": [112,1108], "a": 1 }, + { "px": [304,544], "src": [144,272], "f": 0, "t": 400, "d": [112,1108], "a": 1 }, + { "px": [320,512], "src": [160,240], "f": 0, "t": 355, "d": [112,1108], "a": 1 }, + { "px": [320,528], "src": [160,256], "f": 0, "t": 378, "d": [112,1108], "a": 1 }, + { "px": [320,544], "src": [160,272], "f": 0, "t": 401, "d": [112,1108], "a": 1 }, + { "px": [336,512], "src": [176,240], "f": 0, "t": 356, "d": [112,1108], "a": 1 }, + { "px": [336,528], "src": [176,256], "f": 0, "t": 379, "d": [112,1108], "a": 1 }, + { "px": [336,544], "src": [176,272], "f": 0, "t": 402, "d": [112,1108], "a": 1 }, + { "px": [416,304], "src": [192,304], "f": 1, "t": 449, "d": [113,666], "a": 1 }, + { "px": [416,320], "src": [192,320], "f": 1, "t": 472, "d": [113,666], "a": 1 }, + { "px": [400,304], "src": [208,304], "f": 1, "t": 450, "d": [113,666], "a": 1 }, + { "px": [400,320], "src": [208,320], "f": 1, "t": 473, "d": [113,666], "a": 1 }, + { "px": [384,304], "src": [224,304], "f": 1, "t": 451, "d": [113,666], "a": 1 }, + { "px": [384,320], "src": [224,320], "f": 1, "t": 474, "d": [113,666], "a": 1 }, + { "px": [80,464], "src": [192,304], "f": 0, "t": 449, "d": [113,965], "a": 1 }, + { "px": [80,480], "src": [192,320], "f": 0, "t": 472, "d": [113,965], "a": 1 }, + { "px": [96,464], "src": [208,304], "f": 0, "t": 450, "d": [113,965], "a": 1 }, + { "px": [96,480], "src": [208,320], "f": 0, "t": 473, "d": [113,965], "a": 1 }, + { "px": [112,464], "src": [224,304], "f": 0, "t": 451, "d": [113,965], "a": 1 }, + { "px": [112,480], "src": [224,320], "f": 0, "t": 474, "d": [113,965], "a": 1 }, + { "px": [160,528], "src": [192,304], "f": 0, "t": 449, "d": [113,1098], "a": 1 }, + { "px": [160,544], "src": [192,320], "f": 0, "t": 472, "d": [113,1098], "a": 1 }, + { "px": [176,528], "src": [208,304], "f": 0, "t": 450, "d": [113,1098], "a": 1 }, + { "px": [176,544], "src": [208,320], "f": 0, "t": 473, "d": [113,1098], "a": 1 }, + { "px": [192,528], "src": [224,304], "f": 0, "t": 451, "d": [113,1098], "a": 1 }, + { "px": [192,544], "src": [224,320], "f": 0, "t": 474, "d": [113,1098], "a": 1 }, + { "px": [416,528], "src": [192,304], "f": 1, "t": 449, "d": [113,1114], "a": 1 }, + { "px": [416,544], "src": [192,320], "f": 1, "t": 472, "d": [113,1114], "a": 1 }, + { "px": [400,528], "src": [208,304], "f": 1, "t": 450, "d": [113,1114], "a": 1 }, + { "px": [400,544], "src": [208,320], "f": 1, "t": 473, "d": [113,1114], "a": 1 }, + { "px": [384,528], "src": [224,304], "f": 1, "t": 451, "d": [113,1114], "a": 1 }, + { "px": [384,544], "src": [224,320], "f": 1, "t": 474, "d": [113,1114], "a": 1 }, + { "px": [256,176], "src": [96,208], "f": 0, "t": 305, "d": [114,368], "a": 1 }, + { "px": [384,352], "src": [128,224], "f": 0, "t": 330, "d": [114,728], "a": 1 }, + { "px": [320,176], "src": [128,208], "f": 0, "t": 307, "d": [115,372], "a": 1 }, + { "px": [320,192], "src": [128,224], "f": 0, "t": 330, "d": [115,372], "a": 1 } + ], + "seed": 9771455, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a3707640-66b0-11ec-9cd7-59efc6b24075", "dir": "w" }, { "levelIid": "a371aec0-66b0-11ec-9cd7-6f9e87cc2465", "dir": "n" }, { "levelIid": "a373aa90-66b0-11ec-9cd7-a9310f178834", "dir": "w" }, { "levelIid": "a37690c0-66b0-11ec-9cd7-5f87e3c093eb", "dir": "w" } ] + }, + { + "identifier": "Large_water", + "iid": "a36e7a70-66b0-11ec-9cd7-67ffb406aba0", + "uid": 56, + "worldX": 1024, + "worldY": -256, + "worldDepth": 0, + "pxWid": 512, + "pxHei": 512, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a36e7a75-66b0-11ec-9cd7-0ff3971c3248", + "levelId": 56, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 9474576, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Item", + "__grid": [9,7], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 80, "y": 272, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a36e7a76-66b0-11ec-9cd7-9d8532e17d71", + "width": 24, + "height": 24, + "defUid": 72, + "px": [152,128], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Healing_potion", "__tile": { "tilesetUid": 133, "x": 80, "y": 272, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Healing_potion"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [null] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36e7a77-66b0-11ec-9cd7-17af2e50c827", + "levelId": 56, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [128,48], "src": [320,128], "f": 0, "t": 204, "d": [26,104], "a": 1 }, + { "px": [128,64], "src": [320,128], "f": 0, "t": 204, "d": [26,136], "a": 1 }, + { "px": [128,80], "src": [320,128], "f": 0, "t": 204, "d": [26,168], "a": 1 }, + { "px": [128,96], "src": [320,128], "f": 0, "t": 204, "d": [26,200], "a": 1 }, + { "px": [432,96], "src": [320,128], "f": 1, "t": 204, "d": [26,219], "a": 1 }, + { "px": [128,112], "src": [320,128], "f": 0, "t": 204, "d": [26,232], "a": 1 }, + { "px": [432,112], "src": [320,128], "f": 1, "t": 204, "d": [26,251], "a": 1 }, + { "px": [256,144], "src": [320,128], "f": 0, "t": 204, "d": [26,304], "a": 1 }, + { "px": [368,144], "src": [320,128], "f": 1, "t": 204, "d": [26,311], "a": 1 }, + { "px": [176,160], "src": [320,128], "f": 0, "t": 204, "d": [26,331], "a": 1 }, + { "px": [464,160], "src": [320,128], "f": 1, "t": 204, "d": [26,349], "a": 1 }, + { "px": [176,176], "src": [320,128], "f": 0, "t": 204, "d": [26,363], "a": 1 }, + { "px": [464,176], "src": [320,128], "f": 1, "t": 204, "d": [26,381], "a": 1 }, + { "px": [176,192], "src": [320,128], "f": 0, "t": 204, "d": [26,395], "a": 1 }, + { "px": [464,192], "src": [320,128], "f": 1, "t": 204, "d": [26,413], "a": 1 }, + { "px": [176,208], "src": [320,128], "f": 0, "t": 204, "d": [26,427], "a": 1 }, + { "px": [464,208], "src": [320,128], "f": 1, "t": 204, "d": [26,445], "a": 1 }, + { "px": [176,224], "src": [320,128], "f": 0, "t": 204, "d": [26,459], "a": 1 }, + { "px": [464,224], "src": [320,128], "f": 1, "t": 204, "d": [26,477], "a": 1 }, + { "px": [112,240], "src": [320,128], "f": 0, "t": 204, "d": [26,487], "a": 1 }, + { "px": [464,240], "src": [320,128], "f": 1, "t": 204, "d": [26,509], "a": 1 }, + { "px": [112,256], "src": [320,128], "f": 0, "t": 204, "d": [26,519], "a": 1 }, + { "px": [464,256], "src": [320,128], "f": 1, "t": 204, "d": [26,541], "a": 1 }, + { "px": [112,272], "src": [320,128], "f": 0, "t": 204, "d": [26,551], "a": 1 }, + { "px": [464,272], "src": [320,128], "f": 1, "t": 204, "d": [26,573], "a": 1 }, + { "px": [464,288], "src": [320,128], "f": 1, "t": 204, "d": [26,605], "a": 1 }, + { "px": [464,304], "src": [320,128], "f": 1, "t": 204, "d": [26,637], "a": 1 }, + { "px": [432,80], "src": [320,96], "f": 1, "t": 158, "d": [138,187], "a": 1 }, + { "px": [256,128], "src": [320,96], "f": 0, "t": 158, "d": [138,272], "a": 1 }, + { "px": [368,128], "src": [320,96], "f": 1, "t": 158, "d": [138,279], "a": 1 }, + { "px": [128,48], "src": [336,112], "f": 0, "t": 182, "d": [27,104], "a": 1 }, + { "px": [144,48], "src": [336,112], "f": 0, "t": 182, "d": [27,105], "a": 1 }, + { "px": [160,48], "src": [336,112], "f": 0, "t": 182, "d": [27,106], "a": 1 }, + { "px": [176,48], "src": [336,112], "f": 0, "t": 182, "d": [27,107], "a": 1 }, + { "px": [192,48], "src": [336,112], "f": 0, "t": 182, "d": [27,108], "a": 1 }, + { "px": [208,48], "src": [336,112], "f": 0, "t": 182, "d": [27,109], "a": 1 }, + { "px": [224,48], "src": [336,112], "f": 0, "t": 182, "d": [27,110], "a": 1 }, + { "px": [240,48], "src": [336,112], "f": 0, "t": 182, "d": [27,111], "a": 1 }, + { "px": [256,48], "src": [336,112], "f": 0, "t": 182, "d": [27,112], "a": 1 }, + { "px": [272,48], "src": [336,112], "f": 0, "t": 182, "d": [27,113], "a": 1 }, + { "px": [288,48], "src": [336,112], "f": 0, "t": 182, "d": [27,114], "a": 1 }, + { "px": [304,48], "src": [336,112], "f": 0, "t": 182, "d": [27,115], "a": 1 }, + { "px": [320,48], "src": [336,112], "f": 0, "t": 182, "d": [27,116], "a": 1 }, + { "px": [336,48], "src": [336,112], "f": 0, "t": 182, "d": [27,117], "a": 1 }, + { "px": [352,48], "src": [336,112], "f": 0, "t": 182, "d": [27,118], "a": 1 }, + { "px": [368,48], "src": [336,112], "f": 0, "t": 182, "d": [27,119], "a": 1 }, + { "px": [384,48], "src": [336,112], "f": 0, "t": 182, "d": [27,120], "a": 1 }, + { "px": [400,48], "src": [336,112], "f": 0, "t": 182, "d": [27,121], "a": 1 }, + { "px": [416,48], "src": [336,112], "f": 0, "t": 182, "d": [27,122], "a": 1 }, + { "px": [432,48], "src": [336,112], "f": 0, "t": 182, "d": [27,123], "a": 1 }, + { "px": [448,48], "src": [336,112], "f": 0, "t": 182, "d": [27,124], "a": 1 }, + { "px": [464,48], "src": [336,112], "f": 0, "t": 182, "d": [27,125], "a": 1 }, + { "px": [480,48], "src": [336,112], "f": 0, "t": 182, "d": [27,126], "a": 1 }, + { "px": [496,48], "src": [336,112], "f": 0, "t": 182, "d": [27,127], "a": 1 }, + { "px": [176,160], "src": [336,112], "f": 0, "t": 182, "d": [27,331], "a": 1 }, + { "px": [192,160], "src": [336,112], "f": 0, "t": 182, "d": [27,332], "a": 1 }, + { "px": [208,160], "src": [336,112], "f": 0, "t": 182, "d": [27,333], "a": 1 }, + { "px": [224,160], "src": [336,112], "f": 0, "t": 182, "d": [27,334], "a": 1 }, + { "px": [240,160], "src": [336,112], "f": 0, "t": 182, "d": [27,335], "a": 1 }, + { "px": [384,160], "src": [336,112], "f": 0, "t": 182, "d": [27,344], "a": 1 }, + { "px": [400,160], "src": [336,112], "f": 0, "t": 182, "d": [27,345], "a": 1 }, + { "px": [416,160], "src": [336,112], "f": 0, "t": 182, "d": [27,346], "a": 1 }, + { "px": [432,160], "src": [336,112], "f": 0, "t": 182, "d": [27,347], "a": 1 }, + { "px": [448,160], "src": [336,112], "f": 0, "t": 182, "d": [27,348], "a": 1 }, + { "px": [464,160], "src": [336,112], "f": 0, "t": 182, "d": [27,349], "a": 1 }, + { "px": [112,240], "src": [336,112], "f": 0, "t": 182, "d": [27,487], "a": 1 }, + { "px": [128,240], "src": [336,112], "f": 0, "t": 182, "d": [27,488], "a": 1 }, + { "px": [144,240], "src": [336,112], "f": 0, "t": 182, "d": [27,489], "a": 1 }, + { "px": [160,240], "src": [336,112], "f": 0, "t": 182, "d": [27,490], "a": 1 }, + { "px": [0,288], "src": [336,112], "f": 0, "t": 182, "d": [27,576], "a": 1 }, + { "px": [16,288], "src": [336,112], "f": 0, "t": 182, "d": [27,577], "a": 1 }, + { "px": [32,288], "src": [336,112], "f": 0, "t": 182, "d": [27,578], "a": 1 }, + { "px": [48,288], "src": [336,112], "f": 0, "t": 182, "d": [27,579], "a": 1 }, + { "px": [64,288], "src": [336,112], "f": 0, "t": 182, "d": [27,580], "a": 1 }, + { "px": [80,288], "src": [336,112], "f": 0, "t": 182, "d": [27,581], "a": 1 }, + { "px": [96,288], "src": [336,112], "f": 0, "t": 182, "d": [27,582], "a": 1 }, + { "px": [256,160], "src": [320,112], "f": 0, "t": 181, "d": [137,336], "a": 1 }, + { "px": [368,160], "src": [320,112], "f": 1, "t": 181, "d": [137,343], "a": 1 }, + { "px": [176,240], "src": [320,112], "f": 0, "t": 181, "d": [137,491], "a": 1 }, + { "px": [112,288], "src": [320,112], "f": 0, "t": 181, "d": [137,583], "a": 1 } + ], + "seed": 5084082, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36e7a78-66b0-11ec-9cd7-0b7506c4a9dd", + "levelId": 56, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, + 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1, + 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, + 1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1, + 1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [112,336], "src": [320,176], "f": 0, "t": 273, "d": [28,679], "a": 1 }, + { "px": [128,336], "src": [320,176], "f": 0, "t": 273, "d": [28,680], "a": 1 }, + { "px": [144,336], "src": [320,176], "f": 0, "t": 273, "d": [28,681], "a": 1 }, + { "px": [160,336], "src": [320,176], "f": 0, "t": 273, "d": [28,682], "a": 1 }, + { "px": [176,336], "src": [320,176], "f": 0, "t": 273, "d": [28,683], "a": 1 }, + { "px": [192,336], "src": [320,176], "f": 0, "t": 273, "d": [28,684], "a": 1 }, + { "px": [208,336], "src": [320,176], "f": 0, "t": 273, "d": [28,685], "a": 1 }, + { "px": [224,336], "src": [320,176], "f": 0, "t": 273, "d": [28,686], "a": 1 }, + { "px": [240,336], "src": [320,176], "f": 0, "t": 273, "d": [28,687], "a": 1 }, + { "px": [256,336], "src": [320,176], "f": 0, "t": 273, "d": [28,688], "a": 1 }, + { "px": [272,336], "src": [320,176], "f": 0, "t": 273, "d": [28,689], "a": 1 }, + { "px": [288,336], "src": [320,176], "f": 0, "t": 273, "d": [28,690], "a": 1 }, + { "px": [304,336], "src": [320,176], "f": 0, "t": 273, "d": [28,691], "a": 1 }, + { "px": [320,336], "src": [320,176], "f": 0, "t": 273, "d": [28,692], "a": 1 }, + { "px": [336,336], "src": [320,176], "f": 0, "t": 273, "d": [28,693], "a": 1 }, + { "px": [352,336], "src": [320,176], "f": 0, "t": 273, "d": [28,694], "a": 1 }, + { "px": [368,336], "src": [320,176], "f": 0, "t": 273, "d": [28,695], "a": 1 }, + { "px": [384,336], "src": [320,176], "f": 0, "t": 273, "d": [28,696], "a": 1 }, + { "px": [400,336], "src": [320,176], "f": 0, "t": 273, "d": [28,697], "a": 1 }, + { "px": [416,336], "src": [320,176], "f": 0, "t": 273, "d": [28,698], "a": 1 }, + { "px": [432,336], "src": [320,176], "f": 0, "t": 273, "d": [28,699], "a": 1 }, + { "px": [448,336], "src": [320,176], "f": 0, "t": 273, "d": [28,700], "a": 1 }, + { "px": [464,336], "src": [320,176], "f": 0, "t": 273, "d": [28,701], "a": 1 }, + { "px": [112,352], "src": [320,176], "f": 0, "t": 273, "d": [28,711], "a": 1 }, + { "px": [128,352], "src": [320,176], "f": 0, "t": 273, "d": [28,712], "a": 1 }, + { "px": [144,352], "src": [320,176], "f": 0, "t": 273, "d": [28,713], "a": 1 }, + { "px": [160,352], "src": [320,176], "f": 0, "t": 273, "d": [28,714], "a": 1 }, + { "px": [176,352], "src": [320,176], "f": 0, "t": 273, "d": [28,715], "a": 1 }, + { "px": [192,352], "src": [320,176], "f": 0, "t": 273, "d": [28,716], "a": 1 }, + { "px": [208,352], "src": [320,176], "f": 0, "t": 273, "d": [28,717], "a": 1 }, + { "px": [224,352], "src": [320,176], "f": 0, "t": 273, "d": [28,718], "a": 1 }, + { "px": [240,352], "src": [320,176], "f": 0, "t": 273, "d": [28,719], "a": 1 }, + { "px": [256,352], "src": [320,176], "f": 0, "t": 273, "d": [28,720], "a": 1 }, + { "px": [272,352], "src": [320,176], "f": 0, "t": 273, "d": [28,721], "a": 1 }, + { "px": [288,352], "src": [320,176], "f": 0, "t": 273, "d": [28,722], "a": 1 }, + { "px": [304,352], "src": [320,176], "f": 0, "t": 273, "d": [28,723], "a": 1 }, + { "px": [320,352], "src": [320,176], "f": 0, "t": 273, "d": [28,724], "a": 1 }, + { "px": [336,352], "src": [320,176], "f": 0, "t": 273, "d": [28,725], "a": 1 }, + { "px": [352,352], "src": [320,176], "f": 0, "t": 273, "d": [28,726], "a": 1 }, + { "px": [368,352], "src": [320,176], "f": 0, "t": 273, "d": [28,727], "a": 1 }, + { "px": [384,352], "src": [320,176], "f": 0, "t": 273, "d": [28,728], "a": 1 }, + { "px": [400,352], "src": [320,176], "f": 0, "t": 273, "d": [28,729], "a": 1 }, + { "px": [416,352], "src": [320,176], "f": 0, "t": 273, "d": [28,730], "a": 1 }, + { "px": [432,352], "src": [320,176], "f": 0, "t": 273, "d": [28,731], "a": 1 }, + { "px": [448,352], "src": [320,176], "f": 0, "t": 273, "d": [28,732], "a": 1 }, + { "px": [464,352], "src": [320,176], "f": 0, "t": 273, "d": [28,733], "a": 1 }, + { "px": [112,368], "src": [320,176], "f": 0, "t": 273, "d": [28,743], "a": 1 }, + { "px": [128,368], "src": [320,176], "f": 0, "t": 273, "d": [28,744], "a": 1 }, + { "px": [144,368], "src": [320,176], "f": 0, "t": 273, "d": [28,745], "a": 1 }, + { "px": [160,368], "src": [320,176], "f": 0, "t": 273, "d": [28,746], "a": 1 }, + { "px": [176,368], "src": [320,176], "f": 0, "t": 273, "d": [28,747], "a": 1 }, + { "px": [192,368], "src": [320,176], "f": 0, "t": 273, "d": [28,748], "a": 1 }, + { "px": [208,368], "src": [320,176], "f": 0, "t": 273, "d": [28,749], "a": 1 }, + { "px": [224,368], "src": [320,176], "f": 0, "t": 273, "d": [28,750], "a": 1 }, + { "px": [240,368], "src": [320,176], "f": 0, "t": 273, "d": [28,751], "a": 1 }, + { "px": [256,368], "src": [320,176], "f": 0, "t": 273, "d": [28,752], "a": 1 }, + { "px": [272,368], "src": [320,176], "f": 0, "t": 273, "d": [28,753], "a": 1 }, + { "px": [288,368], "src": [320,176], "f": 0, "t": 273, "d": [28,754], "a": 1 }, + { "px": [304,368], "src": [320,176], "f": 0, "t": 273, "d": [28,755], "a": 1 }, + { "px": [320,368], "src": [320,176], "f": 0, "t": 273, "d": [28,756], "a": 1 }, + { "px": [336,368], "src": [320,176], "f": 0, "t": 273, "d": [28,757], "a": 1 }, + { "px": [352,368], "src": [320,176], "f": 0, "t": 273, "d": [28,758], "a": 1 }, + { "px": [368,368], "src": [320,176], "f": 0, "t": 273, "d": [28,759], "a": 1 }, + { "px": [384,368], "src": [320,176], "f": 0, "t": 273, "d": [28,760], "a": 1 }, + { "px": [400,368], "src": [320,176], "f": 0, "t": 273, "d": [28,761], "a": 1 }, + { "px": [416,368], "src": [320,176], "f": 0, "t": 273, "d": [28,762], "a": 1 }, + { "px": [432,368], "src": [320,176], "f": 0, "t": 273, "d": [28,763], "a": 1 }, + { "px": [448,368], "src": [320,176], "f": 0, "t": 273, "d": [28,764], "a": 1 }, + { "px": [464,368], "src": [320,176], "f": 0, "t": 273, "d": [28,765], "a": 1 }, + { "px": [112,384], "src": [320,176], "f": 0, "t": 273, "d": [28,775], "a": 1 }, + { "px": [128,384], "src": [320,176], "f": 0, "t": 273, "d": [28,776], "a": 1 }, + { "px": [144,384], "src": [320,176], "f": 0, "t": 273, "d": [28,777], "a": 1 }, + { "px": [160,384], "src": [320,176], "f": 0, "t": 273, "d": [28,778], "a": 1 }, + { "px": [176,384], "src": [320,176], "f": 0, "t": 273, "d": [28,779], "a": 1 }, + { "px": [192,384], "src": [320,176], "f": 0, "t": 273, "d": [28,780], "a": 1 }, + { "px": [208,384], "src": [320,176], "f": 0, "t": 273, "d": [28,781], "a": 1 }, + { "px": [224,384], "src": [320,176], "f": 0, "t": 273, "d": [28,782], "a": 1 }, + { "px": [240,384], "src": [320,176], "f": 0, "t": 273, "d": [28,783], "a": 1 }, + { "px": [256,384], "src": [320,176], "f": 0, "t": 273, "d": [28,784], "a": 1 }, + { "px": [272,384], "src": [320,176], "f": 0, "t": 273, "d": [28,785], "a": 1 }, + { "px": [288,384], "src": [320,176], "f": 0, "t": 273, "d": [28,786], "a": 1 }, + { "px": [304,384], "src": [320,176], "f": 0, "t": 273, "d": [28,787], "a": 1 }, + { "px": [320,384], "src": [320,176], "f": 0, "t": 273, "d": [28,788], "a": 1 }, + { "px": [336,384], "src": [320,176], "f": 0, "t": 273, "d": [28,789], "a": 1 }, + { "px": [352,384], "src": [320,176], "f": 0, "t": 273, "d": [28,790], "a": 1 }, + { "px": [368,384], "src": [320,176], "f": 0, "t": 273, "d": [28,791], "a": 1 }, + { "px": [384,384], "src": [320,176], "f": 0, "t": 273, "d": [28,792], "a": 1 }, + { "px": [400,384], "src": [320,176], "f": 0, "t": 273, "d": [28,793], "a": 1 }, + { "px": [416,384], "src": [320,176], "f": 0, "t": 273, "d": [28,794], "a": 1 }, + { "px": [432,384], "src": [320,176], "f": 0, "t": 273, "d": [28,795], "a": 1 }, + { "px": [448,384], "src": [320,176], "f": 0, "t": 273, "d": [28,796], "a": 1 }, + { "px": [464,384], "src": [320,176], "f": 0, "t": 273, "d": [28,797], "a": 1 }, + { "px": [112,400], "src": [320,176], "f": 0, "t": 273, "d": [28,807], "a": 1 }, + { "px": [128,400], "src": [320,176], "f": 0, "t": 273, "d": [28,808], "a": 1 }, + { "px": [144,400], "src": [320,176], "f": 0, "t": 273, "d": [28,809], "a": 1 }, + { "px": [160,400], "src": [320,176], "f": 0, "t": 273, "d": [28,810], "a": 1 }, + { "px": [176,400], "src": [320,176], "f": 0, "t": 273, "d": [28,811], "a": 1 }, + { "px": [192,400], "src": [320,176], "f": 0, "t": 273, "d": [28,812], "a": 1 }, + { "px": [208,400], "src": [320,176], "f": 0, "t": 273, "d": [28,813], "a": 1 }, + { "px": [224,400], "src": [320,176], "f": 0, "t": 273, "d": [28,814], "a": 1 }, + { "px": [240,400], "src": [320,176], "f": 0, "t": 273, "d": [28,815], "a": 1 }, + { "px": [256,400], "src": [320,176], "f": 0, "t": 273, "d": [28,816], "a": 1 }, + { "px": [272,400], "src": [320,176], "f": 0, "t": 273, "d": [28,817], "a": 1 }, + { "px": [288,400], "src": [320,176], "f": 0, "t": 273, "d": [28,818], "a": 1 }, + { "px": [304,400], "src": [320,176], "f": 0, "t": 273, "d": [28,819], "a": 1 }, + { "px": [320,400], "src": [320,176], "f": 0, "t": 273, "d": [28,820], "a": 1 }, + { "px": [336,400], "src": [320,176], "f": 0, "t": 273, "d": [28,821], "a": 1 }, + { "px": [352,400], "src": [320,176], "f": 0, "t": 273, "d": [28,822], "a": 1 }, + { "px": [368,400], "src": [320,176], "f": 0, "t": 273, "d": [28,823], "a": 1 }, + { "px": [384,400], "src": [320,176], "f": 0, "t": 273, "d": [28,824], "a": 1 }, + { "px": [400,400], "src": [320,176], "f": 0, "t": 273, "d": [28,825], "a": 1 }, + { "px": [416,400], "src": [320,176], "f": 0, "t": 273, "d": [28,826], "a": 1 }, + { "px": [432,400], "src": [320,176], "f": 0, "t": 273, "d": [28,827], "a": 1 }, + { "px": [448,400], "src": [320,176], "f": 0, "t": 273, "d": [28,828], "a": 1 }, + { "px": [464,400], "src": [320,176], "f": 0, "t": 273, "d": [28,829], "a": 1 }, + { "px": [112,416], "src": [320,176], "f": 0, "t": 273, "d": [28,839], "a": 1 }, + { "px": [128,416], "src": [320,176], "f": 0, "t": 273, "d": [28,840], "a": 1 }, + { "px": [144,416], "src": [320,176], "f": 0, "t": 273, "d": [28,841], "a": 1 }, + { "px": [160,416], "src": [320,176], "f": 0, "t": 273, "d": [28,842], "a": 1 }, + { "px": [176,416], "src": [320,176], "f": 0, "t": 273, "d": [28,843], "a": 1 }, + { "px": [192,416], "src": [320,176], "f": 0, "t": 273, "d": [28,844], "a": 1 }, + { "px": [208,416], "src": [320,176], "f": 0, "t": 273, "d": [28,845], "a": 1 }, + { "px": [224,416], "src": [320,176], "f": 0, "t": 273, "d": [28,846], "a": 1 }, + { "px": [240,416], "src": [320,176], "f": 0, "t": 273, "d": [28,847], "a": 1 }, + { "px": [256,416], "src": [320,176], "f": 0, "t": 273, "d": [28,848], "a": 1 }, + { "px": [272,416], "src": [320,176], "f": 0, "t": 273, "d": [28,849], "a": 1 }, + { "px": [288,416], "src": [320,176], "f": 0, "t": 273, "d": [28,850], "a": 1 }, + { "px": [304,416], "src": [320,176], "f": 0, "t": 273, "d": [28,851], "a": 1 }, + { "px": [320,416], "src": [320,176], "f": 0, "t": 273, "d": [28,852], "a": 1 }, + { "px": [336,416], "src": [320,176], "f": 0, "t": 273, "d": [28,853], "a": 1 }, + { "px": [352,416], "src": [320,176], "f": 0, "t": 273, "d": [28,854], "a": 1 }, + { "px": [368,416], "src": [320,176], "f": 0, "t": 273, "d": [28,855], "a": 1 }, + { "px": [384,416], "src": [320,176], "f": 0, "t": 273, "d": [28,856], "a": 1 }, + { "px": [400,416], "src": [320,176], "f": 0, "t": 273, "d": [28,857], "a": 1 }, + { "px": [416,416], "src": [320,176], "f": 0, "t": 273, "d": [28,858], "a": 1 }, + { "px": [432,416], "src": [320,176], "f": 0, "t": 273, "d": [28,859], "a": 1 }, + { "px": [448,416], "src": [320,176], "f": 0, "t": 273, "d": [28,860], "a": 1 }, + { "px": [464,416], "src": [320,176], "f": 0, "t": 273, "d": [28,861], "a": 1 }, + { "px": [112,320], "src": [320,160], "f": 0, "t": 250, "d": [21,647], "a": 1 }, + { "px": [128,320], "src": [320,160], "f": 0, "t": 250, "d": [21,648], "a": 1 }, + { "px": [144,320], "src": [320,160], "f": 0, "t": 250, "d": [21,649], "a": 1 }, + { "px": [160,320], "src": [320,160], "f": 0, "t": 250, "d": [21,650], "a": 1 }, + { "px": [176,320], "src": [320,160], "f": 0, "t": 250, "d": [21,651], "a": 1 }, + { "px": [192,320], "src": [320,160], "f": 0, "t": 250, "d": [21,652], "a": 1 }, + { "px": [208,320], "src": [320,160], "f": 0, "t": 250, "d": [21,653], "a": 1 }, + { "px": [224,320], "src": [320,160], "f": 0, "t": 250, "d": [21,654], "a": 1 }, + { "px": [240,320], "src": [320,160], "f": 0, "t": 250, "d": [21,655], "a": 1 }, + { "px": [256,320], "src": [320,160], "f": 0, "t": 250, "d": [21,656], "a": 1 }, + { "px": [272,320], "src": [320,160], "f": 0, "t": 250, "d": [21,657], "a": 1 }, + { "px": [288,320], "src": [320,160], "f": 0, "t": 250, "d": [21,658], "a": 1 }, + { "px": [304,320], "src": [320,160], "f": 0, "t": 250, "d": [21,659], "a": 1 }, + { "px": [320,320], "src": [320,160], "f": 0, "t": 250, "d": [21,660], "a": 1 }, + { "px": [336,320], "src": [320,160], "f": 0, "t": 250, "d": [21,661], "a": 1 }, + { "px": [352,320], "src": [320,160], "f": 0, "t": 250, "d": [21,662], "a": 1 }, + { "px": [368,320], "src": [320,160], "f": 0, "t": 250, "d": [21,663], "a": 1 }, + { "px": [384,320], "src": [320,160], "f": 0, "t": 250, "d": [21,664], "a": 1 }, + { "px": [400,320], "src": [320,160], "f": 0, "t": 250, "d": [21,665], "a": 1 }, + { "px": [416,320], "src": [320,160], "f": 0, "t": 250, "d": [21,666], "a": 1 }, + { "px": [432,320], "src": [320,160], "f": 0, "t": 250, "d": [21,667], "a": 1 }, + { "px": [448,320], "src": [320,160], "f": 0, "t": 250, "d": [21,668], "a": 1 }, + { "px": [464,320], "src": [320,160], "f": 0, "t": 250, "d": [21,669], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [8,11], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [8,13], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [8,21], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [8,23], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [8,29], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [8,44], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [8,46], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [8,48], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [8,52], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [8,54], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [8,56], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [8,58], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [8,60], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [8,102], "a": 1 }, + { "px": [96,80], "src": [32,32], "f": 0, "t": 48, "d": [8,166], "a": 1 }, + { "px": [496,96], "src": [32,32], "f": 0, "t": 48, "d": [8,223], "a": 1 }, + { "px": [464,128], "src": [32,32], "f": 0, "t": 48, "d": [8,285], "a": 1 }, + { "px": [496,128], "src": [32,32], "f": 0, "t": 48, "d": [8,287], "a": 1 }, + { "px": [80,160], "src": [32,32], "f": 0, "t": 48, "d": [8,325], "a": 1 }, + { "px": [112,160], "src": [32,32], "f": 0, "t": 48, "d": [8,327], "a": 1 }, + { "px": [80,192], "src": [32,32], "f": 0, "t": 48, "d": [8,389], "a": 1 }, + { "px": [112,192], "src": [32,32], "f": 0, "t": 48, "d": [8,391], "a": 1 }, + { "px": [144,192], "src": [32,32], "f": 0, "t": 48, "d": [8,393], "a": 1 }, + { "px": [64,208], "src": [32,32], "f": 0, "t": 48, "d": [8,420], "a": 1 }, + { "px": [96,208], "src": [32,32], "f": 0, "t": 48, "d": [8,422], "a": 1 }, + { "px": [128,208], "src": [32,32], "f": 0, "t": 48, "d": [8,424], "a": 1 }, + { "px": [80,224], "src": [32,32], "f": 0, "t": 48, "d": [8,453], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [8,479], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [8,480], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [8,482], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [8,484], "a": 1 }, + { "px": [48,256], "src": [32,32], "f": 0, "t": 48, "d": [8,515], "a": 1 }, + { "px": [80,256], "src": [32,32], "f": 0, "t": 48, "d": [8,517], "a": 1 }, + { "px": [496,288], "src": [32,32], "f": 0, "t": 48, "d": [8,607], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [8,672], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [8,674], "a": 1 }, + { "px": [64,336], "src": [32,32], "f": 0, "t": 48, "d": [8,676], "a": 1 }, + { "px": [48,352], "src": [32,32], "f": 0, "t": 48, "d": [8,707], "a": 1 }, + { "px": [80,352], "src": [32,32], "f": 0, "t": 48, "d": [8,709], "a": 1 }, + { "px": [496,352], "src": [32,32], "f": 0, "t": 48, "d": [8,735], "a": 1 }, + { "px": [64,368], "src": [32,32], "f": 0, "t": 48, "d": [8,740], "a": 1 }, + { "px": [496,384], "src": [32,32], "f": 0, "t": 48, "d": [8,799], "a": 1 }, + { "px": [64,400], "src": [32,32], "f": 0, "t": 48, "d": [8,804], "a": 1 }, + { "px": [80,416], "src": [32,32], "f": 0, "t": 48, "d": [8,837], "a": 1 }, + { "px": [176,448], "src": [32,32], "f": 0, "t": 48, "d": [8,907], "a": 1 }, + { "px": [208,448], "src": [32,32], "f": 0, "t": 48, "d": [8,909], "a": 1 }, + { "px": [240,448], "src": [32,32], "f": 0, "t": 48, "d": [8,911], "a": 1 }, + { "px": [272,448], "src": [32,32], "f": 0, "t": 48, "d": [8,913], "a": 1 }, + { "px": [304,448], "src": [32,32], "f": 0, "t": 48, "d": [8,915], "a": 1 }, + { "px": [336,448], "src": [32,32], "f": 0, "t": 48, "d": [8,917], "a": 1 }, + { "px": [368,448], "src": [32,32], "f": 0, "t": 48, "d": [8,919], "a": 1 }, + { "px": [400,448], "src": [32,32], "f": 0, "t": 48, "d": [8,921], "a": 1 }, + { "px": [432,448], "src": [32,32], "f": 0, "t": 48, "d": [8,923], "a": 1 }, + { "px": [464,448], "src": [32,32], "f": 0, "t": 48, "d": [8,925], "a": 1 }, + { "px": [96,464], "src": [32,32], "f": 0, "t": 48, "d": [8,934], "a": 1 }, + { "px": [128,464], "src": [32,32], "f": 0, "t": 48, "d": [8,936], "a": 1 }, + { "px": [192,464], "src": [32,32], "f": 0, "t": 48, "d": [8,940], "a": 1 }, + { "px": [224,464], "src": [32,32], "f": 0, "t": 48, "d": [8,942], "a": 1 }, + { "px": [288,464], "src": [32,32], "f": 0, "t": 48, "d": [8,946], "a": 1 }, + { "px": [320,464], "src": [32,32], "f": 0, "t": 48, "d": [8,948], "a": 1 }, + { "px": [384,464], "src": [32,32], "f": 0, "t": 48, "d": [8,952], "a": 1 }, + { "px": [416,464], "src": [32,32], "f": 0, "t": 48, "d": [8,954], "a": 1 }, + { "px": [448,464], "src": [32,32], "f": 0, "t": 48, "d": [8,956], "a": 1 }, + { "px": [480,464], "src": [32,32], "f": 0, "t": 48, "d": [8,958], "a": 1 }, + { "px": [80,0], "src": [96,96], "f": 0, "t": 144, "d": [83,5], "a": 1 }, + { "px": [112,0], "src": [96,96], "f": 0, "t": 144, "d": [83,7], "a": 1 }, + { "px": [144,0], "src": [64,96], "f": 0, "t": 142, "d": [83,9], "a": 1 }, + { "px": [240,0], "src": [96,96], "f": 0, "t": 144, "d": [83,15], "a": 1 }, + { "px": [272,0], "src": [64,96], "f": 0, "t": 142, "d": [83,17], "a": 1 }, + { "px": [304,0], "src": [64,96], "f": 0, "t": 142, "d": [83,19], "a": 1 }, + { "px": [400,0], "src": [96,96], "f": 0, "t": 144, "d": [83,25], "a": 1 }, + { "px": [432,0], "src": [64,96], "f": 0, "t": 142, "d": [83,27], "a": 1 }, + { "px": [496,0], "src": [96,96], "f": 0, "t": 144, "d": [83,31], "a": 1 }, + { "px": [96,16], "src": [96,96], "f": 0, "t": 144, "d": [83,38], "a": 1 }, + { "px": [128,16], "src": [96,96], "f": 0, "t": 144, "d": [83,40], "a": 1 }, + { "px": [160,16], "src": [64,96], "f": 0, "t": 142, "d": [83,42], "a": 1 }, + { "px": [288,16], "src": [64,96], "f": 0, "t": 142, "d": [83,50], "a": 1 }, + { "px": [480,16], "src": [64,96], "f": 0, "t": 142, "d": [83,62], "a": 1 }, + { "px": [80,32], "src": [96,96], "f": 0, "t": 144, "d": [83,69], "a": 1 }, + { "px": [80,64], "src": [64,96], "f": 0, "t": 142, "d": [83,133], "a": 1 }, + { "px": [80,96], "src": [96,96], "f": 0, "t": 144, "d": [83,197], "a": 1 }, + { "px": [464,96], "src": [64,96], "f": 0, "t": 142, "d": [83,221], "a": 1 }, + { "px": [96,112], "src": [96,96], "f": 0, "t": 144, "d": [83,230], "a": 1 }, + { "px": [480,112], "src": [96,96], "f": 0, "t": 144, "d": [83,254], "a": 1 }, + { "px": [80,128], "src": [64,96], "f": 0, "t": 142, "d": [83,261], "a": 1 }, + { "px": [96,144], "src": [64,96], "f": 0, "t": 142, "d": [83,294], "a": 1 }, + { "px": [128,144], "src": [64,96], "f": 0, "t": 142, "d": [83,296], "a": 1 }, + { "px": [144,160], "src": [96,96], "f": 0, "t": 144, "d": [83,329], "a": 1 }, + { "px": [496,160], "src": [64,96], "f": 0, "t": 142, "d": [83,351], "a": 1 }, + { "px": [128,176], "src": [64,96], "f": 0, "t": 142, "d": [83,360], "a": 1 }, + { "px": [496,192], "src": [64,96], "f": 0, "t": 142, "d": [83,415], "a": 1 }, + { "px": [16,256], "src": [96,96], "f": 0, "t": 144, "d": [83,513], "a": 1 }, + { "px": [496,256], "src": [64,96], "f": 0, "t": 142, "d": [83,543], "a": 1 }, + { "px": [496,320], "src": [96,96], "f": 0, "t": 144, "d": [83,671], "a": 1 }, + { "px": [16,352], "src": [64,96], "f": 0, "t": 142, "d": [83,705], "a": 1 }, + { "px": [80,384], "src": [96,96], "f": 0, "t": 144, "d": [83,773], "a": 1 }, + { "px": [496,416], "src": [96,96], "f": 0, "t": 144, "d": [83,863], "a": 1 }, + { "px": [64,432], "src": [64,96], "f": 0, "t": 142, "d": [83,868], "a": 1 }, + { "px": [80,448], "src": [64,96], "f": 0, "t": 142, "d": [83,901], "a": 1 }, + { "px": [112,448], "src": [96,96], "f": 0, "t": 144, "d": [83,903], "a": 1 }, + { "px": [144,448], "src": [64,96], "f": 0, "t": 142, "d": [83,905], "a": 1 }, + { "px": [496,448], "src": [96,96], "f": 0, "t": 144, "d": [83,927], "a": 1 }, + { "px": [64,464], "src": [96,96], "f": 0, "t": 144, "d": [83,932], "a": 1 }, + { "px": [160,464], "src": [96,96], "f": 0, "t": 144, "d": [83,938], "a": 1 }, + { "px": [256,464], "src": [96,96], "f": 0, "t": 144, "d": [83,944], "a": 1 }, + { "px": [352,464], "src": [64,96], "f": 0, "t": 142, "d": [83,950], "a": 1 }, + { "px": [96,0], "src": [96,0], "f": 0, "t": 6, "d": [101,6], "a": 1 }, + { "px": [128,0], "src": [192,16], "f": 0, "t": 35, "d": [101,8], "a": 1 }, + { "px": [160,0], "src": [224,96], "f": 0, "t": 152, "d": [101,10], "a": 1 }, + { "px": [192,0], "src": [96,0], "f": 0, "t": 6, "d": [101,12], "a": 1 }, + { "px": [224,0], "src": [192,16], "f": 0, "t": 35, "d": [101,14], "a": 1 }, + { "px": [256,0], "src": [192,16], "f": 0, "t": 35, "d": [101,16], "a": 1 }, + { "px": [288,0], "src": [96,0], "f": 0, "t": 6, "d": [101,18], "a": 1 }, + { "px": [320,0], "src": [192,16], "f": 0, "t": 35, "d": [101,20], "a": 1 }, + { "px": [352,0], "src": [224,96], "f": 0, "t": 152, "d": [101,22], "a": 1 }, + { "px": [384,0], "src": [224,96], "f": 0, "t": 152, "d": [101,24], "a": 1 }, + { "px": [416,0], "src": [96,0], "f": 0, "t": 6, "d": [101,26], "a": 1 }, + { "px": [448,0], "src": [96,0], "f": 0, "t": 6, "d": [101,28], "a": 1 }, + { "px": [480,0], "src": [224,96], "f": 0, "t": 152, "d": [101,30], "a": 1 }, + { "px": [80,16], "src": [96,0], "f": 0, "t": 6, "d": [101,37], "a": 1 }, + { "px": [112,16], "src": [224,96], "f": 0, "t": 152, "d": [101,39], "a": 1 }, + { "px": [144,16], "src": [192,16], "f": 0, "t": 35, "d": [101,41], "a": 1 }, + { "px": [176,16], "src": [224,96], "f": 0, "t": 152, "d": [101,43], "a": 1 }, + { "px": [208,16], "src": [224,96], "f": 0, "t": 152, "d": [101,45], "a": 1 }, + { "px": [240,16], "src": [96,0], "f": 0, "t": 6, "d": [101,47], "a": 1 }, + { "px": [272,16], "src": [192,16], "f": 0, "t": 35, "d": [101,49], "a": 1 }, + { "px": [304,16], "src": [192,16], "f": 0, "t": 35, "d": [101,51], "a": 1 }, + { "px": [336,16], "src": [192,16], "f": 0, "t": 35, "d": [101,53], "a": 1 }, + { "px": [368,16], "src": [192,16], "f": 0, "t": 35, "d": [101,55], "a": 1 }, + { "px": [400,16], "src": [224,96], "f": 0, "t": 152, "d": [101,57], "a": 1 }, + { "px": [432,16], "src": [224,96], "f": 0, "t": 152, "d": [101,59], "a": 1 }, + { "px": [464,16], "src": [224,96], "f": 0, "t": 152, "d": [101,61], "a": 1 }, + { "px": [496,16], "src": [224,96], "f": 0, "t": 152, "d": [101,63], "a": 1 }, + { "px": [96,32], "src": [224,96], "f": 0, "t": 152, "d": [101,70], "a": 1 }, + { "px": [80,48], "src": [96,0], "f": 0, "t": 6, "d": [101,101], "a": 1 }, + { "px": [96,64], "src": [96,0], "f": 0, "t": 6, "d": [101,134], "a": 1 }, + { "px": [80,80], "src": [192,16], "f": 0, "t": 35, "d": [101,165], "a": 1 }, + { "px": [96,96], "src": [192,16], "f": 0, "t": 35, "d": [101,198], "a": 1 }, + { "px": [480,96], "src": [96,0], "f": 0, "t": 6, "d": [101,222], "a": 1 }, + { "px": [80,112], "src": [224,96], "f": 0, "t": 152, "d": [101,229], "a": 1 }, + { "px": [464,112], "src": [224,96], "f": 0, "t": 152, "d": [101,253], "a": 1 }, + { "px": [496,112], "src": [224,96], "f": 0, "t": 152, "d": [101,255], "a": 1 }, + { "px": [96,128], "src": [96,0], "f": 0, "t": 6, "d": [101,262], "a": 1 }, + { "px": [480,128], "src": [192,16], "f": 0, "t": 35, "d": [101,286], "a": 1 }, + { "px": [80,144], "src": [192,16], "f": 0, "t": 35, "d": [101,293], "a": 1 }, + { "px": [112,144], "src": [96,0], "f": 0, "t": 6, "d": [101,295], "a": 1 }, + { "px": [144,144], "src": [224,96], "f": 0, "t": 152, "d": [101,297], "a": 1 }, + { "px": [496,144], "src": [192,16], "f": 0, "t": 35, "d": [101,319], "a": 1 }, + { "px": [96,160], "src": [192,16], "f": 0, "t": 35, "d": [101,326], "a": 1 }, + { "px": [128,160], "src": [224,96], "f": 0, "t": 152, "d": [101,328], "a": 1 }, + { "px": [144,176], "src": [96,0], "f": 0, "t": 6, "d": [101,361], "a": 1 }, + { "px": [496,176], "src": [96,0], "f": 0, "t": 6, "d": [101,383], "a": 1 }, + { "px": [64,192], "src": [224,96], "f": 0, "t": 152, "d": [101,388], "a": 1 }, + { "px": [96,192], "src": [96,0], "f": 0, "t": 6, "d": [101,390], "a": 1 }, + { "px": [128,192], "src": [96,0], "f": 0, "t": 6, "d": [101,392], "a": 1 }, + { "px": [80,208], "src": [96,0], "f": 0, "t": 6, "d": [101,421], "a": 1 }, + { "px": [112,208], "src": [192,16], "f": 0, "t": 35, "d": [101,423], "a": 1 }, + { "px": [144,208], "src": [96,0], "f": 0, "t": 6, "d": [101,425], "a": 1 }, + { "px": [496,208], "src": [224,96], "f": 0, "t": 152, "d": [101,447], "a": 1 }, + { "px": [64,224], "src": [96,0], "f": 0, "t": 6, "d": [101,452], "a": 1 }, + { "px": [16,240], "src": [192,16], "f": 0, "t": 35, "d": [101,481], "a": 1 }, + { "px": [48,240], "src": [224,96], "f": 0, "t": 152, "d": [101,483], "a": 1 }, + { "px": [80,240], "src": [96,0], "f": 0, "t": 6, "d": [101,485], "a": 1 }, + { "px": [496,240], "src": [192,16], "f": 0, "t": 35, "d": [101,511], "a": 1 }, + { "px": [0,256], "src": [192,16], "f": 0, "t": 35, "d": [101,512], "a": 1 }, + { "px": [32,256], "src": [192,16], "f": 0, "t": 35, "d": [101,514], "a": 1 }, + { "px": [64,256], "src": [192,16], "f": 0, "t": 35, "d": [101,516], "a": 1 }, + { "px": [496,272], "src": [192,16], "f": 0, "t": 35, "d": [101,575], "a": 1 }, + { "px": [496,304], "src": [192,16], "f": 0, "t": 35, "d": [101,639], "a": 1 }, + { "px": [16,336], "src": [192,16], "f": 0, "t": 35, "d": [101,673], "a": 1 }, + { "px": [48,336], "src": [224,96], "f": 0, "t": 152, "d": [101,675], "a": 1 }, + { "px": [80,336], "src": [192,16], "f": 0, "t": 35, "d": [101,677], "a": 1 }, + { "px": [496,336], "src": [96,0], "f": 0, "t": 6, "d": [101,703], "a": 1 }, + { "px": [0,352], "src": [96,0], "f": 0, "t": 6, "d": [101,704], "a": 1 }, + { "px": [32,352], "src": [192,16], "f": 0, "t": 35, "d": [101,706], "a": 1 }, + { "px": [64,352], "src": [224,96], "f": 0, "t": 152, "d": [101,708], "a": 1 }, + { "px": [80,368], "src": [224,96], "f": 0, "t": 152, "d": [101,741], "a": 1 }, + { "px": [496,368], "src": [192,16], "f": 0, "t": 35, "d": [101,767], "a": 1 }, + { "px": [64,384], "src": [96,0], "f": 0, "t": 6, "d": [101,772], "a": 1 }, + { "px": [80,400], "src": [192,16], "f": 0, "t": 35, "d": [101,805], "a": 1 }, + { "px": [496,400], "src": [224,96], "f": 0, "t": 152, "d": [101,831], "a": 1 }, + { "px": [64,416], "src": [96,0], "f": 0, "t": 6, "d": [101,836], "a": 1 }, + { "px": [80,432], "src": [192,16], "f": 0, "t": 35, "d": [101,869], "a": 1 }, + { "px": [496,432], "src": [96,0], "f": 0, "t": 6, "d": [101,895], "a": 1 }, + { "px": [64,448], "src": [96,0], "f": 0, "t": 6, "d": [101,900], "a": 1 }, + { "px": [96,448], "src": [192,16], "f": 0, "t": 35, "d": [101,902], "a": 1 }, + { "px": [128,448], "src": [224,96], "f": 0, "t": 152, "d": [101,904], "a": 1 }, + { "px": [160,448], "src": [224,96], "f": 0, "t": 152, "d": [101,906], "a": 1 }, + { "px": [192,448], "src": [192,16], "f": 0, "t": 35, "d": [101,908], "a": 1 }, + { "px": [224,448], "src": [96,0], "f": 0, "t": 6, "d": [101,910], "a": 1 }, + { "px": [256,448], "src": [192,16], "f": 0, "t": 35, "d": [101,912], "a": 1 }, + { "px": [288,448], "src": [224,96], "f": 0, "t": 152, "d": [101,914], "a": 1 }, + { "px": [320,448], "src": [96,0], "f": 0, "t": 6, "d": [101,916], "a": 1 }, + { "px": [352,448], "src": [224,96], "f": 0, "t": 152, "d": [101,918], "a": 1 }, + { "px": [384,448], "src": [224,96], "f": 0, "t": 152, "d": [101,920], "a": 1 }, + { "px": [416,448], "src": [224,96], "f": 0, "t": 152, "d": [101,922], "a": 1 }, + { "px": [448,448], "src": [96,0], "f": 0, "t": 6, "d": [101,924], "a": 1 }, + { "px": [480,448], "src": [224,96], "f": 0, "t": 152, "d": [101,926], "a": 1 }, + { "px": [80,464], "src": [224,96], "f": 0, "t": 152, "d": [101,933], "a": 1 }, + { "px": [112,464], "src": [192,16], "f": 0, "t": 35, "d": [101,935], "a": 1 }, + { "px": [144,464], "src": [224,96], "f": 0, "t": 152, "d": [101,937], "a": 1 }, + { "px": [176,464], "src": [192,16], "f": 0, "t": 35, "d": [101,939], "a": 1 }, + { "px": [208,464], "src": [224,96], "f": 0, "t": 152, "d": [101,941], "a": 1 }, + { "px": [240,464], "src": [96,0], "f": 0, "t": 6, "d": [101,943], "a": 1 }, + { "px": [272,464], "src": [224,96], "f": 0, "t": 152, "d": [101,945], "a": 1 }, + { "px": [304,464], "src": [224,96], "f": 0, "t": 152, "d": [101,947], "a": 1 }, + { "px": [336,464], "src": [224,96], "f": 0, "t": 152, "d": [101,949], "a": 1 }, + { "px": [368,464], "src": [96,0], "f": 0, "t": 6, "d": [101,951], "a": 1 }, + { "px": [400,464], "src": [224,96], "f": 0, "t": 152, "d": [101,953], "a": 1 }, + { "px": [432,464], "src": [96,0], "f": 0, "t": 6, "d": [101,955], "a": 1 }, + { "px": [464,464], "src": [224,96], "f": 0, "t": 152, "d": [101,957], "a": 1 }, + { "px": [496,464], "src": [224,96], "f": 0, "t": 152, "d": [101,959], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,32], "a": 1 }, + { "px": [16,16], "src": [32,32], "f": 0, "t": 48, "d": [127,33], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [127,34], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [127,36], "a": 1 }, + { "px": [0,32], "src": [32,32], "f": 0, "t": 48, "d": [127,64], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [127,65], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [127,67], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,96], "a": 1 }, + { "px": [16,48], "src": [32,32], "f": 0, "t": 48, "d": [127,97], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [127,98], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [127,100], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [127,129], "a": 1 }, + { "px": [32,64], "src": [32,32], "f": 0, "t": 48, "d": [127,130], "a": 1 }, + { "px": [48,64], "src": [32,32], "f": 0, "t": 48, "d": [127,131], "a": 1 }, + { "px": [64,64], "src": [32,32], "f": 0, "t": 48, "d": [127,132], "a": 1 }, + { "px": [0,80], "src": [32,32], "f": 0, "t": 48, "d": [127,160], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [127,162], "a": 1 }, + { "px": [64,80], "src": [32,32], "f": 0, "t": 48, "d": [127,164], "a": 1 }, + { "px": [0,96], "src": [32,32], "f": 0, "t": 48, "d": [127,192], "a": 1 }, + { "px": [16,96], "src": [32,32], "f": 0, "t": 48, "d": [127,193], "a": 1 }, + { "px": [48,96], "src": [32,32], "f": 0, "t": 48, "d": [127,195], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [127,224], "a": 1 }, + { "px": [32,112], "src": [32,32], "f": 0, "t": 48, "d": [127,226], "a": 1 }, + { "px": [48,112], "src": [32,32], "f": 0, "t": 48, "d": [127,227], "a": 1 }, + { "px": [64,112], "src": [32,32], "f": 0, "t": 48, "d": [127,228], "a": 1 }, + { "px": [16,128], "src": [32,32], "f": 0, "t": 48, "d": [127,257], "a": 1 }, + { "px": [32,128], "src": [32,32], "f": 0, "t": 48, "d": [127,258], "a": 1 }, + { "px": [48,128], "src": [32,32], "f": 0, "t": 48, "d": [127,259], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [127,288], "a": 1 }, + { "px": [32,144], "src": [32,32], "f": 0, "t": 48, "d": [127,290], "a": 1 }, + { "px": [48,144], "src": [32,32], "f": 0, "t": 48, "d": [127,291], "a": 1 }, + { "px": [64,144], "src": [32,32], "f": 0, "t": 48, "d": [127,292], "a": 1 }, + { "px": [0,160], "src": [32,32], "f": 0, "t": 48, "d": [127,320], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [127,321], "a": 1 }, + { "px": [32,160], "src": [32,32], "f": 0, "t": 48, "d": [127,322], "a": 1 }, + { "px": [48,160], "src": [32,32], "f": 0, "t": 48, "d": [127,323], "a": 1 }, + { "px": [64,160], "src": [32,32], "f": 0, "t": 48, "d": [127,324], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [127,352], "a": 1 }, + { "px": [16,176], "src": [32,32], "f": 0, "t": 48, "d": [127,353], "a": 1 }, + { "px": [32,176], "src": [32,32], "f": 0, "t": 48, "d": [127,354], "a": 1 }, + { "px": [48,176], "src": [32,32], "f": 0, "t": 48, "d": [127,355], "a": 1 }, + { "px": [64,176], "src": [32,32], "f": 0, "t": 48, "d": [127,356], "a": 1 }, + { "px": [80,176], "src": [32,32], "f": 0, "t": 48, "d": [127,357], "a": 1 }, + { "px": [96,176], "src": [32,32], "f": 0, "t": 48, "d": [127,358], "a": 1 }, + { "px": [0,192], "src": [32,32], "f": 0, "t": 48, "d": [127,384], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [127,385], "a": 1 }, + { "px": [32,192], "src": [32,32], "f": 0, "t": 48, "d": [127,386], "a": 1 }, + { "px": [48,192], "src": [32,32], "f": 0, "t": 48, "d": [127,387], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [127,416], "a": 1 }, + { "px": [16,208], "src": [32,32], "f": 0, "t": 48, "d": [127,417], "a": 1 }, + { "px": [32,208], "src": [32,32], "f": 0, "t": 48, "d": [127,418], "a": 1 }, + { "px": [48,208], "src": [32,32], "f": 0, "t": 48, "d": [127,419], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [127,449], "a": 1 }, + { "px": [32,224], "src": [32,32], "f": 0, "t": 48, "d": [127,450], "a": 1 }, + { "px": [48,224], "src": [32,32], "f": 0, "t": 48, "d": [127,451], "a": 1 }, + { "px": [0,368], "src": [32,32], "f": 0, "t": 48, "d": [127,736], "a": 1 }, + { "px": [16,368], "src": [32,32], "f": 0, "t": 48, "d": [127,737], "a": 1 }, + { "px": [32,368], "src": [32,32], "f": 0, "t": 48, "d": [127,738], "a": 1 }, + { "px": [16,384], "src": [32,32], "f": 0, "t": 48, "d": [127,769], "a": 1 }, + { "px": [32,384], "src": [32,32], "f": 0, "t": 48, "d": [127,770], "a": 1 }, + { "px": [48,384], "src": [32,32], "f": 0, "t": 48, "d": [127,771], "a": 1 }, + { "px": [0,400], "src": [32,32], "f": 0, "t": 48, "d": [127,800], "a": 1 }, + { "px": [16,400], "src": [32,32], "f": 0, "t": 48, "d": [127,801], "a": 1 }, + { "px": [32,400], "src": [32,32], "f": 0, "t": 48, "d": [127,802], "a": 1 }, + { "px": [48,400], "src": [32,32], "f": 0, "t": 48, "d": [127,803], "a": 1 }, + { "px": [0,416], "src": [32,32], "f": 0, "t": 48, "d": [127,832], "a": 1 }, + { "px": [16,416], "src": [32,32], "f": 0, "t": 48, "d": [127,833], "a": 1 }, + { "px": [32,416], "src": [32,32], "f": 0, "t": 48, "d": [127,834], "a": 1 }, + { "px": [48,416], "src": [32,32], "f": 0, "t": 48, "d": [127,835], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [127,864], "a": 1 }, + { "px": [16,432], "src": [32,32], "f": 0, "t": 48, "d": [127,865], "a": 1 }, + { "px": [32,432], "src": [32,32], "f": 0, "t": 48, "d": [127,866], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [127,897], "a": 1 }, + { "px": [48,448], "src": [32,32], "f": 0, "t": 48, "d": [127,899], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [127,928], "a": 1 }, + { "px": [16,464], "src": [32,32], "f": 0, "t": 48, "d": [127,929], "a": 1 }, + { "px": [32,464], "src": [32,32], "f": 0, "t": 48, "d": [127,930], "a": 1 }, + { "px": [48,464], "src": [32,32], "f": 0, "t": 48, "d": [127,931], "a": 1 }, + { "px": [16,480], "src": [32,32], "f": 0, "t": 48, "d": [127,961], "a": 1 }, + { "px": [48,480], "src": [32,32], "f": 0, "t": 48, "d": [127,963], "a": 1 }, + { "px": [80,480], "src": [32,32], "f": 0, "t": 48, "d": [127,965], "a": 1 }, + { "px": [96,480], "src": [32,32], "f": 0, "t": 48, "d": [127,966], "a": 1 }, + { "px": [112,480], "src": [32,32], "f": 0, "t": 48, "d": [127,967], "a": 1 }, + { "px": [128,480], "src": [32,32], "f": 0, "t": 48, "d": [127,968], "a": 1 }, + { "px": [144,480], "src": [32,32], "f": 0, "t": 48, "d": [127,969], "a": 1 }, + { "px": [176,480], "src": [32,32], "f": 0, "t": 48, "d": [127,971], "a": 1 }, + { "px": [208,480], "src": [32,32], "f": 0, "t": 48, "d": [127,973], "a": 1 }, + { "px": [224,480], "src": [32,32], "f": 0, "t": 48, "d": [127,974], "a": 1 }, + { "px": [240,480], "src": [32,32], "f": 0, "t": 48, "d": [127,975], "a": 1 }, + { "px": [272,480], "src": [32,32], "f": 0, "t": 48, "d": [127,977], "a": 1 }, + { "px": [304,480], "src": [32,32], "f": 0, "t": 48, "d": [127,979], "a": 1 }, + { "px": [336,480], "src": [32,32], "f": 0, "t": 48, "d": [127,981], "a": 1 }, + { "px": [352,480], "src": [32,32], "f": 0, "t": 48, "d": [127,982], "a": 1 }, + { "px": [368,480], "src": [32,32], "f": 0, "t": 48, "d": [127,983], "a": 1 }, + { "px": [384,480], "src": [32,32], "f": 0, "t": 48, "d": [127,984], "a": 1 }, + { "px": [400,480], "src": [32,32], "f": 0, "t": 48, "d": [127,985], "a": 1 }, + { "px": [432,480], "src": [32,32], "f": 0, "t": 48, "d": [127,987], "a": 1 }, + { "px": [448,480], "src": [32,32], "f": 0, "t": 48, "d": [127,988], "a": 1 }, + { "px": [464,480], "src": [32,32], "f": 0, "t": 48, "d": [127,989], "a": 1 }, + { "px": [480,480], "src": [32,32], "f": 0, "t": 48, "d": [127,990], "a": 1 }, + { "px": [496,480], "src": [32,32], "f": 0, "t": 48, "d": [127,991], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,992], "a": 1 }, + { "px": [32,496], "src": [32,32], "f": 0, "t": 48, "d": [127,994], "a": 1 }, + { "px": [64,496], "src": [32,32], "f": 0, "t": 48, "d": [127,996], "a": 1 }, + { "px": [96,496], "src": [32,32], "f": 0, "t": 48, "d": [127,998], "a": 1 }, + { "px": [112,496], "src": [32,32], "f": 0, "t": 48, "d": [127,999], "a": 1 }, + { "px": [128,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1000], "a": 1 }, + { "px": [144,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1001], "a": 1 }, + { "px": [160,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1002], "a": 1 }, + { "px": [176,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1003], "a": 1 }, + { "px": [192,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1004], "a": 1 }, + { "px": [208,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1005], "a": 1 }, + { "px": [224,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1006], "a": 1 }, + { "px": [256,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1008], "a": 1 }, + { "px": [288,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1010], "a": 1 }, + { "px": [320,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1012], "a": 1 }, + { "px": [336,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1013], "a": 1 }, + { "px": [352,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1014], "a": 1 }, + { "px": [368,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1015], "a": 1 }, + { "px": [384,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1016], "a": 1 }, + { "px": [400,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1017], "a": 1 }, + { "px": [416,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1018], "a": 1 }, + { "px": [432,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1019], "a": 1 }, + { "px": [448,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1020], "a": 1 }, + { "px": [464,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1021], "a": 1 }, + { "px": [480,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1022], "a": 1 }, + { "px": [0,0], "src": [96,96], "f": 0, "t": 144, "d": [126,0], "a": 1 }, + { "px": [32,0], "src": [96,96], "f": 0, "t": 144, "d": [126,2], "a": 1 }, + { "px": [64,0], "src": [64,96], "f": 0, "t": 142, "d": [126,4], "a": 1 }, + { "px": [48,16], "src": [64,96], "f": 0, "t": 142, "d": [126,35], "a": 1 }, + { "px": [32,32], "src": [64,96], "f": 0, "t": 142, "d": [126,66], "a": 1 }, + { "px": [64,32], "src": [64,96], "f": 0, "t": 142, "d": [126,68], "a": 1 }, + { "px": [48,48], "src": [64,96], "f": 0, "t": 142, "d": [126,99], "a": 1 }, + { "px": [0,64], "src": [64,96], "f": 0, "t": 142, "d": [126,128], "a": 1 }, + { "px": [16,80], "src": [96,96], "f": 0, "t": 144, "d": [126,161], "a": 1 }, + { "px": [48,80], "src": [96,96], "f": 0, "t": 144, "d": [126,163], "a": 1 }, + { "px": [32,96], "src": [96,96], "f": 0, "t": 144, "d": [126,194], "a": 1 }, + { "px": [64,96], "src": [96,96], "f": 0, "t": 144, "d": [126,196], "a": 1 }, + { "px": [16,112], "src": [64,96], "f": 0, "t": 142, "d": [126,225], "a": 1 }, + { "px": [0,128], "src": [64,96], "f": 0, "t": 142, "d": [126,256], "a": 1 }, + { "px": [64,128], "src": [96,96], "f": 0, "t": 144, "d": [126,260], "a": 1 }, + { "px": [16,144], "src": [64,96], "f": 0, "t": 142, "d": [126,289], "a": 1 }, + { "px": [112,176], "src": [96,96], "f": 0, "t": 144, "d": [126,359], "a": 1 }, + { "px": [0,224], "src": [64,96], "f": 0, "t": 142, "d": [126,448], "a": 1 }, + { "px": [48,368], "src": [96,96], "f": 0, "t": 144, "d": [126,739], "a": 1 }, + { "px": [0,384], "src": [64,96], "f": 0, "t": 142, "d": [126,768], "a": 1 }, + { "px": [48,432], "src": [64,96], "f": 0, "t": 142, "d": [126,867], "a": 1 }, + { "px": [0,448], "src": [96,96], "f": 0, "t": 144, "d": [126,896], "a": 1 }, + { "px": [32,448], "src": [96,96], "f": 0, "t": 144, "d": [126,898], "a": 1 }, + { "px": [0,480], "src": [64,96], "f": 0, "t": 142, "d": [126,960], "a": 1 }, + { "px": [32,480], "src": [64,96], "f": 0, "t": 142, "d": [126,962], "a": 1 }, + { "px": [64,480], "src": [64,96], "f": 0, "t": 142, "d": [126,964], "a": 1 }, + { "px": [160,480], "src": [64,96], "f": 0, "t": 142, "d": [126,970], "a": 1 }, + { "px": [192,480], "src": [96,96], "f": 0, "t": 144, "d": [126,972], "a": 1 }, + { "px": [256,480], "src": [96,96], "f": 0, "t": 144, "d": [126,976], "a": 1 }, + { "px": [288,480], "src": [64,96], "f": 0, "t": 142, "d": [126,978], "a": 1 }, + { "px": [320,480], "src": [96,96], "f": 0, "t": 144, "d": [126,980], "a": 1 }, + { "px": [416,480], "src": [64,96], "f": 0, "t": 142, "d": [126,986], "a": 1 }, + { "px": [16,496], "src": [64,96], "f": 0, "t": 142, "d": [126,993], "a": 1 }, + { "px": [48,496], "src": [96,96], "f": 0, "t": 144, "d": [126,995], "a": 1 }, + { "px": [80,496], "src": [96,96], "f": 0, "t": 144, "d": [126,997], "a": 1 }, + { "px": [240,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1007], "a": 1 }, + { "px": [272,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1009], "a": 1 }, + { "px": [304,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1011], "a": 1 }, + { "px": [496,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1023], "a": 1 }, + { "px": [128,32], "src": [256,160], "f": 0, "t": 246, "d": [12,72], "a": 1 }, + { "px": [192,32], "src": [256,160], "f": 0, "t": 246, "d": [12,76], "a": 1 }, + { "px": [272,32], "src": [256,160], "f": 0, "t": 246, "d": [12,81], "a": 1 }, + { "px": [288,32], "src": [256,160], "f": 0, "t": 246, "d": [12,82], "a": 1 }, + { "px": [304,32], "src": [256,160], "f": 0, "t": 246, "d": [12,83], "a": 1 }, + { "px": [320,32], "src": [256,160], "f": 0, "t": 246, "d": [12,84], "a": 1 }, + { "px": [336,32], "src": [256,160], "f": 0, "t": 246, "d": [12,85], "a": 1 }, + { "px": [368,32], "src": [256,160], "f": 0, "t": 246, "d": [12,87], "a": 1 }, + { "px": [384,32], "src": [256,160], "f": 0, "t": 246, "d": [12,88], "a": 1 }, + { "px": [400,32], "src": [256,160], "f": 0, "t": 246, "d": [12,89], "a": 1 }, + { "px": [416,32], "src": [256,160], "f": 0, "t": 246, "d": [12,90], "a": 1 }, + { "px": [432,32], "src": [256,160], "f": 0, "t": 246, "d": [12,91], "a": 1 }, + { "px": [448,32], "src": [256,160], "f": 0, "t": 246, "d": [12,92], "a": 1 }, + { "px": [496,32], "src": [256,160], "f": 0, "t": 246, "d": [12,95], "a": 1 }, + { "px": [176,144], "src": [256,160], "f": 0, "t": 246, "d": [12,299], "a": 1 }, + { "px": [224,144], "src": [256,160], "f": 0, "t": 246, "d": [12,302], "a": 1 }, + { "px": [416,144], "src": [256,160], "f": 0, "t": 246, "d": [12,314], "a": 1 }, + { "px": [432,144], "src": [256,160], "f": 0, "t": 246, "d": [12,315], "a": 1 }, + { "px": [464,144], "src": [256,160], "f": 0, "t": 246, "d": [12,317], "a": 1 }, + { "px": [112,224], "src": [256,160], "f": 0, "t": 246, "d": [12,455], "a": 1 }, + { "px": [128,224], "src": [256,160], "f": 0, "t": 246, "d": [12,456], "a": 1 }, + { "px": [144,224], "src": [256,160], "f": 0, "t": 246, "d": [12,457], "a": 1 }, + { "px": [0,272], "src": [256,160], "f": 0, "t": 246, "d": [12,544], "a": 1 }, + { "px": [16,272], "src": [256,160], "f": 0, "t": 246, "d": [12,545], "a": 1 }, + { "px": [64,272], "src": [256,160], "f": 0, "t": 246, "d": [12,548], "a": 1 }, + { "px": [80,272], "src": [256,160], "f": 0, "t": 246, "d": [12,549], "a": 1 }, + { "px": [480,80], "src": [256,96], "f": 0, "t": 154, "d": [9,190], "a": 1 }, + { "px": [496,80], "src": [256,96], "f": 0, "t": 154, "d": [9,191], "a": 1 }, + { "px": [144,128], "src": [256,96], "f": 0, "t": 154, "d": [9,265], "a": 1 }, + { "px": [160,128], "src": [256,96], "f": 0, "t": 154, "d": [9,266], "a": 1 }, + { "px": [176,128], "src": [256,96], "f": 0, "t": 154, "d": [9,267], "a": 1 }, + { "px": [192,128], "src": [256,96], "f": 0, "t": 154, "d": [9,268], "a": 1 }, + { "px": [400,128], "src": [256,96], "f": 0, "t": 154, "d": [9,281], "a": 1 }, + { "px": [64,320], "src": [256,96], "f": 0, "t": 154, "d": [9,644], "a": 1 }, + { "px": [80,320], "src": [256,96], "f": 0, "t": 154, "d": [9,645], "a": 1 }, + { "px": [112,432], "src": [256,96], "f": 0, "t": 154, "d": [9,871], "a": 1 }, + { "px": [128,432], "src": [256,96], "f": 0, "t": 154, "d": [9,872], "a": 1 }, + { "px": [144,432], "src": [256,96], "f": 0, "t": 154, "d": [9,873], "a": 1 }, + { "px": [160,432], "src": [256,96], "f": 0, "t": 154, "d": [9,874], "a": 1 }, + { "px": [176,432], "src": [256,96], "f": 0, "t": 154, "d": [9,875], "a": 1 }, + { "px": [192,432], "src": [256,96], "f": 0, "t": 154, "d": [9,876], "a": 1 }, + { "px": [208,432], "src": [256,96], "f": 0, "t": 154, "d": [9,877], "a": 1 }, + { "px": [224,432], "src": [256,96], "f": 0, "t": 154, "d": [9,878], "a": 1 }, + { "px": [240,432], "src": [256,96], "f": 0, "t": 154, "d": [9,879], "a": 1 }, + { "px": [256,432], "src": [256,96], "f": 0, "t": 154, "d": [9,880], "a": 1 }, + { "px": [272,432], "src": [256,96], "f": 0, "t": 154, "d": [9,881], "a": 1 }, + { "px": [288,432], "src": [256,96], "f": 0, "t": 154, "d": [9,882], "a": 1 }, + { "px": [304,432], "src": [256,96], "f": 0, "t": 154, "d": [9,883], "a": 1 }, + { "px": [320,432], "src": [256,96], "f": 0, "t": 154, "d": [9,884], "a": 1 }, + { "px": [336,432], "src": [256,96], "f": 0, "t": 154, "d": [9,885], "a": 1 }, + { "px": [352,432], "src": [256,96], "f": 0, "t": 154, "d": [9,886], "a": 1 }, + { "px": [368,432], "src": [256,96], "f": 0, "t": 154, "d": [9,887], "a": 1 }, + { "px": [384,432], "src": [256,96], "f": 0, "t": 154, "d": [9,888], "a": 1 }, + { "px": [400,432], "src": [256,96], "f": 0, "t": 154, "d": [9,889], "a": 1 }, + { "px": [416,432], "src": [256,96], "f": 0, "t": 154, "d": [9,890], "a": 1 }, + { "px": [432,432], "src": [256,96], "f": 0, "t": 154, "d": [9,891], "a": 1 }, + { "px": [448,432], "src": [256,96], "f": 0, "t": 154, "d": [9,892], "a": 1 }, + { "px": [464,432], "src": [256,96], "f": 0, "t": 154, "d": [9,893], "a": 1 }, + { "px": [112,48], "src": [224,128], "f": 1, "t": 198, "d": [10,103], "a": 1 }, + { "px": [112,64], "src": [224,128], "f": 1, "t": 198, "d": [10,135], "a": 1 }, + { "px": [112,80], "src": [224,128], "f": 1, "t": 198, "d": [10,167], "a": 1 }, + { "px": [112,96], "src": [224,128], "f": 1, "t": 198, "d": [10,199], "a": 1 }, + { "px": [448,96], "src": [224,128], "f": 0, "t": 198, "d": [10,220], "a": 1 }, + { "px": [112,112], "src": [224,128], "f": 1, "t": 198, "d": [10,231], "a": 1 }, + { "px": [448,112], "src": [224,128], "f": 0, "t": 198, "d": [10,252], "a": 1 }, + { "px": [160,160], "src": [224,128], "f": 1, "t": 198, "d": [10,330], "a": 1 }, + { "px": [480,160], "src": [224,128], "f": 0, "t": 198, "d": [10,350], "a": 1 }, + { "px": [160,176], "src": [224,128], "f": 1, "t": 198, "d": [10,362], "a": 1 }, + { "px": [480,176], "src": [224,128], "f": 0, "t": 198, "d": [10,382], "a": 1 }, + { "px": [160,192], "src": [224,128], "f": 1, "t": 198, "d": [10,394], "a": 1 }, + { "px": [480,192], "src": [224,128], "f": 0, "t": 198, "d": [10,414], "a": 1 }, + { "px": [160,208], "src": [224,128], "f": 1, "t": 198, "d": [10,426], "a": 1 }, + { "px": [480,208], "src": [224,128], "f": 0, "t": 198, "d": [10,446], "a": 1 }, + { "px": [480,224], "src": [224,128], "f": 0, "t": 198, "d": [10,478], "a": 1 }, + { "px": [96,240], "src": [224,128], "f": 1, "t": 198, "d": [10,486], "a": 1 }, + { "px": [480,240], "src": [224,128], "f": 0, "t": 198, "d": [10,510], "a": 1 }, + { "px": [96,256], "src": [224,128], "f": 1, "t": 198, "d": [10,518], "a": 1 }, + { "px": [480,256], "src": [224,128], "f": 0, "t": 198, "d": [10,542], "a": 1 }, + { "px": [480,272], "src": [224,128], "f": 0, "t": 198, "d": [10,574], "a": 1 }, + { "px": [480,288], "src": [224,128], "f": 0, "t": 198, "d": [10,606], "a": 1 }, + { "px": [480,304], "src": [224,128], "f": 0, "t": 198, "d": [10,638], "a": 1 }, + { "px": [480,320], "src": [224,128], "f": 0, "t": 198, "d": [10,670], "a": 1 }, + { "px": [96,336], "src": [224,128], "f": 1, "t": 198, "d": [10,678], "a": 1 }, + { "px": [480,336], "src": [224,128], "f": 0, "t": 198, "d": [10,702], "a": 1 }, + { "px": [96,352], "src": [224,128], "f": 1, "t": 198, "d": [10,710], "a": 1 }, + { "px": [480,352], "src": [224,128], "f": 0, "t": 198, "d": [10,734], "a": 1 }, + { "px": [96,368], "src": [224,128], "f": 1, "t": 198, "d": [10,742], "a": 1 }, + { "px": [480,368], "src": [224,128], "f": 0, "t": 198, "d": [10,766], "a": 1 }, + { "px": [96,384], "src": [224,128], "f": 1, "t": 198, "d": [10,774], "a": 1 }, + { "px": [480,384], "src": [224,128], "f": 0, "t": 198, "d": [10,798], "a": 1 }, + { "px": [96,400], "src": [224,128], "f": 1, "t": 198, "d": [10,806], "a": 1 }, + { "px": [480,400], "src": [224,128], "f": 0, "t": 198, "d": [10,830], "a": 1 }, + { "px": [96,416], "src": [224,128], "f": 1, "t": 198, "d": [10,838], "a": 1 }, + { "px": [480,416], "src": [224,128], "f": 0, "t": 198, "d": [10,862], "a": 1 }, + { "px": [384,128], "src": [224,96], "f": 0, "t": 152, "d": [11,280], "a": 1 }, + { "px": [384,144], "src": [224,96], "f": 2, "t": 152, "d": [11,312], "a": 1 }, + { "px": [160,224], "src": [224,96], "f": 3, "t": 152, "d": [11,458], "a": 1 }, + { "px": [96,272], "src": [224,96], "f": 3, "t": 152, "d": [11,550], "a": 1 }, + { "px": [96,320], "src": [224,96], "f": 1, "t": 152, "d": [11,646], "a": 1 }, + { "px": [112,32], "src": [224,96], "f": 0, "t": 152, "d": [14,71], "a": 1 }, + { "px": [112,128], "src": [224,96], "f": 2, "t": 152, "d": [14,263], "a": 1 }, + { "px": [448,128], "src": [224,96], "f": 3, "t": 152, "d": [14,284], "a": 1 }, + { "px": [160,144], "src": [224,96], "f": 0, "t": 152, "d": [14,298], "a": 1 }, + { "px": [480,144], "src": [224,96], "f": 1, "t": 152, "d": [14,318], "a": 1 }, + { "px": [96,224], "src": [224,96], "f": 0, "t": 152, "d": [14,454], "a": 1 }, + { "px": [96,432], "src": [224,96], "f": 2, "t": 152, "d": [14,870], "a": 1 }, + { "px": [480,432], "src": [224,96], "f": 3, "t": 152, "d": [14,894], "a": 1 }, + { "px": [144,32], "src": [160,192], "f": 0, "t": 286, "d": [78,73], "a": 1 }, + { "px": [160,32], "src": [160,192], "f": 0, "t": 286, "d": [78,74], "a": 1 }, + { "px": [176,32], "src": [160,192], "f": 0, "t": 286, "d": [78,75], "a": 1 }, + { "px": [208,32], "src": [192,192], "f": 0, "t": 288, "d": [78,77], "a": 1 }, + { "px": [224,32], "src": [192,192], "f": 0, "t": 288, "d": [78,78], "a": 1 }, + { "px": [240,32], "src": [160,192], "f": 0, "t": 286, "d": [78,79], "a": 1 }, + { "px": [256,32], "src": [160,192], "f": 0, "t": 286, "d": [78,80], "a": 1 }, + { "px": [352,32], "src": [192,192], "f": 0, "t": 288, "d": [78,86], "a": 1 }, + { "px": [464,32], "src": [160,192], "f": 0, "t": 286, "d": [78,93], "a": 1 }, + { "px": [480,32], "src": [192,192], "f": 0, "t": 288, "d": [78,94], "a": 1 }, + { "px": [192,144], "src": [192,192], "f": 0, "t": 288, "d": [78,300], "a": 1 }, + { "px": [208,144], "src": [192,192], "f": 0, "t": 288, "d": [78,301], "a": 1 }, + { "px": [240,144], "src": [160,192], "f": 0, "t": 286, "d": [78,303], "a": 1 }, + { "px": [400,144], "src": [160,192], "f": 0, "t": 286, "d": [78,313], "a": 1 }, + { "px": [448,144], "src": [160,192], "f": 0, "t": 286, "d": [78,316], "a": 1 }, + { "px": [32,272], "src": [160,192], "f": 0, "t": 286, "d": [78,546], "a": 1 }, + { "px": [48,272], "src": [160,192], "f": 0, "t": 286, "d": [78,547], "a": 1 }, + { "px": [448,80], "src": [32,0], "f": 0, "t": 2, "d": [80,188], "a": 1 }, + { "px": [464,80], "src": [32,0], "f": 0, "t": 2, "d": [80,189], "a": 1 }, + { "px": [128,128], "src": [32,0], "f": 0, "t": 2, "d": [80,264], "a": 1 }, + { "px": [208,128], "src": [32,0], "f": 0, "t": 2, "d": [80,269], "a": 1 }, + { "px": [224,128], "src": [32,0], "f": 0, "t": 2, "d": [80,270], "a": 1 }, + { "px": [240,128], "src": [32,0], "f": 0, "t": 2, "d": [80,271], "a": 1 }, + { "px": [416,128], "src": [32,0], "f": 0, "t": 2, "d": [80,282], "a": 1 }, + { "px": [432,128], "src": [32,0], "f": 0, "t": 2, "d": [80,283], "a": 1 }, + { "px": [0,320], "src": [32,0], "f": 0, "t": 2, "d": [80,640], "a": 1 }, + { "px": [16,320], "src": [32,0], "f": 0, "t": 2, "d": [80,641], "a": 1 }, + { "px": [32,320], "src": [32,0], "f": 0, "t": 2, "d": [80,642], "a": 1 }, + { "px": [48,320], "src": [32,0], "f": 0, "t": 2, "d": [80,643], "a": 1 }, + { "px": [448,64], "src": [0,96], "f": 0, "t": 138, "d": [110,156], "a": 1 }, + { "px": [464,64], "src": [32,96], "f": 0, "t": 140, "d": [110,157], "a": 1 }, + { "px": [480,64], "src": [32,96], "f": 0, "t": 140, "d": [110,158], "a": 1 }, + { "px": [496,64], "src": [32,96], "f": 0, "t": 140, "d": [110,159], "a": 1 }, + { "px": [144,112], "src": [0,96], "f": 0, "t": 138, "d": [110,233], "a": 1 }, + { "px": [160,112], "src": [32,96], "f": 0, "t": 140, "d": [110,234], "a": 1 }, + { "px": [208,112], "src": [0,96], "f": 0, "t": 138, "d": [110,237], "a": 1 }, + { "px": [384,112], "src": [32,96], "f": 0, "t": 140, "d": [110,248], "a": 1 }, + { "px": [416,112], "src": [32,96], "f": 0, "t": 140, "d": [110,250], "a": 1 }, + { "px": [0,304], "src": [0,96], "f": 0, "t": 138, "d": [110,608], "a": 1 }, + { "px": [16,304], "src": [32,96], "f": 0, "t": 140, "d": [110,609], "a": 1 }, + { "px": [48,304], "src": [0,96], "f": 0, "t": 138, "d": [110,611], "a": 1 }, + { "px": [80,304], "src": [0,96], "f": 0, "t": 138, "d": [110,613], "a": 1 }, + { "px": [96,304], "src": [0,96], "f": 0, "t": 138, "d": [110,614], "a": 1 } + ], + "seed": 6011873, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36ea180-66b0-11ec-9cd7-cbdfb3640417", + "levelId": 56, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [144,48], "src": [320,272], "f": 0, "t": 411, "d": [108,105], "a": 1 }, + { "px": [176,48], "src": [320,272], "f": 0, "t": 411, "d": [108,107], "a": 1 }, + { "px": [192,48], "src": [320,272], "f": 0, "t": 411, "d": [108,108], "a": 1 }, + { "px": [208,48], "src": [320,272], "f": 0, "t": 411, "d": [108,109], "a": 1 }, + { "px": [240,48], "src": [320,272], "f": 0, "t": 411, "d": [108,111], "a": 1 }, + { "px": [256,48], "src": [320,272], "f": 0, "t": 411, "d": [108,112], "a": 1 }, + { "px": [272,48], "src": [320,272], "f": 0, "t": 411, "d": [108,113], "a": 1 }, + { "px": [304,48], "src": [320,272], "f": 0, "t": 411, "d": [108,115], "a": 1 }, + { "px": [320,48], "src": [320,272], "f": 0, "t": 411, "d": [108,116], "a": 1 }, + { "px": [336,48], "src": [320,272], "f": 0, "t": 411, "d": [108,117], "a": 1 }, + { "px": [352,48], "src": [320,272], "f": 0, "t": 411, "d": [108,118], "a": 1 }, + { "px": [368,48], "src": [320,272], "f": 0, "t": 411, "d": [108,119], "a": 1 }, + { "px": [432,48], "src": [320,272], "f": 0, "t": 411, "d": [108,123], "a": 1 }, + { "px": [448,48], "src": [320,272], "f": 0, "t": 411, "d": [108,124], "a": 1 }, + { "px": [464,48], "src": [320,272], "f": 0, "t": 411, "d": [108,125], "a": 1 }, + { "px": [480,48], "src": [320,272], "f": 0, "t": 411, "d": [108,126], "a": 1 }, + { "px": [496,48], "src": [320,272], "f": 0, "t": 411, "d": [108,127], "a": 1 }, + { "px": [160,64], "src": [320,272], "f": 0, "t": 411, "d": [108,138], "a": 1 }, + { "px": [176,64], "src": [320,272], "f": 0, "t": 411, "d": [108,139], "a": 1 }, + { "px": [192,64], "src": [320,272], "f": 0, "t": 411, "d": [108,140], "a": 1 }, + { "px": [208,64], "src": [320,272], "f": 0, "t": 411, "d": [108,141], "a": 1 }, + { "px": [224,64], "src": [320,272], "f": 0, "t": 411, "d": [108,142], "a": 1 }, + { "px": [256,64], "src": [320,272], "f": 0, "t": 411, "d": [108,144], "a": 1 }, + { "px": [272,64], "src": [320,272], "f": 0, "t": 411, "d": [108,145], "a": 1 }, + { "px": [288,64], "src": [320,272], "f": 0, "t": 411, "d": [108,146], "a": 1 }, + { "px": [304,64], "src": [320,272], "f": 0, "t": 411, "d": [108,147], "a": 1 }, + { "px": [320,64], "src": [320,272], "f": 0, "t": 411, "d": [108,148], "a": 1 }, + { "px": [352,64], "src": [320,272], "f": 0, "t": 411, "d": [108,150], "a": 1 }, + { "px": [368,64], "src": [320,272], "f": 0, "t": 411, "d": [108,151], "a": 1 }, + { "px": [384,64], "src": [320,272], "f": 0, "t": 411, "d": [108,152], "a": 1 }, + { "px": [400,64], "src": [320,272], "f": 0, "t": 411, "d": [108,153], "a": 1 }, + { "px": [416,64], "src": [320,272], "f": 0, "t": 411, "d": [108,154], "a": 1 }, + { "px": [432,64], "src": [320,272], "f": 0, "t": 411, "d": [108,155], "a": 1 }, + { "px": [448,64], "src": [320,272], "f": 0, "t": 411, "d": [108,156], "a": 1 }, + { "px": [464,64], "src": [320,272], "f": 0, "t": 411, "d": [108,157], "a": 1 }, + { "px": [480,64], "src": [320,272], "f": 0, "t": 411, "d": [108,158], "a": 1 }, + { "px": [496,64], "src": [320,272], "f": 0, "t": 411, "d": [108,159], "a": 1 }, + { "px": [144,80], "src": [320,272], "f": 0, "t": 411, "d": [108,169], "a": 1 }, + { "px": [160,80], "src": [320,272], "f": 0, "t": 411, "d": [108,170], "a": 1 }, + { "px": [176,80], "src": [320,272], "f": 0, "t": 411, "d": [108,171], "a": 1 }, + { "px": [192,80], "src": [320,272], "f": 0, "t": 411, "d": [108,172], "a": 1 }, + { "px": [208,80], "src": [320,272], "f": 0, "t": 411, "d": [108,173], "a": 1 }, + { "px": [224,80], "src": [320,272], "f": 0, "t": 411, "d": [108,174], "a": 1 }, + { "px": [240,80], "src": [320,272], "f": 0, "t": 411, "d": [108,175], "a": 1 }, + { "px": [256,80], "src": [320,272], "f": 0, "t": 411, "d": [108,176], "a": 1 }, + { "px": [272,80], "src": [320,272], "f": 0, "t": 411, "d": [108,177], "a": 1 }, + { "px": [288,80], "src": [320,272], "f": 0, "t": 411, "d": [108,178], "a": 1 }, + { "px": [304,80], "src": [320,272], "f": 0, "t": 411, "d": [108,179], "a": 1 }, + { "px": [320,80], "src": [320,272], "f": 0, "t": 411, "d": [108,180], "a": 1 }, + { "px": [336,80], "src": [320,272], "f": 0, "t": 411, "d": [108,181], "a": 1 }, + { "px": [352,80], "src": [320,272], "f": 0, "t": 411, "d": [108,182], "a": 1 }, + { "px": [368,80], "src": [320,272], "f": 0, "t": 411, "d": [108,183], "a": 1 }, + { "px": [384,80], "src": [320,272], "f": 0, "t": 411, "d": [108,184], "a": 1 }, + { "px": [400,80], "src": [320,272], "f": 0, "t": 411, "d": [108,185], "a": 1 }, + { "px": [416,80], "src": [320,272], "f": 0, "t": 411, "d": [108,186], "a": 1 }, + { "px": [144,96], "src": [320,272], "f": 0, "t": 411, "d": [108,201], "a": 1 }, + { "px": [160,96], "src": [320,272], "f": 0, "t": 411, "d": [108,202], "a": 1 }, + { "px": [176,96], "src": [320,272], "f": 0, "t": 411, "d": [108,203], "a": 1 }, + { "px": [192,96], "src": [320,272], "f": 0, "t": 411, "d": [108,204], "a": 1 }, + { "px": [208,96], "src": [320,272], "f": 0, "t": 411, "d": [108,205], "a": 1 }, + { "px": [240,96], "src": [320,272], "f": 0, "t": 411, "d": [108,207], "a": 1 }, + { "px": [256,96], "src": [320,272], "f": 0, "t": 411, "d": [108,208], "a": 1 }, + { "px": [272,96], "src": [320,272], "f": 0, "t": 411, "d": [108,209], "a": 1 }, + { "px": [288,96], "src": [320,272], "f": 0, "t": 411, "d": [108,210], "a": 1 }, + { "px": [304,96], "src": [320,272], "f": 0, "t": 411, "d": [108,211], "a": 1 }, + { "px": [320,96], "src": [320,272], "f": 0, "t": 411, "d": [108,212], "a": 1 }, + { "px": [336,96], "src": [320,272], "f": 0, "t": 411, "d": [108,213], "a": 1 }, + { "px": [352,96], "src": [320,272], "f": 0, "t": 411, "d": [108,214], "a": 1 }, + { "px": [384,96], "src": [320,272], "f": 0, "t": 411, "d": [108,216], "a": 1 }, + { "px": [400,96], "src": [320,272], "f": 0, "t": 411, "d": [108,217], "a": 1 }, + { "px": [416,96], "src": [320,272], "f": 0, "t": 411, "d": [108,218], "a": 1 }, + { "px": [144,112], "src": [320,272], "f": 0, "t": 411, "d": [108,233], "a": 1 }, + { "px": [160,112], "src": [320,272], "f": 0, "t": 411, "d": [108,234], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [108,235], "a": 1 }, + { "px": [192,112], "src": [320,272], "f": 0, "t": 411, "d": [108,236], "a": 1 }, + { "px": [208,112], "src": [320,272], "f": 0, "t": 411, "d": [108,237], "a": 1 }, + { "px": [224,112], "src": [320,272], "f": 0, "t": 411, "d": [108,238], "a": 1 }, + { "px": [240,112], "src": [320,272], "f": 0, "t": 411, "d": [108,239], "a": 1 }, + { "px": [256,112], "src": [320,272], "f": 0, "t": 411, "d": [108,240], "a": 1 }, + { "px": [272,112], "src": [320,272], "f": 0, "t": 411, "d": [108,241], "a": 1 }, + { "px": [288,112], "src": [320,272], "f": 0, "t": 411, "d": [108,242], "a": 1 }, + { "px": [304,112], "src": [320,272], "f": 0, "t": 411, "d": [108,243], "a": 1 }, + { "px": [320,112], "src": [320,272], "f": 0, "t": 411, "d": [108,244], "a": 1 }, + { "px": [336,112], "src": [320,272], "f": 0, "t": 411, "d": [108,245], "a": 1 }, + { "px": [352,112], "src": [320,272], "f": 0, "t": 411, "d": [108,246], "a": 1 }, + { "px": [368,112], "src": [320,272], "f": 0, "t": 411, "d": [108,247], "a": 1 }, + { "px": [384,112], "src": [320,272], "f": 0, "t": 411, "d": [108,248], "a": 1 }, + { "px": [416,112], "src": [320,272], "f": 0, "t": 411, "d": [108,250], "a": 1 }, + { "px": [272,128], "src": [320,272], "f": 0, "t": 411, "d": [108,273], "a": 1 }, + { "px": [288,128], "src": [320,272], "f": 0, "t": 411, "d": [108,274], "a": 1 }, + { "px": [304,128], "src": [320,272], "f": 0, "t": 411, "d": [108,275], "a": 1 }, + { "px": [320,128], "src": [320,272], "f": 0, "t": 411, "d": [108,276], "a": 1 }, + { "px": [336,128], "src": [320,272], "f": 0, "t": 411, "d": [108,277], "a": 1 }, + { "px": [352,128], "src": [320,272], "f": 0, "t": 411, "d": [108,278], "a": 1 }, + { "px": [272,144], "src": [320,272], "f": 0, "t": 411, "d": [108,305], "a": 1 }, + { "px": [288,144], "src": [320,272], "f": 0, "t": 411, "d": [108,306], "a": 1 }, + { "px": [304,144], "src": [320,272], "f": 0, "t": 411, "d": [108,307], "a": 1 }, + { "px": [320,144], "src": [320,272], "f": 0, "t": 411, "d": [108,308], "a": 1 }, + { "px": [336,144], "src": [320,272], "f": 0, "t": 411, "d": [108,309], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [208,160], "src": [320,272], "f": 0, "t": 411, "d": [108,333], "a": 1 }, + { "px": [240,160], "src": [320,272], "f": 0, "t": 411, "d": [108,335], "a": 1 }, + { "px": [256,160], "src": [320,272], "f": 0, "t": 411, "d": [108,336], "a": 1 }, + { "px": [288,160], "src": [320,272], "f": 0, "t": 411, "d": [108,338], "a": 1 }, + { "px": [304,160], "src": [320,272], "f": 0, "t": 411, "d": [108,339], "a": 1 }, + { "px": [320,160], "src": [320,272], "f": 0, "t": 411, "d": [108,340], "a": 1 }, + { "px": [336,160], "src": [320,272], "f": 0, "t": 411, "d": [108,341], "a": 1 }, + { "px": [352,160], "src": [320,272], "f": 0, "t": 411, "d": [108,342], "a": 1 }, + { "px": [368,160], "src": [320,272], "f": 0, "t": 411, "d": [108,343], "a": 1 }, + { "px": [384,160], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [400,160], "src": [320,272], "f": 0, "t": 411, "d": [108,345], "a": 1 }, + { "px": [416,160], "src": [320,272], "f": 0, "t": 411, "d": [108,346], "a": 1 }, + { "px": [432,160], "src": [320,272], "f": 0, "t": 411, "d": [108,347], "a": 1 }, + { "px": [448,160], "src": [320,272], "f": 0, "t": 411, "d": [108,348], "a": 1 }, + { "px": [192,176], "src": [320,272], "f": 0, "t": 411, "d": [108,364], "a": 1 }, + { "px": [208,176], "src": [320,272], "f": 0, "t": 411, "d": [108,365], "a": 1 }, + { "px": [224,176], "src": [320,272], "f": 0, "t": 411, "d": [108,366], "a": 1 }, + { "px": [240,176], "src": [320,272], "f": 0, "t": 411, "d": [108,367], "a": 1 }, + { "px": [256,176], "src": [320,272], "f": 0, "t": 411, "d": [108,368], "a": 1 }, + { "px": [272,176], "src": [320,272], "f": 0, "t": 411, "d": [108,369], "a": 1 }, + { "px": [288,176], "src": [320,272], "f": 0, "t": 411, "d": [108,370], "a": 1 }, + { "px": [304,176], "src": [320,272], "f": 0, "t": 411, "d": [108,371], "a": 1 }, + { "px": [320,176], "src": [320,272], "f": 0, "t": 411, "d": [108,372], "a": 1 }, + { "px": [336,176], "src": [320,272], "f": 0, "t": 411, "d": [108,373], "a": 1 }, + { "px": [352,176], "src": [320,272], "f": 0, "t": 411, "d": [108,374], "a": 1 }, + { "px": [368,176], "src": [320,272], "f": 0, "t": 411, "d": [108,375], "a": 1 }, + { "px": [384,176], "src": [320,272], "f": 0, "t": 411, "d": [108,376], "a": 1 }, + { "px": [400,176], "src": [320,272], "f": 0, "t": 411, "d": [108,377], "a": 1 }, + { "px": [416,176], "src": [320,272], "f": 0, "t": 411, "d": [108,378], "a": 1 }, + { "px": [432,176], "src": [320,272], "f": 0, "t": 411, "d": [108,379], "a": 1 }, + { "px": [448,176], "src": [320,272], "f": 0, "t": 411, "d": [108,380], "a": 1 }, + { "px": [192,192], "src": [320,272], "f": 0, "t": 411, "d": [108,396], "a": 1 }, + { "px": [208,192], "src": [320,272], "f": 0, "t": 411, "d": [108,397], "a": 1 }, + { "px": [224,192], "src": [320,272], "f": 0, "t": 411, "d": [108,398], "a": 1 }, + { "px": [256,192], "src": [320,272], "f": 0, "t": 411, "d": [108,400], "a": 1 }, + { "px": [272,192], "src": [320,272], "f": 0, "t": 411, "d": [108,401], "a": 1 }, + { "px": [304,192], "src": [320,272], "f": 0, "t": 411, "d": [108,403], "a": 1 }, + { "px": [320,192], "src": [320,272], "f": 0, "t": 411, "d": [108,404], "a": 1 }, + { "px": [336,192], "src": [320,272], "f": 0, "t": 411, "d": [108,405], "a": 1 }, + { "px": [352,192], "src": [320,272], "f": 0, "t": 411, "d": [108,406], "a": 1 }, + { "px": [368,192], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [400,192], "src": [320,272], "f": 0, "t": 411, "d": [108,409], "a": 1 }, + { "px": [416,192], "src": [320,272], "f": 0, "t": 411, "d": [108,410], "a": 1 }, + { "px": [432,192], "src": [320,272], "f": 0, "t": 411, "d": [108,411], "a": 1 }, + { "px": [448,192], "src": [320,272], "f": 0, "t": 411, "d": [108,412], "a": 1 }, + { "px": [192,208], "src": [320,272], "f": 0, "t": 411, "d": [108,428], "a": 1 }, + { "px": [208,208], "src": [320,272], "f": 0, "t": 411, "d": [108,429], "a": 1 }, + { "px": [224,208], "src": [320,272], "f": 0, "t": 411, "d": [108,430], "a": 1 }, + { "px": [240,208], "src": [320,272], "f": 0, "t": 411, "d": [108,431], "a": 1 }, + { "px": [256,208], "src": [320,272], "f": 0, "t": 411, "d": [108,432], "a": 1 }, + { "px": [272,208], "src": [320,272], "f": 0, "t": 411, "d": [108,433], "a": 1 }, + { "px": [288,208], "src": [320,272], "f": 0, "t": 411, "d": [108,434], "a": 1 }, + { "px": [304,208], "src": [320,272], "f": 0, "t": 411, "d": [108,435], "a": 1 }, + { "px": [320,208], "src": [320,272], "f": 0, "t": 411, "d": [108,436], "a": 1 }, + { "px": [336,208], "src": [320,272], "f": 0, "t": 411, "d": [108,437], "a": 1 }, + { "px": [352,208], "src": [320,272], "f": 0, "t": 411, "d": [108,438], "a": 1 }, + { "px": [368,208], "src": [320,272], "f": 0, "t": 411, "d": [108,439], "a": 1 }, + { "px": [384,208], "src": [320,272], "f": 0, "t": 411, "d": [108,440], "a": 1 }, + { "px": [400,208], "src": [320,272], "f": 0, "t": 411, "d": [108,441], "a": 1 }, + { "px": [416,208], "src": [320,272], "f": 0, "t": 411, "d": [108,442], "a": 1 }, + { "px": [432,208], "src": [320,272], "f": 0, "t": 411, "d": [108,443], "a": 1 }, + { "px": [448,208], "src": [320,272], "f": 0, "t": 411, "d": [108,444], "a": 1 }, + { "px": [192,224], "src": [320,272], "f": 0, "t": 411, "d": [108,460], "a": 1 }, + { "px": [208,224], "src": [320,272], "f": 0, "t": 411, "d": [108,461], "a": 1 }, + { "px": [224,224], "src": [320,272], "f": 0, "t": 411, "d": [108,462], "a": 1 }, + { "px": [240,224], "src": [320,272], "f": 0, "t": 411, "d": [108,463], "a": 1 }, + { "px": [256,224], "src": [320,272], "f": 0, "t": 411, "d": [108,464], "a": 1 }, + { "px": [288,224], "src": [320,272], "f": 0, "t": 411, "d": [108,466], "a": 1 }, + { "px": [304,224], "src": [320,272], "f": 0, "t": 411, "d": [108,467], "a": 1 }, + { "px": [320,224], "src": [320,272], "f": 0, "t": 411, "d": [108,468], "a": 1 }, + { "px": [336,224], "src": [320,272], "f": 0, "t": 411, "d": [108,469], "a": 1 }, + { "px": [352,224], "src": [320,272], "f": 0, "t": 411, "d": [108,470], "a": 1 }, + { "px": [368,224], "src": [320,272], "f": 0, "t": 411, "d": [108,471], "a": 1 }, + { "px": [384,224], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [400,224], "src": [320,272], "f": 0, "t": 411, "d": [108,473], "a": 1 }, + { "px": [416,224], "src": [320,272], "f": 0, "t": 411, "d": [108,474], "a": 1 }, + { "px": [432,224], "src": [320,272], "f": 0, "t": 411, "d": [108,475], "a": 1 }, + { "px": [448,224], "src": [320,272], "f": 0, "t": 411, "d": [108,476], "a": 1 }, + { "px": [128,240], "src": [320,272], "f": 0, "t": 411, "d": [108,488], "a": 1 }, + { "px": [144,240], "src": [320,272], "f": 0, "t": 411, "d": [108,489], "a": 1 }, + { "px": [160,240], "src": [320,272], "f": 0, "t": 411, "d": [108,490], "a": 1 }, + { "px": [176,240], "src": [320,272], "f": 0, "t": 411, "d": [108,491], "a": 1 }, + { "px": [192,240], "src": [320,272], "f": 0, "t": 411, "d": [108,492], "a": 1 }, + { "px": [208,240], "src": [320,272], "f": 0, "t": 411, "d": [108,493], "a": 1 }, + { "px": [224,240], "src": [320,272], "f": 0, "t": 411, "d": [108,494], "a": 1 }, + { "px": [240,240], "src": [320,272], "f": 0, "t": 411, "d": [108,495], "a": 1 }, + { "px": [256,240], "src": [320,272], "f": 0, "t": 411, "d": [108,496], "a": 1 }, + { "px": [272,240], "src": [320,272], "f": 0, "t": 411, "d": [108,497], "a": 1 }, + { "px": [288,240], "src": [320,272], "f": 0, "t": 411, "d": [108,498], "a": 1 }, + { "px": [304,240], "src": [320,272], "f": 0, "t": 411, "d": [108,499], "a": 1 }, + { "px": [320,240], "src": [320,272], "f": 0, "t": 411, "d": [108,500], "a": 1 }, + { "px": [336,240], "src": [320,272], "f": 0, "t": 411, "d": [108,501], "a": 1 }, + { "px": [352,240], "src": [320,272], "f": 0, "t": 411, "d": [108,502], "a": 1 }, + { "px": [368,240], "src": [320,272], "f": 0, "t": 411, "d": [108,503], "a": 1 }, + { "px": [384,240], "src": [320,272], "f": 0, "t": 411, "d": [108,504], "a": 1 }, + { "px": [400,240], "src": [320,272], "f": 0, "t": 411, "d": [108,505], "a": 1 }, + { "px": [416,240], "src": [320,272], "f": 0, "t": 411, "d": [108,506], "a": 1 }, + { "px": [432,240], "src": [320,272], "f": 0, "t": 411, "d": [108,507], "a": 1 }, + { "px": [448,240], "src": [320,272], "f": 0, "t": 411, "d": [108,508], "a": 1 }, + { "px": [128,256], "src": [320,272], "f": 0, "t": 411, "d": [108,520], "a": 1 }, + { "px": [144,256], "src": [320,272], "f": 0, "t": 411, "d": [108,521], "a": 1 }, + { "px": [160,256], "src": [320,272], "f": 0, "t": 411, "d": [108,522], "a": 1 }, + { "px": [176,256], "src": [320,272], "f": 0, "t": 411, "d": [108,523], "a": 1 }, + { "px": [192,256], "src": [320,272], "f": 0, "t": 411, "d": [108,524], "a": 1 }, + { "px": [208,256], "src": [320,272], "f": 0, "t": 411, "d": [108,525], "a": 1 }, + { "px": [224,256], "src": [320,272], "f": 0, "t": 411, "d": [108,526], "a": 1 }, + { "px": [240,256], "src": [320,272], "f": 0, "t": 411, "d": [108,527], "a": 1 }, + { "px": [256,256], "src": [320,272], "f": 0, "t": 411, "d": [108,528], "a": 1 }, + { "px": [272,256], "src": [320,272], "f": 0, "t": 411, "d": [108,529], "a": 1 }, + { "px": [288,256], "src": [320,272], "f": 0, "t": 411, "d": [108,530], "a": 1 }, + { "px": [304,256], "src": [320,272], "f": 0, "t": 411, "d": [108,531], "a": 1 }, + { "px": [320,256], "src": [320,272], "f": 0, "t": 411, "d": [108,532], "a": 1 }, + { "px": [352,256], "src": [320,272], "f": 0, "t": 411, "d": [108,534], "a": 1 }, + { "px": [368,256], "src": [320,272], "f": 0, "t": 411, "d": [108,535], "a": 1 }, + { "px": [384,256], "src": [320,272], "f": 0, "t": 411, "d": [108,536], "a": 1 }, + { "px": [400,256], "src": [320,272], "f": 0, "t": 411, "d": [108,537], "a": 1 }, + { "px": [416,256], "src": [320,272], "f": 0, "t": 411, "d": [108,538], "a": 1 }, + { "px": [432,256], "src": [320,272], "f": 0, "t": 411, "d": [108,539], "a": 1 }, + { "px": [448,256], "src": [320,272], "f": 0, "t": 411, "d": [108,540], "a": 1 }, + { "px": [128,272], "src": [320,272], "f": 0, "t": 411, "d": [108,552], "a": 1 }, + { "px": [144,272], "src": [320,272], "f": 0, "t": 411, "d": [108,553], "a": 1 }, + { "px": [160,272], "src": [320,272], "f": 0, "t": 411, "d": [108,554], "a": 1 }, + { "px": [176,272], "src": [320,272], "f": 0, "t": 411, "d": [108,555], "a": 1 }, + { "px": [192,272], "src": [320,272], "f": 0, "t": 411, "d": [108,556], "a": 1 }, + { "px": [208,272], "src": [320,272], "f": 0, "t": 411, "d": [108,557], "a": 1 }, + { "px": [224,272], "src": [320,272], "f": 0, "t": 411, "d": [108,558], "a": 1 }, + { "px": [240,272], "src": [320,272], "f": 0, "t": 411, "d": [108,559], "a": 1 }, + { "px": [256,272], "src": [320,272], "f": 0, "t": 411, "d": [108,560], "a": 1 }, + { "px": [272,272], "src": [320,272], "f": 0, "t": 411, "d": [108,561], "a": 1 }, + { "px": [288,272], "src": [320,272], "f": 0, "t": 411, "d": [108,562], "a": 1 }, + { "px": [304,272], "src": [320,272], "f": 0, "t": 411, "d": [108,563], "a": 1 }, + { "px": [320,272], "src": [320,272], "f": 0, "t": 411, "d": [108,564], "a": 1 }, + { "px": [336,272], "src": [320,272], "f": 0, "t": 411, "d": [108,565], "a": 1 }, + { "px": [352,272], "src": [320,272], "f": 0, "t": 411, "d": [108,566], "a": 1 }, + { "px": [368,272], "src": [320,272], "f": 0, "t": 411, "d": [108,567], "a": 1 }, + { "px": [384,272], "src": [320,272], "f": 0, "t": 411, "d": [108,568], "a": 1 }, + { "px": [400,272], "src": [320,272], "f": 0, "t": 411, "d": [108,569], "a": 1 }, + { "px": [416,272], "src": [320,272], "f": 0, "t": 411, "d": [108,570], "a": 1 }, + { "px": [432,272], "src": [320,272], "f": 0, "t": 411, "d": [108,571], "a": 1 }, + { "px": [448,272], "src": [320,272], "f": 0, "t": 411, "d": [108,572], "a": 1 }, + { "px": [0,288], "src": [320,272], "f": 0, "t": 411, "d": [108,576], "a": 1 }, + { "px": [16,288], "src": [320,272], "f": 0, "t": 411, "d": [108,577], "a": 1 }, + { "px": [32,288], "src": [320,272], "f": 0, "t": 411, "d": [108,578], "a": 1 }, + { "px": [48,288], "src": [320,272], "f": 0, "t": 411, "d": [108,579], "a": 1 }, + { "px": [64,288], "src": [320,272], "f": 0, "t": 411, "d": [108,580], "a": 1 }, + { "px": [80,288], "src": [320,272], "f": 0, "t": 411, "d": [108,581], "a": 1 }, + { "px": [96,288], "src": [320,272], "f": 0, "t": 411, "d": [108,582], "a": 1 }, + { "px": [112,288], "src": [320,272], "f": 0, "t": 411, "d": [108,583], "a": 1 }, + { "px": [144,288], "src": [320,272], "f": 0, "t": 411, "d": [108,585], "a": 1 }, + { "px": [160,288], "src": [320,272], "f": 0, "t": 411, "d": [108,586], "a": 1 }, + { "px": [176,288], "src": [320,272], "f": 0, "t": 411, "d": [108,587], "a": 1 }, + { "px": [192,288], "src": [320,272], "f": 0, "t": 411, "d": [108,588], "a": 1 }, + { "px": [208,288], "src": [320,272], "f": 0, "t": 411, "d": [108,589], "a": 1 }, + { "px": [224,288], "src": [320,272], "f": 0, "t": 411, "d": [108,590], "a": 1 }, + { "px": [240,288], "src": [320,272], "f": 0, "t": 411, "d": [108,591], "a": 1 }, + { "px": [256,288], "src": [320,272], "f": 0, "t": 411, "d": [108,592], "a": 1 }, + { "px": [272,288], "src": [320,272], "f": 0, "t": 411, "d": [108,593], "a": 1 }, + { "px": [288,288], "src": [320,272], "f": 0, "t": 411, "d": [108,594], "a": 1 }, + { "px": [304,288], "src": [320,272], "f": 0, "t": 411, "d": [108,595], "a": 1 }, + { "px": [320,288], "src": [320,272], "f": 0, "t": 411, "d": [108,596], "a": 1 }, + { "px": [336,288], "src": [320,272], "f": 0, "t": 411, "d": [108,597], "a": 1 }, + { "px": [352,288], "src": [320,272], "f": 0, "t": 411, "d": [108,598], "a": 1 }, + { "px": [368,288], "src": [320,272], "f": 0, "t": 411, "d": [108,599], "a": 1 }, + { "px": [384,288], "src": [320,272], "f": 0, "t": 411, "d": [108,600], "a": 1 }, + { "px": [400,288], "src": [320,272], "f": 0, "t": 411, "d": [108,601], "a": 1 }, + { "px": [416,288], "src": [320,272], "f": 0, "t": 411, "d": [108,602], "a": 1 }, + { "px": [432,288], "src": [320,272], "f": 0, "t": 411, "d": [108,603], "a": 1 }, + { "px": [448,288], "src": [320,272], "f": 0, "t": 411, "d": [108,604], "a": 1 }, + { "px": [0,304], "src": [320,272], "f": 0, "t": 411, "d": [108,608], "a": 1 }, + { "px": [16,304], "src": [320,272], "f": 0, "t": 411, "d": [108,609], "a": 1 }, + { "px": [32,304], "src": [320,272], "f": 0, "t": 411, "d": [108,610], "a": 1 }, + { "px": [48,304], "src": [320,272], "f": 0, "t": 411, "d": [108,611], "a": 1 }, + { "px": [64,304], "src": [320,272], "f": 0, "t": 411, "d": [108,612], "a": 1 }, + { "px": [80,304], "src": [320,272], "f": 0, "t": 411, "d": [108,613], "a": 1 }, + { "px": [96,304], "src": [320,272], "f": 0, "t": 411, "d": [108,614], "a": 1 }, + { "px": [112,304], "src": [320,272], "f": 0, "t": 411, "d": [108,615], "a": 1 }, + { "px": [128,304], "src": [320,272], "f": 0, "t": 411, "d": [108,616], "a": 1 }, + { "px": [144,304], "src": [320,272], "f": 0, "t": 411, "d": [108,617], "a": 1 }, + { "px": [160,304], "src": [320,272], "f": 0, "t": 411, "d": [108,618], "a": 1 }, + { "px": [176,304], "src": [320,272], "f": 0, "t": 411, "d": [108,619], "a": 1 }, + { "px": [192,304], "src": [320,272], "f": 0, "t": 411, "d": [108,620], "a": 1 }, + { "px": [208,304], "src": [320,272], "f": 0, "t": 411, "d": [108,621], "a": 1 }, + { "px": [224,304], "src": [320,272], "f": 0, "t": 411, "d": [108,622], "a": 1 }, + { "px": [240,304], "src": [320,272], "f": 0, "t": 411, "d": [108,623], "a": 1 }, + { "px": [256,304], "src": [320,272], "f": 0, "t": 411, "d": [108,624], "a": 1 }, + { "px": [272,304], "src": [320,272], "f": 0, "t": 411, "d": [108,625], "a": 1 }, + { "px": [288,304], "src": [320,272], "f": 0, "t": 411, "d": [108,626], "a": 1 }, + { "px": [304,304], "src": [320,272], "f": 0, "t": 411, "d": [108,627], "a": 1 }, + { "px": [320,304], "src": [320,272], "f": 0, "t": 411, "d": [108,628], "a": 1 }, + { "px": [336,304], "src": [320,272], "f": 0, "t": 411, "d": [108,629], "a": 1 }, + { "px": [352,304], "src": [320,272], "f": 0, "t": 411, "d": [108,630], "a": 1 }, + { "px": [368,304], "src": [320,272], "f": 0, "t": 411, "d": [108,631], "a": 1 }, + { "px": [384,304], "src": [320,272], "f": 0, "t": 411, "d": [108,632], "a": 1 }, + { "px": [400,304], "src": [320,272], "f": 0, "t": 411, "d": [108,633], "a": 1 }, + { "px": [416,304], "src": [320,272], "f": 0, "t": 411, "d": [108,634], "a": 1 }, + { "px": [432,304], "src": [320,272], "f": 0, "t": 411, "d": [108,635], "a": 1 }, + { "px": [448,304], "src": [320,272], "f": 0, "t": 411, "d": [108,636], "a": 1 }, + { "px": [112,320], "src": [320,272], "f": 0, "t": 411, "d": [108,647], "a": 1 }, + { "px": [128,320], "src": [320,272], "f": 0, "t": 411, "d": [108,648], "a": 1 }, + { "px": [144,320], "src": [320,272], "f": 0, "t": 411, "d": [108,649], "a": 1 }, + { "px": [160,320], "src": [320,272], "f": 0, "t": 411, "d": [108,650], "a": 1 }, + { "px": [176,320], "src": [320,272], "f": 0, "t": 411, "d": [108,651], "a": 1 }, + { "px": [192,320], "src": [320,272], "f": 0, "t": 411, "d": [108,652], "a": 1 }, + { "px": [208,320], "src": [320,272], "f": 0, "t": 411, "d": [108,653], "a": 1 }, + { "px": [224,320], "src": [320,272], "f": 0, "t": 411, "d": [108,654], "a": 1 }, + { "px": [240,320], "src": [320,272], "f": 0, "t": 411, "d": [108,655], "a": 1 }, + { "px": [256,320], "src": [320,272], "f": 0, "t": 411, "d": [108,656], "a": 1 }, + { "px": [272,320], "src": [320,272], "f": 0, "t": 411, "d": [108,657], "a": 1 }, + { "px": [288,320], "src": [320,272], "f": 0, "t": 411, "d": [108,658], "a": 1 }, + { "px": [304,320], "src": [320,272], "f": 0, "t": 411, "d": [108,659], "a": 1 }, + { "px": [320,320], "src": [320,272], "f": 0, "t": 411, "d": [108,660], "a": 1 }, + { "px": [336,320], "src": [320,272], "f": 0, "t": 411, "d": [108,661], "a": 1 }, + { "px": [352,320], "src": [320,272], "f": 0, "t": 411, "d": [108,662], "a": 1 }, + { "px": [368,320], "src": [320,272], "f": 0, "t": 411, "d": [108,663], "a": 1 }, + { "px": [384,320], "src": [320,272], "f": 0, "t": 411, "d": [108,664], "a": 1 }, + { "px": [400,320], "src": [320,272], "f": 0, "t": 411, "d": [108,665], "a": 1 }, + { "px": [416,320], "src": [320,272], "f": 0, "t": 411, "d": [108,666], "a": 1 }, + { "px": [432,320], "src": [320,272], "f": 0, "t": 411, "d": [108,667], "a": 1 }, + { "px": [448,320], "src": [320,272], "f": 0, "t": 411, "d": [108,668], "a": 1 }, + { "px": [464,320], "src": [320,272], "f": 0, "t": 411, "d": [108,669], "a": 1 }, + { "px": [112,336], "src": [320,272], "f": 0, "t": 411, "d": [108,679], "a": 1 }, + { "px": [128,336], "src": [320,272], "f": 0, "t": 411, "d": [108,680], "a": 1 }, + { "px": [144,336], "src": [320,272], "f": 0, "t": 411, "d": [108,681], "a": 1 }, + { "px": [160,336], "src": [320,272], "f": 0, "t": 411, "d": [108,682], "a": 1 }, + { "px": [176,336], "src": [320,272], "f": 0, "t": 411, "d": [108,683], "a": 1 }, + { "px": [192,336], "src": [320,272], "f": 0, "t": 411, "d": [108,684], "a": 1 }, + { "px": [208,336], "src": [320,272], "f": 0, "t": 411, "d": [108,685], "a": 1 }, + { "px": [224,336], "src": [320,272], "f": 0, "t": 411, "d": [108,686], "a": 1 }, + { "px": [240,336], "src": [320,272], "f": 0, "t": 411, "d": [108,687], "a": 1 }, + { "px": [256,336], "src": [320,272], "f": 0, "t": 411, "d": [108,688], "a": 1 }, + { "px": [272,336], "src": [320,272], "f": 0, "t": 411, "d": [108,689], "a": 1 }, + { "px": [288,336], "src": [320,272], "f": 0, "t": 411, "d": [108,690], "a": 1 }, + { "px": [304,336], "src": [320,272], "f": 0, "t": 411, "d": [108,691], "a": 1 }, + { "px": [320,336], "src": [320,272], "f": 0, "t": 411, "d": [108,692], "a": 1 }, + { "px": [336,336], "src": [320,272], "f": 0, "t": 411, "d": [108,693], "a": 1 }, + { "px": [352,336], "src": [320,272], "f": 0, "t": 411, "d": [108,694], "a": 1 }, + { "px": [368,336], "src": [320,272], "f": 0, "t": 411, "d": [108,695], "a": 1 }, + { "px": [384,336], "src": [320,272], "f": 0, "t": 411, "d": [108,696], "a": 1 }, + { "px": [400,336], "src": [320,272], "f": 0, "t": 411, "d": [108,697], "a": 1 }, + { "px": [416,336], "src": [320,272], "f": 0, "t": 411, "d": [108,698], "a": 1 }, + { "px": [432,336], "src": [320,272], "f": 0, "t": 411, "d": [108,699], "a": 1 }, + { "px": [448,336], "src": [320,272], "f": 0, "t": 411, "d": [108,700], "a": 1 }, + { "px": [464,336], "src": [320,272], "f": 0, "t": 411, "d": [108,701], "a": 1 }, + { "px": [112,352], "src": [320,272], "f": 0, "t": 411, "d": [108,711], "a": 1 }, + { "px": [128,352], "src": [320,272], "f": 0, "t": 411, "d": [108,712], "a": 1 }, + { "px": [144,352], "src": [320,272], "f": 0, "t": 411, "d": [108,713], "a": 1 }, + { "px": [160,352], "src": [320,272], "f": 0, "t": 411, "d": [108,714], "a": 1 }, + { "px": [176,352], "src": [320,272], "f": 0, "t": 411, "d": [108,715], "a": 1 }, + { "px": [192,352], "src": [320,272], "f": 0, "t": 411, "d": [108,716], "a": 1 }, + { "px": [208,352], "src": [320,272], "f": 0, "t": 411, "d": [108,717], "a": 1 }, + { "px": [224,352], "src": [320,272], "f": 0, "t": 411, "d": [108,718], "a": 1 }, + { "px": [240,352], "src": [320,272], "f": 0, "t": 411, "d": [108,719], "a": 1 }, + { "px": [256,352], "src": [320,272], "f": 0, "t": 411, "d": [108,720], "a": 1 }, + { "px": [272,352], "src": [320,272], "f": 0, "t": 411, "d": [108,721], "a": 1 }, + { "px": [288,352], "src": [320,272], "f": 0, "t": 411, "d": [108,722], "a": 1 }, + { "px": [304,352], "src": [320,272], "f": 0, "t": 411, "d": [108,723], "a": 1 }, + { "px": [320,352], "src": [320,272], "f": 0, "t": 411, "d": [108,724], "a": 1 }, + { "px": [336,352], "src": [320,272], "f": 0, "t": 411, "d": [108,725], "a": 1 }, + { "px": [352,352], "src": [320,272], "f": 0, "t": 411, "d": [108,726], "a": 1 }, + { "px": [368,352], "src": [320,272], "f": 0, "t": 411, "d": [108,727], "a": 1 }, + { "px": [384,352], "src": [320,272], "f": 0, "t": 411, "d": [108,728], "a": 1 }, + { "px": [400,352], "src": [320,272], "f": 0, "t": 411, "d": [108,729], "a": 1 }, + { "px": [416,352], "src": [320,272], "f": 0, "t": 411, "d": [108,730], "a": 1 }, + { "px": [432,352], "src": [320,272], "f": 0, "t": 411, "d": [108,731], "a": 1 }, + { "px": [448,352], "src": [320,272], "f": 0, "t": 411, "d": [108,732], "a": 1 }, + { "px": [464,352], "src": [320,272], "f": 0, "t": 411, "d": [108,733], "a": 1 }, + { "px": [112,368], "src": [320,272], "f": 0, "t": 411, "d": [108,743], "a": 1 }, + { "px": [128,368], "src": [320,272], "f": 0, "t": 411, "d": [108,744], "a": 1 }, + { "px": [144,368], "src": [320,272], "f": 0, "t": 411, "d": [108,745], "a": 1 }, + { "px": [160,368], "src": [320,272], "f": 0, "t": 411, "d": [108,746], "a": 1 }, + { "px": [176,368], "src": [320,272], "f": 0, "t": 411, "d": [108,747], "a": 1 }, + { "px": [192,368], "src": [320,272], "f": 0, "t": 411, "d": [108,748], "a": 1 }, + { "px": [208,368], "src": [320,272], "f": 0, "t": 411, "d": [108,749], "a": 1 }, + { "px": [224,368], "src": [320,272], "f": 0, "t": 411, "d": [108,750], "a": 1 }, + { "px": [240,368], "src": [320,272], "f": 0, "t": 411, "d": [108,751], "a": 1 }, + { "px": [256,368], "src": [320,272], "f": 0, "t": 411, "d": [108,752], "a": 1 }, + { "px": [272,368], "src": [320,272], "f": 0, "t": 411, "d": [108,753], "a": 1 }, + { "px": [288,368], "src": [320,272], "f": 0, "t": 411, "d": [108,754], "a": 1 }, + { "px": [304,368], "src": [320,272], "f": 0, "t": 411, "d": [108,755], "a": 1 }, + { "px": [320,368], "src": [320,272], "f": 0, "t": 411, "d": [108,756], "a": 1 }, + { "px": [336,368], "src": [320,272], "f": 0, "t": 411, "d": [108,757], "a": 1 }, + { "px": [352,368], "src": [320,272], "f": 0, "t": 411, "d": [108,758], "a": 1 }, + { "px": [368,368], "src": [320,272], "f": 0, "t": 411, "d": [108,759], "a": 1 }, + { "px": [384,368], "src": [320,272], "f": 0, "t": 411, "d": [108,760], "a": 1 }, + { "px": [400,368], "src": [320,272], "f": 0, "t": 411, "d": [108,761], "a": 1 }, + { "px": [416,368], "src": [320,272], "f": 0, "t": 411, "d": [108,762], "a": 1 }, + { "px": [432,368], "src": [320,272], "f": 0, "t": 411, "d": [108,763], "a": 1 }, + { "px": [448,368], "src": [320,272], "f": 0, "t": 411, "d": [108,764], "a": 1 }, + { "px": [464,368], "src": [320,272], "f": 0, "t": 411, "d": [108,765], "a": 1 }, + { "px": [112,384], "src": [320,272], "f": 0, "t": 411, "d": [108,775], "a": 1 }, + { "px": [128,384], "src": [320,272], "f": 0, "t": 411, "d": [108,776], "a": 1 }, + { "px": [144,384], "src": [320,272], "f": 0, "t": 411, "d": [108,777], "a": 1 }, + { "px": [160,384], "src": [320,272], "f": 0, "t": 411, "d": [108,778], "a": 1 }, + { "px": [176,384], "src": [320,272], "f": 0, "t": 411, "d": [108,779], "a": 1 }, + { "px": [192,384], "src": [320,272], "f": 0, "t": 411, "d": [108,780], "a": 1 }, + { "px": [208,384], "src": [320,272], "f": 0, "t": 411, "d": [108,781], "a": 1 }, + { "px": [224,384], "src": [320,272], "f": 0, "t": 411, "d": [108,782], "a": 1 }, + { "px": [240,384], "src": [320,272], "f": 0, "t": 411, "d": [108,783], "a": 1 }, + { "px": [256,384], "src": [320,272], "f": 0, "t": 411, "d": [108,784], "a": 1 }, + { "px": [272,384], "src": [320,272], "f": 0, "t": 411, "d": [108,785], "a": 1 }, + { "px": [288,384], "src": [320,272], "f": 0, "t": 411, "d": [108,786], "a": 1 }, + { "px": [304,384], "src": [320,272], "f": 0, "t": 411, "d": [108,787], "a": 1 }, + { "px": [320,384], "src": [320,272], "f": 0, "t": 411, "d": [108,788], "a": 1 }, + { "px": [336,384], "src": [320,272], "f": 0, "t": 411, "d": [108,789], "a": 1 }, + { "px": [352,384], "src": [320,272], "f": 0, "t": 411, "d": [108,790], "a": 1 }, + { "px": [368,384], "src": [320,272], "f": 0, "t": 411, "d": [108,791], "a": 1 }, + { "px": [384,384], "src": [320,272], "f": 0, "t": 411, "d": [108,792], "a": 1 }, + { "px": [400,384], "src": [320,272], "f": 0, "t": 411, "d": [108,793], "a": 1 }, + { "px": [416,384], "src": [320,272], "f": 0, "t": 411, "d": [108,794], "a": 1 }, + { "px": [432,384], "src": [320,272], "f": 0, "t": 411, "d": [108,795], "a": 1 }, + { "px": [448,384], "src": [320,272], "f": 0, "t": 411, "d": [108,796], "a": 1 }, + { "px": [464,384], "src": [320,272], "f": 0, "t": 411, "d": [108,797], "a": 1 }, + { "px": [112,400], "src": [320,272], "f": 0, "t": 411, "d": [108,807], "a": 1 }, + { "px": [128,400], "src": [320,272], "f": 0, "t": 411, "d": [108,808], "a": 1 }, + { "px": [144,400], "src": [320,272], "f": 0, "t": 411, "d": [108,809], "a": 1 }, + { "px": [160,400], "src": [320,272], "f": 0, "t": 411, "d": [108,810], "a": 1 }, + { "px": [176,400], "src": [320,272], "f": 0, "t": 411, "d": [108,811], "a": 1 }, + { "px": [192,400], "src": [320,272], "f": 0, "t": 411, "d": [108,812], "a": 1 }, + { "px": [208,400], "src": [320,272], "f": 0, "t": 411, "d": [108,813], "a": 1 }, + { "px": [224,400], "src": [320,272], "f": 0, "t": 411, "d": [108,814], "a": 1 }, + { "px": [240,400], "src": [320,272], "f": 0, "t": 411, "d": [108,815], "a": 1 }, + { "px": [256,400], "src": [320,272], "f": 0, "t": 411, "d": [108,816], "a": 1 }, + { "px": [272,400], "src": [320,272], "f": 0, "t": 411, "d": [108,817], "a": 1 }, + { "px": [288,400], "src": [320,272], "f": 0, "t": 411, "d": [108,818], "a": 1 }, + { "px": [304,400], "src": [320,272], "f": 0, "t": 411, "d": [108,819], "a": 1 }, + { "px": [320,400], "src": [320,272], "f": 0, "t": 411, "d": [108,820], "a": 1 }, + { "px": [336,400], "src": [320,272], "f": 0, "t": 411, "d": [108,821], "a": 1 }, + { "px": [352,400], "src": [320,272], "f": 0, "t": 411, "d": [108,822], "a": 1 }, + { "px": [368,400], "src": [320,272], "f": 0, "t": 411, "d": [108,823], "a": 1 }, + { "px": [384,400], "src": [320,272], "f": 0, "t": 411, "d": [108,824], "a": 1 }, + { "px": [400,400], "src": [320,272], "f": 0, "t": 411, "d": [108,825], "a": 1 }, + { "px": [416,400], "src": [320,272], "f": 0, "t": 411, "d": [108,826], "a": 1 }, + { "px": [432,400], "src": [320,272], "f": 0, "t": 411, "d": [108,827], "a": 1 }, + { "px": [448,400], "src": [320,272], "f": 0, "t": 411, "d": [108,828], "a": 1 }, + { "px": [464,400], "src": [320,272], "f": 0, "t": 411, "d": [108,829], "a": 1 }, + { "px": [112,416], "src": [320,272], "f": 0, "t": 411, "d": [108,839], "a": 1 }, + { "px": [128,416], "src": [320,272], "f": 0, "t": 411, "d": [108,840], "a": 1 }, + { "px": [144,416], "src": [320,272], "f": 0, "t": 411, "d": [108,841], "a": 1 }, + { "px": [160,416], "src": [320,272], "f": 0, "t": 411, "d": [108,842], "a": 1 }, + { "px": [176,416], "src": [320,272], "f": 0, "t": 411, "d": [108,843], "a": 1 }, + { "px": [192,416], "src": [320,272], "f": 0, "t": 411, "d": [108,844], "a": 1 }, + { "px": [208,416], "src": [320,272], "f": 0, "t": 411, "d": [108,845], "a": 1 }, + { "px": [224,416], "src": [320,272], "f": 0, "t": 411, "d": [108,846], "a": 1 }, + { "px": [240,416], "src": [320,272], "f": 0, "t": 411, "d": [108,847], "a": 1 }, + { "px": [256,416], "src": [320,272], "f": 0, "t": 411, "d": [108,848], "a": 1 }, + { "px": [272,416], "src": [320,272], "f": 0, "t": 411, "d": [108,849], "a": 1 }, + { "px": [288,416], "src": [320,272], "f": 0, "t": 411, "d": [108,850], "a": 1 }, + { "px": [304,416], "src": [320,272], "f": 0, "t": 411, "d": [108,851], "a": 1 }, + { "px": [320,416], "src": [320,272], "f": 0, "t": 411, "d": [108,852], "a": 1 }, + { "px": [336,416], "src": [320,272], "f": 0, "t": 411, "d": [108,853], "a": 1 }, + { "px": [352,416], "src": [320,272], "f": 0, "t": 411, "d": [108,854], "a": 1 }, + { "px": [368,416], "src": [320,272], "f": 0, "t": 411, "d": [108,855], "a": 1 }, + { "px": [384,416], "src": [320,272], "f": 0, "t": 411, "d": [108,856], "a": 1 }, + { "px": [400,416], "src": [320,272], "f": 0, "t": 411, "d": [108,857], "a": 1 }, + { "px": [416,416], "src": [320,272], "f": 0, "t": 411, "d": [108,858], "a": 1 }, + { "px": [432,416], "src": [320,272], "f": 0, "t": 411, "d": [108,859], "a": 1 }, + { "px": [448,416], "src": [320,272], "f": 0, "t": 411, "d": [108,860], "a": 1 }, + { "px": [464,416], "src": [320,272], "f": 0, "t": 411, "d": [108,861], "a": 1 }, + { "px": [144,48], "src": [256,240], "f": 1, "t": 361, "d": [107,104], "a": 1 }, + { "px": [128,48], "src": [272,240], "f": 1, "t": 362, "d": [107,104], "a": 1 }, + { "px": [144,64], "src": [256,240], "f": 1, "t": 361, "d": [107,136], "a": 1 }, + { "px": [128,64], "src": [272,240], "f": 1, "t": 362, "d": [107,136], "a": 1 }, + { "px": [144,80], "src": [256,240], "f": 1, "t": 361, "d": [107,168], "a": 1 }, + { "px": [128,80], "src": [272,240], "f": 1, "t": 362, "d": [107,168], "a": 1 }, + { "px": [416,80], "src": [256,240], "f": 0, "t": 361, "d": [107,187], "a": 1 }, + { "px": [432,80], "src": [272,240], "f": 0, "t": 362, "d": [107,187], "a": 1 }, + { "px": [144,96], "src": [256,240], "f": 1, "t": 361, "d": [107,200], "a": 1 }, + { "px": [128,96], "src": [272,240], "f": 1, "t": 362, "d": [107,200], "a": 1 }, + { "px": [416,96], "src": [256,240], "f": 0, "t": 361, "d": [107,219], "a": 1 }, + { "px": [432,96], "src": [272,240], "f": 0, "t": 362, "d": [107,219], "a": 1 }, + { "px": [272,128], "src": [256,240], "f": 1, "t": 361, "d": [107,272], "a": 1 }, + { "px": [256,128], "src": [272,240], "f": 1, "t": 362, "d": [107,272], "a": 1 }, + { "px": [352,128], "src": [256,240], "f": 0, "t": 361, "d": [107,279], "a": 1 }, + { "px": [368,128], "src": [272,240], "f": 0, "t": 362, "d": [107,279], "a": 1 }, + { "px": [272,144], "src": [256,240], "f": 1, "t": 361, "d": [107,304], "a": 1 }, + { "px": [256,144], "src": [272,240], "f": 1, "t": 362, "d": [107,304], "a": 1 }, + { "px": [352,144], "src": [256,240], "f": 0, "t": 361, "d": [107,311], "a": 1 }, + { "px": [368,144], "src": [272,240], "f": 0, "t": 362, "d": [107,311], "a": 1 }, + { "px": [192,176], "src": [256,240], "f": 1, "t": 361, "d": [107,363], "a": 1 }, + { "px": [176,176], "src": [272,240], "f": 1, "t": 362, "d": [107,363], "a": 1 }, + { "px": [448,176], "src": [256,240], "f": 0, "t": 361, "d": [107,381], "a": 1 }, + { "px": [464,176], "src": [272,240], "f": 0, "t": 362, "d": [107,381], "a": 1 }, + { "px": [192,192], "src": [256,240], "f": 1, "t": 361, "d": [107,395], "a": 1 }, + { "px": [176,192], "src": [272,240], "f": 1, "t": 362, "d": [107,395], "a": 1 }, + { "px": [448,192], "src": [256,240], "f": 0, "t": 361, "d": [107,413], "a": 1 }, + { "px": [464,192], "src": [272,240], "f": 0, "t": 362, "d": [107,413], "a": 1 }, + { "px": [192,208], "src": [256,240], "f": 1, "t": 361, "d": [107,427], "a": 1 }, + { "px": [176,208], "src": [272,240], "f": 1, "t": 362, "d": [107,427], "a": 1 }, + { "px": [448,208], "src": [256,240], "f": 0, "t": 361, "d": [107,445], "a": 1 }, + { "px": [464,208], "src": [272,240], "f": 0, "t": 362, "d": [107,445], "a": 1 }, + { "px": [192,224], "src": [256,240], "f": 1, "t": 361, "d": [107,459], "a": 1 }, + { "px": [176,224], "src": [272,240], "f": 1, "t": 362, "d": [107,459], "a": 1 }, + { "px": [448,224], "src": [256,240], "f": 0, "t": 361, "d": [107,477], "a": 1 }, + { "px": [464,224], "src": [272,240], "f": 0, "t": 362, "d": [107,477], "a": 1 }, + { "px": [128,240], "src": [256,240], "f": 1, "t": 361, "d": [107,487], "a": 1 }, + { "px": [112,240], "src": [272,240], "f": 1, "t": 362, "d": [107,487], "a": 1 }, + { "px": [448,240], "src": [256,240], "f": 0, "t": 361, "d": [107,509], "a": 1 }, + { "px": [464,240], "src": [272,240], "f": 0, "t": 362, "d": [107,509], "a": 1 }, + { "px": [128,256], "src": [256,240], "f": 1, "t": 361, "d": [107,519], "a": 1 }, + { "px": [112,256], "src": [272,240], "f": 1, "t": 362, "d": [107,519], "a": 1 }, + { "px": [448,256], "src": [256,240], "f": 0, "t": 361, "d": [107,541], "a": 1 }, + { "px": [464,256], "src": [272,240], "f": 0, "t": 362, "d": [107,541], "a": 1 }, + { "px": [128,272], "src": [256,240], "f": 1, "t": 361, "d": [107,551], "a": 1 }, + { "px": [112,272], "src": [272,240], "f": 1, "t": 362, "d": [107,551], "a": 1 }, + { "px": [448,272], "src": [256,240], "f": 0, "t": 361, "d": [107,573], "a": 1 }, + { "px": [464,272], "src": [272,240], "f": 0, "t": 362, "d": [107,573], "a": 1 }, + { "px": [448,288], "src": [256,240], "f": 0, "t": 361, "d": [107,605], "a": 1 }, + { "px": [464,288], "src": [272,240], "f": 0, "t": 362, "d": [107,605], "a": 1 }, + { "px": [448,304], "src": [256,240], "f": 0, "t": 361, "d": [107,637], "a": 1 }, + { "px": [464,304], "src": [272,240], "f": 0, "t": 362, "d": [107,637], "a": 1 }, + { "px": [128,64], "src": [256,240], "f": 0, "t": 361, "d": [105,137], "a": 1 }, + { "px": [144,64], "src": [272,240], "f": 0, "t": 362, "d": [105,137], "a": 1 }, + { "px": [160,64], "src": [288,240], "f": 0, "t": 363, "d": [105,137], "a": 1 }, + { "px": [224,64], "src": [256,240], "f": 0, "t": 361, "d": [105,143], "a": 1 }, + { "px": [240,64], "src": [272,240], "f": 0, "t": 362, "d": [105,143], "a": 1 }, + { "px": [256,64], "src": [288,240], "f": 0, "t": 363, "d": [105,143], "a": 1 }, + { "px": [320,64], "src": [256,240], "f": 0, "t": 361, "d": [105,149], "a": 1 }, + { "px": [336,64], "src": [272,240], "f": 0, "t": 362, "d": [105,149], "a": 1 }, + { "px": [352,64], "src": [288,240], "f": 0, "t": 363, "d": [105,149], "a": 1 }, + { "px": [208,96], "src": [256,240], "f": 0, "t": 361, "d": [105,206], "a": 1 }, + { "px": [224,96], "src": [272,240], "f": 0, "t": 362, "d": [105,206], "a": 1 }, + { "px": [240,96], "src": [288,240], "f": 0, "t": 363, "d": [105,206], "a": 1 }, + { "px": [352,96], "src": [256,240], "f": 0, "t": 361, "d": [105,215], "a": 1 }, + { "px": [368,96], "src": [272,240], "f": 0, "t": 362, "d": [105,215], "a": 1 }, + { "px": [384,96], "src": [288,240], "f": 0, "t": 363, "d": [105,215], "a": 1 }, + { "px": [256,160], "src": [256,240], "f": 0, "t": 361, "d": [105,337], "a": 1 }, + { "px": [272,160], "src": [272,240], "f": 0, "t": 362, "d": [105,337], "a": 1 }, + { "px": [288,160], "src": [288,240], "f": 0, "t": 363, "d": [105,337], "a": 1 }, + { "px": [224,192], "src": [256,240], "f": 0, "t": 361, "d": [105,399], "a": 1 }, + { "px": [240,192], "src": [272,240], "f": 0, "t": 362, "d": [105,399], "a": 1 }, + { "px": [256,192], "src": [288,240], "f": 0, "t": 363, "d": [105,399], "a": 1 }, + { "px": [272,192], "src": [256,240], "f": 0, "t": 361, "d": [105,402], "a": 1 }, + { "px": [288,192], "src": [272,240], "f": 0, "t": 362, "d": [105,402], "a": 1 }, + { "px": [304,192], "src": [288,240], "f": 0, "t": 363, "d": [105,402], "a": 1 }, + { "px": [368,192], "src": [256,240], "f": 0, "t": 361, "d": [105,408], "a": 1 }, + { "px": [384,192], "src": [272,240], "f": 0, "t": 362, "d": [105,408], "a": 1 }, + { "px": [400,192], "src": [288,240], "f": 0, "t": 363, "d": [105,408], "a": 1 }, + { "px": [256,224], "src": [256,240], "f": 0, "t": 361, "d": [105,465], "a": 1 }, + { "px": [272,224], "src": [272,240], "f": 0, "t": 362, "d": [105,465], "a": 1 }, + { "px": [288,224], "src": [288,240], "f": 0, "t": 363, "d": [105,465], "a": 1 }, + { "px": [320,256], "src": [256,240], "f": 0, "t": 361, "d": [105,533], "a": 1 }, + { "px": [336,256], "src": [272,240], "f": 0, "t": 362, "d": [105,533], "a": 1 }, + { "px": [352,256], "src": [288,240], "f": 0, "t": 363, "d": [105,533], "a": 1 }, + { "px": [112,288], "src": [256,240], "f": 0, "t": 361, "d": [105,584], "a": 1 }, + { "px": [128,288], "src": [272,240], "f": 0, "t": 362, "d": [105,584], "a": 1 }, + { "px": [144,288], "src": [288,240], "f": 0, "t": 363, "d": [105,584], "a": 1 }, + { "px": [144,80], "src": [144,240], "f": 2, "t": 354, "d": [112,106], "a": 1 }, + { "px": [144,64], "src": [144,256], "f": 2, "t": 377, "d": [112,106], "a": 1 }, + { "px": [144,48], "src": [144,272], "f": 2, "t": 400, "d": [112,106], "a": 1 }, + { "px": [160,80], "src": [160,240], "f": 2, "t": 355, "d": [112,106], "a": 1 }, + { "px": [160,64], "src": [160,256], "f": 2, "t": 378, "d": [112,106], "a": 1 }, + { "px": [160,48], "src": [160,272], "f": 2, "t": 401, "d": [112,106], "a": 1 }, + { "px": [176,80], "src": [176,240], "f": 2, "t": 356, "d": [112,106], "a": 1 }, + { "px": [176,64], "src": [176,256], "f": 2, "t": 379, "d": [112,106], "a": 1 }, + { "px": [176,48], "src": [176,272], "f": 2, "t": 402, "d": [112,106], "a": 1 }, + { "px": [384,80], "src": [144,240], "f": 2, "t": 354, "d": [112,121], "a": 1 }, + { "px": [384,64], "src": [144,256], "f": 2, "t": 377, "d": [112,121], "a": 1 }, + { "px": [384,48], "src": [144,272], "f": 2, "t": 400, "d": [112,121], "a": 1 }, + { "px": [400,80], "src": [160,240], "f": 2, "t": 355, "d": [112,121], "a": 1 }, + { "px": [400,64], "src": [160,256], "f": 2, "t": 378, "d": [112,121], "a": 1 }, + { "px": [400,48], "src": [160,272], "f": 2, "t": 401, "d": [112,121], "a": 1 }, + { "px": [416,80], "src": [176,240], "f": 2, "t": 356, "d": [112,121], "a": 1 }, + { "px": [416,64], "src": [176,256], "f": 2, "t": 379, "d": [112,121], "a": 1 }, + { "px": [416,48], "src": [176,272], "f": 2, "t": 402, "d": [112,121], "a": 1 }, + { "px": [384,80], "src": [144,240], "f": 0, "t": 354, "d": [112,249], "a": 1 }, + { "px": [384,96], "src": [144,256], "f": 0, "t": 377, "d": [112,249], "a": 1 }, + { "px": [384,112], "src": [144,272], "f": 0, "t": 400, "d": [112,249], "a": 1 }, + { "px": [400,80], "src": [160,240], "f": 0, "t": 355, "d": [112,249], "a": 1 }, + { "px": [400,96], "src": [160,256], "f": 0, "t": 378, "d": [112,249], "a": 1 }, + { "px": [400,112], "src": [160,272], "f": 0, "t": 401, "d": [112,249], "a": 1 }, + { "px": [416,80], "src": [176,240], "f": 0, "t": 356, "d": [112,249], "a": 1 }, + { "px": [416,96], "src": [176,256], "f": 0, "t": 379, "d": [112,249], "a": 1 }, + { "px": [416,112], "src": [176,272], "f": 0, "t": 402, "d": [112,249], "a": 1 }, + { "px": [128,96], "src": [192,304], "f": 0, "t": 449, "d": [113,232], "a": 1 }, + { "px": [128,112], "src": [192,320], "f": 0, "t": 472, "d": [113,232], "a": 1 }, + { "px": [144,96], "src": [208,304], "f": 0, "t": 450, "d": [113,232], "a": 1 }, + { "px": [144,112], "src": [208,320], "f": 0, "t": 473, "d": [113,232], "a": 1 }, + { "px": [160,96], "src": [224,304], "f": 0, "t": 451, "d": [113,232], "a": 1 }, + { "px": [160,112], "src": [224,320], "f": 0, "t": 474, "d": [113,232], "a": 1 }, + { "px": [432,96], "src": [192,304], "f": 1, "t": 449, "d": [113,251], "a": 1 }, + { "px": [432,112], "src": [192,320], "f": 1, "t": 472, "d": [113,251], "a": 1 }, + { "px": [416,96], "src": [208,304], "f": 1, "t": 450, "d": [113,251], "a": 1 }, + { "px": [416,112], "src": [208,320], "f": 1, "t": 473, "d": [113,251], "a": 1 }, + { "px": [400,96], "src": [224,304], "f": 1, "t": 451, "d": [113,251], "a": 1 }, + { "px": [400,112], "src": [224,320], "f": 1, "t": 474, "d": [113,251], "a": 1 }, + { "px": [176,176], "src": [192,304], "f": 2, "t": 449, "d": [113,331], "a": 1 }, + { "px": [176,160], "src": [192,320], "f": 2, "t": 472, "d": [113,331], "a": 1 }, + { "px": [192,176], "src": [208,304], "f": 2, "t": 450, "d": [113,331], "a": 1 }, + { "px": [192,160], "src": [208,320], "f": 2, "t": 473, "d": [113,331], "a": 1 }, + { "px": [208,176], "src": [224,304], "f": 2, "t": 451, "d": [113,331], "a": 1 }, + { "px": [208,160], "src": [224,320], "f": 2, "t": 474, "d": [113,331], "a": 1 }, + { "px": [464,176], "src": [192,304], "f": 3, "t": 449, "d": [113,349], "a": 1 }, + { "px": [464,160], "src": [192,320], "f": 3, "t": 472, "d": [113,349], "a": 1 }, + { "px": [448,176], "src": [208,304], "f": 3, "t": 450, "d": [113,349], "a": 1 }, + { "px": [448,160], "src": [208,320], "f": 3, "t": 473, "d": [113,349], "a": 1 }, + { "px": [432,176], "src": [224,304], "f": 3, "t": 451, "d": [113,349], "a": 1 }, + { "px": [432,160], "src": [224,320], "f": 3, "t": 474, "d": [113,349], "a": 1 }, + { "px": [224,48], "src": [128,224], "f": 0, "t": 330, "d": [114,110], "a": 1 }, + { "px": [384,48], "src": [96,208], "f": 0, "t": 305, "d": [114,120], "a": 1 }, + { "px": [416,48], "src": [96,208], "f": 0, "t": 305, "d": [114,122], "a": 1 }, + { "px": [288,48], "src": [128,208], "f": 0, "t": 307, "d": [115,114], "a": 1 }, + { "px": [288,64], "src": [128,224], "f": 0, "t": 330, "d": [115,114], "a": 1 }, + { "px": [192,160], "src": [128,208], "f": 0, "t": 307, "d": [115,332], "a": 1 }, + { "px": [192,176], "src": [128,224], "f": 0, "t": 330, "d": [115,332], "a": 1 }, + { "px": [224,160], "src": [128,208], "f": 0, "t": 307, "d": [115,334], "a": 1 }, + { "px": [224,176], "src": [128,224], "f": 0, "t": 330, "d": [115,334], "a": 1 } + ], + "seed": 2817234, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a371aec0-66b0-11ec-9cd7-6f9e87cc2465", "dir": "e" }, { "levelIid": "a3727210-66b0-11ec-9cd7-aba0184f5034", "dir": "w" }, { "levelIid": "a3730e50-66b0-11ec-9cd7-65c84b0f9baa", "dir": "s" }, { "levelIid": "a37690c0-66b0-11ec-9cd7-5f87e3c093eb", "dir": "s" } ] + }, + { + "identifier": "Shop", + "iid": "a36f8be0-66b0-11ec-9cd7-a9c628ac47cf", + "uid": 41, + "worldX": 256, + "worldY": 0, + "worldDepth": 1, + "pxWid": 768, + "pxHei": 768, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#FED28F", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": "Shop", "__tile": null, "defUid": 99, "realEditorValues": [{ + "id": "V_String", + "params": ["Shop"] + }] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 48, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a36f8be5-66b0-11ec-9cd7-779e073cf8d2", + "levelId": 41, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 5488219, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Item", + "__grid": [20,21], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 48, "y": 320, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a36f8be6-66b0-11ec-9cd7-b5a8d5ccc437", + "width": 24, + "height": 24, + "defUid": 72, + "px": [328,352], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Meat", "__tile": { "tilesetUid": 133, "x": 48, "y": 320, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Meat"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 5, "__tile": null, "defUid": 93, "realEditorValues": [{ "id": "V_Int", "params": [5] }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [23,21], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 0, "y": 640, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a36f8be7-66b0-11ec-9cd7-316971e16d32", + "width": 24, + "height": 24, + "defUid": 72, + "px": [376,352], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Armor", "__tile": { "tilesetUid": 133, "x": 0, "y": 640, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Armor"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 100, "__tile": null, "defUid": 93, "realEditorValues": [{ "id": "V_Int", "params": [100] }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [26,21], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 240, "y": 432, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a36f8be8-66b0-11ec-9cd7-fd36870bdef5", + "width": 24, + "height": 24, + "defUid": 72, + "px": [424,352], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Vorpal_blade", "__tile": { "tilesetUid": 133, "x": 240, "y": 432, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Vorpal_blade"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 500, "__tile": null, "defUid": 93, "realEditorValues": [{ "id": "V_Int", "params": [500] }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [29,21], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 16, "y": 224, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a36f8be9-66b0-11ec-9cd7-89a0e2fc55f0", + "width": 24, + "height": 24, + "defUid": 72, + "px": [472,352], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Spell", "__tile": { "tilesetUid": 133, "x": 16, "y": 224, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Spell"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 250, "__tile": null, "defUid": 93, "realEditorValues": [{ "id": "V_Int", "params": [250] }] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Teleport", + "__grid": [29,28], + "__pivot": [0.5,1], + "__tags": ["actor"], + "__tile": { "tilesetUid": 133, "x": 224, "y": 176, "w": 16, "h": 16 }, + "__smartColor": "#EC50FF", + "iid": "9c20a1d0-66b0-11ec-b893-7dd8e9dfe663", + "width": 24, + "height": 24, + "defUid": 130, + "px": [472,464], + "fieldInstances": [{ "__identifier": "destination", "__type": "EntityRef", "__value": { + "entityIid": "3bde8fe0-66b0-11ec-a595-515a2ae1dbef", + "layerIid": "07caf541-66b0-11ec-a595-b3726fb46cd5", + "levelIid": "07caf540-66b0-11ec-a595-a55a7e13679d", + "worldIid": "ca3d7420-c640-11ed-ad34-5f1a115c4cf3" + }, "__tile": null, "defUid": 131, "realEditorValues": [{ + "id": "V_String", + "params": ["3bde8fe0-66b0-11ec-a595-515a2ae1dbef"] + }] }] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 48, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36f8bea-66b0-11ec-9cd7-63b594388049", + "levelId": 41, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [272,288], "src": [320,128], "f": 0, "t": 204, "d": [26,881], "a": 1 }, + { "px": [480,288], "src": [320,128], "f": 1, "t": 204, "d": [26,894], "a": 1 }, + { "px": [272,304], "src": [320,128], "f": 0, "t": 204, "d": [26,929], "a": 1 }, + { "px": [480,304], "src": [320,128], "f": 1, "t": 204, "d": [26,942], "a": 1 }, + { "px": [272,320], "src": [320,128], "f": 0, "t": 204, "d": [26,977], "a": 1 }, + { "px": [480,320], "src": [320,128], "f": 1, "t": 204, "d": [26,990], "a": 1 }, + { "px": [272,336], "src": [320,128], "f": 0, "t": 204, "d": [26,1025], "a": 1 }, + { "px": [480,336], "src": [320,128], "f": 1, "t": 204, "d": [26,1038], "a": 1 }, + { "px": [272,352], "src": [320,128], "f": 0, "t": 204, "d": [26,1073], "a": 1 }, + { "px": [272,368], "src": [320,128], "f": 0, "t": 204, "d": [26,1121], "a": 1 }, + { "px": [352,368], "src": [320,128], "f": 1, "t": 204, "d": [26,1126], "a": 1 }, + { "px": [272,384], "src": [320,128], "f": 0, "t": 204, "d": [26,1169], "a": 1 }, + { "px": [352,384], "src": [320,128], "f": 1, "t": 204, "d": [26,1174], "a": 1 }, + { "px": [272,400], "src": [320,128], "f": 0, "t": 204, "d": [26,1217], "a": 1 }, + { "px": [352,400], "src": [320,128], "f": 1, "t": 204, "d": [26,1222], "a": 1 }, + { "px": [480,416], "src": [320,128], "f": 1, "t": 204, "d": [26,1278], "a": 1 }, + { "px": [320,432], "src": [320,128], "f": 0, "t": 204, "d": [26,1316], "a": 1 }, + { "px": [480,432], "src": [320,128], "f": 1, "t": 204, "d": [26,1326], "a": 1 }, + { "px": [320,448], "src": [320,128], "f": 0, "t": 204, "d": [26,1364], "a": 1 }, + { "px": [480,448], "src": [320,128], "f": 1, "t": 204, "d": [26,1374], "a": 1 }, + { "px": [288,352], "src": [320,96], "f": 1, "t": 158, "d": [138,1074], "a": 1 }, + { "px": [320,416], "src": [320,96], "f": 0, "t": 158, "d": [138,1268], "a": 1 }, + { "px": [272,176], "src": [336,112], "f": 0, "t": 182, "d": [27,545], "a": 1 }, + { "px": [288,176], "src": [336,112], "f": 0, "t": 182, "d": [27,546], "a": 1 }, + { "px": [304,176], "src": [336,112], "f": 0, "t": 182, "d": [27,547], "a": 1 }, + { "px": [336,176], "src": [336,112], "f": 0, "t": 182, "d": [27,549], "a": 1 }, + { "px": [368,176], "src": [336,112], "f": 0, "t": 182, "d": [27,551], "a": 1 }, + { "px": [400,176], "src": [336,112], "f": 0, "t": 182, "d": [27,553], "a": 1 }, + { "px": [416,176], "src": [336,112], "f": 0, "t": 182, "d": [27,554], "a": 1 }, + { "px": [432,176], "src": [336,112], "f": 0, "t": 182, "d": [27,555], "a": 1 }, + { "px": [464,176], "src": [336,112], "f": 0, "t": 182, "d": [27,557], "a": 1 }, + { "px": [480,176], "src": [336,112], "f": 0, "t": 182, "d": [27,558], "a": 1 }, + { "px": [496,176], "src": [336,112], "f": 0, "t": 182, "d": [27,559], "a": 1 }, + { "px": [288,208], "src": [336,112], "f": 0, "t": 182, "d": [27,642], "a": 1 }, + { "px": [304,208], "src": [336,112], "f": 0, "t": 182, "d": [27,643], "a": 1 }, + { "px": [352,208], "src": [336,112], "f": 0, "t": 182, "d": [27,646], "a": 1 }, + { "px": [480,208], "src": [336,112], "f": 0, "t": 182, "d": [27,654], "a": 1 }, + { "px": [272,240], "src": [336,112], "f": 0, "t": 182, "d": [27,737], "a": 1 }, + { "px": [288,240], "src": [336,112], "f": 0, "t": 182, "d": [27,738], "a": 1 }, + { "px": [416,240], "src": [336,112], "f": 0, "t": 182, "d": [27,746], "a": 1 }, + { "px": [272,288], "src": [336,112], "f": 0, "t": 182, "d": [27,881], "a": 1 }, + { "px": [288,288], "src": [336,112], "f": 0, "t": 182, "d": [27,882], "a": 1 }, + { "px": [304,288], "src": [336,112], "f": 0, "t": 182, "d": [27,883], "a": 1 }, + { "px": [320,288], "src": [336,112], "f": 0, "t": 182, "d": [27,884], "a": 1 }, + { "px": [336,288], "src": [336,112], "f": 0, "t": 182, "d": [27,885], "a": 1 }, + { "px": [352,288], "src": [336,112], "f": 0, "t": 182, "d": [27,886], "a": 1 }, + { "px": [368,288], "src": [336,112], "f": 0, "t": 182, "d": [27,887], "a": 1 }, + { "px": [384,288], "src": [336,112], "f": 0, "t": 182, "d": [27,888], "a": 1 }, + { "px": [400,288], "src": [336,112], "f": 0, "t": 182, "d": [27,889], "a": 1 }, + { "px": [416,288], "src": [336,112], "f": 0, "t": 182, "d": [27,890], "a": 1 }, + { "px": [432,288], "src": [336,112], "f": 0, "t": 182, "d": [27,891], "a": 1 }, + { "px": [448,288], "src": [336,112], "f": 0, "t": 182, "d": [27,892], "a": 1 }, + { "px": [464,288], "src": [336,112], "f": 0, "t": 182, "d": [27,893], "a": 1 }, + { "px": [480,288], "src": [336,112], "f": 0, "t": 182, "d": [27,894], "a": 1 }, + { "px": [304,368], "src": [336,112], "f": 0, "t": 182, "d": [27,1123], "a": 1 }, + { "px": [320,368], "src": [336,112], "f": 0, "t": 182, "d": [27,1124], "a": 1 }, + { "px": [336,368], "src": [336,112], "f": 0, "t": 182, "d": [27,1125], "a": 1 }, + { "px": [352,368], "src": [336,112], "f": 0, "t": 182, "d": [27,1126], "a": 1 }, + { "px": [368,416], "src": [336,112], "f": 0, "t": 182, "d": [27,1271], "a": 1 }, + { "px": [384,416], "src": [336,112], "f": 0, "t": 182, "d": [27,1272], "a": 1 }, + { "px": [400,416], "src": [336,112], "f": 0, "t": 182, "d": [27,1273], "a": 1 }, + { "px": [416,416], "src": [336,112], "f": 0, "t": 182, "d": [27,1274], "a": 1 }, + { "px": [432,416], "src": [336,112], "f": 0, "t": 182, "d": [27,1275], "a": 1 }, + { "px": [448,416], "src": [336,112], "f": 0, "t": 182, "d": [27,1276], "a": 1 }, + { "px": [464,416], "src": [336,112], "f": 0, "t": 182, "d": [27,1277], "a": 1 }, + { "px": [480,416], "src": [336,112], "f": 0, "t": 182, "d": [27,1278], "a": 1 }, + { "px": [288,368], "src": [320,112], "f": 1, "t": 181, "d": [137,1122], "a": 1 }, + { "px": [352,416], "src": [320,112], "f": 1, "t": 181, "d": [137,1270], "a": 1 } + ], + "seed": 3784749, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 48, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36f8beb-66b0-11ec-9cd7-1fb840bab654", + "levelId": 41, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,2,1,2,2,2,1,2,2,2, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1, + 1,1,2,1,2,1,2,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,2,1,2,1,2,1,2,2,2,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2, + 1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [272,176], "src": [320,176], "f": 0, "t": 273, "d": [28,545], "a": 1 }, + { "px": [288,176], "src": [320,176], "f": 0, "t": 273, "d": [28,546], "a": 1 }, + { "px": [304,176], "src": [320,176], "f": 0, "t": 273, "d": [28,547], "a": 1 }, + { "px": [336,176], "src": [320,176], "f": 0, "t": 273, "d": [28,549], "a": 1 }, + { "px": [368,176], "src": [320,176], "f": 0, "t": 273, "d": [28,551], "a": 1 }, + { "px": [400,176], "src": [320,176], "f": 0, "t": 273, "d": [28,553], "a": 1 }, + { "px": [416,176], "src": [320,176], "f": 0, "t": 273, "d": [28,554], "a": 1 }, + { "px": [432,176], "src": [320,176], "f": 0, "t": 273, "d": [28,555], "a": 1 }, + { "px": [464,176], "src": [320,176], "f": 0, "t": 273, "d": [28,557], "a": 1 }, + { "px": [480,176], "src": [320,176], "f": 0, "t": 273, "d": [28,558], "a": 1 }, + { "px": [496,176], "src": [320,176], "f": 0, "t": 273, "d": [28,559], "a": 1 }, + { "px": [272,192], "src": [320,176], "f": 0, "t": 273, "d": [28,593], "a": 1 }, + { "px": [336,192], "src": [320,176], "f": 0, "t": 273, "d": [28,597], "a": 1 }, + { "px": [368,192], "src": [320,176], "f": 0, "t": 273, "d": [28,599], "a": 1 }, + { "px": [400,192], "src": [320,176], "f": 0, "t": 273, "d": [28,601], "a": 1 }, + { "px": [432,192], "src": [320,176], "f": 0, "t": 273, "d": [28,603], "a": 1 }, + { "px": [464,192], "src": [320,176], "f": 0, "t": 273, "d": [28,605], "a": 1 }, + { "px": [496,192], "src": [320,176], "f": 0, "t": 273, "d": [28,607], "a": 1 }, + { "px": [272,208], "src": [320,176], "f": 0, "t": 273, "d": [28,641], "a": 1 }, + { "px": [288,208], "src": [320,176], "f": 0, "t": 273, "d": [28,642], "a": 1 }, + { "px": [304,208], "src": [320,176], "f": 0, "t": 273, "d": [28,643], "a": 1 }, + { "px": [336,208], "src": [320,176], "f": 0, "t": 273, "d": [28,645], "a": 1 }, + { "px": [352,208], "src": [320,176], "f": 0, "t": 273, "d": [28,646], "a": 1 }, + { "px": [368,208], "src": [320,176], "f": 0, "t": 273, "d": [28,647], "a": 1 }, + { "px": [400,208], "src": [320,176], "f": 0, "t": 273, "d": [28,649], "a": 1 }, + { "px": [432,208], "src": [320,176], "f": 0, "t": 273, "d": [28,651], "a": 1 }, + { "px": [464,208], "src": [320,176], "f": 0, "t": 273, "d": [28,653], "a": 1 }, + { "px": [480,208], "src": [320,176], "f": 0, "t": 273, "d": [28,654], "a": 1 }, + { "px": [496,208], "src": [320,176], "f": 0, "t": 273, "d": [28,655], "a": 1 }, + { "px": [304,224], "src": [320,176], "f": 0, "t": 273, "d": [28,691], "a": 1 }, + { "px": [336,224], "src": [320,176], "f": 0, "t": 273, "d": [28,693], "a": 1 }, + { "px": [368,224], "src": [320,176], "f": 0, "t": 273, "d": [28,695], "a": 1 }, + { "px": [400,224], "src": [320,176], "f": 0, "t": 273, "d": [28,697], "a": 1 }, + { "px": [432,224], "src": [320,176], "f": 0, "t": 273, "d": [28,699], "a": 1 }, + { "px": [464,224], "src": [320,176], "f": 0, "t": 273, "d": [28,701], "a": 1 }, + { "px": [272,240], "src": [320,176], "f": 0, "t": 273, "d": [28,737], "a": 1 }, + { "px": [288,240], "src": [320,176], "f": 0, "t": 273, "d": [28,738], "a": 1 }, + { "px": [304,240], "src": [320,176], "f": 0, "t": 273, "d": [28,739], "a": 1 }, + { "px": [336,240], "src": [320,176], "f": 0, "t": 273, "d": [28,741], "a": 1 }, + { "px": [368,240], "src": [320,176], "f": 0, "t": 273, "d": [28,743], "a": 1 }, + { "px": [400,240], "src": [320,176], "f": 0, "t": 273, "d": [28,745], "a": 1 }, + { "px": [416,240], "src": [320,176], "f": 0, "t": 273, "d": [28,746], "a": 1 }, + { "px": [432,240], "src": [320,176], "f": 0, "t": 273, "d": [28,747], "a": 1 }, + { "px": [464,240], "src": [320,176], "f": 0, "t": 273, "d": [28,749], "a": 1 }, + { "px": [272,128], "src": [32,32], "f": 0, "t": 48, "d": [8,401], "a": 1 }, + { "px": [304,128], "src": [32,32], "f": 0, "t": 48, "d": [8,403], "a": 1 }, + { "px": [336,128], "src": [32,32], "f": 0, "t": 48, "d": [8,405], "a": 1 }, + { "px": [368,128], "src": [32,32], "f": 0, "t": 48, "d": [8,407], "a": 1 }, + { "px": [400,128], "src": [32,32], "f": 0, "t": 48, "d": [8,409], "a": 1 }, + { "px": [432,128], "src": [32,32], "f": 0, "t": 48, "d": [8,411], "a": 1 }, + { "px": [464,128], "src": [32,32], "f": 0, "t": 48, "d": [8,413], "a": 1 }, + { "px": [496,128], "src": [32,32], "f": 0, "t": 48, "d": [8,415], "a": 1 }, + { "px": [528,128], "src": [32,32], "f": 0, "t": 48, "d": [8,417], "a": 1 }, + { "px": [224,144], "src": [32,32], "f": 0, "t": 48, "d": [8,446], "a": 1 }, + { "px": [288,144], "src": [32,32], "f": 0, "t": 48, "d": [8,450], "a": 1 }, + { "px": [320,144], "src": [32,32], "f": 0, "t": 48, "d": [8,452], "a": 1 }, + { "px": [352,144], "src": [32,32], "f": 0, "t": 48, "d": [8,454], "a": 1 }, + { "px": [416,144], "src": [32,32], "f": 0, "t": 48, "d": [8,458], "a": 1 }, + { "px": [448,144], "src": [32,32], "f": 0, "t": 48, "d": [8,460], "a": 1 }, + { "px": [480,144], "src": [32,32], "f": 0, "t": 48, "d": [8,462], "a": 1 }, + { "px": [512,144], "src": [32,32], "f": 0, "t": 48, "d": [8,464], "a": 1 }, + { "px": [528,160], "src": [32,32], "f": 0, "t": 48, "d": [8,513], "a": 1 }, + { "px": [224,176], "src": [32,32], "f": 0, "t": 48, "d": [8,542], "a": 1 }, + { "px": [544,176], "src": [32,32], "f": 0, "t": 48, "d": [8,562], "a": 1 }, + { "px": [528,192], "src": [32,32], "f": 0, "t": 48, "d": [8,609], "a": 1 }, + { "px": [544,208], "src": [32,32], "f": 0, "t": 48, "d": [8,658], "a": 1 }, + { "px": [240,224], "src": [32,32], "f": 0, "t": 48, "d": [8,687], "a": 1 }, + { "px": [528,224], "src": [32,32], "f": 0, "t": 48, "d": [8,705], "a": 1 }, + { "px": [512,240], "src": [32,32], "f": 0, "t": 48, "d": [8,752], "a": 1 }, + { "px": [544,240], "src": [32,32], "f": 0, "t": 48, "d": [8,754], "a": 1 }, + { "px": [240,256], "src": [32,32], "f": 0, "t": 48, "d": [8,783], "a": 1 }, + { "px": [496,256], "src": [32,32], "f": 0, "t": 48, "d": [8,799], "a": 1 }, + { "px": [528,256], "src": [32,32], "f": 0, "t": 48, "d": [8,801], "a": 1 }, + { "px": [224,272], "src": [32,32], "f": 0, "t": 48, "d": [8,830], "a": 1 }, + { "px": [512,272], "src": [32,32], "f": 0, "t": 48, "d": [8,848], "a": 1 }, + { "px": [240,288], "src": [32,32], "f": 0, "t": 48, "d": [8,879], "a": 1 }, + { "px": [224,304], "src": [32,32], "f": 0, "t": 48, "d": [8,926], "a": 1 }, + { "px": [224,336], "src": [32,32], "f": 0, "t": 48, "d": [8,1022], "a": 1 }, + { "px": [240,352], "src": [32,32], "f": 0, "t": 48, "d": [8,1071], "a": 1 }, + { "px": [224,368], "src": [32,32], "f": 0, "t": 48, "d": [8,1118], "a": 1 }, + { "px": [384,368], "src": [32,32], "f": 0, "t": 48, "d": [8,1128], "a": 1 }, + { "px": [416,368], "src": [32,32], "f": 0, "t": 48, "d": [8,1130], "a": 1 }, + { "px": [448,368], "src": [32,32], "f": 0, "t": 48, "d": [8,1132], "a": 1 }, + { "px": [240,384], "src": [32,32], "f": 0, "t": 48, "d": [8,1167], "a": 1 }, + { "px": [400,384], "src": [32,32], "f": 0, "t": 48, "d": [8,1177], "a": 1 }, + { "px": [464,384], "src": [32,32], "f": 0, "t": 48, "d": [8,1181], "a": 1 }, + { "px": [528,384], "src": [32,32], "f": 0, "t": 48, "d": [8,1185], "a": 1 }, + { "px": [512,400], "src": [32,32], "f": 0, "t": 48, "d": [8,1232], "a": 1 }, + { "px": [240,416], "src": [32,32], "f": 0, "t": 48, "d": [8,1263], "a": 1 }, + { "px": [528,416], "src": [32,32], "f": 0, "t": 48, "d": [8,1281], "a": 1 }, + { "px": [256,432], "src": [32,32], "f": 0, "t": 48, "d": [8,1312], "a": 1 }, + { "px": [288,432], "src": [32,32], "f": 0, "t": 48, "d": [8,1314], "a": 1 }, + { "px": [512,432], "src": [32,32], "f": 0, "t": 48, "d": [8,1328], "a": 1 }, + { "px": [240,448], "src": [32,32], "f": 0, "t": 48, "d": [8,1359], "a": 1 }, + { "px": [528,448], "src": [32,32], "f": 0, "t": 48, "d": [8,1377], "a": 1 }, + { "px": [288,464], "src": [32,32], "f": 0, "t": 48, "d": [8,1410], "a": 1 }, + { "px": [512,464], "src": [32,32], "f": 0, "t": 48, "d": [8,1424], "a": 1 }, + { "px": [272,480], "src": [32,32], "f": 0, "t": 48, "d": [8,1457], "a": 1 }, + { "px": [336,480], "src": [32,32], "f": 0, "t": 48, "d": [8,1461], "a": 1 }, + { "px": [368,480], "src": [32,32], "f": 0, "t": 48, "d": [8,1463], "a": 1 }, + { "px": [432,480], "src": [32,32], "f": 0, "t": 48, "d": [8,1467], "a": 1 }, + { "px": [464,480], "src": [32,32], "f": 0, "t": 48, "d": [8,1469], "a": 1 }, + { "px": [352,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1510], "a": 1 }, + { "px": [384,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1512], "a": 1 }, + { "px": [416,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1514], "a": 1 }, + { "px": [448,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1516], "a": 1 }, + { "px": [480,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1518], "a": 1 }, + { "px": [240,128], "src": [96,96], "f": 0, "t": 144, "d": [83,399], "a": 1 }, + { "px": [256,144], "src": [96,96], "f": 0, "t": 144, "d": [83,448], "a": 1 }, + { "px": [384,144], "src": [96,96], "f": 0, "t": 144, "d": [83,456], "a": 1 }, + { "px": [544,144], "src": [64,96], "f": 0, "t": 142, "d": [83,466], "a": 1 }, + { "px": [240,160], "src": [64,96], "f": 0, "t": 142, "d": [83,495], "a": 1 }, + { "px": [240,192], "src": [64,96], "f": 0, "t": 142, "d": [83,591], "a": 1 }, + { "px": [224,208], "src": [96,96], "f": 0, "t": 144, "d": [83,638], "a": 1 }, + { "px": [224,240], "src": [96,96], "f": 0, "t": 144, "d": [83,734], "a": 1 }, + { "px": [528,288], "src": [96,96], "f": 0, "t": 144, "d": [83,897], "a": 1 }, + { "px": [512,304], "src": [64,96], "f": 0, "t": 142, "d": [83,944], "a": 1 }, + { "px": [240,320], "src": [64,96], "f": 0, "t": 142, "d": [83,975], "a": 1 }, + { "px": [528,320], "src": [96,96], "f": 0, "t": 144, "d": [83,993], "a": 1 }, + { "px": [512,336], "src": [64,96], "f": 0, "t": 142, "d": [83,1040], "a": 1 }, + { "px": [528,352], "src": [96,96], "f": 0, "t": 144, "d": [83,1089], "a": 1 }, + { "px": [480,368], "src": [64,96], "f": 0, "t": 142, "d": [83,1134], "a": 1 }, + { "px": [512,368], "src": [64,96], "f": 0, "t": 142, "d": [83,1136], "a": 1 }, + { "px": [432,384], "src": [64,96], "f": 0, "t": 142, "d": [83,1179], "a": 1 }, + { "px": [496,384], "src": [96,96], "f": 0, "t": 144, "d": [83,1183], "a": 1 }, + { "px": [224,400], "src": [64,96], "f": 0, "t": 142, "d": [83,1214], "a": 1 }, + { "px": [224,432], "src": [64,96], "f": 0, "t": 142, "d": [83,1310], "a": 1 }, + { "px": [272,448], "src": [64,96], "f": 0, "t": 142, "d": [83,1361], "a": 1 }, + { "px": [304,480], "src": [64,96], "f": 0, "t": 142, "d": [83,1459], "a": 1 }, + { "px": [400,480], "src": [64,96], "f": 0, "t": 142, "d": [83,1465], "a": 1 }, + { "px": [496,480], "src": [64,96], "f": 0, "t": 142, "d": [83,1471], "a": 1 }, + { "px": [528,480], "src": [64,96], "f": 0, "t": 142, "d": [83,1473], "a": 1 }, + { "px": [288,496], "src": [64,96], "f": 0, "t": 142, "d": [83,1506], "a": 1 }, + { "px": [320,496], "src": [96,96], "f": 0, "t": 144, "d": [83,1508], "a": 1 }, + { "px": [512,496], "src": [64,96], "f": 0, "t": 142, "d": [83,1520], "a": 1 }, + { "px": [224,128], "src": [224,96], "f": 0, "t": 152, "d": [101,398], "a": 1 }, + { "px": [256,128], "src": [192,16], "f": 0, "t": 35, "d": [101,400], "a": 1 }, + { "px": [288,128], "src": [192,16], "f": 0, "t": 35, "d": [101,402], "a": 1 }, + { "px": [320,128], "src": [192,16], "f": 0, "t": 35, "d": [101,404], "a": 1 }, + { "px": [352,128], "src": [96,0], "f": 0, "t": 6, "d": [101,406], "a": 1 }, + { "px": [384,128], "src": [224,96], "f": 0, "t": 152, "d": [101,408], "a": 1 }, + { "px": [416,128], "src": [96,0], "f": 0, "t": 6, "d": [101,410], "a": 1 }, + { "px": [448,128], "src": [96,0], "f": 0, "t": 6, "d": [101,412], "a": 1 }, + { "px": [480,128], "src": [224,96], "f": 0, "t": 152, "d": [101,414], "a": 1 }, + { "px": [512,128], "src": [192,16], "f": 0, "t": 35, "d": [101,416], "a": 1 }, + { "px": [544,128], "src": [224,96], "f": 0, "t": 152, "d": [101,418], "a": 1 }, + { "px": [240,144], "src": [96,0], "f": 0, "t": 6, "d": [101,447], "a": 1 }, + { "px": [272,144], "src": [192,16], "f": 0, "t": 35, "d": [101,449], "a": 1 }, + { "px": [304,144], "src": [96,0], "f": 0, "t": 6, "d": [101,451], "a": 1 }, + { "px": [336,144], "src": [192,16], "f": 0, "t": 35, "d": [101,453], "a": 1 }, + { "px": [368,144], "src": [224,96], "f": 0, "t": 152, "d": [101,455], "a": 1 }, + { "px": [400,144], "src": [224,96], "f": 0, "t": 152, "d": [101,457], "a": 1 }, + { "px": [432,144], "src": [224,96], "f": 0, "t": 152, "d": [101,459], "a": 1 }, + { "px": [464,144], "src": [96,0], "f": 0, "t": 6, "d": [101,461], "a": 1 }, + { "px": [496,144], "src": [96,0], "f": 0, "t": 6, "d": [101,463], "a": 1 }, + { "px": [528,144], "src": [224,96], "f": 0, "t": 152, "d": [101,465], "a": 1 }, + { "px": [224,160], "src": [224,96], "f": 0, "t": 152, "d": [101,494], "a": 1 }, + { "px": [544,160], "src": [96,0], "f": 0, "t": 6, "d": [101,514], "a": 1 }, + { "px": [240,176], "src": [224,96], "f": 0, "t": 152, "d": [101,543], "a": 1 }, + { "px": [528,176], "src": [192,16], "f": 0, "t": 35, "d": [101,561], "a": 1 }, + { "px": [224,192], "src": [224,96], "f": 0, "t": 152, "d": [101,590], "a": 1 }, + { "px": [544,192], "src": [224,96], "f": 0, "t": 152, "d": [101,610], "a": 1 }, + { "px": [240,208], "src": [192,16], "f": 0, "t": 35, "d": [101,639], "a": 1 }, + { "px": [528,208], "src": [192,16], "f": 0, "t": 35, "d": [101,657], "a": 1 }, + { "px": [224,224], "src": [224,96], "f": 0, "t": 152, "d": [101,686], "a": 1 }, + { "px": [544,224], "src": [224,96], "f": 0, "t": 152, "d": [101,706], "a": 1 }, + { "px": [240,240], "src": [96,0], "f": 0, "t": 6, "d": [101,735], "a": 1 }, + { "px": [496,240], "src": [224,96], "f": 0, "t": 152, "d": [101,751], "a": 1 }, + { "px": [528,240], "src": [224,96], "f": 0, "t": 152, "d": [101,753], "a": 1 }, + { "px": [224,256], "src": [192,16], "f": 0, "t": 35, "d": [101,782], "a": 1 }, + { "px": [512,256], "src": [96,0], "f": 0, "t": 6, "d": [101,800], "a": 1 }, + { "px": [544,256], "src": [224,96], "f": 0, "t": 152, "d": [101,802], "a": 1 }, + { "px": [240,272], "src": [224,96], "f": 0, "t": 152, "d": [101,831], "a": 1 }, + { "px": [528,272], "src": [192,16], "f": 0, "t": 35, "d": [101,849], "a": 1 }, + { "px": [224,288], "src": [224,96], "f": 0, "t": 152, "d": [101,878], "a": 1 }, + { "px": [512,288], "src": [192,16], "f": 0, "t": 35, "d": [101,896], "a": 1 }, + { "px": [240,304], "src": [96,0], "f": 0, "t": 6, "d": [101,927], "a": 1 }, + { "px": [528,304], "src": [96,0], "f": 0, "t": 6, "d": [101,945], "a": 1 }, + { "px": [224,320], "src": [224,96], "f": 0, "t": 152, "d": [101,974], "a": 1 }, + { "px": [512,320], "src": [224,96], "f": 0, "t": 152, "d": [101,992], "a": 1 }, + { "px": [240,336], "src": [224,96], "f": 0, "t": 152, "d": [101,1023], "a": 1 }, + { "px": [528,336], "src": [224,96], "f": 0, "t": 152, "d": [101,1041], "a": 1 }, + { "px": [224,352], "src": [224,96], "f": 0, "t": 152, "d": [101,1070], "a": 1 }, + { "px": [512,352], "src": [96,0], "f": 0, "t": 6, "d": [101,1088], "a": 1 }, + { "px": [240,368], "src": [224,96], "f": 0, "t": 152, "d": [101,1119], "a": 1 }, + { "px": [400,368], "src": [192,16], "f": 0, "t": 35, "d": [101,1129], "a": 1 }, + { "px": [432,368], "src": [192,16], "f": 0, "t": 35, "d": [101,1131], "a": 1 }, + { "px": [464,368], "src": [96,0], "f": 0, "t": 6, "d": [101,1133], "a": 1 }, + { "px": [496,368], "src": [224,96], "f": 0, "t": 152, "d": [101,1135], "a": 1 }, + { "px": [528,368], "src": [224,96], "f": 0, "t": 152, "d": [101,1137], "a": 1 }, + { "px": [224,384], "src": [192,16], "f": 0, "t": 35, "d": [101,1166], "a": 1 }, + { "px": [384,384], "src": [96,0], "f": 0, "t": 6, "d": [101,1176], "a": 1 }, + { "px": [416,384], "src": [192,16], "f": 0, "t": 35, "d": [101,1178], "a": 1 }, + { "px": [448,384], "src": [192,16], "f": 0, "t": 35, "d": [101,1180], "a": 1 }, + { "px": [480,384], "src": [224,96], "f": 0, "t": 152, "d": [101,1182], "a": 1 }, + { "px": [512,384], "src": [96,0], "f": 0, "t": 6, "d": [101,1184], "a": 1 }, + { "px": [240,400], "src": [192,16], "f": 0, "t": 35, "d": [101,1215], "a": 1 }, + { "px": [528,400], "src": [192,16], "f": 0, "t": 35, "d": [101,1233], "a": 1 }, + { "px": [224,416], "src": [224,96], "f": 0, "t": 152, "d": [101,1262], "a": 1 }, + { "px": [512,416], "src": [96,0], "f": 0, "t": 6, "d": [101,1280], "a": 1 }, + { "px": [240,432], "src": [224,96], "f": 0, "t": 152, "d": [101,1311], "a": 1 }, + { "px": [272,432], "src": [224,96], "f": 0, "t": 152, "d": [101,1313], "a": 1 }, + { "px": [528,432], "src": [192,16], "f": 0, "t": 35, "d": [101,1329], "a": 1 }, + { "px": [224,448], "src": [192,16], "f": 0, "t": 35, "d": [101,1358], "a": 1 }, + { "px": [256,448], "src": [224,96], "f": 0, "t": 152, "d": [101,1360], "a": 1 }, + { "px": [288,448], "src": [96,0], "f": 0, "t": 6, "d": [101,1362], "a": 1 }, + { "px": [512,448], "src": [224,96], "f": 0, "t": 152, "d": [101,1376], "a": 1 }, + { "px": [272,464], "src": [192,16], "f": 0, "t": 35, "d": [101,1409], "a": 1 }, + { "px": [528,464], "src": [224,96], "f": 0, "t": 152, "d": [101,1425], "a": 1 }, + { "px": [288,480], "src": [224,96], "f": 0, "t": 152, "d": [101,1458], "a": 1 }, + { "px": [320,480], "src": [192,16], "f": 0, "t": 35, "d": [101,1460], "a": 1 }, + { "px": [352,480], "src": [192,16], "f": 0, "t": 35, "d": [101,1462], "a": 1 }, + { "px": [384,480], "src": [96,0], "f": 0, "t": 6, "d": [101,1464], "a": 1 }, + { "px": [416,480], "src": [224,96], "f": 0, "t": 152, "d": [101,1466], "a": 1 }, + { "px": [448,480], "src": [224,96], "f": 0, "t": 152, "d": [101,1468], "a": 1 }, + { "px": [480,480], "src": [96,0], "f": 0, "t": 6, "d": [101,1470], "a": 1 }, + { "px": [512,480], "src": [224,96], "f": 0, "t": 152, "d": [101,1472], "a": 1 }, + { "px": [272,496], "src": [192,16], "f": 0, "t": 35, "d": [101,1505], "a": 1 }, + { "px": [304,496], "src": [224,96], "f": 0, "t": 152, "d": [101,1507], "a": 1 }, + { "px": [336,496], "src": [96,0], "f": 0, "t": 6, "d": [101,1509], "a": 1 }, + { "px": [368,496], "src": [224,96], "f": 0, "t": 152, "d": [101,1511], "a": 1 }, + { "px": [400,496], "src": [96,0], "f": 0, "t": 6, "d": [101,1513], "a": 1 }, + { "px": [432,496], "src": [224,96], "f": 0, "t": 152, "d": [101,1515], "a": 1 }, + { "px": [464,496], "src": [192,16], "f": 0, "t": 35, "d": [101,1517], "a": 1 }, + { "px": [496,496], "src": [96,0], "f": 0, "t": 6, "d": [101,1519], "a": 1 }, + { "px": [528,496], "src": [96,0], "f": 0, "t": 6, "d": [101,1521], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [64,0], "src": [32,32], "f": 0, "t": 48, "d": [127,4], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [127,8], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [160,0], "src": [32,32], "f": 0, "t": 48, "d": [127,10], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [256,0], "src": [32,32], "f": 0, "t": 48, "d": [127,16], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [127,21], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [127,23], "a": 1 }, + { "px": [384,0], "src": [32,32], "f": 0, "t": 48, "d": [127,24], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [127,25], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [127,27], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [127,28], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [480,0], "src": [32,32], "f": 0, "t": 48, "d": [127,30], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [127,31], "a": 1 }, + { "px": [512,0], "src": [32,32], "f": 0, "t": 48, "d": [127,32], "a": 1 }, + { "px": [528,0], "src": [32,32], "f": 0, "t": 48, "d": [127,33], "a": 1 }, + { "px": [544,0], "src": [32,32], "f": 0, "t": 48, "d": [127,34], "a": 1 }, + { "px": [560,0], "src": [32,32], "f": 0, "t": 48, "d": [127,35], "a": 1 }, + { "px": [592,0], "src": [32,32], "f": 0, "t": 48, "d": [127,37], "a": 1 }, + { "px": [608,0], "src": [32,32], "f": 0, "t": 48, "d": [127,38], "a": 1 }, + { "px": [624,0], "src": [32,32], "f": 0, "t": 48, "d": [127,39], "a": 1 }, + { "px": [656,0], "src": [32,32], "f": 0, "t": 48, "d": [127,41], "a": 1 }, + { "px": [672,0], "src": [32,32], "f": 0, "t": 48, "d": [127,42], "a": 1 }, + { "px": [688,0], "src": [32,32], "f": 0, "t": 48, "d": [127,43], "a": 1 }, + { "px": [720,0], "src": [32,32], "f": 0, "t": 48, "d": [127,45], "a": 1 }, + { "px": [736,0], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [752,0], "src": [32,32], "f": 0, "t": 48, "d": [127,47], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [127,52], "a": 1 }, + { "px": [80,16], "src": [32,32], "f": 0, "t": 48, "d": [127,53], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [127,54], "a": 1 }, + { "px": [112,16], "src": [32,32], "f": 0, "t": 48, "d": [127,55], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [127,56], "a": 1 }, + { "px": [144,16], "src": [32,32], "f": 0, "t": 48, "d": [127,57], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [127,58], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,60], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,62], "a": 1 }, + { "px": [240,16], "src": [32,32], "f": 0, "t": 48, "d": [127,63], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [127,64], "a": 1 }, + { "px": [272,16], "src": [32,32], "f": 0, "t": 48, "d": [127,65], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [127,66], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [127,67], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [127,68], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [127,70], "a": 1 }, + { "px": [368,16], "src": [32,32], "f": 0, "t": 48, "d": [127,71], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [127,72], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [127,74], "a": 1 }, + { "px": [432,16], "src": [32,32], "f": 0, "t": 48, "d": [127,75], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [127,76], "a": 1 }, + { "px": [480,16], "src": [32,32], "f": 0, "t": 48, "d": [127,78], "a": 1 }, + { "px": [496,16], "src": [32,32], "f": 0, "t": 48, "d": [127,79], "a": 1 }, + { "px": [512,16], "src": [32,32], "f": 0, "t": 48, "d": [127,80], "a": 1 }, + { "px": [528,16], "src": [32,32], "f": 0, "t": 48, "d": [127,81], "a": 1 }, + { "px": [544,16], "src": [32,32], "f": 0, "t": 48, "d": [127,82], "a": 1 }, + { "px": [560,16], "src": [32,32], "f": 0, "t": 48, "d": [127,83], "a": 1 }, + { "px": [576,16], "src": [32,32], "f": 0, "t": 48, "d": [127,84], "a": 1 }, + { "px": [592,16], "src": [32,32], "f": 0, "t": 48, "d": [127,85], "a": 1 }, + { "px": [608,16], "src": [32,32], "f": 0, "t": 48, "d": [127,86], "a": 1 }, + { "px": [624,16], "src": [32,32], "f": 0, "t": 48, "d": [127,87], "a": 1 }, + { "px": [640,16], "src": [32,32], "f": 0, "t": 48, "d": [127,88], "a": 1 }, + { "px": [656,16], "src": [32,32], "f": 0, "t": 48, "d": [127,89], "a": 1 }, + { "px": [672,16], "src": [32,32], "f": 0, "t": 48, "d": [127,90], "a": 1 }, + { "px": [688,16], "src": [32,32], "f": 0, "t": 48, "d": [127,91], "a": 1 }, + { "px": [704,16], "src": [32,32], "f": 0, "t": 48, "d": [127,92], "a": 1 }, + { "px": [720,16], "src": [32,32], "f": 0, "t": 48, "d": [127,93], "a": 1 }, + { "px": [736,16], "src": [32,32], "f": 0, "t": 48, "d": [127,94], "a": 1 }, + { "px": [752,16], "src": [32,32], "f": 0, "t": 48, "d": [127,95], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [127,97], "a": 1 }, + { "px": [32,32], "src": [32,32], "f": 0, "t": 48, "d": [127,98], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [127,99], "a": 1 }, + { "px": [64,32], "src": [32,32], "f": 0, "t": 48, "d": [127,100], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [127,101], "a": 1 }, + { "px": [96,32], "src": [32,32], "f": 0, "t": 48, "d": [127,102], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [127,103], "a": 1 }, + { "px": [128,32], "src": [32,32], "f": 0, "t": 48, "d": [127,104], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [127,105], "a": 1 }, + { "px": [160,32], "src": [32,32], "f": 0, "t": 48, "d": [127,106], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [127,107], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [127,109], "a": 1 }, + { "px": [224,32], "src": [32,32], "f": 0, "t": 48, "d": [127,110], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,111], "a": 1 }, + { "px": [256,32], "src": [32,32], "f": 0, "t": 48, "d": [127,112], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [127,113], "a": 1 }, + { "px": [288,32], "src": [32,32], "f": 0, "t": 48, "d": [127,114], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [127,115], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [127,117], "a": 1 }, + { "px": [352,32], "src": [32,32], "f": 0, "t": 48, "d": [127,118], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [127,119], "a": 1 }, + { "px": [400,32], "src": [32,32], "f": 0, "t": 48, "d": [127,121], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [127,123], "a": 1 }, + { "px": [448,32], "src": [32,32], "f": 0, "t": 48, "d": [127,124], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [127,125], "a": 1 }, + { "px": [496,32], "src": [32,32], "f": 0, "t": 48, "d": [127,127], "a": 1 }, + { "px": [528,32], "src": [32,32], "f": 0, "t": 48, "d": [127,129], "a": 1 }, + { "px": [544,32], "src": [32,32], "f": 0, "t": 48, "d": [127,130], "a": 1 }, + { "px": [560,32], "src": [32,32], "f": 0, "t": 48, "d": [127,131], "a": 1 }, + { "px": [576,32], "src": [32,32], "f": 0, "t": 48, "d": [127,132], "a": 1 }, + { "px": [592,32], "src": [32,32], "f": 0, "t": 48, "d": [127,133], "a": 1 }, + { "px": [624,32], "src": [32,32], "f": 0, "t": 48, "d": [127,135], "a": 1 }, + { "px": [640,32], "src": [32,32], "f": 0, "t": 48, "d": [127,136], "a": 1 }, + { "px": [656,32], "src": [32,32], "f": 0, "t": 48, "d": [127,137], "a": 1 }, + { "px": [672,32], "src": [32,32], "f": 0, "t": 48, "d": [127,138], "a": 1 }, + { "px": [688,32], "src": [32,32], "f": 0, "t": 48, "d": [127,139], "a": 1 }, + { "px": [704,32], "src": [32,32], "f": 0, "t": 48, "d": [127,140], "a": 1 }, + { "px": [720,32], "src": [32,32], "f": 0, "t": 48, "d": [127,141], "a": 1 }, + { "px": [736,32], "src": [32,32], "f": 0, "t": 48, "d": [127,142], "a": 1 }, + { "px": [752,32], "src": [32,32], "f": 0, "t": 48, "d": [127,143], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,144], "a": 1 }, + { "px": [16,48], "src": [32,32], "f": 0, "t": 48, "d": [127,145], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [127,146], "a": 1 }, + { "px": [48,48], "src": [32,32], "f": 0, "t": 48, "d": [127,147], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [127,148], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [127,150], "a": 1 }, + { "px": [112,48], "src": [32,32], "f": 0, "t": 48, "d": [127,151], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [127,152], "a": 1 }, + { "px": [144,48], "src": [32,32], "f": 0, "t": 48, "d": [127,153], "a": 1 }, + { "px": [160,48], "src": [32,32], "f": 0, "t": 48, "d": [127,154], "a": 1 }, + { "px": [176,48], "src": [32,32], "f": 0, "t": 48, "d": [127,155], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [127,156], "a": 1 }, + { "px": [208,48], "src": [32,32], "f": 0, "t": 48, "d": [127,157], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [127,158], "a": 1 }, + { "px": [240,48], "src": [32,32], "f": 0, "t": 48, "d": [127,159], "a": 1 }, + { "px": [256,48], "src": [32,32], "f": 0, "t": 48, "d": [127,160], "a": 1 }, + { "px": [272,48], "src": [32,32], "f": 0, "t": 48, "d": [127,161], "a": 1 }, + { "px": [288,48], "src": [32,32], "f": 0, "t": 48, "d": [127,162], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [127,164], "a": 1 }, + { "px": [352,48], "src": [32,32], "f": 0, "t": 48, "d": [127,166], "a": 1 }, + { "px": [368,48], "src": [32,32], "f": 0, "t": 48, "d": [127,167], "a": 1 }, + { "px": [384,48], "src": [32,32], "f": 0, "t": 48, "d": [127,168], "a": 1 }, + { "px": [416,48], "src": [32,32], "f": 0, "t": 48, "d": [127,170], "a": 1 }, + { "px": [448,48], "src": [32,32], "f": 0, "t": 48, "d": [127,172], "a": 1 }, + { "px": [464,48], "src": [32,32], "f": 0, "t": 48, "d": [127,173], "a": 1 }, + { "px": [480,48], "src": [32,32], "f": 0, "t": 48, "d": [127,174], "a": 1 }, + { "px": [512,48], "src": [32,32], "f": 0, "t": 48, "d": [127,176], "a": 1 }, + { "px": [528,48], "src": [32,32], "f": 0, "t": 48, "d": [127,177], "a": 1 }, + { "px": [544,48], "src": [32,32], "f": 0, "t": 48, "d": [127,178], "a": 1 }, + { "px": [560,48], "src": [32,32], "f": 0, "t": 48, "d": [127,179], "a": 1 }, + { "px": [576,48], "src": [32,32], "f": 0, "t": 48, "d": [127,180], "a": 1 }, + { "px": [608,48], "src": [32,32], "f": 0, "t": 48, "d": [127,182], "a": 1 }, + { "px": [640,48], "src": [32,32], "f": 0, "t": 48, "d": [127,184], "a": 1 }, + { "px": [656,48], "src": [32,32], "f": 0, "t": 48, "d": [127,185], "a": 1 }, + { "px": [672,48], "src": [32,32], "f": 0, "t": 48, "d": [127,186], "a": 1 }, + { "px": [688,48], "src": [32,32], "f": 0, "t": 48, "d": [127,187], "a": 1 }, + { "px": [704,48], "src": [32,32], "f": 0, "t": 48, "d": [127,188], "a": 1 }, + { "px": [736,48], "src": [32,32], "f": 0, "t": 48, "d": [127,190], "a": 1 }, + { "px": [0,64], "src": [32,32], "f": 0, "t": 48, "d": [127,192], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [127,193], "a": 1 }, + { "px": [32,64], "src": [32,32], "f": 0, "t": 48, "d": [127,194], "a": 1 }, + { "px": [48,64], "src": [32,32], "f": 0, "t": 48, "d": [127,195], "a": 1 }, + { "px": [80,64], "src": [32,32], "f": 0, "t": 48, "d": [127,197], "a": 1 }, + { "px": [96,64], "src": [32,32], "f": 0, "t": 48, "d": [127,198], "a": 1 }, + { "px": [112,64], "src": [32,32], "f": 0, "t": 48, "d": [127,199], "a": 1 }, + { "px": [128,64], "src": [32,32], "f": 0, "t": 48, "d": [127,200], "a": 1 }, + { "px": [144,64], "src": [32,32], "f": 0, "t": 48, "d": [127,201], "a": 1 }, + { "px": [160,64], "src": [32,32], "f": 0, "t": 48, "d": [127,202], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [127,203], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [127,205], "a": 1 }, + { "px": [224,64], "src": [32,32], "f": 0, "t": 48, "d": [127,206], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [127,207], "a": 1 }, + { "px": [256,64], "src": [32,32], "f": 0, "t": 48, "d": [127,208], "a": 1 }, + { "px": [272,64], "src": [32,32], "f": 0, "t": 48, "d": [127,209], "a": 1 }, + { "px": [304,64], "src": [32,32], "f": 0, "t": 48, "d": [127,211], "a": 1 }, + { "px": [336,64], "src": [32,32], "f": 0, "t": 48, "d": [127,213], "a": 1 }, + { "px": [368,64], "src": [32,32], "f": 0, "t": 48, "d": [127,215], "a": 1 }, + { "px": [400,64], "src": [32,32], "f": 0, "t": 48, "d": [127,217], "a": 1 }, + { "px": [416,64], "src": [32,32], "f": 0, "t": 48, "d": [127,218], "a": 1 }, + { "px": [432,64], "src": [32,32], "f": 0, "t": 48, "d": [127,219], "a": 1 }, + { "px": [448,64], "src": [32,32], "f": 0, "t": 48, "d": [127,220], "a": 1 }, + { "px": [464,64], "src": [32,32], "f": 0, "t": 48, "d": [127,221], "a": 1 }, + { "px": [496,64], "src": [32,32], "f": 0, "t": 48, "d": [127,223], "a": 1 }, + { "px": [512,64], "src": [32,32], "f": 0, "t": 48, "d": [127,224], "a": 1 }, + { "px": [528,64], "src": [32,32], "f": 0, "t": 48, "d": [127,225], "a": 1 }, + { "px": [544,64], "src": [32,32], "f": 0, "t": 48, "d": [127,226], "a": 1 }, + { "px": [560,64], "src": [32,32], "f": 0, "t": 48, "d": [127,227], "a": 1 }, + { "px": [576,64], "src": [32,32], "f": 0, "t": 48, "d": [127,228], "a": 1 }, + { "px": [592,64], "src": [32,32], "f": 0, "t": 48, "d": [127,229], "a": 1 }, + { "px": [624,64], "src": [32,32], "f": 0, "t": 48, "d": [127,231], "a": 1 }, + { "px": [640,64], "src": [32,32], "f": 0, "t": 48, "d": [127,232], "a": 1 }, + { "px": [656,64], "src": [32,32], "f": 0, "t": 48, "d": [127,233], "a": 1 }, + { "px": [688,64], "src": [32,32], "f": 0, "t": 48, "d": [127,235], "a": 1 }, + { "px": [704,64], "src": [32,32], "f": 0, "t": 48, "d": [127,236], "a": 1 }, + { "px": [720,64], "src": [32,32], "f": 0, "t": 48, "d": [127,237], "a": 1 }, + { "px": [752,64], "src": [32,32], "f": 0, "t": 48, "d": [127,239], "a": 1 }, + { "px": [0,80], "src": [32,32], "f": 0, "t": 48, "d": [127,240], "a": 1 }, + { "px": [16,80], "src": [32,32], "f": 0, "t": 48, "d": [127,241], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [127,242], "a": 1 }, + { "px": [48,80], "src": [32,32], "f": 0, "t": 48, "d": [127,243], "a": 1 }, + { "px": [64,80], "src": [32,32], "f": 0, "t": 48, "d": [127,244], "a": 1 }, + { "px": [96,80], "src": [32,32], "f": 0, "t": 48, "d": [127,246], "a": 1 }, + { "px": [112,80], "src": [32,32], "f": 0, "t": 48, "d": [127,247], "a": 1 }, + { "px": [128,80], "src": [32,32], "f": 0, "t": 48, "d": [127,248], "a": 1 }, + { "px": [144,80], "src": [32,32], "f": 0, "t": 48, "d": [127,249], "a": 1 }, + { "px": [160,80], "src": [32,32], "f": 0, "t": 48, "d": [127,250], "a": 1 }, + { "px": [192,80], "src": [32,32], "f": 0, "t": 48, "d": [127,252], "a": 1 }, + { "px": [224,80], "src": [32,32], "f": 0, "t": 48, "d": [127,254], "a": 1 }, + { "px": [256,80], "src": [32,32], "f": 0, "t": 48, "d": [127,256], "a": 1 }, + { "px": [272,80], "src": [32,32], "f": 0, "t": 48, "d": [127,257], "a": 1 }, + { "px": [288,80], "src": [32,32], "f": 0, "t": 48, "d": [127,258], "a": 1 }, + { "px": [320,80], "src": [32,32], "f": 0, "t": 48, "d": [127,260], "a": 1 }, + { "px": [336,80], "src": [32,32], "f": 0, "t": 48, "d": [127,261], "a": 1 }, + { "px": [352,80], "src": [32,32], "f": 0, "t": 48, "d": [127,262], "a": 1 }, + { "px": [384,80], "src": [32,32], "f": 0, "t": 48, "d": [127,264], "a": 1 }, + { "px": [400,80], "src": [32,32], "f": 0, "t": 48, "d": [127,265], "a": 1 }, + { "px": [416,80], "src": [32,32], "f": 0, "t": 48, "d": [127,266], "a": 1 }, + { "px": [432,80], "src": [32,32], "f": 0, "t": 48, "d": [127,267], "a": 1 }, + { "px": [448,80], "src": [32,32], "f": 0, "t": 48, "d": [127,268], "a": 1 }, + { "px": [480,80], "src": [32,32], "f": 0, "t": 48, "d": [127,270], "a": 1 }, + { "px": [512,80], "src": [32,32], "f": 0, "t": 48, "d": [127,272], "a": 1 }, + { "px": [528,80], "src": [32,32], "f": 0, "t": 48, "d": [127,273], "a": 1 }, + { "px": [544,80], "src": [32,32], "f": 0, "t": 48, "d": [127,274], "a": 1 }, + { "px": [560,80], "src": [32,32], "f": 0, "t": 48, "d": [127,275], "a": 1 }, + { "px": [576,80], "src": [32,32], "f": 0, "t": 48, "d": [127,276], "a": 1 }, + { "px": [592,80], "src": [32,32], "f": 0, "t": 48, "d": [127,277], "a": 1 }, + { "px": [608,80], "src": [32,32], "f": 0, "t": 48, "d": [127,278], "a": 1 }, + { "px": [624,80], "src": [32,32], "f": 0, "t": 48, "d": [127,279], "a": 1 }, + { "px": [640,80], "src": [32,32], "f": 0, "t": 48, "d": [127,280], "a": 1 }, + { "px": [656,80], "src": [32,32], "f": 0, "t": 48, "d": [127,281], "a": 1 }, + { "px": [672,80], "src": [32,32], "f": 0, "t": 48, "d": [127,282], "a": 1 }, + { "px": [688,80], "src": [32,32], "f": 0, "t": 48, "d": [127,283], "a": 1 }, + { "px": [704,80], "src": [32,32], "f": 0, "t": 48, "d": [127,284], "a": 1 }, + { "px": [736,80], "src": [32,32], "f": 0, "t": 48, "d": [127,286], "a": 1 }, + { "px": [0,96], "src": [32,32], "f": 0, "t": 48, "d": [127,288], "a": 1 }, + { "px": [16,96], "src": [32,32], "f": 0, "t": 48, "d": [127,289], "a": 1 }, + { "px": [32,96], "src": [32,32], "f": 0, "t": 48, "d": [127,290], "a": 1 }, + { "px": [48,96], "src": [32,32], "f": 0, "t": 48, "d": [127,291], "a": 1 }, + { "px": [64,96], "src": [32,32], "f": 0, "t": 48, "d": [127,292], "a": 1 }, + { "px": [80,96], "src": [32,32], "f": 0, "t": 48, "d": [127,293], "a": 1 }, + { "px": [96,96], "src": [32,32], "f": 0, "t": 48, "d": [127,294], "a": 1 }, + { "px": [112,96], "src": [32,32], "f": 0, "t": 48, "d": [127,295], "a": 1 }, + { "px": [128,96], "src": [32,32], "f": 0, "t": 48, "d": [127,296], "a": 1 }, + { "px": [144,96], "src": [32,32], "f": 0, "t": 48, "d": [127,297], "a": 1 }, + { "px": [176,96], "src": [32,32], "f": 0, "t": 48, "d": [127,299], "a": 1 }, + { "px": [208,96], "src": [32,32], "f": 0, "t": 48, "d": [127,301], "a": 1 }, + { "px": [224,96], "src": [32,32], "f": 0, "t": 48, "d": [127,302], "a": 1 }, + { "px": [240,96], "src": [32,32], "f": 0, "t": 48, "d": [127,303], "a": 1 }, + { "px": [256,96], "src": [32,32], "f": 0, "t": 48, "d": [127,304], "a": 1 }, + { "px": [272,96], "src": [32,32], "f": 0, "t": 48, "d": [127,305], "a": 1 }, + { "px": [288,96], "src": [32,32], "f": 0, "t": 48, "d": [127,306], "a": 1 }, + { "px": [304,96], "src": [32,32], "f": 0, "t": 48, "d": [127,307], "a": 1 }, + { "px": [320,96], "src": [32,32], "f": 0, "t": 48, "d": [127,308], "a": 1 }, + { "px": [336,96], "src": [32,32], "f": 0, "t": 48, "d": [127,309], "a": 1 }, + { "px": [368,96], "src": [32,32], "f": 0, "t": 48, "d": [127,311], "a": 1 }, + { "px": [384,96], "src": [32,32], "f": 0, "t": 48, "d": [127,312], "a": 1 }, + { "px": [400,96], "src": [32,32], "f": 0, "t": 48, "d": [127,313], "a": 1 }, + { "px": [416,96], "src": [32,32], "f": 0, "t": 48, "d": [127,314], "a": 1 }, + { "px": [432,96], "src": [32,32], "f": 0, "t": 48, "d": [127,315], "a": 1 }, + { "px": [448,96], "src": [32,32], "f": 0, "t": 48, "d": [127,316], "a": 1 }, + { "px": [464,96], "src": [32,32], "f": 0, "t": 48, "d": [127,317], "a": 1 }, + { "px": [496,96], "src": [32,32], "f": 0, "t": 48, "d": [127,319], "a": 1 }, + { "px": [512,96], "src": [32,32], "f": 0, "t": 48, "d": [127,320], "a": 1 }, + { "px": [528,96], "src": [32,32], "f": 0, "t": 48, "d": [127,321], "a": 1 }, + { "px": [560,96], "src": [32,32], "f": 0, "t": 48, "d": [127,323], "a": 1 }, + { "px": [592,96], "src": [32,32], "f": 0, "t": 48, "d": [127,325], "a": 1 }, + { "px": [608,96], "src": [32,32], "f": 0, "t": 48, "d": [127,326], "a": 1 }, + { "px": [624,96], "src": [32,32], "f": 0, "t": 48, "d": [127,327], "a": 1 }, + { "px": [640,96], "src": [32,32], "f": 0, "t": 48, "d": [127,328], "a": 1 }, + { "px": [656,96], "src": [32,32], "f": 0, "t": 48, "d": [127,329], "a": 1 }, + { "px": [672,96], "src": [32,32], "f": 0, "t": 48, "d": [127,330], "a": 1 }, + { "px": [688,96], "src": [32,32], "f": 0, "t": 48, "d": [127,331], "a": 1 }, + { "px": [704,96], "src": [32,32], "f": 0, "t": 48, "d": [127,332], "a": 1 }, + { "px": [720,96], "src": [32,32], "f": 0, "t": 48, "d": [127,333], "a": 1 }, + { "px": [736,96], "src": [32,32], "f": 0, "t": 48, "d": [127,334], "a": 1 }, + { "px": [752,96], "src": [32,32], "f": 0, "t": 48, "d": [127,335], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [127,336], "a": 1 }, + { "px": [32,112], "src": [32,32], "f": 0, "t": 48, "d": [127,338], "a": 1 }, + { "px": [64,112], "src": [32,32], "f": 0, "t": 48, "d": [127,340], "a": 1 }, + { "px": [80,112], "src": [32,32], "f": 0, "t": 48, "d": [127,341], "a": 1 }, + { "px": [96,112], "src": [32,32], "f": 0, "t": 48, "d": [127,342], "a": 1 }, + { "px": [128,112], "src": [32,32], "f": 0, "t": 48, "d": [127,344], "a": 1 }, + { "px": [144,112], "src": [32,32], "f": 0, "t": 48, "d": [127,345], "a": 1 }, + { "px": [160,112], "src": [32,32], "f": 0, "t": 48, "d": [127,346], "a": 1 }, + { "px": [192,112], "src": [32,32], "f": 0, "t": 48, "d": [127,348], "a": 1 }, + { "px": [208,112], "src": [32,32], "f": 0, "t": 48, "d": [127,349], "a": 1 }, + { "px": [224,112], "src": [32,32], "f": 0, "t": 48, "d": [127,350], "a": 1 }, + { "px": [240,112], "src": [32,32], "f": 0, "t": 48, "d": [127,351], "a": 1 }, + { "px": [256,112], "src": [32,32], "f": 0, "t": 48, "d": [127,352], "a": 1 }, + { "px": [272,112], "src": [32,32], "f": 0, "t": 48, "d": [127,353], "a": 1 }, + { "px": [288,112], "src": [32,32], "f": 0, "t": 48, "d": [127,354], "a": 1 }, + { "px": [304,112], "src": [32,32], "f": 0, "t": 48, "d": [127,355], "a": 1 }, + { "px": [320,112], "src": [32,32], "f": 0, "t": 48, "d": [127,356], "a": 1 }, + { "px": [336,112], "src": [32,32], "f": 0, "t": 48, "d": [127,357], "a": 1 }, + { "px": [352,112], "src": [32,32], "f": 0, "t": 48, "d": [127,358], "a": 1 }, + { "px": [384,112], "src": [32,32], "f": 0, "t": 48, "d": [127,360], "a": 1 }, + { "px": [400,112], "src": [32,32], "f": 0, "t": 48, "d": [127,361], "a": 1 }, + { "px": [416,112], "src": [32,32], "f": 0, "t": 48, "d": [127,362], "a": 1 }, + { "px": [432,112], "src": [32,32], "f": 0, "t": 48, "d": [127,363], "a": 1 }, + { "px": [448,112], "src": [32,32], "f": 0, "t": 48, "d": [127,364], "a": 1 }, + { "px": [464,112], "src": [32,32], "f": 0, "t": 48, "d": [127,365], "a": 1 }, + { "px": [480,112], "src": [32,32], "f": 0, "t": 48, "d": [127,366], "a": 1 }, + { "px": [512,112], "src": [32,32], "f": 0, "t": 48, "d": [127,368], "a": 1 }, + { "px": [544,112], "src": [32,32], "f": 0, "t": 48, "d": [127,370], "a": 1 }, + { "px": [560,112], "src": [32,32], "f": 0, "t": 48, "d": [127,371], "a": 1 }, + { "px": [576,112], "src": [32,32], "f": 0, "t": 48, "d": [127,372], "a": 1 }, + { "px": [592,112], "src": [32,32], "f": 0, "t": 48, "d": [127,373], "a": 1 }, + { "px": [608,112], "src": [32,32], "f": 0, "t": 48, "d": [127,374], "a": 1 }, + { "px": [624,112], "src": [32,32], "f": 0, "t": 48, "d": [127,375], "a": 1 }, + { "px": [640,112], "src": [32,32], "f": 0, "t": 48, "d": [127,376], "a": 1 }, + { "px": [656,112], "src": [32,32], "f": 0, "t": 48, "d": [127,377], "a": 1 }, + { "px": [672,112], "src": [32,32], "f": 0, "t": 48, "d": [127,378], "a": 1 }, + { "px": [688,112], "src": [32,32], "f": 0, "t": 48, "d": [127,379], "a": 1 }, + { "px": [704,112], "src": [32,32], "f": 0, "t": 48, "d": [127,380], "a": 1 }, + { "px": [720,112], "src": [32,32], "f": 0, "t": 48, "d": [127,381], "a": 1 }, + { "px": [736,112], "src": [32,32], "f": 0, "t": 48, "d": [127,382], "a": 1 }, + { "px": [752,112], "src": [32,32], "f": 0, "t": 48, "d": [127,383], "a": 1 }, + { "px": [16,128], "src": [32,32], "f": 0, "t": 48, "d": [127,385], "a": 1 }, + { "px": [32,128], "src": [32,32], "f": 0, "t": 48, "d": [127,386], "a": 1 }, + { "px": [48,128], "src": [32,32], "f": 0, "t": 48, "d": [127,387], "a": 1 }, + { "px": [64,128], "src": [32,32], "f": 0, "t": 48, "d": [127,388], "a": 1 }, + { "px": [80,128], "src": [32,32], "f": 0, "t": 48, "d": [127,389], "a": 1 }, + { "px": [112,128], "src": [32,32], "f": 0, "t": 48, "d": [127,391], "a": 1 }, + { "px": [128,128], "src": [32,32], "f": 0, "t": 48, "d": [127,392], "a": 1 }, + { "px": [144,128], "src": [32,32], "f": 0, "t": 48, "d": [127,393], "a": 1 }, + { "px": [160,128], "src": [32,32], "f": 0, "t": 48, "d": [127,394], "a": 1 }, + { "px": [176,128], "src": [32,32], "f": 0, "t": 48, "d": [127,395], "a": 1 }, + { "px": [208,128], "src": [32,32], "f": 0, "t": 48, "d": [127,397], "a": 1 }, + { "px": [560,128], "src": [32,32], "f": 0, "t": 48, "d": [127,419], "a": 1 }, + { "px": [576,128], "src": [32,32], "f": 0, "t": 48, "d": [127,420], "a": 1 }, + { "px": [592,128], "src": [32,32], "f": 0, "t": 48, "d": [127,421], "a": 1 }, + { "px": [608,128], "src": [32,32], "f": 0, "t": 48, "d": [127,422], "a": 1 }, + { "px": [624,128], "src": [32,32], "f": 0, "t": 48, "d": [127,423], "a": 1 }, + { "px": [640,128], "src": [32,32], "f": 0, "t": 48, "d": [127,424], "a": 1 }, + { "px": [656,128], "src": [32,32], "f": 0, "t": 48, "d": [127,425], "a": 1 }, + { "px": [688,128], "src": [32,32], "f": 0, "t": 48, "d": [127,427], "a": 1 }, + { "px": [704,128], "src": [32,32], "f": 0, "t": 48, "d": [127,428], "a": 1 }, + { "px": [720,128], "src": [32,32], "f": 0, "t": 48, "d": [127,429], "a": 1 }, + { "px": [736,128], "src": [32,32], "f": 0, "t": 48, "d": [127,430], "a": 1 }, + { "px": [752,128], "src": [32,32], "f": 0, "t": 48, "d": [127,431], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [127,432], "a": 1 }, + { "px": [32,144], "src": [32,32], "f": 0, "t": 48, "d": [127,434], "a": 1 }, + { "px": [64,144], "src": [32,32], "f": 0, "t": 48, "d": [127,436], "a": 1 }, + { "px": [80,144], "src": [32,32], "f": 0, "t": 48, "d": [127,437], "a": 1 }, + { "px": [96,144], "src": [32,32], "f": 0, "t": 48, "d": [127,438], "a": 1 }, + { "px": [128,144], "src": [32,32], "f": 0, "t": 48, "d": [127,440], "a": 1 }, + { "px": [144,144], "src": [32,32], "f": 0, "t": 48, "d": [127,441], "a": 1 }, + { "px": [160,144], "src": [32,32], "f": 0, "t": 48, "d": [127,442], "a": 1 }, + { "px": [192,144], "src": [32,32], "f": 0, "t": 48, "d": [127,444], "a": 1 }, + { "px": [208,144], "src": [32,32], "f": 0, "t": 48, "d": [127,445], "a": 1 }, + { "px": [576,144], "src": [32,32], "f": 0, "t": 48, "d": [127,468], "a": 1 }, + { "px": [592,144], "src": [32,32], "f": 0, "t": 48, "d": [127,469], "a": 1 }, + { "px": [608,144], "src": [32,32], "f": 0, "t": 48, "d": [127,470], "a": 1 }, + { "px": [624,144], "src": [32,32], "f": 0, "t": 48, "d": [127,471], "a": 1 }, + { "px": [640,144], "src": [32,32], "f": 0, "t": 48, "d": [127,472], "a": 1 }, + { "px": [656,144], "src": [32,32], "f": 0, "t": 48, "d": [127,473], "a": 1 }, + { "px": [672,144], "src": [32,32], "f": 0, "t": 48, "d": [127,474], "a": 1 }, + { "px": [704,144], "src": [32,32], "f": 0, "t": 48, "d": [127,476], "a": 1 }, + { "px": [720,144], "src": [32,32], "f": 0, "t": 48, "d": [127,477], "a": 1 }, + { "px": [736,144], "src": [32,32], "f": 0, "t": 48, "d": [127,478], "a": 1 }, + { "px": [752,144], "src": [32,32], "f": 0, "t": 48, "d": [127,479], "a": 1 }, + { "px": [0,160], "src": [32,32], "f": 0, "t": 48, "d": [127,480], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [127,481], "a": 1 }, + { "px": [48,160], "src": [32,32], "f": 0, "t": 48, "d": [127,483], "a": 1 }, + { "px": [64,160], "src": [32,32], "f": 0, "t": 48, "d": [127,484], "a": 1 }, + { "px": [80,160], "src": [32,32], "f": 0, "t": 48, "d": [127,485], "a": 1 }, + { "px": [96,160], "src": [32,32], "f": 0, "t": 48, "d": [127,486], "a": 1 }, + { "px": [112,160], "src": [32,32], "f": 0, "t": 48, "d": [127,487], "a": 1 }, + { "px": [128,160], "src": [32,32], "f": 0, "t": 48, "d": [127,488], "a": 1 }, + { "px": [144,160], "src": [32,32], "f": 0, "t": 48, "d": [127,489], "a": 1 }, + { "px": [160,160], "src": [32,32], "f": 0, "t": 48, "d": [127,490], "a": 1 }, + { "px": [176,160], "src": [32,32], "f": 0, "t": 48, "d": [127,491], "a": 1 }, + { "px": [192,160], "src": [32,32], "f": 0, "t": 48, "d": [127,492], "a": 1 }, + { "px": [208,160], "src": [32,32], "f": 0, "t": 48, "d": [127,493], "a": 1 }, + { "px": [560,160], "src": [32,32], "f": 0, "t": 48, "d": [127,515], "a": 1 }, + { "px": [576,160], "src": [32,32], "f": 0, "t": 48, "d": [127,516], "a": 1 }, + { "px": [592,160], "src": [32,32], "f": 0, "t": 48, "d": [127,517], "a": 1 }, + { "px": [608,160], "src": [32,32], "f": 0, "t": 48, "d": [127,518], "a": 1 }, + { "px": [624,160], "src": [32,32], "f": 0, "t": 48, "d": [127,519], "a": 1 }, + { "px": [656,160], "src": [32,32], "f": 0, "t": 48, "d": [127,521], "a": 1 }, + { "px": [672,160], "src": [32,32], "f": 0, "t": 48, "d": [127,522], "a": 1 }, + { "px": [688,160], "src": [32,32], "f": 0, "t": 48, "d": [127,523], "a": 1 }, + { "px": [704,160], "src": [32,32], "f": 0, "t": 48, "d": [127,524], "a": 1 }, + { "px": [720,160], "src": [32,32], "f": 0, "t": 48, "d": [127,525], "a": 1 }, + { "px": [752,160], "src": [32,32], "f": 0, "t": 48, "d": [127,527], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [127,528], "a": 1 }, + { "px": [16,176], "src": [32,32], "f": 0, "t": 48, "d": [127,529], "a": 1 }, + { "px": [32,176], "src": [32,32], "f": 0, "t": 48, "d": [127,530], "a": 1 }, + { "px": [48,176], "src": [32,32], "f": 0, "t": 48, "d": [127,531], "a": 1 }, + { "px": [64,176], "src": [32,32], "f": 0, "t": 48, "d": [127,532], "a": 1 }, + { "px": [80,176], "src": [32,32], "f": 0, "t": 48, "d": [127,533], "a": 1 }, + { "px": [96,176], "src": [32,32], "f": 0, "t": 48, "d": [127,534], "a": 1 }, + { "px": [112,176], "src": [32,32], "f": 0, "t": 48, "d": [127,535], "a": 1 }, + { "px": [128,176], "src": [32,32], "f": 0, "t": 48, "d": [127,536], "a": 1 }, + { "px": [160,176], "src": [32,32], "f": 0, "t": 48, "d": [127,538], "a": 1 }, + { "px": [176,176], "src": [32,32], "f": 0, "t": 48, "d": [127,539], "a": 1 }, + { "px": [192,176], "src": [32,32], "f": 0, "t": 48, "d": [127,540], "a": 1 }, + { "px": [208,176], "src": [32,32], "f": 0, "t": 48, "d": [127,541], "a": 1 }, + { "px": [560,176], "src": [32,32], "f": 0, "t": 48, "d": [127,563], "a": 1 }, + { "px": [576,176], "src": [32,32], "f": 0, "t": 48, "d": [127,564], "a": 1 }, + { "px": [592,176], "src": [32,32], "f": 0, "t": 48, "d": [127,565], "a": 1 }, + { "px": [608,176], "src": [32,32], "f": 0, "t": 48, "d": [127,566], "a": 1 }, + { "px": [624,176], "src": [32,32], "f": 0, "t": 48, "d": [127,567], "a": 1 }, + { "px": [640,176], "src": [32,32], "f": 0, "t": 48, "d": [127,568], "a": 1 }, + { "px": [672,176], "src": [32,32], "f": 0, "t": 48, "d": [127,570], "a": 1 }, + { "px": [688,176], "src": [32,32], "f": 0, "t": 48, "d": [127,571], "a": 1 }, + { "px": [704,176], "src": [32,32], "f": 0, "t": 48, "d": [127,572], "a": 1 }, + { "px": [720,176], "src": [32,32], "f": 0, "t": 48, "d": [127,573], "a": 1 }, + { "px": [736,176], "src": [32,32], "f": 0, "t": 48, "d": [127,574], "a": 1 }, + { "px": [752,176], "src": [32,32], "f": 0, "t": 48, "d": [127,575], "a": 1 }, + { "px": [0,192], "src": [32,32], "f": 0, "t": 48, "d": [127,576], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [127,577], "a": 1 }, + { "px": [32,192], "src": [32,32], "f": 0, "t": 48, "d": [127,578], "a": 1 }, + { "px": [48,192], "src": [32,32], "f": 0, "t": 48, "d": [127,579], "a": 1 }, + { "px": [64,192], "src": [32,32], "f": 0, "t": 48, "d": [127,580], "a": 1 }, + { "px": [80,192], "src": [32,32], "f": 0, "t": 48, "d": [127,581], "a": 1 }, + { "px": [96,192], "src": [32,32], "f": 0, "t": 48, "d": [127,582], "a": 1 }, + { "px": [112,192], "src": [32,32], "f": 0, "t": 48, "d": [127,583], "a": 1 }, + { "px": [144,192], "src": [32,32], "f": 0, "t": 48, "d": [127,585], "a": 1 }, + { "px": [160,192], "src": [32,32], "f": 0, "t": 48, "d": [127,586], "a": 1 }, + { "px": [176,192], "src": [32,32], "f": 0, "t": 48, "d": [127,587], "a": 1 }, + { "px": [192,192], "src": [32,32], "f": 0, "t": 48, "d": [127,588], "a": 1 }, + { "px": [208,192], "src": [32,32], "f": 0, "t": 48, "d": [127,589], "a": 1 }, + { "px": [560,192], "src": [32,32], "f": 0, "t": 48, "d": [127,611], "a": 1 }, + { "px": [576,192], "src": [32,32], "f": 0, "t": 48, "d": [127,612], "a": 1 }, + { "px": [592,192], "src": [32,32], "f": 0, "t": 48, "d": [127,613], "a": 1 }, + { "px": [608,192], "src": [32,32], "f": 0, "t": 48, "d": [127,614], "a": 1 }, + { "px": [624,192], "src": [32,32], "f": 0, "t": 48, "d": [127,615], "a": 1 }, + { "px": [656,192], "src": [32,32], "f": 0, "t": 48, "d": [127,617], "a": 1 }, + { "px": [688,192], "src": [32,32], "f": 0, "t": 48, "d": [127,619], "a": 1 }, + { "px": [704,192], "src": [32,32], "f": 0, "t": 48, "d": [127,620], "a": 1 }, + { "px": [720,192], "src": [32,32], "f": 0, "t": 48, "d": [127,621], "a": 1 }, + { "px": [752,192], "src": [32,32], "f": 0, "t": 48, "d": [127,623], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [127,624], "a": 1 }, + { "px": [16,208], "src": [32,32], "f": 0, "t": 48, "d": [127,625], "a": 1 }, + { "px": [32,208], "src": [32,32], "f": 0, "t": 48, "d": [127,626], "a": 1 }, + { "px": [48,208], "src": [32,32], "f": 0, "t": 48, "d": [127,627], "a": 1 }, + { "px": [64,208], "src": [32,32], "f": 0, "t": 48, "d": [127,628], "a": 1 }, + { "px": [80,208], "src": [32,32], "f": 0, "t": 48, "d": [127,629], "a": 1 }, + { "px": [96,208], "src": [32,32], "f": 0, "t": 48, "d": [127,630], "a": 1 }, + { "px": [112,208], "src": [32,32], "f": 0, "t": 48, "d": [127,631], "a": 1 }, + { "px": [128,208], "src": [32,32], "f": 0, "t": 48, "d": [127,632], "a": 1 }, + { "px": [144,208], "src": [32,32], "f": 0, "t": 48, "d": [127,633], "a": 1 }, + { "px": [160,208], "src": [32,32], "f": 0, "t": 48, "d": [127,634], "a": 1 }, + { "px": [192,208], "src": [32,32], "f": 0, "t": 48, "d": [127,636], "a": 1 }, + { "px": [208,208], "src": [32,32], "f": 0, "t": 48, "d": [127,637], "a": 1 }, + { "px": [560,208], "src": [32,32], "f": 0, "t": 48, "d": [127,659], "a": 1 }, + { "px": [576,208], "src": [32,32], "f": 0, "t": 48, "d": [127,660], "a": 1 }, + { "px": [592,208], "src": [32,32], "f": 0, "t": 48, "d": [127,661], "a": 1 }, + { "px": [608,208], "src": [32,32], "f": 0, "t": 48, "d": [127,662], "a": 1 }, + { "px": [624,208], "src": [32,32], "f": 0, "t": 48, "d": [127,663], "a": 1 }, + { "px": [640,208], "src": [32,32], "f": 0, "t": 48, "d": [127,664], "a": 1 }, + { "px": [656,208], "src": [32,32], "f": 0, "t": 48, "d": [127,665], "a": 1 }, + { "px": [672,208], "src": [32,32], "f": 0, "t": 48, "d": [127,666], "a": 1 }, + { "px": [688,208], "src": [32,32], "f": 0, "t": 48, "d": [127,667], "a": 1 }, + { "px": [704,208], "src": [32,32], "f": 0, "t": 48, "d": [127,668], "a": 1 }, + { "px": [720,208], "src": [32,32], "f": 0, "t": 48, "d": [127,669], "a": 1 }, + { "px": [736,208], "src": [32,32], "f": 0, "t": 48, "d": [127,670], "a": 1 }, + { "px": [0,224], "src": [32,32], "f": 0, "t": 48, "d": [127,672], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [127,673], "a": 1 }, + { "px": [32,224], "src": [32,32], "f": 0, "t": 48, "d": [127,674], "a": 1 }, + { "px": [48,224], "src": [32,32], "f": 0, "t": 48, "d": [127,675], "a": 1 }, + { "px": [64,224], "src": [32,32], "f": 0, "t": 48, "d": [127,676], "a": 1 }, + { "px": [80,224], "src": [32,32], "f": 0, "t": 48, "d": [127,677], "a": 1 }, + { "px": [112,224], "src": [32,32], "f": 0, "t": 48, "d": [127,679], "a": 1 }, + { "px": [128,224], "src": [32,32], "f": 0, "t": 48, "d": [127,680], "a": 1 }, + { "px": [144,224], "src": [32,32], "f": 0, "t": 48, "d": [127,681], "a": 1 }, + { "px": [176,224], "src": [32,32], "f": 0, "t": 48, "d": [127,683], "a": 1 }, + { "px": [192,224], "src": [32,32], "f": 0, "t": 48, "d": [127,684], "a": 1 }, + { "px": [208,224], "src": [32,32], "f": 0, "t": 48, "d": [127,685], "a": 1 }, + { "px": [560,224], "src": [32,32], "f": 0, "t": 48, "d": [127,707], "a": 1 }, + { "px": [576,224], "src": [32,32], "f": 0, "t": 48, "d": [127,708], "a": 1 }, + { "px": [592,224], "src": [32,32], "f": 0, "t": 48, "d": [127,709], "a": 1 }, + { "px": [608,224], "src": [32,32], "f": 0, "t": 48, "d": [127,710], "a": 1 }, + { "px": [624,224], "src": [32,32], "f": 0, "t": 48, "d": [127,711], "a": 1 }, + { "px": [640,224], "src": [32,32], "f": 0, "t": 48, "d": [127,712], "a": 1 }, + { "px": [656,224], "src": [32,32], "f": 0, "t": 48, "d": [127,713], "a": 1 }, + { "px": [688,224], "src": [32,32], "f": 0, "t": 48, "d": [127,715], "a": 1 }, + { "px": [704,224], "src": [32,32], "f": 0, "t": 48, "d": [127,716], "a": 1 }, + { "px": [720,224], "src": [32,32], "f": 0, "t": 48, "d": [127,717], "a": 1 }, + { "px": [752,224], "src": [32,32], "f": 0, "t": 48, "d": [127,719], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [127,720], "a": 1 }, + { "px": [16,240], "src": [32,32], "f": 0, "t": 48, "d": [127,721], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [127,722], "a": 1 }, + { "px": [48,240], "src": [32,32], "f": 0, "t": 48, "d": [127,723], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [127,724], "a": 1 }, + { "px": [80,240], "src": [32,32], "f": 0, "t": 48, "d": [127,725], "a": 1 }, + { "px": [96,240], "src": [32,32], "f": 0, "t": 48, "d": [127,726], "a": 1 }, + { "px": [112,240], "src": [32,32], "f": 0, "t": 48, "d": [127,727], "a": 1 }, + { "px": [128,240], "src": [32,32], "f": 0, "t": 48, "d": [127,728], "a": 1 }, + { "px": [160,240], "src": [32,32], "f": 0, "t": 48, "d": [127,730], "a": 1 }, + { "px": [192,240], "src": [32,32], "f": 0, "t": 48, "d": [127,732], "a": 1 }, + { "px": [576,240], "src": [32,32], "f": 0, "t": 48, "d": [127,756], "a": 1 }, + { "px": [592,240], "src": [32,32], "f": 0, "t": 48, "d": [127,757], "a": 1 }, + { "px": [608,240], "src": [32,32], "f": 0, "t": 48, "d": [127,758], "a": 1 }, + { "px": [624,240], "src": [32,32], "f": 0, "t": 48, "d": [127,759], "a": 1 }, + { "px": [640,240], "src": [32,32], "f": 0, "t": 48, "d": [127,760], "a": 1 }, + { "px": [672,240], "src": [32,32], "f": 0, "t": 48, "d": [127,762], "a": 1 }, + { "px": [688,240], "src": [32,32], "f": 0, "t": 48, "d": [127,763], "a": 1 }, + { "px": [704,240], "src": [32,32], "f": 0, "t": 48, "d": [127,764], "a": 1 }, + { "px": [736,240], "src": [32,32], "f": 0, "t": 48, "d": [127,766], "a": 1 }, + { "px": [16,256], "src": [32,32], "f": 0, "t": 48, "d": [127,769], "a": 1 }, + { "px": [32,256], "src": [32,32], "f": 0, "t": 48, "d": [127,770], "a": 1 }, + { "px": [48,256], "src": [32,32], "f": 0, "t": 48, "d": [127,771], "a": 1 }, + { "px": [64,256], "src": [32,32], "f": 0, "t": 48, "d": [127,772], "a": 1 }, + { "px": [80,256], "src": [32,32], "f": 0, "t": 48, "d": [127,773], "a": 1 }, + { "px": [112,256], "src": [32,32], "f": 0, "t": 48, "d": [127,775], "a": 1 }, + { "px": [128,256], "src": [32,32], "f": 0, "t": 48, "d": [127,776], "a": 1 }, + { "px": [144,256], "src": [32,32], "f": 0, "t": 48, "d": [127,777], "a": 1 }, + { "px": [160,256], "src": [32,32], "f": 0, "t": 48, "d": [127,778], "a": 1 }, + { "px": [176,256], "src": [32,32], "f": 0, "t": 48, "d": [127,779], "a": 1 }, + { "px": [192,256], "src": [32,32], "f": 0, "t": 48, "d": [127,780], "a": 1 }, + { "px": [208,256], "src": [32,32], "f": 0, "t": 48, "d": [127,781], "a": 1 }, + { "px": [560,256], "src": [32,32], "f": 0, "t": 48, "d": [127,803], "a": 1 }, + { "px": [592,256], "src": [32,32], "f": 0, "t": 48, "d": [127,805], "a": 1 }, + { "px": [608,256], "src": [32,32], "f": 0, "t": 48, "d": [127,806], "a": 1 }, + { "px": [624,256], "src": [32,32], "f": 0, "t": 48, "d": [127,807], "a": 1 }, + { "px": [656,256], "src": [32,32], "f": 0, "t": 48, "d": [127,809], "a": 1 }, + { "px": [672,256], "src": [32,32], "f": 0, "t": 48, "d": [127,810], "a": 1 }, + { "px": [688,256], "src": [32,32], "f": 0, "t": 48, "d": [127,811], "a": 1 }, + { "px": [704,256], "src": [32,32], "f": 0, "t": 48, "d": [127,812], "a": 1 }, + { "px": [720,256], "src": [32,32], "f": 0, "t": 48, "d": [127,813], "a": 1 }, + { "px": [736,256], "src": [32,32], "f": 0, "t": 48, "d": [127,814], "a": 1 }, + { "px": [752,256], "src": [32,32], "f": 0, "t": 48, "d": [127,815], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [127,816], "a": 1 }, + { "px": [16,272], "src": [32,32], "f": 0, "t": 48, "d": [127,817], "a": 1 }, + { "px": [32,272], "src": [32,32], "f": 0, "t": 48, "d": [127,818], "a": 1 }, + { "px": [48,272], "src": [32,32], "f": 0, "t": 48, "d": [127,819], "a": 1 }, + { "px": [64,272], "src": [32,32], "f": 0, "t": 48, "d": [127,820], "a": 1 }, + { "px": [80,272], "src": [32,32], "f": 0, "t": 48, "d": [127,821], "a": 1 }, + { "px": [96,272], "src": [32,32], "f": 0, "t": 48, "d": [127,822], "a": 1 }, + { "px": [128,272], "src": [32,32], "f": 0, "t": 48, "d": [127,824], "a": 1 }, + { "px": [144,272], "src": [32,32], "f": 0, "t": 48, "d": [127,825], "a": 1 }, + { "px": [160,272], "src": [32,32], "f": 0, "t": 48, "d": [127,826], "a": 1 }, + { "px": [176,272], "src": [32,32], "f": 0, "t": 48, "d": [127,827], "a": 1 }, + { "px": [192,272], "src": [32,32], "f": 0, "t": 48, "d": [127,828], "a": 1 }, + { "px": [208,272], "src": [32,32], "f": 0, "t": 48, "d": [127,829], "a": 1 }, + { "px": [544,272], "src": [32,32], "f": 0, "t": 48, "d": [127,850], "a": 1 }, + { "px": [560,272], "src": [32,32], "f": 0, "t": 48, "d": [127,851], "a": 1 }, + { "px": [576,272], "src": [32,32], "f": 0, "t": 48, "d": [127,852], "a": 1 }, + { "px": [592,272], "src": [32,32], "f": 0, "t": 48, "d": [127,853], "a": 1 }, + { "px": [608,272], "src": [32,32], "f": 0, "t": 48, "d": [127,854], "a": 1 }, + { "px": [640,272], "src": [32,32], "f": 0, "t": 48, "d": [127,856], "a": 1 }, + { "px": [672,272], "src": [32,32], "f": 0, "t": 48, "d": [127,858], "a": 1 }, + { "px": [688,272], "src": [32,32], "f": 0, "t": 48, "d": [127,859], "a": 1 }, + { "px": [704,272], "src": [32,32], "f": 0, "t": 48, "d": [127,860], "a": 1 }, + { "px": [720,272], "src": [32,32], "f": 0, "t": 48, "d": [127,861], "a": 1 }, + { "px": [736,272], "src": [32,32], "f": 0, "t": 48, "d": [127,862], "a": 1 }, + { "px": [752,272], "src": [32,32], "f": 0, "t": 48, "d": [127,863], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [127,865], "a": 1 }, + { "px": [32,288], "src": [32,32], "f": 0, "t": 48, "d": [127,866], "a": 1 }, + { "px": [48,288], "src": [32,32], "f": 0, "t": 48, "d": [127,867], "a": 1 }, + { "px": [64,288], "src": [32,32], "f": 0, "t": 48, "d": [127,868], "a": 1 }, + { "px": [80,288], "src": [32,32], "f": 0, "t": 48, "d": [127,869], "a": 1 }, + { "px": [96,288], "src": [32,32], "f": 0, "t": 48, "d": [127,870], "a": 1 }, + { "px": [112,288], "src": [32,32], "f": 0, "t": 48, "d": [127,871], "a": 1 }, + { "px": [128,288], "src": [32,32], "f": 0, "t": 48, "d": [127,872], "a": 1 }, + { "px": [144,288], "src": [32,32], "f": 0, "t": 48, "d": [127,873], "a": 1 }, + { "px": [160,288], "src": [32,32], "f": 0, "t": 48, "d": [127,874], "a": 1 }, + { "px": [176,288], "src": [32,32], "f": 0, "t": 48, "d": [127,875], "a": 1 }, + { "px": [208,288], "src": [32,32], "f": 0, "t": 48, "d": [127,877], "a": 1 }, + { "px": [560,288], "src": [32,32], "f": 0, "t": 48, "d": [127,899], "a": 1 }, + { "px": [592,288], "src": [32,32], "f": 0, "t": 48, "d": [127,901], "a": 1 }, + { "px": [624,288], "src": [32,32], "f": 0, "t": 48, "d": [127,903], "a": 1 }, + { "px": [656,288], "src": [32,32], "f": 0, "t": 48, "d": [127,905], "a": 1 }, + { "px": [688,288], "src": [32,32], "f": 0, "t": 48, "d": [127,907], "a": 1 }, + { "px": [704,288], "src": [32,32], "f": 0, "t": 48, "d": [127,908], "a": 1 }, + { "px": [720,288], "src": [32,32], "f": 0, "t": 48, "d": [127,909], "a": 1 }, + { "px": [736,288], "src": [32,32], "f": 0, "t": 48, "d": [127,910], "a": 1 }, + { "px": [752,288], "src": [32,32], "f": 0, "t": 48, "d": [127,911], "a": 1 }, + { "px": [0,304], "src": [32,32], "f": 0, "t": 48, "d": [127,912], "a": 1 }, + { "px": [16,304], "src": [32,32], "f": 0, "t": 48, "d": [127,913], "a": 1 }, + { "px": [32,304], "src": [32,32], "f": 0, "t": 48, "d": [127,914], "a": 1 }, + { "px": [48,304], "src": [32,32], "f": 0, "t": 48, "d": [127,915], "a": 1 }, + { "px": [64,304], "src": [32,32], "f": 0, "t": 48, "d": [127,916], "a": 1 }, + { "px": [80,304], "src": [32,32], "f": 0, "t": 48, "d": [127,917], "a": 1 }, + { "px": [96,304], "src": [32,32], "f": 0, "t": 48, "d": [127,918], "a": 1 }, + { "px": [112,304], "src": [32,32], "f": 0, "t": 48, "d": [127,919], "a": 1 }, + { "px": [128,304], "src": [32,32], "f": 0, "t": 48, "d": [127,920], "a": 1 }, + { "px": [160,304], "src": [32,32], "f": 0, "t": 48, "d": [127,922], "a": 1 }, + { "px": [192,304], "src": [32,32], "f": 0, "t": 48, "d": [127,924], "a": 1 }, + { "px": [208,304], "src": [32,32], "f": 0, "t": 48, "d": [127,925], "a": 1 }, + { "px": [544,304], "src": [32,32], "f": 0, "t": 48, "d": [127,946], "a": 1 }, + { "px": [576,304], "src": [32,32], "f": 0, "t": 48, "d": [127,948], "a": 1 }, + { "px": [608,304], "src": [32,32], "f": 0, "t": 48, "d": [127,950], "a": 1 }, + { "px": [624,304], "src": [32,32], "f": 0, "t": 48, "d": [127,951], "a": 1 }, + { "px": [640,304], "src": [32,32], "f": 0, "t": 48, "d": [127,952], "a": 1 }, + { "px": [656,304], "src": [32,32], "f": 0, "t": 48, "d": [127,953], "a": 1 }, + { "px": [672,304], "src": [32,32], "f": 0, "t": 48, "d": [127,954], "a": 1 }, + { "px": [688,304], "src": [32,32], "f": 0, "t": 48, "d": [127,955], "a": 1 }, + { "px": [704,304], "src": [32,32], "f": 0, "t": 48, "d": [127,956], "a": 1 }, + { "px": [720,304], "src": [32,32], "f": 0, "t": 48, "d": [127,957], "a": 1 }, + { "px": [736,304], "src": [32,32], "f": 0, "t": 48, "d": [127,958], "a": 1 }, + { "px": [752,304], "src": [32,32], "f": 0, "t": 48, "d": [127,959], "a": 1 }, + { "px": [0,320], "src": [32,32], "f": 0, "t": 48, "d": [127,960], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [127,961], "a": 1 }, + { "px": [32,320], "src": [32,32], "f": 0, "t": 48, "d": [127,962], "a": 1 }, + { "px": [48,320], "src": [32,32], "f": 0, "t": 48, "d": [127,963], "a": 1 }, + { "px": [64,320], "src": [32,32], "f": 0, "t": 48, "d": [127,964], "a": 1 }, + { "px": [80,320], "src": [32,32], "f": 0, "t": 48, "d": [127,965], "a": 1 }, + { "px": [112,320], "src": [32,32], "f": 0, "t": 48, "d": [127,967], "a": 1 }, + { "px": [144,320], "src": [32,32], "f": 0, "t": 48, "d": [127,969], "a": 1 }, + { "px": [160,320], "src": [32,32], "f": 0, "t": 48, "d": [127,970], "a": 1 }, + { "px": [176,320], "src": [32,32], "f": 0, "t": 48, "d": [127,971], "a": 1 }, + { "px": [192,320], "src": [32,32], "f": 0, "t": 48, "d": [127,972], "a": 1 }, + { "px": [208,320], "src": [32,32], "f": 0, "t": 48, "d": [127,973], "a": 1 }, + { "px": [544,320], "src": [32,32], "f": 0, "t": 48, "d": [127,994], "a": 1 }, + { "px": [560,320], "src": [32,32], "f": 0, "t": 48, "d": [127,995], "a": 1 }, + { "px": [592,320], "src": [32,32], "f": 0, "t": 48, "d": [127,997], "a": 1 }, + { "px": [624,320], "src": [32,32], "f": 0, "t": 48, "d": [127,999], "a": 1 }, + { "px": [656,320], "src": [32,32], "f": 0, "t": 48, "d": [127,1001], "a": 1 }, + { "px": [672,320], "src": [32,32], "f": 0, "t": 48, "d": [127,1002], "a": 1 }, + { "px": [688,320], "src": [32,32], "f": 0, "t": 48, "d": [127,1003], "a": 1 }, + { "px": [720,320], "src": [32,32], "f": 0, "t": 48, "d": [127,1005], "a": 1 }, + { "px": [736,320], "src": [32,32], "f": 0, "t": 48, "d": [127,1006], "a": 1 }, + { "px": [752,320], "src": [32,32], "f": 0, "t": 48, "d": [127,1007], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1008], "a": 1 }, + { "px": [16,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1009], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1010], "a": 1 }, + { "px": [48,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1011], "a": 1 }, + { "px": [64,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1012], "a": 1 }, + { "px": [96,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1014], "a": 1 }, + { "px": [128,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1016], "a": 1 }, + { "px": [160,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1018], "a": 1 }, + { "px": [176,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1019], "a": 1 }, + { "px": [192,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1020], "a": 1 }, + { "px": [208,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1021], "a": 1 }, + { "px": [544,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1042], "a": 1 }, + { "px": [560,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1043], "a": 1 }, + { "px": [576,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1044], "a": 1 }, + { "px": [592,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1045], "a": 1 }, + { "px": [608,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1046], "a": 1 }, + { "px": [640,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1048], "a": 1 }, + { "px": [656,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1049], "a": 1 }, + { "px": [672,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1050], "a": 1 }, + { "px": [688,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1051], "a": 1 }, + { "px": [704,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1052], "a": 1 }, + { "px": [736,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1054], "a": 1 }, + { "px": [0,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1056], "a": 1 }, + { "px": [16,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1057], "a": 1 }, + { "px": [32,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1058], "a": 1 }, + { "px": [48,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1059], "a": 1 }, + { "px": [80,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1061], "a": 1 }, + { "px": [96,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1062], "a": 1 }, + { "px": [112,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1063], "a": 1 }, + { "px": [128,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1064], "a": 1 }, + { "px": [144,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1065], "a": 1 }, + { "px": [160,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1066], "a": 1 }, + { "px": [176,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1067], "a": 1 }, + { "px": [208,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1069], "a": 1 }, + { "px": [544,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1090], "a": 1 }, + { "px": [560,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1091], "a": 1 }, + { "px": [576,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1092], "a": 1 }, + { "px": [592,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1093], "a": 1 }, + { "px": [624,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1095], "a": 1 }, + { "px": [656,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1097], "a": 1 }, + { "px": [672,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1098], "a": 1 }, + { "px": [688,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1099], "a": 1 }, + { "px": [720,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1101], "a": 1 }, + { "px": [752,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1103], "a": 1 }, + { "px": [0,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1104], "a": 1 }, + { "px": [16,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1105], "a": 1 }, + { "px": [32,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1106], "a": 1 }, + { "px": [64,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1108], "a": 1 }, + { "px": [80,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1109], "a": 1 }, + { "px": [96,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1110], "a": 1 }, + { "px": [128,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1112], "a": 1 }, + { "px": [160,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1114], "a": 1 }, + { "px": [192,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1116], "a": 1 }, + { "px": [208,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1117], "a": 1 }, + { "px": [544,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1138], "a": 1 }, + { "px": [560,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1139], "a": 1 }, + { "px": [576,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1140], "a": 1 }, + { "px": [592,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1141], "a": 1 }, + { "px": [608,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1142], "a": 1 }, + { "px": [640,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1144], "a": 1 }, + { "px": [656,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1145], "a": 1 }, + { "px": [672,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1146], "a": 1 }, + { "px": [688,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1147], "a": 1 }, + { "px": [704,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1148], "a": 1 }, + { "px": [736,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1150], "a": 1 }, + { "px": [752,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1151], "a": 1 }, + { "px": [16,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1153], "a": 1 }, + { "px": [32,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1154], "a": 1 }, + { "px": [48,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1155], "a": 1 }, + { "px": [64,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1156], "a": 1 }, + { "px": [80,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1157], "a": 1 }, + { "px": [112,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1159], "a": 1 }, + { "px": [128,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1160], "a": 1 }, + { "px": [144,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1161], "a": 1 }, + { "px": [176,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1163], "a": 1 }, + { "px": [192,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1164], "a": 1 }, + { "px": [208,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1165], "a": 1 }, + { "px": [560,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1187], "a": 1 }, + { "px": [576,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1188], "a": 1 }, + { "px": [592,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1189], "a": 1 }, + { "px": [608,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1190], "a": 1 }, + { "px": [624,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1191], "a": 1 }, + { "px": [656,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1193], "a": 1 }, + { "px": [688,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1195], "a": 1 }, + { "px": [720,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1197], "a": 1 }, + { "px": [752,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1199], "a": 1 }, + { "px": [0,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1200], "a": 1 }, + { "px": [16,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1201], "a": 1 }, + { "px": [32,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1202], "a": 1 }, + { "px": [48,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1203], "a": 1 }, + { "px": [64,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1204], "a": 1 }, + { "px": [80,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1205], "a": 1 }, + { "px": [96,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1206], "a": 1 }, + { "px": [112,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1207], "a": 1 }, + { "px": [128,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1208], "a": 1 }, + { "px": [144,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1209], "a": 1 }, + { "px": [160,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1210], "a": 1 }, + { "px": [176,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1211], "a": 1 }, + { "px": [192,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1212], "a": 1 }, + { "px": [208,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1213], "a": 1 }, + { "px": [544,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1234], "a": 1 }, + { "px": [576,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1236], "a": 1 }, + { "px": [592,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1237], "a": 1 }, + { "px": [608,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1238], "a": 1 }, + { "px": [624,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1239], "a": 1 }, + { "px": [640,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1240], "a": 1 }, + { "px": [672,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1242], "a": 1 }, + { "px": [704,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1244], "a": 1 }, + { "px": [736,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1246], "a": 1 }, + { "px": [0,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1248], "a": 1 }, + { "px": [16,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1249], "a": 1 }, + { "px": [48,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1251], "a": 1 }, + { "px": [80,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1253], "a": 1 }, + { "px": [96,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1254], "a": 1 }, + { "px": [112,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1255], "a": 1 }, + { "px": [128,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1256], "a": 1 }, + { "px": [144,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1257], "a": 1 }, + { "px": [160,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1258], "a": 1 }, + { "px": [176,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1259], "a": 1 }, + { "px": [192,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1260], "a": 1 }, + { "px": [208,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1261], "a": 1 }, + { "px": [560,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1283], "a": 1 }, + { "px": [576,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1284], "a": 1 }, + { "px": [592,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1285], "a": 1 }, + { "px": [608,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1286], "a": 1 }, + { "px": [624,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1287], "a": 1 }, + { "px": [640,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1288], "a": 1 }, + { "px": [656,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1289], "a": 1 }, + { "px": [672,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1290], "a": 1 }, + { "px": [688,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1291], "a": 1 }, + { "px": [704,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1292], "a": 1 }, + { "px": [720,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1293], "a": 1 }, + { "px": [752,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1295], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1296], "a": 1 }, + { "px": [16,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1297], "a": 1 }, + { "px": [32,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1298], "a": 1 }, + { "px": [64,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1300], "a": 1 }, + { "px": [96,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1302], "a": 1 }, + { "px": [112,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1303], "a": 1 }, + { "px": [128,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1304], "a": 1 }, + { "px": [144,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1305], "a": 1 }, + { "px": [160,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1306], "a": 1 }, + { "px": [176,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1307], "a": 1 }, + { "px": [192,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1308], "a": 1 }, + { "px": [208,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1309], "a": 1 }, + { "px": [544,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1330], "a": 1 }, + { "px": [576,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1332], "a": 1 }, + { "px": [592,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1333], "a": 1 }, + { "px": [608,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1334], "a": 1 }, + { "px": [624,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1335], "a": 1 }, + { "px": [640,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1336], "a": 1 }, + { "px": [656,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1337], "a": 1 }, + { "px": [672,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1338], "a": 1 }, + { "px": [688,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1339], "a": 1 }, + { "px": [704,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1340], "a": 1 }, + { "px": [736,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1342], "a": 1 }, + { "px": [0,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1344], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1345], "a": 1 }, + { "px": [48,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1347], "a": 1 }, + { "px": [80,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1349], "a": 1 }, + { "px": [112,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1351], "a": 1 }, + { "px": [128,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1352], "a": 1 }, + { "px": [144,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1353], "a": 1 }, + { "px": [160,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1354], "a": 1 }, + { "px": [176,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1355], "a": 1 }, + { "px": [192,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1356], "a": 1 }, + { "px": [208,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1357], "a": 1 }, + { "px": [544,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1378], "a": 1 }, + { "px": [560,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1379], "a": 1 }, + { "px": [576,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1380], "a": 1 }, + { "px": [592,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1381], "a": 1 }, + { "px": [608,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1382], "a": 1 }, + { "px": [624,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1383], "a": 1 }, + { "px": [640,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1384], "a": 1 }, + { "px": [656,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1385], "a": 1 }, + { "px": [672,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1386], "a": 1 }, + { "px": [688,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1387], "a": 1 }, + { "px": [704,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1388], "a": 1 }, + { "px": [720,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1389], "a": 1 }, + { "px": [736,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1390], "a": 1 }, + { "px": [752,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1391], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1392], "a": 1 }, + { "px": [16,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1393], "a": 1 }, + { "px": [32,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1394], "a": 1 }, + { "px": [64,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1396], "a": 1 }, + { "px": [96,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1398], "a": 1 }, + { "px": [112,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1399], "a": 1 }, + { "px": [128,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1400], "a": 1 }, + { "px": [144,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1401], "a": 1 }, + { "px": [160,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1402], "a": 1 }, + { "px": [192,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1404], "a": 1 }, + { "px": [208,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1405], "a": 1 }, + { "px": [224,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1406], "a": 1 }, + { "px": [240,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1407], "a": 1 }, + { "px": [256,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1408], "a": 1 }, + { "px": [544,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1426], "a": 1 }, + { "px": [576,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1428], "a": 1 }, + { "px": [592,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1429], "a": 1 }, + { "px": [608,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1430], "a": 1 }, + { "px": [624,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1431], "a": 1 }, + { "px": [640,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1432], "a": 1 }, + { "px": [656,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1433], "a": 1 }, + { "px": [672,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1434], "a": 1 }, + { "px": [688,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1435], "a": 1 }, + { "px": [704,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1436], "a": 1 }, + { "px": [736,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1438], "a": 1 }, + { "px": [16,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1441], "a": 1 }, + { "px": [48,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1443], "a": 1 }, + { "px": [80,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1445], "a": 1 }, + { "px": [96,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1446], "a": 1 }, + { "px": [112,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1447], "a": 1 }, + { "px": [144,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1449], "a": 1 }, + { "px": [176,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1451], "a": 1 }, + { "px": [192,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1452], "a": 1 }, + { "px": [208,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1453], "a": 1 }, + { "px": [224,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1454], "a": 1 }, + { "px": [240,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1455], "a": 1 }, + { "px": [256,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1456], "a": 1 }, + { "px": [544,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1474], "a": 1 }, + { "px": [560,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1475], "a": 1 }, + { "px": [592,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1477], "a": 1 }, + { "px": [608,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1478], "a": 1 }, + { "px": [624,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1479], "a": 1 }, + { "px": [656,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1481], "a": 1 }, + { "px": [672,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1482], "a": 1 }, + { "px": [688,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1483], "a": 1 }, + { "px": [704,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1484], "a": 1 }, + { "px": [720,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1485], "a": 1 }, + { "px": [736,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1486], "a": 1 }, + { "px": [752,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1487], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1488], "a": 1 }, + { "px": [16,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1489], "a": 1 }, + { "px": [32,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1490], "a": 1 }, + { "px": [64,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1492], "a": 1 }, + { "px": [96,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1494], "a": 1 }, + { "px": [112,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1495], "a": 1 }, + { "px": [128,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1496], "a": 1 }, + { "px": [144,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1497], "a": 1 }, + { "px": [160,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1498], "a": 1 }, + { "px": [176,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1499], "a": 1 }, + { "px": [192,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1500], "a": 1 }, + { "px": [208,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1501], "a": 1 }, + { "px": [224,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1502], "a": 1 }, + { "px": [240,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1503], "a": 1 }, + { "px": [256,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1504], "a": 1 }, + { "px": [544,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1522], "a": 1 }, + { "px": [560,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1523], "a": 1 }, + { "px": [576,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1524], "a": 1 }, + { "px": [592,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1525], "a": 1 }, + { "px": [608,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1526], "a": 1 }, + { "px": [624,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1527], "a": 1 }, + { "px": [640,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1528], "a": 1 }, + { "px": [656,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1529], "a": 1 }, + { "px": [672,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1530], "a": 1 }, + { "px": [704,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1532], "a": 1 }, + { "px": [720,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1533], "a": 1 }, + { "px": [736,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1534], "a": 1 }, + { "px": [752,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1535], "a": 1 }, + { "px": [16,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1537], "a": 1 }, + { "px": [48,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1539], "a": 1 }, + { "px": [64,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1540], "a": 1 }, + { "px": [80,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1541], "a": 1 }, + { "px": [96,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1542], "a": 1 }, + { "px": [112,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1543], "a": 1 }, + { "px": [128,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1544], "a": 1 }, + { "px": [144,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1545], "a": 1 }, + { "px": [160,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1546], "a": 1 }, + { "px": [176,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1547], "a": 1 }, + { "px": [192,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1548], "a": 1 }, + { "px": [208,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1549], "a": 1 }, + { "px": [224,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1550], "a": 1 }, + { "px": [240,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1551], "a": 1 }, + { "px": [256,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1552], "a": 1 }, + { "px": [272,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1553], "a": 1 }, + { "px": [304,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1555], "a": 1 }, + { "px": [336,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1557], "a": 1 }, + { "px": [368,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1559], "a": 1 }, + { "px": [384,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1560], "a": 1 }, + { "px": [400,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1561], "a": 1 }, + { "px": [416,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1562], "a": 1 }, + { "px": [432,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1563], "a": 1 }, + { "px": [448,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1564], "a": 1 }, + { "px": [464,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1565], "a": 1 }, + { "px": [480,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1566], "a": 1 }, + { "px": [496,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1567], "a": 1 }, + { "px": [512,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1568], "a": 1 }, + { "px": [528,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1569], "a": 1 }, + { "px": [544,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1570], "a": 1 }, + { "px": [560,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1571], "a": 1 }, + { "px": [576,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1572], "a": 1 }, + { "px": [592,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1573], "a": 1 }, + { "px": [608,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1574], "a": 1 }, + { "px": [624,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1575], "a": 1 }, + { "px": [656,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1577], "a": 1 }, + { "px": [688,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1579], "a": 1 }, + { "px": [720,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1581], "a": 1 }, + { "px": [752,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1583], "a": 1 }, + { "px": [0,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1584], "a": 1 }, + { "px": [32,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1586], "a": 1 }, + { "px": [64,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1588], "a": 1 }, + { "px": [80,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1589], "a": 1 }, + { "px": [96,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1590], "a": 1 }, + { "px": [112,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1591], "a": 1 }, + { "px": [128,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1592], "a": 1 }, + { "px": [144,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1593], "a": 1 }, + { "px": [160,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1594], "a": 1 }, + { "px": [192,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1596], "a": 1 }, + { "px": [208,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1597], "a": 1 }, + { "px": [224,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1598], "a": 1 }, + { "px": [256,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1600], "a": 1 }, + { "px": [288,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1602], "a": 1 }, + { "px": [320,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1604], "a": 1 }, + { "px": [336,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1605], "a": 1 }, + { "px": [352,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1606], "a": 1 }, + { "px": [368,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1607], "a": 1 }, + { "px": [384,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1608], "a": 1 }, + { "px": [400,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1609], "a": 1 }, + { "px": [416,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1610], "a": 1 }, + { "px": [432,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1611], "a": 1 }, + { "px": [448,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1612], "a": 1 }, + { "px": [464,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1613], "a": 1 }, + { "px": [480,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1614], "a": 1 }, + { "px": [496,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1615], "a": 1 }, + { "px": [512,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1616], "a": 1 }, + { "px": [528,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1617], "a": 1 }, + { "px": [544,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1618], "a": 1 }, + { "px": [576,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1620], "a": 1 }, + { "px": [592,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1621], "a": 1 }, + { "px": [608,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1622], "a": 1 }, + { "px": [624,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1623], "a": 1 }, + { "px": [640,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1624], "a": 1 }, + { "px": [672,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1626], "a": 1 }, + { "px": [688,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1627], "a": 1 }, + { "px": [704,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1628], "a": 1 }, + { "px": [720,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1629], "a": 1 }, + { "px": [736,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1630], "a": 1 }, + { "px": [0,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1632], "a": 1 }, + { "px": [16,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1633], "a": 1 }, + { "px": [48,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1635], "a": 1 }, + { "px": [64,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1636], "a": 1 }, + { "px": [80,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1637], "a": 1 }, + { "px": [96,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1638], "a": 1 }, + { "px": [112,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1639], "a": 1 }, + { "px": [144,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1641], "a": 1 }, + { "px": [176,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1643], "a": 1 }, + { "px": [208,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1645], "a": 1 }, + { "px": [240,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1647], "a": 1 }, + { "px": [272,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1649], "a": 1 }, + { "px": [304,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1651], "a": 1 }, + { "px": [336,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1653], "a": 1 }, + { "px": [368,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1655], "a": 1 }, + { "px": [384,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1656], "a": 1 }, + { "px": [400,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1657], "a": 1 }, + { "px": [432,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1659], "a": 1 }, + { "px": [448,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1660], "a": 1 }, + { "px": [464,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1661], "a": 1 }, + { "px": [496,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1663], "a": 1 }, + { "px": [512,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1664], "a": 1 }, + { "px": [528,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1665], "a": 1 }, + { "px": [560,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1667], "a": 1 }, + { "px": [592,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1669], "a": 1 }, + { "px": [608,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1670], "a": 1 }, + { "px": [624,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1671], "a": 1 }, + { "px": [640,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1672], "a": 1 }, + { "px": [656,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1673], "a": 1 }, + { "px": [672,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1674], "a": 1 }, + { "px": [688,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1675], "a": 1 }, + { "px": [704,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1676], "a": 1 }, + { "px": [720,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1677], "a": 1 }, + { "px": [752,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1679], "a": 1 }, + { "px": [0,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1680], "a": 1 }, + { "px": [32,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1682], "a": 1 }, + { "px": [48,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1683], "a": 1 }, + { "px": [64,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1684], "a": 1 }, + { "px": [96,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1686], "a": 1 }, + { "px": [112,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1687], "a": 1 }, + { "px": [128,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1688], "a": 1 }, + { "px": [160,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1690], "a": 1 }, + { "px": [176,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1691], "a": 1 }, + { "px": [192,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1692], "a": 1 }, + { "px": [208,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1693], "a": 1 }, + { "px": [224,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1694], "a": 1 }, + { "px": [256,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1696], "a": 1 }, + { "px": [272,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1697], "a": 1 }, + { "px": [288,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1698], "a": 1 }, + { "px": [304,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1699], "a": 1 }, + { "px": [320,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1700], "a": 1 }, + { "px": [352,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1702], "a": 1 }, + { "px": [368,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1703], "a": 1 }, + { "px": [384,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1704], "a": 1 }, + { "px": [400,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1705], "a": 1 }, + { "px": [416,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1706], "a": 1 }, + { "px": [448,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1708], "a": 1 }, + { "px": [464,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1709], "a": 1 }, + { "px": [480,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1710], "a": 1 }, + { "px": [512,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1712], "a": 1 }, + { "px": [544,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1714], "a": 1 }, + { "px": [576,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1716], "a": 1 }, + { "px": [608,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1718], "a": 1 }, + { "px": [640,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1720], "a": 1 }, + { "px": [656,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1721], "a": 1 }, + { "px": [672,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1722], "a": 1 }, + { "px": [704,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1724], "a": 1 }, + { "px": [736,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1726], "a": 1 }, + { "px": [0,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1728], "a": 1 }, + { "px": [16,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1729], "a": 1 }, + { "px": [48,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1731], "a": 1 }, + { "px": [64,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1732], "a": 1 }, + { "px": [80,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1733], "a": 1 }, + { "px": [112,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1735], "a": 1 }, + { "px": [144,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1737], "a": 1 }, + { "px": [160,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1738], "a": 1 }, + { "px": [176,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1739], "a": 1 }, + { "px": [192,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1740], "a": 1 }, + { "px": [208,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1741], "a": 1 }, + { "px": [224,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1742], "a": 1 }, + { "px": [240,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1743], "a": 1 }, + { "px": [256,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1744], "a": 1 }, + { "px": [272,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1745], "a": 1 }, + { "px": [288,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1746], "a": 1 }, + { "px": [304,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1747], "a": 1 }, + { "px": [320,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1748], "a": 1 }, + { "px": [336,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1749], "a": 1 }, + { "px": [352,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1750], "a": 1 }, + { "px": [368,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1751], "a": 1 }, + { "px": [400,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1753], "a": 1 }, + { "px": [432,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1755], "a": 1 }, + { "px": [464,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1757], "a": 1 }, + { "px": [496,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1759], "a": 1 }, + { "px": [512,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1760], "a": 1 }, + { "px": [528,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1761], "a": 1 }, + { "px": [544,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1762], "a": 1 }, + { "px": [560,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1763], "a": 1 }, + { "px": [576,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1764], "a": 1 }, + { "px": [592,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1765], "a": 1 }, + { "px": [624,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1767], "a": 1 }, + { "px": [640,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1768], "a": 1 }, + { "px": [656,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1769], "a": 1 }, + { "px": [672,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1770], "a": 1 }, + { "px": [688,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1771], "a": 1 }, + { "px": [704,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1772], "a": 1 }, + { "px": [720,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1773], "a": 1 }, + { "px": [736,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1774], "a": 1 }, + { "px": [752,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1775], "a": 1 }, + { "px": [0,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1776], "a": 1 }, + { "px": [16,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1777], "a": 1 }, + { "px": [32,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1778], "a": 1 }, + { "px": [64,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1780], "a": 1 }, + { "px": [96,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1782], "a": 1 }, + { "px": [112,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1783], "a": 1 }, + { "px": [128,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1784], "a": 1 }, + { "px": [144,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1785], "a": 1 }, + { "px": [160,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1786], "a": 1 }, + { "px": [176,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1787], "a": 1 }, + { "px": [192,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1788], "a": 1 }, + { "px": [208,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1789], "a": 1 }, + { "px": [224,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1790], "a": 1 }, + { "px": [240,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1791], "a": 1 }, + { "px": [256,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1792], "a": 1 }, + { "px": [288,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1794], "a": 1 }, + { "px": [304,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1795], "a": 1 }, + { "px": [320,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1796], "a": 1 }, + { "px": [336,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1797], "a": 1 }, + { "px": [352,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1798], "a": 1 }, + { "px": [368,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1799], "a": 1 }, + { "px": [384,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1800], "a": 1 }, + { "px": [416,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1802], "a": 1 }, + { "px": [448,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1804], "a": 1 }, + { "px": [480,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1806], "a": 1 }, + { "px": [512,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1808], "a": 1 }, + { "px": [544,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1810], "a": 1 }, + { "px": [576,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1812], "a": 1 }, + { "px": [592,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1813], "a": 1 }, + { "px": [608,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1814], "a": 1 }, + { "px": [624,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1815], "a": 1 }, + { "px": [640,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1816], "a": 1 }, + { "px": [672,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1818], "a": 1 }, + { "px": [704,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1820], "a": 1 }, + { "px": [720,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1821], "a": 1 }, + { "px": [736,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1822], "a": 1 }, + { "px": [752,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1823], "a": 1 }, + { "px": [0,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1824], "a": 1 }, + { "px": [16,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1825], "a": 1 }, + { "px": [32,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1826], "a": 1 }, + { "px": [48,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1827], "a": 1 }, + { "px": [80,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1829], "a": 1 }, + { "px": [112,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1831], "a": 1 }, + { "px": [144,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1833], "a": 1 }, + { "px": [160,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1834], "a": 1 }, + { "px": [176,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1835], "a": 1 }, + { "px": [192,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1836], "a": 1 }, + { "px": [208,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1837], "a": 1 }, + { "px": [224,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1838], "a": 1 }, + { "px": [240,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1839], "a": 1 }, + { "px": [256,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1840], "a": 1 }, + { "px": [272,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1841], "a": 1 }, + { "px": [288,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1842], "a": 1 }, + { "px": [304,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1843], "a": 1 }, + { "px": [320,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1844], "a": 1 }, + { "px": [336,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1845], "a": 1 }, + { "px": [352,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1846], "a": 1 }, + { "px": [368,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1847], "a": 1 }, + { "px": [384,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1848], "a": 1 }, + { "px": [400,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1849], "a": 1 }, + { "px": [416,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1850], "a": 1 }, + { "px": [432,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1851], "a": 1 }, + { "px": [448,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1852], "a": 1 }, + { "px": [464,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1853], "a": 1 }, + { "px": [496,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1855], "a": 1 }, + { "px": [528,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1857], "a": 1 }, + { "px": [544,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1858], "a": 1 }, + { "px": [560,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1859], "a": 1 }, + { "px": [576,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1860], "a": 1 }, + { "px": [592,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1861], "a": 1 }, + { "px": [624,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1863], "a": 1 }, + { "px": [656,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1865], "a": 1 }, + { "px": [688,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1867], "a": 1 }, + { "px": [704,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1868], "a": 1 }, + { "px": [720,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1869], "a": 1 }, + { "px": [736,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1870], "a": 1 }, + { "px": [752,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1871], "a": 1 }, + { "px": [0,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1872], "a": 1 }, + { "px": [16,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1873], "a": 1 }, + { "px": [32,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1874], "a": 1 }, + { "px": [48,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1875], "a": 1 }, + { "px": [64,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1876], "a": 1 }, + { "px": [96,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1878], "a": 1 }, + { "px": [128,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1880], "a": 1 }, + { "px": [160,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1882], "a": 1 }, + { "px": [176,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1883], "a": 1 }, + { "px": [192,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1884], "a": 1 }, + { "px": [208,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1885], "a": 1 }, + { "px": [224,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1886], "a": 1 }, + { "px": [256,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1888], "a": 1 }, + { "px": [288,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1890], "a": 1 }, + { "px": [304,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1891], "a": 1 }, + { "px": [320,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1892], "a": 1 }, + { "px": [336,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1893], "a": 1 }, + { "px": [352,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1894], "a": 1 }, + { "px": [368,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1895], "a": 1 }, + { "px": [384,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1896], "a": 1 }, + { "px": [416,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1898], "a": 1 }, + { "px": [432,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1899], "a": 1 }, + { "px": [448,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1900], "a": 1 }, + { "px": [480,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1902], "a": 1 }, + { "px": [496,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1903], "a": 1 }, + { "px": [512,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1904], "a": 1 }, + { "px": [544,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1906], "a": 1 }, + { "px": [560,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1907], "a": 1 }, + { "px": [576,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1908], "a": 1 }, + { "px": [608,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1910], "a": 1 }, + { "px": [624,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1911], "a": 1 }, + { "px": [640,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1912], "a": 1 }, + { "px": [672,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1914], "a": 1 }, + { "px": [704,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1916], "a": 1 }, + { "px": [736,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1918], "a": 1 }, + { "px": [752,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1919], "a": 1 }, + { "px": [16,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1921], "a": 1 }, + { "px": [48,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1923], "a": 1 }, + { "px": [64,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1924], "a": 1 }, + { "px": [80,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1925], "a": 1 }, + { "px": [96,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1926], "a": 1 }, + { "px": [112,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1927], "a": 1 }, + { "px": [144,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1929], "a": 1 }, + { "px": [160,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1930], "a": 1 }, + { "px": [176,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1931], "a": 1 }, + { "px": [192,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1932], "a": 1 }, + { "px": [208,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1933], "a": 1 }, + { "px": [240,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1935], "a": 1 }, + { "px": [256,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1936], "a": 1 }, + { "px": [272,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1937], "a": 1 }, + { "px": [304,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1939], "a": 1 }, + { "px": [336,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1941], "a": 1 }, + { "px": [352,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1942], "a": 1 }, + { "px": [368,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1943], "a": 1 }, + { "px": [384,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1944], "a": 1 }, + { "px": [400,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1945], "a": 1 }, + { "px": [432,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1947], "a": 1 }, + { "px": [448,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1948], "a": 1 }, + { "px": [464,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1949], "a": 1 }, + { "px": [496,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1951], "a": 1 }, + { "px": [528,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1953], "a": 1 }, + { "px": [544,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1954], "a": 1 }, + { "px": [560,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1955], "a": 1 }, + { "px": [592,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1957], "a": 1 }, + { "px": [608,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1958], "a": 1 }, + { "px": [624,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1959], "a": 1 }, + { "px": [656,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1961], "a": 1 }, + { "px": [688,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1963], "a": 1 }, + { "px": [720,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1965], "a": 1 }, + { "px": [736,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1966], "a": 1 }, + { "px": [752,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1967], "a": 1 }, + { "px": [0,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1968], "a": 1 }, + { "px": [16,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1969], "a": 1 }, + { "px": [32,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1970], "a": 1 }, + { "px": [48,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1971], "a": 1 }, + { "px": [64,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1972], "a": 1 }, + { "px": [80,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1973], "a": 1 }, + { "px": [96,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1974], "a": 1 }, + { "px": [128,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1976], "a": 1 }, + { "px": [144,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1977], "a": 1 }, + { "px": [160,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1978], "a": 1 }, + { "px": [176,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1979], "a": 1 }, + { "px": [192,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1980], "a": 1 }, + { "px": [208,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1981], "a": 1 }, + { "px": [224,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1982], "a": 1 }, + { "px": [240,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1983], "a": 1 }, + { "px": [256,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1984], "a": 1 }, + { "px": [288,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1986], "a": 1 }, + { "px": [320,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1988], "a": 1 }, + { "px": [336,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1989], "a": 1 }, + { "px": [352,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1990], "a": 1 }, + { "px": [368,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1991], "a": 1 }, + { "px": [384,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1992], "a": 1 }, + { "px": [400,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1993], "a": 1 }, + { "px": [416,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1994], "a": 1 }, + { "px": [432,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1995], "a": 1 }, + { "px": [448,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1996], "a": 1 }, + { "px": [464,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1997], "a": 1 }, + { "px": [480,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1998], "a": 1 }, + { "px": [496,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1999], "a": 1 }, + { "px": [512,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2000], "a": 1 }, + { "px": [544,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2002], "a": 1 }, + { "px": [560,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2003], "a": 1 }, + { "px": [576,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2004], "a": 1 }, + { "px": [592,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2005], "a": 1 }, + { "px": [608,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2006], "a": 1 }, + { "px": [624,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2007], "a": 1 }, + { "px": [640,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2008], "a": 1 }, + { "px": [656,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2009], "a": 1 }, + { "px": [672,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2010], "a": 1 }, + { "px": [688,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2011], "a": 1 }, + { "px": [704,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2012], "a": 1 }, + { "px": [720,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2013], "a": 1 }, + { "px": [736,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2014], "a": 1 }, + { "px": [752,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2015], "a": 1 }, + { "px": [0,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2016], "a": 1 }, + { "px": [16,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2017], "a": 1 }, + { "px": [32,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2018], "a": 1 }, + { "px": [48,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2019], "a": 1 }, + { "px": [64,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2020], "a": 1 }, + { "px": [80,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2021], "a": 1 }, + { "px": [112,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2023], "a": 1 }, + { "px": [144,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2025], "a": 1 }, + { "px": [160,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2026], "a": 1 }, + { "px": [176,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2027], "a": 1 }, + { "px": [192,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2028], "a": 1 }, + { "px": [208,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2029], "a": 1 }, + { "px": [224,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2030], "a": 1 }, + { "px": [240,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2031], "a": 1 }, + { "px": [256,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2032], "a": 1 }, + { "px": [272,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2033], "a": 1 }, + { "px": [304,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2035], "a": 1 }, + { "px": [336,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2037], "a": 1 }, + { "px": [368,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2039], "a": 1 }, + { "px": [384,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2040], "a": 1 }, + { "px": [400,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2041], "a": 1 }, + { "px": [416,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2042], "a": 1 }, + { "px": [432,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2043], "a": 1 }, + { "px": [448,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2044], "a": 1 }, + { "px": [464,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2045], "a": 1 }, + { "px": [480,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2046], "a": 1 }, + { "px": [496,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2047], "a": 1 }, + { "px": [512,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2048], "a": 1 }, + { "px": [528,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2049], "a": 1 }, + { "px": [544,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2050], "a": 1 }, + { "px": [560,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2051], "a": 1 }, + { "px": [576,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2052], "a": 1 }, + { "px": [592,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2053], "a": 1 }, + { "px": [608,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2054], "a": 1 }, + { "px": [624,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2055], "a": 1 }, + { "px": [640,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2056], "a": 1 }, + { "px": [656,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2057], "a": 1 }, + { "px": [672,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2058], "a": 1 }, + { "px": [688,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2059], "a": 1 }, + { "px": [720,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2061], "a": 1 }, + { "px": [736,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2062], "a": 1 }, + { "px": [752,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2063], "a": 1 }, + { "px": [0,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2064], "a": 1 }, + { "px": [16,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2065], "a": 1 }, + { "px": [32,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2066], "a": 1 }, + { "px": [48,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2067], "a": 1 }, + { "px": [64,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2068], "a": 1 }, + { "px": [80,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2069], "a": 1 }, + { "px": [96,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2070], "a": 1 }, + { "px": [112,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2071], "a": 1 }, + { "px": [128,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2072], "a": 1 }, + { "px": [144,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2073], "a": 1 }, + { "px": [160,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2074], "a": 1 }, + { "px": [192,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2076], "a": 1 }, + { "px": [208,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2077], "a": 1 }, + { "px": [224,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2078], "a": 1 }, + { "px": [240,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2079], "a": 1 }, + { "px": [256,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2080], "a": 1 }, + { "px": [288,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2082], "a": 1 }, + { "px": [320,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2084], "a": 1 }, + { "px": [336,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2085], "a": 1 }, + { "px": [352,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2086], "a": 1 }, + { "px": [368,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2087], "a": 1 }, + { "px": [384,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2088], "a": 1 }, + { "px": [400,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2089], "a": 1 }, + { "px": [416,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2090], "a": 1 }, + { "px": [432,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2091], "a": 1 }, + { "px": [448,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2092], "a": 1 }, + { "px": [464,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2093], "a": 1 }, + { "px": [480,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2094], "a": 1 }, + { "px": [496,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2095], "a": 1 }, + { "px": [512,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2096], "a": 1 }, + { "px": [528,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2097], "a": 1 }, + { "px": [544,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2098], "a": 1 }, + { "px": [560,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2099], "a": 1 }, + { "px": [576,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2100], "a": 1 }, + { "px": [592,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2101], "a": 1 }, + { "px": [608,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2102], "a": 1 }, + { "px": [624,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2103], "a": 1 }, + { "px": [640,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2104], "a": 1 }, + { "px": [656,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2105], "a": 1 }, + { "px": [672,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2106], "a": 1 }, + { "px": [688,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2107], "a": 1 }, + { "px": [704,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2108], "a": 1 }, + { "px": [736,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2110], "a": 1 }, + { "px": [752,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2111], "a": 1 }, + { "px": [0,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2112], "a": 1 }, + { "px": [16,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2113], "a": 1 }, + { "px": [32,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2114], "a": 1 }, + { "px": [48,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2115], "a": 1 }, + { "px": [64,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2116], "a": 1 }, + { "px": [80,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2117], "a": 1 }, + { "px": [96,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2118], "a": 1 }, + { "px": [112,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2119], "a": 1 }, + { "px": [128,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2120], "a": 1 }, + { "px": [144,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2121], "a": 1 }, + { "px": [176,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2123], "a": 1 }, + { "px": [192,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2124], "a": 1 }, + { "px": [208,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2125], "a": 1 }, + { "px": [224,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2126], "a": 1 }, + { "px": [240,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2127], "a": 1 }, + { "px": [272,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2129], "a": 1 }, + { "px": [288,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2130], "a": 1 }, + { "px": [304,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2131], "a": 1 }, + { "px": [320,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2132], "a": 1 }, + { "px": [336,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2133], "a": 1 }, + { "px": [352,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2134], "a": 1 }, + { "px": [368,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2135], "a": 1 }, + { "px": [384,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2136], "a": 1 }, + { "px": [400,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2137], "a": 1 }, + { "px": [416,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2138], "a": 1 }, + { "px": [432,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2139], "a": 1 }, + { "px": [448,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2140], "a": 1 }, + { "px": [464,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2141], "a": 1 }, + { "px": [480,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2142], "a": 1 }, + { "px": [496,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2143], "a": 1 }, + { "px": [512,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2144], "a": 1 }, + { "px": [528,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2145], "a": 1 }, + { "px": [544,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2146], "a": 1 }, + { "px": [560,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2147], "a": 1 }, + { "px": [576,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2148], "a": 1 }, + { "px": [592,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2149], "a": 1 }, + { "px": [608,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2150], "a": 1 }, + { "px": [624,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2151], "a": 1 }, + { "px": [640,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2152], "a": 1 }, + { "px": [656,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2153], "a": 1 }, + { "px": [672,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2154], "a": 1 }, + { "px": [688,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2155], "a": 1 }, + { "px": [720,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2157], "a": 1 }, + { "px": [736,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2158], "a": 1 }, + { "px": [752,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2159], "a": 1 }, + { "px": [0,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2160], "a": 1 }, + { "px": [16,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2161], "a": 1 }, + { "px": [32,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2162], "a": 1 }, + { "px": [64,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2164], "a": 1 }, + { "px": [80,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2165], "a": 1 }, + { "px": [96,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2166], "a": 1 }, + { "px": [112,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2167], "a": 1 }, + { "px": [128,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2168], "a": 1 }, + { "px": [160,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2170], "a": 1 }, + { "px": [176,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2171], "a": 1 }, + { "px": [192,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2172], "a": 1 }, + { "px": [208,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2173], "a": 1 }, + { "px": [224,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2174], "a": 1 }, + { "px": [256,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2176], "a": 1 }, + { "px": [288,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2178], "a": 1 }, + { "px": [320,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2180], "a": 1 }, + { "px": [336,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2181], "a": 1 }, + { "px": [352,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2182], "a": 1 }, + { "px": [368,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2183], "a": 1 }, + { "px": [384,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2184], "a": 1 }, + { "px": [400,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2185], "a": 1 }, + { "px": [416,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2186], "a": 1 }, + { "px": [448,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2188], "a": 1 }, + { "px": [480,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2190], "a": 1 }, + { "px": [496,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2191], "a": 1 }, + { "px": [512,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2192], "a": 1 }, + { "px": [528,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2193], "a": 1 }, + { "px": [544,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2194], "a": 1 }, + { "px": [576,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2196], "a": 1 }, + { "px": [608,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2198], "a": 1 }, + { "px": [624,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2199], "a": 1 }, + { "px": [640,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2200], "a": 1 }, + { "px": [656,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2201], "a": 1 }, + { "px": [672,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2202], "a": 1 }, + { "px": [688,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2203], "a": 1 }, + { "px": [704,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2204], "a": 1 }, + { "px": [736,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2206], "a": 1 }, + { "px": [16,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2209], "a": 1 }, + { "px": [32,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2210], "a": 1 }, + { "px": [48,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2211], "a": 1 }, + { "px": [80,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2213], "a": 1 }, + { "px": [96,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2214], "a": 1 }, + { "px": [112,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2215], "a": 1 }, + { "px": [128,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2216], "a": 1 }, + { "px": [144,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2217], "a": 1 }, + { "px": [160,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2218], "a": 1 }, + { "px": [176,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2219], "a": 1 }, + { "px": [192,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2220], "a": 1 }, + { "px": [208,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2221], "a": 1 }, + { "px": [224,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2222], "a": 1 }, + { "px": [240,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2223], "a": 1 }, + { "px": [272,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2225], "a": 1 }, + { "px": [304,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2227], "a": 1 }, + { "px": [320,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2228], "a": 1 }, + { "px": [336,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2229], "a": 1 }, + { "px": [352,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2230], "a": 1 }, + { "px": [368,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2231], "a": 1 }, + { "px": [384,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2232], "a": 1 }, + { "px": [400,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2233], "a": 1 }, + { "px": [432,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2235], "a": 1 }, + { "px": [448,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2236], "a": 1 }, + { "px": [464,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2237], "a": 1 }, + { "px": [496,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2239], "a": 1 }, + { "px": [512,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2240], "a": 1 }, + { "px": [528,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2241], "a": 1 }, + { "px": [544,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2242], "a": 1 }, + { "px": [560,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2243], "a": 1 }, + { "px": [592,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2245], "a": 1 }, + { "px": [624,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2247], "a": 1 }, + { "px": [656,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2249], "a": 1 }, + { "px": [688,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2251], "a": 1 }, + { "px": [704,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2252], "a": 1 }, + { "px": [720,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2253], "a": 1 }, + { "px": [752,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2255], "a": 1 }, + { "px": [0,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2256], "a": 1 }, + { "px": [32,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2258], "a": 1 }, + { "px": [48,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2259], "a": 1 }, + { "px": [64,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2260], "a": 1 }, + { "px": [96,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2262], "a": 1 }, + { "px": [112,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2263], "a": 1 }, + { "px": [128,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2264], "a": 1 }, + { "px": [144,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2265], "a": 1 }, + { "px": [160,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2266], "a": 1 }, + { "px": [176,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2267], "a": 1 }, + { "px": [192,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2268], "a": 1 }, + { "px": [208,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2269], "a": 1 }, + { "px": [224,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2270], "a": 1 }, + { "px": [240,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2271], "a": 1 }, + { "px": [256,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2272], "a": 1 }, + { "px": [272,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2273], "a": 1 }, + { "px": [288,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2274], "a": 1 }, + { "px": [304,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2275], "a": 1 }, + { "px": [320,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2276], "a": 1 }, + { "px": [336,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2277], "a": 1 }, + { "px": [352,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2278], "a": 1 }, + { "px": [368,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2279], "a": 1 }, + { "px": [384,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2280], "a": 1 }, + { "px": [400,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2281], "a": 1 }, + { "px": [416,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2282], "a": 1 }, + { "px": [432,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2283], "a": 1 }, + { "px": [448,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2284], "a": 1 }, + { "px": [480,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2286], "a": 1 }, + { "px": [496,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2287], "a": 1 }, + { "px": [512,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2288], "a": 1 }, + { "px": [528,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2289], "a": 1 }, + { "px": [544,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2290], "a": 1 }, + { "px": [576,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2292], "a": 1 }, + { "px": [592,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2293], "a": 1 }, + { "px": [608,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2294], "a": 1 }, + { "px": [640,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2296], "a": 1 }, + { "px": [656,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2297], "a": 1 }, + { "px": [672,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2298], "a": 1 }, + { "px": [688,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2299], "a": 1 }, + { "px": [704,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2300], "a": 1 }, + { "px": [720,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2301], "a": 1 }, + { "px": [736,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2302], "a": 1 }, + { "px": [752,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2303], "a": 1 }, + { "px": [0,0], "src": [64,96], "f": 0, "t": 142, "d": [126,0], "a": 1 }, + { "px": [32,0], "src": [64,96], "f": 0, "t": 142, "d": [126,2], "a": 1 }, + { "px": [96,0], "src": [64,96], "f": 0, "t": 142, "d": [126,6], "a": 1 }, + { "px": [192,0], "src": [64,96], "f": 0, "t": 142, "d": [126,12], "a": 1 }, + { "px": [224,0], "src": [64,96], "f": 0, "t": 142, "d": [126,14], "a": 1 }, + { "px": [320,0], "src": [64,96], "f": 0, "t": 142, "d": [126,20], "a": 1 }, + { "px": [352,0], "src": [64,96], "f": 0, "t": 142, "d": [126,22], "a": 1 }, + { "px": [416,0], "src": [64,96], "f": 0, "t": 142, "d": [126,26], "a": 1 }, + { "px": [576,0], "src": [64,96], "f": 0, "t": 142, "d": [126,36], "a": 1 }, + { "px": [640,0], "src": [96,96], "f": 0, "t": 144, "d": [126,40], "a": 1 }, + { "px": [704,0], "src": [96,96], "f": 0, "t": 144, "d": [126,44], "a": 1 }, + { "px": [16,16], "src": [96,96], "f": 0, "t": 144, "d": [126,49], "a": 1 }, + { "px": [48,16], "src": [64,96], "f": 0, "t": 142, "d": [126,51], "a": 1 }, + { "px": [176,16], "src": [64,96], "f": 0, "t": 142, "d": [126,59], "a": 1 }, + { "px": [208,16], "src": [64,96], "f": 0, "t": 142, "d": [126,61], "a": 1 }, + { "px": [336,16], "src": [64,96], "f": 0, "t": 142, "d": [126,69], "a": 1 }, + { "px": [400,16], "src": [64,96], "f": 0, "t": 142, "d": [126,73], "a": 1 }, + { "px": [464,16], "src": [96,96], "f": 0, "t": 144, "d": [126,77], "a": 1 }, + { "px": [0,32], "src": [64,96], "f": 0, "t": 142, "d": [126,96], "a": 1 }, + { "px": [192,32], "src": [96,96], "f": 0, "t": 144, "d": [126,108], "a": 1 }, + { "px": [320,32], "src": [96,96], "f": 0, "t": 144, "d": [126,116], "a": 1 }, + { "px": [384,32], "src": [64,96], "f": 0, "t": 142, "d": [126,120], "a": 1 }, + { "px": [416,32], "src": [64,96], "f": 0, "t": 142, "d": [126,122], "a": 1 }, + { "px": [480,32], "src": [64,96], "f": 0, "t": 142, "d": [126,126], "a": 1 }, + { "px": [512,32], "src": [64,96], "f": 0, "t": 142, "d": [126,128], "a": 1 }, + { "px": [608,32], "src": [96,96], "f": 0, "t": 144, "d": [126,134], "a": 1 }, + { "px": [80,48], "src": [64,96], "f": 0, "t": 142, "d": [126,149], "a": 1 }, + { "px": [304,48], "src": [96,96], "f": 0, "t": 144, "d": [126,163], "a": 1 }, + { "px": [336,48], "src": [96,96], "f": 0, "t": 144, "d": [126,165], "a": 1 }, + { "px": [400,48], "src": [64,96], "f": 0, "t": 142, "d": [126,169], "a": 1 }, + { "px": [432,48], "src": [64,96], "f": 0, "t": 142, "d": [126,171], "a": 1 }, + { "px": [496,48], "src": [96,96], "f": 0, "t": 144, "d": [126,175], "a": 1 }, + { "px": [592,48], "src": [64,96], "f": 0, "t": 142, "d": [126,181], "a": 1 }, + { "px": [624,48], "src": [64,96], "f": 0, "t": 142, "d": [126,183], "a": 1 }, + { "px": [720,48], "src": [64,96], "f": 0, "t": 142, "d": [126,189], "a": 1 }, + { "px": [752,48], "src": [96,96], "f": 0, "t": 144, "d": [126,191], "a": 1 }, + { "px": [64,64], "src": [64,96], "f": 0, "t": 142, "d": [126,196], "a": 1 }, + { "px": [192,64], "src": [96,96], "f": 0, "t": 144, "d": [126,204], "a": 1 }, + { "px": [288,64], "src": [96,96], "f": 0, "t": 144, "d": [126,210], "a": 1 }, + { "px": [320,64], "src": [96,96], "f": 0, "t": 144, "d": [126,212], "a": 1 }, + { "px": [352,64], "src": [64,96], "f": 0, "t": 142, "d": [126,214], "a": 1 }, + { "px": [384,64], "src": [64,96], "f": 0, "t": 142, "d": [126,216], "a": 1 }, + { "px": [480,64], "src": [96,96], "f": 0, "t": 144, "d": [126,222], "a": 1 }, + { "px": [608,64], "src": [96,96], "f": 0, "t": 144, "d": [126,230], "a": 1 }, + { "px": [672,64], "src": [64,96], "f": 0, "t": 142, "d": [126,234], "a": 1 }, + { "px": [736,64], "src": [64,96], "f": 0, "t": 142, "d": [126,238], "a": 1 }, + { "px": [80,80], "src": [96,96], "f": 0, "t": 144, "d": [126,245], "a": 1 }, + { "px": [176,80], "src": [96,96], "f": 0, "t": 144, "d": [126,251], "a": 1 }, + { "px": [208,80], "src": [96,96], "f": 0, "t": 144, "d": [126,253], "a": 1 }, + { "px": [240,80], "src": [96,96], "f": 0, "t": 144, "d": [126,255], "a": 1 }, + { "px": [304,80], "src": [64,96], "f": 0, "t": 142, "d": [126,259], "a": 1 }, + { "px": [368,80], "src": [96,96], "f": 0, "t": 144, "d": [126,263], "a": 1 }, + { "px": [464,80], "src": [64,96], "f": 0, "t": 142, "d": [126,269], "a": 1 }, + { "px": [496,80], "src": [64,96], "f": 0, "t": 142, "d": [126,271], "a": 1 }, + { "px": [720,80], "src": [96,96], "f": 0, "t": 144, "d": [126,285], "a": 1 }, + { "px": [752,80], "src": [64,96], "f": 0, "t": 142, "d": [126,287], "a": 1 }, + { "px": [160,96], "src": [64,96], "f": 0, "t": 142, "d": [126,298], "a": 1 }, + { "px": [192,96], "src": [64,96], "f": 0, "t": 142, "d": [126,300], "a": 1 }, + { "px": [352,96], "src": [64,96], "f": 0, "t": 142, "d": [126,310], "a": 1 }, + { "px": [480,96], "src": [96,96], "f": 0, "t": 144, "d": [126,318], "a": 1 }, + { "px": [544,96], "src": [96,96], "f": 0, "t": 144, "d": [126,322], "a": 1 }, + { "px": [576,96], "src": [64,96], "f": 0, "t": 142, "d": [126,324], "a": 1 }, + { "px": [16,112], "src": [96,96], "f": 0, "t": 144, "d": [126,337], "a": 1 }, + { "px": [48,112], "src": [64,96], "f": 0, "t": 142, "d": [126,339], "a": 1 }, + { "px": [112,112], "src": [96,96], "f": 0, "t": 144, "d": [126,343], "a": 1 }, + { "px": [176,112], "src": [96,96], "f": 0, "t": 144, "d": [126,347], "a": 1 }, + { "px": [368,112], "src": [64,96], "f": 0, "t": 142, "d": [126,359], "a": 1 }, + { "px": [496,112], "src": [64,96], "f": 0, "t": 142, "d": [126,367], "a": 1 }, + { "px": [528,112], "src": [96,96], "f": 0, "t": 144, "d": [126,369], "a": 1 }, + { "px": [0,128], "src": [96,96], "f": 0, "t": 144, "d": [126,384], "a": 1 }, + { "px": [96,128], "src": [64,96], "f": 0, "t": 142, "d": [126,390], "a": 1 }, + { "px": [192,128], "src": [96,96], "f": 0, "t": 144, "d": [126,396], "a": 1 }, + { "px": [672,128], "src": [64,96], "f": 0, "t": 142, "d": [126,426], "a": 1 }, + { "px": [16,144], "src": [96,96], "f": 0, "t": 144, "d": [126,433], "a": 1 }, + { "px": [48,144], "src": [64,96], "f": 0, "t": 142, "d": [126,435], "a": 1 }, + { "px": [112,144], "src": [96,96], "f": 0, "t": 144, "d": [126,439], "a": 1 }, + { "px": [176,144], "src": [96,96], "f": 0, "t": 144, "d": [126,443], "a": 1 }, + { "px": [560,144], "src": [96,96], "f": 0, "t": 144, "d": [126,467], "a": 1 }, + { "px": [688,144], "src": [96,96], "f": 0, "t": 144, "d": [126,475], "a": 1 }, + { "px": [32,160], "src": [64,96], "f": 0, "t": 142, "d": [126,482], "a": 1 }, + { "px": [640,160], "src": [96,96], "f": 0, "t": 144, "d": [126,520], "a": 1 }, + { "px": [736,160], "src": [64,96], "f": 0, "t": 142, "d": [126,526], "a": 1 }, + { "px": [144,176], "src": [96,96], "f": 0, "t": 144, "d": [126,537], "a": 1 }, + { "px": [656,176], "src": [96,96], "f": 0, "t": 144, "d": [126,569], "a": 1 }, + { "px": [128,192], "src": [64,96], "f": 0, "t": 142, "d": [126,584], "a": 1 }, + { "px": [640,192], "src": [96,96], "f": 0, "t": 144, "d": [126,616], "a": 1 }, + { "px": [672,192], "src": [64,96], "f": 0, "t": 142, "d": [126,618], "a": 1 }, + { "px": [736,192], "src": [64,96], "f": 0, "t": 142, "d": [126,622], "a": 1 }, + { "px": [176,208], "src": [96,96], "f": 0, "t": 144, "d": [126,635], "a": 1 }, + { "px": [752,208], "src": [96,96], "f": 0, "t": 144, "d": [126,671], "a": 1 }, + { "px": [96,224], "src": [64,96], "f": 0, "t": 142, "d": [126,678], "a": 1 }, + { "px": [160,224], "src": [64,96], "f": 0, "t": 142, "d": [126,682], "a": 1 }, + { "px": [672,224], "src": [64,96], "f": 0, "t": 142, "d": [126,714], "a": 1 }, + { "px": [736,224], "src": [64,96], "f": 0, "t": 142, "d": [126,718], "a": 1 }, + { "px": [144,240], "src": [96,96], "f": 0, "t": 144, "d": [126,729], "a": 1 }, + { "px": [176,240], "src": [64,96], "f": 0, "t": 142, "d": [126,731], "a": 1 }, + { "px": [208,240], "src": [96,96], "f": 0, "t": 144, "d": [126,733], "a": 1 }, + { "px": [560,240], "src": [64,96], "f": 0, "t": 142, "d": [126,755], "a": 1 }, + { "px": [656,240], "src": [64,96], "f": 0, "t": 142, "d": [126,761], "a": 1 }, + { "px": [720,240], "src": [64,96], "f": 0, "t": 142, "d": [126,765], "a": 1 }, + { "px": [752,240], "src": [64,96], "f": 0, "t": 142, "d": [126,767], "a": 1 }, + { "px": [0,256], "src": [64,96], "f": 0, "t": 142, "d": [126,768], "a": 1 }, + { "px": [96,256], "src": [96,96], "f": 0, "t": 144, "d": [126,774], "a": 1 }, + { "px": [576,256], "src": [64,96], "f": 0, "t": 142, "d": [126,804], "a": 1 }, + { "px": [640,256], "src": [64,96], "f": 0, "t": 142, "d": [126,808], "a": 1 }, + { "px": [112,272], "src": [64,96], "f": 0, "t": 142, "d": [126,823], "a": 1 }, + { "px": [624,272], "src": [96,96], "f": 0, "t": 144, "d": [126,855], "a": 1 }, + { "px": [656,272], "src": [96,96], "f": 0, "t": 144, "d": [126,857], "a": 1 }, + { "px": [0,288], "src": [64,96], "f": 0, "t": 142, "d": [126,864], "a": 1 }, + { "px": [192,288], "src": [96,96], "f": 0, "t": 144, "d": [126,876], "a": 1 }, + { "px": [544,288], "src": [64,96], "f": 0, "t": 142, "d": [126,898], "a": 1 }, + { "px": [576,288], "src": [64,96], "f": 0, "t": 142, "d": [126,900], "a": 1 }, + { "px": [608,288], "src": [96,96], "f": 0, "t": 144, "d": [126,902], "a": 1 }, + { "px": [640,288], "src": [96,96], "f": 0, "t": 144, "d": [126,904], "a": 1 }, + { "px": [672,288], "src": [96,96], "f": 0, "t": 144, "d": [126,906], "a": 1 }, + { "px": [144,304], "src": [96,96], "f": 0, "t": 144, "d": [126,921], "a": 1 }, + { "px": [176,304], "src": [64,96], "f": 0, "t": 142, "d": [126,923], "a": 1 }, + { "px": [560,304], "src": [64,96], "f": 0, "t": 142, "d": [126,947], "a": 1 }, + { "px": [592,304], "src": [96,96], "f": 0, "t": 144, "d": [126,949], "a": 1 }, + { "px": [96,320], "src": [64,96], "f": 0, "t": 142, "d": [126,966], "a": 1 }, + { "px": [128,320], "src": [64,96], "f": 0, "t": 142, "d": [126,968], "a": 1 }, + { "px": [576,320], "src": [96,96], "f": 0, "t": 144, "d": [126,996], "a": 1 }, + { "px": [608,320], "src": [96,96], "f": 0, "t": 144, "d": [126,998], "a": 1 }, + { "px": [640,320], "src": [64,96], "f": 0, "t": 142, "d": [126,1000], "a": 1 }, + { "px": [704,320], "src": [64,96], "f": 0, "t": 142, "d": [126,1004], "a": 1 }, + { "px": [80,336], "src": [96,96], "f": 0, "t": 144, "d": [126,1013], "a": 1 }, + { "px": [112,336], "src": [64,96], "f": 0, "t": 142, "d": [126,1015], "a": 1 }, + { "px": [144,336], "src": [96,96], "f": 0, "t": 144, "d": [126,1017], "a": 1 }, + { "px": [624,336], "src": [64,96], "f": 0, "t": 142, "d": [126,1047], "a": 1 }, + { "px": [720,336], "src": [96,96], "f": 0, "t": 144, "d": [126,1053], "a": 1 }, + { "px": [752,336], "src": [64,96], "f": 0, "t": 142, "d": [126,1055], "a": 1 }, + { "px": [64,352], "src": [64,96], "f": 0, "t": 142, "d": [126,1060], "a": 1 }, + { "px": [192,352], "src": [64,96], "f": 0, "t": 142, "d": [126,1068], "a": 1 }, + { "px": [608,352], "src": [64,96], "f": 0, "t": 142, "d": [126,1094], "a": 1 }, + { "px": [640,352], "src": [96,96], "f": 0, "t": 144, "d": [126,1096], "a": 1 }, + { "px": [704,352], "src": [96,96], "f": 0, "t": 144, "d": [126,1100], "a": 1 }, + { "px": [736,352], "src": [96,96], "f": 0, "t": 144, "d": [126,1102], "a": 1 }, + { "px": [48,368], "src": [64,96], "f": 0, "t": 142, "d": [126,1107], "a": 1 }, + { "px": [112,368], "src": [64,96], "f": 0, "t": 142, "d": [126,1111], "a": 1 }, + { "px": [144,368], "src": [64,96], "f": 0, "t": 142, "d": [126,1113], "a": 1 }, + { "px": [176,368], "src": [96,96], "f": 0, "t": 144, "d": [126,1115], "a": 1 }, + { "px": [624,368], "src": [96,96], "f": 0, "t": 144, "d": [126,1143], "a": 1 }, + { "px": [720,368], "src": [96,96], "f": 0, "t": 144, "d": [126,1149], "a": 1 }, + { "px": [0,384], "src": [96,96], "f": 0, "t": 144, "d": [126,1152], "a": 1 }, + { "px": [96,384], "src": [64,96], "f": 0, "t": 142, "d": [126,1158], "a": 1 }, + { "px": [160,384], "src": [64,96], "f": 0, "t": 142, "d": [126,1162], "a": 1 }, + { "px": [544,384], "src": [96,96], "f": 0, "t": 144, "d": [126,1186], "a": 1 }, + { "px": [640,384], "src": [64,96], "f": 0, "t": 142, "d": [126,1192], "a": 1 }, + { "px": [672,384], "src": [96,96], "f": 0, "t": 144, "d": [126,1194], "a": 1 }, + { "px": [704,384], "src": [96,96], "f": 0, "t": 144, "d": [126,1196], "a": 1 }, + { "px": [736,384], "src": [96,96], "f": 0, "t": 144, "d": [126,1198], "a": 1 }, + { "px": [560,400], "src": [96,96], "f": 0, "t": 144, "d": [126,1235], "a": 1 }, + { "px": [656,400], "src": [64,96], "f": 0, "t": 142, "d": [126,1241], "a": 1 }, + { "px": [688,400], "src": [64,96], "f": 0, "t": 142, "d": [126,1243], "a": 1 }, + { "px": [720,400], "src": [96,96], "f": 0, "t": 144, "d": [126,1245], "a": 1 }, + { "px": [752,400], "src": [96,96], "f": 0, "t": 144, "d": [126,1247], "a": 1 }, + { "px": [32,416], "src": [64,96], "f": 0, "t": 142, "d": [126,1250], "a": 1 }, + { "px": [64,416], "src": [64,96], "f": 0, "t": 142, "d": [126,1252], "a": 1 }, + { "px": [544,416], "src": [96,96], "f": 0, "t": 144, "d": [126,1282], "a": 1 }, + { "px": [736,416], "src": [64,96], "f": 0, "t": 142, "d": [126,1294], "a": 1 }, + { "px": [48,432], "src": [96,96], "f": 0, "t": 144, "d": [126,1299], "a": 1 }, + { "px": [80,432], "src": [64,96], "f": 0, "t": 142, "d": [126,1301], "a": 1 }, + { "px": [560,432], "src": [96,96], "f": 0, "t": 144, "d": [126,1331], "a": 1 }, + { "px": [720,432], "src": [96,96], "f": 0, "t": 144, "d": [126,1341], "a": 1 }, + { "px": [752,432], "src": [64,96], "f": 0, "t": 142, "d": [126,1343], "a": 1 }, + { "px": [32,448], "src": [64,96], "f": 0, "t": 142, "d": [126,1346], "a": 1 }, + { "px": [64,448], "src": [64,96], "f": 0, "t": 142, "d": [126,1348], "a": 1 }, + { "px": [96,448], "src": [64,96], "f": 0, "t": 142, "d": [126,1350], "a": 1 }, + { "px": [48,464], "src": [96,96], "f": 0, "t": 144, "d": [126,1395], "a": 1 }, + { "px": [80,464], "src": [64,96], "f": 0, "t": 142, "d": [126,1397], "a": 1 }, + { "px": [176,464], "src": [96,96], "f": 0, "t": 144, "d": [126,1403], "a": 1 }, + { "px": [560,464], "src": [96,96], "f": 0, "t": 144, "d": [126,1427], "a": 1 }, + { "px": [720,464], "src": [64,96], "f": 0, "t": 142, "d": [126,1437], "a": 1 }, + { "px": [752,464], "src": [64,96], "f": 0, "t": 142, "d": [126,1439], "a": 1 }, + { "px": [0,480], "src": [64,96], "f": 0, "t": 142, "d": [126,1440], "a": 1 }, + { "px": [32,480], "src": [64,96], "f": 0, "t": 142, "d": [126,1442], "a": 1 }, + { "px": [64,480], "src": [96,96], "f": 0, "t": 144, "d": [126,1444], "a": 1 }, + { "px": [128,480], "src": [96,96], "f": 0, "t": 144, "d": [126,1448], "a": 1 }, + { "px": [160,480], "src": [64,96], "f": 0, "t": 142, "d": [126,1450], "a": 1 }, + { "px": [576,480], "src": [64,96], "f": 0, "t": 142, "d": [126,1476], "a": 1 }, + { "px": [640,480], "src": [64,96], "f": 0, "t": 142, "d": [126,1480], "a": 1 }, + { "px": [48,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1491], "a": 1 }, + { "px": [80,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1493], "a": 1 }, + { "px": [688,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1531], "a": 1 }, + { "px": [0,512], "src": [96,96], "f": 0, "t": 144, "d": [126,1536], "a": 1 }, + { "px": [32,512], "src": [64,96], "f": 0, "t": 142, "d": [126,1538], "a": 1 }, + { "px": [288,512], "src": [64,96], "f": 0, "t": 142, "d": [126,1554], "a": 1 }, + { "px": [320,512], "src": [64,96], "f": 0, "t": 142, "d": [126,1556], "a": 1 }, + { "px": [352,512], "src": [96,96], "f": 0, "t": 144, "d": [126,1558], "a": 1 }, + { "px": [640,512], "src": [64,96], "f": 0, "t": 142, "d": [126,1576], "a": 1 }, + { "px": [672,512], "src": [64,96], "f": 0, "t": 142, "d": [126,1578], "a": 1 }, + { "px": [704,512], "src": [64,96], "f": 0, "t": 142, "d": [126,1580], "a": 1 }, + { "px": [736,512], "src": [64,96], "f": 0, "t": 142, "d": [126,1582], "a": 1 }, + { "px": [16,528], "src": [64,96], "f": 0, "t": 142, "d": [126,1585], "a": 1 }, + { "px": [48,528], "src": [96,96], "f": 0, "t": 144, "d": [126,1587], "a": 1 }, + { "px": [176,528], "src": [64,96], "f": 0, "t": 142, "d": [126,1595], "a": 1 }, + { "px": [240,528], "src": [96,96], "f": 0, "t": 144, "d": [126,1599], "a": 1 }, + { "px": [272,528], "src": [64,96], "f": 0, "t": 142, "d": [126,1601], "a": 1 }, + { "px": [304,528], "src": [96,96], "f": 0, "t": 144, "d": [126,1603], "a": 1 }, + { "px": [560,528], "src": [96,96], "f": 0, "t": 144, "d": [126,1619], "a": 1 }, + { "px": [656,528], "src": [96,96], "f": 0, "t": 144, "d": [126,1625], "a": 1 }, + { "px": [752,528], "src": [96,96], "f": 0, "t": 144, "d": [126,1631], "a": 1 }, + { "px": [32,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1634], "a": 1 }, + { "px": [128,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1640], "a": 1 }, + { "px": [160,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1642], "a": 1 }, + { "px": [192,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1644], "a": 1 }, + { "px": [224,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1646], "a": 1 }, + { "px": [256,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1648], "a": 1 }, + { "px": [288,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1650], "a": 1 }, + { "px": [320,544], "src": [64,96], "f": 0, "t": 142, "d": [126,1652], "a": 1 }, + { "px": [352,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1654], "a": 1 }, + { "px": [416,544], "src": [64,96], "f": 0, "t": 142, "d": [126,1658], "a": 1 }, + { "px": [480,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1662], "a": 1 }, + { "px": [544,544], "src": [64,96], "f": 0, "t": 142, "d": [126,1666], "a": 1 }, + { "px": [576,544], "src": [64,96], "f": 0, "t": 142, "d": [126,1668], "a": 1 }, + { "px": [736,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1678], "a": 1 }, + { "px": [16,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1681], "a": 1 }, + { "px": [80,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1685], "a": 1 }, + { "px": [144,560], "src": [96,96], "f": 0, "t": 144, "d": [126,1689], "a": 1 }, + { "px": [240,560], "src": [96,96], "f": 0, "t": 144, "d": [126,1695], "a": 1 }, + { "px": [336,560], "src": [96,96], "f": 0, "t": 144, "d": [126,1701], "a": 1 }, + { "px": [432,560], "src": [96,96], "f": 0, "t": 144, "d": [126,1707], "a": 1 }, + { "px": [496,560], "src": [96,96], "f": 0, "t": 144, "d": [126,1711], "a": 1 }, + { "px": [528,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1713], "a": 1 }, + { "px": [560,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1715], "a": 1 }, + { "px": [592,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1717], "a": 1 }, + { "px": [624,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1719], "a": 1 }, + { "px": [688,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1723], "a": 1 }, + { "px": [720,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1725], "a": 1 }, + { "px": [752,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1727], "a": 1 }, + { "px": [32,576], "src": [64,96], "f": 0, "t": 142, "d": [126,1730], "a": 1 }, + { "px": [96,576], "src": [64,96], "f": 0, "t": 142, "d": [126,1734], "a": 1 }, + { "px": [128,576], "src": [96,96], "f": 0, "t": 144, "d": [126,1736], "a": 1 }, + { "px": [384,576], "src": [64,96], "f": 0, "t": 142, "d": [126,1752], "a": 1 }, + { "px": [416,576], "src": [96,96], "f": 0, "t": 144, "d": [126,1754], "a": 1 }, + { "px": [448,576], "src": [96,96], "f": 0, "t": 144, "d": [126,1756], "a": 1 }, + { "px": [480,576], "src": [96,96], "f": 0, "t": 144, "d": [126,1758], "a": 1 }, + { "px": [608,576], "src": [64,96], "f": 0, "t": 142, "d": [126,1766], "a": 1 }, + { "px": [48,592], "src": [96,96], "f": 0, "t": 144, "d": [126,1779], "a": 1 }, + { "px": [80,592], "src": [96,96], "f": 0, "t": 144, "d": [126,1781], "a": 1 }, + { "px": [272,592], "src": [96,96], "f": 0, "t": 144, "d": [126,1793], "a": 1 }, + { "px": [400,592], "src": [64,96], "f": 0, "t": 142, "d": [126,1801], "a": 1 }, + { "px": [432,592], "src": [96,96], "f": 0, "t": 144, "d": [126,1803], "a": 1 }, + { "px": [464,592], "src": [96,96], "f": 0, "t": 144, "d": [126,1805], "a": 1 }, + { "px": [496,592], "src": [96,96], "f": 0, "t": 144, "d": [126,1807], "a": 1 }, + { "px": [528,592], "src": [96,96], "f": 0, "t": 144, "d": [126,1809], "a": 1 }, + { "px": [560,592], "src": [64,96], "f": 0, "t": 142, "d": [126,1811], "a": 1 }, + { "px": [656,592], "src": [64,96], "f": 0, "t": 142, "d": [126,1817], "a": 1 }, + { "px": [688,592], "src": [64,96], "f": 0, "t": 142, "d": [126,1819], "a": 1 }, + { "px": [64,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1828], "a": 1 }, + { "px": [96,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1830], "a": 1 }, + { "px": [128,608], "src": [96,96], "f": 0, "t": 144, "d": [126,1832], "a": 1 }, + { "px": [480,608], "src": [96,96], "f": 0, "t": 144, "d": [126,1854], "a": 1 }, + { "px": [512,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1856], "a": 1 }, + { "px": [608,608], "src": [96,96], "f": 0, "t": 144, "d": [126,1862], "a": 1 }, + { "px": [640,608], "src": [96,96], "f": 0, "t": 144, "d": [126,1864], "a": 1 }, + { "px": [672,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1866], "a": 1 }, + { "px": [80,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1877], "a": 1 }, + { "px": [112,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1879], "a": 1 }, + { "px": [144,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1881], "a": 1 }, + { "px": [240,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1887], "a": 1 }, + { "px": [272,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1889], "a": 1 }, + { "px": [400,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1897], "a": 1 }, + { "px": [464,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1901], "a": 1 }, + { "px": [528,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1905], "a": 1 }, + { "px": [592,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1909], "a": 1 }, + { "px": [656,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1913], "a": 1 }, + { "px": [688,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1915], "a": 1 }, + { "px": [720,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1917], "a": 1 }, + { "px": [0,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1920], "a": 1 }, + { "px": [32,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1922], "a": 1 }, + { "px": [128,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1928], "a": 1 }, + { "px": [224,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1934], "a": 1 }, + { "px": [288,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1938], "a": 1 }, + { "px": [320,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1940], "a": 1 }, + { "px": [416,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1946], "a": 1 }, + { "px": [480,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1950], "a": 1 }, + { "px": [512,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1952], "a": 1 }, + { "px": [576,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1956], "a": 1 }, + { "px": [640,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1960], "a": 1 }, + { "px": [672,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1962], "a": 1 }, + { "px": [704,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1964], "a": 1 }, + { "px": [112,656], "src": [64,96], "f": 0, "t": 142, "d": [126,1975], "a": 1 }, + { "px": [272,656], "src": [96,96], "f": 0, "t": 144, "d": [126,1985], "a": 1 }, + { "px": [304,656], "src": [64,96], "f": 0, "t": 142, "d": [126,1987], "a": 1 }, + { "px": [528,656], "src": [96,96], "f": 0, "t": 144, "d": [126,2001], "a": 1 }, + { "px": [96,672], "src": [96,96], "f": 0, "t": 144, "d": [126,2022], "a": 1 }, + { "px": [128,672], "src": [64,96], "f": 0, "t": 142, "d": [126,2024], "a": 1 }, + { "px": [288,672], "src": [96,96], "f": 0, "t": 144, "d": [126,2034], "a": 1 }, + { "px": [320,672], "src": [64,96], "f": 0, "t": 142, "d": [126,2036], "a": 1 }, + { "px": [352,672], "src": [96,96], "f": 0, "t": 144, "d": [126,2038], "a": 1 }, + { "px": [704,672], "src": [96,96], "f": 0, "t": 144, "d": [126,2060], "a": 1 }, + { "px": [176,688], "src": [96,96], "f": 0, "t": 144, "d": [126,2075], "a": 1 }, + { "px": [272,688], "src": [96,96], "f": 0, "t": 144, "d": [126,2081], "a": 1 }, + { "px": [304,688], "src": [64,96], "f": 0, "t": 142, "d": [126,2083], "a": 1 }, + { "px": [720,688], "src": [64,96], "f": 0, "t": 142, "d": [126,2109], "a": 1 }, + { "px": [160,704], "src": [96,96], "f": 0, "t": 144, "d": [126,2122], "a": 1 }, + { "px": [256,704], "src": [96,96], "f": 0, "t": 144, "d": [126,2128], "a": 1 }, + { "px": [704,704], "src": [64,96], "f": 0, "t": 142, "d": [126,2156], "a": 1 }, + { "px": [48,720], "src": [96,96], "f": 0, "t": 144, "d": [126,2163], "a": 1 }, + { "px": [144,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2169], "a": 1 }, + { "px": [240,720], "src": [96,96], "f": 0, "t": 144, "d": [126,2175], "a": 1 }, + { "px": [272,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2177], "a": 1 }, + { "px": [304,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2179], "a": 1 }, + { "px": [432,720], "src": [96,96], "f": 0, "t": 144, "d": [126,2187], "a": 1 }, + { "px": [464,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2189], "a": 1 }, + { "px": [560,720], "src": [96,96], "f": 0, "t": 144, "d": [126,2195], "a": 1 }, + { "px": [592,720], "src": [96,96], "f": 0, "t": 144, "d": [126,2197], "a": 1 }, + { "px": [720,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2205], "a": 1 }, + { "px": [752,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2207], "a": 1 }, + { "px": [0,736], "src": [64,96], "f": 0, "t": 142, "d": [126,2208], "a": 1 }, + { "px": [64,736], "src": [96,96], "f": 0, "t": 144, "d": [126,2212], "a": 1 }, + { "px": [256,736], "src": [96,96], "f": 0, "t": 144, "d": [126,2224], "a": 1 }, + { "px": [288,736], "src": [96,96], "f": 0, "t": 144, "d": [126,2226], "a": 1 }, + { "px": [416,736], "src": [64,96], "f": 0, "t": 142, "d": [126,2234], "a": 1 }, + { "px": [480,736], "src": [96,96], "f": 0, "t": 144, "d": [126,2238], "a": 1 }, + { "px": [576,736], "src": [96,96], "f": 0, "t": 144, "d": [126,2244], "a": 1 }, + { "px": [608,736], "src": [96,96], "f": 0, "t": 144, "d": [126,2246], "a": 1 }, + { "px": [640,736], "src": [96,96], "f": 0, "t": 144, "d": [126,2248], "a": 1 }, + { "px": [672,736], "src": [64,96], "f": 0, "t": 142, "d": [126,2250], "a": 1 }, + { "px": [736,736], "src": [64,96], "f": 0, "t": 142, "d": [126,2254], "a": 1 }, + { "px": [16,752], "src": [64,96], "f": 0, "t": 142, "d": [126,2257], "a": 1 }, + { "px": [80,752], "src": [64,96], "f": 0, "t": 142, "d": [126,2261], "a": 1 }, + { "px": [464,752], "src": [64,96], "f": 0, "t": 142, "d": [126,2285], "a": 1 }, + { "px": [560,752], "src": [64,96], "f": 0, "t": 142, "d": [126,2291], "a": 1 }, + { "px": [624,752], "src": [96,96], "f": 0, "t": 144, "d": [126,2295], "a": 1 }, + { "px": [272,160], "src": [256,160], "f": 0, "t": 246, "d": [12,497], "a": 1 }, + { "px": [288,160], "src": [256,160], "f": 0, "t": 246, "d": [12,498], "a": 1 }, + { "px": [400,160], "src": [256,160], "f": 0, "t": 246, "d": [12,505], "a": 1 }, + { "px": [416,160], "src": [256,160], "f": 0, "t": 246, "d": [12,506], "a": 1 }, + { "px": [432,160], "src": [256,160], "f": 0, "t": 246, "d": [12,507], "a": 1 }, + { "px": [464,160], "src": [256,160], "f": 0, "t": 246, "d": [12,509], "a": 1 }, + { "px": [480,160], "src": [256,160], "f": 0, "t": 246, "d": [12,510], "a": 1 }, + { "px": [496,160], "src": [256,160], "f": 0, "t": 246, "d": [12,511], "a": 1 }, + { "px": [272,272], "src": [256,160], "f": 0, "t": 246, "d": [12,833], "a": 1 }, + { "px": [288,272], "src": [256,160], "f": 0, "t": 246, "d": [12,834], "a": 1 }, + { "px": [336,272], "src": [256,160], "f": 0, "t": 246, "d": [12,837], "a": 1 }, + { "px": [352,272], "src": [256,160], "f": 0, "t": 246, "d": [12,838], "a": 1 }, + { "px": [368,272], "src": [256,160], "f": 0, "t": 246, "d": [12,839], "a": 1 }, + { "px": [400,272], "src": [256,160], "f": 0, "t": 246, "d": [12,841], "a": 1 }, + { "px": [416,272], "src": [256,160], "f": 0, "t": 246, "d": [12,842], "a": 1 }, + { "px": [432,272], "src": [256,160], "f": 0, "t": 246, "d": [12,843], "a": 1 }, + { "px": [448,272], "src": [256,160], "f": 0, "t": 246, "d": [12,844], "a": 1 }, + { "px": [464,272], "src": [256,160], "f": 0, "t": 246, "d": [12,845], "a": 1 }, + { "px": [480,272], "src": [256,160], "f": 0, "t": 246, "d": [12,846], "a": 1 }, + { "px": [384,400], "src": [256,160], "f": 0, "t": 246, "d": [12,1224], "a": 1 }, + { "px": [400,400], "src": [256,160], "f": 0, "t": 246, "d": [12,1225], "a": 1 }, + { "px": [448,400], "src": [256,160], "f": 0, "t": 246, "d": [12,1228], "a": 1 }, + { "px": [464,400], "src": [256,160], "f": 0, "t": 246, "d": [12,1229], "a": 1 }, + { "px": [480,400], "src": [256,160], "f": 0, "t": 246, "d": [12,1230], "a": 1 }, + { "px": [304,192], "src": [256,96], "f": 0, "t": 154, "d": [9,595], "a": 1 }, + { "px": [272,224], "src": [256,96], "f": 0, "t": 154, "d": [9,689], "a": 1 }, + { "px": [496,224], "src": [256,96], "f": 0, "t": 154, "d": [9,703], "a": 1 }, + { "px": [272,256], "src": [256,96], "f": 0, "t": 154, "d": [9,785], "a": 1 }, + { "px": [288,256], "src": [256,96], "f": 0, "t": 154, "d": [9,786], "a": 1 }, + { "px": [304,256], "src": [256,96], "f": 0, "t": 154, "d": [9,787], "a": 1 }, + { "px": [336,256], "src": [256,96], "f": 0, "t": 154, "d": [9,789], "a": 1 }, + { "px": [368,256], "src": [256,96], "f": 0, "t": 154, "d": [9,791], "a": 1 }, + { "px": [400,256], "src": [256,96], "f": 0, "t": 154, "d": [9,793], "a": 1 }, + { "px": [416,256], "src": [256,96], "f": 0, "t": 154, "d": [9,794], "a": 1 }, + { "px": [432,256], "src": [256,96], "f": 0, "t": 154, "d": [9,795], "a": 1 }, + { "px": [464,256], "src": [256,96], "f": 0, "t": 154, "d": [9,797], "a": 1 }, + { "px": [320,352], "src": [256,96], "f": 0, "t": 154, "d": [9,1076], "a": 1 }, + { "px": [336,352], "src": [256,96], "f": 0, "t": 154, "d": [9,1077], "a": 1 }, + { "px": [352,352], "src": [256,96], "f": 0, "t": 154, "d": [9,1078], "a": 1 }, + { "px": [384,352], "src": [256,96], "f": 0, "t": 154, "d": [9,1080], "a": 1 }, + { "px": [400,352], "src": [256,96], "f": 0, "t": 154, "d": [9,1081], "a": 1 }, + { "px": [272,416], "src": [256,96], "f": 0, "t": 154, "d": [9,1265], "a": 1 }, + { "px": [320,464], "src": [256,96], "f": 0, "t": 154, "d": [9,1412], "a": 1 }, + { "px": [352,464], "src": [256,96], "f": 0, "t": 154, "d": [9,1414], "a": 1 }, + { "px": [368,464], "src": [256,96], "f": 0, "t": 154, "d": [9,1415], "a": 1 }, + { "px": [384,464], "src": [256,96], "f": 0, "t": 154, "d": [9,1416], "a": 1 }, + { "px": [400,464], "src": [256,96], "f": 0, "t": 154, "d": [9,1417], "a": 1 }, + { "px": [480,464], "src": [256,96], "f": 0, "t": 154, "d": [9,1422], "a": 1 }, + { "px": [256,176], "src": [224,128], "f": 1, "t": 198, "d": [10,544], "a": 1 }, + { "px": [320,176], "src": [224,128], "f": 0, "t": 198, "d": [10,548], "a": 1 }, + { "px": [352,176], "src": [224,128], "f": 0, "t": 198, "d": [10,550], "a": 1 }, + { "px": [384,176], "src": [224,128], "f": 0, "t": 198, "d": [10,552], "a": 1 }, + { "px": [448,176], "src": [224,128], "f": 0, "t": 198, "d": [10,556], "a": 1 }, + { "px": [512,176], "src": [224,128], "f": 0, "t": 198, "d": [10,560], "a": 1 }, + { "px": [256,192], "src": [224,128], "f": 1, "t": 198, "d": [10,592], "a": 1 }, + { "px": [384,192], "src": [224,128], "f": 0, "t": 198, "d": [10,600], "a": 1 }, + { "px": [448,192], "src": [224,128], "f": 0, "t": 198, "d": [10,604], "a": 1 }, + { "px": [512,192], "src": [224,128], "f": 0, "t": 198, "d": [10,608], "a": 1 }, + { "px": [256,208], "src": [224,128], "f": 1, "t": 198, "d": [10,640], "a": 1 }, + { "px": [320,208], "src": [224,128], "f": 0, "t": 198, "d": [10,644], "a": 1 }, + { "px": [384,208], "src": [224,128], "f": 0, "t": 198, "d": [10,648], "a": 1 }, + { "px": [416,208], "src": [224,128], "f": 0, "t": 198, "d": [10,650], "a": 1 }, + { "px": [448,208], "src": [224,128], "f": 0, "t": 198, "d": [10,652], "a": 1 }, + { "px": [512,208], "src": [224,128], "f": 0, "t": 198, "d": [10,656], "a": 1 }, + { "px": [320,224], "src": [224,128], "f": 0, "t": 198, "d": [10,692], "a": 1 }, + { "px": [384,224], "src": [224,128], "f": 0, "t": 198, "d": [10,696], "a": 1 }, + { "px": [448,224], "src": [224,128], "f": 0, "t": 198, "d": [10,700], "a": 1 }, + { "px": [256,240], "src": [224,128], "f": 1, "t": 198, "d": [10,736], "a": 1 }, + { "px": [320,240], "src": [224,128], "f": 0, "t": 198, "d": [10,740], "a": 1 }, + { "px": [352,240], "src": [224,128], "f": 0, "t": 198, "d": [10,742], "a": 1 }, + { "px": [384,240], "src": [224,128], "f": 0, "t": 198, "d": [10,744], "a": 1 }, + { "px": [448,240], "src": [224,128], "f": 0, "t": 198, "d": [10,748], "a": 1 }, + { "px": [480,240], "src": [224,128], "f": 0, "t": 198, "d": [10,750], "a": 1 }, + { "px": [256,288], "src": [224,128], "f": 1, "t": 198, "d": [10,880], "a": 1 }, + { "px": [496,288], "src": [224,128], "f": 0, "t": 198, "d": [10,895], "a": 1 }, + { "px": [256,304], "src": [224,128], "f": 1, "t": 198, "d": [10,928], "a": 1 }, + { "px": [496,304], "src": [224,128], "f": 0, "t": 198, "d": [10,943], "a": 1 }, + { "px": [256,320], "src": [224,128], "f": 1, "t": 198, "d": [10,976], "a": 1 }, + { "px": [496,320], "src": [224,128], "f": 0, "t": 198, "d": [10,991], "a": 1 }, + { "px": [256,336], "src": [224,128], "f": 1, "t": 198, "d": [10,1024], "a": 1 }, + { "px": [496,336], "src": [224,128], "f": 0, "t": 198, "d": [10,1039], "a": 1 }, + { "px": [256,352], "src": [224,128], "f": 1, "t": 198, "d": [10,1072], "a": 1 }, + { "px": [256,368], "src": [224,128], "f": 1, "t": 198, "d": [10,1120], "a": 1 }, + { "px": [368,368], "src": [224,128], "f": 0, "t": 198, "d": [10,1127], "a": 1 }, + { "px": [256,384], "src": [224,128], "f": 1, "t": 198, "d": [10,1168], "a": 1 }, + { "px": [368,384], "src": [224,128], "f": 0, "t": 198, "d": [10,1175], "a": 1 }, + { "px": [256,400], "src": [224,128], "f": 1, "t": 198, "d": [10,1216], "a": 1 }, + { "px": [496,416], "src": [224,128], "f": 0, "t": 198, "d": [10,1279], "a": 1 }, + { "px": [304,432], "src": [224,128], "f": 1, "t": 198, "d": [10,1315], "a": 1 }, + { "px": [496,432], "src": [224,128], "f": 0, "t": 198, "d": [10,1327], "a": 1 }, + { "px": [304,448], "src": [224,128], "f": 1, "t": 198, "d": [10,1363], "a": 1 }, + { "px": [496,448], "src": [224,128], "f": 0, "t": 198, "d": [10,1375], "a": 1 }, + { "px": [288,192], "src": [224,96], "f": 0, "t": 152, "d": [11,594], "a": 1 }, + { "px": [416,192], "src": [224,96], "f": 0, "t": 152, "d": [11,602], "a": 1 }, + { "px": [480,192], "src": [224,96], "f": 0, "t": 152, "d": [11,606], "a": 1 }, + { "px": [288,224], "src": [224,96], "f": 1, "t": 152, "d": [11,690], "a": 1 }, + { "px": [352,224], "src": [224,96], "f": 0, "t": 152, "d": [11,694], "a": 1 }, + { "px": [480,224], "src": [224,96], "f": 0, "t": 152, "d": [11,702], "a": 1 }, + { "px": [304,352], "src": [224,96], "f": 0, "t": 152, "d": [11,1075], "a": 1 }, + { "px": [368,400], "src": [224,96], "f": 2, "t": 152, "d": [11,1223], "a": 1 }, + { "px": [256,160], "src": [224,96], "f": 0, "t": 152, "d": [14,496], "a": 1 }, + { "px": [320,160], "src": [224,96], "f": 0, "t": 152, "d": [14,500], "a": 1 }, + { "px": [352,160], "src": [224,96], "f": 0, "t": 152, "d": [14,502], "a": 1 }, + { "px": [384,160], "src": [224,96], "f": 0, "t": 152, "d": [14,504], "a": 1 }, + { "px": [448,160], "src": [224,96], "f": 0, "t": 152, "d": [14,508], "a": 1 }, + { "px": [512,160], "src": [224,96], "f": 1, "t": 152, "d": [14,512], "a": 1 }, + { "px": [320,192], "src": [224,96], "f": 1, "t": 152, "d": [14,596], "a": 1 }, + { "px": [256,224], "src": [224,96], "f": 0, "t": 152, "d": [14,688], "a": 1 }, + { "px": [512,224], "src": [224,96], "f": 3, "t": 152, "d": [14,704], "a": 1 }, + { "px": [256,256], "src": [224,96], "f": 2, "t": 152, "d": [14,784], "a": 1 }, + { "px": [320,256], "src": [224,96], "f": 2, "t": 152, "d": [14,788], "a": 1 }, + { "px": [352,256], "src": [224,96], "f": 2, "t": 152, "d": [14,790], "a": 1 }, + { "px": [384,256], "src": [224,96], "f": 2, "t": 152, "d": [14,792], "a": 1 }, + { "px": [448,256], "src": [224,96], "f": 2, "t": 152, "d": [14,796], "a": 1 }, + { "px": [480,256], "src": [224,96], "f": 3, "t": 152, "d": [14,798], "a": 1 }, + { "px": [256,272], "src": [224,96], "f": 0, "t": 152, "d": [14,832], "a": 1 }, + { "px": [496,272], "src": [224,96], "f": 1, "t": 152, "d": [14,847], "a": 1 }, + { "px": [368,352], "src": [224,96], "f": 1, "t": 152, "d": [14,1079], "a": 1 }, + { "px": [496,352], "src": [224,96], "f": 3, "t": 152, "d": [14,1087], "a": 1 }, + { "px": [496,400], "src": [224,96], "f": 1, "t": 152, "d": [14,1231], "a": 1 }, + { "px": [256,416], "src": [224,96], "f": 2, "t": 152, "d": [14,1264], "a": 1 }, + { "px": [304,464], "src": [224,96], "f": 2, "t": 152, "d": [14,1411], "a": 1 }, + { "px": [496,464], "src": [224,96], "f": 3, "t": 152, "d": [14,1423], "a": 1 }, + { "px": [304,160], "src": [192,192], "f": 0, "t": 288, "d": [78,499], "a": 1 }, + { "px": [336,160], "src": [192,192], "f": 0, "t": 288, "d": [78,501], "a": 1 }, + { "px": [368,160], "src": [160,192], "f": 0, "t": 286, "d": [78,503], "a": 1 }, + { "px": [352,192], "src": [192,192], "f": 0, "t": 288, "d": [78,598], "a": 1 }, + { "px": [416,224], "src": [192,192], "f": 0, "t": 288, "d": [78,698], "a": 1 }, + { "px": [304,272], "src": [192,192], "f": 0, "t": 288, "d": [78,835], "a": 1 }, + { "px": [320,272], "src": [160,192], "f": 0, "t": 286, "d": [78,836], "a": 1 }, + { "px": [384,272], "src": [192,192], "f": 0, "t": 288, "d": [78,840], "a": 1 }, + { "px": [416,400], "src": [160,192], "f": 0, "t": 286, "d": [78,1226], "a": 1 }, + { "px": [432,400], "src": [192,192], "f": 0, "t": 288, "d": [78,1227], "a": 1 }, + { "px": [416,352], "src": [32,0], "f": 0, "t": 2, "d": [80,1082], "a": 1 }, + { "px": [432,352], "src": [32,0], "f": 0, "t": 2, "d": [80,1083], "a": 1 }, + { "px": [448,352], "src": [32,0], "f": 0, "t": 2, "d": [80,1084], "a": 1 }, + { "px": [464,352], "src": [32,0], "f": 0, "t": 2, "d": [80,1085], "a": 1 }, + { "px": [480,352], "src": [32,0], "f": 0, "t": 2, "d": [80,1086], "a": 1 }, + { "px": [288,416], "src": [32,0], "f": 0, "t": 2, "d": [80,1266], "a": 1 }, + { "px": [304,416], "src": [32,0], "f": 0, "t": 2, "d": [80,1267], "a": 1 }, + { "px": [336,464], "src": [32,0], "f": 0, "t": 2, "d": [80,1413], "a": 1 }, + { "px": [416,464], "src": [32,0], "f": 0, "t": 2, "d": [80,1418], "a": 1 }, + { "px": [432,464], "src": [32,0], "f": 0, "t": 2, "d": [80,1419], "a": 1 }, + { "px": [448,464], "src": [32,0], "f": 0, "t": 2, "d": [80,1420], "a": 1 }, + { "px": [464,464], "src": [32,0], "f": 0, "t": 2, "d": [80,1421], "a": 1 }, + { "px": [400,336], "src": [32,96], "f": 0, "t": 140, "d": [110,1033], "a": 1 }, + { "px": [416,336], "src": [32,96], "f": 0, "t": 140, "d": [110,1034], "a": 1 }, + { "px": [448,336], "src": [32,96], "f": 0, "t": 140, "d": [110,1036], "a": 1 }, + { "px": [480,336], "src": [32,96], "f": 0, "t": 140, "d": [110,1038], "a": 1 }, + { "px": [272,400], "src": [32,96], "f": 0, "t": 140, "d": [110,1217], "a": 1 }, + { "px": [320,448], "src": [0,96], "f": 0, "t": 138, "d": [110,1364], "a": 1 }, + { "px": [352,448], "src": [32,96], "f": 0, "t": 140, "d": [110,1366], "a": 1 }, + { "px": [368,448], "src": [0,96], "f": 0, "t": 138, "d": [110,1367], "a": 1 }, + { "px": [464,448], "src": [32,96], "f": 0, "t": 140, "d": [110,1373], "a": 1 }, + { "px": [480,448], "src": [0,96], "f": 0, "t": 138, "d": [110,1374], "a": 1 } + ], + "seed": 9114421, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 48, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36fb2f0-66b0-11ec-9cd7-395726e77cfd", + "levelId": 41, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [272,176], "src": [320,272], "f": 0, "t": 411, "d": [108,545], "a": 1 }, + { "px": [288,176], "src": [320,272], "f": 0, "t": 411, "d": [108,546], "a": 1 }, + { "px": [304,176], "src": [320,272], "f": 0, "t": 411, "d": [108,547], "a": 1 }, + { "px": [336,176], "src": [320,272], "f": 0, "t": 411, "d": [108,549], "a": 1 }, + { "px": [368,176], "src": [320,272], "f": 0, "t": 411, "d": [108,551], "a": 1 }, + { "px": [400,176], "src": [320,272], "f": 0, "t": 411, "d": [108,553], "a": 1 }, + { "px": [416,176], "src": [320,272], "f": 0, "t": 411, "d": [108,554], "a": 1 }, + { "px": [432,176], "src": [320,272], "f": 0, "t": 411, "d": [108,555], "a": 1 }, + { "px": [464,176], "src": [320,272], "f": 0, "t": 411, "d": [108,557], "a": 1 }, + { "px": [480,176], "src": [320,272], "f": 0, "t": 411, "d": [108,558], "a": 1 }, + { "px": [496,176], "src": [320,272], "f": 0, "t": 411, "d": [108,559], "a": 1 }, + { "px": [272,192], "src": [320,272], "f": 0, "t": 411, "d": [108,593], "a": 1 }, + { "px": [336,192], "src": [320,272], "f": 0, "t": 411, "d": [108,597], "a": 1 }, + { "px": [368,192], "src": [320,272], "f": 0, "t": 411, "d": [108,599], "a": 1 }, + { "px": [400,192], "src": [320,272], "f": 0, "t": 411, "d": [108,601], "a": 1 }, + { "px": [432,192], "src": [320,272], "f": 0, "t": 411, "d": [108,603], "a": 1 }, + { "px": [464,192], "src": [320,272], "f": 0, "t": 411, "d": [108,605], "a": 1 }, + { "px": [496,192], "src": [320,272], "f": 0, "t": 411, "d": [108,607], "a": 1 }, + { "px": [272,208], "src": [320,272], "f": 0, "t": 411, "d": [108,641], "a": 1 }, + { "px": [288,208], "src": [320,272], "f": 0, "t": 411, "d": [108,642], "a": 1 }, + { "px": [304,208], "src": [320,272], "f": 0, "t": 411, "d": [108,643], "a": 1 }, + { "px": [336,208], "src": [320,272], "f": 0, "t": 411, "d": [108,645], "a": 1 }, + { "px": [352,208], "src": [320,272], "f": 0, "t": 411, "d": [108,646], "a": 1 }, + { "px": [368,208], "src": [320,272], "f": 0, "t": 411, "d": [108,647], "a": 1 }, + { "px": [400,208], "src": [320,272], "f": 0, "t": 411, "d": [108,649], "a": 1 }, + { "px": [432,208], "src": [320,272], "f": 0, "t": 411, "d": [108,651], "a": 1 }, + { "px": [464,208], "src": [320,272], "f": 0, "t": 411, "d": [108,653], "a": 1 }, + { "px": [480,208], "src": [320,272], "f": 0, "t": 411, "d": [108,654], "a": 1 }, + { "px": [496,208], "src": [320,272], "f": 0, "t": 411, "d": [108,655], "a": 1 }, + { "px": [304,224], "src": [320,272], "f": 0, "t": 411, "d": [108,691], "a": 1 }, + { "px": [336,224], "src": [320,272], "f": 0, "t": 411, "d": [108,693], "a": 1 }, + { "px": [368,224], "src": [320,272], "f": 0, "t": 411, "d": [108,695], "a": 1 }, + { "px": [400,224], "src": [320,272], "f": 0, "t": 411, "d": [108,697], "a": 1 }, + { "px": [432,224], "src": [320,272], "f": 0, "t": 411, "d": [108,699], "a": 1 }, + { "px": [464,224], "src": [320,272], "f": 0, "t": 411, "d": [108,701], "a": 1 }, + { "px": [272,240], "src": [320,272], "f": 0, "t": 411, "d": [108,737], "a": 1 }, + { "px": [288,240], "src": [320,272], "f": 0, "t": 411, "d": [108,738], "a": 1 }, + { "px": [304,240], "src": [320,272], "f": 0, "t": 411, "d": [108,739], "a": 1 }, + { "px": [336,240], "src": [320,272], "f": 0, "t": 411, "d": [108,741], "a": 1 }, + { "px": [368,240], "src": [320,272], "f": 0, "t": 411, "d": [108,743], "a": 1 }, + { "px": [400,240], "src": [320,272], "f": 0, "t": 411, "d": [108,745], "a": 1 }, + { "px": [416,240], "src": [320,272], "f": 0, "t": 411, "d": [108,746], "a": 1 }, + { "px": [432,240], "src": [320,272], "f": 0, "t": 411, "d": [108,747], "a": 1 }, + { "px": [464,240], "src": [320,272], "f": 0, "t": 411, "d": [108,749], "a": 1 }, + { "px": [288,288], "src": [320,272], "f": 0, "t": 411, "d": [108,882], "a": 1 }, + { "px": [304,288], "src": [320,272], "f": 0, "t": 411, "d": [108,883], "a": 1 }, + { "px": [336,288], "src": [320,272], "f": 0, "t": 411, "d": [108,885], "a": 1 }, + { "px": [352,288], "src": [320,272], "f": 0, "t": 411, "d": [108,886], "a": 1 }, + { "px": [368,288], "src": [320,272], "f": 0, "t": 411, "d": [108,887], "a": 1 }, + { "px": [384,288], "src": [320,272], "f": 0, "t": 411, "d": [108,888], "a": 1 }, + { "px": [400,288], "src": [320,272], "f": 0, "t": 411, "d": [108,889], "a": 1 }, + { "px": [432,288], "src": [320,272], "f": 0, "t": 411, "d": [108,891], "a": 1 }, + { "px": [448,288], "src": [320,272], "f": 0, "t": 411, "d": [108,892], "a": 1 }, + { "px": [464,288], "src": [320,272], "f": 0, "t": 411, "d": [108,893], "a": 1 }, + { "px": [288,304], "src": [320,272], "f": 0, "t": 411, "d": [108,930], "a": 1 }, + { "px": [304,304], "src": [320,272], "f": 0, "t": 411, "d": [108,931], "a": 1 }, + { "px": [320,304], "src": [320,272], "f": 0, "t": 411, "d": [108,932], "a": 1 }, + { "px": [336,304], "src": [320,272], "f": 0, "t": 411, "d": [108,933], "a": 1 }, + { "px": [352,304], "src": [320,272], "f": 0, "t": 411, "d": [108,934], "a": 1 }, + { "px": [368,304], "src": [320,272], "f": 0, "t": 411, "d": [108,935], "a": 1 }, + { "px": [384,304], "src": [320,272], "f": 0, "t": 411, "d": [108,936], "a": 1 }, + { "px": [400,304], "src": [320,272], "f": 0, "t": 411, "d": [108,937], "a": 1 }, + { "px": [416,304], "src": [320,272], "f": 0, "t": 411, "d": [108,938], "a": 1 }, + { "px": [432,304], "src": [320,272], "f": 0, "t": 411, "d": [108,939], "a": 1 }, + { "px": [448,304], "src": [320,272], "f": 0, "t": 411, "d": [108,940], "a": 1 }, + { "px": [464,304], "src": [320,272], "f": 0, "t": 411, "d": [108,941], "a": 1 }, + { "px": [304,320], "src": [320,272], "f": 0, "t": 411, "d": [108,979], "a": 1 }, + { "px": [320,320], "src": [320,272], "f": 0, "t": 411, "d": [108,980], "a": 1 }, + { "px": [336,320], "src": [320,272], "f": 0, "t": 411, "d": [108,981], "a": 1 }, + { "px": [352,320], "src": [320,272], "f": 0, "t": 411, "d": [108,982], "a": 1 }, + { "px": [368,320], "src": [320,272], "f": 0, "t": 411, "d": [108,983], "a": 1 }, + { "px": [384,320], "src": [320,272], "f": 0, "t": 411, "d": [108,984], "a": 1 }, + { "px": [400,320], "src": [320,272], "f": 0, "t": 411, "d": [108,985], "a": 1 }, + { "px": [416,320], "src": [320,272], "f": 0, "t": 411, "d": [108,986], "a": 1 }, + { "px": [432,320], "src": [320,272], "f": 0, "t": 411, "d": [108,987], "a": 1 }, + { "px": [448,320], "src": [320,272], "f": 0, "t": 411, "d": [108,988], "a": 1 }, + { "px": [464,320], "src": [320,272], "f": 0, "t": 411, "d": [108,989], "a": 1 }, + { "px": [288,336], "src": [320,272], "f": 0, "t": 411, "d": [108,1026], "a": 1 }, + { "px": [304,336], "src": [320,272], "f": 0, "t": 411, "d": [108,1027], "a": 1 }, + { "px": [320,336], "src": [320,272], "f": 0, "t": 411, "d": [108,1028], "a": 1 }, + { "px": [336,336], "src": [320,272], "f": 0, "t": 411, "d": [108,1029], "a": 1 }, + { "px": [352,336], "src": [320,272], "f": 0, "t": 411, "d": [108,1030], "a": 1 }, + { "px": [368,336], "src": [320,272], "f": 0, "t": 411, "d": [108,1031], "a": 1 }, + { "px": [384,336], "src": [320,272], "f": 0, "t": 411, "d": [108,1032], "a": 1 }, + { "px": [416,336], "src": [320,272], "f": 0, "t": 411, "d": [108,1034], "a": 1 }, + { "px": [432,336], "src": [320,272], "f": 0, "t": 411, "d": [108,1035], "a": 1 }, + { "px": [448,336], "src": [320,272], "f": 0, "t": 411, "d": [108,1036], "a": 1 }, + { "px": [464,336], "src": [320,272], "f": 0, "t": 411, "d": [108,1037], "a": 1 }, + { "px": [288,368], "src": [320,272], "f": 0, "t": 411, "d": [108,1122], "a": 1 }, + { "px": [304,368], "src": [320,272], "f": 0, "t": 411, "d": [108,1123], "a": 1 }, + { "px": [336,368], "src": [320,272], "f": 0, "t": 411, "d": [108,1125], "a": 1 }, + { "px": [288,384], "src": [320,272], "f": 0, "t": 411, "d": [108,1170], "a": 1 }, + { "px": [304,384], "src": [320,272], "f": 0, "t": 411, "d": [108,1171], "a": 1 }, + { "px": [320,384], "src": [320,272], "f": 0, "t": 411, "d": [108,1172], "a": 1 }, + { "px": [288,400], "src": [320,272], "f": 0, "t": 411, "d": [108,1218], "a": 1 }, + { "px": [304,400], "src": [320,272], "f": 0, "t": 411, "d": [108,1219], "a": 1 }, + { "px": [320,400], "src": [320,272], "f": 0, "t": 411, "d": [108,1220], "a": 1 }, + { "px": [336,400], "src": [320,272], "f": 0, "t": 411, "d": [108,1221], "a": 1 }, + { "px": [336,416], "src": [320,272], "f": 0, "t": 411, "d": [108,1269], "a": 1 }, + { "px": [352,416], "src": [320,272], "f": 0, "t": 411, "d": [108,1270], "a": 1 }, + { "px": [368,416], "src": [320,272], "f": 0, "t": 411, "d": [108,1271], "a": 1 }, + { "px": [384,416], "src": [320,272], "f": 0, "t": 411, "d": [108,1272], "a": 1 }, + { "px": [400,416], "src": [320,272], "f": 0, "t": 411, "d": [108,1273], "a": 1 }, + { "px": [416,416], "src": [320,272], "f": 0, "t": 411, "d": [108,1274], "a": 1 }, + { "px": [432,416], "src": [320,272], "f": 0, "t": 411, "d": [108,1275], "a": 1 }, + { "px": [448,416], "src": [320,272], "f": 0, "t": 411, "d": [108,1276], "a": 1 }, + { "px": [464,416], "src": [320,272], "f": 0, "t": 411, "d": [108,1277], "a": 1 }, + { "px": [336,432], "src": [320,272], "f": 0, "t": 411, "d": [108,1317], "a": 1 }, + { "px": [352,432], "src": [320,272], "f": 0, "t": 411, "d": [108,1318], "a": 1 }, + { "px": [368,432], "src": [320,272], "f": 0, "t": 411, "d": [108,1319], "a": 1 }, + { "px": [384,432], "src": [320,272], "f": 0, "t": 411, "d": [108,1320], "a": 1 }, + { "px": [400,432], "src": [320,272], "f": 0, "t": 411, "d": [108,1321], "a": 1 }, + { "px": [416,432], "src": [320,272], "f": 0, "t": 411, "d": [108,1322], "a": 1 }, + { "px": [432,432], "src": [320,272], "f": 0, "t": 411, "d": [108,1323], "a": 1 }, + { "px": [448,432], "src": [320,272], "f": 0, "t": 411, "d": [108,1324], "a": 1 }, + { "px": [464,432], "src": [320,272], "f": 0, "t": 411, "d": [108,1325], "a": 1 }, + { "px": [336,448], "src": [320,272], "f": 0, "t": 411, "d": [108,1365], "a": 1 }, + { "px": [352,448], "src": [320,272], "f": 0, "t": 411, "d": [108,1366], "a": 1 }, + { "px": [368,448], "src": [320,272], "f": 0, "t": 411, "d": [108,1367], "a": 1 }, + { "px": [384,448], "src": [320,272], "f": 0, "t": 411, "d": [108,1368], "a": 1 }, + { "px": [416,448], "src": [320,272], "f": 0, "t": 411, "d": [108,1370], "a": 1 }, + { "px": [432,448], "src": [320,272], "f": 0, "t": 411, "d": [108,1371], "a": 1 }, + { "px": [448,448], "src": [320,272], "f": 0, "t": 411, "d": [108,1372], "a": 1 }, + { "px": [464,448], "src": [320,272], "f": 0, "t": 411, "d": [108,1373], "a": 1 }, + { "px": [464,288], "src": [256,240], "f": 0, "t": 361, "d": [107,894], "a": 1 }, + { "px": [480,288], "src": [272,240], "f": 0, "t": 362, "d": [107,894], "a": 1 }, + { "px": [288,304], "src": [256,240], "f": 1, "t": 361, "d": [107,929], "a": 1 }, + { "px": [272,304], "src": [272,240], "f": 1, "t": 362, "d": [107,929], "a": 1 }, + { "px": [464,304], "src": [256,240], "f": 0, "t": 361, "d": [107,942], "a": 1 }, + { "px": [480,304], "src": [272,240], "f": 0, "t": 362, "d": [107,942], "a": 1 }, + { "px": [288,320], "src": [256,240], "f": 1, "t": 361, "d": [107,977], "a": 1 }, + { "px": [272,320], "src": [272,240], "f": 1, "t": 362, "d": [107,977], "a": 1 }, + { "px": [464,320], "src": [256,240], "f": 0, "t": 361, "d": [107,990], "a": 1 }, + { "px": [480,320], "src": [272,240], "f": 0, "t": 362, "d": [107,990], "a": 1 }, + { "px": [288,336], "src": [256,240], "f": 1, "t": 361, "d": [107,1025], "a": 1 }, + { "px": [272,336], "src": [272,240], "f": 1, "t": 362, "d": [107,1025], "a": 1 }, + { "px": [288,352], "src": [256,240], "f": 1, "t": 361, "d": [107,1073], "a": 1 }, + { "px": [272,352], "src": [272,240], "f": 1, "t": 362, "d": [107,1073], "a": 1 }, + { "px": [272,352], "src": [256,240], "f": 0, "t": 361, "d": [107,1074], "a": 1 }, + { "px": [288,352], "src": [272,240], "f": 0, "t": 362, "d": [107,1074], "a": 1 }, + { "px": [288,368], "src": [256,240], "f": 1, "t": 361, "d": [107,1121], "a": 1 }, + { "px": [272,368], "src": [272,240], "f": 1, "t": 362, "d": [107,1121], "a": 1 }, + { "px": [288,384], "src": [256,240], "f": 1, "t": 361, "d": [107,1169], "a": 1 }, + { "px": [272,384], "src": [272,240], "f": 1, "t": 362, "d": [107,1169], "a": 1 }, + { "px": [336,384], "src": [256,240], "f": 0, "t": 361, "d": [107,1174], "a": 1 }, + { "px": [352,384], "src": [272,240], "f": 0, "t": 362, "d": [107,1174], "a": 1 }, + { "px": [288,400], "src": [256,240], "f": 1, "t": 361, "d": [107,1217], "a": 1 }, + { "px": [272,400], "src": [272,240], "f": 1, "t": 362, "d": [107,1217], "a": 1 }, + { "px": [336,400], "src": [256,240], "f": 0, "t": 361, "d": [107,1222], "a": 1 }, + { "px": [352,400], "src": [272,240], "f": 0, "t": 362, "d": [107,1222], "a": 1 }, + { "px": [336,416], "src": [256,240], "f": 1, "t": 361, "d": [107,1268], "a": 1 }, + { "px": [320,416], "src": [272,240], "f": 1, "t": 362, "d": [107,1268], "a": 1 }, + { "px": [336,432], "src": [256,240], "f": 1, "t": 361, "d": [107,1316], "a": 1 }, + { "px": [320,432], "src": [272,240], "f": 1, "t": 362, "d": [107,1316], "a": 1 }, + { "px": [464,432], "src": [256,240], "f": 0, "t": 361, "d": [107,1326], "a": 1 }, + { "px": [480,432], "src": [272,240], "f": 0, "t": 362, "d": [107,1326], "a": 1 }, + { "px": [272,320], "src": [256,240], "f": 0, "t": 361, "d": [105,978], "a": 1 }, + { "px": [288,320], "src": [272,240], "f": 0, "t": 362, "d": [105,978], "a": 1 }, + { "px": [304,320], "src": [288,240], "f": 0, "t": 363, "d": [105,978], "a": 1 }, + { "px": [320,384], "src": [256,240], "f": 0, "t": 361, "d": [105,1173], "a": 1 }, + { "px": [336,384], "src": [272,240], "f": 0, "t": 362, "d": [105,1173], "a": 1 }, + { "px": [352,384], "src": [288,240], "f": 0, "t": 363, "d": [105,1173], "a": 1 }, + { "px": [304,320], "src": [144,240], "f": 2, "t": 354, "d": [112,884], "a": 1 }, + { "px": [304,304], "src": [144,256], "f": 2, "t": 377, "d": [112,884], "a": 1 }, + { "px": [304,288], "src": [144,272], "f": 2, "t": 400, "d": [112,884], "a": 1 }, + { "px": [320,320], "src": [160,240], "f": 2, "t": 355, "d": [112,884], "a": 1 }, + { "px": [320,304], "src": [160,256], "f": 2, "t": 378, "d": [112,884], "a": 1 }, + { "px": [320,288], "src": [160,272], "f": 2, "t": 401, "d": [112,884], "a": 1 }, + { "px": [336,320], "src": [176,240], "f": 2, "t": 356, "d": [112,884], "a": 1 }, + { "px": [336,304], "src": [176,256], "f": 2, "t": 379, "d": [112,884], "a": 1 }, + { "px": [336,288], "src": [176,272], "f": 2, "t": 402, "d": [112,884], "a": 1 }, + { "px": [384,304], "src": [144,240], "f": 0, "t": 354, "d": [112,1033], "a": 1 }, + { "px": [384,320], "src": [144,256], "f": 0, "t": 377, "d": [112,1033], "a": 1 }, + { "px": [384,336], "src": [144,272], "f": 0, "t": 400, "d": [112,1033], "a": 1 }, + { "px": [400,304], "src": [160,240], "f": 0, "t": 355, "d": [112,1033], "a": 1 }, + { "px": [400,320], "src": [160,256], "f": 0, "t": 378, "d": [112,1033], "a": 1 }, + { "px": [400,336], "src": [160,272], "f": 0, "t": 401, "d": [112,1033], "a": 1 }, + { "px": [416,304], "src": [176,240], "f": 0, "t": 356, "d": [112,1033], "a": 1 }, + { "px": [416,320], "src": [176,256], "f": 0, "t": 379, "d": [112,1033], "a": 1 }, + { "px": [416,336], "src": [176,272], "f": 0, "t": 402, "d": [112,1033], "a": 1 }, + { "px": [384,416], "src": [144,240], "f": 0, "t": 354, "d": [112,1369], "a": 1 }, + { "px": [384,432], "src": [144,256], "f": 0, "t": 377, "d": [112,1369], "a": 1 }, + { "px": [384,448], "src": [144,272], "f": 0, "t": 400, "d": [112,1369], "a": 1 }, + { "px": [400,416], "src": [160,240], "f": 0, "t": 355, "d": [112,1369], "a": 1 }, + { "px": [400,432], "src": [160,256], "f": 0, "t": 378, "d": [112,1369], "a": 1 }, + { "px": [400,448], "src": [160,272], "f": 0, "t": 401, "d": [112,1369], "a": 1 }, + { "px": [416,416], "src": [176,240], "f": 0, "t": 356, "d": [112,1369], "a": 1 }, + { "px": [416,432], "src": [176,256], "f": 0, "t": 379, "d": [112,1369], "a": 1 }, + { "px": [416,448], "src": [176,272], "f": 0, "t": 402, "d": [112,1369], "a": 1 }, + { "px": [272,304], "src": [192,304], "f": 2, "t": 449, "d": [113,881], "a": 1 }, + { "px": [272,288], "src": [192,320], "f": 2, "t": 472, "d": [113,881], "a": 1 }, + { "px": [288,304], "src": [208,304], "f": 2, "t": 450, "d": [113,881], "a": 1 }, + { "px": [288,288], "src": [208,320], "f": 2, "t": 473, "d": [113,881], "a": 1 }, + { "px": [304,304], "src": [224,304], "f": 2, "t": 451, "d": [113,881], "a": 1 }, + { "px": [304,288], "src": [224,320], "f": 2, "t": 474, "d": [113,881], "a": 1 }, + { "px": [480,320], "src": [192,304], "f": 1, "t": 449, "d": [113,1038], "a": 1 }, + { "px": [480,336], "src": [192,320], "f": 1, "t": 472, "d": [113,1038], "a": 1 }, + { "px": [464,320], "src": [208,304], "f": 1, "t": 450, "d": [113,1038], "a": 1 }, + { "px": [464,336], "src": [208,320], "f": 1, "t": 473, "d": [113,1038], "a": 1 }, + { "px": [448,320], "src": [224,304], "f": 1, "t": 451, "d": [113,1038], "a": 1 }, + { "px": [448,336], "src": [224,320], "f": 1, "t": 474, "d": [113,1038], "a": 1 }, + { "px": [352,384], "src": [192,304], "f": 3, "t": 449, "d": [113,1126], "a": 1 }, + { "px": [352,368], "src": [192,320], "f": 3, "t": 472, "d": [113,1126], "a": 1 }, + { "px": [336,384], "src": [208,304], "f": 3, "t": 450, "d": [113,1126], "a": 1 }, + { "px": [336,368], "src": [208,320], "f": 3, "t": 473, "d": [113,1126], "a": 1 }, + { "px": [320,384], "src": [224,304], "f": 3, "t": 451, "d": [113,1126], "a": 1 }, + { "px": [320,368], "src": [224,320], "f": 3, "t": 474, "d": [113,1126], "a": 1 }, + { "px": [480,432], "src": [192,304], "f": 3, "t": 449, "d": [113,1278], "a": 1 }, + { "px": [480,416], "src": [192,320], "f": 3, "t": 472, "d": [113,1278], "a": 1 }, + { "px": [464,432], "src": [208,304], "f": 3, "t": 450, "d": [113,1278], "a": 1 }, + { "px": [464,416], "src": [208,320], "f": 3, "t": 473, "d": [113,1278], "a": 1 }, + { "px": [448,432], "src": [224,304], "f": 3, "t": 451, "d": [113,1278], "a": 1 }, + { "px": [448,416], "src": [224,320], "f": 3, "t": 474, "d": [113,1278], "a": 1 }, + { "px": [320,432], "src": [192,304], "f": 0, "t": 449, "d": [113,1364], "a": 1 }, + { "px": [320,448], "src": [192,320], "f": 0, "t": 472, "d": [113,1364], "a": 1 }, + { "px": [336,432], "src": [208,304], "f": 0, "t": 450, "d": [113,1364], "a": 1 }, + { "px": [336,448], "src": [208,320], "f": 0, "t": 473, "d": [113,1364], "a": 1 }, + { "px": [352,432], "src": [224,304], "f": 0, "t": 451, "d": [113,1364], "a": 1 }, + { "px": [352,448], "src": [224,320], "f": 0, "t": 474, "d": [113,1364], "a": 1 }, + { "px": [480,432], "src": [192,304], "f": 1, "t": 449, "d": [113,1374], "a": 1 }, + { "px": [480,448], "src": [192,320], "f": 1, "t": 472, "d": [113,1374], "a": 1 }, + { "px": [464,432], "src": [208,304], "f": 1, "t": 450, "d": [113,1374], "a": 1 }, + { "px": [464,448], "src": [208,320], "f": 1, "t": 473, "d": [113,1374], "a": 1 }, + { "px": [448,432], "src": [224,304], "f": 1, "t": 451, "d": [113,1374], "a": 1 }, + { "px": [448,448], "src": [224,320], "f": 1, "t": 474, "d": [113,1374], "a": 1 }, + { "px": [320,368], "src": [128,224], "f": 0, "t": 330, "d": [114,1124], "a": 1 }, + { "px": [416,288], "src": [128,208], "f": 0, "t": 307, "d": [115,890], "a": 1 }, + { "px": [416,304], "src": [128,224], "f": 0, "t": 330, "d": [115,890], "a": 1 } + ], + "seed": 5774442, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [{ "levelIid": "9312a0d0-66b0-11ec-a595-a934707bd447", "dir": "s" }] + }, + { + "identifier": "Sewers1", + "iid": "a36fda00-66b0-11ec-9cd7-ffa8f8d0b484", + "uid": 42, + "worldX": 512, + "worldY": 512, + "worldDepth": 0, + "pxWid": 256, + "pxHei": 512, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a36fda05-66b0-11ec-9cd7-1f23fbb89ea4", + "levelId": 42, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 8773081, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Ladder", + "__grid": [12,30], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "0ab4ab60-66b0-11ec-9ccd-fdb315945fc4", + "width": 16, + "height": 32, + "defUid": 134, + "px": [192,480], + "fieldInstances": [] + }, + { + "__identifier": "Item", + "__grid": [3,13], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "61c77d80-66b0-11ec-8b7b-9f180732e1db", + "width": 24, + "height": 24, + "defUid": 72, + "px": [56,224], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gold", "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gold"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [3,29], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 0, "y": 640, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "647addb0-66b0-11ec-8b7b-bbc0182dd04a", + "width": 24, + "height": 24, + "defUid": 72, + "px": [56,480], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Armor", "__tile": { "tilesetUid": 133, "x": 0, "y": 640, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Armor"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Ladder", + "__grid": [10,10], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "73315870-66b0-11ec-8b7b-79c435d3e320", + "width": 16, + "height": 112, + "defUid": 134, + "px": [160,160], + "fieldInstances": [] + }, + { + "__identifier": "Item", + "__grid": [6,9], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 96, "y": 976, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a67a5010-66b0-11ec-8b7b-d35918af82d9", + "width": 24, + "height": 24, + "defUid": 72, + "px": [104,160], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gem", "__tile": { "tilesetUid": 133, "x": 96, "y": 976, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gem"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [4,9], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 96, "y": 976, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a705a020-66b0-11ec-8b7b-394d1429f33c", + "width": 24, + "height": 24, + "defUid": 72, + "px": [72,160], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gem", "__tile": { "tilesetUid": 133, "x": 96, "y": 976, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gem"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [8,9], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 96, "y": 976, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a8208600-66b0-11ec-8b7b-f3f1f99dc9c5", + "width": 24, + "height": 24, + "defUid": 72, + "px": [136,160], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gem", "__tile": { "tilesetUid": 133, "x": 96, "y": 976, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gem"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [5,13], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 80, "y": 960, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "ad891b20-66b0-11ec-8b7b-6bd6c116571f", + "width": 24, + "height": 24, + "defUid": 72, + "px": [88,224], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "GoldNuggets", "__tile": { "tilesetUid": 133, "x": 80, "y": 960, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["GoldNuggets"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [null] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Ladder", + "__grid": [3,17], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "e08334d0-66b0-11ec-8923-49bb818dd44a", + "width": 16, + "height": 128, + "defUid": 134, + "px": [48,272], + "fieldInstances": [] + }, + { + "__identifier": "Teleport", + "__grid": [13,22], + "__pivot": [0.5,1], + "__tags": ["actor"], + "__tile": { "tilesetUid": 133, "x": 224, "y": 176, "w": 16, "h": 16 }, + "__smartColor": "#EC50FF", + "iid": "eec0d610-66b0-11ec-8923-93cc88ee368d", + "width": 24, + "height": 24, + "defUid": 130, + "px": [216,368], + "fieldInstances": [{ "__identifier": "destination", "__type": "EntityRef", "__value": { + "entityIid": "efa1c030-66b0-11ec-8923-1f96484ed71d", + "layerIid": "a3707645-66b0-11ec-9cd7-cf8dbd45f43c", + "levelIid": "a3707640-66b0-11ec-9cd7-59efc6b24075", + "worldIid": "ca3d7420-c640-11ed-ad34-5f1a115c4cf3" + }, "__tile": null, "defUid": 131, "realEditorValues": [{ + "id": "V_String", + "params": ["efa1c030-66b0-11ec-8923-1f96484ed71d"] + }] }] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36fda06-66b0-11ec-9cd7-7f842359295f", + "levelId": 42, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [128,48], "src": [320,128], "f": 0, "t": 204, "d": [26,56], "a": 1 }, + { "px": [192,48], "src": [320,128], "f": 1, "t": 204, "d": [26,60], "a": 1 }, + { "px": [128,64], "src": [320,128], "f": 0, "t": 204, "d": [26,72], "a": 1 }, + { "px": [192,64], "src": [320,128], "f": 1, "t": 204, "d": [26,76], "a": 1 }, + { "px": [128,80], "src": [320,128], "f": 0, "t": 204, "d": [26,88], "a": 1 }, + { "px": [192,80], "src": [320,128], "f": 1, "t": 204, "d": [26,92], "a": 1 }, + { "px": [128,96], "src": [320,128], "f": 0, "t": 204, "d": [26,104], "a": 1 }, + { "px": [192,96], "src": [320,128], "f": 1, "t": 204, "d": [26,108], "a": 1 }, + { "px": [192,112], "src": [320,128], "f": 1, "t": 204, "d": [26,124], "a": 1 }, + { "px": [192,128], "src": [320,128], "f": 1, "t": 204, "d": [26,140], "a": 1 }, + { "px": [192,144], "src": [320,128], "f": 1, "t": 204, "d": [26,156], "a": 1 }, + { "px": [32,176], "src": [320,128], "f": 0, "t": 204, "d": [26,178], "a": 1 }, + { "px": [192,176], "src": [320,128], "f": 1, "t": 204, "d": [26,188], "a": 1 }, + { "px": [32,192], "src": [320,128], "f": 0, "t": 204, "d": [26,194], "a": 1 }, + { "px": [192,192], "src": [320,128], "f": 1, "t": 204, "d": [26,204], "a": 1 }, + { "px": [32,208], "src": [320,128], "f": 0, "t": 204, "d": [26,210], "a": 1 }, + { "px": [192,208], "src": [320,128], "f": 1, "t": 204, "d": [26,220], "a": 1 }, + { "px": [224,224], "src": [320,128], "f": 1, "t": 204, "d": [26,238], "a": 1 }, + { "px": [32,240], "src": [320,128], "f": 0, "t": 204, "d": [26,242], "a": 1 }, + { "px": [224,240], "src": [320,128], "f": 1, "t": 204, "d": [26,254], "a": 1 }, + { "px": [32,256], "src": [320,128], "f": 0, "t": 204, "d": [26,258], "a": 1 }, + { "px": [224,256], "src": [320,128], "f": 1, "t": 204, "d": [26,270], "a": 1 }, + { "px": [48,320], "src": [320,128], "f": 0, "t": 204, "d": [26,323], "a": 1 }, + { "px": [112,320], "src": [320,128], "f": 1, "t": 204, "d": [26,327], "a": 1 }, + { "px": [192,320], "src": [320,128], "f": 0, "t": 204, "d": [26,332], "a": 1 }, + { "px": [224,320], "src": [320,128], "f": 1, "t": 204, "d": [26,334], "a": 1 }, + { "px": [48,336], "src": [320,128], "f": 0, "t": 204, "d": [26,339], "a": 1 }, + { "px": [224,336], "src": [320,128], "f": 1, "t": 204, "d": [26,350], "a": 1 }, + { "px": [48,352], "src": [320,128], "f": 0, "t": 204, "d": [26,355], "a": 1 }, + { "px": [224,352], "src": [320,128], "f": 1, "t": 204, "d": [26,366], "a": 1 }, + { "px": [48,368], "src": [320,128], "f": 0, "t": 204, "d": [26,371], "a": 1 }, + { "px": [48,384], "src": [320,128], "f": 0, "t": 204, "d": [26,387], "a": 1 }, + { "px": [112,384], "src": [320,128], "f": 1, "t": 204, "d": [26,391], "a": 1 }, + { "px": [224,400], "src": [320,128], "f": 1, "t": 204, "d": [26,414], "a": 1 }, + { "px": [80,416], "src": [320,128], "f": 0, "t": 204, "d": [26,421], "a": 1 }, + { "px": [224,416], "src": [320,128], "f": 1, "t": 204, "d": [26,430], "a": 1 }, + { "px": [32,432], "src": [320,128], "f": 0, "t": 204, "d": [26,434], "a": 1 }, + { "px": [224,432], "src": [320,128], "f": 1, "t": 204, "d": [26,446], "a": 1 }, + { "px": [32,448], "src": [320,128], "f": 0, "t": 204, "d": [26,450], "a": 1 }, + { "px": [224,448], "src": [320,128], "f": 1, "t": 204, "d": [26,462], "a": 1 }, + { "px": [32,464], "src": [320,128], "f": 0, "t": 204, "d": [26,466], "a": 1 }, + { "px": [224,464], "src": [320,128], "f": 1, "t": 204, "d": [26,478], "a": 1 }, + { "px": [160,496], "src": [320,128], "f": 0, "t": 204, "d": [26,506], "a": 1 }, + { "px": [128,224], "src": [320,96], "f": 0, "t": 158, "d": [138,232], "a": 1 }, + { "px": [112,368], "src": [320,96], "f": 1, "t": 158, "d": [138,375], "a": 1 }, + { "px": [80,400], "src": [320,96], "f": 0, "t": 158, "d": [138,405], "a": 1 }, + { "px": [192,480], "src": [320,96], "f": 0, "t": 158, "d": [138,492], "a": 1 }, + { "px": [128,48], "src": [336,112], "f": 0, "t": 182, "d": [27,56], "a": 1 }, + { "px": [144,48], "src": [336,112], "f": 0, "t": 182, "d": [27,57], "a": 1 }, + { "px": [160,48], "src": [336,112], "f": 0, "t": 182, "d": [27,58], "a": 1 }, + { "px": [176,48], "src": [336,112], "f": 0, "t": 182, "d": [27,59], "a": 1 }, + { "px": [192,48], "src": [336,112], "f": 0, "t": 182, "d": [27,60], "a": 1 }, + { "px": [0,112], "src": [336,112], "f": 0, "t": 182, "d": [27,112], "a": 1 }, + { "px": [16,112], "src": [336,112], "f": 0, "t": 182, "d": [27,113], "a": 1 }, + { "px": [32,112], "src": [336,112], "f": 0, "t": 182, "d": [27,114], "a": 1 }, + { "px": [48,112], "src": [336,112], "f": 0, "t": 182, "d": [27,115], "a": 1 }, + { "px": [64,112], "src": [336,112], "f": 0, "t": 182, "d": [27,116], "a": 1 }, + { "px": [80,112], "src": [336,112], "f": 0, "t": 182, "d": [27,117], "a": 1 }, + { "px": [96,112], "src": [336,112], "f": 0, "t": 182, "d": [27,118], "a": 1 }, + { "px": [112,112], "src": [336,112], "f": 0, "t": 182, "d": [27,119], "a": 1 }, + { "px": [32,176], "src": [336,112], "f": 0, "t": 182, "d": [27,178], "a": 1 }, + { "px": [48,176], "src": [336,112], "f": 0, "t": 182, "d": [27,179], "a": 1 }, + { "px": [64,176], "src": [336,112], "f": 0, "t": 182, "d": [27,180], "a": 1 }, + { "px": [80,176], "src": [336,112], "f": 0, "t": 182, "d": [27,181], "a": 1 }, + { "px": [96,176], "src": [336,112], "f": 0, "t": 182, "d": [27,182], "a": 1 }, + { "px": [112,176], "src": [336,112], "f": 0, "t": 182, "d": [27,183], "a": 1 }, + { "px": [128,176], "src": [336,112], "f": 0, "t": 182, "d": [27,184], "a": 1 }, + { "px": [144,176], "src": [336,112], "f": 0, "t": 182, "d": [27,185], "a": 1 }, + { "px": [160,176], "src": [336,112], "f": 0, "t": 182, "d": [27,186], "a": 1 }, + { "px": [176,176], "src": [336,112], "f": 0, "t": 182, "d": [27,187], "a": 1 }, + { "px": [192,176], "src": [336,112], "f": 0, "t": 182, "d": [27,188], "a": 1 }, + { "px": [208,224], "src": [336,112], "f": 0, "t": 182, "d": [27,237], "a": 1 }, + { "px": [224,224], "src": [336,112], "f": 0, "t": 182, "d": [27,238], "a": 1 }, + { "px": [32,240], "src": [336,112], "f": 0, "t": 182, "d": [27,242], "a": 1 }, + { "px": [48,240], "src": [336,112], "f": 0, "t": 182, "d": [27,243], "a": 1 }, + { "px": [64,240], "src": [336,112], "f": 0, "t": 182, "d": [27,244], "a": 1 }, + { "px": [80,240], "src": [336,112], "f": 0, "t": 182, "d": [27,245], "a": 1 }, + { "px": [96,240], "src": [336,112], "f": 0, "t": 182, "d": [27,246], "a": 1 }, + { "px": [112,240], "src": [336,112], "f": 0, "t": 182, "d": [27,247], "a": 1 }, + { "px": [48,320], "src": [336,112], "f": 0, "t": 182, "d": [27,323], "a": 1 }, + { "px": [64,320], "src": [336,112], "f": 0, "t": 182, "d": [27,324], "a": 1 }, + { "px": [80,320], "src": [336,112], "f": 0, "t": 182, "d": [27,325], "a": 1 }, + { "px": [96,320], "src": [336,112], "f": 0, "t": 182, "d": [27,326], "a": 1 }, + { "px": [112,320], "src": [336,112], "f": 0, "t": 182, "d": [27,327], "a": 1 }, + { "px": [192,320], "src": [336,112], "f": 0, "t": 182, "d": [27,332], "a": 1 }, + { "px": [208,320], "src": [336,112], "f": 0, "t": 182, "d": [27,333], "a": 1 }, + { "px": [224,320], "src": [336,112], "f": 0, "t": 182, "d": [27,334], "a": 1 }, + { "px": [128,336], "src": [336,112], "f": 0, "t": 182, "d": [27,344], "a": 1 }, + { "px": [144,336], "src": [336,112], "f": 0, "t": 182, "d": [27,345], "a": 1 }, + { "px": [160,336], "src": [336,112], "f": 0, "t": 182, "d": [27,346], "a": 1 }, + { "px": [176,336], "src": [336,112], "f": 0, "t": 182, "d": [27,347], "a": 1 }, + { "px": [128,400], "src": [336,112], "f": 0, "t": 182, "d": [27,408], "a": 1 }, + { "px": [144,400], "src": [336,112], "f": 0, "t": 182, "d": [27,409], "a": 1 }, + { "px": [160,400], "src": [336,112], "f": 0, "t": 182, "d": [27,410], "a": 1 }, + { "px": [176,400], "src": [336,112], "f": 0, "t": 182, "d": [27,411], "a": 1 }, + { "px": [192,400], "src": [336,112], "f": 0, "t": 182, "d": [27,412], "a": 1 }, + { "px": [208,400], "src": [336,112], "f": 0, "t": 182, "d": [27,413], "a": 1 }, + { "px": [224,400], "src": [336,112], "f": 0, "t": 182, "d": [27,414], "a": 1 }, + { "px": [32,432], "src": [336,112], "f": 0, "t": 182, "d": [27,434], "a": 1 }, + { "px": [48,432], "src": [336,112], "f": 0, "t": 182, "d": [27,435], "a": 1 }, + { "px": [64,432], "src": [336,112], "f": 0, "t": 182, "d": [27,436], "a": 1 }, + { "px": [160,496], "src": [336,112], "f": 0, "t": 182, "d": [27,506], "a": 1 }, + { "px": [176,496], "src": [336,112], "f": 0, "t": 182, "d": [27,507], "a": 1 }, + { "px": [128,112], "src": [320,112], "f": 0, "t": 181, "d": [137,120], "a": 1 }, + { "px": [192,224], "src": [320,112], "f": 1, "t": 181, "d": [137,236], "a": 1 }, + { "px": [128,240], "src": [320,112], "f": 0, "t": 181, "d": [137,248], "a": 1 }, + { "px": [112,336], "src": [320,112], "f": 1, "t": 181, "d": [137,343], "a": 1 }, + { "px": [192,336], "src": [320,112], "f": 0, "t": 181, "d": [137,348], "a": 1 }, + { "px": [112,400], "src": [320,112], "f": 1, "t": 181, "d": [137,407], "a": 1 }, + { "px": [80,432], "src": [320,112], "f": 0, "t": 181, "d": [137,437], "a": 1 }, + { "px": [192,496], "src": [320,112], "f": 0, "t": 181, "d": [137,508], "a": 1 } + ], + "seed": 1652633, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36fda07-66b0-11ec-9cd7-555759bf0c47", + "levelId": 42, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1, + 1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0, + 0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, + 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1, + 1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, + 1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1, + 1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1 + ], + "autoLayerTiles": [ + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [8,5], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [8,11], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [8,13], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [8,24], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [8,26], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [8,28], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [8,30], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [8,47], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [8,62], "a": 1 }, + { "px": [80,64], "src": [32,32], "f": 0, "t": 48, "d": [8,69], "a": 1 }, + { "px": [64,80], "src": [32,32], "f": 0, "t": 48, "d": [8,84], "a": 1 }, + { "px": [96,80], "src": [32,32], "f": 0, "t": 48, "d": [8,86], "a": 1 }, + { "px": [240,160], "src": [32,32], "f": 0, "t": 48, "d": [8,175], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [8,176], "a": 1 }, + { "px": [224,176], "src": [32,32], "f": 0, "t": 48, "d": [8,190], "a": 1 }, + { "px": [240,192], "src": [32,32], "f": 0, "t": 48, "d": [8,207], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [8,208], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [8,272], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [8,289], "a": 1 }, + { "px": [48,288], "src": [32,32], "f": 0, "t": 48, "d": [8,291], "a": 1 }, + { "px": [176,288], "src": [32,32], "f": 0, "t": 48, "d": [8,299], "a": 1 }, + { "px": [0,304], "src": [32,32], "f": 0, "t": 48, "d": [8,304], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [8,321], "a": 1 }, + { "px": [16,384], "src": [32,32], "f": 0, "t": 48, "d": [8,385], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [8,432], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [8,464], "a": 1 }, + { "px": [32,496], "src": [32,32], "f": 0, "t": 48, "d": [8,498], "a": 1 }, + { "px": [64,496], "src": [32,32], "f": 0, "t": 48, "d": [8,500], "a": 1 }, + { "px": [128,496], "src": [32,32], "f": 0, "t": 48, "d": [8,504], "a": 1 }, + { "px": [112,0], "src": [96,96], "f": 0, "t": 144, "d": [83,7], "a": 1 }, + { "px": [144,0], "src": [96,96], "f": 0, "t": 144, "d": [83,9], "a": 1 }, + { "px": [240,0], "src": [96,96], "f": 0, "t": 144, "d": [83,15], "a": 1 }, + { "px": [96,16], "src": [64,96], "f": 0, "t": 142, "d": [83,22], "a": 1 }, + { "px": [80,32], "src": [64,96], "f": 0, "t": 142, "d": [83,37], "a": 1 }, + { "px": [96,48], "src": [96,96], "f": 0, "t": 144, "d": [83,54], "a": 1 }, + { "px": [16,64], "src": [96,96], "f": 0, "t": 144, "d": [83,65], "a": 1 }, + { "px": [48,64], "src": [96,96], "f": 0, "t": 144, "d": [83,67], "a": 1 }, + { "px": [240,64], "src": [96,96], "f": 0, "t": 144, "d": [83,79], "a": 1 }, + { "px": [0,80], "src": [64,96], "f": 0, "t": 142, "d": [83,80], "a": 1 }, + { "px": [32,80], "src": [64,96], "f": 0, "t": 142, "d": [83,82], "a": 1 }, + { "px": [224,80], "src": [64,96], "f": 0, "t": 142, "d": [83,94], "a": 1 }, + { "px": [240,96], "src": [96,96], "f": 0, "t": 144, "d": [83,111], "a": 1 }, + { "px": [224,112], "src": [96,96], "f": 0, "t": 144, "d": [83,126], "a": 1 }, + { "px": [240,128], "src": [64,96], "f": 0, "t": 142, "d": [83,143], "a": 1 }, + { "px": [224,144], "src": [96,96], "f": 0, "t": 144, "d": [83,158], "a": 1 }, + { "px": [0,240], "src": [64,96], "f": 0, "t": 142, "d": [83,240], "a": 1 }, + { "px": [80,288], "src": [64,96], "f": 0, "t": 142, "d": [83,293], "a": 1 }, + { "px": [112,288], "src": [96,96], "f": 0, "t": 144, "d": [83,295], "a": 1 }, + { "px": [144,288], "src": [96,96], "f": 0, "t": 144, "d": [83,297], "a": 1 }, + { "px": [208,288], "src": [96,96], "f": 0, "t": 144, "d": [83,301], "a": 1 }, + { "px": [240,288], "src": [96,96], "f": 0, "t": 144, "d": [83,303], "a": 1 }, + { "px": [160,304], "src": [96,96], "f": 0, "t": 144, "d": [83,314], "a": 1 }, + { "px": [0,336], "src": [64,96], "f": 0, "t": 142, "d": [83,336], "a": 1 }, + { "px": [16,352], "src": [64,96], "f": 0, "t": 142, "d": [83,353], "a": 1 }, + { "px": [0,368], "src": [64,96], "f": 0, "t": 142, "d": [83,368], "a": 1 }, + { "px": [0,400], "src": [64,96], "f": 0, "t": 142, "d": [83,400], "a": 1 }, + { "px": [0,496], "src": [64,96], "f": 0, "t": 142, "d": [83,496], "a": 1 }, + { "px": [96,496], "src": [64,96], "f": 0, "t": 142, "d": [83,502], "a": 1 }, + { "px": [224,496], "src": [64,96], "f": 0, "t": 142, "d": [83,510], "a": 1 }, + { "px": [96,0], "src": [224,96], "f": 0, "t": 152, "d": [101,6], "a": 1 }, + { "px": [128,0], "src": [224,96], "f": 0, "t": 152, "d": [101,8], "a": 1 }, + { "px": [160,0], "src": [192,16], "f": 0, "t": 35, "d": [101,10], "a": 1 }, + { "px": [192,0], "src": [192,16], "f": 0, "t": 35, "d": [101,12], "a": 1 }, + { "px": [224,0], "src": [96,0], "f": 0, "t": 6, "d": [101,14], "a": 1 }, + { "px": [80,16], "src": [192,16], "f": 0, "t": 35, "d": [101,21], "a": 1 }, + { "px": [112,16], "src": [192,16], "f": 0, "t": 35, "d": [101,23], "a": 1 }, + { "px": [144,16], "src": [224,96], "f": 0, "t": 152, "d": [101,25], "a": 1 }, + { "px": [176,16], "src": [224,96], "f": 0, "t": 152, "d": [101,27], "a": 1 }, + { "px": [208,16], "src": [96,0], "f": 0, "t": 6, "d": [101,29], "a": 1 }, + { "px": [240,16], "src": [192,16], "f": 0, "t": 35, "d": [101,31], "a": 1 }, + { "px": [96,32], "src": [224,96], "f": 0, "t": 152, "d": [101,38], "a": 1 }, + { "px": [224,32], "src": [224,96], "f": 0, "t": 152, "d": [101,46], "a": 1 }, + { "px": [80,48], "src": [224,96], "f": 0, "t": 152, "d": [101,53], "a": 1 }, + { "px": [240,48], "src": [224,96], "f": 0, "t": 152, "d": [101,63], "a": 1 }, + { "px": [0,64], "src": [96,0], "f": 0, "t": 6, "d": [101,64], "a": 1 }, + { "px": [32,64], "src": [224,96], "f": 0, "t": 152, "d": [101,66], "a": 1 }, + { "px": [64,64], "src": [224,96], "f": 0, "t": 152, "d": [101,68], "a": 1 }, + { "px": [96,64], "src": [192,16], "f": 0, "t": 35, "d": [101,70], "a": 1 }, + { "px": [224,64], "src": [192,16], "f": 0, "t": 35, "d": [101,78], "a": 1 }, + { "px": [16,80], "src": [224,96], "f": 0, "t": 152, "d": [101,81], "a": 1 }, + { "px": [48,80], "src": [224,96], "f": 0, "t": 152, "d": [101,83], "a": 1 }, + { "px": [80,80], "src": [192,16], "f": 0, "t": 35, "d": [101,85], "a": 1 }, + { "px": [240,80], "src": [96,0], "f": 0, "t": 6, "d": [101,95], "a": 1 }, + { "px": [224,96], "src": [192,16], "f": 0, "t": 35, "d": [101,110], "a": 1 }, + { "px": [240,112], "src": [224,96], "f": 0, "t": 152, "d": [101,127], "a": 1 }, + { "px": [224,128], "src": [96,0], "f": 0, "t": 6, "d": [101,142], "a": 1 }, + { "px": [240,144], "src": [224,96], "f": 0, "t": 152, "d": [101,159], "a": 1 }, + { "px": [224,160], "src": [96,0], "f": 0, "t": 6, "d": [101,174], "a": 1 }, + { "px": [240,176], "src": [96,0], "f": 0, "t": 6, "d": [101,191], "a": 1 }, + { "px": [0,192], "src": [96,0], "f": 0, "t": 6, "d": [101,192], "a": 1 }, + { "px": [224,192], "src": [224,96], "f": 0, "t": 152, "d": [101,206], "a": 1 }, + { "px": [0,224], "src": [192,16], "f": 0, "t": 35, "d": [101,224], "a": 1 }, + { "px": [0,256], "src": [192,16], "f": 0, "t": 35, "d": [101,256], "a": 1 }, + { "px": [0,288], "src": [96,0], "f": 0, "t": 6, "d": [101,288], "a": 1 }, + { "px": [32,288], "src": [224,96], "f": 0, "t": 152, "d": [101,290], "a": 1 }, + { "px": [64,288], "src": [224,96], "f": 0, "t": 152, "d": [101,292], "a": 1 }, + { "px": [96,288], "src": [224,96], "f": 0, "t": 152, "d": [101,294], "a": 1 }, + { "px": [128,288], "src": [96,0], "f": 0, "t": 6, "d": [101,296], "a": 1 }, + { "px": [160,288], "src": [192,16], "f": 0, "t": 35, "d": [101,298], "a": 1 }, + { "px": [192,288], "src": [224,96], "f": 0, "t": 152, "d": [101,300], "a": 1 }, + { "px": [224,288], "src": [224,96], "f": 0, "t": 152, "d": [101,302], "a": 1 }, + { "px": [16,304], "src": [96,0], "f": 0, "t": 6, "d": [101,305], "a": 1 }, + { "px": [144,304], "src": [96,0], "f": 0, "t": 6, "d": [101,313], "a": 1 }, + { "px": [0,320], "src": [96,0], "f": 0, "t": 6, "d": [101,320], "a": 1 }, + { "px": [16,336], "src": [192,16], "f": 0, "t": 35, "d": [101,337], "a": 1 }, + { "px": [0,352], "src": [96,0], "f": 0, "t": 6, "d": [101,352], "a": 1 }, + { "px": [16,368], "src": [224,96], "f": 0, "t": 152, "d": [101,369], "a": 1 }, + { "px": [0,384], "src": [224,96], "f": 0, "t": 152, "d": [101,384], "a": 1 }, + { "px": [16,400], "src": [96,0], "f": 0, "t": 6, "d": [101,401], "a": 1 }, + { "px": [0,416], "src": [96,0], "f": 0, "t": 6, "d": [101,416], "a": 1 }, + { "px": [0,448], "src": [96,0], "f": 0, "t": 6, "d": [101,448], "a": 1 }, + { "px": [0,480], "src": [96,0], "f": 0, "t": 6, "d": [101,480], "a": 1 }, + { "px": [16,496], "src": [224,96], "f": 0, "t": 152, "d": [101,497], "a": 1 }, + { "px": [48,496], "src": [192,16], "f": 0, "t": 35, "d": [101,499], "a": 1 }, + { "px": [80,496], "src": [192,16], "f": 0, "t": 35, "d": [101,501], "a": 1 }, + { "px": [112,496], "src": [96,0], "f": 0, "t": 6, "d": [101,503], "a": 1 }, + { "px": [240,496], "src": [192,16], "f": 0, "t": 35, "d": [101,511], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [32,0], "src": [32,32], "f": 0, "t": 48, "d": [127,2], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [64,0], "src": [32,32], "f": 0, "t": 48, "d": [127,4], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,16], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [48,16], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [127,20], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [127,33], "a": 1 }, + { "px": [32,32], "src": [32,32], "f": 0, "t": 48, "d": [127,34], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [127,35], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [127,52], "a": 1 }, + { "px": [0,0], "src": [96,96], "f": 0, "t": 144, "d": [126,0], "a": 1 }, + { "px": [16,16], "src": [64,96], "f": 0, "t": 142, "d": [126,17], "a": 1 }, + { "px": [0,32], "src": [96,96], "f": 0, "t": 144, "d": [126,32], "a": 1 }, + { "px": [64,32], "src": [64,96], "f": 0, "t": 142, "d": [126,36], "a": 1 }, + { "px": [16,48], "src": [96,96], "f": 0, "t": 144, "d": [126,49], "a": 1 }, + { "px": [48,48], "src": [64,96], "f": 0, "t": 142, "d": [126,51], "a": 1 }, + { "px": [128,32], "src": [256,160], "f": 0, "t": 246, "d": [12,40], "a": 1 }, + { "px": [144,32], "src": [256,160], "f": 0, "t": 246, "d": [12,41], "a": 1 }, + { "px": [160,32], "src": [256,160], "f": 0, "t": 246, "d": [12,42], "a": 1 }, + { "px": [176,32], "src": [256,160], "f": 0, "t": 246, "d": [12,43], "a": 1 }, + { "px": [0,96], "src": [256,160], "f": 0, "t": 246, "d": [12,96], "a": 1 }, + { "px": [16,96], "src": [256,160], "f": 0, "t": 246, "d": [12,97], "a": 1 }, + { "px": [64,96], "src": [256,160], "f": 0, "t": 246, "d": [12,100], "a": 1 }, + { "px": [80,96], "src": [256,160], "f": 0, "t": 246, "d": [12,101], "a": 1 }, + { "px": [96,96], "src": [256,160], "f": 0, "t": 246, "d": [12,102], "a": 1 }, + { "px": [64,304], "src": [256,160], "f": 0, "t": 246, "d": [12,308], "a": 1 }, + { "px": [112,304], "src": [256,160], "f": 0, "t": 246, "d": [12,311], "a": 1 }, + { "px": [192,304], "src": [256,160], "f": 0, "t": 246, "d": [12,316], "a": 1 }, + { "px": [208,304], "src": [256,160], "f": 0, "t": 246, "d": [12,317], "a": 1 }, + { "px": [144,320], "src": [256,160], "f": 0, "t": 246, "d": [12,329], "a": 1 }, + { "px": [160,384], "src": [256,160], "f": 0, "t": 246, "d": [12,394], "a": 1 }, + { "px": [192,384], "src": [256,160], "f": 0, "t": 246, "d": [12,396], "a": 1 }, + { "px": [208,384], "src": [256,160], "f": 0, "t": 246, "d": [12,397], "a": 1 }, + { "px": [32,416], "src": [256,160], "f": 0, "t": 246, "d": [12,418], "a": 1 }, + { "px": [0,160], "src": [256,96], "f": 0, "t": 154, "d": [9,160], "a": 1 }, + { "px": [32,160], "src": [256,96], "f": 0, "t": 154, "d": [9,162], "a": 1 }, + { "px": [48,160], "src": [256,96], "f": 0, "t": 154, "d": [9,163], "a": 1 }, + { "px": [64,160], "src": [256,96], "f": 0, "t": 154, "d": [9,164], "a": 1 }, + { "px": [80,160], "src": [256,96], "f": 0, "t": 154, "d": [9,165], "a": 1 }, + { "px": [96,160], "src": [256,96], "f": 0, "t": 154, "d": [9,166], "a": 1 }, + { "px": [112,160], "src": [256,96], "f": 0, "t": 154, "d": [9,167], "a": 1 }, + { "px": [128,160], "src": [256,96], "f": 0, "t": 154, "d": [9,168], "a": 1 }, + { "px": [144,160], "src": [256,96], "f": 0, "t": 154, "d": [9,169], "a": 1 }, + { "px": [160,160], "src": [256,96], "f": 0, "t": 154, "d": [9,170], "a": 1 }, + { "px": [176,160], "src": [256,96], "f": 0, "t": 154, "d": [9,171], "a": 1 }, + { "px": [192,160], "src": [256,96], "f": 0, "t": 154, "d": [9,172], "a": 1 }, + { "px": [32,224], "src": [256,96], "f": 0, "t": 154, "d": [9,226], "a": 1 }, + { "px": [48,224], "src": [256,96], "f": 0, "t": 154, "d": [9,227], "a": 1 }, + { "px": [64,224], "src": [256,96], "f": 0, "t": 154, "d": [9,228], "a": 1 }, + { "px": [80,224], "src": [256,96], "f": 0, "t": 154, "d": [9,229], "a": 1 }, + { "px": [96,224], "src": [256,96], "f": 0, "t": 154, "d": [9,230], "a": 1 }, + { "px": [32,272], "src": [256,96], "f": 0, "t": 154, "d": [9,274], "a": 1 }, + { "px": [64,272], "src": [256,96], "f": 0, "t": 154, "d": [9,276], "a": 1 }, + { "px": [80,272], "src": [256,96], "f": 0, "t": 154, "d": [9,277], "a": 1 }, + { "px": [96,272], "src": [256,96], "f": 0, "t": 154, "d": [9,278], "a": 1 }, + { "px": [128,272], "src": [256,96], "f": 0, "t": 154, "d": [9,280], "a": 1 }, + { "px": [144,272], "src": [256,96], "f": 0, "t": 154, "d": [9,281], "a": 1 }, + { "px": [208,272], "src": [256,96], "f": 0, "t": 154, "d": [9,285], "a": 1 }, + { "px": [224,272], "src": [256,96], "f": 0, "t": 154, "d": [9,286], "a": 1 }, + { "px": [224,368], "src": [256,96], "f": 0, "t": 154, "d": [9,382], "a": 1 }, + { "px": [48,400], "src": [256,96], "f": 0, "t": 154, "d": [9,403], "a": 1 }, + { "px": [48,480], "src": [256,96], "f": 0, "t": 154, "d": [9,483], "a": 1 }, + { "px": [64,480], "src": [256,96], "f": 0, "t": 154, "d": [9,484], "a": 1 }, + { "px": [80,480], "src": [256,96], "f": 0, "t": 154, "d": [9,485], "a": 1 }, + { "px": [96,480], "src": [256,96], "f": 0, "t": 154, "d": [9,486], "a": 1 }, + { "px": [112,480], "src": [256,96], "f": 0, "t": 154, "d": [9,487], "a": 1 }, + { "px": [128,480], "src": [256,96], "f": 0, "t": 154, "d": [9,488], "a": 1 }, + { "px": [160,480], "src": [256,96], "f": 0, "t": 154, "d": [9,490], "a": 1 }, + { "px": [224,480], "src": [256,96], "f": 0, "t": 154, "d": [9,494], "a": 1 }, + { "px": [112,48], "src": [224,128], "f": 1, "t": 198, "d": [10,55], "a": 1 }, + { "px": [208,48], "src": [224,128], "f": 0, "t": 198, "d": [10,61], "a": 1 }, + { "px": [112,64], "src": [224,128], "f": 1, "t": 198, "d": [10,71], "a": 1 }, + { "px": [208,64], "src": [224,128], "f": 0, "t": 198, "d": [10,77], "a": 1 }, + { "px": [112,80], "src": [224,128], "f": 1, "t": 198, "d": [10,87], "a": 1 }, + { "px": [208,80], "src": [224,128], "f": 0, "t": 198, "d": [10,93], "a": 1 }, + { "px": [208,96], "src": [224,128], "f": 0, "t": 198, "d": [10,109], "a": 1 }, + { "px": [208,112], "src": [224,128], "f": 0, "t": 198, "d": [10,125], "a": 1 }, + { "px": [208,128], "src": [224,128], "f": 0, "t": 198, "d": [10,141], "a": 1 }, + { "px": [208,144], "src": [224,128], "f": 0, "t": 198, "d": [10,157], "a": 1 }, + { "px": [16,176], "src": [224,128], "f": 1, "t": 198, "d": [10,177], "a": 1 }, + { "px": [208,176], "src": [224,128], "f": 0, "t": 198, "d": [10,189], "a": 1 }, + { "px": [16,192], "src": [224,128], "f": 1, "t": 198, "d": [10,193], "a": 1 }, + { "px": [208,192], "src": [224,128], "f": 0, "t": 198, "d": [10,205], "a": 1 }, + { "px": [16,208], "src": [224,128], "f": 1, "t": 198, "d": [10,209], "a": 1 }, + { "px": [240,224], "src": [224,128], "f": 0, "t": 198, "d": [10,239], "a": 1 }, + { "px": [16,240], "src": [224,128], "f": 1, "t": 198, "d": [10,241], "a": 1 }, + { "px": [240,240], "src": [224,128], "f": 0, "t": 198, "d": [10,255], "a": 1 }, + { "px": [16,256], "src": [224,128], "f": 1, "t": 198, "d": [10,257], "a": 1 }, + { "px": [240,256], "src": [224,128], "f": 0, "t": 198, "d": [10,271], "a": 1 }, + { "px": [32,320], "src": [224,128], "f": 1, "t": 198, "d": [10,322], "a": 1 }, + { "px": [240,320], "src": [224,128], "f": 0, "t": 198, "d": [10,335], "a": 1 }, + { "px": [32,336], "src": [224,128], "f": 1, "t": 198, "d": [10,338], "a": 1 }, + { "px": [240,336], "src": [224,128], "f": 0, "t": 198, "d": [10,351], "a": 1 }, + { "px": [32,352], "src": [224,128], "f": 1, "t": 198, "d": [10,354], "a": 1 }, + { "px": [240,352], "src": [224,128], "f": 0, "t": 198, "d": [10,367], "a": 1 }, + { "px": [32,368], "src": [224,128], "f": 1, "t": 198, "d": [10,370], "a": 1 }, + { "px": [32,384], "src": [224,128], "f": 1, "t": 198, "d": [10,386], "a": 1 }, + { "px": [240,400], "src": [224,128], "f": 0, "t": 198, "d": [10,415], "a": 1 }, + { "px": [240,416], "src": [224,128], "f": 0, "t": 198, "d": [10,431], "a": 1 }, + { "px": [16,432], "src": [224,128], "f": 1, "t": 198, "d": [10,433], "a": 1 }, + { "px": [240,432], "src": [224,128], "f": 0, "t": 198, "d": [10,447], "a": 1 }, + { "px": [16,448], "src": [224,128], "f": 1, "t": 198, "d": [10,449], "a": 1 }, + { "px": [240,448], "src": [224,128], "f": 0, "t": 198, "d": [10,463], "a": 1 }, + { "px": [16,464], "src": [224,128], "f": 1, "t": 198, "d": [10,465], "a": 1 }, + { "px": [240,464], "src": [224,128], "f": 0, "t": 198, "d": [10,479], "a": 1 }, + { "px": [144,496], "src": [224,128], "f": 1, "t": 198, "d": [10,505], "a": 1 }, + { "px": [208,496], "src": [224,128], "f": 0, "t": 198, "d": [10,509], "a": 1 }, + { "px": [112,96], "src": [224,96], "f": 3, "t": 152, "d": [11,103], "a": 1 }, + { "px": [112,224], "src": [224,96], "f": 1, "t": 152, "d": [11,231], "a": 1 }, + { "px": [176,320], "src": [224,96], "f": 3, "t": 152, "d": [11,331], "a": 1 }, + { "px": [128,384], "src": [224,96], "f": 2, "t": 152, "d": [11,392], "a": 1 }, + { "px": [64,400], "src": [224,96], "f": 1, "t": 152, "d": [11,404], "a": 1 }, + { "px": [64,416], "src": [224,96], "f": 3, "t": 152, "d": [11,420], "a": 1 }, + { "px": [176,480], "src": [224,96], "f": 1, "t": 152, "d": [11,491], "a": 1 }, + { "px": [208,480], "src": [224,96], "f": 0, "t": 152, "d": [11,493], "a": 1 }, + { "px": [112,32], "src": [224,96], "f": 0, "t": 152, "d": [14,39], "a": 1 }, + { "px": [208,32], "src": [224,96], "f": 1, "t": 152, "d": [14,45], "a": 1 }, + { "px": [208,160], "src": [224,96], "f": 1, "t": 152, "d": [14,173], "a": 1 }, + { "px": [240,208], "src": [224,96], "f": 1, "t": 152, "d": [14,223], "a": 1 }, + { "px": [16,224], "src": [224,96], "f": 0, "t": 152, "d": [14,225], "a": 1 }, + { "px": [16,272], "src": [224,96], "f": 2, "t": 152, "d": [14,273], "a": 1 }, + { "px": [240,272], "src": [224,96], "f": 3, "t": 152, "d": [14,287], "a": 1 }, + { "px": [32,304], "src": [224,96], "f": 0, "t": 152, "d": [14,306], "a": 1 }, + { "px": [128,304], "src": [224,96], "f": 1, "t": 152, "d": [14,312], "a": 1 }, + { "px": [176,304], "src": [224,96], "f": 0, "t": 152, "d": [14,315], "a": 1 }, + { "px": [240,304], "src": [224,96], "f": 1, "t": 152, "d": [14,319], "a": 1 }, + { "px": [240,368], "src": [224,96], "f": 3, "t": 152, "d": [14,383], "a": 1 }, + { "px": [240,384], "src": [224,96], "f": 1, "t": 152, "d": [14,399], "a": 1 }, + { "px": [32,400], "src": [224,96], "f": 2, "t": 152, "d": [14,402], "a": 1 }, + { "px": [16,416], "src": [224,96], "f": 0, "t": 152, "d": [14,417], "a": 1 }, + { "px": [16,480], "src": [224,96], "f": 2, "t": 152, "d": [14,481], "a": 1 }, + { "px": [240,480], "src": [224,96], "f": 3, "t": 152, "d": [14,495], "a": 1 }, + { "px": [192,32], "src": [160,192], "f": 0, "t": 286, "d": [78,44], "a": 1 }, + { "px": [32,96], "src": [160,192], "f": 0, "t": 286, "d": [78,98], "a": 1 }, + { "px": [48,96], "src": [192,192], "f": 0, "t": 288, "d": [78,99], "a": 1 }, + { "px": [208,208], "src": [160,192], "f": 0, "t": 286, "d": [78,221], "a": 1 }, + { "px": [224,208], "src": [192,192], "f": 0, "t": 288, "d": [78,222], "a": 1 }, + { "px": [48,304], "src": [160,192], "f": 0, "t": 286, "d": [78,307], "a": 1 }, + { "px": [80,304], "src": [192,192], "f": 0, "t": 288, "d": [78,309], "a": 1 }, + { "px": [96,304], "src": [160,192], "f": 0, "t": 286, "d": [78,310], "a": 1 }, + { "px": [224,304], "src": [160,192], "f": 0, "t": 286, "d": [78,318], "a": 1 }, + { "px": [128,320], "src": [192,192], "f": 0, "t": 288, "d": [78,328], "a": 1 }, + { "px": [160,320], "src": [160,192], "f": 0, "t": 286, "d": [78,330], "a": 1 }, + { "px": [144,384], "src": [192,192], "f": 0, "t": 288, "d": [78,393], "a": 1 }, + { "px": [176,384], "src": [192,192], "f": 0, "t": 288, "d": [78,395], "a": 1 }, + { "px": [224,384], "src": [192,192], "f": 0, "t": 288, "d": [78,398], "a": 1 }, + { "px": [48,416], "src": [192,192], "f": 0, "t": 288, "d": [78,419], "a": 1 }, + { "px": [16,160], "src": [32,0], "f": 0, "t": 2, "d": [80,161], "a": 1 }, + { "px": [48,272], "src": [32,0], "f": 0, "t": 2, "d": [80,275], "a": 1 }, + { "px": [112,272], "src": [32,0], "f": 0, "t": 2, "d": [80,279], "a": 1 }, + { "px": [160,272], "src": [32,0], "f": 0, "t": 2, "d": [80,282], "a": 1 }, + { "px": [176,272], "src": [32,0], "f": 0, "t": 2, "d": [80,283], "a": 1 }, + { "px": [192,272], "src": [32,0], "f": 0, "t": 2, "d": [80,284], "a": 1 }, + { "px": [128,368], "src": [32,0], "f": 0, "t": 2, "d": [80,376], "a": 1 }, + { "px": [144,368], "src": [32,0], "f": 0, "t": 2, "d": [80,377], "a": 1 }, + { "px": [160,368], "src": [32,0], "f": 0, "t": 2, "d": [80,378], "a": 1 }, + { "px": [176,368], "src": [32,0], "f": 0, "t": 2, "d": [80,379], "a": 1 }, + { "px": [192,368], "src": [32,0], "f": 0, "t": 2, "d": [80,380], "a": 1 }, + { "px": [208,368], "src": [32,0], "f": 0, "t": 2, "d": [80,381], "a": 1 }, + { "px": [32,480], "src": [32,0], "f": 0, "t": 2, "d": [80,482], "a": 1 }, + { "px": [144,480], "src": [32,0], "f": 0, "t": 2, "d": [80,489], "a": 1 }, + { "px": [0,144], "src": [0,96], "f": 0, "t": 138, "d": [110,144], "a": 1 }, + { "px": [48,256], "src": [32,96], "f": 0, "t": 140, "d": [110,259], "a": 1 }, + { "px": [64,256], "src": [0,96], "f": 0, "t": 138, "d": [110,260], "a": 1 }, + { "px": [96,256], "src": [0,96], "f": 0, "t": 138, "d": [110,262], "a": 1 }, + { "px": [144,256], "src": [32,96], "f": 0, "t": 140, "d": [110,265], "a": 1 }, + { "px": [176,256], "src": [0,96], "f": 0, "t": 138, "d": [110,267], "a": 1 }, + { "px": [224,256], "src": [32,96], "f": 0, "t": 140, "d": [110,270], "a": 1 }, + { "px": [128,352], "src": [32,96], "f": 0, "t": 140, "d": [110,360], "a": 1 }, + { "px": [176,352], "src": [0,96], "f": 0, "t": 138, "d": [110,363], "a": 1 }, + { "px": [192,352], "src": [0,96], "f": 0, "t": 138, "d": [110,364], "a": 1 }, + { "px": [208,352], "src": [0,96], "f": 0, "t": 138, "d": [110,365], "a": 1 }, + { "px": [224,352], "src": [32,96], "f": 0, "t": 140, "d": [110,366], "a": 1 }, + { "px": [96,464], "src": [32,96], "f": 0, "t": 140, "d": [110,470], "a": 1 }, + { "px": [112,464], "src": [32,96], "f": 0, "t": 140, "d": [110,471], "a": 1 }, + { "px": [208,464], "src": [32,96], "f": 0, "t": 140, "d": [110,477], "a": 1 }, + { "px": [224,464], "src": [0,96], "f": 0, "t": 138, "d": [110,478], "a": 1 } + ], + "seed": 1093532, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a36fda08-66b0-11ec-9cd7-995b2e5737da", + "levelId": 42, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [144,48], "src": [320,272], "f": 0, "t": 411, "d": [108,57], "a": 1 }, + { "px": [160,48], "src": [320,272], "f": 0, "t": 411, "d": [108,58], "a": 1 }, + { "px": [176,48], "src": [320,272], "f": 0, "t": 411, "d": [108,59], "a": 1 }, + { "px": [144,64], "src": [320,272], "f": 0, "t": 411, "d": [108,73], "a": 1 }, + { "px": [160,64], "src": [320,272], "f": 0, "t": 411, "d": [108,74], "a": 1 }, + { "px": [176,64], "src": [320,272], "f": 0, "t": 411, "d": [108,75], "a": 1 }, + { "px": [144,80], "src": [320,272], "f": 0, "t": 411, "d": [108,89], "a": 1 }, + { "px": [160,80], "src": [320,272], "f": 0, "t": 411, "d": [108,90], "a": 1 }, + { "px": [176,80], "src": [320,272], "f": 0, "t": 411, "d": [108,91], "a": 1 }, + { "px": [144,96], "src": [320,272], "f": 0, "t": 411, "d": [108,105], "a": 1 }, + { "px": [160,96], "src": [320,272], "f": 0, "t": 411, "d": [108,106], "a": 1 }, + { "px": [176,96], "src": [320,272], "f": 0, "t": 411, "d": [108,107], "a": 1 }, + { "px": [0,112], "src": [320,272], "f": 0, "t": 411, "d": [108,112], "a": 1 }, + { "px": [16,112], "src": [320,272], "f": 0, "t": 411, "d": [108,113], "a": 1 }, + { "px": [32,112], "src": [320,272], "f": 0, "t": 411, "d": [108,114], "a": 1 }, + { "px": [48,112], "src": [320,272], "f": 0, "t": 411, "d": [108,115], "a": 1 }, + { "px": [112,112], "src": [320,272], "f": 0, "t": 411, "d": [108,119], "a": 1 }, + { "px": [128,112], "src": [320,272], "f": 0, "t": 411, "d": [108,120], "a": 1 }, + { "px": [144,112], "src": [320,272], "f": 0, "t": 411, "d": [108,121], "a": 1 }, + { "px": [160,112], "src": [320,272], "f": 0, "t": 411, "d": [108,122], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [108,123], "a": 1 }, + { "px": [0,128], "src": [320,272], "f": 0, "t": 411, "d": [108,128], "a": 1 }, + { "px": [16,128], "src": [320,272], "f": 0, "t": 411, "d": [108,129], "a": 1 }, + { "px": [32,128], "src": [320,272], "f": 0, "t": 411, "d": [108,130], "a": 1 }, + { "px": [48,128], "src": [320,272], "f": 0, "t": 411, "d": [108,131], "a": 1 }, + { "px": [64,128], "src": [320,272], "f": 0, "t": 411, "d": [108,132], "a": 1 }, + { "px": [80,128], "src": [320,272], "f": 0, "t": 411, "d": [108,133], "a": 1 }, + { "px": [112,128], "src": [320,272], "f": 0, "t": 411, "d": [108,135], "a": 1 }, + { "px": [128,128], "src": [320,272], "f": 0, "t": 411, "d": [108,136], "a": 1 }, + { "px": [144,128], "src": [320,272], "f": 0, "t": 411, "d": [108,137], "a": 1 }, + { "px": [160,128], "src": [320,272], "f": 0, "t": 411, "d": [108,138], "a": 1 }, + { "px": [176,128], "src": [320,272], "f": 0, "t": 411, "d": [108,139], "a": 1 }, + { "px": [0,144], "src": [320,272], "f": 0, "t": 411, "d": [108,144], "a": 1 }, + { "px": [16,144], "src": [320,272], "f": 0, "t": 411, "d": [108,145], "a": 1 }, + { "px": [32,144], "src": [320,272], "f": 0, "t": 411, "d": [108,146], "a": 1 }, + { "px": [48,144], "src": [320,272], "f": 0, "t": 411, "d": [108,147], "a": 1 }, + { "px": [64,144], "src": [320,272], "f": 0, "t": 411, "d": [108,148], "a": 1 }, + { "px": [80,144], "src": [320,272], "f": 0, "t": 411, "d": [108,149], "a": 1 }, + { "px": [96,144], "src": [320,272], "f": 0, "t": 411, "d": [108,150], "a": 1 }, + { "px": [112,144], "src": [320,272], "f": 0, "t": 411, "d": [108,151], "a": 1 }, + { "px": [128,144], "src": [320,272], "f": 0, "t": 411, "d": [108,152], "a": 1 }, + { "px": [144,144], "src": [320,272], "f": 0, "t": 411, "d": [108,153], "a": 1 }, + { "px": [176,144], "src": [320,272], "f": 0, "t": 411, "d": [108,155], "a": 1 }, + { "px": [48,176], "src": [320,272], "f": 0, "t": 411, "d": [108,179], "a": 1 }, + { "px": [64,176], "src": [320,272], "f": 0, "t": 411, "d": [108,180], "a": 1 }, + { "px": [112,176], "src": [320,272], "f": 0, "t": 411, "d": [108,183], "a": 1 }, + { "px": [128,176], "src": [320,272], "f": 0, "t": 411, "d": [108,184], "a": 1 }, + { "px": [144,176], "src": [320,272], "f": 0, "t": 411, "d": [108,185], "a": 1 }, + { "px": [176,176], "src": [320,272], "f": 0, "t": 411, "d": [108,187], "a": 1 }, + { "px": [48,192], "src": [320,272], "f": 0, "t": 411, "d": [108,195], "a": 1 }, + { "px": [64,192], "src": [320,272], "f": 0, "t": 411, "d": [108,196], "a": 1 }, + { "px": [80,192], "src": [320,272], "f": 0, "t": 411, "d": [108,197], "a": 1 }, + { "px": [112,192], "src": [320,272], "f": 0, "t": 411, "d": [108,199], "a": 1 }, + { "px": [128,192], "src": [320,272], "f": 0, "t": 411, "d": [108,200], "a": 1 }, + { "px": [144,192], "src": [320,272], "f": 0, "t": 411, "d": [108,201], "a": 1 }, + { "px": [160,192], "src": [320,272], "f": 0, "t": 411, "d": [108,202], "a": 1 }, + { "px": [176,192], "src": [320,272], "f": 0, "t": 411, "d": [108,203], "a": 1 }, + { "px": [48,208], "src": [320,272], "f": 0, "t": 411, "d": [108,211], "a": 1 }, + { "px": [64,208], "src": [320,272], "f": 0, "t": 411, "d": [108,212], "a": 1 }, + { "px": [96,208], "src": [320,272], "f": 0, "t": 411, "d": [108,214], "a": 1 }, + { "px": [112,208], "src": [320,272], "f": 0, "t": 411, "d": [108,215], "a": 1 }, + { "px": [128,208], "src": [320,272], "f": 0, "t": 411, "d": [108,216], "a": 1 }, + { "px": [144,208], "src": [320,272], "f": 0, "t": 411, "d": [108,217], "a": 1 }, + { "px": [160,208], "src": [320,272], "f": 0, "t": 411, "d": [108,218], "a": 1 }, + { "px": [176,208], "src": [320,272], "f": 0, "t": 411, "d": [108,219], "a": 1 }, + { "px": [144,224], "src": [320,272], "f": 0, "t": 411, "d": [108,233], "a": 1 }, + { "px": [160,224], "src": [320,272], "f": 0, "t": 411, "d": [108,234], "a": 1 }, + { "px": [176,224], "src": [320,272], "f": 0, "t": 411, "d": [108,235], "a": 1 }, + { "px": [192,224], "src": [320,272], "f": 0, "t": 411, "d": [108,236], "a": 1 }, + { "px": [208,224], "src": [320,272], "f": 0, "t": 411, "d": [108,237], "a": 1 }, + { "px": [48,240], "src": [320,272], "f": 0, "t": 411, "d": [108,243], "a": 1 }, + { "px": [64,240], "src": [320,272], "f": 0, "t": 411, "d": [108,244], "a": 1 }, + { "px": [80,240], "src": [320,272], "f": 0, "t": 411, "d": [108,245], "a": 1 }, + { "px": [96,240], "src": [320,272], "f": 0, "t": 411, "d": [108,246], "a": 1 }, + { "px": [112,240], "src": [320,272], "f": 0, "t": 411, "d": [108,247], "a": 1 }, + { "px": [128,240], "src": [320,272], "f": 0, "t": 411, "d": [108,248], "a": 1 }, + { "px": [144,240], "src": [320,272], "f": 0, "t": 411, "d": [108,249], "a": 1 }, + { "px": [160,240], "src": [320,272], "f": 0, "t": 411, "d": [108,250], "a": 1 }, + { "px": [176,240], "src": [320,272], "f": 0, "t": 411, "d": [108,251], "a": 1 }, + { "px": [192,240], "src": [320,272], "f": 0, "t": 411, "d": [108,252], "a": 1 }, + { "px": [208,240], "src": [320,272], "f": 0, "t": 411, "d": [108,253], "a": 1 }, + { "px": [48,256], "src": [320,272], "f": 0, "t": 411, "d": [108,259], "a": 1 }, + { "px": [64,256], "src": [320,272], "f": 0, "t": 411, "d": [108,260], "a": 1 }, + { "px": [80,256], "src": [320,272], "f": 0, "t": 411, "d": [108,261], "a": 1 }, + { "px": [96,256], "src": [320,272], "f": 0, "t": 411, "d": [108,262], "a": 1 }, + { "px": [112,256], "src": [320,272], "f": 0, "t": 411, "d": [108,263], "a": 1 }, + { "px": [128,256], "src": [320,272], "f": 0, "t": 411, "d": [108,264], "a": 1 }, + { "px": [144,256], "src": [320,272], "f": 0, "t": 411, "d": [108,265], "a": 1 }, + { "px": [160,256], "src": [320,272], "f": 0, "t": 411, "d": [108,266], "a": 1 }, + { "px": [176,256], "src": [320,272], "f": 0, "t": 411, "d": [108,267], "a": 1 }, + { "px": [192,256], "src": [320,272], "f": 0, "t": 411, "d": [108,268], "a": 1 }, + { "px": [208,256], "src": [320,272], "f": 0, "t": 411, "d": [108,269], "a": 1 }, + { "px": [64,320], "src": [320,272], "f": 0, "t": 411, "d": [108,324], "a": 1 }, + { "px": [96,320], "src": [320,272], "f": 0, "t": 411, "d": [108,326], "a": 1 }, + { "px": [208,320], "src": [320,272], "f": 0, "t": 411, "d": [108,333], "a": 1 }, + { "px": [64,336], "src": [320,272], "f": 0, "t": 411, "d": [108,340], "a": 1 }, + { "px": [80,336], "src": [320,272], "f": 0, "t": 411, "d": [108,341], "a": 1 }, + { "px": [96,336], "src": [320,272], "f": 0, "t": 411, "d": [108,342], "a": 1 }, + { "px": [112,336], "src": [320,272], "f": 0, "t": 411, "d": [108,343], "a": 1 }, + { "px": [128,336], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [144,336], "src": [320,272], "f": 0, "t": 411, "d": [108,345], "a": 1 }, + { "px": [160,336], "src": [320,272], "f": 0, "t": 411, "d": [108,346], "a": 1 }, + { "px": [176,336], "src": [320,272], "f": 0, "t": 411, "d": [108,347], "a": 1 }, + { "px": [192,336], "src": [320,272], "f": 0, "t": 411, "d": [108,348], "a": 1 }, + { "px": [208,336], "src": [320,272], "f": 0, "t": 411, "d": [108,349], "a": 1 }, + { "px": [64,352], "src": [320,272], "f": 0, "t": 411, "d": [108,356], "a": 1 }, + { "px": [80,352], "src": [320,272], "f": 0, "t": 411, "d": [108,357], "a": 1 }, + { "px": [96,352], "src": [320,272], "f": 0, "t": 411, "d": [108,358], "a": 1 }, + { "px": [112,352], "src": [320,272], "f": 0, "t": 411, "d": [108,359], "a": 1 }, + { "px": [128,352], "src": [320,272], "f": 0, "t": 411, "d": [108,360], "a": 1 }, + { "px": [144,352], "src": [320,272], "f": 0, "t": 411, "d": [108,361], "a": 1 }, + { "px": [160,352], "src": [320,272], "f": 0, "t": 411, "d": [108,362], "a": 1 }, + { "px": [176,352], "src": [320,272], "f": 0, "t": 411, "d": [108,363], "a": 1 }, + { "px": [192,352], "src": [320,272], "f": 0, "t": 411, "d": [108,364], "a": 1 }, + { "px": [208,352], "src": [320,272], "f": 0, "t": 411, "d": [108,365], "a": 1 }, + { "px": [64,368], "src": [320,272], "f": 0, "t": 411, "d": [108,372], "a": 1 }, + { "px": [80,368], "src": [320,272], "f": 0, "t": 411, "d": [108,373], "a": 1 }, + { "px": [96,368], "src": [320,272], "f": 0, "t": 411, "d": [108,374], "a": 1 }, + { "px": [64,384], "src": [320,272], "f": 0, "t": 411, "d": [108,388], "a": 1 }, + { "px": [80,384], "src": [320,272], "f": 0, "t": 411, "d": [108,389], "a": 1 }, + { "px": [96,384], "src": [320,272], "f": 0, "t": 411, "d": [108,390], "a": 1 }, + { "px": [96,400], "src": [320,272], "f": 0, "t": 411, "d": [108,406], "a": 1 }, + { "px": [112,400], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [128,400], "src": [320,272], "f": 0, "t": 411, "d": [108,408], "a": 1 }, + { "px": [144,400], "src": [320,272], "f": 0, "t": 411, "d": [108,409], "a": 1 }, + { "px": [176,400], "src": [320,272], "f": 0, "t": 411, "d": [108,411], "a": 1 }, + { "px": [208,400], "src": [320,272], "f": 0, "t": 411, "d": [108,413], "a": 1 }, + { "px": [96,416], "src": [320,272], "f": 0, "t": 411, "d": [108,422], "a": 1 }, + { "px": [112,416], "src": [320,272], "f": 0, "t": 411, "d": [108,423], "a": 1 }, + { "px": [144,416], "src": [320,272], "f": 0, "t": 411, "d": [108,425], "a": 1 }, + { "px": [160,416], "src": [320,272], "f": 0, "t": 411, "d": [108,426], "a": 1 }, + { "px": [176,416], "src": [320,272], "f": 0, "t": 411, "d": [108,427], "a": 1 }, + { "px": [192,416], "src": [320,272], "f": 0, "t": 411, "d": [108,428], "a": 1 }, + { "px": [208,416], "src": [320,272], "f": 0, "t": 411, "d": [108,429], "a": 1 }, + { "px": [48,432], "src": [320,272], "f": 0, "t": 411, "d": [108,435], "a": 1 }, + { "px": [64,432], "src": [320,272], "f": 0, "t": 411, "d": [108,436], "a": 1 }, + { "px": [80,432], "src": [320,272], "f": 0, "t": 411, "d": [108,437], "a": 1 }, + { "px": [96,432], "src": [320,272], "f": 0, "t": 411, "d": [108,438], "a": 1 }, + { "px": [112,432], "src": [320,272], "f": 0, "t": 411, "d": [108,439], "a": 1 }, + { "px": [128,432], "src": [320,272], "f": 0, "t": 411, "d": [108,440], "a": 1 }, + { "px": [144,432], "src": [320,272], "f": 0, "t": 411, "d": [108,441], "a": 1 }, + { "px": [160,432], "src": [320,272], "f": 0, "t": 411, "d": [108,442], "a": 1 }, + { "px": [176,432], "src": [320,272], "f": 0, "t": 411, "d": [108,443], "a": 1 }, + { "px": [192,432], "src": [320,272], "f": 0, "t": 411, "d": [108,444], "a": 1 }, + { "px": [208,432], "src": [320,272], "f": 0, "t": 411, "d": [108,445], "a": 1 }, + { "px": [64,448], "src": [320,272], "f": 0, "t": 411, "d": [108,452], "a": 1 }, + { "px": [80,448], "src": [320,272], "f": 0, "t": 411, "d": [108,453], "a": 1 }, + { "px": [112,448], "src": [320,272], "f": 0, "t": 411, "d": [108,455], "a": 1 }, + { "px": [128,448], "src": [320,272], "f": 0, "t": 411, "d": [108,456], "a": 1 }, + { "px": [144,448], "src": [320,272], "f": 0, "t": 411, "d": [108,457], "a": 1 }, + { "px": [160,448], "src": [320,272], "f": 0, "t": 411, "d": [108,458], "a": 1 }, + { "px": [176,448], "src": [320,272], "f": 0, "t": 411, "d": [108,459], "a": 1 }, + { "px": [192,448], "src": [320,272], "f": 0, "t": 411, "d": [108,460], "a": 1 }, + { "px": [208,448], "src": [320,272], "f": 0, "t": 411, "d": [108,461], "a": 1 }, + { "px": [48,464], "src": [320,272], "f": 0, "t": 411, "d": [108,467], "a": 1 }, + { "px": [64,464], "src": [320,272], "f": 0, "t": 411, "d": [108,468], "a": 1 }, + { "px": [80,464], "src": [320,272], "f": 0, "t": 411, "d": [108,469], "a": 1 }, + { "px": [96,464], "src": [320,272], "f": 0, "t": 411, "d": [108,470], "a": 1 }, + { "px": [112,464], "src": [320,272], "f": 0, "t": 411, "d": [108,471], "a": 1 }, + { "px": [128,464], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [144,464], "src": [320,272], "f": 0, "t": 411, "d": [108,473], "a": 1 }, + { "px": [176,464], "src": [320,272], "f": 0, "t": 411, "d": [108,475], "a": 1 }, + { "px": [192,464], "src": [320,272], "f": 0, "t": 411, "d": [108,476], "a": 1 }, + { "px": [208,464], "src": [320,272], "f": 0, "t": 411, "d": [108,477], "a": 1 }, + { "px": [176,496], "src": [320,272], "f": 0, "t": 411, "d": [108,507], "a": 1 }, + { "px": [176,48], "src": [256,240], "f": 0, "t": 361, "d": [107,60], "a": 1 }, + { "px": [192,48], "src": [272,240], "f": 0, "t": 362, "d": [107,60], "a": 1 }, + { "px": [144,64], "src": [256,240], "f": 1, "t": 361, "d": [107,72], "a": 1 }, + { "px": [128,64], "src": [272,240], "f": 1, "t": 362, "d": [107,72], "a": 1 }, + { "px": [176,64], "src": [256,240], "f": 0, "t": 361, "d": [107,76], "a": 1 }, + { "px": [192,64], "src": [272,240], "f": 0, "t": 362, "d": [107,76], "a": 1 }, + { "px": [144,80], "src": [256,240], "f": 1, "t": 361, "d": [107,88], "a": 1 }, + { "px": [128,80], "src": [272,240], "f": 1, "t": 362, "d": [107,88], "a": 1 }, + { "px": [176,80], "src": [256,240], "f": 0, "t": 361, "d": [107,92], "a": 1 }, + { "px": [192,80], "src": [272,240], "f": 0, "t": 362, "d": [107,92], "a": 1 }, + { "px": [144,96], "src": [256,240], "f": 1, "t": 361, "d": [107,104], "a": 1 }, + { "px": [128,96], "src": [272,240], "f": 1, "t": 362, "d": [107,104], "a": 1 }, + { "px": [176,96], "src": [256,240], "f": 0, "t": 361, "d": [107,108], "a": 1 }, + { "px": [192,96], "src": [272,240], "f": 0, "t": 362, "d": [107,108], "a": 1 }, + { "px": [176,112], "src": [256,240], "f": 0, "t": 361, "d": [107,124], "a": 1 }, + { "px": [192,112], "src": [272,240], "f": 0, "t": 362, "d": [107,124], "a": 1 }, + { "px": [176,128], "src": [256,240], "f": 0, "t": 361, "d": [107,140], "a": 1 }, + { "px": [192,128], "src": [272,240], "f": 0, "t": 362, "d": [107,140], "a": 1 }, + { "px": [176,144], "src": [256,240], "f": 0, "t": 361, "d": [107,156], "a": 1 }, + { "px": [192,144], "src": [272,240], "f": 0, "t": 362, "d": [107,156], "a": 1 }, + { "px": [176,176], "src": [256,240], "f": 0, "t": 361, "d": [107,188], "a": 1 }, + { "px": [192,176], "src": [272,240], "f": 0, "t": 362, "d": [107,188], "a": 1 }, + { "px": [48,192], "src": [256,240], "f": 1, "t": 361, "d": [107,194], "a": 1 }, + { "px": [32,192], "src": [272,240], "f": 1, "t": 362, "d": [107,194], "a": 1 }, + { "px": [176,192], "src": [256,240], "f": 0, "t": 361, "d": [107,204], "a": 1 }, + { "px": [192,192], "src": [272,240], "f": 0, "t": 362, "d": [107,204], "a": 1 }, + { "px": [176,208], "src": [256,240], "f": 0, "t": 361, "d": [107,220], "a": 1 }, + { "px": [192,208], "src": [272,240], "f": 0, "t": 362, "d": [107,220], "a": 1 }, + { "px": [144,224], "src": [256,240], "f": 1, "t": 361, "d": [107,232], "a": 1 }, + { "px": [128,224], "src": [272,240], "f": 1, "t": 362, "d": [107,232], "a": 1 }, + { "px": [208,224], "src": [256,240], "f": 0, "t": 361, "d": [107,238], "a": 1 }, + { "px": [224,224], "src": [272,240], "f": 0, "t": 362, "d": [107,238], "a": 1 }, + { "px": [208,240], "src": [256,240], "f": 0, "t": 361, "d": [107,254], "a": 1 }, + { "px": [224,240], "src": [272,240], "f": 0, "t": 362, "d": [107,254], "a": 1 }, + { "px": [48,256], "src": [256,240], "f": 1, "t": 361, "d": [107,258], "a": 1 }, + { "px": [32,256], "src": [272,240], "f": 1, "t": 362, "d": [107,258], "a": 1 }, + { "px": [208,256], "src": [256,240], "f": 0, "t": 361, "d": [107,270], "a": 1 }, + { "px": [224,256], "src": [272,240], "f": 0, "t": 362, "d": [107,270], "a": 1 }, + { "px": [96,320], "src": [256,240], "f": 0, "t": 361, "d": [107,327], "a": 1 }, + { "px": [112,320], "src": [272,240], "f": 0, "t": 362, "d": [107,327], "a": 1 }, + { "px": [208,320], "src": [256,240], "f": 1, "t": 361, "d": [107,332], "a": 1 }, + { "px": [192,320], "src": [272,240], "f": 1, "t": 362, "d": [107,332], "a": 1 }, + { "px": [64,336], "src": [256,240], "f": 1, "t": 361, "d": [107,339], "a": 1 }, + { "px": [48,336], "src": [272,240], "f": 1, "t": 362, "d": [107,339], "a": 1 }, + { "px": [208,336], "src": [256,240], "f": 0, "t": 361, "d": [107,350], "a": 1 }, + { "px": [224,336], "src": [272,240], "f": 0, "t": 362, "d": [107,350], "a": 1 }, + { "px": [64,352], "src": [256,240], "f": 1, "t": 361, "d": [107,355], "a": 1 }, + { "px": [48,352], "src": [272,240], "f": 1, "t": 362, "d": [107,355], "a": 1 }, + { "px": [64,368], "src": [256,240], "f": 1, "t": 361, "d": [107,371], "a": 1 }, + { "px": [48,368], "src": [272,240], "f": 1, "t": 362, "d": [107,371], "a": 1 }, + { "px": [96,368], "src": [256,240], "f": 0, "t": 361, "d": [107,375], "a": 1 }, + { "px": [112,368], "src": [272,240], "f": 0, "t": 362, "d": [107,375], "a": 1 }, + { "px": [64,384], "src": [256,240], "f": 1, "t": 361, "d": [107,387], "a": 1 }, + { "px": [48,384], "src": [272,240], "f": 1, "t": 362, "d": [107,387], "a": 1 }, + { "px": [96,384], "src": [256,240], "f": 0, "t": 361, "d": [107,391], "a": 1 }, + { "px": [112,384], "src": [272,240], "f": 0, "t": 362, "d": [107,391], "a": 1 }, + { "px": [96,400], "src": [256,240], "f": 1, "t": 361, "d": [107,405], "a": 1 }, + { "px": [80,400], "src": [272,240], "f": 1, "t": 362, "d": [107,405], "a": 1 }, + { "px": [208,400], "src": [256,240], "f": 0, "t": 361, "d": [107,414], "a": 1 }, + { "px": [224,400], "src": [272,240], "f": 0, "t": 362, "d": [107,414], "a": 1 }, + { "px": [96,416], "src": [256,240], "f": 1, "t": 361, "d": [107,421], "a": 1 }, + { "px": [80,416], "src": [272,240], "f": 1, "t": 362, "d": [107,421], "a": 1 }, + { "px": [208,416], "src": [256,240], "f": 0, "t": 361, "d": [107,430], "a": 1 }, + { "px": [224,416], "src": [272,240], "f": 0, "t": 362, "d": [107,430], "a": 1 }, + { "px": [208,432], "src": [256,240], "f": 0, "t": 361, "d": [107,446], "a": 1 }, + { "px": [224,432], "src": [272,240], "f": 0, "t": 362, "d": [107,446], "a": 1 }, + { "px": [48,448], "src": [256,240], "f": 1, "t": 361, "d": [107,450], "a": 1 }, + { "px": [32,448], "src": [272,240], "f": 1, "t": 362, "d": [107,450], "a": 1 }, + { "px": [208,448], "src": [256,240], "f": 0, "t": 361, "d": [107,462], "a": 1 }, + { "px": [224,448], "src": [272,240], "f": 0, "t": 362, "d": [107,462], "a": 1 }, + { "px": [48,464], "src": [256,240], "f": 1, "t": 361, "d": [107,466], "a": 1 }, + { "px": [32,464], "src": [272,240], "f": 1, "t": 362, "d": [107,466], "a": 1 }, + { "px": [208,464], "src": [256,240], "f": 0, "t": 361, "d": [107,478], "a": 1 }, + { "px": [224,464], "src": [272,240], "f": 0, "t": 362, "d": [107,478], "a": 1 }, + { "px": [176,480], "src": [256,240], "f": 0, "t": 361, "d": [107,492], "a": 1 }, + { "px": [192,480], "src": [272,240], "f": 0, "t": 362, "d": [107,492], "a": 1 }, + { "px": [176,496], "src": [256,240], "f": 1, "t": 361, "d": [107,506], "a": 1 }, + { "px": [160,496], "src": [272,240], "f": 1, "t": 362, "d": [107,506], "a": 1 }, + { "px": [176,496], "src": [256,240], "f": 0, "t": 361, "d": [107,508], "a": 1 }, + { "px": [192,496], "src": [272,240], "f": 0, "t": 362, "d": [107,508], "a": 1 }, + { "px": [80,128], "src": [256,240], "f": 0, "t": 361, "d": [105,134], "a": 1 }, + { "px": [96,128], "src": [272,240], "f": 0, "t": 362, "d": [105,134], "a": 1 }, + { "px": [112,128], "src": [288,240], "f": 0, "t": 363, "d": [105,134], "a": 1 }, + { "px": [80,192], "src": [256,240], "f": 0, "t": 361, "d": [105,198], "a": 1 }, + { "px": [96,192], "src": [272,240], "f": 0, "t": 362, "d": [105,198], "a": 1 }, + { "px": [112,192], "src": [288,240], "f": 0, "t": 363, "d": [105,198], "a": 1 }, + { "px": [112,416], "src": [256,240], "f": 0, "t": 361, "d": [105,424], "a": 1 }, + { "px": [128,416], "src": [272,240], "f": 0, "t": 362, "d": [105,424], "a": 1 }, + { "px": [144,416], "src": [288,240], "f": 0, "t": 363, "d": [105,424], "a": 1 }, + { "px": [32,448], "src": [256,240], "f": 0, "t": 361, "d": [105,451], "a": 1 }, + { "px": [48,448], "src": [272,240], "f": 0, "t": 362, "d": [105,451], "a": 1 }, + { "px": [64,448], "src": [288,240], "f": 0, "t": 363, "d": [105,451], "a": 1 }, + { "px": [80,448], "src": [256,240], "f": 0, "t": 361, "d": [105,454], "a": 1 }, + { "px": [96,448], "src": [272,240], "f": 0, "t": 362, "d": [105,454], "a": 1 }, + { "px": [112,448], "src": [288,240], "f": 0, "t": 363, "d": [105,454], "a": 1 }, + { "px": [64,144], "src": [144,240], "f": 2, "t": 354, "d": [112,117], "a": 1 }, + { "px": [64,128], "src": [144,256], "f": 2, "t": 377, "d": [112,117], "a": 1 }, + { "px": [64,112], "src": [144,272], "f": 2, "t": 400, "d": [112,117], "a": 1 }, + { "px": [80,144], "src": [160,240], "f": 2, "t": 355, "d": [112,117], "a": 1 }, + { "px": [80,128], "src": [160,256], "f": 2, "t": 378, "d": [112,117], "a": 1 }, + { "px": [80,112], "src": [160,272], "f": 2, "t": 401, "d": [112,117], "a": 1 }, + { "px": [96,144], "src": [176,240], "f": 2, "t": 356, "d": [112,117], "a": 1 }, + { "px": [96,128], "src": [176,256], "f": 2, "t": 379, "d": [112,117], "a": 1 }, + { "px": [96,112], "src": [176,272], "f": 2, "t": 402, "d": [112,117], "a": 1 }, + { "px": [144,112], "src": [144,240], "f": 0, "t": 354, "d": [112,154], "a": 1 }, + { "px": [144,128], "src": [144,256], "f": 0, "t": 377, "d": [112,154], "a": 1 }, + { "px": [144,144], "src": [144,272], "f": 0, "t": 400, "d": [112,154], "a": 1 }, + { "px": [160,112], "src": [160,240], "f": 0, "t": 355, "d": [112,154], "a": 1 }, + { "px": [160,128], "src": [160,256], "f": 0, "t": 378, "d": [112,154], "a": 1 }, + { "px": [160,144], "src": [160,272], "f": 0, "t": 401, "d": [112,154], "a": 1 }, + { "px": [176,112], "src": [176,240], "f": 0, "t": 356, "d": [112,154], "a": 1 }, + { "px": [176,128], "src": [176,256], "f": 0, "t": 379, "d": [112,154], "a": 1 }, + { "px": [176,144], "src": [176,272], "f": 0, "t": 402, "d": [112,154], "a": 1 }, + { "px": [64,208], "src": [144,240], "f": 2, "t": 354, "d": [112,181], "a": 1 }, + { "px": [64,192], "src": [144,256], "f": 2, "t": 377, "d": [112,181], "a": 1 }, + { "px": [64,176], "src": [144,272], "f": 2, "t": 400, "d": [112,181], "a": 1 }, + { "px": [80,208], "src": [160,240], "f": 2, "t": 355, "d": [112,181], "a": 1 }, + { "px": [80,192], "src": [160,256], "f": 2, "t": 378, "d": [112,181], "a": 1 }, + { "px": [80,176], "src": [160,272], "f": 2, "t": 401, "d": [112,181], "a": 1 }, + { "px": [96,208], "src": [176,240], "f": 2, "t": 356, "d": [112,181], "a": 1 }, + { "px": [96,192], "src": [176,256], "f": 2, "t": 379, "d": [112,181], "a": 1 }, + { "px": [96,176], "src": [176,272], "f": 2, "t": 402, "d": [112,181], "a": 1 }, + { "px": [144,208], "src": [144,240], "f": 2, "t": 354, "d": [112,186], "a": 1 }, + { "px": [144,192], "src": [144,256], "f": 2, "t": 377, "d": [112,186], "a": 1 }, + { "px": [144,176], "src": [144,272], "f": 2, "t": 400, "d": [112,186], "a": 1 }, + { "px": [160,208], "src": [160,240], "f": 2, "t": 355, "d": [112,186], "a": 1 }, + { "px": [160,192], "src": [160,256], "f": 2, "t": 378, "d": [112,186], "a": 1 }, + { "px": [160,176], "src": [160,272], "f": 2, "t": 401, "d": [112,186], "a": 1 }, + { "px": [176,208], "src": [176,240], "f": 2, "t": 356, "d": [112,186], "a": 1 }, + { "px": [176,192], "src": [176,256], "f": 2, "t": 379, "d": [112,186], "a": 1 }, + { "px": [176,176], "src": [176,272], "f": 2, "t": 402, "d": [112,186], "a": 1 }, + { "px": [64,176], "src": [144,240], "f": 0, "t": 354, "d": [112,213], "a": 1 }, + { "px": [64,192], "src": [144,256], "f": 0, "t": 377, "d": [112,213], "a": 1 }, + { "px": [64,208], "src": [144,272], "f": 0, "t": 400, "d": [112,213], "a": 1 }, + { "px": [80,176], "src": [160,240], "f": 0, "t": 355, "d": [112,213], "a": 1 }, + { "px": [80,192], "src": [160,256], "f": 0, "t": 378, "d": [112,213], "a": 1 }, + { "px": [80,208], "src": [160,272], "f": 0, "t": 401, "d": [112,213], "a": 1 }, + { "px": [96,176], "src": [176,240], "f": 0, "t": 356, "d": [112,213], "a": 1 }, + { "px": [96,192], "src": [176,256], "f": 0, "t": 379, "d": [112,213], "a": 1 }, + { "px": [96,208], "src": [176,272], "f": 0, "t": 402, "d": [112,213], "a": 1 }, + { "px": [64,352], "src": [144,240], "f": 2, "t": 354, "d": [112,325], "a": 1 }, + { "px": [64,336], "src": [144,256], "f": 2, "t": 377, "d": [112,325], "a": 1 }, + { "px": [64,320], "src": [144,272], "f": 2, "t": 400, "d": [112,325], "a": 1 }, + { "px": [80,352], "src": [160,240], "f": 2, "t": 355, "d": [112,325], "a": 1 }, + { "px": [80,336], "src": [160,256], "f": 2, "t": 378, "d": [112,325], "a": 1 }, + { "px": [80,320], "src": [160,272], "f": 2, "t": 401, "d": [112,325], "a": 1 }, + { "px": [96,352], "src": [176,240], "f": 2, "t": 356, "d": [112,325], "a": 1 }, + { "px": [96,336], "src": [176,256], "f": 2, "t": 379, "d": [112,325], "a": 1 }, + { "px": [96,320], "src": [176,272], "f": 2, "t": 402, "d": [112,325], "a": 1 }, + { "px": [144,432], "src": [144,240], "f": 2, "t": 354, "d": [112,410], "a": 1 }, + { "px": [144,416], "src": [144,256], "f": 2, "t": 377, "d": [112,410], "a": 1 }, + { "px": [144,400], "src": [144,272], "f": 2, "t": 400, "d": [112,410], "a": 1 }, + { "px": [160,432], "src": [160,240], "f": 2, "t": 355, "d": [112,410], "a": 1 }, + { "px": [160,416], "src": [160,256], "f": 2, "t": 378, "d": [112,410], "a": 1 }, + { "px": [160,400], "src": [160,272], "f": 2, "t": 401, "d": [112,410], "a": 1 }, + { "px": [176,432], "src": [176,240], "f": 2, "t": 356, "d": [112,410], "a": 1 }, + { "px": [176,416], "src": [176,256], "f": 2, "t": 379, "d": [112,410], "a": 1 }, + { "px": [176,400], "src": [176,272], "f": 2, "t": 402, "d": [112,410], "a": 1 }, + { "px": [144,432], "src": [144,240], "f": 0, "t": 354, "d": [112,474], "a": 1 }, + { "px": [144,448], "src": [144,256], "f": 0, "t": 377, "d": [112,474], "a": 1 }, + { "px": [144,464], "src": [144,272], "f": 0, "t": 400, "d": [112,474], "a": 1 }, + { "px": [160,432], "src": [160,240], "f": 0, "t": 355, "d": [112,474], "a": 1 }, + { "px": [160,448], "src": [160,256], "f": 0, "t": 378, "d": [112,474], "a": 1 }, + { "px": [160,464], "src": [160,272], "f": 0, "t": 401, "d": [112,474], "a": 1 }, + { "px": [176,432], "src": [176,240], "f": 0, "t": 356, "d": [112,474], "a": 1 }, + { "px": [176,448], "src": [176,256], "f": 0, "t": 379, "d": [112,474], "a": 1 }, + { "px": [176,464], "src": [176,272], "f": 0, "t": 402, "d": [112,474], "a": 1 }, + { "px": [128,64], "src": [192,304], "f": 2, "t": 449, "d": [113,56], "a": 1 }, + { "px": [128,48], "src": [192,320], "f": 2, "t": 472, "d": [113,56], "a": 1 }, + { "px": [144,64], "src": [208,304], "f": 2, "t": 450, "d": [113,56], "a": 1 }, + { "px": [144,48], "src": [208,320], "f": 2, "t": 473, "d": [113,56], "a": 1 }, + { "px": [160,64], "src": [224,304], "f": 2, "t": 451, "d": [113,56], "a": 1 }, + { "px": [160,48], "src": [224,320], "f": 2, "t": 474, "d": [113,56], "a": 1 }, + { "px": [32,192], "src": [192,304], "f": 0, "t": 449, "d": [113,210], "a": 1 }, + { "px": [32,208], "src": [192,320], "f": 0, "t": 472, "d": [113,210], "a": 1 }, + { "px": [48,192], "src": [208,304], "f": 0, "t": 450, "d": [113,210], "a": 1 }, + { "px": [48,208], "src": [208,320], "f": 0, "t": 473, "d": [113,210], "a": 1 }, + { "px": [64,192], "src": [224,304], "f": 0, "t": 451, "d": [113,210], "a": 1 }, + { "px": [64,208], "src": [224,320], "f": 0, "t": 474, "d": [113,210], "a": 1 }, + { "px": [32,256], "src": [192,304], "f": 2, "t": 449, "d": [113,242], "a": 1 }, + { "px": [32,240], "src": [192,320], "f": 2, "t": 472, "d": [113,242], "a": 1 }, + { "px": [48,256], "src": [208,304], "f": 2, "t": 450, "d": [113,242], "a": 1 }, + { "px": [48,240], "src": [208,320], "f": 2, "t": 473, "d": [113,242], "a": 1 }, + { "px": [64,256], "src": [224,304], "f": 2, "t": 451, "d": [113,242], "a": 1 }, + { "px": [64,240], "src": [224,320], "f": 2, "t": 474, "d": [113,242], "a": 1 }, + { "px": [48,336], "src": [192,304], "f": 2, "t": 449, "d": [113,323], "a": 1 }, + { "px": [48,320], "src": [192,320], "f": 2, "t": 472, "d": [113,323], "a": 1 }, + { "px": [64,336], "src": [208,304], "f": 2, "t": 450, "d": [113,323], "a": 1 }, + { "px": [64,320], "src": [208,320], "f": 2, "t": 473, "d": [113,323], "a": 1 }, + { "px": [80,336], "src": [224,304], "f": 2, "t": 451, "d": [113,323], "a": 1 }, + { "px": [80,320], "src": [224,320], "f": 2, "t": 474, "d": [113,323], "a": 1 }, + { "px": [224,336], "src": [192,304], "f": 3, "t": 449, "d": [113,334], "a": 1 }, + { "px": [224,320], "src": [192,320], "f": 3, "t": 472, "d": [113,334], "a": 1 }, + { "px": [208,336], "src": [208,304], "f": 3, "t": 450, "d": [113,334], "a": 1 }, + { "px": [208,320], "src": [208,320], "f": 3, "t": 473, "d": [113,334], "a": 1 }, + { "px": [192,336], "src": [224,304], "f": 3, "t": 451, "d": [113,334], "a": 1 }, + { "px": [192,320], "src": [224,320], "f": 3, "t": 474, "d": [113,334], "a": 1 }, + { "px": [224,336], "src": [192,304], "f": 1, "t": 449, "d": [113,366], "a": 1 }, + { "px": [224,352], "src": [192,320], "f": 1, "t": 472, "d": [113,366], "a": 1 }, + { "px": [208,336], "src": [208,304], "f": 1, "t": 450, "d": [113,366], "a": 1 }, + { "px": [208,352], "src": [208,320], "f": 1, "t": 473, "d": [113,366], "a": 1 }, + { "px": [192,336], "src": [224,304], "f": 1, "t": 451, "d": [113,366], "a": 1 }, + { "px": [192,352], "src": [224,320], "f": 1, "t": 474, "d": [113,366], "a": 1 }, + { "px": [32,448], "src": [192,304], "f": 2, "t": 449, "d": [113,434], "a": 1 }, + { "px": [32,432], "src": [192,320], "f": 2, "t": 472, "d": [113,434], "a": 1 }, + { "px": [48,448], "src": [208,304], "f": 2, "t": 450, "d": [113,434], "a": 1 }, + { "px": [48,432], "src": [208,320], "f": 2, "t": 473, "d": [113,434], "a": 1 }, + { "px": [64,448], "src": [224,304], "f": 2, "t": 451, "d": [113,434], "a": 1 }, + { "px": [64,432], "src": [224,320], "f": 2, "t": 474, "d": [113,434], "a": 1 }, + { "px": [64,112], "src": [96,208], "f": 0, "t": 305, "d": [114,116], "a": 1 }, + { "px": [96,112], "src": [96,208], "f": 0, "t": 305, "d": [114,118], "a": 1 }, + { "px": [32,176], "src": [128,224], "f": 0, "t": 330, "d": [114,178], "a": 1 }, + { "px": [96,176], "src": [128,208], "f": 0, "t": 307, "d": [115,182], "a": 1 }, + { "px": [96,192], "src": [128,224], "f": 0, "t": 330, "d": [115,182], "a": 1 }, + { "px": [192,400], "src": [128,208], "f": 0, "t": 307, "d": [115,412], "a": 1 }, + { "px": [192,416], "src": [128,224], "f": 0, "t": 330, "d": [115,412], "a": 1 } + ], + "seed": 6179480, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ + { "levelIid": "a36811d0-66b0-11ec-9cd7-4367627fb745", "dir": "w" }, + { "levelIid": "a36b6d30-66b0-11ec-9cd7-8145d2a69a56", "dir": "s" }, + { "levelIid": "a3707640-66b0-11ec-9cd7-59efc6b24075", "dir": "e" }, + { "levelIid": "a370eb70-66b0-11ec-9cd7-ef1d13410308", "dir": "e" }, + { "levelIid": "07caf540-66b0-11ec-a595-a55a7e13679d", "dir": "n" } + ] + }, + { + "identifier": "The_ponds", + "iid": "a3707640-66b0-11ec-9cd7-59efc6b24075", + "uid": 43, + "worldX": 768, + "worldY": 768, + "worldDepth": 0, + "pxWid": 768, + "pxHei": 256, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 48, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a3707645-66b0-11ec-9cd7-cf8dbd45f43c", + "levelId": 43, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 3591331, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Teleport", + "__grid": [14,3], + "__pivot": [0.5,1], + "__tags": ["actor"], + "__tile": { "tilesetUid": 133, "x": 224, "y": 176, "w": 16, "h": 16 }, + "__smartColor": "#EC50FF", + "iid": "b9c16e00-66b0-11ec-a595-f73311b85ab0", + "width": 24, + "height": 24, + "defUid": 130, + "px": [232,64], + "fieldInstances": [{ "__identifier": "destination", "__type": "EntityRef", "__value": { + "entityIid": "b70d98a0-66b0-11ec-a595-b125edb525fa", + "layerIid": "9312a0d1-66b0-11ec-a595-23396da8cf9f", + "levelIid": "9312a0d0-66b0-11ec-a595-a934707bd447", + "worldIid": "ca3d7420-c640-11ed-ad34-5f1a115c4cf3" + }, "__tile": null, "defUid": 131, "realEditorValues": [{ + "id": "V_String", + "params": ["b70d98a0-66b0-11ec-a595-b125edb525fa"] + }] }] + }, + { + "__identifier": "Teleport", + "__grid": [4,7], + "__pivot": [0.5,1], + "__tags": ["actor"], + "__tile": { "tilesetUid": 133, "x": 224, "y": 176, "w": 16, "h": 16 }, + "__smartColor": "#EC50FF", + "iid": "efa1c030-66b0-11ec-8923-1f96484ed71d", + "width": 24, + "height": 24, + "defUid": 130, + "px": [72,128], + "fieldInstances": [{ "__identifier": "destination", "__type": "EntityRef", "__value": { + "entityIid": "eec0d610-66b0-11ec-8923-93cc88ee368d", + "layerIid": "a36fda05-66b0-11ec-9cd7-1f23fbb89ea4", + "levelIid": "a36fda00-66b0-11ec-9cd7-ffa8f8d0b484", + "worldIid": "ca3d7420-c640-11ed-ad34-5f1a115c4cf3" + }, "__tile": null, "defUid": 131, "realEditorValues": [{ + "id": "V_String", + "params": ["eec0d610-66b0-11ec-8923-93cc88ee368d"] + }] }] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 48, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a3707646-66b0-11ec-9cd7-8b9b2dc80e86", + "levelId": 43, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [96,16], "src": [320,128], "f": 0, "t": 204, "d": [26,54], "a": 1 }, + { "px": [144,16], "src": [320,128], "f": 1, "t": 204, "d": [26,57], "a": 1 }, + { "px": [208,16], "src": [320,128], "f": 0, "t": 204, "d": [26,61], "a": 1 }, + { "px": [240,16], "src": [320,128], "f": 1, "t": 204, "d": [26,63], "a": 1 }, + { "px": [96,32], "src": [320,128], "f": 0, "t": 204, "d": [26,102], "a": 1 }, + { "px": [240,32], "src": [320,128], "f": 1, "t": 204, "d": [26,111], "a": 1 }, + { "px": [464,32], "src": [320,128], "f": 0, "t": 204, "d": [26,125], "a": 1 }, + { "px": [704,32], "src": [320,128], "f": 1, "t": 204, "d": [26,140], "a": 1 }, + { "px": [96,48], "src": [320,128], "f": 0, "t": 204, "d": [26,150], "a": 1 }, + { "px": [240,48], "src": [320,128], "f": 1, "t": 204, "d": [26,159], "a": 1 }, + { "px": [464,48], "src": [320,128], "f": 0, "t": 204, "d": [26,173], "a": 1 }, + { "px": [704,48], "src": [320,128], "f": 1, "t": 204, "d": [26,188], "a": 1 }, + { "px": [32,64], "src": [320,128], "f": 0, "t": 204, "d": [26,194], "a": 1 }, + { "px": [464,64], "src": [320,128], "f": 0, "t": 204, "d": [26,221], "a": 1 }, + { "px": [704,64], "src": [320,128], "f": 1, "t": 204, "d": [26,236], "a": 1 }, + { "px": [32,80], "src": [320,128], "f": 0, "t": 204, "d": [26,242], "a": 1 }, + { "px": [32,96], "src": [320,128], "f": 0, "t": 204, "d": [26,290], "a": 1 }, + { "px": [32,112], "src": [320,128], "f": 0, "t": 204, "d": [26,338], "a": 1 }, + { "px": [176,144], "src": [320,128], "f": 0, "t": 204, "d": [26,443], "a": 1 }, + { "px": [704,144], "src": [320,128], "f": 1, "t": 204, "d": [26,476], "a": 1 }, + { "px": [32,160], "src": [320,128], "f": 0, "t": 204, "d": [26,482], "a": 1 }, + { "px": [704,160], "src": [320,128], "f": 1, "t": 204, "d": [26,524], "a": 1 }, + { "px": [144,64], "src": [320,96], "f": 1, "t": 158, "d": [138,201], "a": 1 }, + { "px": [176,128], "src": [320,96], "f": 0, "t": 158, "d": [138,395], "a": 1 }, + { "px": [704,128], "src": [320,96], "f": 1, "t": 158, "d": [138,428], "a": 1 }, + { "px": [352,160], "src": [320,96], "f": 1, "t": 158, "d": [138,502], "a": 1 }, + { "px": [576,160], "src": [320,96], "f": 0, "t": 158, "d": [138,516], "a": 1 }, + { "px": [208,16], "src": [336,112], "f": 0, "t": 182, "d": [27,61], "a": 1 }, + { "px": [224,16], "src": [336,112], "f": 0, "t": 182, "d": [27,62], "a": 1 }, + { "px": [240,16], "src": [336,112], "f": 0, "t": 182, "d": [27,63], "a": 1 }, + { "px": [160,32], "src": [336,112], "f": 0, "t": 182, "d": [27,106], "a": 1 }, + { "px": [176,32], "src": [336,112], "f": 0, "t": 182, "d": [27,107], "a": 1 }, + { "px": [192,32], "src": [336,112], "f": 0, "t": 182, "d": [27,108], "a": 1 }, + { "px": [464,32], "src": [336,112], "f": 0, "t": 182, "d": [27,125], "a": 1 }, + { "px": [480,32], "src": [336,112], "f": 0, "t": 182, "d": [27,126], "a": 1 }, + { "px": [496,32], "src": [336,112], "f": 0, "t": 182, "d": [27,127], "a": 1 }, + { "px": [512,32], "src": [336,112], "f": 0, "t": 182, "d": [27,128], "a": 1 }, + { "px": [528,32], "src": [336,112], "f": 0, "t": 182, "d": [27,129], "a": 1 }, + { "px": [544,32], "src": [336,112], "f": 0, "t": 182, "d": [27,130], "a": 1 }, + { "px": [560,32], "src": [336,112], "f": 0, "t": 182, "d": [27,131], "a": 1 }, + { "px": [576,32], "src": [336,112], "f": 0, "t": 182, "d": [27,132], "a": 1 }, + { "px": [592,32], "src": [336,112], "f": 0, "t": 182, "d": [27,133], "a": 1 }, + { "px": [608,32], "src": [336,112], "f": 0, "t": 182, "d": [27,134], "a": 1 }, + { "px": [624,32], "src": [336,112], "f": 0, "t": 182, "d": [27,135], "a": 1 }, + { "px": [640,32], "src": [336,112], "f": 0, "t": 182, "d": [27,136], "a": 1 }, + { "px": [656,32], "src": [336,112], "f": 0, "t": 182, "d": [27,137], "a": 1 }, + { "px": [672,32], "src": [336,112], "f": 0, "t": 182, "d": [27,138], "a": 1 }, + { "px": [688,32], "src": [336,112], "f": 0, "t": 182, "d": [27,139], "a": 1 }, + { "px": [704,32], "src": [336,112], "f": 0, "t": 182, "d": [27,140], "a": 1 }, + { "px": [32,64], "src": [336,112], "f": 0, "t": 182, "d": [27,194], "a": 1 }, + { "px": [48,64], "src": [336,112], "f": 0, "t": 182, "d": [27,195], "a": 1 }, + { "px": [64,64], "src": [336,112], "f": 0, "t": 182, "d": [27,196], "a": 1 }, + { "px": [80,64], "src": [336,112], "f": 0, "t": 182, "d": [27,197], "a": 1 }, + { "px": [160,80], "src": [336,112], "f": 0, "t": 182, "d": [27,250], "a": 1 }, + { "px": [176,80], "src": [336,112], "f": 0, "t": 182, "d": [27,251], "a": 1 }, + { "px": [192,80], "src": [336,112], "f": 0, "t": 182, "d": [27,252], "a": 1 }, + { "px": [208,80], "src": [336,112], "f": 0, "t": 182, "d": [27,253], "a": 1 }, + { "px": [224,80], "src": [336,112], "f": 0, "t": 182, "d": [27,254], "a": 1 }, + { "px": [240,80], "src": [336,112], "f": 0, "t": 182, "d": [27,255], "a": 1 }, + { "px": [256,80], "src": [336,112], "f": 0, "t": 182, "d": [27,256], "a": 1 }, + { "px": [272,80], "src": [336,112], "f": 0, "t": 182, "d": [27,257], "a": 1 }, + { "px": [288,80], "src": [336,112], "f": 0, "t": 182, "d": [27,258], "a": 1 }, + { "px": [304,80], "src": [336,112], "f": 0, "t": 182, "d": [27,259], "a": 1 }, + { "px": [320,80], "src": [336,112], "f": 0, "t": 182, "d": [27,260], "a": 1 }, + { "px": [336,80], "src": [336,112], "f": 0, "t": 182, "d": [27,261], "a": 1 }, + { "px": [352,80], "src": [336,112], "f": 0, "t": 182, "d": [27,262], "a": 1 }, + { "px": [368,80], "src": [336,112], "f": 0, "t": 182, "d": [27,263], "a": 1 }, + { "px": [384,80], "src": [336,112], "f": 0, "t": 182, "d": [27,264], "a": 1 }, + { "px": [400,80], "src": [336,112], "f": 0, "t": 182, "d": [27,265], "a": 1 }, + { "px": [416,80], "src": [336,112], "f": 0, "t": 182, "d": [27,266], "a": 1 }, + { "px": [432,80], "src": [336,112], "f": 0, "t": 182, "d": [27,267], "a": 1 }, + { "px": [448,80], "src": [336,112], "f": 0, "t": 182, "d": [27,268], "a": 1 }, + { "px": [720,80], "src": [336,112], "f": 0, "t": 182, "d": [27,285], "a": 1 }, + { "px": [736,80], "src": [336,112], "f": 0, "t": 182, "d": [27,286], "a": 1 }, + { "px": [752,80], "src": [336,112], "f": 0, "t": 182, "d": [27,287], "a": 1 }, + { "px": [32,160], "src": [336,112], "f": 0, "t": 182, "d": [27,482], "a": 1 }, + { "px": [48,160], "src": [336,112], "f": 0, "t": 182, "d": [27,483], "a": 1 }, + { "px": [64,160], "src": [336,112], "f": 0, "t": 182, "d": [27,484], "a": 1 }, + { "px": [80,160], "src": [336,112], "f": 0, "t": 182, "d": [27,485], "a": 1 }, + { "px": [96,160], "src": [336,112], "f": 0, "t": 182, "d": [27,486], "a": 1 }, + { "px": [112,160], "src": [336,112], "f": 0, "t": 182, "d": [27,487], "a": 1 }, + { "px": [128,160], "src": [336,112], "f": 0, "t": 182, "d": [27,488], "a": 1 }, + { "px": [144,160], "src": [336,112], "f": 0, "t": 182, "d": [27,489], "a": 1 }, + { "px": [160,160], "src": [336,112], "f": 0, "t": 182, "d": [27,490], "a": 1 }, + { "px": [144,32], "src": [320,112], "f": 1, "t": 181, "d": [137,105], "a": 1 }, + { "px": [208,32], "src": [320,112], "f": 0, "t": 181, "d": [137,109], "a": 1 }, + { "px": [96,64], "src": [320,112], "f": 0, "t": 181, "d": [137,198], "a": 1 }, + { "px": [144,80], "src": [320,112], "f": 1, "t": 181, "d": [137,249], "a": 1 }, + { "px": [464,80], "src": [320,112], "f": 0, "t": 181, "d": [137,269], "a": 1 }, + { "px": [704,80], "src": [320,112], "f": 1, "t": 181, "d": [137,284], "a": 1 }, + { "px": [176,160], "src": [320,112], "f": 0, "t": 181, "d": [137,491], "a": 1 } + ], + "seed": 5933770, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 48, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a3707647-66b0-11ec-9cd7-4536c23aa95e", + "levelId": 43, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1, + 1,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [32,192], "src": [320,176], "f": 0, "t": 273, "d": [28,578], "a": 1 }, + { "px": [48,192], "src": [320,176], "f": 0, "t": 273, "d": [28,579], "a": 1 }, + { "px": [64,192], "src": [320,176], "f": 0, "t": 273, "d": [28,580], "a": 1 }, + { "px": [80,192], "src": [320,176], "f": 0, "t": 273, "d": [28,581], "a": 1 }, + { "px": [96,192], "src": [320,176], "f": 0, "t": 273, "d": [28,582], "a": 1 }, + { "px": [112,192], "src": [320,176], "f": 0, "t": 273, "d": [28,583], "a": 1 }, + { "px": [128,192], "src": [320,176], "f": 0, "t": 273, "d": [28,584], "a": 1 }, + { "px": [144,192], "src": [320,176], "f": 0, "t": 273, "d": [28,585], "a": 1 }, + { "px": [160,192], "src": [320,176], "f": 0, "t": 273, "d": [28,586], "a": 1 }, + { "px": [176,192], "src": [320,176], "f": 0, "t": 273, "d": [28,587], "a": 1 }, + { "px": [192,192], "src": [320,176], "f": 0, "t": 273, "d": [28,588], "a": 1 }, + { "px": [208,192], "src": [320,176], "f": 0, "t": 273, "d": [28,589], "a": 1 }, + { "px": [224,192], "src": [320,176], "f": 0, "t": 273, "d": [28,590], "a": 1 }, + { "px": [240,192], "src": [320,176], "f": 0, "t": 273, "d": [28,591], "a": 1 }, + { "px": [256,192], "src": [320,176], "f": 0, "t": 273, "d": [28,592], "a": 1 }, + { "px": [272,192], "src": [320,176], "f": 0, "t": 273, "d": [28,593], "a": 1 }, + { "px": [288,192], "src": [320,176], "f": 0, "t": 273, "d": [28,594], "a": 1 }, + { "px": [304,192], "src": [320,176], "f": 0, "t": 273, "d": [28,595], "a": 1 }, + { "px": [320,192], "src": [320,176], "f": 0, "t": 273, "d": [28,596], "a": 1 }, + { "px": [336,192], "src": [320,176], "f": 0, "t": 273, "d": [28,597], "a": 1 }, + { "px": [352,192], "src": [320,176], "f": 0, "t": 273, "d": [28,598], "a": 1 }, + { "px": [608,192], "src": [320,176], "f": 0, "t": 273, "d": [28,614], "a": 1 }, + { "px": [624,192], "src": [320,176], "f": 0, "t": 273, "d": [28,615], "a": 1 }, + { "px": [640,192], "src": [320,176], "f": 0, "t": 273, "d": [28,616], "a": 1 }, + { "px": [608,208], "src": [320,176], "f": 0, "t": 273, "d": [28,662], "a": 1 }, + { "px": [624,208], "src": [320,176], "f": 0, "t": 273, "d": [28,663], "a": 1 }, + { "px": [640,208], "src": [320,176], "f": 0, "t": 273, "d": [28,664], "a": 1 }, + { "px": [608,224], "src": [320,176], "f": 0, "t": 273, "d": [28,710], "a": 1 }, + { "px": [624,224], "src": [320,176], "f": 0, "t": 273, "d": [28,711], "a": 1 }, + { "px": [640,224], "src": [320,176], "f": 0, "t": 273, "d": [28,712], "a": 1 }, + { "px": [608,240], "src": [320,176], "f": 0, "t": 273, "d": [28,758], "a": 1 }, + { "px": [624,240], "src": [320,176], "f": 0, "t": 273, "d": [28,759], "a": 1 }, + { "px": [640,240], "src": [320,176], "f": 0, "t": 273, "d": [28,760], "a": 1 }, + { "px": [32,176], "src": [320,160], "f": 0, "t": 250, "d": [21,530], "a": 1 }, + { "px": [48,176], "src": [320,160], "f": 0, "t": 250, "d": [21,531], "a": 1 }, + { "px": [64,176], "src": [320,160], "f": 0, "t": 250, "d": [21,532], "a": 1 }, + { "px": [80,176], "src": [320,160], "f": 0, "t": 250, "d": [21,533], "a": 1 }, + { "px": [96,176], "src": [320,160], "f": 0, "t": 250, "d": [21,534], "a": 1 }, + { "px": [112,176], "src": [320,160], "f": 0, "t": 250, "d": [21,535], "a": 1 }, + { "px": [128,176], "src": [320,160], "f": 0, "t": 250, "d": [21,536], "a": 1 }, + { "px": [144,176], "src": [320,160], "f": 0, "t": 250, "d": [21,537], "a": 1 }, + { "px": [160,176], "src": [320,160], "f": 0, "t": 250, "d": [21,538], "a": 1 }, + { "px": [176,176], "src": [320,160], "f": 0, "t": 250, "d": [21,539], "a": 1 }, + { "px": [192,176], "src": [320,160], "f": 0, "t": 250, "d": [21,540], "a": 1 }, + { "px": [208,176], "src": [320,160], "f": 0, "t": 250, "d": [21,541], "a": 1 }, + { "px": [224,176], "src": [320,160], "f": 0, "t": 250, "d": [21,542], "a": 1 }, + { "px": [240,176], "src": [320,160], "f": 0, "t": 250, "d": [21,543], "a": 1 }, + { "px": [256,176], "src": [320,160], "f": 0, "t": 250, "d": [21,544], "a": 1 }, + { "px": [272,176], "src": [320,160], "f": 0, "t": 250, "d": [21,545], "a": 1 }, + { "px": [288,176], "src": [320,160], "f": 0, "t": 250, "d": [21,546], "a": 1 }, + { "px": [304,176], "src": [320,160], "f": 0, "t": 250, "d": [21,547], "a": 1 }, + { "px": [320,176], "src": [320,160], "f": 0, "t": 250, "d": [21,548], "a": 1 }, + { "px": [336,176], "src": [320,160], "f": 0, "t": 250, "d": [21,549], "a": 1 }, + { "px": [352,176], "src": [320,160], "f": 0, "t": 250, "d": [21,550], "a": 1 }, + { "px": [576,176], "src": [320,160], "f": 0, "t": 250, "d": [21,564], "a": 1 }, + { "px": [592,176], "src": [320,160], "f": 0, "t": 250, "d": [21,565], "a": 1 }, + { "px": [608,176], "src": [320,160], "f": 0, "t": 250, "d": [21,566], "a": 1 }, + { "px": [624,176], "src": [320,160], "f": 0, "t": 250, "d": [21,567], "a": 1 }, + { "px": [640,176], "src": [320,160], "f": 0, "t": 250, "d": [21,568], "a": 1 }, + { "px": [656,176], "src": [320,160], "f": 0, "t": 250, "d": [21,569], "a": 1 }, + { "px": [672,176], "src": [320,160], "f": 0, "t": 250, "d": [21,570], "a": 1 }, + { "px": [688,176], "src": [320,160], "f": 0, "t": 250, "d": [21,571], "a": 1 }, + { "px": [704,176], "src": [320,160], "f": 0, "t": 250, "d": [21,572], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [8,3], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [8,11], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [8,17], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [8,27], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [8,31], "a": 1 }, + { "px": [560,0], "src": [32,32], "f": 0, "t": 48, "d": [8,35], "a": 1 }, + { "px": [592,0], "src": [32,32], "f": 0, "t": 48, "d": [8,37], "a": 1 }, + { "px": [656,0], "src": [32,32], "f": 0, "t": 48, "d": [8,41], "a": 1 }, + { "px": [688,0], "src": [32,32], "f": 0, "t": 48, "d": [8,43], "a": 1 }, + { "px": [752,0], "src": [32,32], "f": 0, "t": 48, "d": [8,47], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [8,52], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [8,66], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [8,74], "a": 1 }, + { "px": [736,16], "src": [32,32], "f": 0, "t": 48, "d": [8,94], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [8,99], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [8,113], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [8,115], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [8,117], "a": 1 }, + { "px": [400,32], "src": [32,32], "f": 0, "t": 48, "d": [8,121], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [8,123], "a": 1 }, + { "px": [752,32], "src": [32,32], "f": 0, "t": 48, "d": [8,143], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [8,144], "a": 1 }, + { "px": [288,48], "src": [32,32], "f": 0, "t": 48, "d": [8,162], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [8,164], "a": 1 }, + { "px": [352,48], "src": [32,32], "f": 0, "t": 48, "d": [8,166], "a": 1 }, + { "px": [384,48], "src": [32,32], "f": 0, "t": 48, "d": [8,168], "a": 1 }, + { "px": [416,48], "src": [32,32], "f": 0, "t": 48, "d": [8,170], "a": 1 }, + { "px": [736,48], "src": [32,32], "f": 0, "t": 48, "d": [8,190], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [8,336], "a": 1 }, + { "px": [736,144], "src": [32,32], "f": 0, "t": 48, "d": [8,478], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [8,528], "a": 1 }, + { "px": [384,176], "src": [32,32], "f": 0, "t": 48, "d": [8,552], "a": 1 }, + { "px": [480,176], "src": [32,32], "f": 0, "t": 48, "d": [8,558], "a": 1 }, + { "px": [512,176], "src": [32,32], "f": 0, "t": 48, "d": [8,560], "a": 1 }, + { "px": [544,176], "src": [32,32], "f": 0, "t": 48, "d": [8,562], "a": 1 }, + { "px": [736,176], "src": [32,32], "f": 0, "t": 48, "d": [8,574], "a": 1 }, + { "px": [400,192], "src": [32,32], "f": 0, "t": 48, "d": [8,601], "a": 1 }, + { "px": [464,192], "src": [32,32], "f": 0, "t": 48, "d": [8,605], "a": 1 }, + { "px": [528,192], "src": [32,32], "f": 0, "t": 48, "d": [8,609], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [8,624], "a": 1 }, + { "px": [384,208], "src": [32,32], "f": 0, "t": 48, "d": [8,648], "a": 1 }, + { "px": [544,208], "src": [32,32], "f": 0, "t": 48, "d": [8,658], "a": 1 }, + { "px": [576,208], "src": [32,32], "f": 0, "t": 48, "d": [8,660], "a": 1 }, + { "px": [672,208], "src": [32,32], "f": 0, "t": 48, "d": [8,666], "a": 1 }, + { "px": [704,208], "src": [32,32], "f": 0, "t": 48, "d": [8,668], "a": 1 }, + { "px": [80,224], "src": [32,32], "f": 0, "t": 48, "d": [8,677], "a": 1 }, + { "px": [112,224], "src": [32,32], "f": 0, "t": 48, "d": [8,679], "a": 1 }, + { "px": [144,224], "src": [32,32], "f": 0, "t": 48, "d": [8,681], "a": 1 }, + { "px": [176,224], "src": [32,32], "f": 0, "t": 48, "d": [8,683], "a": 1 }, + { "px": [208,224], "src": [32,32], "f": 0, "t": 48, "d": [8,685], "a": 1 }, + { "px": [304,224], "src": [32,32], "f": 0, "t": 48, "d": [8,691], "a": 1 }, + { "px": [368,224], "src": [32,32], "f": 0, "t": 48, "d": [8,695], "a": 1 }, + { "px": [400,224], "src": [32,32], "f": 0, "t": 48, "d": [8,697], "a": 1 }, + { "px": [528,224], "src": [32,32], "f": 0, "t": 48, "d": [8,705], "a": 1 }, + { "px": [560,224], "src": [32,32], "f": 0, "t": 48, "d": [8,707], "a": 1 }, + { "px": [688,224], "src": [32,32], "f": 0, "t": 48, "d": [8,715], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [8,720], "a": 1 }, + { "px": [96,240], "src": [32,32], "f": 0, "t": 48, "d": [8,726], "a": 1 }, + { "px": [128,240], "src": [32,32], "f": 0, "t": 48, "d": [8,728], "a": 1 }, + { "px": [192,240], "src": [32,32], "f": 0, "t": 48, "d": [8,732], "a": 1 }, + { "px": [256,240], "src": [32,32], "f": 0, "t": 48, "d": [8,736], "a": 1 }, + { "px": [288,240], "src": [32,32], "f": 0, "t": 48, "d": [8,738], "a": 1 }, + { "px": [320,240], "src": [32,32], "f": 0, "t": 48, "d": [8,740], "a": 1 }, + { "px": [384,240], "src": [32,32], "f": 0, "t": 48, "d": [8,744], "a": 1 }, + { "px": [672,240], "src": [32,32], "f": 0, "t": 48, "d": [8,762], "a": 1 }, + { "px": [464,0], "src": [64,96], "f": 0, "t": 142, "d": [83,29], "a": 1 }, + { "px": [528,0], "src": [64,96], "f": 0, "t": 142, "d": [83,33], "a": 1 }, + { "px": [624,0], "src": [96,96], "f": 0, "t": 144, "d": [83,39], "a": 1 }, + { "px": [720,0], "src": [96,96], "f": 0, "t": 144, "d": [83,45], "a": 1 }, + { "px": [0,16], "src": [64,96], "f": 0, "t": 142, "d": [83,48], "a": 1 }, + { "px": [32,16], "src": [96,96], "f": 0, "t": 144, "d": [83,50], "a": 1 }, + { "px": [16,32], "src": [64,96], "f": 0, "t": 142, "d": [83,97], "a": 1 }, + { "px": [368,32], "src": [64,96], "f": 0, "t": 142, "d": [83,119], "a": 1 }, + { "px": [0,80], "src": [96,96], "f": 0, "t": 144, "d": [83,240], "a": 1 }, + { "px": [0,144], "src": [96,96], "f": 0, "t": 144, "d": [83,432], "a": 1 }, + { "px": [752,160], "src": [64,96], "f": 0, "t": 142, "d": [83,527], "a": 1 }, + { "px": [416,176], "src": [96,96], "f": 0, "t": 144, "d": [83,554], "a": 1 }, + { "px": [448,176], "src": [64,96], "f": 0, "t": 142, "d": [83,556], "a": 1 }, + { "px": [432,192], "src": [64,96], "f": 0, "t": 142, "d": [83,603], "a": 1 }, + { "px": [496,192], "src": [64,96], "f": 0, "t": 142, "d": [83,607], "a": 1 }, + { "px": [752,192], "src": [64,96], "f": 0, "t": 142, "d": [83,623], "a": 1 }, + { "px": [736,208], "src": [64,96], "f": 0, "t": 142, "d": [83,670], "a": 1 }, + { "px": [16,224], "src": [96,96], "f": 0, "t": 144, "d": [83,673], "a": 1 }, + { "px": [48,224], "src": [96,96], "f": 0, "t": 144, "d": [83,675], "a": 1 }, + { "px": [240,224], "src": [64,96], "f": 0, "t": 142, "d": [83,687], "a": 1 }, + { "px": [272,224], "src": [96,96], "f": 0, "t": 144, "d": [83,689], "a": 1 }, + { "px": [336,224], "src": [64,96], "f": 0, "t": 142, "d": [83,693], "a": 1 }, + { "px": [720,224], "src": [96,96], "f": 0, "t": 144, "d": [83,717], "a": 1 }, + { "px": [752,224], "src": [96,96], "f": 0, "t": 144, "d": [83,719], "a": 1 }, + { "px": [32,240], "src": [64,96], "f": 0, "t": 142, "d": [83,722], "a": 1 }, + { "px": [64,240], "src": [64,96], "f": 0, "t": 142, "d": [83,724], "a": 1 }, + { "px": [160,240], "src": [96,96], "f": 0, "t": 144, "d": [83,730], "a": 1 }, + { "px": [224,240], "src": [64,96], "f": 0, "t": 142, "d": [83,734], "a": 1 }, + { "px": [352,240], "src": [96,96], "f": 0, "t": 144, "d": [83,742], "a": 1 }, + { "px": [576,240], "src": [96,96], "f": 0, "t": 144, "d": [83,756], "a": 1 }, + { "px": [64,0], "src": [96,0], "f": 0, "t": 6, "d": [101,4], "a": 1 }, + { "px": [288,0], "src": [192,16], "f": 0, "t": 35, "d": [101,18], "a": 1 }, + { "px": [416,0], "src": [96,0], "f": 0, "t": 6, "d": [101,26], "a": 1 }, + { "px": [448,0], "src": [192,16], "f": 0, "t": 35, "d": [101,28], "a": 1 }, + { "px": [480,0], "src": [224,96], "f": 0, "t": 152, "d": [101,30], "a": 1 }, + { "px": [512,0], "src": [224,96], "f": 0, "t": 152, "d": [101,32], "a": 1 }, + { "px": [544,0], "src": [96,0], "f": 0, "t": 6, "d": [101,34], "a": 1 }, + { "px": [576,0], "src": [192,16], "f": 0, "t": 35, "d": [101,36], "a": 1 }, + { "px": [608,0], "src": [224,96], "f": 0, "t": 152, "d": [101,38], "a": 1 }, + { "px": [640,0], "src": [224,96], "f": 0, "t": 152, "d": [101,40], "a": 1 }, + { "px": [672,0], "src": [224,96], "f": 0, "t": 152, "d": [101,42], "a": 1 }, + { "px": [704,0], "src": [96,0], "f": 0, "t": 6, "d": [101,44], "a": 1 }, + { "px": [736,0], "src": [224,96], "f": 0, "t": 152, "d": [101,46], "a": 1 }, + { "px": [16,16], "src": [96,0], "f": 0, "t": 6, "d": [101,49], "a": 1 }, + { "px": [48,16], "src": [192,16], "f": 0, "t": 35, "d": [101,51], "a": 1 }, + { "px": [272,16], "src": [96,0], "f": 0, "t": 6, "d": [101,65], "a": 1 }, + { "px": [432,16], "src": [192,16], "f": 0, "t": 35, "d": [101,75], "a": 1 }, + { "px": [752,16], "src": [224,96], "f": 0, "t": 152, "d": [101,95], "a": 1 }, + { "px": [0,32], "src": [224,96], "f": 0, "t": 152, "d": [101,96], "a": 1 }, + { "px": [32,32], "src": [96,0], "f": 0, "t": 6, "d": [101,98], "a": 1 }, + { "px": [64,32], "src": [192,16], "f": 0, "t": 35, "d": [101,100], "a": 1 }, + { "px": [288,32], "src": [224,96], "f": 0, "t": 152, "d": [101,114], "a": 1 }, + { "px": [320,32], "src": [192,16], "f": 0, "t": 35, "d": [101,116], "a": 1 }, + { "px": [352,32], "src": [192,16], "f": 0, "t": 35, "d": [101,118], "a": 1 }, + { "px": [384,32], "src": [224,96], "f": 0, "t": 152, "d": [101,120], "a": 1 }, + { "px": [416,32], "src": [96,0], "f": 0, "t": 6, "d": [101,122], "a": 1 }, + { "px": [736,32], "src": [192,16], "f": 0, "t": 35, "d": [101,142], "a": 1 }, + { "px": [272,48], "src": [96,0], "f": 0, "t": 6, "d": [101,161], "a": 1 }, + { "px": [304,48], "src": [224,96], "f": 0, "t": 152, "d": [101,163], "a": 1 }, + { "px": [336,48], "src": [224,96], "f": 0, "t": 152, "d": [101,165], "a": 1 }, + { "px": [368,48], "src": [224,96], "f": 0, "t": 152, "d": [101,167], "a": 1 }, + { "px": [400,48], "src": [224,96], "f": 0, "t": 152, "d": [101,169], "a": 1 }, + { "px": [432,48], "src": [224,96], "f": 0, "t": 152, "d": [101,171], "a": 1 }, + { "px": [752,48], "src": [224,96], "f": 0, "t": 152, "d": [101,191], "a": 1 }, + { "px": [0,64], "src": [192,16], "f": 0, "t": 35, "d": [101,192], "a": 1 }, + { "px": [0,96], "src": [96,0], "f": 0, "t": 6, "d": [101,288], "a": 1 }, + { "px": [0,128], "src": [96,0], "f": 0, "t": 6, "d": [101,384], "a": 1 }, + { "px": [752,144], "src": [224,96], "f": 0, "t": 152, "d": [101,479], "a": 1 }, + { "px": [0,160], "src": [192,16], "f": 0, "t": 35, "d": [101,480], "a": 1 }, + { "px": [736,160], "src": [192,16], "f": 0, "t": 35, "d": [101,526], "a": 1 }, + { "px": [400,176], "src": [192,16], "f": 0, "t": 35, "d": [101,553], "a": 1 }, + { "px": [432,176], "src": [192,16], "f": 0, "t": 35, "d": [101,555], "a": 1 }, + { "px": [464,176], "src": [224,96], "f": 0, "t": 152, "d": [101,557], "a": 1 }, + { "px": [496,176], "src": [224,96], "f": 0, "t": 152, "d": [101,559], "a": 1 }, + { "px": [528,176], "src": [224,96], "f": 0, "t": 152, "d": [101,561], "a": 1 }, + { "px": [752,176], "src": [192,16], "f": 0, "t": 35, "d": [101,575], "a": 1 }, + { "px": [0,192], "src": [96,0], "f": 0, "t": 6, "d": [101,576], "a": 1 }, + { "px": [384,192], "src": [192,16], "f": 0, "t": 35, "d": [101,600], "a": 1 }, + { "px": [416,192], "src": [224,96], "f": 0, "t": 152, "d": [101,602], "a": 1 }, + { "px": [448,192], "src": [224,96], "f": 0, "t": 152, "d": [101,604], "a": 1 }, + { "px": [480,192], "src": [224,96], "f": 0, "t": 152, "d": [101,606], "a": 1 }, + { "px": [512,192], "src": [224,96], "f": 0, "t": 152, "d": [101,608], "a": 1 }, + { "px": [544,192], "src": [224,96], "f": 0, "t": 152, "d": [101,610], "a": 1 }, + { "px": [736,192], "src": [224,96], "f": 0, "t": 152, "d": [101,622], "a": 1 }, + { "px": [400,208], "src": [192,16], "f": 0, "t": 35, "d": [101,649], "a": 1 }, + { "px": [528,208], "src": [192,16], "f": 0, "t": 35, "d": [101,657], "a": 1 }, + { "px": [560,208], "src": [224,96], "f": 0, "t": 152, "d": [101,659], "a": 1 }, + { "px": [688,208], "src": [192,16], "f": 0, "t": 35, "d": [101,667], "a": 1 }, + { "px": [720,208], "src": [192,16], "f": 0, "t": 35, "d": [101,669], "a": 1 }, + { "px": [752,208], "src": [224,96], "f": 0, "t": 152, "d": [101,671], "a": 1 }, + { "px": [0,224], "src": [96,0], "f": 0, "t": 6, "d": [101,672], "a": 1 }, + { "px": [32,224], "src": [96,0], "f": 0, "t": 6, "d": [101,674], "a": 1 }, + { "px": [64,224], "src": [224,96], "f": 0, "t": 152, "d": [101,676], "a": 1 }, + { "px": [96,224], "src": [192,16], "f": 0, "t": 35, "d": [101,678], "a": 1 }, + { "px": [128,224], "src": [96,0], "f": 0, "t": 6, "d": [101,680], "a": 1 }, + { "px": [160,224], "src": [96,0], "f": 0, "t": 6, "d": [101,682], "a": 1 }, + { "px": [192,224], "src": [96,0], "f": 0, "t": 6, "d": [101,684], "a": 1 }, + { "px": [224,224], "src": [96,0], "f": 0, "t": 6, "d": [101,686], "a": 1 }, + { "px": [256,224], "src": [192,16], "f": 0, "t": 35, "d": [101,688], "a": 1 }, + { "px": [288,224], "src": [192,16], "f": 0, "t": 35, "d": [101,690], "a": 1 }, + { "px": [320,224], "src": [192,16], "f": 0, "t": 35, "d": [101,692], "a": 1 }, + { "px": [352,224], "src": [192,16], "f": 0, "t": 35, "d": [101,694], "a": 1 }, + { "px": [384,224], "src": [192,16], "f": 0, "t": 35, "d": [101,696], "a": 1 }, + { "px": [544,224], "src": [96,0], "f": 0, "t": 6, "d": [101,706], "a": 1 }, + { "px": [576,224], "src": [96,0], "f": 0, "t": 6, "d": [101,708], "a": 1 }, + { "px": [672,224], "src": [224,96], "f": 0, "t": 152, "d": [101,714], "a": 1 }, + { "px": [704,224], "src": [96,0], "f": 0, "t": 6, "d": [101,716], "a": 1 }, + { "px": [736,224], "src": [224,96], "f": 0, "t": 152, "d": [101,718], "a": 1 }, + { "px": [16,240], "src": [224,96], "f": 0, "t": 152, "d": [101,721], "a": 1 }, + { "px": [48,240], "src": [96,0], "f": 0, "t": 6, "d": [101,723], "a": 1 }, + { "px": [80,240], "src": [224,96], "f": 0, "t": 152, "d": [101,725], "a": 1 }, + { "px": [112,240], "src": [96,0], "f": 0, "t": 6, "d": [101,727], "a": 1 }, + { "px": [144,240], "src": [96,0], "f": 0, "t": 6, "d": [101,729], "a": 1 }, + { "px": [176,240], "src": [192,16], "f": 0, "t": 35, "d": [101,731], "a": 1 }, + { "px": [208,240], "src": [192,16], "f": 0, "t": 35, "d": [101,733], "a": 1 }, + { "px": [240,240], "src": [96,0], "f": 0, "t": 6, "d": [101,735], "a": 1 }, + { "px": [272,240], "src": [192,16], "f": 0, "t": 35, "d": [101,737], "a": 1 }, + { "px": [304,240], "src": [96,0], "f": 0, "t": 6, "d": [101,739], "a": 1 }, + { "px": [336,240], "src": [96,0], "f": 0, "t": 6, "d": [101,741], "a": 1 }, + { "px": [368,240], "src": [224,96], "f": 0, "t": 152, "d": [101,743], "a": 1 }, + { "px": [400,240], "src": [224,96], "f": 0, "t": 152, "d": [101,745], "a": 1 }, + { "px": [560,240], "src": [192,16], "f": 0, "t": 35, "d": [101,755], "a": 1 }, + { "px": [688,240], "src": [224,96], "f": 0, "t": 152, "d": [101,763], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [32,0], "src": [32,32], "f": 0, "t": 48, "d": [127,2], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [127,21], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [127,23], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [127,25], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [127,67], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [127,68], "a": 1 }, + { "px": [336,16], "src": [32,32], "f": 0, "t": 48, "d": [127,69], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [127,70], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [127,72], "a": 1 }, + { "px": [416,208], "src": [32,32], "f": 0, "t": 48, "d": [127,650], "a": 1 }, + { "px": [448,208], "src": [32,32], "f": 0, "t": 48, "d": [127,652], "a": 1 }, + { "px": [464,208], "src": [32,32], "f": 0, "t": 48, "d": [127,653], "a": 1 }, + { "px": [480,208], "src": [32,32], "f": 0, "t": 48, "d": [127,654], "a": 1 }, + { "px": [496,208], "src": [32,32], "f": 0, "t": 48, "d": [127,655], "a": 1 }, + { "px": [512,208], "src": [32,32], "f": 0, "t": 48, "d": [127,656], "a": 1 }, + { "px": [432,224], "src": [32,32], "f": 0, "t": 48, "d": [127,699], "a": 1 }, + { "px": [464,224], "src": [32,32], "f": 0, "t": 48, "d": [127,701], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [127,703], "a": 1 }, + { "px": [512,224], "src": [32,32], "f": 0, "t": 48, "d": [127,704], "a": 1 }, + { "px": [416,240], "src": [32,32], "f": 0, "t": 48, "d": [127,746], "a": 1 }, + { "px": [448,240], "src": [32,32], "f": 0, "t": 48, "d": [127,748], "a": 1 }, + { "px": [480,240], "src": [32,32], "f": 0, "t": 48, "d": [127,750], "a": 1 }, + { "px": [496,240], "src": [32,32], "f": 0, "t": 48, "d": [127,751], "a": 1 }, + { "px": [512,240], "src": [32,32], "f": 0, "t": 48, "d": [127,752], "a": 1 }, + { "px": [544,240], "src": [32,32], "f": 0, "t": 48, "d": [127,754], "a": 1 }, + { "px": [704,240], "src": [32,32], "f": 0, "t": 48, "d": [127,764], "a": 1 }, + { "px": [736,240], "src": [32,32], "f": 0, "t": 48, "d": [127,766], "a": 1 }, + { "px": [752,240], "src": [32,32], "f": 0, "t": 48, "d": [127,767], "a": 1 }, + { "px": [0,0], "src": [96,96], "f": 0, "t": 144, "d": [126,0], "a": 1 }, + { "px": [320,0], "src": [64,96], "f": 0, "t": 142, "d": [126,20], "a": 1 }, + { "px": [352,0], "src": [96,96], "f": 0, "t": 144, "d": [126,22], "a": 1 }, + { "px": [384,0], "src": [64,96], "f": 0, "t": 142, "d": [126,24], "a": 1 }, + { "px": [368,16], "src": [96,96], "f": 0, "t": 144, "d": [126,71], "a": 1 }, + { "px": [400,16], "src": [64,96], "f": 0, "t": 142, "d": [126,73], "a": 1 }, + { "px": [432,208], "src": [96,96], "f": 0, "t": 144, "d": [126,651], "a": 1 }, + { "px": [416,224], "src": [64,96], "f": 0, "t": 142, "d": [126,698], "a": 1 }, + { "px": [448,224], "src": [64,96], "f": 0, "t": 142, "d": [126,700], "a": 1 }, + { "px": [480,224], "src": [64,96], "f": 0, "t": 142, "d": [126,702], "a": 1 }, + { "px": [432,240], "src": [96,96], "f": 0, "t": 144, "d": [126,747], "a": 1 }, + { "px": [464,240], "src": [96,96], "f": 0, "t": 144, "d": [126,749], "a": 1 }, + { "px": [528,240], "src": [96,96], "f": 0, "t": 144, "d": [126,753], "a": 1 }, + { "px": [720,240], "src": [64,96], "f": 0, "t": 142, "d": [126,765], "a": 1 }, + { "px": [208,0], "src": [256,160], "f": 0, "t": 246, "d": [12,13], "a": 1 }, + { "px": [224,0], "src": [256,160], "f": 0, "t": 246, "d": [12,14], "a": 1 }, + { "px": [240,0], "src": [256,160], "f": 0, "t": 246, "d": [12,15], "a": 1 }, + { "px": [176,16], "src": [256,160], "f": 0, "t": 246, "d": [12,59], "a": 1 }, + { "px": [512,16], "src": [256,160], "f": 0, "t": 246, "d": [12,80], "a": 1 }, + { "px": [528,16], "src": [256,160], "f": 0, "t": 246, "d": [12,81], "a": 1 }, + { "px": [544,16], "src": [256,160], "f": 0, "t": 246, "d": [12,82], "a": 1 }, + { "px": [560,16], "src": [256,160], "f": 0, "t": 246, "d": [12,83], "a": 1 }, + { "px": [576,16], "src": [256,160], "f": 0, "t": 246, "d": [12,84], "a": 1 }, + { "px": [592,16], "src": [256,160], "f": 0, "t": 246, "d": [12,85], "a": 1 }, + { "px": [624,16], "src": [256,160], "f": 0, "t": 246, "d": [12,87], "a": 1 }, + { "px": [640,16], "src": [256,160], "f": 0, "t": 246, "d": [12,88], "a": 1 }, + { "px": [656,16], "src": [256,160], "f": 0, "t": 246, "d": [12,89], "a": 1 }, + { "px": [672,16], "src": [256,160], "f": 0, "t": 246, "d": [12,90], "a": 1 }, + { "px": [688,16], "src": [256,160], "f": 0, "t": 246, "d": [12,91], "a": 1 }, + { "px": [704,16], "src": [256,160], "f": 0, "t": 246, "d": [12,92], "a": 1 }, + { "px": [32,48], "src": [256,160], "f": 0, "t": 246, "d": [12,146], "a": 1 }, + { "px": [48,48], "src": [256,160], "f": 0, "t": 246, "d": [12,147], "a": 1 }, + { "px": [64,48], "src": [256,160], "f": 0, "t": 246, "d": [12,148], "a": 1 }, + { "px": [272,64], "src": [256,160], "f": 0, "t": 246, "d": [12,209], "a": 1 }, + { "px": [288,64], "src": [256,160], "f": 0, "t": 246, "d": [12,210], "a": 1 }, + { "px": [304,64], "src": [256,160], "f": 0, "t": 246, "d": [12,211], "a": 1 }, + { "px": [320,64], "src": [256,160], "f": 0, "t": 246, "d": [12,212], "a": 1 }, + { "px": [336,64], "src": [256,160], "f": 0, "t": 246, "d": [12,213], "a": 1 }, + { "px": [352,64], "src": [256,160], "f": 0, "t": 246, "d": [12,214], "a": 1 }, + { "px": [368,64], "src": [256,160], "f": 0, "t": 246, "d": [12,215], "a": 1 }, + { "px": [736,64], "src": [256,160], "f": 0, "t": 246, "d": [12,238], "a": 1 }, + { "px": [752,64], "src": [256,160], "f": 0, "t": 246, "d": [12,239], "a": 1 }, + { "px": [48,144], "src": [256,160], "f": 0, "t": 246, "d": [12,435], "a": 1 }, + { "px": [80,144], "src": [256,160], "f": 0, "t": 246, "d": [12,437], "a": 1 }, + { "px": [96,144], "src": [256,160], "f": 0, "t": 246, "d": [12,438], "a": 1 }, + { "px": [112,144], "src": [256,160], "f": 0, "t": 246, "d": [12,439], "a": 1 }, + { "px": [176,64], "src": [256,96], "f": 0, "t": 154, "d": [9,203], "a": 1 }, + { "px": [192,64], "src": [256,96], "f": 0, "t": 154, "d": [9,204], "a": 1 }, + { "px": [208,64], "src": [256,96], "f": 0, "t": 154, "d": [9,205], "a": 1 }, + { "px": [224,64], "src": [256,96], "f": 0, "t": 154, "d": [9,206], "a": 1 }, + { "px": [240,64], "src": [256,96], "f": 0, "t": 154, "d": [9,207], "a": 1 }, + { "px": [80,128], "src": [256,96], "f": 0, "t": 154, "d": [9,389], "a": 1 }, + { "px": [144,128], "src": [256,96], "f": 0, "t": 154, "d": [9,393], "a": 1 }, + { "px": [736,128], "src": [256,96], "f": 0, "t": 154, "d": [9,430], "a": 1 }, + { "px": [752,128], "src": [256,96], "f": 0, "t": 154, "d": [9,431], "a": 1 }, + { "px": [384,160], "src": [256,96], "f": 0, "t": 154, "d": [9,504], "a": 1 }, + { "px": [400,160], "src": [256,96], "f": 0, "t": 154, "d": [9,505], "a": 1 }, + { "px": [432,160], "src": [256,96], "f": 0, "t": 154, "d": [9,507], "a": 1 }, + { "px": [448,160], "src": [256,96], "f": 0, "t": 154, "d": [9,508], "a": 1 }, + { "px": [464,160], "src": [256,96], "f": 0, "t": 154, "d": [9,509], "a": 1 }, + { "px": [480,160], "src": [256,96], "f": 0, "t": 154, "d": [9,510], "a": 1 }, + { "px": [496,160], "src": [256,96], "f": 0, "t": 154, "d": [9,511], "a": 1 }, + { "px": [576,192], "src": [256,96], "f": 0, "t": 154, "d": [9,612], "a": 1 }, + { "px": [672,192], "src": [256,96], "f": 0, "t": 154, "d": [9,618], "a": 1 }, + { "px": [688,192], "src": [256,96], "f": 0, "t": 154, "d": [9,619], "a": 1 }, + { "px": [704,192], "src": [256,96], "f": 0, "t": 154, "d": [9,620], "a": 1 }, + { "px": [32,208], "src": [256,96], "f": 0, "t": 154, "d": [9,626], "a": 1 }, + { "px": [48,208], "src": [256,96], "f": 0, "t": 154, "d": [9,627], "a": 1 }, + { "px": [64,208], "src": [256,96], "f": 0, "t": 154, "d": [9,628], "a": 1 }, + { "px": [80,208], "src": [256,96], "f": 0, "t": 154, "d": [9,629], "a": 1 }, + { "px": [96,208], "src": [256,96], "f": 0, "t": 154, "d": [9,630], "a": 1 }, + { "px": [112,208], "src": [256,96], "f": 0, "t": 154, "d": [9,631], "a": 1 }, + { "px": [128,208], "src": [256,96], "f": 0, "t": 154, "d": [9,632], "a": 1 }, + { "px": [144,208], "src": [256,96], "f": 0, "t": 154, "d": [9,633], "a": 1 }, + { "px": [160,208], "src": [256,96], "f": 0, "t": 154, "d": [9,634], "a": 1 }, + { "px": [176,208], "src": [256,96], "f": 0, "t": 154, "d": [9,635], "a": 1 }, + { "px": [192,208], "src": [256,96], "f": 0, "t": 154, "d": [9,636], "a": 1 }, + { "px": [208,208], "src": [256,96], "f": 0, "t": 154, "d": [9,637], "a": 1 }, + { "px": [224,208], "src": [256,96], "f": 0, "t": 154, "d": [9,638], "a": 1 }, + { "px": [240,208], "src": [256,96], "f": 0, "t": 154, "d": [9,639], "a": 1 }, + { "px": [256,208], "src": [256,96], "f": 0, "t": 154, "d": [9,640], "a": 1 }, + { "px": [272,208], "src": [256,96], "f": 0, "t": 154, "d": [9,641], "a": 1 }, + { "px": [288,208], "src": [256,96], "f": 0, "t": 154, "d": [9,642], "a": 1 }, + { "px": [304,208], "src": [256,96], "f": 0, "t": 154, "d": [9,643], "a": 1 }, + { "px": [320,208], "src": [256,96], "f": 0, "t": 154, "d": [9,644], "a": 1 }, + { "px": [336,208], "src": [256,96], "f": 0, "t": 154, "d": [9,645], "a": 1 }, + { "px": [352,208], "src": [256,96], "f": 0, "t": 154, "d": [9,646], "a": 1 }, + { "px": [80,0], "src": [224,128], "f": 1, "t": 198, "d": [10,5], "a": 1 }, + { "px": [160,0], "src": [224,128], "f": 0, "t": 198, "d": [10,10], "a": 1 }, + { "px": [80,16], "src": [224,128], "f": 1, "t": 198, "d": [10,53], "a": 1 }, + { "px": [256,16], "src": [224,128], "f": 0, "t": 198, "d": [10,64], "a": 1 }, + { "px": [80,32], "src": [224,128], "f": 1, "t": 198, "d": [10,101], "a": 1 }, + { "px": [256,32], "src": [224,128], "f": 0, "t": 198, "d": [10,112], "a": 1 }, + { "px": [448,32], "src": [224,128], "f": 1, "t": 198, "d": [10,124], "a": 1 }, + { "px": [720,32], "src": [224,128], "f": 0, "t": 198, "d": [10,141], "a": 1 }, + { "px": [256,48], "src": [224,128], "f": 0, "t": 198, "d": [10,160], "a": 1 }, + { "px": [448,48], "src": [224,128], "f": 1, "t": 198, "d": [10,172], "a": 1 }, + { "px": [720,48], "src": [224,128], "f": 0, "t": 198, "d": [10,189], "a": 1 }, + { "px": [16,64], "src": [224,128], "f": 1, "t": 198, "d": [10,193], "a": 1 }, + { "px": [16,80], "src": [224,128], "f": 1, "t": 198, "d": [10,241], "a": 1 }, + { "px": [16,96], "src": [224,128], "f": 1, "t": 198, "d": [10,289], "a": 1 }, + { "px": [16,112], "src": [224,128], "f": 1, "t": 198, "d": [10,337], "a": 1 }, + { "px": [720,144], "src": [224,128], "f": 0, "t": 198, "d": [10,477], "a": 1 }, + { "px": [16,160], "src": [224,128], "f": 1, "t": 198, "d": [10,481], "a": 1 }, + { "px": [720,160], "src": [224,128], "f": 0, "t": 198, "d": [10,525], "a": 1 }, + { "px": [16,176], "src": [224,128], "f": 1, "t": 198, "d": [10,529], "a": 1 }, + { "px": [368,176], "src": [224,128], "f": 0, "t": 198, "d": [10,551], "a": 1 }, + { "px": [560,176], "src": [224,128], "f": 1, "t": 198, "d": [10,563], "a": 1 }, + { "px": [720,176], "src": [224,128], "f": 0, "t": 198, "d": [10,573], "a": 1 }, + { "px": [16,192], "src": [224,128], "f": 1, "t": 198, "d": [10,577], "a": 1 }, + { "px": [368,192], "src": [224,128], "f": 0, "t": 198, "d": [10,599], "a": 1 }, + { "px": [592,208], "src": [224,128], "f": 1, "t": 198, "d": [10,661], "a": 1 }, + { "px": [656,208], "src": [224,128], "f": 0, "t": 198, "d": [10,665], "a": 1 }, + { "px": [592,224], "src": [224,128], "f": 1, "t": 198, "d": [10,709], "a": 1 }, + { "px": [656,224], "src": [224,128], "f": 0, "t": 198, "d": [10,713], "a": 1 }, + { "px": [592,240], "src": [224,128], "f": 1, "t": 198, "d": [10,757], "a": 1 }, + { "px": [656,240], "src": [224,128], "f": 0, "t": 198, "d": [10,761], "a": 1 }, + { "px": [160,16], "src": [224,96], "f": 2, "t": 152, "d": [11,58], "a": 1 }, + { "px": [192,16], "src": [224,96], "f": 3, "t": 152, "d": [11,60], "a": 1 }, + { "px": [160,64], "src": [224,96], "f": 0, "t": 152, "d": [11,202], "a": 1 }, + { "px": [448,64], "src": [224,96], "f": 3, "t": 152, "d": [11,220], "a": 1 }, + { "px": [160,128], "src": [224,96], "f": 1, "t": 152, "d": [11,394], "a": 1 }, + { "px": [160,144], "src": [224,96], "f": 3, "t": 152, "d": [11,442], "a": 1 }, + { "px": [368,160], "src": [224,96], "f": 0, "t": 152, "d": [11,503], "a": 1 }, + { "px": [560,160], "src": [224,96], "f": 1, "t": 152, "d": [11,515], "a": 1 }, + { "px": [592,192], "src": [224,96], "f": 1, "t": 152, "d": [11,613], "a": 1 }, + { "px": [656,192], "src": [224,96], "f": 0, "t": 152, "d": [11,617], "a": 1 }, + { "px": [192,0], "src": [224,96], "f": 0, "t": 152, "d": [14,12], "a": 1 }, + { "px": [256,0], "src": [224,96], "f": 1, "t": 152, "d": [14,16], "a": 1 }, + { "px": [448,16], "src": [224,96], "f": 0, "t": 152, "d": [14,76], "a": 1 }, + { "px": [720,16], "src": [224,96], "f": 1, "t": 152, "d": [14,93], "a": 1 }, + { "px": [16,48], "src": [224,96], "f": 0, "t": 152, "d": [14,145], "a": 1 }, + { "px": [256,64], "src": [224,96], "f": 3, "t": 152, "d": [14,208], "a": 1 }, + { "px": [16,128], "src": [224,96], "f": 2, "t": 152, "d": [14,385], "a": 1 }, + { "px": [16,144], "src": [224,96], "f": 0, "t": 152, "d": [14,433], "a": 1 }, + { "px": [560,192], "src": [224,96], "f": 2, "t": 152, "d": [14,611], "a": 1 }, + { "px": [720,192], "src": [224,96], "f": 3, "t": 152, "d": [14,621], "a": 1 }, + { "px": [16,208], "src": [224,96], "f": 2, "t": 152, "d": [14,625], "a": 1 }, + { "px": [368,208], "src": [224,96], "f": 3, "t": 152, "d": [14,647], "a": 1 }, + { "px": [464,16], "src": [160,192], "f": 0, "t": 286, "d": [78,77], "a": 1 }, + { "px": [480,16], "src": [160,192], "f": 0, "t": 286, "d": [78,78], "a": 1 }, + { "px": [496,16], "src": [160,192], "f": 0, "t": 286, "d": [78,79], "a": 1 }, + { "px": [608,16], "src": [160,192], "f": 0, "t": 286, "d": [78,86], "a": 1 }, + { "px": [80,48], "src": [160,192], "f": 0, "t": 286, "d": [78,149], "a": 1 }, + { "px": [384,64], "src": [192,192], "f": 0, "t": 288, "d": [78,216], "a": 1 }, + { "px": [400,64], "src": [192,192], "f": 0, "t": 288, "d": [78,217], "a": 1 }, + { "px": [416,64], "src": [192,192], "f": 0, "t": 288, "d": [78,218], "a": 1 }, + { "px": [432,64], "src": [192,192], "f": 0, "t": 288, "d": [78,219], "a": 1 }, + { "px": [720,64], "src": [192,192], "f": 0, "t": 288, "d": [78,237], "a": 1 }, + { "px": [32,144], "src": [160,192], "f": 0, "t": 286, "d": [78,434], "a": 1 }, + { "px": [64,144], "src": [192,192], "f": 0, "t": 288, "d": [78,436], "a": 1 }, + { "px": [128,144], "src": [192,192], "f": 0, "t": 288, "d": [78,440], "a": 1 }, + { "px": [144,144], "src": [192,192], "f": 0, "t": 288, "d": [78,441], "a": 1 }, + { "px": [32,128], "src": [32,0], "f": 0, "t": 2, "d": [80,386], "a": 1 }, + { "px": [48,128], "src": [32,0], "f": 0, "t": 2, "d": [80,387], "a": 1 }, + { "px": [64,128], "src": [32,0], "f": 0, "t": 2, "d": [80,388], "a": 1 }, + { "px": [96,128], "src": [32,0], "f": 0, "t": 2, "d": [80,390], "a": 1 }, + { "px": [112,128], "src": [32,0], "f": 0, "t": 2, "d": [80,391], "a": 1 }, + { "px": [128,128], "src": [32,0], "f": 0, "t": 2, "d": [80,392], "a": 1 }, + { "px": [720,128], "src": [32,0], "f": 0, "t": 2, "d": [80,429], "a": 1 }, + { "px": [416,160], "src": [32,0], "f": 0, "t": 2, "d": [80,506], "a": 1 }, + { "px": [512,160], "src": [32,0], "f": 0, "t": 2, "d": [80,512], "a": 1 }, + { "px": [528,160], "src": [32,0], "f": 0, "t": 2, "d": [80,513], "a": 1 }, + { "px": [544,160], "src": [32,0], "f": 0, "t": 2, "d": [80,514], "a": 1 }, + { "px": [32,112], "src": [32,96], "f": 0, "t": 140, "d": [110,338], "a": 1 }, + { "px": [48,112], "src": [0,96], "f": 0, "t": 138, "d": [110,339], "a": 1 }, + { "px": [112,112], "src": [32,96], "f": 0, "t": 140, "d": [110,343], "a": 1 }, + { "px": [128,112], "src": [32,96], "f": 0, "t": 140, "d": [110,344], "a": 1 }, + { "px": [144,112], "src": [32,96], "f": 0, "t": 140, "d": [110,345], "a": 1 }, + { "px": [720,112], "src": [32,96], "f": 0, "t": 140, "d": [110,381], "a": 1 }, + { "px": [752,112], "src": [32,96], "f": 0, "t": 140, "d": [110,383], "a": 1 }, + { "px": [400,144], "src": [0,96], "f": 0, "t": 138, "d": [110,457], "a": 1 }, + { "px": [432,144], "src": [32,96], "f": 0, "t": 140, "d": [110,459], "a": 1 }, + { "px": [448,144], "src": [0,96], "f": 0, "t": 138, "d": [110,460], "a": 1 }, + { "px": [464,144], "src": [32,96], "f": 0, "t": 140, "d": [110,461], "a": 1 }, + { "px": [480,144], "src": [32,96], "f": 0, "t": 140, "d": [110,462], "a": 1 }, + { "px": [528,144], "src": [32,96], "f": 0, "t": 140, "d": [110,465], "a": 1 }, + { "px": [544,144], "src": [0,96], "f": 0, "t": 138, "d": [110,466], "a": 1 } + ], + "seed": 9793180, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 48, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a3709d50-66b0-11ec-9cd7-3d30cf0b6ad6", + "levelId": 43, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [112,0], "src": [320,272], "f": 0, "t": 411, "d": [108,7], "a": 1 }, + { "px": [128,0], "src": [320,272], "f": 0, "t": 411, "d": [108,8], "a": 1 }, + { "px": [112,16], "src": [320,272], "f": 0, "t": 411, "d": [108,55], "a": 1 }, + { "px": [128,16], "src": [320,272], "f": 0, "t": 411, "d": [108,56], "a": 1 }, + { "px": [112,32], "src": [320,272], "f": 0, "t": 411, "d": [108,103], "a": 1 }, + { "px": [128,32], "src": [320,272], "f": 0, "t": 411, "d": [108,104], "a": 1 }, + { "px": [144,32], "src": [320,272], "f": 0, "t": 411, "d": [108,105], "a": 1 }, + { "px": [176,32], "src": [320,272], "f": 0, "t": 411, "d": [108,107], "a": 1 }, + { "px": [192,32], "src": [320,272], "f": 0, "t": 411, "d": [108,108], "a": 1 }, + { "px": [208,32], "src": [320,272], "f": 0, "t": 411, "d": [108,109], "a": 1 }, + { "px": [224,32], "src": [320,272], "f": 0, "t": 411, "d": [108,110], "a": 1 }, + { "px": [496,32], "src": [320,272], "f": 0, "t": 411, "d": [108,127], "a": 1 }, + { "px": [512,32], "src": [320,272], "f": 0, "t": 411, "d": [108,128], "a": 1 }, + { "px": [528,32], "src": [320,272], "f": 0, "t": 411, "d": [108,129], "a": 1 }, + { "px": [544,32], "src": [320,272], "f": 0, "t": 411, "d": [108,130], "a": 1 }, + { "px": [560,32], "src": [320,272], "f": 0, "t": 411, "d": [108,131], "a": 1 }, + { "px": [592,32], "src": [320,272], "f": 0, "t": 411, "d": [108,133], "a": 1 }, + { "px": [608,32], "src": [320,272], "f": 0, "t": 411, "d": [108,134], "a": 1 }, + { "px": [624,32], "src": [320,272], "f": 0, "t": 411, "d": [108,135], "a": 1 }, + { "px": [656,32], "src": [320,272], "f": 0, "t": 411, "d": [108,137], "a": 1 }, + { "px": [672,32], "src": [320,272], "f": 0, "t": 411, "d": [108,138], "a": 1 }, + { "px": [688,32], "src": [320,272], "f": 0, "t": 411, "d": [108,139], "a": 1 }, + { "px": [112,48], "src": [320,272], "f": 0, "t": 411, "d": [108,151], "a": 1 }, + { "px": [128,48], "src": [320,272], "f": 0, "t": 411, "d": [108,152], "a": 1 }, + { "px": [144,48], "src": [320,272], "f": 0, "t": 411, "d": [108,153], "a": 1 }, + { "px": [160,48], "src": [320,272], "f": 0, "t": 411, "d": [108,154], "a": 1 }, + { "px": [176,48], "src": [320,272], "f": 0, "t": 411, "d": [108,155], "a": 1 }, + { "px": [192,48], "src": [320,272], "f": 0, "t": 411, "d": [108,156], "a": 1 }, + { "px": [208,48], "src": [320,272], "f": 0, "t": 411, "d": [108,157], "a": 1 }, + { "px": [224,48], "src": [320,272], "f": 0, "t": 411, "d": [108,158], "a": 1 }, + { "px": [480,48], "src": [320,272], "f": 0, "t": 411, "d": [108,174], "a": 1 }, + { "px": [496,48], "src": [320,272], "f": 0, "t": 411, "d": [108,175], "a": 1 }, + { "px": [512,48], "src": [320,272], "f": 0, "t": 411, "d": [108,176], "a": 1 }, + { "px": [528,48], "src": [320,272], "f": 0, "t": 411, "d": [108,177], "a": 1 }, + { "px": [544,48], "src": [320,272], "f": 0, "t": 411, "d": [108,178], "a": 1 }, + { "px": [560,48], "src": [320,272], "f": 0, "t": 411, "d": [108,179], "a": 1 }, + { "px": [576,48], "src": [320,272], "f": 0, "t": 411, "d": [108,180], "a": 1 }, + { "px": [592,48], "src": [320,272], "f": 0, "t": 411, "d": [108,181], "a": 1 }, + { "px": [608,48], "src": [320,272], "f": 0, "t": 411, "d": [108,182], "a": 1 }, + { "px": [624,48], "src": [320,272], "f": 0, "t": 411, "d": [108,183], "a": 1 }, + { "px": [640,48], "src": [320,272], "f": 0, "t": 411, "d": [108,184], "a": 1 }, + { "px": [656,48], "src": [320,272], "f": 0, "t": 411, "d": [108,185], "a": 1 }, + { "px": [672,48], "src": [320,272], "f": 0, "t": 411, "d": [108,186], "a": 1 }, + { "px": [688,48], "src": [320,272], "f": 0, "t": 411, "d": [108,187], "a": 1 }, + { "px": [48,64], "src": [320,272], "f": 0, "t": 411, "d": [108,195], "a": 1 }, + { "px": [64,64], "src": [320,272], "f": 0, "t": 411, "d": [108,196], "a": 1 }, + { "px": [80,64], "src": [320,272], "f": 0, "t": 411, "d": [108,197], "a": 1 }, + { "px": [96,64], "src": [320,272], "f": 0, "t": 411, "d": [108,198], "a": 1 }, + { "px": [112,64], "src": [320,272], "f": 0, "t": 411, "d": [108,199], "a": 1 }, + { "px": [128,64], "src": [320,272], "f": 0, "t": 411, "d": [108,200], "a": 1 }, + { "px": [480,64], "src": [320,272], "f": 0, "t": 411, "d": [108,222], "a": 1 }, + { "px": [496,64], "src": [320,272], "f": 0, "t": 411, "d": [108,223], "a": 1 }, + { "px": [512,64], "src": [320,272], "f": 0, "t": 411, "d": [108,224], "a": 1 }, + { "px": [528,64], "src": [320,272], "f": 0, "t": 411, "d": [108,225], "a": 1 }, + { "px": [544,64], "src": [320,272], "f": 0, "t": 411, "d": [108,226], "a": 1 }, + { "px": [560,64], "src": [320,272], "f": 0, "t": 411, "d": [108,227], "a": 1 }, + { "px": [576,64], "src": [320,272], "f": 0, "t": 411, "d": [108,228], "a": 1 }, + { "px": [592,64], "src": [320,272], "f": 0, "t": 411, "d": [108,229], "a": 1 }, + { "px": [608,64], "src": [320,272], "f": 0, "t": 411, "d": [108,230], "a": 1 }, + { "px": [624,64], "src": [320,272], "f": 0, "t": 411, "d": [108,231], "a": 1 }, + { "px": [640,64], "src": [320,272], "f": 0, "t": 411, "d": [108,232], "a": 1 }, + { "px": [656,64], "src": [320,272], "f": 0, "t": 411, "d": [108,233], "a": 1 }, + { "px": [672,64], "src": [320,272], "f": 0, "t": 411, "d": [108,234], "a": 1 }, + { "px": [688,64], "src": [320,272], "f": 0, "t": 411, "d": [108,235], "a": 1 }, + { "px": [48,80], "src": [320,272], "f": 0, "t": 411, "d": [108,243], "a": 1 }, + { "px": [64,80], "src": [320,272], "f": 0, "t": 411, "d": [108,244], "a": 1 }, + { "px": [80,80], "src": [320,272], "f": 0, "t": 411, "d": [108,245], "a": 1 }, + { "px": [96,80], "src": [320,272], "f": 0, "t": 411, "d": [108,246], "a": 1 }, + { "px": [112,80], "src": [320,272], "f": 0, "t": 411, "d": [108,247], "a": 1 }, + { "px": [128,80], "src": [320,272], "f": 0, "t": 411, "d": [108,248], "a": 1 }, + { "px": [144,80], "src": [320,272], "f": 0, "t": 411, "d": [108,249], "a": 1 }, + { "px": [160,80], "src": [320,272], "f": 0, "t": 411, "d": [108,250], "a": 1 }, + { "px": [176,80], "src": [320,272], "f": 0, "t": 411, "d": [108,251], "a": 1 }, + { "px": [192,80], "src": [320,272], "f": 0, "t": 411, "d": [108,252], "a": 1 }, + { "px": [208,80], "src": [320,272], "f": 0, "t": 411, "d": [108,253], "a": 1 }, + { "px": [224,80], "src": [320,272], "f": 0, "t": 411, "d": [108,254], "a": 1 }, + { "px": [272,80], "src": [320,272], "f": 0, "t": 411, "d": [108,257], "a": 1 }, + { "px": [288,80], "src": [320,272], "f": 0, "t": 411, "d": [108,258], "a": 1 }, + { "px": [304,80], "src": [320,272], "f": 0, "t": 411, "d": [108,259], "a": 1 }, + { "px": [336,80], "src": [320,272], "f": 0, "t": 411, "d": [108,261], "a": 1 }, + { "px": [368,80], "src": [320,272], "f": 0, "t": 411, "d": [108,263], "a": 1 }, + { "px": [384,80], "src": [320,272], "f": 0, "t": 411, "d": [108,264], "a": 1 }, + { "px": [400,80], "src": [320,272], "f": 0, "t": 411, "d": [108,265], "a": 1 }, + { "px": [416,80], "src": [320,272], "f": 0, "t": 411, "d": [108,266], "a": 1 }, + { "px": [432,80], "src": [320,272], "f": 0, "t": 411, "d": [108,267], "a": 1 }, + { "px": [448,80], "src": [320,272], "f": 0, "t": 411, "d": [108,268], "a": 1 }, + { "px": [464,80], "src": [320,272], "f": 0, "t": 411, "d": [108,269], "a": 1 }, + { "px": [480,80], "src": [320,272], "f": 0, "t": 411, "d": [108,270], "a": 1 }, + { "px": [496,80], "src": [320,272], "f": 0, "t": 411, "d": [108,271], "a": 1 }, + { "px": [512,80], "src": [320,272], "f": 0, "t": 411, "d": [108,272], "a": 1 }, + { "px": [528,80], "src": [320,272], "f": 0, "t": 411, "d": [108,273], "a": 1 }, + { "px": [544,80], "src": [320,272], "f": 0, "t": 411, "d": [108,274], "a": 1 }, + { "px": [560,80], "src": [320,272], "f": 0, "t": 411, "d": [108,275], "a": 1 }, + { "px": [576,80], "src": [320,272], "f": 0, "t": 411, "d": [108,276], "a": 1 }, + { "px": [592,80], "src": [320,272], "f": 0, "t": 411, "d": [108,277], "a": 1 }, + { "px": [608,80], "src": [320,272], "f": 0, "t": 411, "d": [108,278], "a": 1 }, + { "px": [624,80], "src": [320,272], "f": 0, "t": 411, "d": [108,279], "a": 1 }, + { "px": [640,80], "src": [320,272], "f": 0, "t": 411, "d": [108,280], "a": 1 }, + { "px": [656,80], "src": [320,272], "f": 0, "t": 411, "d": [108,281], "a": 1 }, + { "px": [672,80], "src": [320,272], "f": 0, "t": 411, "d": [108,282], "a": 1 }, + { "px": [688,80], "src": [320,272], "f": 0, "t": 411, "d": [108,283], "a": 1 }, + { "px": [704,80], "src": [320,272], "f": 0, "t": 411, "d": [108,284], "a": 1 }, + { "px": [720,80], "src": [320,272], "f": 0, "t": 411, "d": [108,285], "a": 1 }, + { "px": [736,80], "src": [320,272], "f": 0, "t": 411, "d": [108,286], "a": 1 }, + { "px": [752,80], "src": [320,272], "f": 0, "t": 411, "d": [108,287], "a": 1 }, + { "px": [48,96], "src": [320,272], "f": 0, "t": 411, "d": [108,291], "a": 1 }, + { "px": [64,96], "src": [320,272], "f": 0, "t": 411, "d": [108,292], "a": 1 }, + { "px": [96,96], "src": [320,272], "f": 0, "t": 411, "d": [108,294], "a": 1 }, + { "px": [112,96], "src": [320,272], "f": 0, "t": 411, "d": [108,295], "a": 1 }, + { "px": [144,96], "src": [320,272], "f": 0, "t": 411, "d": [108,297], "a": 1 }, + { "px": [160,96], "src": [320,272], "f": 0, "t": 411, "d": [108,298], "a": 1 }, + { "px": [176,96], "src": [320,272], "f": 0, "t": 411, "d": [108,299], "a": 1 }, + { "px": [192,96], "src": [320,272], "f": 0, "t": 411, "d": [108,300], "a": 1 }, + { "px": [208,96], "src": [320,272], "f": 0, "t": 411, "d": [108,301], "a": 1 }, + { "px": [240,96], "src": [320,272], "f": 0, "t": 411, "d": [108,303], "a": 1 }, + { "px": [256,96], "src": [320,272], "f": 0, "t": 411, "d": [108,304], "a": 1 }, + { "px": [288,96], "src": [320,272], "f": 0, "t": 411, "d": [108,306], "a": 1 }, + { "px": [304,96], "src": [320,272], "f": 0, "t": 411, "d": [108,307], "a": 1 }, + { "px": [336,96], "src": [320,272], "f": 0, "t": 411, "d": [108,309], "a": 1 }, + { "px": [352,96], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [384,96], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [400,96], "src": [320,272], "f": 0, "t": 411, "d": [108,313], "a": 1 }, + { "px": [432,96], "src": [320,272], "f": 0, "t": 411, "d": [108,315], "a": 1 }, + { "px": [448,96], "src": [320,272], "f": 0, "t": 411, "d": [108,316], "a": 1 }, + { "px": [464,96], "src": [320,272], "f": 0, "t": 411, "d": [108,317], "a": 1 }, + { "px": [480,96], "src": [320,272], "f": 0, "t": 411, "d": [108,318], "a": 1 }, + { "px": [496,96], "src": [320,272], "f": 0, "t": 411, "d": [108,319], "a": 1 }, + { "px": [528,96], "src": [320,272], "f": 0, "t": 411, "d": [108,321], "a": 1 }, + { "px": [544,96], "src": [320,272], "f": 0, "t": 411, "d": [108,322], "a": 1 }, + { "px": [576,96], "src": [320,272], "f": 0, "t": 411, "d": [108,324], "a": 1 }, + { "px": [592,96], "src": [320,272], "f": 0, "t": 411, "d": [108,325], "a": 1 }, + { "px": [608,96], "src": [320,272], "f": 0, "t": 411, "d": [108,326], "a": 1 }, + { "px": [624,96], "src": [320,272], "f": 0, "t": 411, "d": [108,327], "a": 1 }, + { "px": [640,96], "src": [320,272], "f": 0, "t": 411, "d": [108,328], "a": 1 }, + { "px": [656,96], "src": [320,272], "f": 0, "t": 411, "d": [108,329], "a": 1 }, + { "px": [672,96], "src": [320,272], "f": 0, "t": 411, "d": [108,330], "a": 1 }, + { "px": [688,96], "src": [320,272], "f": 0, "t": 411, "d": [108,331], "a": 1 }, + { "px": [720,96], "src": [320,272], "f": 0, "t": 411, "d": [108,333], "a": 1 }, + { "px": [736,96], "src": [320,272], "f": 0, "t": 411, "d": [108,334], "a": 1 }, + { "px": [752,96], "src": [320,272], "f": 0, "t": 411, "d": [108,335], "a": 1 }, + { "px": [48,112], "src": [320,272], "f": 0, "t": 411, "d": [108,339], "a": 1 }, + { "px": [64,112], "src": [320,272], "f": 0, "t": 411, "d": [108,340], "a": 1 }, + { "px": [96,112], "src": [320,272], "f": 0, "t": 411, "d": [108,342], "a": 1 }, + { "px": [112,112], "src": [320,272], "f": 0, "t": 411, "d": [108,343], "a": 1 }, + { "px": [128,112], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [144,112], "src": [320,272], "f": 0, "t": 411, "d": [108,345], "a": 1 }, + { "px": [160,112], "src": [320,272], "f": 0, "t": 411, "d": [108,346], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [108,347], "a": 1 }, + { "px": [192,112], "src": [320,272], "f": 0, "t": 411, "d": [108,348], "a": 1 }, + { "px": [208,112], "src": [320,272], "f": 0, "t": 411, "d": [108,349], "a": 1 }, + { "px": [224,112], "src": [320,272], "f": 0, "t": 411, "d": [108,350], "a": 1 }, + { "px": [240,112], "src": [320,272], "f": 0, "t": 411, "d": [108,351], "a": 1 }, + { "px": [256,112], "src": [320,272], "f": 0, "t": 411, "d": [108,352], "a": 1 }, + { "px": [272,112], "src": [320,272], "f": 0, "t": 411, "d": [108,353], "a": 1 }, + { "px": [288,112], "src": [320,272], "f": 0, "t": 411, "d": [108,354], "a": 1 }, + { "px": [304,112], "src": [320,272], "f": 0, "t": 411, "d": [108,355], "a": 1 }, + { "px": [320,112], "src": [320,272], "f": 0, "t": 411, "d": [108,356], "a": 1 }, + { "px": [336,112], "src": [320,272], "f": 0, "t": 411, "d": [108,357], "a": 1 }, + { "px": [352,112], "src": [320,272], "f": 0, "t": 411, "d": [108,358], "a": 1 }, + { "px": [368,112], "src": [320,272], "f": 0, "t": 411, "d": [108,359], "a": 1 }, + { "px": [384,112], "src": [320,272], "f": 0, "t": 411, "d": [108,360], "a": 1 }, + { "px": [400,112], "src": [320,272], "f": 0, "t": 411, "d": [108,361], "a": 1 }, + { "px": [416,112], "src": [320,272], "f": 0, "t": 411, "d": [108,362], "a": 1 }, + { "px": [432,112], "src": [320,272], "f": 0, "t": 411, "d": [108,363], "a": 1 }, + { "px": [448,112], "src": [320,272], "f": 0, "t": 411, "d": [108,364], "a": 1 }, + { "px": [464,112], "src": [320,272], "f": 0, "t": 411, "d": [108,365], "a": 1 }, + { "px": [480,112], "src": [320,272], "f": 0, "t": 411, "d": [108,366], "a": 1 }, + { "px": [496,112], "src": [320,272], "f": 0, "t": 411, "d": [108,367], "a": 1 }, + { "px": [512,112], "src": [320,272], "f": 0, "t": 411, "d": [108,368], "a": 1 }, + { "px": [528,112], "src": [320,272], "f": 0, "t": 411, "d": [108,369], "a": 1 }, + { "px": [544,112], "src": [320,272], "f": 0, "t": 411, "d": [108,370], "a": 1 }, + { "px": [560,112], "src": [320,272], "f": 0, "t": 411, "d": [108,371], "a": 1 }, + { "px": [576,112], "src": [320,272], "f": 0, "t": 411, "d": [108,372], "a": 1 }, + { "px": [592,112], "src": [320,272], "f": 0, "t": 411, "d": [108,373], "a": 1 }, + { "px": [608,112], "src": [320,272], "f": 0, "t": 411, "d": [108,374], "a": 1 }, + { "px": [624,112], "src": [320,272], "f": 0, "t": 411, "d": [108,375], "a": 1 }, + { "px": [640,112], "src": [320,272], "f": 0, "t": 411, "d": [108,376], "a": 1 }, + { "px": [656,112], "src": [320,272], "f": 0, "t": 411, "d": [108,377], "a": 1 }, + { "px": [672,112], "src": [320,272], "f": 0, "t": 411, "d": [108,378], "a": 1 }, + { "px": [688,112], "src": [320,272], "f": 0, "t": 411, "d": [108,379], "a": 1 }, + { "px": [704,112], "src": [320,272], "f": 0, "t": 411, "d": [108,380], "a": 1 }, + { "px": [720,112], "src": [320,272], "f": 0, "t": 411, "d": [108,381], "a": 1 }, + { "px": [736,112], "src": [320,272], "f": 0, "t": 411, "d": [108,382], "a": 1 }, + { "px": [752,112], "src": [320,272], "f": 0, "t": 411, "d": [108,383], "a": 1 }, + { "px": [192,128], "src": [320,272], "f": 0, "t": 411, "d": [108,396], "a": 1 }, + { "px": [208,128], "src": [320,272], "f": 0, "t": 411, "d": [108,397], "a": 1 }, + { "px": [224,128], "src": [320,272], "f": 0, "t": 411, "d": [108,398], "a": 1 }, + { "px": [240,128], "src": [320,272], "f": 0, "t": 411, "d": [108,399], "a": 1 }, + { "px": [256,128], "src": [320,272], "f": 0, "t": 411, "d": [108,400], "a": 1 }, + { "px": [272,128], "src": [320,272], "f": 0, "t": 411, "d": [108,401], "a": 1 }, + { "px": [304,128], "src": [320,272], "f": 0, "t": 411, "d": [108,403], "a": 1 }, + { "px": [320,128], "src": [320,272], "f": 0, "t": 411, "d": [108,404], "a": 1 }, + { "px": [352,128], "src": [320,272], "f": 0, "t": 411, "d": [108,406], "a": 1 }, + { "px": [368,128], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [400,128], "src": [320,272], "f": 0, "t": 411, "d": [108,409], "a": 1 }, + { "px": [416,128], "src": [320,272], "f": 0, "t": 411, "d": [108,410], "a": 1 }, + { "px": [432,128], "src": [320,272], "f": 0, "t": 411, "d": [108,411], "a": 1 }, + { "px": [448,128], "src": [320,272], "f": 0, "t": 411, "d": [108,412], "a": 1 }, + { "px": [464,128], "src": [320,272], "f": 0, "t": 411, "d": [108,413], "a": 1 }, + { "px": [480,128], "src": [320,272], "f": 0, "t": 411, "d": [108,414], "a": 1 }, + { "px": [496,128], "src": [320,272], "f": 0, "t": 411, "d": [108,415], "a": 1 }, + { "px": [512,128], "src": [320,272], "f": 0, "t": 411, "d": [108,416], "a": 1 }, + { "px": [544,128], "src": [320,272], "f": 0, "t": 411, "d": [108,418], "a": 1 }, + { "px": [560,128], "src": [320,272], "f": 0, "t": 411, "d": [108,419], "a": 1 }, + { "px": [576,128], "src": [320,272], "f": 0, "t": 411, "d": [108,420], "a": 1 }, + { "px": [592,128], "src": [320,272], "f": 0, "t": 411, "d": [108,421], "a": 1 }, + { "px": [608,128], "src": [320,272], "f": 0, "t": 411, "d": [108,422], "a": 1 }, + { "px": [624,128], "src": [320,272], "f": 0, "t": 411, "d": [108,423], "a": 1 }, + { "px": [640,128], "src": [320,272], "f": 0, "t": 411, "d": [108,424], "a": 1 }, + { "px": [656,128], "src": [320,272], "f": 0, "t": 411, "d": [108,425], "a": 1 }, + { "px": [672,128], "src": [320,272], "f": 0, "t": 411, "d": [108,426], "a": 1 }, + { "px": [688,128], "src": [320,272], "f": 0, "t": 411, "d": [108,427], "a": 1 }, + { "px": [192,144], "src": [320,272], "f": 0, "t": 411, "d": [108,444], "a": 1 }, + { "px": [208,144], "src": [320,272], "f": 0, "t": 411, "d": [108,445], "a": 1 }, + { "px": [224,144], "src": [320,272], "f": 0, "t": 411, "d": [108,446], "a": 1 }, + { "px": [240,144], "src": [320,272], "f": 0, "t": 411, "d": [108,447], "a": 1 }, + { "px": [256,144], "src": [320,272], "f": 0, "t": 411, "d": [108,448], "a": 1 }, + { "px": [272,144], "src": [320,272], "f": 0, "t": 411, "d": [108,449], "a": 1 }, + { "px": [288,144], "src": [320,272], "f": 0, "t": 411, "d": [108,450], "a": 1 }, + { "px": [304,144], "src": [320,272], "f": 0, "t": 411, "d": [108,451], "a": 1 }, + { "px": [320,144], "src": [320,272], "f": 0, "t": 411, "d": [108,452], "a": 1 }, + { "px": [336,144], "src": [320,272], "f": 0, "t": 411, "d": [108,453], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [108,454], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [108,455], "a": 1 }, + { "px": [384,144], "src": [320,272], "f": 0, "t": 411, "d": [108,456], "a": 1 }, + { "px": [416,144], "src": [320,272], "f": 0, "t": 411, "d": [108,458], "a": 1 }, + { "px": [432,144], "src": [320,272], "f": 0, "t": 411, "d": [108,459], "a": 1 }, + { "px": [448,144], "src": [320,272], "f": 0, "t": 411, "d": [108,460], "a": 1 }, + { "px": [464,144], "src": [320,272], "f": 0, "t": 411, "d": [108,461], "a": 1 }, + { "px": [480,144], "src": [320,272], "f": 0, "t": 411, "d": [108,462], "a": 1 }, + { "px": [496,144], "src": [320,272], "f": 0, "t": 411, "d": [108,463], "a": 1 }, + { "px": [512,144], "src": [320,272], "f": 0, "t": 411, "d": [108,464], "a": 1 }, + { "px": [528,144], "src": [320,272], "f": 0, "t": 411, "d": [108,465], "a": 1 }, + { "px": [544,144], "src": [320,272], "f": 0, "t": 411, "d": [108,466], "a": 1 }, + { "px": [560,144], "src": [320,272], "f": 0, "t": 411, "d": [108,467], "a": 1 }, + { "px": [576,144], "src": [320,272], "f": 0, "t": 411, "d": [108,468], "a": 1 }, + { "px": [592,144], "src": [320,272], "f": 0, "t": 411, "d": [108,469], "a": 1 }, + { "px": [608,144], "src": [320,272], "f": 0, "t": 411, "d": [108,470], "a": 1 }, + { "px": [624,144], "src": [320,272], "f": 0, "t": 411, "d": [108,471], "a": 1 }, + { "px": [640,144], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [656,144], "src": [320,272], "f": 0, "t": 411, "d": [108,473], "a": 1 }, + { "px": [672,144], "src": [320,272], "f": 0, "t": 411, "d": [108,474], "a": 1 }, + { "px": [688,144], "src": [320,272], "f": 0, "t": 411, "d": [108,475], "a": 1 }, + { "px": [48,160], "src": [320,272], "f": 0, "t": 411, "d": [108,483], "a": 1 }, + { "px": [64,160], "src": [320,272], "f": 0, "t": 411, "d": [108,484], "a": 1 }, + { "px": [80,160], "src": [320,272], "f": 0, "t": 411, "d": [108,485], "a": 1 }, + { "px": [96,160], "src": [320,272], "f": 0, "t": 411, "d": [108,486], "a": 1 }, + { "px": [112,160], "src": [320,272], "f": 0, "t": 411, "d": [108,487], "a": 1 }, + { "px": [128,160], "src": [320,272], "f": 0, "t": 411, "d": [108,488], "a": 1 }, + { "px": [144,160], "src": [320,272], "f": 0, "t": 411, "d": [108,489], "a": 1 }, + { "px": [160,160], "src": [320,272], "f": 0, "t": 411, "d": [108,490], "a": 1 }, + { "px": [176,160], "src": [320,272], "f": 0, "t": 411, "d": [108,491], "a": 1 }, + { "px": [192,160], "src": [320,272], "f": 0, "t": 411, "d": [108,492], "a": 1 }, + { "px": [208,160], "src": [320,272], "f": 0, "t": 411, "d": [108,493], "a": 1 }, + { "px": [224,160], "src": [320,272], "f": 0, "t": 411, "d": [108,494], "a": 1 }, + { "px": [240,160], "src": [320,272], "f": 0, "t": 411, "d": [108,495], "a": 1 }, + { "px": [256,160], "src": [320,272], "f": 0, "t": 411, "d": [108,496], "a": 1 }, + { "px": [272,160], "src": [320,272], "f": 0, "t": 411, "d": [108,497], "a": 1 }, + { "px": [288,160], "src": [320,272], "f": 0, "t": 411, "d": [108,498], "a": 1 }, + { "px": [304,160], "src": [320,272], "f": 0, "t": 411, "d": [108,499], "a": 1 }, + { "px": [320,160], "src": [320,272], "f": 0, "t": 411, "d": [108,500], "a": 1 }, + { "px": [336,160], "src": [320,272], "f": 0, "t": 411, "d": [108,501], "a": 1 }, + { "px": [592,160], "src": [320,272], "f": 0, "t": 411, "d": [108,517], "a": 1 }, + { "px": [608,160], "src": [320,272], "f": 0, "t": 411, "d": [108,518], "a": 1 }, + { "px": [624,160], "src": [320,272], "f": 0, "t": 411, "d": [108,519], "a": 1 }, + { "px": [640,160], "src": [320,272], "f": 0, "t": 411, "d": [108,520], "a": 1 }, + { "px": [656,160], "src": [320,272], "f": 0, "t": 411, "d": [108,521], "a": 1 }, + { "px": [672,160], "src": [320,272], "f": 0, "t": 411, "d": [108,522], "a": 1 }, + { "px": [688,160], "src": [320,272], "f": 0, "t": 411, "d": [108,523], "a": 1 }, + { "px": [32,176], "src": [320,272], "f": 0, "t": 411, "d": [108,530], "a": 1 }, + { "px": [48,176], "src": [320,272], "f": 0, "t": 411, "d": [108,531], "a": 1 }, + { "px": [64,176], "src": [320,272], "f": 0, "t": 411, "d": [108,532], "a": 1 }, + { "px": [80,176], "src": [320,272], "f": 0, "t": 411, "d": [108,533], "a": 1 }, + { "px": [96,176], "src": [320,272], "f": 0, "t": 411, "d": [108,534], "a": 1 }, + { "px": [112,176], "src": [320,272], "f": 0, "t": 411, "d": [108,535], "a": 1 }, + { "px": [128,176], "src": [320,272], "f": 0, "t": 411, "d": [108,536], "a": 1 }, + { "px": [144,176], "src": [320,272], "f": 0, "t": 411, "d": [108,537], "a": 1 }, + { "px": [160,176], "src": [320,272], "f": 0, "t": 411, "d": [108,538], "a": 1 }, + { "px": [176,176], "src": [320,272], "f": 0, "t": 411, "d": [108,539], "a": 1 }, + { "px": [192,176], "src": [320,272], "f": 0, "t": 411, "d": [108,540], "a": 1 }, + { "px": [208,176], "src": [320,272], "f": 0, "t": 411, "d": [108,541], "a": 1 }, + { "px": [224,176], "src": [320,272], "f": 0, "t": 411, "d": [108,542], "a": 1 }, + { "px": [240,176], "src": [320,272], "f": 0, "t": 411, "d": [108,543], "a": 1 }, + { "px": [256,176], "src": [320,272], "f": 0, "t": 411, "d": [108,544], "a": 1 }, + { "px": [272,176], "src": [320,272], "f": 0, "t": 411, "d": [108,545], "a": 1 }, + { "px": [288,176], "src": [320,272], "f": 0, "t": 411, "d": [108,546], "a": 1 }, + { "px": [304,176], "src": [320,272], "f": 0, "t": 411, "d": [108,547], "a": 1 }, + { "px": [320,176], "src": [320,272], "f": 0, "t": 411, "d": [108,548], "a": 1 }, + { "px": [336,176], "src": [320,272], "f": 0, "t": 411, "d": [108,549], "a": 1 }, + { "px": [352,176], "src": [320,272], "f": 0, "t": 411, "d": [108,550], "a": 1 }, + { "px": [576,176], "src": [320,272], "f": 0, "t": 411, "d": [108,564], "a": 1 }, + { "px": [592,176], "src": [320,272], "f": 0, "t": 411, "d": [108,565], "a": 1 }, + { "px": [608,176], "src": [320,272], "f": 0, "t": 411, "d": [108,566], "a": 1 }, + { "px": [624,176], "src": [320,272], "f": 0, "t": 411, "d": [108,567], "a": 1 }, + { "px": [640,176], "src": [320,272], "f": 0, "t": 411, "d": [108,568], "a": 1 }, + { "px": [656,176], "src": [320,272], "f": 0, "t": 411, "d": [108,569], "a": 1 }, + { "px": [672,176], "src": [320,272], "f": 0, "t": 411, "d": [108,570], "a": 1 }, + { "px": [688,176], "src": [320,272], "f": 0, "t": 411, "d": [108,571], "a": 1 }, + { "px": [704,176], "src": [320,272], "f": 0, "t": 411, "d": [108,572], "a": 1 }, + { "px": [32,192], "src": [320,272], "f": 0, "t": 411, "d": [108,578], "a": 1 }, + { "px": [48,192], "src": [320,272], "f": 0, "t": 411, "d": [108,579], "a": 1 }, + { "px": [64,192], "src": [320,272], "f": 0, "t": 411, "d": [108,580], "a": 1 }, + { "px": [80,192], "src": [320,272], "f": 0, "t": 411, "d": [108,581], "a": 1 }, + { "px": [96,192], "src": [320,272], "f": 0, "t": 411, "d": [108,582], "a": 1 }, + { "px": [112,192], "src": [320,272], "f": 0, "t": 411, "d": [108,583], "a": 1 }, + { "px": [128,192], "src": [320,272], "f": 0, "t": 411, "d": [108,584], "a": 1 }, + { "px": [144,192], "src": [320,272], "f": 0, "t": 411, "d": [108,585], "a": 1 }, + { "px": [160,192], "src": [320,272], "f": 0, "t": 411, "d": [108,586], "a": 1 }, + { "px": [176,192], "src": [320,272], "f": 0, "t": 411, "d": [108,587], "a": 1 }, + { "px": [192,192], "src": [320,272], "f": 0, "t": 411, "d": [108,588], "a": 1 }, + { "px": [208,192], "src": [320,272], "f": 0, "t": 411, "d": [108,589], "a": 1 }, + { "px": [224,192], "src": [320,272], "f": 0, "t": 411, "d": [108,590], "a": 1 }, + { "px": [240,192], "src": [320,272], "f": 0, "t": 411, "d": [108,591], "a": 1 }, + { "px": [256,192], "src": [320,272], "f": 0, "t": 411, "d": [108,592], "a": 1 }, + { "px": [272,192], "src": [320,272], "f": 0, "t": 411, "d": [108,593], "a": 1 }, + { "px": [288,192], "src": [320,272], "f": 0, "t": 411, "d": [108,594], "a": 1 }, + { "px": [304,192], "src": [320,272], "f": 0, "t": 411, "d": [108,595], "a": 1 }, + { "px": [320,192], "src": [320,272], "f": 0, "t": 411, "d": [108,596], "a": 1 }, + { "px": [336,192], "src": [320,272], "f": 0, "t": 411, "d": [108,597], "a": 1 }, + { "px": [352,192], "src": [320,272], "f": 0, "t": 411, "d": [108,598], "a": 1 }, + { "px": [608,192], "src": [320,272], "f": 0, "t": 411, "d": [108,614], "a": 1 }, + { "px": [624,192], "src": [320,272], "f": 0, "t": 411, "d": [108,615], "a": 1 }, + { "px": [640,192], "src": [320,272], "f": 0, "t": 411, "d": [108,616], "a": 1 }, + { "px": [608,208], "src": [320,272], "f": 0, "t": 411, "d": [108,662], "a": 1 }, + { "px": [624,208], "src": [320,272], "f": 0, "t": 411, "d": [108,663], "a": 1 }, + { "px": [640,208], "src": [320,272], "f": 0, "t": 411, "d": [108,664], "a": 1 }, + { "px": [608,224], "src": [320,272], "f": 0, "t": 411, "d": [108,710], "a": 1 }, + { "px": [624,224], "src": [320,272], "f": 0, "t": 411, "d": [108,711], "a": 1 }, + { "px": [640,224], "src": [320,272], "f": 0, "t": 411, "d": [108,712], "a": 1 }, + { "px": [608,240], "src": [320,272], "f": 0, "t": 411, "d": [108,758], "a": 1 }, + { "px": [624,240], "src": [320,272], "f": 0, "t": 411, "d": [108,759], "a": 1 }, + { "px": [640,240], "src": [320,272], "f": 0, "t": 411, "d": [108,760], "a": 1 }, + { "px": [112,0], "src": [256,240], "f": 1, "t": 361, "d": [107,6], "a": 1 }, + { "px": [96,0], "src": [272,240], "f": 1, "t": 362, "d": [107,6], "a": 1 }, + { "px": [128,0], "src": [256,240], "f": 0, "t": 361, "d": [107,9], "a": 1 }, + { "px": [144,0], "src": [272,240], "f": 0, "t": 362, "d": [107,9], "a": 1 }, + { "px": [112,16], "src": [256,240], "f": 1, "t": 361, "d": [107,54], "a": 1 }, + { "px": [96,16], "src": [272,240], "f": 1, "t": 362, "d": [107,54], "a": 1 }, + { "px": [128,16], "src": [256,240], "f": 0, "t": 361, "d": [107,57], "a": 1 }, + { "px": [144,16], "src": [272,240], "f": 0, "t": 362, "d": [107,57], "a": 1 }, + { "px": [224,16], "src": [256,240], "f": 1, "t": 361, "d": [107,61], "a": 1 }, + { "px": [208,16], "src": [272,240], "f": 1, "t": 362, "d": [107,61], "a": 1 }, + { "px": [112,32], "src": [256,240], "f": 1, "t": 361, "d": [107,102], "a": 1 }, + { "px": [96,32], "src": [272,240], "f": 1, "t": 362, "d": [107,102], "a": 1 }, + { "px": [224,32], "src": [256,240], "f": 0, "t": 361, "d": [107,111], "a": 1 }, + { "px": [240,32], "src": [272,240], "f": 0, "t": 362, "d": [107,111], "a": 1 }, + { "px": [112,48], "src": [256,240], "f": 1, "t": 361, "d": [107,150], "a": 1 }, + { "px": [96,48], "src": [272,240], "f": 1, "t": 362, "d": [107,150], "a": 1 }, + { "px": [480,48], "src": [256,240], "f": 1, "t": 361, "d": [107,173], "a": 1 }, + { "px": [464,48], "src": [272,240], "f": 1, "t": 362, "d": [107,173], "a": 1 }, + { "px": [688,48], "src": [256,240], "f": 0, "t": 361, "d": [107,188], "a": 1 }, + { "px": [704,48], "src": [272,240], "f": 0, "t": 362, "d": [107,188], "a": 1 }, + { "px": [128,64], "src": [256,240], "f": 0, "t": 361, "d": [107,201], "a": 1 }, + { "px": [144,64], "src": [272,240], "f": 0, "t": 362, "d": [107,201], "a": 1 }, + { "px": [480,64], "src": [256,240], "f": 1, "t": 361, "d": [107,221], "a": 1 }, + { "px": [464,64], "src": [272,240], "f": 1, "t": 362, "d": [107,221], "a": 1 }, + { "px": [688,64], "src": [256,240], "f": 0, "t": 361, "d": [107,236], "a": 1 }, + { "px": [704,64], "src": [272,240], "f": 0, "t": 362, "d": [107,236], "a": 1 }, + { "px": [48,80], "src": [256,240], "f": 1, "t": 361, "d": [107,242], "a": 1 }, + { "px": [32,80], "src": [272,240], "f": 1, "t": 362, "d": [107,242], "a": 1 }, + { "px": [48,96], "src": [256,240], "f": 1, "t": 361, "d": [107,290], "a": 1 }, + { "px": [32,96], "src": [272,240], "f": 1, "t": 362, "d": [107,290], "a": 1 }, + { "px": [192,128], "src": [256,240], "f": 1, "t": 361, "d": [107,395], "a": 1 }, + { "px": [176,128], "src": [272,240], "f": 1, "t": 362, "d": [107,395], "a": 1 }, + { "px": [688,128], "src": [256,240], "f": 0, "t": 361, "d": [107,428], "a": 1 }, + { "px": [704,128], "src": [272,240], "f": 0, "t": 362, "d": [107,428], "a": 1 }, + { "px": [192,144], "src": [256,240], "f": 1, "t": 361, "d": [107,443], "a": 1 }, + { "px": [176,144], "src": [272,240], "f": 1, "t": 362, "d": [107,443], "a": 1 }, + { "px": [688,144], "src": [256,240], "f": 0, "t": 361, "d": [107,476], "a": 1 }, + { "px": [704,144], "src": [272,240], "f": 0, "t": 362, "d": [107,476], "a": 1 }, + { "px": [48,160], "src": [256,240], "f": 1, "t": 361, "d": [107,482], "a": 1 }, + { "px": [32,160], "src": [272,240], "f": 1, "t": 362, "d": [107,482], "a": 1 }, + { "px": [336,160], "src": [256,240], "f": 0, "t": 361, "d": [107,502], "a": 1 }, + { "px": [352,160], "src": [272,240], "f": 0, "t": 362, "d": [107,502], "a": 1 }, + { "px": [592,160], "src": [256,240], "f": 1, "t": 361, "d": [107,516], "a": 1 }, + { "px": [576,160], "src": [272,240], "f": 1, "t": 362, "d": [107,516], "a": 1 }, + { "px": [688,160], "src": [256,240], "f": 0, "t": 361, "d": [107,524], "a": 1 }, + { "px": [704,160], "src": [272,240], "f": 0, "t": 362, "d": [107,524], "a": 1 }, + { "px": [64,96], "src": [256,240], "f": 0, "t": 361, "d": [105,293], "a": 1 }, + { "px": [80,96], "src": [272,240], "f": 0, "t": 362, "d": [105,293], "a": 1 }, + { "px": [96,96], "src": [288,240], "f": 0, "t": 363, "d": [105,293], "a": 1 }, + { "px": [112,96], "src": [256,240], "f": 0, "t": 361, "d": [105,296], "a": 1 }, + { "px": [128,96], "src": [272,240], "f": 0, "t": 362, "d": [105,296], "a": 1 }, + { "px": [144,96], "src": [288,240], "f": 0, "t": 363, "d": [105,296], "a": 1 }, + { "px": [208,96], "src": [256,240], "f": 0, "t": 361, "d": [105,302], "a": 1 }, + { "px": [224,96], "src": [272,240], "f": 0, "t": 362, "d": [105,302], "a": 1 }, + { "px": [240,96], "src": [288,240], "f": 0, "t": 363, "d": [105,302], "a": 1 }, + { "px": [256,96], "src": [256,240], "f": 0, "t": 361, "d": [105,305], "a": 1 }, + { "px": [272,96], "src": [272,240], "f": 0, "t": 362, "d": [105,305], "a": 1 }, + { "px": [288,96], "src": [288,240], "f": 0, "t": 363, "d": [105,305], "a": 1 }, + { "px": [304,96], "src": [256,240], "f": 0, "t": 361, "d": [105,308], "a": 1 }, + { "px": [320,96], "src": [272,240], "f": 0, "t": 362, "d": [105,308], "a": 1 }, + { "px": [336,96], "src": [288,240], "f": 0, "t": 363, "d": [105,308], "a": 1 }, + { "px": [352,96], "src": [256,240], "f": 0, "t": 361, "d": [105,311], "a": 1 }, + { "px": [368,96], "src": [272,240], "f": 0, "t": 362, "d": [105,311], "a": 1 }, + { "px": [384,96], "src": [288,240], "f": 0, "t": 363, "d": [105,311], "a": 1 }, + { "px": [400,96], "src": [256,240], "f": 0, "t": 361, "d": [105,314], "a": 1 }, + { "px": [416,96], "src": [272,240], "f": 0, "t": 362, "d": [105,314], "a": 1 }, + { "px": [432,96], "src": [288,240], "f": 0, "t": 363, "d": [105,314], "a": 1 }, + { "px": [496,96], "src": [256,240], "f": 0, "t": 361, "d": [105,320], "a": 1 }, + { "px": [512,96], "src": [272,240], "f": 0, "t": 362, "d": [105,320], "a": 1 }, + { "px": [528,96], "src": [288,240], "f": 0, "t": 363, "d": [105,320], "a": 1 }, + { "px": [544,96], "src": [256,240], "f": 0, "t": 361, "d": [105,323], "a": 1 }, + { "px": [560,96], "src": [272,240], "f": 0, "t": 362, "d": [105,323], "a": 1 }, + { "px": [576,96], "src": [288,240], "f": 0, "t": 363, "d": [105,323], "a": 1 }, + { "px": [688,96], "src": [256,240], "f": 0, "t": 361, "d": [105,332], "a": 1 }, + { "px": [704,96], "src": [272,240], "f": 0, "t": 362, "d": [105,332], "a": 1 }, + { "px": [720,96], "src": [288,240], "f": 0, "t": 363, "d": [105,332], "a": 1 }, + { "px": [272,128], "src": [256,240], "f": 0, "t": 361, "d": [105,402], "a": 1 }, + { "px": [288,128], "src": [272,240], "f": 0, "t": 362, "d": [105,402], "a": 1 }, + { "px": [304,128], "src": [288,240], "f": 0, "t": 363, "d": [105,402], "a": 1 }, + { "px": [320,128], "src": [256,240], "f": 0, "t": 361, "d": [105,405], "a": 1 }, + { "px": [336,128], "src": [272,240], "f": 0, "t": 362, "d": [105,405], "a": 1 }, + { "px": [352,128], "src": [288,240], "f": 0, "t": 363, "d": [105,405], "a": 1 }, + { "px": [368,128], "src": [256,240], "f": 0, "t": 361, "d": [105,408], "a": 1 }, + { "px": [384,128], "src": [272,240], "f": 0, "t": 362, "d": [105,408], "a": 1 }, + { "px": [400,128], "src": [288,240], "f": 0, "t": 363, "d": [105,408], "a": 1 }, + { "px": [512,128], "src": [256,240], "f": 0, "t": 361, "d": [105,417], "a": 1 }, + { "px": [528,128], "src": [272,240], "f": 0, "t": 362, "d": [105,417], "a": 1 }, + { "px": [544,128], "src": [288,240], "f": 0, "t": 363, "d": [105,417], "a": 1 }, + { "px": [224,112], "src": [144,240], "f": 2, "t": 354, "d": [112,255], "a": 1 }, + { "px": [224,96], "src": [144,256], "f": 2, "t": 377, "d": [112,255], "a": 1 }, + { "px": [224,80], "src": [144,272], "f": 2, "t": 400, "d": [112,255], "a": 1 }, + { "px": [240,112], "src": [160,240], "f": 2, "t": 355, "d": [112,255], "a": 1 }, + { "px": [240,96], "src": [160,256], "f": 2, "t": 378, "d": [112,255], "a": 1 }, + { "px": [240,80], "src": [160,272], "f": 2, "t": 401, "d": [112,255], "a": 1 }, + { "px": [256,112], "src": [176,240], "f": 2, "t": 356, "d": [112,255], "a": 1 }, + { "px": [256,96], "src": [176,256], "f": 2, "t": 379, "d": [112,255], "a": 1 }, + { "px": [256,80], "src": [176,272], "f": 2, "t": 402, "d": [112,255], "a": 1 }, + { "px": [64,80], "src": [144,240], "f": 0, "t": 354, "d": [112,341], "a": 1 }, + { "px": [64,96], "src": [144,256], "f": 0, "t": 377, "d": [112,341], "a": 1 }, + { "px": [64,112], "src": [144,272], "f": 0, "t": 400, "d": [112,341], "a": 1 }, + { "px": [80,80], "src": [160,240], "f": 0, "t": 355, "d": [112,341], "a": 1 }, + { "px": [80,96], "src": [160,256], "f": 0, "t": 378, "d": [112,341], "a": 1 }, + { "px": [80,112], "src": [160,272], "f": 0, "t": 401, "d": [112,341], "a": 1 }, + { "px": [96,80], "src": [176,240], "f": 0, "t": 356, "d": [112,341], "a": 1 }, + { "px": [96,96], "src": [176,256], "f": 0, "t": 379, "d": [112,341], "a": 1 }, + { "px": [96,112], "src": [176,272], "f": 0, "t": 402, "d": [112,341], "a": 1 }, + { "px": [384,112], "src": [144,240], "f": 0, "t": 354, "d": [112,457], "a": 1 }, + { "px": [384,128], "src": [144,256], "f": 0, "t": 377, "d": [112,457], "a": 1 }, + { "px": [384,144], "src": [144,272], "f": 0, "t": 400, "d": [112,457], "a": 1 }, + { "px": [400,112], "src": [160,240], "f": 0, "t": 355, "d": [112,457], "a": 1 }, + { "px": [400,128], "src": [160,256], "f": 0, "t": 378, "d": [112,457], "a": 1 }, + { "px": [400,144], "src": [160,272], "f": 0, "t": 401, "d": [112,457], "a": 1 }, + { "px": [416,112], "src": [176,240], "f": 0, "t": 356, "d": [112,457], "a": 1 }, + { "px": [416,128], "src": [176,256], "f": 0, "t": 379, "d": [112,457], "a": 1 }, + { "px": [416,144], "src": [176,272], "f": 0, "t": 402, "d": [112,457], "a": 1 }, + { "px": [240,32], "src": [192,304], "f": 3, "t": 449, "d": [113,63], "a": 1 }, + { "px": [240,16], "src": [192,320], "f": 3, "t": 472, "d": [113,63], "a": 1 }, + { "px": [224,32], "src": [208,304], "f": 3, "t": 450, "d": [113,63], "a": 1 }, + { "px": [224,16], "src": [208,320], "f": 3, "t": 473, "d": [113,63], "a": 1 }, + { "px": [208,32], "src": [224,304], "f": 3, "t": 451, "d": [113,63], "a": 1 }, + { "px": [208,16], "src": [224,320], "f": 3, "t": 474, "d": [113,63], "a": 1 }, + { "px": [464,48], "src": [192,304], "f": 2, "t": 449, "d": [113,125], "a": 1 }, + { "px": [464,32], "src": [192,320], "f": 2, "t": 472, "d": [113,125], "a": 1 }, + { "px": [480,48], "src": [208,304], "f": 2, "t": 450, "d": [113,125], "a": 1 }, + { "px": [480,32], "src": [208,320], "f": 2, "t": 473, "d": [113,125], "a": 1 }, + { "px": [496,48], "src": [224,304], "f": 2, "t": 451, "d": [113,125], "a": 1 }, + { "px": [496,32], "src": [224,320], "f": 2, "t": 474, "d": [113,125], "a": 1 }, + { "px": [704,48], "src": [192,304], "f": 3, "t": 449, "d": [113,140], "a": 1 }, + { "px": [704,32], "src": [192,320], "f": 3, "t": 472, "d": [113,140], "a": 1 }, + { "px": [688,48], "src": [208,304], "f": 3, "t": 450, "d": [113,140], "a": 1 }, + { "px": [688,32], "src": [208,320], "f": 3, "t": 473, "d": [113,140], "a": 1 }, + { "px": [672,48], "src": [224,304], "f": 3, "t": 451, "d": [113,140], "a": 1 }, + { "px": [672,32], "src": [224,320], "f": 3, "t": 474, "d": [113,140], "a": 1 }, + { "px": [240,32], "src": [192,304], "f": 1, "t": 449, "d": [113,159], "a": 1 }, + { "px": [240,48], "src": [192,320], "f": 1, "t": 472, "d": [113,159], "a": 1 }, + { "px": [224,32], "src": [208,304], "f": 1, "t": 450, "d": [113,159], "a": 1 }, + { "px": [224,48], "src": [208,320], "f": 1, "t": 473, "d": [113,159], "a": 1 }, + { "px": [208,32], "src": [224,304], "f": 1, "t": 451, "d": [113,159], "a": 1 }, + { "px": [208,48], "src": [224,320], "f": 1, "t": 474, "d": [113,159], "a": 1 }, + { "px": [32,80], "src": [192,304], "f": 2, "t": 449, "d": [113,194], "a": 1 }, + { "px": [32,64], "src": [192,320], "f": 2, "t": 472, "d": [113,194], "a": 1 }, + { "px": [48,80], "src": [208,304], "f": 2, "t": 450, "d": [113,194], "a": 1 }, + { "px": [48,64], "src": [208,320], "f": 2, "t": 473, "d": [113,194], "a": 1 }, + { "px": [64,80], "src": [224,304], "f": 2, "t": 451, "d": [113,194], "a": 1 }, + { "px": [64,64], "src": [224,320], "f": 2, "t": 474, "d": [113,194], "a": 1 }, + { "px": [32,96], "src": [192,304], "f": 0, "t": 449, "d": [113,338], "a": 1 }, + { "px": [32,112], "src": [192,320], "f": 0, "t": 472, "d": [113,338], "a": 1 }, + { "px": [48,96], "src": [208,304], "f": 0, "t": 450, "d": [113,338], "a": 1 }, + { "px": [48,112], "src": [208,320], "f": 0, "t": 473, "d": [113,338], "a": 1 }, + { "px": [64,96], "src": [224,304], "f": 0, "t": 451, "d": [113,338], "a": 1 }, + { "px": [64,112], "src": [224,320], "f": 0, "t": 474, "d": [113,338], "a": 1 }, + { "px": [224,16], "src": [128,224], "f": 0, "t": 330, "d": [114,62], "a": 1 }, + { "px": [160,32], "src": [128,224], "f": 0, "t": 330, "d": [114,106], "a": 1 }, + { "px": [640,32], "src": [96,208], "f": 0, "t": 305, "d": [114,136], "a": 1 }, + { "px": [256,80], "src": [96,208], "f": 0, "t": 305, "d": [114,256], "a": 1 }, + { "px": [320,80], "src": [96,208], "f": 0, "t": 305, "d": [114,260], "a": 1 }, + { "px": [352,80], "src": [128,224], "f": 0, "t": 330, "d": [114,262], "a": 1 }, + { "px": [480,32], "src": [128,208], "f": 0, "t": 307, "d": [115,126], "a": 1 }, + { "px": [480,48], "src": [128,224], "f": 0, "t": 330, "d": [115,126], "a": 1 }, + { "px": [576,32], "src": [128,208], "f": 0, "t": 307, "d": [115,132], "a": 1 }, + { "px": [576,48], "src": [128,224], "f": 0, "t": 330, "d": [115,132], "a": 1 } + ], + "seed": 7906930, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ + { "levelIid": "a36d41f0-66b0-11ec-9cd7-e962574817d4", "dir": "e" }, + { "levelIid": "a36fda00-66b0-11ec-9cd7-ffa8f8d0b484", "dir": "w" }, + { "levelIid": "a370eb70-66b0-11ec-9cd7-ef1d13410308", "dir": "n" }, + { "levelIid": "a3730e50-66b0-11ec-9cd7-65c84b0f9baa", "dir": "n" }, + { "levelIid": "a373aa90-66b0-11ec-9cd7-a9310f178834", "dir": "s" }, + { "levelIid": "a37690c0-66b0-11ec-9cd7-5f87e3c093eb", "dir": "n" } + ] + }, + { + "identifier": "Pit", + "iid": "a370eb70-66b0-11ec-9cd7-ef1d13410308", + "uid": 50, + "worldX": 768, + "worldY": 256, + "worldDepth": 0, + "pxWid": 256, + "pxHei": 512, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a370eb75-66b0-11ec-9cd7-ade0c82bbd94", + "levelId": 50, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 48713, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Ladder", + "__grid": [13,9], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "9a28b800-66b0-11ec-9ccd-1bf7e7ba09a4", + "width": 16, + "height": 112, + "defUid": 134, + "px": [208,144], + "fieldInstances": [] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a370eb76-66b0-11ec-9cd7-8110395bfa05", + "levelId": 50, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [64,64], "src": [320,128], "f": 0, "t": 204, "d": [26,68], "a": 1 }, + { "px": [208,64], "src": [320,128], "f": 1, "t": 204, "d": [26,77], "a": 1 }, + { "px": [64,80], "src": [320,128], "f": 0, "t": 204, "d": [26,84], "a": 1 }, + { "px": [208,80], "src": [320,128], "f": 1, "t": 204, "d": [26,93], "a": 1 }, + { "px": [64,160], "src": [320,128], "f": 0, "t": 204, "d": [26,164], "a": 1 }, + { "px": [208,160], "src": [320,128], "f": 1, "t": 204, "d": [26,173], "a": 1 }, + { "px": [64,176], "src": [320,128], "f": 0, "t": 204, "d": [26,180], "a": 1 }, + { "px": [208,176], "src": [320,128], "f": 1, "t": 204, "d": [26,189], "a": 1 }, + { "px": [64,192], "src": [320,128], "f": 0, "t": 204, "d": [26,196], "a": 1 }, + { "px": [208,192], "src": [320,128], "f": 1, "t": 204, "d": [26,205], "a": 1 }, + { "px": [64,208], "src": [320,128], "f": 0, "t": 204, "d": [26,212], "a": 1 }, + { "px": [208,208], "src": [320,128], "f": 1, "t": 204, "d": [26,221], "a": 1 }, + { "px": [64,224], "src": [320,128], "f": 0, "t": 204, "d": [26,228], "a": 1 }, + { "px": [208,224], "src": [320,128], "f": 1, "t": 204, "d": [26,237], "a": 1 }, + { "px": [64,240], "src": [320,128], "f": 0, "t": 204, "d": [26,244], "a": 1 }, + { "px": [208,240], "src": [320,128], "f": 1, "t": 204, "d": [26,253], "a": 1 }, + { "px": [64,256], "src": [320,128], "f": 0, "t": 204, "d": [26,260], "a": 1 }, + { "px": [64,272], "src": [320,128], "f": 0, "t": 204, "d": [26,276], "a": 1 }, + { "px": [144,272], "src": [320,128], "f": 1, "t": 204, "d": [26,281], "a": 1 }, + { "px": [64,288], "src": [320,128], "f": 0, "t": 204, "d": [26,292], "a": 1 }, + { "px": [144,288], "src": [320,128], "f": 1, "t": 204, "d": [26,297], "a": 1 }, + { "px": [64,304], "src": [320,128], "f": 0, "t": 204, "d": [26,308], "a": 1 }, + { "px": [144,304], "src": [320,128], "f": 1, "t": 204, "d": [26,313], "a": 1 }, + { "px": [64,320], "src": [320,128], "f": 0, "t": 204, "d": [26,324], "a": 1 }, + { "px": [144,320], "src": [320,128], "f": 1, "t": 204, "d": [26,329], "a": 1 }, + { "px": [64,336], "src": [320,128], "f": 0, "t": 204, "d": [26,340], "a": 1 }, + { "px": [144,336], "src": [320,128], "f": 1, "t": 204, "d": [26,345], "a": 1 }, + { "px": [144,352], "src": [320,128], "f": 1, "t": 204, "d": [26,361], "a": 1 }, + { "px": [96,368], "src": [320,128], "f": 0, "t": 204, "d": [26,374], "a": 1 }, + { "px": [144,368], "src": [320,128], "f": 1, "t": 204, "d": [26,377], "a": 1 }, + { "px": [96,384], "src": [320,128], "f": 0, "t": 204, "d": [26,390], "a": 1 }, + { "px": [144,384], "src": [320,128], "f": 1, "t": 204, "d": [26,393], "a": 1 }, + { "px": [96,400], "src": [320,128], "f": 0, "t": 204, "d": [26,406], "a": 1 }, + { "px": [144,400], "src": [320,128], "f": 1, "t": 204, "d": [26,409], "a": 1 }, + { "px": [96,416], "src": [320,128], "f": 0, "t": 204, "d": [26,422], "a": 1 }, + { "px": [144,416], "src": [320,128], "f": 1, "t": 204, "d": [26,425], "a": 1 }, + { "px": [96,432], "src": [320,128], "f": 0, "t": 204, "d": [26,438], "a": 1 }, + { "px": [144,432], "src": [320,128], "f": 1, "t": 204, "d": [26,441], "a": 1 }, + { "px": [96,448], "src": [320,128], "f": 0, "t": 204, "d": [26,454], "a": 1 }, + { "px": [144,448], "src": [320,128], "f": 1, "t": 204, "d": [26,457], "a": 1 }, + { "px": [96,464], "src": [320,128], "f": 0, "t": 204, "d": [26,470], "a": 1 }, + { "px": [144,464], "src": [320,128], "f": 1, "t": 204, "d": [26,473], "a": 1 }, + { "px": [96,480], "src": [320,128], "f": 0, "t": 204, "d": [26,486], "a": 1 }, + { "px": [144,480], "src": [320,128], "f": 1, "t": 204, "d": [26,489], "a": 1 }, + { "px": [96,496], "src": [320,128], "f": 0, "t": 204, "d": [26,502], "a": 1 }, + { "px": [144,496], "src": [320,128], "f": 1, "t": 204, "d": [26,505], "a": 1 }, + { "px": [64,144], "src": [320,96], "f": 0, "t": 158, "d": [138,148], "a": 1 }, + { "px": [208,144], "src": [320,96], "f": 1, "t": 158, "d": [138,157], "a": 1 }, + { "px": [112,256], "src": [320,96], "f": 1, "t": 158, "d": [138,263], "a": 1 }, + { "px": [96,352], "src": [320,96], "f": 0, "t": 158, "d": [138,358], "a": 1 }, + { "px": [64,64], "src": [336,112], "f": 0, "t": 182, "d": [27,68], "a": 1 }, + { "px": [80,64], "src": [336,112], "f": 0, "t": 182, "d": [27,69], "a": 1 }, + { "px": [96,64], "src": [336,112], "f": 0, "t": 182, "d": [27,70], "a": 1 }, + { "px": [112,64], "src": [336,112], "f": 0, "t": 182, "d": [27,71], "a": 1 }, + { "px": [128,64], "src": [336,112], "f": 0, "t": 182, "d": [27,72], "a": 1 }, + { "px": [144,64], "src": [336,112], "f": 0, "t": 182, "d": [27,73], "a": 1 }, + { "px": [160,64], "src": [336,112], "f": 0, "t": 182, "d": [27,74], "a": 1 }, + { "px": [176,64], "src": [336,112], "f": 0, "t": 182, "d": [27,75], "a": 1 }, + { "px": [192,64], "src": [336,112], "f": 0, "t": 182, "d": [27,76], "a": 1 }, + { "px": [208,64], "src": [336,112], "f": 0, "t": 182, "d": [27,77], "a": 1 }, + { "px": [0,96], "src": [336,112], "f": 0, "t": 182, "d": [27,96], "a": 1 }, + { "px": [16,96], "src": [336,112], "f": 0, "t": 182, "d": [27,97], "a": 1 }, + { "px": [32,96], "src": [336,112], "f": 0, "t": 182, "d": [27,98], "a": 1 }, + { "px": [48,96], "src": [336,112], "f": 0, "t": 182, "d": [27,99], "a": 1 }, + { "px": [224,96], "src": [336,112], "f": 0, "t": 182, "d": [27,110], "a": 1 }, + { "px": [240,96], "src": [336,112], "f": 0, "t": 182, "d": [27,111], "a": 1 }, + { "px": [128,272], "src": [336,112], "f": 0, "t": 182, "d": [27,280], "a": 1 }, + { "px": [144,272], "src": [336,112], "f": 0, "t": 182, "d": [27,281], "a": 1 }, + { "px": [64,96], "src": [320,112], "f": 0, "t": 181, "d": [137,100], "a": 1 }, + { "px": [208,96], "src": [320,112], "f": 1, "t": 181, "d": [137,109], "a": 1 }, + { "px": [112,272], "src": [320,112], "f": 1, "t": 181, "d": [137,279], "a": 1 } + ], + "seed": 9282778, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a370eb77-66b0-11ec-9cd7-45645e749646", + "levelId": 50, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1, + 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1, + 1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, + 0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1, + 1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1, + 1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0, + 0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, + 1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [8,26], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [8,28], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [8,35], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [8,43], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [8,45], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [8,48], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [8,65], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [8,161], "a": 1 }, + { "px": [32,176], "src": [32,32], "f": 0, "t": 48, "d": [8,178], "a": 1 }, + { "px": [240,192], "src": [32,32], "f": 0, "t": 48, "d": [8,207], "a": 1 }, + { "px": [32,208], "src": [32,32], "f": 0, "t": 48, "d": [8,210], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [8,225], "a": 1 }, + { "px": [240,224], "src": [32,32], "f": 0, "t": 48, "d": [8,239], "a": 1 }, + { "px": [240,256], "src": [32,32], "f": 0, "t": 48, "d": [8,271], "a": 1 }, + { "px": [224,272], "src": [32,32], "f": 0, "t": 48, "d": [8,286], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [8,289], "a": 1 }, + { "px": [176,288], "src": [32,32], "f": 0, "t": 48, "d": [8,299], "a": 1 }, + { "px": [208,288], "src": [32,32], "f": 0, "t": 48, "d": [8,301], "a": 1 }, + { "px": [240,288], "src": [32,32], "f": 0, "t": 48, "d": [8,303], "a": 1 }, + { "px": [192,304], "src": [32,32], "f": 0, "t": 48, "d": [8,316], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [8,321], "a": 1 }, + { "px": [176,320], "src": [32,32], "f": 0, "t": 48, "d": [8,331], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [8,338], "a": 1 }, + { "px": [192,336], "src": [32,32], "f": 0, "t": 48, "d": [8,348], "a": 1 }, + { "px": [16,352], "src": [32,32], "f": 0, "t": 48, "d": [8,353], "a": 1 }, + { "px": [176,352], "src": [32,32], "f": 0, "t": 48, "d": [8,363], "a": 1 }, + { "px": [32,368], "src": [32,32], "f": 0, "t": 48, "d": [8,370], "a": 1 }, + { "px": [192,368], "src": [32,32], "f": 0, "t": 48, "d": [8,380], "a": 1 }, + { "px": [16,384], "src": [32,32], "f": 0, "t": 48, "d": [8,385], "a": 1 }, + { "px": [176,384], "src": [32,32], "f": 0, "t": 48, "d": [8,395], "a": 1 }, + { "px": [192,400], "src": [32,32], "f": 0, "t": 48, "d": [8,412], "a": 1 }, + { "px": [64,432], "src": [32,32], "f": 0, "t": 48, "d": [8,436], "a": 1 }, + { "px": [192,432], "src": [32,32], "f": 0, "t": 48, "d": [8,444], "a": 1 }, + { "px": [48,448], "src": [32,32], "f": 0, "t": 48, "d": [8,451], "a": 1 }, + { "px": [176,448], "src": [32,32], "f": 0, "t": 48, "d": [8,459], "a": 1 }, + { "px": [64,464], "src": [32,32], "f": 0, "t": 48, "d": [8,468], "a": 1 }, + { "px": [48,480], "src": [32,32], "f": 0, "t": 48, "d": [8,483], "a": 1 }, + { "px": [64,496], "src": [32,32], "f": 0, "t": 48, "d": [8,500], "a": 1 }, + { "px": [32,16], "src": [64,96], "f": 0, "t": 142, "d": [83,18], "a": 1 }, + { "px": [64,16], "src": [64,96], "f": 0, "t": 142, "d": [83,20], "a": 1 }, + { "px": [96,16], "src": [64,96], "f": 0, "t": 142, "d": [83,22], "a": 1 }, + { "px": [128,16], "src": [64,96], "f": 0, "t": 142, "d": [83,24], "a": 1 }, + { "px": [224,16], "src": [64,96], "f": 0, "t": 142, "d": [83,30], "a": 1 }, + { "px": [16,32], "src": [64,96], "f": 0, "t": 142, "d": [83,33], "a": 1 }, + { "px": [80,32], "src": [96,96], "f": 0, "t": 144, "d": [83,37], "a": 1 }, + { "px": [112,32], "src": [64,96], "f": 0, "t": 142, "d": [83,39], "a": 1 }, + { "px": [144,32], "src": [64,96], "f": 0, "t": 142, "d": [83,41], "a": 1 }, + { "px": [240,32], "src": [64,96], "f": 0, "t": 142, "d": [83,47], "a": 1 }, + { "px": [32,48], "src": [64,96], "f": 0, "t": 142, "d": [83,50], "a": 1 }, + { "px": [240,64], "src": [96,96], "f": 0, "t": 144, "d": [83,79], "a": 1 }, + { "px": [240,160], "src": [64,96], "f": 0, "t": 142, "d": [83,175], "a": 1 }, + { "px": [0,176], "src": [64,96], "f": 0, "t": 142, "d": [83,176], "a": 1 }, + { "px": [16,192], "src": [64,96], "f": 0, "t": 142, "d": [83,193], "a": 1 }, + { "px": [32,240], "src": [64,96], "f": 0, "t": 142, "d": [83,242], "a": 1 }, + { "px": [16,256], "src": [96,96], "f": 0, "t": 144, "d": [83,257], "a": 1 }, + { "px": [32,272], "src": [96,96], "f": 0, "t": 144, "d": [83,274], "a": 1 }, + { "px": [192,272], "src": [64,96], "f": 0, "t": 142, "d": [83,284], "a": 1 }, + { "px": [32,304], "src": [96,96], "f": 0, "t": 144, "d": [83,306], "a": 1 }, + { "px": [64,368], "src": [96,96], "f": 0, "t": 144, "d": [83,372], "a": 1 }, + { "px": [48,384], "src": [64,96], "f": 0, "t": 142, "d": [83,387], "a": 1 }, + { "px": [64,400], "src": [64,96], "f": 0, "t": 142, "d": [83,404], "a": 1 }, + { "px": [48,416], "src": [64,96], "f": 0, "t": 142, "d": [83,419], "a": 1 }, + { "px": [176,416], "src": [64,96], "f": 0, "t": 142, "d": [83,427], "a": 1 }, + { "px": [192,464], "src": [64,96], "f": 0, "t": 142, "d": [83,476], "a": 1 }, + { "px": [176,480], "src": [64,96], "f": 0, "t": 142, "d": [83,491], "a": 1 }, + { "px": [192,496], "src": [64,96], "f": 0, "t": 142, "d": [83,508], "a": 1 }, + { "px": [16,16], "src": [96,0], "f": 0, "t": 6, "d": [101,17], "a": 1 }, + { "px": [48,16], "src": [192,16], "f": 0, "t": 35, "d": [101,19], "a": 1 }, + { "px": [80,16], "src": [96,0], "f": 0, "t": 6, "d": [101,21], "a": 1 }, + { "px": [112,16], "src": [224,96], "f": 0, "t": 152, "d": [101,23], "a": 1 }, + { "px": [144,16], "src": [192,16], "f": 0, "t": 35, "d": [101,25], "a": 1 }, + { "px": [176,16], "src": [192,16], "f": 0, "t": 35, "d": [101,27], "a": 1 }, + { "px": [208,16], "src": [192,16], "f": 0, "t": 35, "d": [101,29], "a": 1 }, + { "px": [240,16], "src": [224,96], "f": 0, "t": 152, "d": [101,31], "a": 1 }, + { "px": [32,32], "src": [224,96], "f": 0, "t": 152, "d": [101,34], "a": 1 }, + { "px": [64,32], "src": [192,16], "f": 0, "t": 35, "d": [101,36], "a": 1 }, + { "px": [96,32], "src": [96,0], "f": 0, "t": 6, "d": [101,38], "a": 1 }, + { "px": [128,32], "src": [224,96], "f": 0, "t": 152, "d": [101,40], "a": 1 }, + { "px": [160,32], "src": [224,96], "f": 0, "t": 152, "d": [101,42], "a": 1 }, + { "px": [192,32], "src": [224,96], "f": 0, "t": 152, "d": [101,44], "a": 1 }, + { "px": [224,32], "src": [96,0], "f": 0, "t": 6, "d": [101,46], "a": 1 }, + { "px": [16,48], "src": [192,16], "f": 0, "t": 35, "d": [101,49], "a": 1 }, + { "px": [240,48], "src": [192,16], "f": 0, "t": 35, "d": [101,63], "a": 1 }, + { "px": [0,64], "src": [224,96], "f": 0, "t": 152, "d": [101,64], "a": 1 }, + { "px": [32,64], "src": [192,16], "f": 0, "t": 35, "d": [101,66], "a": 1 }, + { "px": [0,160], "src": [96,0], "f": 0, "t": 6, "d": [101,160], "a": 1 }, + { "px": [32,160], "src": [192,16], "f": 0, "t": 35, "d": [101,162], "a": 1 }, + { "px": [16,176], "src": [192,16], "f": 0, "t": 35, "d": [101,177], "a": 1 }, + { "px": [240,176], "src": [224,96], "f": 0, "t": 152, "d": [101,191], "a": 1 }, + { "px": [32,192], "src": [224,96], "f": 0, "t": 152, "d": [101,194], "a": 1 }, + { "px": [16,208], "src": [96,0], "f": 0, "t": 6, "d": [101,209], "a": 1 }, + { "px": [240,208], "src": [224,96], "f": 0, "t": 152, "d": [101,223], "a": 1 }, + { "px": [32,224], "src": [96,0], "f": 0, "t": 6, "d": [101,226], "a": 1 }, + { "px": [16,240], "src": [96,0], "f": 0, "t": 6, "d": [101,241], "a": 1 }, + { "px": [240,240], "src": [224,96], "f": 0, "t": 152, "d": [101,255], "a": 1 }, + { "px": [32,256], "src": [224,96], "f": 0, "t": 152, "d": [101,258], "a": 1 }, + { "px": [16,272], "src": [224,96], "f": 0, "t": 152, "d": [101,273], "a": 1 }, + { "px": [176,272], "src": [224,96], "f": 0, "t": 152, "d": [101,283], "a": 1 }, + { "px": [208,272], "src": [96,0], "f": 0, "t": 6, "d": [101,285], "a": 1 }, + { "px": [240,272], "src": [224,96], "f": 0, "t": 152, "d": [101,287], "a": 1 }, + { "px": [32,288], "src": [224,96], "f": 0, "t": 152, "d": [101,290], "a": 1 }, + { "px": [192,288], "src": [192,16], "f": 0, "t": 35, "d": [101,300], "a": 1 }, + { "px": [224,288], "src": [224,96], "f": 0, "t": 152, "d": [101,302], "a": 1 }, + { "px": [16,304], "src": [192,16], "f": 0, "t": 35, "d": [101,305], "a": 1 }, + { "px": [176,304], "src": [224,96], "f": 0, "t": 152, "d": [101,315], "a": 1 }, + { "px": [32,320], "src": [224,96], "f": 0, "t": 152, "d": [101,322], "a": 1 }, + { "px": [192,320], "src": [224,96], "f": 0, "t": 152, "d": [101,332], "a": 1 }, + { "px": [16,336], "src": [96,0], "f": 0, "t": 6, "d": [101,337], "a": 1 }, + { "px": [176,336], "src": [192,16], "f": 0, "t": 35, "d": [101,347], "a": 1 }, + { "px": [32,352], "src": [224,96], "f": 0, "t": 152, "d": [101,354], "a": 1 }, + { "px": [192,352], "src": [192,16], "f": 0, "t": 35, "d": [101,364], "a": 1 }, + { "px": [16,368], "src": [192,16], "f": 0, "t": 35, "d": [101,369], "a": 1 }, + { "px": [48,368], "src": [192,16], "f": 0, "t": 35, "d": [101,371], "a": 1 }, + { "px": [176,368], "src": [192,16], "f": 0, "t": 35, "d": [101,379], "a": 1 }, + { "px": [32,384], "src": [96,0], "f": 0, "t": 6, "d": [101,386], "a": 1 }, + { "px": [64,384], "src": [224,96], "f": 0, "t": 152, "d": [101,388], "a": 1 }, + { "px": [192,384], "src": [192,16], "f": 0, "t": 35, "d": [101,396], "a": 1 }, + { "px": [48,400], "src": [192,16], "f": 0, "t": 35, "d": [101,403], "a": 1 }, + { "px": [176,400], "src": [192,16], "f": 0, "t": 35, "d": [101,411], "a": 1 }, + { "px": [64,416], "src": [96,0], "f": 0, "t": 6, "d": [101,420], "a": 1 }, + { "px": [192,416], "src": [224,96], "f": 0, "t": 152, "d": [101,428], "a": 1 }, + { "px": [48,432], "src": [224,96], "f": 0, "t": 152, "d": [101,435], "a": 1 }, + { "px": [176,432], "src": [192,16], "f": 0, "t": 35, "d": [101,443], "a": 1 }, + { "px": [64,448], "src": [224,96], "f": 0, "t": 152, "d": [101,452], "a": 1 }, + { "px": [192,448], "src": [192,16], "f": 0, "t": 35, "d": [101,460], "a": 1 }, + { "px": [48,464], "src": [192,16], "f": 0, "t": 35, "d": [101,467], "a": 1 }, + { "px": [176,464], "src": [96,0], "f": 0, "t": 6, "d": [101,475], "a": 1 }, + { "px": [64,480], "src": [224,96], "f": 0, "t": 152, "d": [101,484], "a": 1 }, + { "px": [192,480], "src": [96,0], "f": 0, "t": 6, "d": [101,492], "a": 1 }, + { "px": [48,496], "src": [224,96], "f": 0, "t": 152, "d": [101,499], "a": 1 }, + { "px": [176,496], "src": [224,96], "f": 0, "t": 152, "d": [101,507], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [64,0], "src": [32,32], "f": 0, "t": 48, "d": [127,4], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [192,0], "src": [32,32], "f": 0, "t": 48, "d": [127,12], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,16], "a": 1 }, + { "px": [0,32], "src": [32,32], "f": 0, "t": 48, "d": [127,32], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [127,208], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [127,240], "a": 1 }, + { "px": [0,256], "src": [32,32], "f": 0, "t": 48, "d": [127,256], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [127,272], "a": 1 }, + { "px": [0,288], "src": [32,32], "f": 0, "t": 48, "d": [127,288], "a": 1 }, + { "px": [0,304], "src": [32,32], "f": 0, "t": 48, "d": [127,304], "a": 1 }, + { "px": [224,304], "src": [32,32], "f": 0, "t": 48, "d": [127,318], "a": 1 }, + { "px": [240,304], "src": [32,32], "f": 0, "t": 48, "d": [127,319], "a": 1 }, + { "px": [208,320], "src": [32,32], "f": 0, "t": 48, "d": [127,333], "a": 1 }, + { "px": [224,320], "src": [32,32], "f": 0, "t": 48, "d": [127,334], "a": 1 }, + { "px": [240,320], "src": [32,32], "f": 0, "t": 48, "d": [127,335], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [127,336], "a": 1 }, + { "px": [208,336], "src": [32,32], "f": 0, "t": 48, "d": [127,349], "a": 1 }, + { "px": [224,336], "src": [32,32], "f": 0, "t": 48, "d": [127,350], "a": 1 }, + { "px": [240,336], "src": [32,32], "f": 0, "t": 48, "d": [127,351], "a": 1 }, + { "px": [0,352], "src": [32,32], "f": 0, "t": 48, "d": [127,352], "a": 1 }, + { "px": [208,352], "src": [32,32], "f": 0, "t": 48, "d": [127,365], "a": 1 }, + { "px": [224,352], "src": [32,32], "f": 0, "t": 48, "d": [127,366], "a": 1 }, + { "px": [240,352], "src": [32,32], "f": 0, "t": 48, "d": [127,367], "a": 1 }, + { "px": [0,368], "src": [32,32], "f": 0, "t": 48, "d": [127,368], "a": 1 }, + { "px": [208,368], "src": [32,32], "f": 0, "t": 48, "d": [127,381], "a": 1 }, + { "px": [224,368], "src": [32,32], "f": 0, "t": 48, "d": [127,382], "a": 1 }, + { "px": [240,368], "src": [32,32], "f": 0, "t": 48, "d": [127,383], "a": 1 }, + { "px": [208,384], "src": [32,32], "f": 0, "t": 48, "d": [127,397], "a": 1 }, + { "px": [240,384], "src": [32,32], "f": 0, "t": 48, "d": [127,399], "a": 1 }, + { "px": [0,400], "src": [32,32], "f": 0, "t": 48, "d": [127,400], "a": 1 }, + { "px": [32,400], "src": [32,32], "f": 0, "t": 48, "d": [127,402], "a": 1 }, + { "px": [224,400], "src": [32,32], "f": 0, "t": 48, "d": [127,414], "a": 1 }, + { "px": [0,416], "src": [32,32], "f": 0, "t": 48, "d": [127,416], "a": 1 }, + { "px": [16,416], "src": [32,32], "f": 0, "t": 48, "d": [127,417], "a": 1 }, + { "px": [32,416], "src": [32,32], "f": 0, "t": 48, "d": [127,418], "a": 1 }, + { "px": [208,416], "src": [32,32], "f": 0, "t": 48, "d": [127,429], "a": 1 }, + { "px": [224,416], "src": [32,32], "f": 0, "t": 48, "d": [127,430], "a": 1 }, + { "px": [240,416], "src": [32,32], "f": 0, "t": 48, "d": [127,431], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [127,432], "a": 1 }, + { "px": [32,432], "src": [32,32], "f": 0, "t": 48, "d": [127,434], "a": 1 }, + { "px": [208,432], "src": [32,32], "f": 0, "t": 48, "d": [127,445], "a": 1 }, + { "px": [224,432], "src": [32,32], "f": 0, "t": 48, "d": [127,446], "a": 1 }, + { "px": [240,432], "src": [32,32], "f": 0, "t": 48, "d": [127,447], "a": 1 }, + { "px": [0,448], "src": [32,32], "f": 0, "t": 48, "d": [127,448], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [127,449], "a": 1 }, + { "px": [32,448], "src": [32,32], "f": 0, "t": 48, "d": [127,450], "a": 1 }, + { "px": [208,448], "src": [32,32], "f": 0, "t": 48, "d": [127,461], "a": 1 }, + { "px": [224,448], "src": [32,32], "f": 0, "t": 48, "d": [127,462], "a": 1 }, + { "px": [240,448], "src": [32,32], "f": 0, "t": 48, "d": [127,463], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [127,464], "a": 1 }, + { "px": [32,464], "src": [32,32], "f": 0, "t": 48, "d": [127,466], "a": 1 }, + { "px": [208,464], "src": [32,32], "f": 0, "t": 48, "d": [127,477], "a": 1 }, + { "px": [224,464], "src": [32,32], "f": 0, "t": 48, "d": [127,478], "a": 1 }, + { "px": [16,480], "src": [32,32], "f": 0, "t": 48, "d": [127,481], "a": 1 }, + { "px": [32,480], "src": [32,32], "f": 0, "t": 48, "d": [127,482], "a": 1 }, + { "px": [208,480], "src": [32,32], "f": 0, "t": 48, "d": [127,493], "a": 1 }, + { "px": [224,480], "src": [32,32], "f": 0, "t": 48, "d": [127,494], "a": 1 }, + { "px": [240,480], "src": [32,32], "f": 0, "t": 48, "d": [127,495], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,496], "a": 1 }, + { "px": [16,496], "src": [32,32], "f": 0, "t": 48, "d": [127,497], "a": 1 }, + { "px": [32,496], "src": [32,32], "f": 0, "t": 48, "d": [127,498], "a": 1 }, + { "px": [208,496], "src": [32,32], "f": 0, "t": 48, "d": [127,509], "a": 1 }, + { "px": [224,496], "src": [32,32], "f": 0, "t": 48, "d": [127,510], "a": 1 }, + { "px": [0,0], "src": [64,96], "f": 0, "t": 142, "d": [126,0], "a": 1 }, + { "px": [32,0], "src": [96,96], "f": 0, "t": 144, "d": [126,2], "a": 1 }, + { "px": [96,0], "src": [64,96], "f": 0, "t": 142, "d": [126,6], "a": 1 }, + { "px": [128,0], "src": [64,96], "f": 0, "t": 142, "d": [126,8], "a": 1 }, + { "px": [160,0], "src": [64,96], "f": 0, "t": 142, "d": [126,10], "a": 1 }, + { "px": [0,192], "src": [64,96], "f": 0, "t": 142, "d": [126,192], "a": 1 }, + { "px": [0,224], "src": [96,96], "f": 0, "t": 144, "d": [126,224], "a": 1 }, + { "px": [208,304], "src": [64,96], "f": 0, "t": 142, "d": [126,317], "a": 1 }, + { "px": [0,320], "src": [96,96], "f": 0, "t": 144, "d": [126,320], "a": 1 }, + { "px": [0,384], "src": [64,96], "f": 0, "t": 142, "d": [126,384], "a": 1 }, + { "px": [224,384], "src": [96,96], "f": 0, "t": 144, "d": [126,398], "a": 1 }, + { "px": [16,400], "src": [96,96], "f": 0, "t": 144, "d": [126,401], "a": 1 }, + { "px": [208,400], "src": [96,96], "f": 0, "t": 144, "d": [126,413], "a": 1 }, + { "px": [240,400], "src": [64,96], "f": 0, "t": 142, "d": [126,415], "a": 1 }, + { "px": [16,432], "src": [64,96], "f": 0, "t": 142, "d": [126,433], "a": 1 }, + { "px": [16,464], "src": [96,96], "f": 0, "t": 144, "d": [126,465], "a": 1 }, + { "px": [240,464], "src": [64,96], "f": 0, "t": 142, "d": [126,479], "a": 1 }, + { "px": [0,480], "src": [96,96], "f": 0, "t": 144, "d": [126,480], "a": 1 }, + { "px": [240,496], "src": [96,96], "f": 0, "t": 144, "d": [126,511], "a": 1 }, + { "px": [112,48], "src": [256,160], "f": 0, "t": 246, "d": [12,55], "a": 1 }, + { "px": [128,48], "src": [256,160], "f": 0, "t": 246, "d": [12,56], "a": 1 }, + { "px": [144,48], "src": [256,160], "f": 0, "t": 246, "d": [12,57], "a": 1 }, + { "px": [160,48], "src": [256,160], "f": 0, "t": 246, "d": [12,58], "a": 1 }, + { "px": [176,48], "src": [256,160], "f": 0, "t": 246, "d": [12,59], "a": 1 }, + { "px": [192,48], "src": [256,160], "f": 0, "t": 246, "d": [12,60], "a": 1 }, + { "px": [0,80], "src": [256,160], "f": 0, "t": 246, "d": [12,80], "a": 1 }, + { "px": [16,80], "src": [256,160], "f": 0, "t": 246, "d": [12,81], "a": 1 }, + { "px": [32,80], "src": [256,160], "f": 0, "t": 246, "d": [12,82], "a": 1 }, + { "px": [240,80], "src": [256,160], "f": 0, "t": 246, "d": [12,95], "a": 1 }, + { "px": [0,144], "src": [256,96], "f": 0, "t": 154, "d": [9,144], "a": 1 }, + { "px": [16,144], "src": [256,96], "f": 0, "t": 154, "d": [9,145], "a": 1 }, + { "px": [240,144], "src": [256,96], "f": 0, "t": 154, "d": [9,159], "a": 1 }, + { "px": [144,256], "src": [256,96], "f": 0, "t": 154, "d": [9,265], "a": 1 }, + { "px": [48,64], "src": [224,128], "f": 1, "t": 198, "d": [10,67], "a": 1 }, + { "px": [224,64], "src": [224,128], "f": 0, "t": 198, "d": [10,78], "a": 1 }, + { "px": [48,160], "src": [224,128], "f": 1, "t": 198, "d": [10,163], "a": 1 }, + { "px": [224,160], "src": [224,128], "f": 0, "t": 198, "d": [10,174], "a": 1 }, + { "px": [48,176], "src": [224,128], "f": 1, "t": 198, "d": [10,179], "a": 1 }, + { "px": [224,176], "src": [224,128], "f": 0, "t": 198, "d": [10,190], "a": 1 }, + { "px": [48,192], "src": [224,128], "f": 1, "t": 198, "d": [10,195], "a": 1 }, + { "px": [224,192], "src": [224,128], "f": 0, "t": 198, "d": [10,206], "a": 1 }, + { "px": [48,208], "src": [224,128], "f": 1, "t": 198, "d": [10,211], "a": 1 }, + { "px": [224,208], "src": [224,128], "f": 0, "t": 198, "d": [10,222], "a": 1 }, + { "px": [48,224], "src": [224,128], "f": 1, "t": 198, "d": [10,227], "a": 1 }, + { "px": [224,224], "src": [224,128], "f": 0, "t": 198, "d": [10,238], "a": 1 }, + { "px": [48,240], "src": [224,128], "f": 1, "t": 198, "d": [10,243], "a": 1 }, + { "px": [224,240], "src": [224,128], "f": 0, "t": 198, "d": [10,254], "a": 1 }, + { "px": [48,256], "src": [224,128], "f": 1, "t": 198, "d": [10,259], "a": 1 }, + { "px": [48,272], "src": [224,128], "f": 1, "t": 198, "d": [10,275], "a": 1 }, + { "px": [160,272], "src": [224,128], "f": 0, "t": 198, "d": [10,282], "a": 1 }, + { "px": [48,288], "src": [224,128], "f": 1, "t": 198, "d": [10,291], "a": 1 }, + { "px": [160,288], "src": [224,128], "f": 0, "t": 198, "d": [10,298], "a": 1 }, + { "px": [48,304], "src": [224,128], "f": 1, "t": 198, "d": [10,307], "a": 1 }, + { "px": [160,304], "src": [224,128], "f": 0, "t": 198, "d": [10,314], "a": 1 }, + { "px": [48,320], "src": [224,128], "f": 1, "t": 198, "d": [10,323], "a": 1 }, + { "px": [160,320], "src": [224,128], "f": 0, "t": 198, "d": [10,330], "a": 1 }, + { "px": [48,336], "src": [224,128], "f": 1, "t": 198, "d": [10,339], "a": 1 }, + { "px": [160,336], "src": [224,128], "f": 0, "t": 198, "d": [10,346], "a": 1 }, + { "px": [160,352], "src": [224,128], "f": 0, "t": 198, "d": [10,362], "a": 1 }, + { "px": [80,368], "src": [224,128], "f": 1, "t": 198, "d": [10,373], "a": 1 }, + { "px": [160,368], "src": [224,128], "f": 0, "t": 198, "d": [10,378], "a": 1 }, + { "px": [80,384], "src": [224,128], "f": 1, "t": 198, "d": [10,389], "a": 1 }, + { "px": [160,384], "src": [224,128], "f": 0, "t": 198, "d": [10,394], "a": 1 }, + { "px": [80,400], "src": [224,128], "f": 1, "t": 198, "d": [10,405], "a": 1 }, + { "px": [160,400], "src": [224,128], "f": 0, "t": 198, "d": [10,410], "a": 1 }, + { "px": [80,416], "src": [224,128], "f": 1, "t": 198, "d": [10,421], "a": 1 }, + { "px": [160,416], "src": [224,128], "f": 0, "t": 198, "d": [10,426], "a": 1 }, + { "px": [80,432], "src": [224,128], "f": 1, "t": 198, "d": [10,437], "a": 1 }, + { "px": [160,432], "src": [224,128], "f": 0, "t": 198, "d": [10,442], "a": 1 }, + { "px": [80,448], "src": [224,128], "f": 1, "t": 198, "d": [10,453], "a": 1 }, + { "px": [160,448], "src": [224,128], "f": 0, "t": 198, "d": [10,458], "a": 1 }, + { "px": [80,464], "src": [224,128], "f": 1, "t": 198, "d": [10,469], "a": 1 }, + { "px": [160,464], "src": [224,128], "f": 0, "t": 198, "d": [10,474], "a": 1 }, + { "px": [80,480], "src": [224,128], "f": 1, "t": 198, "d": [10,485], "a": 1 }, + { "px": [160,480], "src": [224,128], "f": 0, "t": 198, "d": [10,490], "a": 1 }, + { "px": [80,496], "src": [224,128], "f": 1, "t": 198, "d": [10,501], "a": 1 }, + { "px": [160,496], "src": [224,128], "f": 0, "t": 198, "d": [10,506], "a": 1 }, + { "px": [224,144], "src": [224,96], "f": 0, "t": 152, "d": [11,158], "a": 1 }, + { "px": [128,256], "src": [224,96], "f": 0, "t": 152, "d": [11,264], "a": 1 }, + { "px": [80,352], "src": [224,96], "f": 1, "t": 152, "d": [11,357], "a": 1 }, + { "px": [48,48], "src": [224,96], "f": 0, "t": 152, "d": [14,51], "a": 1 }, + { "px": [224,48], "src": [224,96], "f": 1, "t": 152, "d": [14,62], "a": 1 }, + { "px": [224,256], "src": [224,96], "f": 3, "t": 152, "d": [14,270], "a": 1 }, + { "px": [48,352], "src": [224,96], "f": 2, "t": 152, "d": [14,355], "a": 1 }, + { "px": [64,48], "src": [160,192], "f": 0, "t": 286, "d": [78,52], "a": 1 }, + { "px": [80,48], "src": [192,192], "f": 0, "t": 288, "d": [78,53], "a": 1 }, + { "px": [96,48], "src": [160,192], "f": 0, "t": 286, "d": [78,54], "a": 1 }, + { "px": [208,48], "src": [160,192], "f": 0, "t": 286, "d": [78,61], "a": 1 }, + { "px": [48,80], "src": [192,192], "f": 0, "t": 288, "d": [78,83], "a": 1 }, + { "px": [224,80], "src": [192,192], "f": 0, "t": 288, "d": [78,94], "a": 1 }, + { "px": [32,144], "src": [32,0], "f": 0, "t": 2, "d": [80,146], "a": 1 }, + { "px": [48,144], "src": [32,0], "f": 0, "t": 2, "d": [80,147], "a": 1 }, + { "px": [160,256], "src": [32,0], "f": 0, "t": 2, "d": [80,266], "a": 1 }, + { "px": [176,256], "src": [32,0], "f": 0, "t": 2, "d": [80,267], "a": 1 }, + { "px": [192,256], "src": [32,0], "f": 0, "t": 2, "d": [80,268], "a": 1 }, + { "px": [208,256], "src": [32,0], "f": 0, "t": 2, "d": [80,269], "a": 1 }, + { "px": [64,352], "src": [32,0], "f": 0, "t": 2, "d": [80,356], "a": 1 }, + { "px": [0,128], "src": [32,96], "f": 0, "t": 140, "d": [110,128], "a": 1 }, + { "px": [192,240], "src": [32,96], "f": 0, "t": 140, "d": [110,252], "a": 1 }, + { "px": [64,336], "src": [32,96], "f": 0, "t": 140, "d": [110,340], "a": 1 } + ], + "seed": 9827811, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a37160a0-66b0-11ec-9cd7-9dd2e5e3927e", + "levelId": 50, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [96,64], "src": [320,272], "f": 0, "t": 411, "d": [108,70], "a": 1 }, + { "px": [112,64], "src": [320,272], "f": 0, "t": 411, "d": [108,71], "a": 1 }, + { "px": [128,64], "src": [320,272], "f": 0, "t": 411, "d": [108,72], "a": 1 }, + { "px": [144,64], "src": [320,272], "f": 0, "t": 411, "d": [108,73], "a": 1 }, + { "px": [176,64], "src": [320,272], "f": 0, "t": 411, "d": [108,75], "a": 1 }, + { "px": [80,80], "src": [320,272], "f": 0, "t": 411, "d": [108,85], "a": 1 }, + { "px": [96,80], "src": [320,272], "f": 0, "t": 411, "d": [108,86], "a": 1 }, + { "px": [112,80], "src": [320,272], "f": 0, "t": 411, "d": [108,87], "a": 1 }, + { "px": [128,80], "src": [320,272], "f": 0, "t": 411, "d": [108,88], "a": 1 }, + { "px": [144,80], "src": [320,272], "f": 0, "t": 411, "d": [108,89], "a": 1 }, + { "px": [160,80], "src": [320,272], "f": 0, "t": 411, "d": [108,90], "a": 1 }, + { "px": [176,80], "src": [320,272], "f": 0, "t": 411, "d": [108,91], "a": 1 }, + { "px": [192,80], "src": [320,272], "f": 0, "t": 411, "d": [108,92], "a": 1 }, + { "px": [16,96], "src": [320,272], "f": 0, "t": 411, "d": [108,97], "a": 1 }, + { "px": [32,96], "src": [320,272], "f": 0, "t": 411, "d": [108,98], "a": 1 }, + { "px": [48,96], "src": [320,272], "f": 0, "t": 411, "d": [108,99], "a": 1 }, + { "px": [64,96], "src": [320,272], "f": 0, "t": 411, "d": [108,100], "a": 1 }, + { "px": [96,96], "src": [320,272], "f": 0, "t": 411, "d": [108,102], "a": 1 }, + { "px": [112,96], "src": [320,272], "f": 0, "t": 411, "d": [108,103], "a": 1 }, + { "px": [128,96], "src": [320,272], "f": 0, "t": 411, "d": [108,104], "a": 1 }, + { "px": [144,96], "src": [320,272], "f": 0, "t": 411, "d": [108,105], "a": 1 }, + { "px": [160,96], "src": [320,272], "f": 0, "t": 411, "d": [108,106], "a": 1 }, + { "px": [192,96], "src": [320,272], "f": 0, "t": 411, "d": [108,108], "a": 1 }, + { "px": [208,96], "src": [320,272], "f": 0, "t": 411, "d": [108,109], "a": 1 }, + { "px": [224,96], "src": [320,272], "f": 0, "t": 411, "d": [108,110], "a": 1 }, + { "px": [240,96], "src": [320,272], "f": 0, "t": 411, "d": [108,111], "a": 1 }, + { "px": [0,112], "src": [320,272], "f": 0, "t": 411, "d": [108,112], "a": 1 }, + { "px": [16,112], "src": [320,272], "f": 0, "t": 411, "d": [108,113], "a": 1 }, + { "px": [32,112], "src": [320,272], "f": 0, "t": 411, "d": [108,114], "a": 1 }, + { "px": [48,112], "src": [320,272], "f": 0, "t": 411, "d": [108,115], "a": 1 }, + { "px": [64,112], "src": [320,272], "f": 0, "t": 411, "d": [108,116], "a": 1 }, + { "px": [80,112], "src": [320,272], "f": 0, "t": 411, "d": [108,117], "a": 1 }, + { "px": [96,112], "src": [320,272], "f": 0, "t": 411, "d": [108,118], "a": 1 }, + { "px": [112,112], "src": [320,272], "f": 0, "t": 411, "d": [108,119], "a": 1 }, + { "px": [128,112], "src": [320,272], "f": 0, "t": 411, "d": [108,120], "a": 1 }, + { "px": [144,112], "src": [320,272], "f": 0, "t": 411, "d": [108,121], "a": 1 }, + { "px": [160,112], "src": [320,272], "f": 0, "t": 411, "d": [108,122], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [108,123], "a": 1 }, + { "px": [192,112], "src": [320,272], "f": 0, "t": 411, "d": [108,124], "a": 1 }, + { "px": [208,112], "src": [320,272], "f": 0, "t": 411, "d": [108,125], "a": 1 }, + { "px": [224,112], "src": [320,272], "f": 0, "t": 411, "d": [108,126], "a": 1 }, + { "px": [240,112], "src": [320,272], "f": 0, "t": 411, "d": [108,127], "a": 1 }, + { "px": [0,128], "src": [320,272], "f": 0, "t": 411, "d": [108,128], "a": 1 }, + { "px": [16,128], "src": [320,272], "f": 0, "t": 411, "d": [108,129], "a": 1 }, + { "px": [32,128], "src": [320,272], "f": 0, "t": 411, "d": [108,130], "a": 1 }, + { "px": [48,128], "src": [320,272], "f": 0, "t": 411, "d": [108,131], "a": 1 }, + { "px": [64,128], "src": [320,272], "f": 0, "t": 411, "d": [108,132], "a": 1 }, + { "px": [80,128], "src": [320,272], "f": 0, "t": 411, "d": [108,133], "a": 1 }, + { "px": [112,128], "src": [320,272], "f": 0, "t": 411, "d": [108,135], "a": 1 }, + { "px": [128,128], "src": [320,272], "f": 0, "t": 411, "d": [108,136], "a": 1 }, + { "px": [144,128], "src": [320,272], "f": 0, "t": 411, "d": [108,137], "a": 1 }, + { "px": [160,128], "src": [320,272], "f": 0, "t": 411, "d": [108,138], "a": 1 }, + { "px": [176,128], "src": [320,272], "f": 0, "t": 411, "d": [108,139], "a": 1 }, + { "px": [208,128], "src": [320,272], "f": 0, "t": 411, "d": [108,141], "a": 1 }, + { "px": [224,128], "src": [320,272], "f": 0, "t": 411, "d": [108,142], "a": 1 }, + { "px": [240,128], "src": [320,272], "f": 0, "t": 411, "d": [108,143], "a": 1 }, + { "px": [80,144], "src": [320,272], "f": 0, "t": 411, "d": [108,149], "a": 1 }, + { "px": [96,144], "src": [320,272], "f": 0, "t": 411, "d": [108,150], "a": 1 }, + { "px": [112,144], "src": [320,272], "f": 0, "t": 411, "d": [108,151], "a": 1 }, + { "px": [128,144], "src": [320,272], "f": 0, "t": 411, "d": [108,152], "a": 1 }, + { "px": [144,144], "src": [320,272], "f": 0, "t": 411, "d": [108,153], "a": 1 }, + { "px": [160,144], "src": [320,272], "f": 0, "t": 411, "d": [108,154], "a": 1 }, + { "px": [176,144], "src": [320,272], "f": 0, "t": 411, "d": [108,155], "a": 1 }, + { "px": [192,144], "src": [320,272], "f": 0, "t": 411, "d": [108,156], "a": 1 }, + { "px": [96,160], "src": [320,272], "f": 0, "t": 411, "d": [108,166], "a": 1 }, + { "px": [112,160], "src": [320,272], "f": 0, "t": 411, "d": [108,167], "a": 1 }, + { "px": [128,160], "src": [320,272], "f": 0, "t": 411, "d": [108,168], "a": 1 }, + { "px": [144,160], "src": [320,272], "f": 0, "t": 411, "d": [108,169], "a": 1 }, + { "px": [160,160], "src": [320,272], "f": 0, "t": 411, "d": [108,170], "a": 1 }, + { "px": [176,160], "src": [320,272], "f": 0, "t": 411, "d": [108,171], "a": 1 }, + { "px": [192,160], "src": [320,272], "f": 0, "t": 411, "d": [108,172], "a": 1 }, + { "px": [80,176], "src": [320,272], "f": 0, "t": 411, "d": [108,181], "a": 1 }, + { "px": [96,176], "src": [320,272], "f": 0, "t": 411, "d": [108,182], "a": 1 }, + { "px": [112,176], "src": [320,272], "f": 0, "t": 411, "d": [108,183], "a": 1 }, + { "px": [128,176], "src": [320,272], "f": 0, "t": 411, "d": [108,184], "a": 1 }, + { "px": [144,176], "src": [320,272], "f": 0, "t": 411, "d": [108,185], "a": 1 }, + { "px": [160,176], "src": [320,272], "f": 0, "t": 411, "d": [108,186], "a": 1 }, + { "px": [176,176], "src": [320,272], "f": 0, "t": 411, "d": [108,187], "a": 1 }, + { "px": [192,176], "src": [320,272], "f": 0, "t": 411, "d": [108,188], "a": 1 }, + { "px": [80,192], "src": [320,272], "f": 0, "t": 411, "d": [108,197], "a": 1 }, + { "px": [96,192], "src": [320,272], "f": 0, "t": 411, "d": [108,198], "a": 1 }, + { "px": [112,192], "src": [320,272], "f": 0, "t": 411, "d": [108,199], "a": 1 }, + { "px": [128,192], "src": [320,272], "f": 0, "t": 411, "d": [108,200], "a": 1 }, + { "px": [160,192], "src": [320,272], "f": 0, "t": 411, "d": [108,202], "a": 1 }, + { "px": [176,192], "src": [320,272], "f": 0, "t": 411, "d": [108,203], "a": 1 }, + { "px": [192,192], "src": [320,272], "f": 0, "t": 411, "d": [108,204], "a": 1 }, + { "px": [80,208], "src": [320,272], "f": 0, "t": 411, "d": [108,213], "a": 1 }, + { "px": [96,208], "src": [320,272], "f": 0, "t": 411, "d": [108,214], "a": 1 }, + { "px": [112,208], "src": [320,272], "f": 0, "t": 411, "d": [108,215], "a": 1 }, + { "px": [128,208], "src": [320,272], "f": 0, "t": 411, "d": [108,216], "a": 1 }, + { "px": [144,208], "src": [320,272], "f": 0, "t": 411, "d": [108,217], "a": 1 }, + { "px": [160,208], "src": [320,272], "f": 0, "t": 411, "d": [108,218], "a": 1 }, + { "px": [176,208], "src": [320,272], "f": 0, "t": 411, "d": [108,219], "a": 1 }, + { "px": [192,208], "src": [320,272], "f": 0, "t": 411, "d": [108,220], "a": 1 }, + { "px": [96,224], "src": [320,272], "f": 0, "t": 411, "d": [108,230], "a": 1 }, + { "px": [112,224], "src": [320,272], "f": 0, "t": 411, "d": [108,231], "a": 1 }, + { "px": [144,224], "src": [320,272], "f": 0, "t": 411, "d": [108,233], "a": 1 }, + { "px": [160,224], "src": [320,272], "f": 0, "t": 411, "d": [108,234], "a": 1 }, + { "px": [176,224], "src": [320,272], "f": 0, "t": 411, "d": [108,235], "a": 1 }, + { "px": [192,224], "src": [320,272], "f": 0, "t": 411, "d": [108,236], "a": 1 }, + { "px": [80,240], "src": [320,272], "f": 0, "t": 411, "d": [108,245], "a": 1 }, + { "px": [96,240], "src": [320,272], "f": 0, "t": 411, "d": [108,246], "a": 1 }, + { "px": [112,240], "src": [320,272], "f": 0, "t": 411, "d": [108,247], "a": 1 }, + { "px": [128,240], "src": [320,272], "f": 0, "t": 411, "d": [108,248], "a": 1 }, + { "px": [144,240], "src": [320,272], "f": 0, "t": 411, "d": [108,249], "a": 1 }, + { "px": [160,240], "src": [320,272], "f": 0, "t": 411, "d": [108,250], "a": 1 }, + { "px": [176,240], "src": [320,272], "f": 0, "t": 411, "d": [108,251], "a": 1 }, + { "px": [192,240], "src": [320,272], "f": 0, "t": 411, "d": [108,252], "a": 1 }, + { "px": [80,256], "src": [320,272], "f": 0, "t": 411, "d": [108,261], "a": 1 }, + { "px": [96,256], "src": [320,272], "f": 0, "t": 411, "d": [108,262], "a": 1 }, + { "px": [80,272], "src": [320,272], "f": 0, "t": 411, "d": [108,277], "a": 1 }, + { "px": [96,272], "src": [320,272], "f": 0, "t": 411, "d": [108,278], "a": 1 }, + { "px": [112,272], "src": [320,272], "f": 0, "t": 411, "d": [108,279], "a": 1 }, + { "px": [128,272], "src": [320,272], "f": 0, "t": 411, "d": [108,280], "a": 1 }, + { "px": [80,288], "src": [320,272], "f": 0, "t": 411, "d": [108,293], "a": 1 }, + { "px": [96,288], "src": [320,272], "f": 0, "t": 411, "d": [108,294], "a": 1 }, + { "px": [112,288], "src": [320,272], "f": 0, "t": 411, "d": [108,295], "a": 1 }, + { "px": [128,288], "src": [320,272], "f": 0, "t": 411, "d": [108,296], "a": 1 }, + { "px": [80,304], "src": [320,272], "f": 0, "t": 411, "d": [108,309], "a": 1 }, + { "px": [96,304], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [112,304], "src": [320,272], "f": 0, "t": 411, "d": [108,311], "a": 1 }, + { "px": [128,304], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [80,320], "src": [320,272], "f": 0, "t": 411, "d": [108,325], "a": 1 }, + { "px": [96,320], "src": [320,272], "f": 0, "t": 411, "d": [108,326], "a": 1 }, + { "px": [112,320], "src": [320,272], "f": 0, "t": 411, "d": [108,327], "a": 1 }, + { "px": [128,320], "src": [320,272], "f": 0, "t": 411, "d": [108,328], "a": 1 }, + { "px": [80,336], "src": [320,272], "f": 0, "t": 411, "d": [108,341], "a": 1 }, + { "px": [96,336], "src": [320,272], "f": 0, "t": 411, "d": [108,342], "a": 1 }, + { "px": [112,336], "src": [320,272], "f": 0, "t": 411, "d": [108,343], "a": 1 }, + { "px": [128,336], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [112,352], "src": [320,272], "f": 0, "t": 411, "d": [108,359], "a": 1 }, + { "px": [128,352], "src": [320,272], "f": 0, "t": 411, "d": [108,360], "a": 1 }, + { "px": [112,368], "src": [320,272], "f": 0, "t": 411, "d": [108,375], "a": 1 }, + { "px": [128,368], "src": [320,272], "f": 0, "t": 411, "d": [108,376], "a": 1 }, + { "px": [112,384], "src": [320,272], "f": 0, "t": 411, "d": [108,391], "a": 1 }, + { "px": [128,384], "src": [320,272], "f": 0, "t": 411, "d": [108,392], "a": 1 }, + { "px": [112,400], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [128,400], "src": [320,272], "f": 0, "t": 411, "d": [108,408], "a": 1 }, + { "px": [112,416], "src": [320,272], "f": 0, "t": 411, "d": [108,423], "a": 1 }, + { "px": [128,416], "src": [320,272], "f": 0, "t": 411, "d": [108,424], "a": 1 }, + { "px": [112,432], "src": [320,272], "f": 0, "t": 411, "d": [108,439], "a": 1 }, + { "px": [128,432], "src": [320,272], "f": 0, "t": 411, "d": [108,440], "a": 1 }, + { "px": [112,448], "src": [320,272], "f": 0, "t": 411, "d": [108,455], "a": 1 }, + { "px": [128,448], "src": [320,272], "f": 0, "t": 411, "d": [108,456], "a": 1 }, + { "px": [112,464], "src": [320,272], "f": 0, "t": 411, "d": [108,471], "a": 1 }, + { "px": [128,464], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [112,480], "src": [320,272], "f": 0, "t": 411, "d": [108,487], "a": 1 }, + { "px": [128,480], "src": [320,272], "f": 0, "t": 411, "d": [108,488], "a": 1 }, + { "px": [112,496], "src": [320,272], "f": 0, "t": 411, "d": [108,503], "a": 1 }, + { "px": [128,496], "src": [320,272], "f": 0, "t": 411, "d": [108,504], "a": 1 }, + { "px": [80,80], "src": [256,240], "f": 1, "t": 361, "d": [107,84], "a": 1 }, + { "px": [64,80], "src": [272,240], "f": 1, "t": 362, "d": [107,84], "a": 1 }, + { "px": [192,80], "src": [256,240], "f": 0, "t": 361, "d": [107,93], "a": 1 }, + { "px": [208,80], "src": [272,240], "f": 0, "t": 362, "d": [107,93], "a": 1 }, + { "px": [80,144], "src": [256,240], "f": 1, "t": 361, "d": [107,148], "a": 1 }, + { "px": [64,144], "src": [272,240], "f": 1, "t": 362, "d": [107,148], "a": 1 }, + { "px": [192,144], "src": [256,240], "f": 0, "t": 361, "d": [107,157], "a": 1 }, + { "px": [208,144], "src": [272,240], "f": 0, "t": 362, "d": [107,157], "a": 1 }, + { "px": [80,160], "src": [256,240], "f": 1, "t": 361, "d": [107,164], "a": 1 }, + { "px": [64,160], "src": [272,240], "f": 1, "t": 362, "d": [107,164], "a": 1 }, + { "px": [192,160], "src": [256,240], "f": 0, "t": 361, "d": [107,173], "a": 1 }, + { "px": [208,160], "src": [272,240], "f": 0, "t": 362, "d": [107,173], "a": 1 }, + { "px": [80,176], "src": [256,240], "f": 1, "t": 361, "d": [107,180], "a": 1 }, + { "px": [64,176], "src": [272,240], "f": 1, "t": 362, "d": [107,180], "a": 1 }, + { "px": [192,176], "src": [256,240], "f": 0, "t": 361, "d": [107,189], "a": 1 }, + { "px": [208,176], "src": [272,240], "f": 0, "t": 362, "d": [107,189], "a": 1 }, + { "px": [80,192], "src": [256,240], "f": 1, "t": 361, "d": [107,196], "a": 1 }, + { "px": [64,192], "src": [272,240], "f": 1, "t": 362, "d": [107,196], "a": 1 }, + { "px": [192,192], "src": [256,240], "f": 0, "t": 361, "d": [107,205], "a": 1 }, + { "px": [208,192], "src": [272,240], "f": 0, "t": 362, "d": [107,205], "a": 1 }, + { "px": [80,208], "src": [256,240], "f": 1, "t": 361, "d": [107,212], "a": 1 }, + { "px": [64,208], "src": [272,240], "f": 1, "t": 362, "d": [107,212], "a": 1 }, + { "px": [192,208], "src": [256,240], "f": 0, "t": 361, "d": [107,221], "a": 1 }, + { "px": [208,208], "src": [272,240], "f": 0, "t": 362, "d": [107,221], "a": 1 }, + { "px": [80,224], "src": [256,240], "f": 1, "t": 361, "d": [107,228], "a": 1 }, + { "px": [64,224], "src": [272,240], "f": 1, "t": 362, "d": [107,228], "a": 1 }, + { "px": [192,224], "src": [256,240], "f": 0, "t": 361, "d": [107,237], "a": 1 }, + { "px": [208,224], "src": [272,240], "f": 0, "t": 362, "d": [107,237], "a": 1 }, + { "px": [80,240], "src": [256,240], "f": 1, "t": 361, "d": [107,244], "a": 1 }, + { "px": [64,240], "src": [272,240], "f": 1, "t": 362, "d": [107,244], "a": 1 }, + { "px": [192,240], "src": [256,240], "f": 0, "t": 361, "d": [107,253], "a": 1 }, + { "px": [208,240], "src": [272,240], "f": 0, "t": 362, "d": [107,253], "a": 1 }, + { "px": [80,256], "src": [256,240], "f": 1, "t": 361, "d": [107,260], "a": 1 }, + { "px": [64,256], "src": [272,240], "f": 1, "t": 362, "d": [107,260], "a": 1 }, + { "px": [96,256], "src": [256,240], "f": 0, "t": 361, "d": [107,263], "a": 1 }, + { "px": [112,256], "src": [272,240], "f": 0, "t": 362, "d": [107,263], "a": 1 }, + { "px": [80,272], "src": [256,240], "f": 1, "t": 361, "d": [107,276], "a": 1 }, + { "px": [64,272], "src": [272,240], "f": 1, "t": 362, "d": [107,276], "a": 1 }, + { "px": [128,272], "src": [256,240], "f": 0, "t": 361, "d": [107,281], "a": 1 }, + { "px": [144,272], "src": [272,240], "f": 0, "t": 362, "d": [107,281], "a": 1 }, + { "px": [80,288], "src": [256,240], "f": 1, "t": 361, "d": [107,292], "a": 1 }, + { "px": [64,288], "src": [272,240], "f": 1, "t": 362, "d": [107,292], "a": 1 }, + { "px": [128,288], "src": [256,240], "f": 0, "t": 361, "d": [107,297], "a": 1 }, + { "px": [144,288], "src": [272,240], "f": 0, "t": 362, "d": [107,297], "a": 1 }, + { "px": [80,304], "src": [256,240], "f": 1, "t": 361, "d": [107,308], "a": 1 }, + { "px": [64,304], "src": [272,240], "f": 1, "t": 362, "d": [107,308], "a": 1 }, + { "px": [128,304], "src": [256,240], "f": 0, "t": 361, "d": [107,313], "a": 1 }, + { "px": [144,304], "src": [272,240], "f": 0, "t": 362, "d": [107,313], "a": 1 }, + { "px": [80,320], "src": [256,240], "f": 1, "t": 361, "d": [107,324], "a": 1 }, + { "px": [64,320], "src": [272,240], "f": 1, "t": 362, "d": [107,324], "a": 1 }, + { "px": [128,320], "src": [256,240], "f": 0, "t": 361, "d": [107,329], "a": 1 }, + { "px": [144,320], "src": [272,240], "f": 0, "t": 362, "d": [107,329], "a": 1 }, + { "px": [80,336], "src": [256,240], "f": 1, "t": 361, "d": [107,340], "a": 1 }, + { "px": [64,336], "src": [272,240], "f": 1, "t": 362, "d": [107,340], "a": 1 }, + { "px": [128,336], "src": [256,240], "f": 0, "t": 361, "d": [107,345], "a": 1 }, + { "px": [144,336], "src": [272,240], "f": 0, "t": 362, "d": [107,345], "a": 1 }, + { "px": [112,352], "src": [256,240], "f": 1, "t": 361, "d": [107,358], "a": 1 }, + { "px": [96,352], "src": [272,240], "f": 1, "t": 362, "d": [107,358], "a": 1 }, + { "px": [128,352], "src": [256,240], "f": 0, "t": 361, "d": [107,361], "a": 1 }, + { "px": [144,352], "src": [272,240], "f": 0, "t": 362, "d": [107,361], "a": 1 }, + { "px": [112,368], "src": [256,240], "f": 1, "t": 361, "d": [107,374], "a": 1 }, + { "px": [96,368], "src": [272,240], "f": 1, "t": 362, "d": [107,374], "a": 1 }, + { "px": [128,368], "src": [256,240], "f": 0, "t": 361, "d": [107,377], "a": 1 }, + { "px": [144,368], "src": [272,240], "f": 0, "t": 362, "d": [107,377], "a": 1 }, + { "px": [112,384], "src": [256,240], "f": 1, "t": 361, "d": [107,390], "a": 1 }, + { "px": [96,384], "src": [272,240], "f": 1, "t": 362, "d": [107,390], "a": 1 }, + { "px": [128,384], "src": [256,240], "f": 0, "t": 361, "d": [107,393], "a": 1 }, + { "px": [144,384], "src": [272,240], "f": 0, "t": 362, "d": [107,393], "a": 1 }, + { "px": [112,400], "src": [256,240], "f": 1, "t": 361, "d": [107,406], "a": 1 }, + { "px": [96,400], "src": [272,240], "f": 1, "t": 362, "d": [107,406], "a": 1 }, + { "px": [128,400], "src": [256,240], "f": 0, "t": 361, "d": [107,409], "a": 1 }, + { "px": [144,400], "src": [272,240], "f": 0, "t": 362, "d": [107,409], "a": 1 }, + { "px": [112,416], "src": [256,240], "f": 1, "t": 361, "d": [107,422], "a": 1 }, + { "px": [96,416], "src": [272,240], "f": 1, "t": 362, "d": [107,422], "a": 1 }, + { "px": [128,416], "src": [256,240], "f": 0, "t": 361, "d": [107,425], "a": 1 }, + { "px": [144,416], "src": [272,240], "f": 0, "t": 362, "d": [107,425], "a": 1 }, + { "px": [112,432], "src": [256,240], "f": 1, "t": 361, "d": [107,438], "a": 1 }, + { "px": [96,432], "src": [272,240], "f": 1, "t": 362, "d": [107,438], "a": 1 }, + { "px": [128,432], "src": [256,240], "f": 0, "t": 361, "d": [107,441], "a": 1 }, + { "px": [144,432], "src": [272,240], "f": 0, "t": 362, "d": [107,441], "a": 1 }, + { "px": [112,448], "src": [256,240], "f": 1, "t": 361, "d": [107,454], "a": 1 }, + { "px": [96,448], "src": [272,240], "f": 1, "t": 362, "d": [107,454], "a": 1 }, + { "px": [128,448], "src": [256,240], "f": 0, "t": 361, "d": [107,457], "a": 1 }, + { "px": [144,448], "src": [272,240], "f": 0, "t": 362, "d": [107,457], "a": 1 }, + { "px": [112,464], "src": [256,240], "f": 1, "t": 361, "d": [107,470], "a": 1 }, + { "px": [96,464], "src": [272,240], "f": 1, "t": 362, "d": [107,470], "a": 1 }, + { "px": [128,464], "src": [256,240], "f": 0, "t": 361, "d": [107,473], "a": 1 }, + { "px": [144,464], "src": [272,240], "f": 0, "t": 362, "d": [107,473], "a": 1 }, + { "px": [112,480], "src": [256,240], "f": 1, "t": 361, "d": [107,486], "a": 1 }, + { "px": [96,480], "src": [272,240], "f": 1, "t": 362, "d": [107,486], "a": 1 }, + { "px": [128,480], "src": [256,240], "f": 0, "t": 361, "d": [107,489], "a": 1 }, + { "px": [144,480], "src": [272,240], "f": 0, "t": 362, "d": [107,489], "a": 1 }, + { "px": [112,496], "src": [256,240], "f": 1, "t": 361, "d": [107,502], "a": 1 }, + { "px": [96,496], "src": [272,240], "f": 1, "t": 362, "d": [107,502], "a": 1 }, + { "px": [128,496], "src": [256,240], "f": 0, "t": 361, "d": [107,505], "a": 1 }, + { "px": [144,496], "src": [272,240], "f": 0, "t": 362, "d": [107,505], "a": 1 }, + { "px": [64,96], "src": [256,240], "f": 0, "t": 361, "d": [105,101], "a": 1 }, + { "px": [80,96], "src": [272,240], "f": 0, "t": 362, "d": [105,101], "a": 1 }, + { "px": [96,96], "src": [288,240], "f": 0, "t": 363, "d": [105,101], "a": 1 }, + { "px": [160,96], "src": [256,240], "f": 0, "t": 361, "d": [105,107], "a": 1 }, + { "px": [176,96], "src": [272,240], "f": 0, "t": 362, "d": [105,107], "a": 1 }, + { "px": [192,96], "src": [288,240], "f": 0, "t": 363, "d": [105,107], "a": 1 }, + { "px": [80,128], "src": [256,240], "f": 0, "t": 361, "d": [105,134], "a": 1 }, + { "px": [96,128], "src": [272,240], "f": 0, "t": 362, "d": [105,134], "a": 1 }, + { "px": [112,128], "src": [288,240], "f": 0, "t": 363, "d": [105,134], "a": 1 }, + { "px": [176,128], "src": [256,240], "f": 0, "t": 361, "d": [105,140], "a": 1 }, + { "px": [192,128], "src": [272,240], "f": 0, "t": 362, "d": [105,140], "a": 1 }, + { "px": [208,128], "src": [288,240], "f": 0, "t": 363, "d": [105,140], "a": 1 }, + { "px": [64,160], "src": [256,240], "f": 0, "t": 361, "d": [105,165], "a": 1 }, + { "px": [80,160], "src": [272,240], "f": 0, "t": 362, "d": [105,165], "a": 1 }, + { "px": [96,160], "src": [288,240], "f": 0, "t": 363, "d": [105,165], "a": 1 }, + { "px": [128,192], "src": [256,240], "f": 0, "t": 361, "d": [105,201], "a": 1 }, + { "px": [144,192], "src": [272,240], "f": 0, "t": 362, "d": [105,201], "a": 1 }, + { "px": [160,192], "src": [288,240], "f": 0, "t": 363, "d": [105,201], "a": 1 }, + { "px": [64,224], "src": [256,240], "f": 0, "t": 361, "d": [105,229], "a": 1 }, + { "px": [80,224], "src": [272,240], "f": 0, "t": 362, "d": [105,229], "a": 1 }, + { "px": [96,224], "src": [288,240], "f": 0, "t": 363, "d": [105,229], "a": 1 }, + { "px": [112,224], "src": [256,240], "f": 0, "t": 361, "d": [105,232], "a": 1 }, + { "px": [128,224], "src": [272,240], "f": 0, "t": 362, "d": [105,232], "a": 1 }, + { "px": [144,224], "src": [288,240], "f": 0, "t": 363, "d": [105,232], "a": 1 }, + { "px": [64,96], "src": [144,240], "f": 2, "t": 354, "d": [112,69], "a": 1 }, + { "px": [64,80], "src": [144,256], "f": 2, "t": 377, "d": [112,69], "a": 1 }, + { "px": [64,64], "src": [144,272], "f": 2, "t": 400, "d": [112,69], "a": 1 }, + { "px": [80,96], "src": [160,240], "f": 2, "t": 355, "d": [112,69], "a": 1 }, + { "px": [80,80], "src": [160,256], "f": 2, "t": 378, "d": [112,69], "a": 1 }, + { "px": [80,64], "src": [160,272], "f": 2, "t": 401, "d": [112,69], "a": 1 }, + { "px": [96,96], "src": [176,240], "f": 2, "t": 356, "d": [112,69], "a": 1 }, + { "px": [96,80], "src": [176,256], "f": 2, "t": 379, "d": [112,69], "a": 1 }, + { "px": [96,64], "src": [176,272], "f": 2, "t": 402, "d": [112,69], "a": 1 }, + { "px": [64,80], "src": [192,304], "f": 2, "t": 449, "d": [113,68], "a": 1 }, + { "px": [64,64], "src": [192,320], "f": 2, "t": 472, "d": [113,68], "a": 1 }, + { "px": [80,80], "src": [208,304], "f": 2, "t": 450, "d": [113,68], "a": 1 }, + { "px": [80,64], "src": [208,320], "f": 2, "t": 473, "d": [113,68], "a": 1 }, + { "px": [96,80], "src": [224,304], "f": 2, "t": 451, "d": [113,68], "a": 1 }, + { "px": [96,64], "src": [224,320], "f": 2, "t": 474, "d": [113,68], "a": 1 }, + { "px": [208,80], "src": [192,304], "f": 3, "t": 449, "d": [113,77], "a": 1 }, + { "px": [208,64], "src": [192,320], "f": 3, "t": 472, "d": [113,77], "a": 1 }, + { "px": [192,80], "src": [208,304], "f": 3, "t": 450, "d": [113,77], "a": 1 }, + { "px": [192,64], "src": [208,320], "f": 3, "t": 473, "d": [113,77], "a": 1 }, + { "px": [176,80], "src": [224,304], "f": 3, "t": 451, "d": [113,77], "a": 1 }, + { "px": [176,64], "src": [224,320], "f": 3, "t": 474, "d": [113,77], "a": 1 }, + { "px": [160,64], "src": [128,224], "f": 0, "t": 330, "d": [114,74], "a": 1 }, + { "px": [0,96], "src": [128,224], "f": 0, "t": 330, "d": [114,96], "a": 1 }, + { "px": [192,64], "src": [128,208], "f": 0, "t": 307, "d": [115,76], "a": 1 }, + { "px": [192,80], "src": [128,224], "f": 0, "t": 330, "d": [115,76], "a": 1 } + ], + "seed": 8069764, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ + { "levelIid": "a36fda00-66b0-11ec-9cd7-ffa8f8d0b484", "dir": "w" }, + { "levelIid": "a3707640-66b0-11ec-9cd7-59efc6b24075", "dir": "s" }, + { "levelIid": "a3727210-66b0-11ec-9cd7-aba0184f5034", "dir": "n" }, + { "levelIid": "a3730e50-66b0-11ec-9cd7-65c84b0f9baa", "dir": "e" }, + { "levelIid": "07caf540-66b0-11ec-a595-a55a7e13679d", "dir": "w" } + ] + }, + { + "identifier": "The_tower", + "iid": "a371aec0-66b0-11ec-9cd7-6f9e87cc2465", + "uid": 63, + "worldX": 1536, + "worldY": -256, + "worldDepth": 0, + "pxWid": 256, + "pxHei": 768, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 16, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a371aec5-66b0-11ec-9cd7-cd4768d1d266", + "levelId": 63, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 5459671, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Teleport", + "__grid": [12,42], + "__pivot": [0.5,1], + "__tags": ["actor"], + "__tile": { "tilesetUid": 133, "x": 224, "y": 176, "w": 16, "h": 16 }, + "__smartColor": "#EC50FF", + "iid": "d4c0c970-66b0-11ec-b893-e744143e4b85", + "width": 24, + "height": 24, + "defUid": 130, + "px": [200,688], + "fieldInstances": [{ "__identifier": "destination", "__type": "EntityRef", "__value": { + "entityIid": "d0d166d0-66b0-11ec-b893-fbba01a4c0d1", + "layerIid": "a374bc05-66b0-11ec-9cd7-315ee5c3e0d3", + "levelIid": "a374bc00-66b0-11ec-9cd7-65fcab2d5d53", + "worldIid": "ca3d7420-c640-11ed-ad34-5f1a115c4cf3" + }, "__tile": null, "defUid": 131, "realEditorValues": [{ + "id": "V_String", + "params": ["d0d166d0-66b0-11ec-b893-fbba01a4c0d1"] + }] }] + }, + { + "__identifier": "Ladder", + "__grid": [11,5], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "33248980-66b0-11ec-9ccd-7da3583966c5", + "width": 16, + "height": 112, + "defUid": 134, + "px": [176,80], + "fieldInstances": [] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a371aec6-66b0-11ec-9cd7-378648116ce0", + "levelId": 63, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [208,48], "src": [320,128], "f": 1, "t": 204, "d": [26,61], "a": 1 }, + { "px": [208,64], "src": [320,128], "f": 1, "t": 204, "d": [26,77], "a": 1 }, + { "px": [176,96], "src": [320,128], "f": 0, "t": 204, "d": [26,107], "a": 1 }, + { "px": [48,112], "src": [320,128], "f": 0, "t": 204, "d": [26,115], "a": 1 }, + { "px": [208,112], "src": [320,128], "f": 1, "t": 204, "d": [26,125], "a": 1 }, + { "px": [48,128], "src": [320,128], "f": 0, "t": 204, "d": [26,131], "a": 1 }, + { "px": [208,128], "src": [320,128], "f": 1, "t": 204, "d": [26,141], "a": 1 }, + { "px": [48,144], "src": [320,128], "f": 0, "t": 204, "d": [26,147], "a": 1 }, + { "px": [208,144], "src": [320,128], "f": 1, "t": 204, "d": [26,157], "a": 1 }, + { "px": [48,160], "src": [320,128], "f": 0, "t": 204, "d": [26,163], "a": 1 }, + { "px": [208,160], "src": [320,128], "f": 1, "t": 204, "d": [26,173], "a": 1 }, + { "px": [48,176], "src": [320,128], "f": 0, "t": 204, "d": [26,179], "a": 1 }, + { "px": [208,176], "src": [320,128], "f": 1, "t": 204, "d": [26,189], "a": 1 }, + { "px": [48,192], "src": [320,128], "f": 0, "t": 204, "d": [26,195], "a": 1 }, + { "px": [48,208], "src": [320,128], "f": 0, "t": 204, "d": [26,211], "a": 1 }, + { "px": [64,208], "src": [320,128], "f": 1, "t": 204, "d": [26,212], "a": 1 }, + { "px": [48,224], "src": [320,128], "f": 0, "t": 204, "d": [26,227], "a": 1 }, + { "px": [192,224], "src": [320,128], "f": 1, "t": 204, "d": [26,236], "a": 1 }, + { "px": [48,240], "src": [320,128], "f": 0, "t": 204, "d": [26,243], "a": 1 }, + { "px": [192,240], "src": [320,128], "f": 1, "t": 204, "d": [26,252], "a": 1 }, + { "px": [48,256], "src": [320,128], "f": 0, "t": 204, "d": [26,259], "a": 1 }, + { "px": [192,256], "src": [320,128], "f": 1, "t": 204, "d": [26,268], "a": 1 }, + { "px": [192,272], "src": [320,128], "f": 1, "t": 204, "d": [26,284], "a": 1 }, + { "px": [144,288], "src": [320,128], "f": 0, "t": 204, "d": [26,297], "a": 1 }, + { "px": [192,288], "src": [320,128], "f": 1, "t": 204, "d": [26,300], "a": 1 }, + { "px": [112,304], "src": [320,128], "f": 0, "t": 204, "d": [26,311], "a": 1 }, + { "px": [192,304], "src": [320,128], "f": 1, "t": 204, "d": [26,316], "a": 1 }, + { "px": [112,320], "src": [320,128], "f": 0, "t": 204, "d": [26,327], "a": 1 }, + { "px": [192,320], "src": [320,128], "f": 1, "t": 204, "d": [26,332], "a": 1 }, + { "px": [112,336], "src": [320,128], "f": 0, "t": 204, "d": [26,343], "a": 1 }, + { "px": [192,336], "src": [320,128], "f": 1, "t": 204, "d": [26,348], "a": 1 }, + { "px": [112,352], "src": [320,128], "f": 0, "t": 204, "d": [26,359], "a": 1 }, + { "px": [112,368], "src": [320,128], "f": 0, "t": 204, "d": [26,375], "a": 1 }, + { "px": [160,368], "src": [320,128], "f": 1, "t": 204, "d": [26,378], "a": 1 }, + { "px": [112,384], "src": [320,128], "f": 0, "t": 204, "d": [26,391], "a": 1 }, + { "px": [208,384], "src": [320,128], "f": 1, "t": 204, "d": [26,397], "a": 1 }, + { "px": [112,400], "src": [320,128], "f": 0, "t": 204, "d": [26,407], "a": 1 }, + { "px": [208,400], "src": [320,128], "f": 1, "t": 204, "d": [26,413], "a": 1 }, + { "px": [112,416], "src": [320,128], "f": 0, "t": 204, "d": [26,423], "a": 1 }, + { "px": [208,416], "src": [320,128], "f": 1, "t": 204, "d": [26,429], "a": 1 }, + { "px": [208,432], "src": [320,128], "f": 1, "t": 204, "d": [26,445], "a": 1 }, + { "px": [64,448], "src": [320,128], "f": 0, "t": 204, "d": [26,452], "a": 1 }, + { "px": [208,448], "src": [320,128], "f": 1, "t": 204, "d": [26,461], "a": 1 }, + { "px": [64,464], "src": [320,128], "f": 0, "t": 204, "d": [26,468], "a": 1 }, + { "px": [208,464], "src": [320,128], "f": 1, "t": 204, "d": [26,477], "a": 1 }, + { "px": [64,480], "src": [320,128], "f": 0, "t": 204, "d": [26,484], "a": 1 }, + { "px": [208,480], "src": [320,128], "f": 1, "t": 204, "d": [26,493], "a": 1 }, + { "px": [64,496], "src": [320,128], "f": 0, "t": 204, "d": [26,500], "a": 1 }, + { "px": [208,496], "src": [320,128], "f": 1, "t": 204, "d": [26,509], "a": 1 }, + { "px": [64,512], "src": [320,128], "f": 0, "t": 204, "d": [26,516], "a": 1 }, + { "px": [64,528], "src": [320,128], "f": 0, "t": 204, "d": [26,532], "a": 1 }, + { "px": [128,528], "src": [320,128], "f": 1, "t": 204, "d": [26,536], "a": 1 }, + { "px": [64,544], "src": [320,128], "f": 0, "t": 204, "d": [26,548], "a": 1 }, + { "px": [128,544], "src": [320,128], "f": 1, "t": 204, "d": [26,552], "a": 1 }, + { "px": [64,560], "src": [320,128], "f": 0, "t": 204, "d": [26,564], "a": 1 }, + { "px": [128,560], "src": [320,128], "f": 1, "t": 204, "d": [26,568], "a": 1 }, + { "px": [64,576], "src": [320,128], "f": 0, "t": 204, "d": [26,580], "a": 1 }, + { "px": [128,576], "src": [320,128], "f": 1, "t": 204, "d": [26,584], "a": 1 }, + { "px": [128,592], "src": [320,128], "f": 1, "t": 204, "d": [26,600], "a": 1 }, + { "px": [32,608], "src": [320,128], "f": 0, "t": 204, "d": [26,610], "a": 1 }, + { "px": [128,608], "src": [320,128], "f": 1, "t": 204, "d": [26,616], "a": 1 }, + { "px": [32,624], "src": [320,128], "f": 0, "t": 204, "d": [26,626], "a": 1 }, + { "px": [128,624], "src": [320,128], "f": 1, "t": 204, "d": [26,632], "a": 1 }, + { "px": [32,640], "src": [320,128], "f": 0, "t": 204, "d": [26,642], "a": 1 }, + { "px": [176,640], "src": [320,128], "f": 0, "t": 204, "d": [26,651], "a": 1 }, + { "px": [208,640], "src": [320,128], "f": 1, "t": 204, "d": [26,653], "a": 1 }, + { "px": [32,656], "src": [320,128], "f": 0, "t": 204, "d": [26,658], "a": 1 }, + { "px": [208,656], "src": [320,128], "f": 1, "t": 204, "d": [26,669], "a": 1 }, + { "px": [32,672], "src": [320,128], "f": 0, "t": 204, "d": [26,674], "a": 1 }, + { "px": [208,672], "src": [320,128], "f": 1, "t": 204, "d": [26,685], "a": 1 }, + { "px": [32,688], "src": [320,128], "f": 0, "t": 204, "d": [26,690], "a": 1 }, + { "px": [176,80], "src": [320,96], "f": 0, "t": 158, "d": [138,91], "a": 1 }, + { "px": [64,192], "src": [320,96], "f": 1, "t": 158, "d": [138,196], "a": 1 }, + { "px": [144,272], "src": [320,96], "f": 0, "t": 158, "d": [138,281], "a": 1 }, + { "px": [160,352], "src": [320,96], "f": 1, "t": 158, "d": [138,362], "a": 1 }, + { "px": [160,432], "src": [320,96], "f": 0, "t": 158, "d": [138,442], "a": 1 }, + { "px": [96,512], "src": [320,96], "f": 1, "t": 158, "d": [138,518], "a": 1 }, + { "px": [96,592], "src": [320,96], "f": 0, "t": 158, "d": [138,598], "a": 1 }, + { "px": [64,640], "src": [320,96], "f": 1, "t": 158, "d": [138,644], "a": 1 }, + { "px": [160,688], "src": [320,96], "f": 1, "t": 158, "d": [138,698], "a": 1 }, + { "px": [0,48], "src": [336,112], "f": 0, "t": 182, "d": [27,48], "a": 1 }, + { "px": [16,48], "src": [336,112], "f": 0, "t": 182, "d": [27,49], "a": 1 }, + { "px": [32,48], "src": [336,112], "f": 0, "t": 182, "d": [27,50], "a": 1 }, + { "px": [48,48], "src": [336,112], "f": 0, "t": 182, "d": [27,51], "a": 1 }, + { "px": [64,48], "src": [336,112], "f": 0, "t": 182, "d": [27,52], "a": 1 }, + { "px": [80,48], "src": [336,112], "f": 0, "t": 182, "d": [27,53], "a": 1 }, + { "px": [96,48], "src": [336,112], "f": 0, "t": 182, "d": [27,54], "a": 1 }, + { "px": [112,48], "src": [336,112], "f": 0, "t": 182, "d": [27,55], "a": 1 }, + { "px": [128,48], "src": [336,112], "f": 0, "t": 182, "d": [27,56], "a": 1 }, + { "px": [144,48], "src": [336,112], "f": 0, "t": 182, "d": [27,57], "a": 1 }, + { "px": [160,48], "src": [336,112], "f": 0, "t": 182, "d": [27,58], "a": 1 }, + { "px": [176,48], "src": [336,112], "f": 0, "t": 182, "d": [27,59], "a": 1 }, + { "px": [192,48], "src": [336,112], "f": 0, "t": 182, "d": [27,60], "a": 1 }, + { "px": [208,48], "src": [336,112], "f": 0, "t": 182, "d": [27,61], "a": 1 }, + { "px": [48,112], "src": [336,112], "f": 0, "t": 182, "d": [27,115], "a": 1 }, + { "px": [64,112], "src": [336,112], "f": 0, "t": 182, "d": [27,116], "a": 1 }, + { "px": [80,112], "src": [336,112], "f": 0, "t": 182, "d": [27,117], "a": 1 }, + { "px": [96,112], "src": [336,112], "f": 0, "t": 182, "d": [27,118], "a": 1 }, + { "px": [112,112], "src": [336,112], "f": 0, "t": 182, "d": [27,119], "a": 1 }, + { "px": [128,112], "src": [336,112], "f": 0, "t": 182, "d": [27,120], "a": 1 }, + { "px": [144,112], "src": [336,112], "f": 0, "t": 182, "d": [27,121], "a": 1 }, + { "px": [160,112], "src": [336,112], "f": 0, "t": 182, "d": [27,122], "a": 1 }, + { "px": [192,112], "src": [336,112], "f": 0, "t": 182, "d": [27,124], "a": 1 }, + { "px": [208,112], "src": [336,112], "f": 0, "t": 182, "d": [27,125], "a": 1 }, + { "px": [80,224], "src": [336,112], "f": 0, "t": 182, "d": [27,229], "a": 1 }, + { "px": [96,224], "src": [336,112], "f": 0, "t": 182, "d": [27,230], "a": 1 }, + { "px": [112,224], "src": [336,112], "f": 0, "t": 182, "d": [27,231], "a": 1 }, + { "px": [128,224], "src": [336,112], "f": 0, "t": 182, "d": [27,232], "a": 1 }, + { "px": [144,224], "src": [336,112], "f": 0, "t": 182, "d": [27,233], "a": 1 }, + { "px": [160,224], "src": [336,112], "f": 0, "t": 182, "d": [27,234], "a": 1 }, + { "px": [176,224], "src": [336,112], "f": 0, "t": 182, "d": [27,235], "a": 1 }, + { "px": [192,224], "src": [336,112], "f": 0, "t": 182, "d": [27,236], "a": 1 }, + { "px": [112,304], "src": [336,112], "f": 0, "t": 182, "d": [27,311], "a": 1 }, + { "px": [128,304], "src": [336,112], "f": 0, "t": 182, "d": [27,312], "a": 1 }, + { "px": [176,384], "src": [336,112], "f": 0, "t": 182, "d": [27,395], "a": 1 }, + { "px": [192,384], "src": [336,112], "f": 0, "t": 182, "d": [27,396], "a": 1 }, + { "px": [208,384], "src": [336,112], "f": 0, "t": 182, "d": [27,397], "a": 1 }, + { "px": [64,448], "src": [336,112], "f": 0, "t": 182, "d": [27,452], "a": 1 }, + { "px": [80,448], "src": [336,112], "f": 0, "t": 182, "d": [27,453], "a": 1 }, + { "px": [96,448], "src": [336,112], "f": 0, "t": 182, "d": [27,454], "a": 1 }, + { "px": [112,448], "src": [336,112], "f": 0, "t": 182, "d": [27,455], "a": 1 }, + { "px": [128,448], "src": [336,112], "f": 0, "t": 182, "d": [27,456], "a": 1 }, + { "px": [144,448], "src": [336,112], "f": 0, "t": 182, "d": [27,457], "a": 1 }, + { "px": [112,528], "src": [336,112], "f": 0, "t": 182, "d": [27,535], "a": 1 }, + { "px": [128,528], "src": [336,112], "f": 0, "t": 182, "d": [27,536], "a": 1 }, + { "px": [32,608], "src": [336,112], "f": 0, "t": 182, "d": [27,610], "a": 1 }, + { "px": [48,608], "src": [336,112], "f": 0, "t": 182, "d": [27,611], "a": 1 }, + { "px": [64,608], "src": [336,112], "f": 0, "t": 182, "d": [27,612], "a": 1 }, + { "px": [80,608], "src": [336,112], "f": 0, "t": 182, "d": [27,613], "a": 1 }, + { "px": [176,640], "src": [336,112], "f": 0, "t": 182, "d": [27,651], "a": 1 }, + { "px": [192,640], "src": [336,112], "f": 0, "t": 182, "d": [27,652], "a": 1 }, + { "px": [208,640], "src": [336,112], "f": 0, "t": 182, "d": [27,653], "a": 1 }, + { "px": [80,656], "src": [336,112], "f": 0, "t": 182, "d": [27,661], "a": 1 }, + { "px": [96,656], "src": [336,112], "f": 0, "t": 182, "d": [27,662], "a": 1 }, + { "px": [112,656], "src": [336,112], "f": 0, "t": 182, "d": [27,663], "a": 1 }, + { "px": [128,656], "src": [336,112], "f": 0, "t": 182, "d": [27,664], "a": 1 }, + { "px": [144,656], "src": [336,112], "f": 0, "t": 182, "d": [27,665], "a": 1 }, + { "px": [160,656], "src": [336,112], "f": 0, "t": 182, "d": [27,666], "a": 1 }, + { "px": [176,112], "src": [320,112], "f": 0, "t": 181, "d": [137,123], "a": 1 }, + { "px": [64,224], "src": [320,112], "f": 1, "t": 181, "d": [137,228], "a": 1 }, + { "px": [144,304], "src": [320,112], "f": 0, "t": 181, "d": [137,313], "a": 1 }, + { "px": [160,384], "src": [320,112], "f": 1, "t": 181, "d": [137,394], "a": 1 }, + { "px": [160,448], "src": [320,112], "f": 0, "t": 181, "d": [137,458], "a": 1 }, + { "px": [96,528], "src": [320,112], "f": 1, "t": 181, "d": [137,534], "a": 1 }, + { "px": [96,608], "src": [320,112], "f": 0, "t": 181, "d": [137,614], "a": 1 }, + { "px": [64,656], "src": [320,112], "f": 1, "t": 181, "d": [137,660], "a": 1 }, + { "px": [176,656], "src": [320,112], "f": 0, "t": 181, "d": [137,667], "a": 1 } + ], + "seed": 9282778, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 16, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a371aec7-66b0-11ec-9cd7-2bfcc6c27ecb", + "levelId": 63, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0, + 0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1, + 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1, + 1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0, + 0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1, + 1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0, + 0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1, + 1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0, + 0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0, + 0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1, + 1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [80,720], "src": [320,176], "f": 0, "t": 273, "d": [28,725], "a": 1 }, + { "px": [80,736], "src": [320,176], "f": 0, "t": 273, "d": [28,741], "a": 1 }, + { "px": [80,752], "src": [320,176], "f": 0, "t": 273, "d": [28,757], "a": 1 }, + { "px": [32,704], "src": [320,160], "f": 0, "t": 250, "d": [21,706], "a": 1 }, + { "px": [48,704], "src": [320,160], "f": 0, "t": 250, "d": [21,707], "a": 1 }, + { "px": [64,704], "src": [320,160], "f": 0, "t": 250, "d": [21,708], "a": 1 }, + { "px": [80,704], "src": [320,160], "f": 0, "t": 250, "d": [21,709], "a": 1 }, + { "px": [96,704], "src": [320,160], "f": 0, "t": 250, "d": [21,710], "a": 1 }, + { "px": [112,704], "src": [320,160], "f": 0, "t": 250, "d": [21,711], "a": 1 }, + { "px": [128,704], "src": [320,160], "f": 0, "t": 250, "d": [21,712], "a": 1 }, + { "px": [144,704], "src": [320,160], "f": 0, "t": 250, "d": [21,713], "a": 1 }, + { "px": [160,704], "src": [320,160], "f": 0, "t": 250, "d": [21,714], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [8,1], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [8,9], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [8,11], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [8,13], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [8,16], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [8,26], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [8,28], "a": 1 }, + { "px": [240,96], "src": [32,32], "f": 0, "t": 48, "d": [8,111], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [8,112], "a": 1 }, + { "px": [16,128], "src": [32,32], "f": 0, "t": 48, "d": [8,129], "a": 1 }, + { "px": [240,128], "src": [32,32], "f": 0, "t": 48, "d": [8,143], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [8,144], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [8,161], "a": 1 }, + { "px": [240,192], "src": [32,32], "f": 0, "t": 48, "d": [8,207], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [8,208], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [8,225], "a": 1 }, + { "px": [240,224], "src": [32,32], "f": 0, "t": 48, "d": [8,239], "a": 1 }, + { "px": [240,256], "src": [32,32], "f": 0, "t": 48, "d": [8,271], "a": 1 }, + { "px": [224,272], "src": [32,32], "f": 0, "t": 48, "d": [8,286], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [8,289], "a": 1 }, + { "px": [240,288], "src": [32,32], "f": 0, "t": 48, "d": [8,303], "a": 1 }, + { "px": [224,304], "src": [32,32], "f": 0, "t": 48, "d": [8,318], "a": 1 }, + { "px": [64,336], "src": [32,32], "f": 0, "t": 48, "d": [8,340], "a": 1 }, + { "px": [224,336], "src": [32,32], "f": 0, "t": 48, "d": [8,350], "a": 1 }, + { "px": [80,352], "src": [32,32], "f": 0, "t": 48, "d": [8,357], "a": 1 }, + { "px": [240,352], "src": [32,32], "f": 0, "t": 48, "d": [8,367], "a": 1 }, + { "px": [240,384], "src": [32,32], "f": 0, "t": 48, "d": [8,399], "a": 1 }, + { "px": [80,416], "src": [32,32], "f": 0, "t": 48, "d": [8,421], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [8,449], "a": 1 }, + { "px": [240,448], "src": [32,32], "f": 0, "t": 48, "d": [8,463], "a": 1 }, + { "px": [32,464], "src": [32,32], "f": 0, "t": 48, "d": [8,466], "a": 1 }, + { "px": [16,480], "src": [32,32], "f": 0, "t": 48, "d": [8,481], "a": 1 }, + { "px": [240,512], "src": [32,32], "f": 0, "t": 48, "d": [8,527], "a": 1 }, + { "px": [160,528], "src": [32,32], "f": 0, "t": 48, "d": [8,538], "a": 1 }, + { "px": [192,528], "src": [32,32], "f": 0, "t": 48, "d": [8,540], "a": 1 }, + { "px": [224,528], "src": [32,32], "f": 0, "t": 48, "d": [8,542], "a": 1 }, + { "px": [16,544], "src": [32,32], "f": 0, "t": 48, "d": [8,545], "a": 1 }, + { "px": [176,544], "src": [32,32], "f": 0, "t": 48, "d": [8,555], "a": 1 }, + { "px": [208,544], "src": [32,32], "f": 0, "t": 48, "d": [8,557], "a": 1 }, + { "px": [32,560], "src": [32,32], "f": 0, "t": 48, "d": [8,562], "a": 1 }, + { "px": [160,560], "src": [32,32], "f": 0, "t": 48, "d": [8,570], "a": 1 }, + { "px": [16,576], "src": [32,32], "f": 0, "t": 48, "d": [8,577], "a": 1 }, + { "px": [176,576], "src": [32,32], "f": 0, "t": 48, "d": [8,587], "a": 1 }, + { "px": [0,592], "src": [32,32], "f": 0, "t": 48, "d": [8,592], "a": 1 }, + { "px": [192,592], "src": [32,32], "f": 0, "t": 48, "d": [8,604], "a": 1 }, + { "px": [224,592], "src": [32,32], "f": 0, "t": 48, "d": [8,606], "a": 1 }, + { "px": [176,608], "src": [32,32], "f": 0, "t": 48, "d": [8,619], "a": 1 }, + { "px": [208,608], "src": [32,32], "f": 0, "t": 48, "d": [8,621], "a": 1 }, + { "px": [240,608], "src": [32,32], "f": 0, "t": 48, "d": [8,623], "a": 1 }, + { "px": [0,624], "src": [32,32], "f": 0, "t": 48, "d": [8,624], "a": 1 }, + { "px": [0,656], "src": [32,32], "f": 0, "t": 48, "d": [8,656], "a": 1 }, + { "px": [0,688], "src": [32,32], "f": 0, "t": 48, "d": [8,688], "a": 1 }, + { "px": [240,704], "src": [32,32], "f": 0, "t": 48, "d": [8,719], "a": 1 }, + { "px": [0,720], "src": [32,32], "f": 0, "t": 48, "d": [8,720], "a": 1 }, + { "px": [224,720], "src": [32,32], "f": 0, "t": 48, "d": [8,734], "a": 1 }, + { "px": [16,736], "src": [32,32], "f": 0, "t": 48, "d": [8,737], "a": 1 }, + { "px": [48,736], "src": [32,32], "f": 0, "t": 48, "d": [8,739], "a": 1 }, + { "px": [112,736], "src": [32,32], "f": 0, "t": 48, "d": [8,743], "a": 1 }, + { "px": [208,736], "src": [32,32], "f": 0, "t": 48, "d": [8,749], "a": 1 }, + { "px": [32,752], "src": [32,32], "f": 0, "t": 48, "d": [8,754], "a": 1 }, + { "px": [128,752], "src": [32,32], "f": 0, "t": 48, "d": [8,760], "a": 1 }, + { "px": [160,752], "src": [32,32], "f": 0, "t": 48, "d": [8,762], "a": 1 }, + { "px": [48,0], "src": [64,96], "f": 0, "t": 142, "d": [83,3], "a": 1 }, + { "px": [80,0], "src": [96,96], "f": 0, "t": 144, "d": [83,5], "a": 1 }, + { "px": [112,0], "src": [64,96], "f": 0, "t": 142, "d": [83,7], "a": 1 }, + { "px": [240,0], "src": [96,96], "f": 0, "t": 144, "d": [83,15], "a": 1 }, + { "px": [32,16], "src": [64,96], "f": 0, "t": 142, "d": [83,18], "a": 1 }, + { "px": [64,16], "src": [64,96], "f": 0, "t": 142, "d": [83,20], "a": 1 }, + { "px": [96,16], "src": [64,96], "f": 0, "t": 142, "d": [83,22], "a": 1 }, + { "px": [128,16], "src": [64,96], "f": 0, "t": 142, "d": [83,24], "a": 1 }, + { "px": [224,16], "src": [64,96], "f": 0, "t": 142, "d": [83,30], "a": 1 }, + { "px": [240,32], "src": [64,96], "f": 0, "t": 142, "d": [83,47], "a": 1 }, + { "px": [240,64], "src": [96,96], "f": 0, "t": 144, "d": [83,79], "a": 1 }, + { "px": [16,96], "src": [96,96], "f": 0, "t": 144, "d": [83,97], "a": 1 }, + { "px": [240,160], "src": [64,96], "f": 0, "t": 142, "d": [83,175], "a": 1 }, + { "px": [0,176], "src": [64,96], "f": 0, "t": 142, "d": [83,176], "a": 1 }, + { "px": [16,192], "src": [64,96], "f": 0, "t": 142, "d": [83,193], "a": 1 }, + { "px": [224,208], "src": [64,96], "f": 0, "t": 142, "d": [83,222], "a": 1 }, + { "px": [0,240], "src": [64,96], "f": 0, "t": 142, "d": [83,240], "a": 1 }, + { "px": [224,240], "src": [96,96], "f": 0, "t": 144, "d": [83,254], "a": 1 }, + { "px": [16,256], "src": [96,96], "f": 0, "t": 144, "d": [83,257], "a": 1 }, + { "px": [0,272], "src": [96,96], "f": 0, "t": 144, "d": [83,272], "a": 1 }, + { "px": [48,288], "src": [64,96], "f": 0, "t": 142, "d": [83,291], "a": 1 }, + { "px": [80,288], "src": [96,96], "f": 0, "t": 144, "d": [83,293], "a": 1 }, + { "px": [0,304], "src": [64,96], "f": 0, "t": 142, "d": [83,304], "a": 1 }, + { "px": [32,304], "src": [96,96], "f": 0, "t": 144, "d": [83,306], "a": 1 }, + { "px": [64,304], "src": [96,96], "f": 0, "t": 144, "d": [83,308], "a": 1 }, + { "px": [80,320], "src": [96,96], "f": 0, "t": 144, "d": [83,325], "a": 1 }, + { "px": [240,320], "src": [96,96], "f": 0, "t": 144, "d": [83,335], "a": 1 }, + { "px": [64,368], "src": [96,96], "f": 0, "t": 144, "d": [83,372], "a": 1 }, + { "px": [80,384], "src": [64,96], "f": 0, "t": 142, "d": [83,389], "a": 1 }, + { "px": [32,400], "src": [96,96], "f": 0, "t": 144, "d": [83,402], "a": 1 }, + { "px": [64,400], "src": [64,96], "f": 0, "t": 142, "d": [83,404], "a": 1 }, + { "px": [16,416], "src": [64,96], "f": 0, "t": 142, "d": [83,417], "a": 1 }, + { "px": [48,416], "src": [64,96], "f": 0, "t": 142, "d": [83,419], "a": 1 }, + { "px": [240,416], "src": [96,96], "f": 0, "t": 144, "d": [83,431], "a": 1 }, + { "px": [32,432], "src": [64,96], "f": 0, "t": 142, "d": [83,434], "a": 1 }, + { "px": [240,480], "src": [96,96], "f": 0, "t": 144, "d": [83,495], "a": 1 }, + { "px": [32,496], "src": [96,96], "f": 0, "t": 144, "d": [83,498], "a": 1 }, + { "px": [16,512], "src": [64,96], "f": 0, "t": 142, "d": [83,513], "a": 1 }, + { "px": [32,528], "src": [64,96], "f": 0, "t": 142, "d": [83,530], "a": 1 }, + { "px": [240,544], "src": [96,96], "f": 0, "t": 144, "d": [83,559], "a": 1 }, + { "px": [0,560], "src": [96,96], "f": 0, "t": 144, "d": [83,560], "a": 1 }, + { "px": [160,592], "src": [64,96], "f": 0, "t": 142, "d": [83,602], "a": 1 }, + { "px": [240,640], "src": [64,96], "f": 0, "t": 142, "d": [83,655], "a": 1 }, + { "px": [240,672], "src": [96,96], "f": 0, "t": 144, "d": [83,687], "a": 1 }, + { "px": [208,704], "src": [96,96], "f": 0, "t": 144, "d": [83,717], "a": 1 }, + { "px": [192,720], "src": [96,96], "f": 0, "t": 144, "d": [83,732], "a": 1 }, + { "px": [144,736], "src": [64,96], "f": 0, "t": 142, "d": [83,745], "a": 1 }, + { "px": [176,736], "src": [64,96], "f": 0, "t": 142, "d": [83,747], "a": 1 }, + { "px": [0,752], "src": [64,96], "f": 0, "t": 142, "d": [83,752], "a": 1 }, + { "px": [192,752], "src": [64,96], "f": 0, "t": 142, "d": [83,764], "a": 1 }, + { "px": [0,0], "src": [96,0], "f": 0, "t": 6, "d": [101,0], "a": 1 }, + { "px": [32,0], "src": [192,16], "f": 0, "t": 35, "d": [101,2], "a": 1 }, + { "px": [64,0], "src": [224,96], "f": 0, "t": 152, "d": [101,4], "a": 1 }, + { "px": [96,0], "src": [192,16], "f": 0, "t": 35, "d": [101,6], "a": 1 }, + { "px": [128,0], "src": [96,0], "f": 0, "t": 6, "d": [101,8], "a": 1 }, + { "px": [160,0], "src": [96,0], "f": 0, "t": 6, "d": [101,10], "a": 1 }, + { "px": [192,0], "src": [224,96], "f": 0, "t": 152, "d": [101,12], "a": 1 }, + { "px": [224,0], "src": [192,16], "f": 0, "t": 35, "d": [101,14], "a": 1 }, + { "px": [16,16], "src": [96,0], "f": 0, "t": 6, "d": [101,17], "a": 1 }, + { "px": [48,16], "src": [192,16], "f": 0, "t": 35, "d": [101,19], "a": 1 }, + { "px": [80,16], "src": [96,0], "f": 0, "t": 6, "d": [101,21], "a": 1 }, + { "px": [112,16], "src": [224,96], "f": 0, "t": 152, "d": [101,23], "a": 1 }, + { "px": [144,16], "src": [192,16], "f": 0, "t": 35, "d": [101,25], "a": 1 }, + { "px": [176,16], "src": [192,16], "f": 0, "t": 35, "d": [101,27], "a": 1 }, + { "px": [208,16], "src": [192,16], "f": 0, "t": 35, "d": [101,29], "a": 1 }, + { "px": [240,16], "src": [224,96], "f": 0, "t": 152, "d": [101,31], "a": 1 }, + { "px": [240,48], "src": [192,16], "f": 0, "t": 35, "d": [101,63], "a": 1 }, + { "px": [240,80], "src": [96,0], "f": 0, "t": 6, "d": [101,95], "a": 1 }, + { "px": [0,96], "src": [224,96], "f": 0, "t": 152, "d": [101,96], "a": 1 }, + { "px": [16,112], "src": [96,0], "f": 0, "t": 6, "d": [101,113], "a": 1 }, + { "px": [240,112], "src": [224,96], "f": 0, "t": 152, "d": [101,127], "a": 1 }, + { "px": [0,128], "src": [192,16], "f": 0, "t": 35, "d": [101,128], "a": 1 }, + { "px": [16,144], "src": [224,96], "f": 0, "t": 152, "d": [101,145], "a": 1 }, + { "px": [240,144], "src": [96,0], "f": 0, "t": 6, "d": [101,159], "a": 1 }, + { "px": [0,160], "src": [96,0], "f": 0, "t": 6, "d": [101,160], "a": 1 }, + { "px": [16,176], "src": [192,16], "f": 0, "t": 35, "d": [101,177], "a": 1 }, + { "px": [240,176], "src": [224,96], "f": 0, "t": 152, "d": [101,191], "a": 1 }, + { "px": [0,192], "src": [224,96], "f": 0, "t": 152, "d": [101,192], "a": 1 }, + { "px": [16,208], "src": [96,0], "f": 0, "t": 6, "d": [101,209], "a": 1 }, + { "px": [240,208], "src": [224,96], "f": 0, "t": 152, "d": [101,223], "a": 1 }, + { "px": [0,224], "src": [96,0], "f": 0, "t": 6, "d": [101,224], "a": 1 }, + { "px": [224,224], "src": [192,16], "f": 0, "t": 35, "d": [101,238], "a": 1 }, + { "px": [16,240], "src": [96,0], "f": 0, "t": 6, "d": [101,241], "a": 1 }, + { "px": [240,240], "src": [224,96], "f": 0, "t": 152, "d": [101,255], "a": 1 }, + { "px": [0,256], "src": [192,16], "f": 0, "t": 35, "d": [101,256], "a": 1 }, + { "px": [224,256], "src": [192,16], "f": 0, "t": 35, "d": [101,270], "a": 1 }, + { "px": [16,272], "src": [224,96], "f": 0, "t": 152, "d": [101,273], "a": 1 }, + { "px": [240,272], "src": [224,96], "f": 0, "t": 152, "d": [101,287], "a": 1 }, + { "px": [0,288], "src": [192,16], "f": 0, "t": 35, "d": [101,288], "a": 1 }, + { "px": [32,288], "src": [224,96], "f": 0, "t": 152, "d": [101,290], "a": 1 }, + { "px": [64,288], "src": [192,16], "f": 0, "t": 35, "d": [101,292], "a": 1 }, + { "px": [224,288], "src": [224,96], "f": 0, "t": 152, "d": [101,302], "a": 1 }, + { "px": [16,304], "src": [192,16], "f": 0, "t": 35, "d": [101,305], "a": 1 }, + { "px": [48,304], "src": [192,16], "f": 0, "t": 35, "d": [101,307], "a": 1 }, + { "px": [80,304], "src": [96,0], "f": 0, "t": 6, "d": [101,309], "a": 1 }, + { "px": [240,304], "src": [96,0], "f": 0, "t": 6, "d": [101,319], "a": 1 }, + { "px": [64,320], "src": [224,96], "f": 0, "t": 152, "d": [101,324], "a": 1 }, + { "px": [224,320], "src": [96,0], "f": 0, "t": 6, "d": [101,334], "a": 1 }, + { "px": [80,336], "src": [96,0], "f": 0, "t": 6, "d": [101,341], "a": 1 }, + { "px": [240,336], "src": [224,96], "f": 0, "t": 152, "d": [101,351], "a": 1 }, + { "px": [64,352], "src": [192,16], "f": 0, "t": 35, "d": [101,356], "a": 1 }, + { "px": [224,352], "src": [96,0], "f": 0, "t": 6, "d": [101,366], "a": 1 }, + { "px": [80,368], "src": [192,16], "f": 0, "t": 35, "d": [101,373], "a": 1 }, + { "px": [240,368], "src": [224,96], "f": 0, "t": 152, "d": [101,383], "a": 1 }, + { "px": [64,384], "src": [224,96], "f": 0, "t": 152, "d": [101,388], "a": 1 }, + { "px": [16,400], "src": [96,0], "f": 0, "t": 6, "d": [101,401], "a": 1 }, + { "px": [48,400], "src": [192,16], "f": 0, "t": 35, "d": [101,403], "a": 1 }, + { "px": [80,400], "src": [192,16], "f": 0, "t": 35, "d": [101,405], "a": 1 }, + { "px": [240,400], "src": [96,0], "f": 0, "t": 6, "d": [101,415], "a": 1 }, + { "px": [32,416], "src": [224,96], "f": 0, "t": 152, "d": [101,418], "a": 1 }, + { "px": [64,416], "src": [96,0], "f": 0, "t": 6, "d": [101,420], "a": 1 }, + { "px": [16,432], "src": [192,16], "f": 0, "t": 35, "d": [101,433], "a": 1 }, + { "px": [240,432], "src": [96,0], "f": 0, "t": 6, "d": [101,447], "a": 1 }, + { "px": [32,448], "src": [192,16], "f": 0, "t": 35, "d": [101,450], "a": 1 }, + { "px": [16,464], "src": [224,96], "f": 0, "t": 152, "d": [101,465], "a": 1 }, + { "px": [240,464], "src": [96,0], "f": 0, "t": 6, "d": [101,479], "a": 1 }, + { "px": [32,480], "src": [192,16], "f": 0, "t": 35, "d": [101,482], "a": 1 }, + { "px": [16,496], "src": [96,0], "f": 0, "t": 6, "d": [101,497], "a": 1 }, + { "px": [240,496], "src": [192,16], "f": 0, "t": 35, "d": [101,511], "a": 1 }, + { "px": [32,512], "src": [96,0], "f": 0, "t": 6, "d": [101,514], "a": 1 }, + { "px": [16,528], "src": [192,16], "f": 0, "t": 35, "d": [101,529], "a": 1 }, + { "px": [176,528], "src": [96,0], "f": 0, "t": 6, "d": [101,539], "a": 1 }, + { "px": [208,528], "src": [96,0], "f": 0, "t": 6, "d": [101,541], "a": 1 }, + { "px": [240,528], "src": [96,0], "f": 0, "t": 6, "d": [101,543], "a": 1 }, + { "px": [32,544], "src": [224,96], "f": 0, "t": 152, "d": [101,546], "a": 1 }, + { "px": [160,544], "src": [192,16], "f": 0, "t": 35, "d": [101,554], "a": 1 }, + { "px": [192,544], "src": [192,16], "f": 0, "t": 35, "d": [101,556], "a": 1 }, + { "px": [224,544], "src": [224,96], "f": 0, "t": 152, "d": [101,558], "a": 1 }, + { "px": [16,560], "src": [224,96], "f": 0, "t": 152, "d": [101,561], "a": 1 }, + { "px": [176,560], "src": [192,16], "f": 0, "t": 35, "d": [101,571], "a": 1 }, + { "px": [0,576], "src": [192,16], "f": 0, "t": 35, "d": [101,576], "a": 1 }, + { "px": [32,576], "src": [96,0], "f": 0, "t": 6, "d": [101,578], "a": 1 }, + { "px": [160,576], "src": [96,0], "f": 0, "t": 6, "d": [101,586], "a": 1 }, + { "px": [176,592], "src": [224,96], "f": 0, "t": 152, "d": [101,603], "a": 1 }, + { "px": [208,592], "src": [224,96], "f": 0, "t": 152, "d": [101,605], "a": 1 }, + { "px": [240,592], "src": [96,0], "f": 0, "t": 6, "d": [101,607], "a": 1 }, + { "px": [0,608], "src": [96,0], "f": 0, "t": 6, "d": [101,608], "a": 1 }, + { "px": [160,608], "src": [192,16], "f": 0, "t": 35, "d": [101,618], "a": 1 }, + { "px": [192,608], "src": [224,96], "f": 0, "t": 152, "d": [101,620], "a": 1 }, + { "px": [224,608], "src": [192,16], "f": 0, "t": 35, "d": [101,622], "a": 1 }, + { "px": [240,624], "src": [224,96], "f": 0, "t": 152, "d": [101,639], "a": 1 }, + { "px": [0,640], "src": [96,0], "f": 0, "t": 6, "d": [101,640], "a": 1 }, + { "px": [240,656], "src": [192,16], "f": 0, "t": 35, "d": [101,671], "a": 1 }, + { "px": [0,672], "src": [192,16], "f": 0, "t": 35, "d": [101,672], "a": 1 }, + { "px": [240,688], "src": [224,96], "f": 0, "t": 152, "d": [101,703], "a": 1 }, + { "px": [0,704], "src": [192,16], "f": 0, "t": 35, "d": [101,704], "a": 1 }, + { "px": [192,704], "src": [192,16], "f": 0, "t": 35, "d": [101,716], "a": 1 }, + { "px": [224,704], "src": [224,96], "f": 0, "t": 152, "d": [101,718], "a": 1 }, + { "px": [208,720], "src": [192,16], "f": 0, "t": 35, "d": [101,733], "a": 1 }, + { "px": [240,720], "src": [192,16], "f": 0, "t": 35, "d": [101,735], "a": 1 }, + { "px": [0,736], "src": [192,16], "f": 0, "t": 35, "d": [101,736], "a": 1 }, + { "px": [32,736], "src": [224,96], "f": 0, "t": 152, "d": [101,738], "a": 1 }, + { "px": [128,736], "src": [192,16], "f": 0, "t": 35, "d": [101,744], "a": 1 }, + { "px": [160,736], "src": [192,16], "f": 0, "t": 35, "d": [101,746], "a": 1 }, + { "px": [192,736], "src": [96,0], "f": 0, "t": 6, "d": [101,748], "a": 1 }, + { "px": [16,752], "src": [192,16], "f": 0, "t": 35, "d": [101,753], "a": 1 }, + { "px": [48,752], "src": [192,16], "f": 0, "t": 35, "d": [101,755], "a": 1 }, + { "px": [112,752], "src": [96,0], "f": 0, "t": 6, "d": [101,759], "a": 1 }, + { "px": [144,752], "src": [224,96], "f": 0, "t": 152, "d": [101,761], "a": 1 }, + { "px": [176,752], "src": [96,0], "f": 0, "t": 6, "d": [101,763], "a": 1 }, + { "px": [208,752], "src": [96,0], "f": 0, "t": 6, "d": [101,765], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [127,321], "a": 1 }, + { "px": [32,320], "src": [32,32], "f": 0, "t": 48, "d": [127,322], "a": 1 }, + { "px": [48,320], "src": [32,32], "f": 0, "t": 48, "d": [127,323], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [127,336], "a": 1 }, + { "px": [16,336], "src": [32,32], "f": 0, "t": 48, "d": [127,337], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [127,338], "a": 1 }, + { "px": [0,352], "src": [32,32], "f": 0, "t": 48, "d": [127,352], "a": 1 }, + { "px": [16,352], "src": [32,32], "f": 0, "t": 48, "d": [127,353], "a": 1 }, + { "px": [32,352], "src": [32,32], "f": 0, "t": 48, "d": [127,354], "a": 1 }, + { "px": [48,352], "src": [32,32], "f": 0, "t": 48, "d": [127,355], "a": 1 }, + { "px": [0,368], "src": [32,32], "f": 0, "t": 48, "d": [127,368], "a": 1 }, + { "px": [16,368], "src": [32,32], "f": 0, "t": 48, "d": [127,369], "a": 1 }, + { "px": [32,368], "src": [32,32], "f": 0, "t": 48, "d": [127,370], "a": 1 }, + { "px": [48,368], "src": [32,32], "f": 0, "t": 48, "d": [127,371], "a": 1 }, + { "px": [16,384], "src": [32,32], "f": 0, "t": 48, "d": [127,385], "a": 1 }, + { "px": [48,384], "src": [32,32], "f": 0, "t": 48, "d": [127,387], "a": 1 }, + { "px": [0,400], "src": [32,32], "f": 0, "t": 48, "d": [127,400], "a": 1 }, + { "px": [0,416], "src": [32,32], "f": 0, "t": 48, "d": [127,416], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [127,432], "a": 1 }, + { "px": [0,448], "src": [32,32], "f": 0, "t": 48, "d": [127,448], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [127,464], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,496], "a": 1 }, + { "px": [0,512], "src": [32,32], "f": 0, "t": 48, "d": [127,512], "a": 1 }, + { "px": [0,528], "src": [32,32], "f": 0, "t": 48, "d": [127,528], "a": 1 }, + { "px": [0,544], "src": [32,32], "f": 0, "t": 48, "d": [127,544], "a": 1 }, + { "px": [192,560], "src": [32,32], "f": 0, "t": 48, "d": [127,572], "a": 1 }, + { "px": [208,560], "src": [32,32], "f": 0, "t": 48, "d": [127,573], "a": 1 }, + { "px": [224,560], "src": [32,32], "f": 0, "t": 48, "d": [127,574], "a": 1 }, + { "px": [192,576], "src": [32,32], "f": 0, "t": 48, "d": [127,588], "a": 1 }, + { "px": [208,576], "src": [32,32], "f": 0, "t": 48, "d": [127,589], "a": 1 }, + { "px": [224,576], "src": [32,32], "f": 0, "t": 48, "d": [127,590], "a": 1 }, + { "px": [240,576], "src": [32,32], "f": 0, "t": 48, "d": [127,591], "a": 1 }, + { "px": [224,736], "src": [32,32], "f": 0, "t": 48, "d": [127,750], "a": 1 }, + { "px": [240,736], "src": [32,32], "f": 0, "t": 48, "d": [127,751], "a": 1 }, + { "px": [224,752], "src": [32,32], "f": 0, "t": 48, "d": [127,766], "a": 1 }, + { "px": [0,320], "src": [96,96], "f": 0, "t": 144, "d": [126,320], "a": 1 }, + { "px": [48,336], "src": [64,96], "f": 0, "t": 142, "d": [126,339], "a": 1 }, + { "px": [0,384], "src": [64,96], "f": 0, "t": 142, "d": [126,384], "a": 1 }, + { "px": [32,384], "src": [96,96], "f": 0, "t": 144, "d": [126,386], "a": 1 }, + { "px": [0,480], "src": [96,96], "f": 0, "t": 144, "d": [126,480], "a": 1 }, + { "px": [240,560], "src": [64,96], "f": 0, "t": 142, "d": [126,575], "a": 1 }, + { "px": [240,752], "src": [64,96], "f": 0, "t": 142, "d": [126,767], "a": 1 }, + { "px": [0,32], "src": [256,160], "f": 0, "t": 246, "d": [12,32], "a": 1 }, + { "px": [16,32], "src": [256,160], "f": 0, "t": 246, "d": [12,33], "a": 1 }, + { "px": [32,32], "src": [256,160], "f": 0, "t": 246, "d": [12,34], "a": 1 }, + { "px": [48,32], "src": [256,160], "f": 0, "t": 246, "d": [12,35], "a": 1 }, + { "px": [64,32], "src": [256,160], "f": 0, "t": 246, "d": [12,36], "a": 1 }, + { "px": [80,32], "src": [256,160], "f": 0, "t": 246, "d": [12,37], "a": 1 }, + { "px": [96,32], "src": [256,160], "f": 0, "t": 246, "d": [12,38], "a": 1 }, + { "px": [112,32], "src": [256,160], "f": 0, "t": 246, "d": [12,39], "a": 1 }, + { "px": [128,32], "src": [256,160], "f": 0, "t": 246, "d": [12,40], "a": 1 }, + { "px": [144,32], "src": [256,160], "f": 0, "t": 246, "d": [12,41], "a": 1 }, + { "px": [160,32], "src": [256,160], "f": 0, "t": 246, "d": [12,42], "a": 1 }, + { "px": [176,32], "src": [256,160], "f": 0, "t": 246, "d": [12,43], "a": 1 }, + { "px": [192,32], "src": [256,160], "f": 0, "t": 246, "d": [12,44], "a": 1 }, + { "px": [208,32], "src": [256,160], "f": 0, "t": 246, "d": [12,45], "a": 1 }, + { "px": [48,96], "src": [256,160], "f": 0, "t": 246, "d": [12,99], "a": 1 }, + { "px": [64,96], "src": [256,160], "f": 0, "t": 246, "d": [12,100], "a": 1 }, + { "px": [80,96], "src": [256,160], "f": 0, "t": 246, "d": [12,101], "a": 1 }, + { "px": [96,96], "src": [256,160], "f": 0, "t": 246, "d": [12,102], "a": 1 }, + { "px": [112,96], "src": [256,160], "f": 0, "t": 246, "d": [12,103], "a": 1 }, + { "px": [128,96], "src": [256,160], "f": 0, "t": 246, "d": [12,104], "a": 1 }, + { "px": [208,96], "src": [256,160], "f": 0, "t": 246, "d": [12,109], "a": 1 }, + { "px": [96,208], "src": [256,160], "f": 0, "t": 246, "d": [12,214], "a": 1 }, + { "px": [128,208], "src": [256,160], "f": 0, "t": 246, "d": [12,216], "a": 1 }, + { "px": [160,208], "src": [256,160], "f": 0, "t": 246, "d": [12,218], "a": 1 }, + { "px": [192,368], "src": [256,160], "f": 0, "t": 246, "d": [12,380], "a": 1 }, + { "px": [208,368], "src": [256,160], "f": 0, "t": 246, "d": [12,381], "a": 1 }, + { "px": [32,592], "src": [256,160], "f": 0, "t": 246, "d": [12,594], "a": 1 }, + { "px": [176,624], "src": [256,160], "f": 0, "t": 246, "d": [12,635], "a": 1 }, + { "px": [208,624], "src": [256,160], "f": 0, "t": 246, "d": [12,637], "a": 1 }, + { "px": [64,80], "src": [256,96], "f": 0, "t": 154, "d": [9,84], "a": 1 }, + { "px": [80,80], "src": [256,96], "f": 0, "t": 154, "d": [9,85], "a": 1 }, + { "px": [96,80], "src": [256,96], "f": 0, "t": 154, "d": [9,86], "a": 1 }, + { "px": [112,80], "src": [256,96], "f": 0, "t": 154, "d": [9,87], "a": 1 }, + { "px": [128,80], "src": [256,96], "f": 0, "t": 154, "d": [9,88], "a": 1 }, + { "px": [144,80], "src": [256,96], "f": 0, "t": 154, "d": [9,89], "a": 1 }, + { "px": [144,192], "src": [256,96], "f": 0, "t": 154, "d": [9,201], "a": 1 }, + { "px": [160,192], "src": [256,96], "f": 0, "t": 154, "d": [9,202], "a": 1 }, + { "px": [176,192], "src": [256,96], "f": 0, "t": 154, "d": [9,203], "a": 1 }, + { "px": [192,192], "src": [256,96], "f": 0, "t": 154, "d": [9,204], "a": 1 }, + { "px": [80,272], "src": [256,96], "f": 0, "t": 154, "d": [9,277], "a": 1 }, + { "px": [96,272], "src": [256,96], "f": 0, "t": 154, "d": [9,278], "a": 1 }, + { "px": [112,272], "src": [256,96], "f": 0, "t": 154, "d": [9,279], "a": 1 }, + { "px": [192,352], "src": [256,96], "f": 0, "t": 154, "d": [9,364], "a": 1 }, + { "px": [112,432], "src": [256,96], "f": 0, "t": 154, "d": [9,439], "a": 1 }, + { "px": [128,432], "src": [256,96], "f": 0, "t": 154, "d": [9,440], "a": 1 }, + { "px": [128,512], "src": [256,96], "f": 0, "t": 154, "d": [9,520], "a": 1 }, + { "px": [176,512], "src": [256,96], "f": 0, "t": 154, "d": [9,523], "a": 1 }, + { "px": [192,512], "src": [256,96], "f": 0, "t": 154, "d": [9,524], "a": 1 }, + { "px": [208,512], "src": [256,96], "f": 0, "t": 154, "d": [9,525], "a": 1 }, + { "px": [64,592], "src": [256,96], "f": 0, "t": 154, "d": [9,596], "a": 1 }, + { "px": [96,640], "src": [256,96], "f": 0, "t": 154, "d": [9,646], "a": 1 }, + { "px": [112,640], "src": [256,96], "f": 0, "t": 154, "d": [9,647], "a": 1 }, + { "px": [128,640], "src": [256,96], "f": 0, "t": 154, "d": [9,648], "a": 1 }, + { "px": [192,688], "src": [256,96], "f": 0, "t": 154, "d": [9,700], "a": 1 }, + { "px": [208,688], "src": [256,96], "f": 0, "t": 154, "d": [9,701], "a": 1 }, + { "px": [32,720], "src": [256,96], "f": 0, "t": 154, "d": [9,722], "a": 1 }, + { "px": [48,720], "src": [256,96], "f": 0, "t": 154, "d": [9,723], "a": 1 }, + { "px": [112,720], "src": [256,96], "f": 0, "t": 154, "d": [9,727], "a": 1 }, + { "px": [128,720], "src": [256,96], "f": 0, "t": 154, "d": [9,728], "a": 1 }, + { "px": [144,720], "src": [256,96], "f": 0, "t": 154, "d": [9,729], "a": 1 }, + { "px": [160,720], "src": [256,96], "f": 0, "t": 154, "d": [9,730], "a": 1 }, + { "px": [224,48], "src": [224,128], "f": 0, "t": 198, "d": [10,62], "a": 1 }, + { "px": [224,64], "src": [224,128], "f": 0, "t": 198, "d": [10,78], "a": 1 }, + { "px": [32,112], "src": [224,128], "f": 1, "t": 198, "d": [10,114], "a": 1 }, + { "px": [224,112], "src": [224,128], "f": 0, "t": 198, "d": [10,126], "a": 1 }, + { "px": [32,128], "src": [224,128], "f": 1, "t": 198, "d": [10,130], "a": 1 }, + { "px": [224,128], "src": [224,128], "f": 0, "t": 198, "d": [10,142], "a": 1 }, + { "px": [32,144], "src": [224,128], "f": 1, "t": 198, "d": [10,146], "a": 1 }, + { "px": [224,144], "src": [224,128], "f": 0, "t": 198, "d": [10,158], "a": 1 }, + { "px": [32,160], "src": [224,128], "f": 1, "t": 198, "d": [10,162], "a": 1 }, + { "px": [224,160], "src": [224,128], "f": 0, "t": 198, "d": [10,174], "a": 1 }, + { "px": [32,176], "src": [224,128], "f": 1, "t": 198, "d": [10,178], "a": 1 }, + { "px": [224,176], "src": [224,128], "f": 0, "t": 198, "d": [10,190], "a": 1 }, + { "px": [32,192], "src": [224,128], "f": 1, "t": 198, "d": [10,194], "a": 1 }, + { "px": [32,208], "src": [224,128], "f": 1, "t": 198, "d": [10,210], "a": 1 }, + { "px": [32,224], "src": [224,128], "f": 1, "t": 198, "d": [10,226], "a": 1 }, + { "px": [208,224], "src": [224,128], "f": 0, "t": 198, "d": [10,237], "a": 1 }, + { "px": [32,240], "src": [224,128], "f": 1, "t": 198, "d": [10,242], "a": 1 }, + { "px": [208,240], "src": [224,128], "f": 0, "t": 198, "d": [10,253], "a": 1 }, + { "px": [32,256], "src": [224,128], "f": 1, "t": 198, "d": [10,258], "a": 1 }, + { "px": [208,256], "src": [224,128], "f": 0, "t": 198, "d": [10,269], "a": 1 }, + { "px": [208,272], "src": [224,128], "f": 0, "t": 198, "d": [10,285], "a": 1 }, + { "px": [208,288], "src": [224,128], "f": 0, "t": 198, "d": [10,301], "a": 1 }, + { "px": [96,304], "src": [224,128], "f": 1, "t": 198, "d": [10,310], "a": 1 }, + { "px": [208,304], "src": [224,128], "f": 0, "t": 198, "d": [10,317], "a": 1 }, + { "px": [96,320], "src": [224,128], "f": 1, "t": 198, "d": [10,326], "a": 1 }, + { "px": [208,320], "src": [224,128], "f": 0, "t": 198, "d": [10,333], "a": 1 }, + { "px": [96,336], "src": [224,128], "f": 1, "t": 198, "d": [10,342], "a": 1 }, + { "px": [208,336], "src": [224,128], "f": 0, "t": 198, "d": [10,349], "a": 1 }, + { "px": [96,352], "src": [224,128], "f": 1, "t": 198, "d": [10,358], "a": 1 }, + { "px": [96,368], "src": [224,128], "f": 1, "t": 198, "d": [10,374], "a": 1 }, + { "px": [96,384], "src": [224,128], "f": 1, "t": 198, "d": [10,390], "a": 1 }, + { "px": [224,384], "src": [224,128], "f": 0, "t": 198, "d": [10,398], "a": 1 }, + { "px": [96,400], "src": [224,128], "f": 1, "t": 198, "d": [10,406], "a": 1 }, + { "px": [224,400], "src": [224,128], "f": 0, "t": 198, "d": [10,414], "a": 1 }, + { "px": [96,416], "src": [224,128], "f": 1, "t": 198, "d": [10,422], "a": 1 }, + { "px": [224,416], "src": [224,128], "f": 0, "t": 198, "d": [10,430], "a": 1 }, + { "px": [224,432], "src": [224,128], "f": 0, "t": 198, "d": [10,446], "a": 1 }, + { "px": [48,448], "src": [224,128], "f": 1, "t": 198, "d": [10,451], "a": 1 }, + { "px": [224,448], "src": [224,128], "f": 0, "t": 198, "d": [10,462], "a": 1 }, + { "px": [48,464], "src": [224,128], "f": 1, "t": 198, "d": [10,467], "a": 1 }, + { "px": [224,464], "src": [224,128], "f": 0, "t": 198, "d": [10,478], "a": 1 }, + { "px": [48,480], "src": [224,128], "f": 1, "t": 198, "d": [10,483], "a": 1 }, + { "px": [224,480], "src": [224,128], "f": 0, "t": 198, "d": [10,494], "a": 1 }, + { "px": [48,496], "src": [224,128], "f": 1, "t": 198, "d": [10,499], "a": 1 }, + { "px": [224,496], "src": [224,128], "f": 0, "t": 198, "d": [10,510], "a": 1 }, + { "px": [48,512], "src": [224,128], "f": 1, "t": 198, "d": [10,515], "a": 1 }, + { "px": [48,528], "src": [224,128], "f": 1, "t": 198, "d": [10,531], "a": 1 }, + { "px": [144,528], "src": [224,128], "f": 0, "t": 198, "d": [10,537], "a": 1 }, + { "px": [48,544], "src": [224,128], "f": 1, "t": 198, "d": [10,547], "a": 1 }, + { "px": [144,544], "src": [224,128], "f": 0, "t": 198, "d": [10,553], "a": 1 }, + { "px": [48,560], "src": [224,128], "f": 1, "t": 198, "d": [10,563], "a": 1 }, + { "px": [144,560], "src": [224,128], "f": 0, "t": 198, "d": [10,569], "a": 1 }, + { "px": [48,576], "src": [224,128], "f": 1, "t": 198, "d": [10,579], "a": 1 }, + { "px": [144,576], "src": [224,128], "f": 0, "t": 198, "d": [10,585], "a": 1 }, + { "px": [144,592], "src": [224,128], "f": 0, "t": 198, "d": [10,601], "a": 1 }, + { "px": [16,608], "src": [224,128], "f": 1, "t": 198, "d": [10,609], "a": 1 }, + { "px": [144,608], "src": [224,128], "f": 0, "t": 198, "d": [10,617], "a": 1 }, + { "px": [16,624], "src": [224,128], "f": 1, "t": 198, "d": [10,625], "a": 1 }, + { "px": [144,624], "src": [224,128], "f": 0, "t": 198, "d": [10,633], "a": 1 }, + { "px": [16,640], "src": [224,128], "f": 1, "t": 198, "d": [10,641], "a": 1 }, + { "px": [224,640], "src": [224,128], "f": 0, "t": 198, "d": [10,654], "a": 1 }, + { "px": [16,656], "src": [224,128], "f": 1, "t": 198, "d": [10,657], "a": 1 }, + { "px": [224,656], "src": [224,128], "f": 0, "t": 198, "d": [10,670], "a": 1 }, + { "px": [16,672], "src": [224,128], "f": 1, "t": 198, "d": [10,673], "a": 1 }, + { "px": [224,672], "src": [224,128], "f": 0, "t": 198, "d": [10,686], "a": 1 }, + { "px": [16,688], "src": [224,128], "f": 1, "t": 198, "d": [10,689], "a": 1 }, + { "px": [16,704], "src": [224,128], "f": 1, "t": 198, "d": [10,705], "a": 1 }, + { "px": [176,704], "src": [224,128], "f": 0, "t": 198, "d": [10,715], "a": 1 }, + { "px": [64,736], "src": [224,128], "f": 1, "t": 198, "d": [10,740], "a": 1 }, + { "px": [96,736], "src": [224,128], "f": 0, "t": 198, "d": [10,742], "a": 1 }, + { "px": [64,752], "src": [224,128], "f": 1, "t": 198, "d": [10,756], "a": 1 }, + { "px": [96,752], "src": [224,128], "f": 0, "t": 198, "d": [10,758], "a": 1 }, + { "px": [160,80], "src": [224,96], "f": 1, "t": 152, "d": [11,90], "a": 1 }, + { "px": [192,96], "src": [224,96], "f": 2, "t": 152, "d": [11,108], "a": 1 }, + { "px": [80,208], "src": [224,96], "f": 2, "t": 152, "d": [11,213], "a": 1 }, + { "px": [128,272], "src": [224,96], "f": 1, "t": 152, "d": [11,280], "a": 1 }, + { "px": [176,352], "src": [224,96], "f": 0, "t": 152, "d": [11,363], "a": 1 }, + { "px": [176,368], "src": [224,96], "f": 2, "t": 152, "d": [11,379], "a": 1 }, + { "px": [144,432], "src": [224,96], "f": 1, "t": 152, "d": [11,441], "a": 1 }, + { "px": [112,512], "src": [224,96], "f": 0, "t": 152, "d": [11,519], "a": 1 }, + { "px": [80,592], "src": [224,96], "f": 1, "t": 152, "d": [11,597], "a": 1 }, + { "px": [80,640], "src": [224,96], "f": 0, "t": 152, "d": [11,645], "a": 1 }, + { "px": [160,640], "src": [224,96], "f": 3, "t": 152, "d": [11,650], "a": 1 }, + { "px": [176,688], "src": [224,96], "f": 0, "t": 152, "d": [11,699], "a": 1 }, + { "px": [64,720], "src": [224,96], "f": 1, "t": 152, "d": [11,724], "a": 1 }, + { "px": [96,720], "src": [224,96], "f": 0, "t": 152, "d": [11,726], "a": 1 }, + { "px": [224,32], "src": [224,96], "f": 1, "t": 152, "d": [14,46], "a": 1 }, + { "px": [224,80], "src": [224,96], "f": 3, "t": 152, "d": [14,94], "a": 1 }, + { "px": [32,96], "src": [224,96], "f": 0, "t": 152, "d": [14,98], "a": 1 }, + { "px": [224,96], "src": [224,96], "f": 1, "t": 152, "d": [14,110], "a": 1 }, + { "px": [224,192], "src": [224,96], "f": 3, "t": 152, "d": [14,206], "a": 1 }, + { "px": [208,208], "src": [224,96], "f": 1, "t": 152, "d": [14,221], "a": 1 }, + { "px": [32,272], "src": [224,96], "f": 2, "t": 152, "d": [14,274], "a": 1 }, + { "px": [96,288], "src": [224,96], "f": 0, "t": 152, "d": [14,294], "a": 1 }, + { "px": [208,352], "src": [224,96], "f": 3, "t": 152, "d": [14,365], "a": 1 }, + { "px": [224,368], "src": [224,96], "f": 1, "t": 152, "d": [14,382], "a": 1 }, + { "px": [48,432], "src": [224,96], "f": 0, "t": 152, "d": [14,435], "a": 1 }, + { "px": [96,432], "src": [224,96], "f": 2, "t": 152, "d": [14,438], "a": 1 }, + { "px": [224,512], "src": [224,96], "f": 3, "t": 152, "d": [14,526], "a": 1 }, + { "px": [16,592], "src": [224,96], "f": 0, "t": 152, "d": [14,593], "a": 1 }, + { "px": [160,624], "src": [224,96], "f": 0, "t": 152, "d": [14,634], "a": 1 }, + { "px": [224,624], "src": [224,96], "f": 1, "t": 152, "d": [14,638], "a": 1 }, + { "px": [144,640], "src": [224,96], "f": 3, "t": 152, "d": [14,649], "a": 1 }, + { "px": [224,688], "src": [224,96], "f": 3, "t": 152, "d": [14,702], "a": 1 }, + { "px": [16,720], "src": [224,96], "f": 2, "t": 152, "d": [14,721], "a": 1 }, + { "px": [176,720], "src": [224,96], "f": 3, "t": 152, "d": [14,731], "a": 1 }, + { "px": [144,96], "src": [192,192], "f": 0, "t": 288, "d": [78,105], "a": 1 }, + { "px": [160,96], "src": [192,192], "f": 0, "t": 288, "d": [78,106], "a": 1 }, + { "px": [112,208], "src": [192,192], "f": 0, "t": 288, "d": [78,215], "a": 1 }, + { "px": [144,208], "src": [160,192], "f": 0, "t": 286, "d": [78,217], "a": 1 }, + { "px": [176,208], "src": [160,192], "f": 0, "t": 286, "d": [78,219], "a": 1 }, + { "px": [192,208], "src": [192,192], "f": 0, "t": 288, "d": [78,220], "a": 1 }, + { "px": [112,288], "src": [192,192], "f": 0, "t": 288, "d": [78,295], "a": 1 }, + { "px": [128,288], "src": [160,192], "f": 0, "t": 286, "d": [78,296], "a": 1 }, + { "px": [64,432], "src": [160,192], "f": 0, "t": 286, "d": [78,436], "a": 1 }, + { "px": [80,432], "src": [160,192], "f": 0, "t": 286, "d": [78,437], "a": 1 }, + { "px": [48,592], "src": [192,192], "f": 0, "t": 288, "d": [78,595], "a": 1 }, + { "px": [192,624], "src": [192,192], "f": 0, "t": 288, "d": [78,636], "a": 1 }, + { "px": [0,80], "src": [32,0], "f": 0, "t": 2, "d": [80,80], "a": 1 }, + { "px": [16,80], "src": [32,0], "f": 0, "t": 2, "d": [80,81], "a": 1 }, + { "px": [32,80], "src": [32,0], "f": 0, "t": 2, "d": [80,82], "a": 1 }, + { "px": [48,80], "src": [32,0], "f": 0, "t": 2, "d": [80,83], "a": 1 }, + { "px": [192,80], "src": [32,0], "f": 0, "t": 2, "d": [80,92], "a": 1 }, + { "px": [208,80], "src": [32,0], "f": 0, "t": 2, "d": [80,93], "a": 1 }, + { "px": [80,192], "src": [32,0], "f": 0, "t": 2, "d": [80,197], "a": 1 }, + { "px": [96,192], "src": [32,0], "f": 0, "t": 2, "d": [80,198], "a": 1 }, + { "px": [112,192], "src": [32,0], "f": 0, "t": 2, "d": [80,199], "a": 1 }, + { "px": [128,192], "src": [32,0], "f": 0, "t": 2, "d": [80,200], "a": 1 }, + { "px": [208,192], "src": [32,0], "f": 0, "t": 2, "d": [80,205], "a": 1 }, + { "px": [48,272], "src": [32,0], "f": 0, "t": 2, "d": [80,275], "a": 1 }, + { "px": [64,272], "src": [32,0], "f": 0, "t": 2, "d": [80,276], "a": 1 }, + { "px": [144,512], "src": [32,0], "f": 0, "t": 2, "d": [80,521], "a": 1 }, + { "px": [160,512], "src": [32,0], "f": 0, "t": 2, "d": [80,522], "a": 1 }, + { "px": [16,64], "src": [32,96], "f": 0, "t": 140, "d": [110,65], "a": 1 }, + { "px": [32,64], "src": [32,96], "f": 0, "t": 140, "d": [110,66], "a": 1 }, + { "px": [80,64], "src": [0,96], "f": 0, "t": 138, "d": [110,69], "a": 1 }, + { "px": [112,64], "src": [0,96], "f": 0, "t": 138, "d": [110,71], "a": 1 }, + { "px": [128,64], "src": [0,96], "f": 0, "t": 138, "d": [110,72], "a": 1 }, + { "px": [192,64], "src": [0,96], "f": 0, "t": 138, "d": [110,76], "a": 1 }, + { "px": [80,176], "src": [0,96], "f": 0, "t": 138, "d": [110,181], "a": 1 }, + { "px": [112,176], "src": [0,96], "f": 0, "t": 138, "d": [110,183], "a": 1 }, + { "px": [128,176], "src": [0,96], "f": 0, "t": 138, "d": [110,184], "a": 1 }, + { "px": [144,176], "src": [0,96], "f": 0, "t": 138, "d": [110,185], "a": 1 }, + { "px": [160,176], "src": [32,96], "f": 0, "t": 140, "d": [110,186], "a": 1 }, + { "px": [176,176], "src": [0,96], "f": 0, "t": 138, "d": [110,187], "a": 1 }, + { "px": [208,176], "src": [32,96], "f": 0, "t": 140, "d": [110,189], "a": 1 }, + { "px": [48,256], "src": [32,96], "f": 0, "t": 140, "d": [110,259], "a": 1 }, + { "px": [64,256], "src": [32,96], "f": 0, "t": 140, "d": [110,260], "a": 1 }, + { "px": [192,336], "src": [0,96], "f": 0, "t": 138, "d": [110,348], "a": 1 }, + { "px": [144,496], "src": [32,96], "f": 0, "t": 140, "d": [110,505], "a": 1 }, + { "px": [160,496], "src": [32,96], "f": 0, "t": 140, "d": [110,506], "a": 1 }, + { "px": [176,496], "src": [0,96], "f": 0, "t": 138, "d": [110,507], "a": 1 }, + { "px": [208,496], "src": [0,96], "f": 0, "t": 138, "d": [110,509], "a": 1 }, + { "px": [208,672], "src": [32,96], "f": 0, "t": 140, "d": [110,685], "a": 1 } + ], + "seed": 9827811, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a371aec8-66b0-11ec-9cd7-9f44147089d0", + "levelId": 63, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [0,48], "src": [320,272], "f": 0, "t": 411, "d": [108,48], "a": 1 }, + { "px": [16,48], "src": [320,272], "f": 0, "t": 411, "d": [108,49], "a": 1 }, + { "px": [32,48], "src": [320,272], "f": 0, "t": 411, "d": [108,50], "a": 1 }, + { "px": [48,48], "src": [320,272], "f": 0, "t": 411, "d": [108,51], "a": 1 }, + { "px": [64,48], "src": [320,272], "f": 0, "t": 411, "d": [108,52], "a": 1 }, + { "px": [80,48], "src": [320,272], "f": 0, "t": 411, "d": [108,53], "a": 1 }, + { "px": [96,48], "src": [320,272], "f": 0, "t": 411, "d": [108,54], "a": 1 }, + { "px": [112,48], "src": [320,272], "f": 0, "t": 411, "d": [108,55], "a": 1 }, + { "px": [128,48], "src": [320,272], "f": 0, "t": 411, "d": [108,56], "a": 1 }, + { "px": [144,48], "src": [320,272], "f": 0, "t": 411, "d": [108,57], "a": 1 }, + { "px": [160,48], "src": [320,272], "f": 0, "t": 411, "d": [108,58], "a": 1 }, + { "px": [176,48], "src": [320,272], "f": 0, "t": 411, "d": [108,59], "a": 1 }, + { "px": [192,48], "src": [320,272], "f": 0, "t": 411, "d": [108,60], "a": 1 }, + { "px": [0,64], "src": [320,272], "f": 0, "t": 411, "d": [108,64], "a": 1 }, + { "px": [16,64], "src": [320,272], "f": 0, "t": 411, "d": [108,65], "a": 1 }, + { "px": [32,64], "src": [320,272], "f": 0, "t": 411, "d": [108,66], "a": 1 }, + { "px": [48,64], "src": [320,272], "f": 0, "t": 411, "d": [108,67], "a": 1 }, + { "px": [64,64], "src": [320,272], "f": 0, "t": 411, "d": [108,68], "a": 1 }, + { "px": [80,64], "src": [320,272], "f": 0, "t": 411, "d": [108,69], "a": 1 }, + { "px": [96,64], "src": [320,272], "f": 0, "t": 411, "d": [108,70], "a": 1 }, + { "px": [112,64], "src": [320,272], "f": 0, "t": 411, "d": [108,71], "a": 1 }, + { "px": [128,64], "src": [320,272], "f": 0, "t": 411, "d": [108,72], "a": 1 }, + { "px": [144,64], "src": [320,272], "f": 0, "t": 411, "d": [108,73], "a": 1 }, + { "px": [160,64], "src": [320,272], "f": 0, "t": 411, "d": [108,74], "a": 1 }, + { "px": [176,64], "src": [320,272], "f": 0, "t": 411, "d": [108,75], "a": 1 }, + { "px": [192,64], "src": [320,272], "f": 0, "t": 411, "d": [108,76], "a": 1 }, + { "px": [64,112], "src": [320,272], "f": 0, "t": 411, "d": [108,116], "a": 1 }, + { "px": [80,112], "src": [320,272], "f": 0, "t": 411, "d": [108,117], "a": 1 }, + { "px": [112,112], "src": [320,272], "f": 0, "t": 411, "d": [108,119], "a": 1 }, + { "px": [128,112], "src": [320,272], "f": 0, "t": 411, "d": [108,120], "a": 1 }, + { "px": [144,112], "src": [320,272], "f": 0, "t": 411, "d": [108,121], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [108,123], "a": 1 }, + { "px": [64,128], "src": [320,272], "f": 0, "t": 411, "d": [108,132], "a": 1 }, + { "px": [80,128], "src": [320,272], "f": 0, "t": 411, "d": [108,133], "a": 1 }, + { "px": [112,128], "src": [320,272], "f": 0, "t": 411, "d": [108,135], "a": 1 }, + { "px": [128,128], "src": [320,272], "f": 0, "t": 411, "d": [108,136], "a": 1 }, + { "px": [144,128], "src": [320,272], "f": 0, "t": 411, "d": [108,137], "a": 1 }, + { "px": [160,128], "src": [320,272], "f": 0, "t": 411, "d": [108,138], "a": 1 }, + { "px": [176,128], "src": [320,272], "f": 0, "t": 411, "d": [108,139], "a": 1 }, + { "px": [192,128], "src": [320,272], "f": 0, "t": 411, "d": [108,140], "a": 1 }, + { "px": [64,144], "src": [320,272], "f": 0, "t": 411, "d": [108,148], "a": 1 }, + { "px": [80,144], "src": [320,272], "f": 0, "t": 411, "d": [108,149], "a": 1 }, + { "px": [96,144], "src": [320,272], "f": 0, "t": 411, "d": [108,150], "a": 1 }, + { "px": [112,144], "src": [320,272], "f": 0, "t": 411, "d": [108,151], "a": 1 }, + { "px": [128,144], "src": [320,272], "f": 0, "t": 411, "d": [108,152], "a": 1 }, + { "px": [144,144], "src": [320,272], "f": 0, "t": 411, "d": [108,153], "a": 1 }, + { "px": [160,144], "src": [320,272], "f": 0, "t": 411, "d": [108,154], "a": 1 }, + { "px": [176,144], "src": [320,272], "f": 0, "t": 411, "d": [108,155], "a": 1 }, + { "px": [192,144], "src": [320,272], "f": 0, "t": 411, "d": [108,156], "a": 1 }, + { "px": [64,160], "src": [320,272], "f": 0, "t": 411, "d": [108,164], "a": 1 }, + { "px": [96,160], "src": [320,272], "f": 0, "t": 411, "d": [108,166], "a": 1 }, + { "px": [112,160], "src": [320,272], "f": 0, "t": 411, "d": [108,167], "a": 1 }, + { "px": [144,160], "src": [320,272], "f": 0, "t": 411, "d": [108,169], "a": 1 }, + { "px": [160,160], "src": [320,272], "f": 0, "t": 411, "d": [108,170], "a": 1 }, + { "px": [176,160], "src": [320,272], "f": 0, "t": 411, "d": [108,171], "a": 1 }, + { "px": [192,160], "src": [320,272], "f": 0, "t": 411, "d": [108,172], "a": 1 }, + { "px": [64,176], "src": [320,272], "f": 0, "t": 411, "d": [108,180], "a": 1 }, + { "px": [80,176], "src": [320,272], "f": 0, "t": 411, "d": [108,181], "a": 1 }, + { "px": [96,176], "src": [320,272], "f": 0, "t": 411, "d": [108,182], "a": 1 }, + { "px": [112,176], "src": [320,272], "f": 0, "t": 411, "d": [108,183], "a": 1 }, + { "px": [128,176], "src": [320,272], "f": 0, "t": 411, "d": [108,184], "a": 1 }, + { "px": [144,176], "src": [320,272], "f": 0, "t": 411, "d": [108,185], "a": 1 }, + { "px": [160,176], "src": [320,272], "f": 0, "t": 411, "d": [108,186], "a": 1 }, + { "px": [176,176], "src": [320,272], "f": 0, "t": 411, "d": [108,187], "a": 1 }, + { "px": [192,176], "src": [320,272], "f": 0, "t": 411, "d": [108,188], "a": 1 }, + { "px": [64,224], "src": [320,272], "f": 0, "t": 411, "d": [108,228], "a": 1 }, + { "px": [80,224], "src": [320,272], "f": 0, "t": 411, "d": [108,229], "a": 1 }, + { "px": [96,224], "src": [320,272], "f": 0, "t": 411, "d": [108,230], "a": 1 }, + { "px": [112,224], "src": [320,272], "f": 0, "t": 411, "d": [108,231], "a": 1 }, + { "px": [128,224], "src": [320,272], "f": 0, "t": 411, "d": [108,232], "a": 1 }, + { "px": [144,224], "src": [320,272], "f": 0, "t": 411, "d": [108,233], "a": 1 }, + { "px": [176,224], "src": [320,272], "f": 0, "t": 411, "d": [108,235], "a": 1 }, + { "px": [64,240], "src": [320,272], "f": 0, "t": 411, "d": [108,244], "a": 1 }, + { "px": [80,240], "src": [320,272], "f": 0, "t": 411, "d": [108,245], "a": 1 }, + { "px": [96,240], "src": [320,272], "f": 0, "t": 411, "d": [108,246], "a": 1 }, + { "px": [112,240], "src": [320,272], "f": 0, "t": 411, "d": [108,247], "a": 1 }, + { "px": [128,240], "src": [320,272], "f": 0, "t": 411, "d": [108,248], "a": 1 }, + { "px": [144,240], "src": [320,272], "f": 0, "t": 411, "d": [108,249], "a": 1 }, + { "px": [160,240], "src": [320,272], "f": 0, "t": 411, "d": [108,250], "a": 1 }, + { "px": [176,240], "src": [320,272], "f": 0, "t": 411, "d": [108,251], "a": 1 }, + { "px": [64,256], "src": [320,272], "f": 0, "t": 411, "d": [108,260], "a": 1 }, + { "px": [80,256], "src": [320,272], "f": 0, "t": 411, "d": [108,261], "a": 1 }, + { "px": [96,256], "src": [320,272], "f": 0, "t": 411, "d": [108,262], "a": 1 }, + { "px": [112,256], "src": [320,272], "f": 0, "t": 411, "d": [108,263], "a": 1 }, + { "px": [128,256], "src": [320,272], "f": 0, "t": 411, "d": [108,264], "a": 1 }, + { "px": [144,256], "src": [320,272], "f": 0, "t": 411, "d": [108,265], "a": 1 }, + { "px": [160,256], "src": [320,272], "f": 0, "t": 411, "d": [108,266], "a": 1 }, + { "px": [176,256], "src": [320,272], "f": 0, "t": 411, "d": [108,267], "a": 1 }, + { "px": [160,272], "src": [320,272], "f": 0, "t": 411, "d": [108,282], "a": 1 }, + { "px": [176,272], "src": [320,272], "f": 0, "t": 411, "d": [108,283], "a": 1 }, + { "px": [160,288], "src": [320,272], "f": 0, "t": 411, "d": [108,298], "a": 1 }, + { "px": [128,304], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [144,304], "src": [320,272], "f": 0, "t": 411, "d": [108,313], "a": 1 }, + { "px": [160,304], "src": [320,272], "f": 0, "t": 411, "d": [108,314], "a": 1 }, + { "px": [176,304], "src": [320,272], "f": 0, "t": 411, "d": [108,315], "a": 1 }, + { "px": [128,320], "src": [320,272], "f": 0, "t": 411, "d": [108,328], "a": 1 }, + { "px": [160,320], "src": [320,272], "f": 0, "t": 411, "d": [108,330], "a": 1 }, + { "px": [176,320], "src": [320,272], "f": 0, "t": 411, "d": [108,331], "a": 1 }, + { "px": [128,336], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [144,336], "src": [320,272], "f": 0, "t": 411, "d": [108,345], "a": 1 }, + { "px": [160,336], "src": [320,272], "f": 0, "t": 411, "d": [108,346], "a": 1 }, + { "px": [176,336], "src": [320,272], "f": 0, "t": 411, "d": [108,347], "a": 1 }, + { "px": [128,352], "src": [320,272], "f": 0, "t": 411, "d": [108,360], "a": 1 }, + { "px": [144,352], "src": [320,272], "f": 0, "t": 411, "d": [108,361], "a": 1 }, + { "px": [128,368], "src": [320,272], "f": 0, "t": 411, "d": [108,376], "a": 1 }, + { "px": [144,368], "src": [320,272], "f": 0, "t": 411, "d": [108,377], "a": 1 }, + { "px": [128,384], "src": [320,272], "f": 0, "t": 411, "d": [108,392], "a": 1 }, + { "px": [160,384], "src": [320,272], "f": 0, "t": 411, "d": [108,394], "a": 1 }, + { "px": [176,384], "src": [320,272], "f": 0, "t": 411, "d": [108,395], "a": 1 }, + { "px": [192,384], "src": [320,272], "f": 0, "t": 411, "d": [108,396], "a": 1 }, + { "px": [128,400], "src": [320,272], "f": 0, "t": 411, "d": [108,408], "a": 1 }, + { "px": [144,400], "src": [320,272], "f": 0, "t": 411, "d": [108,409], "a": 1 }, + { "px": [160,400], "src": [320,272], "f": 0, "t": 411, "d": [108,410], "a": 1 }, + { "px": [176,400], "src": [320,272], "f": 0, "t": 411, "d": [108,411], "a": 1 }, + { "px": [192,400], "src": [320,272], "f": 0, "t": 411, "d": [108,412], "a": 1 }, + { "px": [128,416], "src": [320,272], "f": 0, "t": 411, "d": [108,424], "a": 1 }, + { "px": [144,416], "src": [320,272], "f": 0, "t": 411, "d": [108,425], "a": 1 }, + { "px": [160,416], "src": [320,272], "f": 0, "t": 411, "d": [108,426], "a": 1 }, + { "px": [192,416], "src": [320,272], "f": 0, "t": 411, "d": [108,428], "a": 1 }, + { "px": [176,432], "src": [320,272], "f": 0, "t": 411, "d": [108,443], "a": 1 }, + { "px": [192,432], "src": [320,272], "f": 0, "t": 411, "d": [108,444], "a": 1 }, + { "px": [80,448], "src": [320,272], "f": 0, "t": 411, "d": [108,453], "a": 1 }, + { "px": [112,448], "src": [320,272], "f": 0, "t": 411, "d": [108,455], "a": 1 }, + { "px": [144,448], "src": [320,272], "f": 0, "t": 411, "d": [108,457], "a": 1 }, + { "px": [160,448], "src": [320,272], "f": 0, "t": 411, "d": [108,458], "a": 1 }, + { "px": [176,448], "src": [320,272], "f": 0, "t": 411, "d": [108,459], "a": 1 }, + { "px": [192,448], "src": [320,272], "f": 0, "t": 411, "d": [108,460], "a": 1 }, + { "px": [80,464], "src": [320,272], "f": 0, "t": 411, "d": [108,469], "a": 1 }, + { "px": [96,464], "src": [320,272], "f": 0, "t": 411, "d": [108,470], "a": 1 }, + { "px": [112,464], "src": [320,272], "f": 0, "t": 411, "d": [108,471], "a": 1 }, + { "px": [128,464], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [144,464], "src": [320,272], "f": 0, "t": 411, "d": [108,473], "a": 1 }, + { "px": [160,464], "src": [320,272], "f": 0, "t": 411, "d": [108,474], "a": 1 }, + { "px": [176,464], "src": [320,272], "f": 0, "t": 411, "d": [108,475], "a": 1 }, + { "px": [192,464], "src": [320,272], "f": 0, "t": 411, "d": [108,476], "a": 1 }, + { "px": [96,480], "src": [320,272], "f": 0, "t": 411, "d": [108,486], "a": 1 }, + { "px": [112,480], "src": [320,272], "f": 0, "t": 411, "d": [108,487], "a": 1 }, + { "px": [144,480], "src": [320,272], "f": 0, "t": 411, "d": [108,489], "a": 1 }, + { "px": [160,480], "src": [320,272], "f": 0, "t": 411, "d": [108,490], "a": 1 }, + { "px": [192,480], "src": [320,272], "f": 0, "t": 411, "d": [108,492], "a": 1 }, + { "px": [80,496], "src": [320,272], "f": 0, "t": 411, "d": [108,501], "a": 1 }, + { "px": [96,496], "src": [320,272], "f": 0, "t": 411, "d": [108,502], "a": 1 }, + { "px": [112,496], "src": [320,272], "f": 0, "t": 411, "d": [108,503], "a": 1 }, + { "px": [128,496], "src": [320,272], "f": 0, "t": 411, "d": [108,504], "a": 1 }, + { "px": [144,496], "src": [320,272], "f": 0, "t": 411, "d": [108,505], "a": 1 }, + { "px": [160,496], "src": [320,272], "f": 0, "t": 411, "d": [108,506], "a": 1 }, + { "px": [176,496], "src": [320,272], "f": 0, "t": 411, "d": [108,507], "a": 1 }, + { "px": [192,496], "src": [320,272], "f": 0, "t": 411, "d": [108,508], "a": 1 }, + { "px": [80,512], "src": [320,272], "f": 0, "t": 411, "d": [108,517], "a": 1 }, + { "px": [80,528], "src": [320,272], "f": 0, "t": 411, "d": [108,533], "a": 1 }, + { "px": [96,528], "src": [320,272], "f": 0, "t": 411, "d": [108,534], "a": 1 }, + { "px": [112,528], "src": [320,272], "f": 0, "t": 411, "d": [108,535], "a": 1 }, + { "px": [80,544], "src": [320,272], "f": 0, "t": 411, "d": [108,549], "a": 1 }, + { "px": [96,544], "src": [320,272], "f": 0, "t": 411, "d": [108,550], "a": 1 }, + { "px": [112,544], "src": [320,272], "f": 0, "t": 411, "d": [108,551], "a": 1 }, + { "px": [80,560], "src": [320,272], "f": 0, "t": 411, "d": [108,565], "a": 1 }, + { "px": [96,560], "src": [320,272], "f": 0, "t": 411, "d": [108,566], "a": 1 }, + { "px": [112,560], "src": [320,272], "f": 0, "t": 411, "d": [108,567], "a": 1 }, + { "px": [80,576], "src": [320,272], "f": 0, "t": 411, "d": [108,581], "a": 1 }, + { "px": [112,576], "src": [320,272], "f": 0, "t": 411, "d": [108,583], "a": 1 }, + { "px": [112,592], "src": [320,272], "f": 0, "t": 411, "d": [108,599], "a": 1 }, + { "px": [48,608], "src": [320,272], "f": 0, "t": 411, "d": [108,611], "a": 1 }, + { "px": [64,608], "src": [320,272], "f": 0, "t": 411, "d": [108,612], "a": 1 }, + { "px": [80,608], "src": [320,272], "f": 0, "t": 411, "d": [108,613], "a": 1 }, + { "px": [96,608], "src": [320,272], "f": 0, "t": 411, "d": [108,614], "a": 1 }, + { "px": [112,608], "src": [320,272], "f": 0, "t": 411, "d": [108,615], "a": 1 }, + { "px": [48,624], "src": [320,272], "f": 0, "t": 411, "d": [108,627], "a": 1 }, + { "px": [64,624], "src": [320,272], "f": 0, "t": 411, "d": [108,628], "a": 1 }, + { "px": [80,624], "src": [320,272], "f": 0, "t": 411, "d": [108,629], "a": 1 }, + { "px": [96,624], "src": [320,272], "f": 0, "t": 411, "d": [108,630], "a": 1 }, + { "px": [112,624], "src": [320,272], "f": 0, "t": 411, "d": [108,631], "a": 1 }, + { "px": [48,640], "src": [320,272], "f": 0, "t": 411, "d": [108,643], "a": 1 }, + { "px": [192,640], "src": [320,272], "f": 0, "t": 411, "d": [108,652], "a": 1 }, + { "px": [48,656], "src": [320,272], "f": 0, "t": 411, "d": [108,659], "a": 1 }, + { "px": [64,656], "src": [320,272], "f": 0, "t": 411, "d": [108,660], "a": 1 }, + { "px": [80,656], "src": [320,272], "f": 0, "t": 411, "d": [108,661], "a": 1 }, + { "px": [96,656], "src": [320,272], "f": 0, "t": 411, "d": [108,662], "a": 1 }, + { "px": [112,656], "src": [320,272], "f": 0, "t": 411, "d": [108,663], "a": 1 }, + { "px": [144,656], "src": [320,272], "f": 0, "t": 411, "d": [108,665], "a": 1 }, + { "px": [160,656], "src": [320,272], "f": 0, "t": 411, "d": [108,666], "a": 1 }, + { "px": [176,656], "src": [320,272], "f": 0, "t": 411, "d": [108,667], "a": 1 }, + { "px": [192,656], "src": [320,272], "f": 0, "t": 411, "d": [108,668], "a": 1 }, + { "px": [48,672], "src": [320,272], "f": 0, "t": 411, "d": [108,675], "a": 1 }, + { "px": [64,672], "src": [320,272], "f": 0, "t": 411, "d": [108,676], "a": 1 }, + { "px": [80,672], "src": [320,272], "f": 0, "t": 411, "d": [108,677], "a": 1 }, + { "px": [96,672], "src": [320,272], "f": 0, "t": 411, "d": [108,678], "a": 1 }, + { "px": [112,672], "src": [320,272], "f": 0, "t": 411, "d": [108,679], "a": 1 }, + { "px": [144,672], "src": [320,272], "f": 0, "t": 411, "d": [108,681], "a": 1 }, + { "px": [160,672], "src": [320,272], "f": 0, "t": 411, "d": [108,682], "a": 1 }, + { "px": [176,672], "src": [320,272], "f": 0, "t": 411, "d": [108,683], "a": 1 }, + { "px": [192,672], "src": [320,272], "f": 0, "t": 411, "d": [108,684], "a": 1 }, + { "px": [48,688], "src": [320,272], "f": 0, "t": 411, "d": [108,691], "a": 1 }, + { "px": [64,688], "src": [320,272], "f": 0, "t": 411, "d": [108,692], "a": 1 }, + { "px": [80,688], "src": [320,272], "f": 0, "t": 411, "d": [108,693], "a": 1 }, + { "px": [96,688], "src": [320,272], "f": 0, "t": 411, "d": [108,694], "a": 1 }, + { "px": [112,688], "src": [320,272], "f": 0, "t": 411, "d": [108,695], "a": 1 }, + { "px": [128,688], "src": [320,272], "f": 0, "t": 411, "d": [108,696], "a": 1 }, + { "px": [144,688], "src": [320,272], "f": 0, "t": 411, "d": [108,697], "a": 1 }, + { "px": [32,704], "src": [320,272], "f": 0, "t": 411, "d": [108,706], "a": 1 }, + { "px": [48,704], "src": [320,272], "f": 0, "t": 411, "d": [108,707], "a": 1 }, + { "px": [64,704], "src": [320,272], "f": 0, "t": 411, "d": [108,708], "a": 1 }, + { "px": [80,704], "src": [320,272], "f": 0, "t": 411, "d": [108,709], "a": 1 }, + { "px": [96,704], "src": [320,272], "f": 0, "t": 411, "d": [108,710], "a": 1 }, + { "px": [112,704], "src": [320,272], "f": 0, "t": 411, "d": [108,711], "a": 1 }, + { "px": [128,704], "src": [320,272], "f": 0, "t": 411, "d": [108,712], "a": 1 }, + { "px": [144,704], "src": [320,272], "f": 0, "t": 411, "d": [108,713], "a": 1 }, + { "px": [160,704], "src": [320,272], "f": 0, "t": 411, "d": [108,714], "a": 1 }, + { "px": [80,720], "src": [320,272], "f": 0, "t": 411, "d": [108,725], "a": 1 }, + { "px": [80,736], "src": [320,272], "f": 0, "t": 411, "d": [108,741], "a": 1 }, + { "px": [80,752], "src": [320,272], "f": 0, "t": 411, "d": [108,757], "a": 1 }, + { "px": [192,64], "src": [256,240], "f": 0, "t": 361, "d": [107,77], "a": 1 }, + { "px": [208,64], "src": [272,240], "f": 0, "t": 362, "d": [107,77], "a": 1 }, + { "px": [160,80], "src": [256,240], "f": 0, "t": 361, "d": [107,91], "a": 1 }, + { "px": [176,80], "src": [272,240], "f": 0, "t": 362, "d": [107,91], "a": 1 }, + { "px": [160,96], "src": [256,240], "f": 0, "t": 361, "d": [107,107], "a": 1 }, + { "px": [176,96], "src": [272,240], "f": 0, "t": 362, "d": [107,107], "a": 1 }, + { "px": [192,112], "src": [256,240], "f": 0, "t": 361, "d": [107,125], "a": 1 }, + { "px": [208,112], "src": [272,240], "f": 0, "t": 362, "d": [107,125], "a": 1 }, + { "px": [64,128], "src": [256,240], "f": 1, "t": 361, "d": [107,131], "a": 1 }, + { "px": [48,128], "src": [272,240], "f": 1, "t": 362, "d": [107,131], "a": 1 }, + { "px": [192,128], "src": [256,240], "f": 0, "t": 361, "d": [107,141], "a": 1 }, + { "px": [208,128], "src": [272,240], "f": 0, "t": 362, "d": [107,141], "a": 1 }, + { "px": [64,144], "src": [256,240], "f": 1, "t": 361, "d": [107,147], "a": 1 }, + { "px": [48,144], "src": [272,240], "f": 1, "t": 362, "d": [107,147], "a": 1 }, + { "px": [192,144], "src": [256,240], "f": 0, "t": 361, "d": [107,157], "a": 1 }, + { "px": [208,144], "src": [272,240], "f": 0, "t": 362, "d": [107,157], "a": 1 }, + { "px": [64,160], "src": [256,240], "f": 1, "t": 361, "d": [107,163], "a": 1 }, + { "px": [48,160], "src": [272,240], "f": 1, "t": 362, "d": [107,163], "a": 1 }, + { "px": [192,160], "src": [256,240], "f": 0, "t": 361, "d": [107,173], "a": 1 }, + { "px": [208,160], "src": [272,240], "f": 0, "t": 362, "d": [107,173], "a": 1 }, + { "px": [64,176], "src": [256,240], "f": 1, "t": 361, "d": [107,179], "a": 1 }, + { "px": [48,176], "src": [272,240], "f": 1, "t": 362, "d": [107,179], "a": 1 }, + { "px": [192,176], "src": [256,240], "f": 0, "t": 361, "d": [107,189], "a": 1 }, + { "px": [208,176], "src": [272,240], "f": 0, "t": 362, "d": [107,189], "a": 1 }, + { "px": [64,192], "src": [256,240], "f": 1, "t": 361, "d": [107,195], "a": 1 }, + { "px": [48,192], "src": [272,240], "f": 1, "t": 362, "d": [107,195], "a": 1 }, + { "px": [48,192], "src": [256,240], "f": 0, "t": 361, "d": [107,196], "a": 1 }, + { "px": [64,192], "src": [272,240], "f": 0, "t": 362, "d": [107,196], "a": 1 }, + { "px": [64,208], "src": [256,240], "f": 1, "t": 361, "d": [107,211], "a": 1 }, + { "px": [48,208], "src": [272,240], "f": 1, "t": 362, "d": [107,211], "a": 1 }, + { "px": [48,208], "src": [256,240], "f": 0, "t": 361, "d": [107,212], "a": 1 }, + { "px": [64,208], "src": [272,240], "f": 0, "t": 362, "d": [107,212], "a": 1 }, + { "px": [64,224], "src": [256,240], "f": 1, "t": 361, "d": [107,227], "a": 1 }, + { "px": [48,224], "src": [272,240], "f": 1, "t": 362, "d": [107,227], "a": 1 }, + { "px": [176,224], "src": [256,240], "f": 0, "t": 361, "d": [107,236], "a": 1 }, + { "px": [192,224], "src": [272,240], "f": 0, "t": 362, "d": [107,236], "a": 1 }, + { "px": [64,240], "src": [256,240], "f": 1, "t": 361, "d": [107,243], "a": 1 }, + { "px": [48,240], "src": [272,240], "f": 1, "t": 362, "d": [107,243], "a": 1 }, + { "px": [176,240], "src": [256,240], "f": 0, "t": 361, "d": [107,252], "a": 1 }, + { "px": [192,240], "src": [272,240], "f": 0, "t": 362, "d": [107,252], "a": 1 }, + { "px": [64,256], "src": [256,240], "f": 1, "t": 361, "d": [107,259], "a": 1 }, + { "px": [48,256], "src": [272,240], "f": 1, "t": 362, "d": [107,259], "a": 1 }, + { "px": [176,256], "src": [256,240], "f": 0, "t": 361, "d": [107,268], "a": 1 }, + { "px": [192,256], "src": [272,240], "f": 0, "t": 362, "d": [107,268], "a": 1 }, + { "px": [160,272], "src": [256,240], "f": 1, "t": 361, "d": [107,281], "a": 1 }, + { "px": [144,272], "src": [272,240], "f": 1, "t": 362, "d": [107,281], "a": 1 }, + { "px": [176,272], "src": [256,240], "f": 0, "t": 361, "d": [107,284], "a": 1 }, + { "px": [192,272], "src": [272,240], "f": 0, "t": 362, "d": [107,284], "a": 1 }, + { "px": [160,288], "src": [256,240], "f": 1, "t": 361, "d": [107,297], "a": 1 }, + { "px": [144,288], "src": [272,240], "f": 1, "t": 362, "d": [107,297], "a": 1 }, + { "px": [176,288], "src": [256,240], "f": 0, "t": 361, "d": [107,300], "a": 1 }, + { "px": [192,288], "src": [272,240], "f": 0, "t": 362, "d": [107,300], "a": 1 }, + { "px": [128,304], "src": [256,240], "f": 1, "t": 361, "d": [107,311], "a": 1 }, + { "px": [112,304], "src": [272,240], "f": 1, "t": 362, "d": [107,311], "a": 1 }, + { "px": [176,304], "src": [256,240], "f": 0, "t": 361, "d": [107,316], "a": 1 }, + { "px": [192,304], "src": [272,240], "f": 0, "t": 362, "d": [107,316], "a": 1 }, + { "px": [128,320], "src": [256,240], "f": 1, "t": 361, "d": [107,327], "a": 1 }, + { "px": [112,320], "src": [272,240], "f": 1, "t": 362, "d": [107,327], "a": 1 }, + { "px": [176,320], "src": [256,240], "f": 0, "t": 361, "d": [107,332], "a": 1 }, + { "px": [192,320], "src": [272,240], "f": 0, "t": 362, "d": [107,332], "a": 1 }, + { "px": [128,336], "src": [256,240], "f": 1, "t": 361, "d": [107,343], "a": 1 }, + { "px": [112,336], "src": [272,240], "f": 1, "t": 362, "d": [107,343], "a": 1 }, + { "px": [176,336], "src": [256,240], "f": 0, "t": 361, "d": [107,348], "a": 1 }, + { "px": [192,336], "src": [272,240], "f": 0, "t": 362, "d": [107,348], "a": 1 }, + { "px": [128,352], "src": [256,240], "f": 1, "t": 361, "d": [107,359], "a": 1 }, + { "px": [112,352], "src": [272,240], "f": 1, "t": 362, "d": [107,359], "a": 1 }, + { "px": [144,352], "src": [256,240], "f": 0, "t": 361, "d": [107,362], "a": 1 }, + { "px": [160,352], "src": [272,240], "f": 0, "t": 362, "d": [107,362], "a": 1 }, + { "px": [128,368], "src": [256,240], "f": 1, "t": 361, "d": [107,375], "a": 1 }, + { "px": [112,368], "src": [272,240], "f": 1, "t": 362, "d": [107,375], "a": 1 }, + { "px": [144,368], "src": [256,240], "f": 0, "t": 361, "d": [107,378], "a": 1 }, + { "px": [160,368], "src": [272,240], "f": 0, "t": 362, "d": [107,378], "a": 1 }, + { "px": [128,384], "src": [256,240], "f": 1, "t": 361, "d": [107,391], "a": 1 }, + { "px": [112,384], "src": [272,240], "f": 1, "t": 362, "d": [107,391], "a": 1 }, + { "px": [128,400], "src": [256,240], "f": 1, "t": 361, "d": [107,407], "a": 1 }, + { "px": [112,400], "src": [272,240], "f": 1, "t": 362, "d": [107,407], "a": 1 }, + { "px": [192,400], "src": [256,240], "f": 0, "t": 361, "d": [107,413], "a": 1 }, + { "px": [208,400], "src": [272,240], "f": 0, "t": 362, "d": [107,413], "a": 1 }, + { "px": [192,416], "src": [256,240], "f": 0, "t": 361, "d": [107,429], "a": 1 }, + { "px": [208,416], "src": [272,240], "f": 0, "t": 362, "d": [107,429], "a": 1 }, + { "px": [176,432], "src": [256,240], "f": 1, "t": 361, "d": [107,442], "a": 1 }, + { "px": [160,432], "src": [272,240], "f": 1, "t": 362, "d": [107,442], "a": 1 }, + { "px": [192,432], "src": [256,240], "f": 0, "t": 361, "d": [107,445], "a": 1 }, + { "px": [208,432], "src": [272,240], "f": 0, "t": 362, "d": [107,445], "a": 1 }, + { "px": [192,448], "src": [256,240], "f": 0, "t": 361, "d": [107,461], "a": 1 }, + { "px": [208,448], "src": [272,240], "f": 0, "t": 362, "d": [107,461], "a": 1 }, + { "px": [80,464], "src": [256,240], "f": 1, "t": 361, "d": [107,468], "a": 1 }, + { "px": [64,464], "src": [272,240], "f": 1, "t": 362, "d": [107,468], "a": 1 }, + { "px": [192,464], "src": [256,240], "f": 0, "t": 361, "d": [107,477], "a": 1 }, + { "px": [208,464], "src": [272,240], "f": 0, "t": 362, "d": [107,477], "a": 1 }, + { "px": [80,480], "src": [256,240], "f": 1, "t": 361, "d": [107,484], "a": 1 }, + { "px": [64,480], "src": [272,240], "f": 1, "t": 362, "d": [107,484], "a": 1 }, + { "px": [192,480], "src": [256,240], "f": 0, "t": 361, "d": [107,493], "a": 1 }, + { "px": [208,480], "src": [272,240], "f": 0, "t": 362, "d": [107,493], "a": 1 }, + { "px": [80,496], "src": [256,240], "f": 1, "t": 361, "d": [107,500], "a": 1 }, + { "px": [64,496], "src": [272,240], "f": 1, "t": 362, "d": [107,500], "a": 1 }, + { "px": [192,496], "src": [256,240], "f": 0, "t": 361, "d": [107,509], "a": 1 }, + { "px": [208,496], "src": [272,240], "f": 0, "t": 362, "d": [107,509], "a": 1 }, + { "px": [80,512], "src": [256,240], "f": 1, "t": 361, "d": [107,516], "a": 1 }, + { "px": [64,512], "src": [272,240], "f": 1, "t": 362, "d": [107,516], "a": 1 }, + { "px": [80,512], "src": [256,240], "f": 0, "t": 361, "d": [107,518], "a": 1 }, + { "px": [96,512], "src": [272,240], "f": 0, "t": 362, "d": [107,518], "a": 1 }, + { "px": [80,528], "src": [256,240], "f": 1, "t": 361, "d": [107,532], "a": 1 }, + { "px": [64,528], "src": [272,240], "f": 1, "t": 362, "d": [107,532], "a": 1 }, + { "px": [112,528], "src": [256,240], "f": 0, "t": 361, "d": [107,536], "a": 1 }, + { "px": [128,528], "src": [272,240], "f": 0, "t": 362, "d": [107,536], "a": 1 }, + { "px": [80,544], "src": [256,240], "f": 1, "t": 361, "d": [107,548], "a": 1 }, + { "px": [64,544], "src": [272,240], "f": 1, "t": 362, "d": [107,548], "a": 1 }, + { "px": [112,544], "src": [256,240], "f": 0, "t": 361, "d": [107,552], "a": 1 }, + { "px": [128,544], "src": [272,240], "f": 0, "t": 362, "d": [107,552], "a": 1 }, + { "px": [80,560], "src": [256,240], "f": 1, "t": 361, "d": [107,564], "a": 1 }, + { "px": [64,560], "src": [272,240], "f": 1, "t": 362, "d": [107,564], "a": 1 }, + { "px": [112,560], "src": [256,240], "f": 0, "t": 361, "d": [107,568], "a": 1 }, + { "px": [128,560], "src": [272,240], "f": 0, "t": 362, "d": [107,568], "a": 1 }, + { "px": [80,576], "src": [256,240], "f": 1, "t": 361, "d": [107,580], "a": 1 }, + { "px": [64,576], "src": [272,240], "f": 1, "t": 362, "d": [107,580], "a": 1 }, + { "px": [112,576], "src": [256,240], "f": 0, "t": 361, "d": [107,584], "a": 1 }, + { "px": [128,576], "src": [272,240], "f": 0, "t": 362, "d": [107,584], "a": 1 }, + { "px": [112,592], "src": [256,240], "f": 1, "t": 361, "d": [107,598], "a": 1 }, + { "px": [96,592], "src": [272,240], "f": 1, "t": 362, "d": [107,598], "a": 1 }, + { "px": [112,592], "src": [256,240], "f": 0, "t": 361, "d": [107,600], "a": 1 }, + { "px": [128,592], "src": [272,240], "f": 0, "t": 362, "d": [107,600], "a": 1 }, + { "px": [112,608], "src": [256,240], "f": 0, "t": 361, "d": [107,616], "a": 1 }, + { "px": [128,608], "src": [272,240], "f": 0, "t": 362, "d": [107,616], "a": 1 }, + { "px": [48,624], "src": [256,240], "f": 1, "t": 361, "d": [107,626], "a": 1 }, + { "px": [32,624], "src": [272,240], "f": 1, "t": 362, "d": [107,626], "a": 1 }, + { "px": [112,624], "src": [256,240], "f": 0, "t": 361, "d": [107,632], "a": 1 }, + { "px": [128,624], "src": [272,240], "f": 0, "t": 362, "d": [107,632], "a": 1 }, + { "px": [48,640], "src": [256,240], "f": 1, "t": 361, "d": [107,642], "a": 1 }, + { "px": [32,640], "src": [272,240], "f": 1, "t": 362, "d": [107,642], "a": 1 }, + { "px": [48,640], "src": [256,240], "f": 0, "t": 361, "d": [107,644], "a": 1 }, + { "px": [64,640], "src": [272,240], "f": 0, "t": 362, "d": [107,644], "a": 1 }, + { "px": [192,640], "src": [256,240], "f": 1, "t": 361, "d": [107,651], "a": 1 }, + { "px": [176,640], "src": [272,240], "f": 1, "t": 362, "d": [107,651], "a": 1 }, + { "px": [48,656], "src": [256,240], "f": 1, "t": 361, "d": [107,658], "a": 1 }, + { "px": [32,656], "src": [272,240], "f": 1, "t": 362, "d": [107,658], "a": 1 }, + { "px": [192,656], "src": [256,240], "f": 0, "t": 361, "d": [107,669], "a": 1 }, + { "px": [208,656], "src": [272,240], "f": 0, "t": 362, "d": [107,669], "a": 1 }, + { "px": [48,672], "src": [256,240], "f": 1, "t": 361, "d": [107,674], "a": 1 }, + { "px": [32,672], "src": [272,240], "f": 1, "t": 362, "d": [107,674], "a": 1 }, + { "px": [192,672], "src": [256,240], "f": 0, "t": 361, "d": [107,685], "a": 1 }, + { "px": [208,672], "src": [272,240], "f": 0, "t": 362, "d": [107,685], "a": 1 }, + { "px": [48,688], "src": [256,240], "f": 1, "t": 361, "d": [107,690], "a": 1 }, + { "px": [32,688], "src": [272,240], "f": 1, "t": 362, "d": [107,690], "a": 1 }, + { "px": [144,688], "src": [256,240], "f": 0, "t": 361, "d": [107,698], "a": 1 }, + { "px": [160,688], "src": [272,240], "f": 0, "t": 362, "d": [107,698], "a": 1 }, + { "px": [80,128], "src": [256,240], "f": 0, "t": 361, "d": [105,134], "a": 1 }, + { "px": [96,128], "src": [272,240], "f": 0, "t": 362, "d": [105,134], "a": 1 }, + { "px": [112,128], "src": [288,240], "f": 0, "t": 363, "d": [105,134], "a": 1 }, + { "px": [64,160], "src": [256,240], "f": 0, "t": 361, "d": [105,165], "a": 1 }, + { "px": [80,160], "src": [272,240], "f": 0, "t": 362, "d": [105,165], "a": 1 }, + { "px": [96,160], "src": [288,240], "f": 0, "t": 363, "d": [105,165], "a": 1 }, + { "px": [112,160], "src": [256,240], "f": 0, "t": 361, "d": [105,168], "a": 1 }, + { "px": [128,160], "src": [272,240], "f": 0, "t": 362, "d": [105,168], "a": 1 }, + { "px": [144,160], "src": [288,240], "f": 0, "t": 363, "d": [105,168], "a": 1 }, + { "px": [160,288], "src": [256,240], "f": 0, "t": 361, "d": [105,299], "a": 1 }, + { "px": [176,288], "src": [272,240], "f": 0, "t": 362, "d": [105,299], "a": 1 }, + { "px": [192,288], "src": [288,240], "f": 0, "t": 363, "d": [105,299], "a": 1 }, + { "px": [128,320], "src": [256,240], "f": 0, "t": 361, "d": [105,329], "a": 1 }, + { "px": [144,320], "src": [272,240], "f": 0, "t": 362, "d": [105,329], "a": 1 }, + { "px": [160,320], "src": [288,240], "f": 0, "t": 363, "d": [105,329], "a": 1 }, + { "px": [128,384], "src": [256,240], "f": 0, "t": 361, "d": [105,393], "a": 1 }, + { "px": [144,384], "src": [272,240], "f": 0, "t": 362, "d": [105,393], "a": 1 }, + { "px": [160,384], "src": [288,240], "f": 0, "t": 363, "d": [105,393], "a": 1 }, + { "px": [160,416], "src": [256,240], "f": 0, "t": 361, "d": [105,427], "a": 1 }, + { "px": [176,416], "src": [272,240], "f": 0, "t": 362, "d": [105,427], "a": 1 }, + { "px": [192,416], "src": [288,240], "f": 0, "t": 363, "d": [105,427], "a": 1 }, + { "px": [64,480], "src": [256,240], "f": 0, "t": 361, "d": [105,485], "a": 1 }, + { "px": [80,480], "src": [272,240], "f": 0, "t": 362, "d": [105,485], "a": 1 }, + { "px": [96,480], "src": [288,240], "f": 0, "t": 363, "d": [105,485], "a": 1 }, + { "px": [112,480], "src": [256,240], "f": 0, "t": 361, "d": [105,488], "a": 1 }, + { "px": [128,480], "src": [272,240], "f": 0, "t": 362, "d": [105,488], "a": 1 }, + { "px": [144,480], "src": [288,240], "f": 0, "t": 363, "d": [105,488], "a": 1 }, + { "px": [160,480], "src": [256,240], "f": 0, "t": 361, "d": [105,491], "a": 1 }, + { "px": [176,480], "src": [272,240], "f": 0, "t": 362, "d": [105,491], "a": 1 }, + { "px": [192,480], "src": [288,240], "f": 0, "t": 363, "d": [105,491], "a": 1 }, + { "px": [80,576], "src": [256,240], "f": 0, "t": 361, "d": [105,582], "a": 1 }, + { "px": [96,576], "src": [272,240], "f": 0, "t": 362, "d": [105,582], "a": 1 }, + { "px": [112,576], "src": [288,240], "f": 0, "t": 363, "d": [105,582], "a": 1 }, + { "px": [112,672], "src": [256,240], "f": 0, "t": 361, "d": [105,680], "a": 1 }, + { "px": [128,672], "src": [272,240], "f": 0, "t": 362, "d": [105,680], "a": 1 }, + { "px": [144,672], "src": [288,240], "f": 0, "t": 363, "d": [105,680], "a": 1 }, + { "px": [144,256], "src": [144,240], "f": 2, "t": 354, "d": [112,234], "a": 1 }, + { "px": [144,240], "src": [144,256], "f": 2, "t": 377, "d": [112,234], "a": 1 }, + { "px": [144,224], "src": [144,272], "f": 2, "t": 400, "d": [112,234], "a": 1 }, + { "px": [160,256], "src": [160,240], "f": 2, "t": 355, "d": [112,234], "a": 1 }, + { "px": [160,240], "src": [160,256], "f": 2, "t": 378, "d": [112,234], "a": 1 }, + { "px": [160,224], "src": [160,272], "f": 2, "t": 401, "d": [112,234], "a": 1 }, + { "px": [176,256], "src": [176,240], "f": 2, "t": 356, "d": [112,234], "a": 1 }, + { "px": [176,240], "src": [176,256], "f": 2, "t": 379, "d": [112,234], "a": 1 }, + { "px": [176,224], "src": [176,272], "f": 2, "t": 402, "d": [112,234], "a": 1 }, + { "px": [208,64], "src": [192,304], "f": 3, "t": 449, "d": [113,61], "a": 1 }, + { "px": [208,48], "src": [192,320], "f": 3, "t": 472, "d": [113,61], "a": 1 }, + { "px": [192,64], "src": [208,304], "f": 3, "t": 450, "d": [113,61], "a": 1 }, + { "px": [192,48], "src": [208,320], "f": 3, "t": 473, "d": [113,61], "a": 1 }, + { "px": [176,64], "src": [224,304], "f": 3, "t": 451, "d": [113,61], "a": 1 }, + { "px": [176,48], "src": [224,320], "f": 3, "t": 474, "d": [113,61], "a": 1 }, + { "px": [48,128], "src": [192,304], "f": 2, "t": 449, "d": [113,115], "a": 1 }, + { "px": [48,112], "src": [192,320], "f": 2, "t": 472, "d": [113,115], "a": 1 }, + { "px": [64,128], "src": [208,304], "f": 2, "t": 450, "d": [113,115], "a": 1 }, + { "px": [64,112], "src": [208,320], "f": 2, "t": 473, "d": [113,115], "a": 1 }, + { "px": [80,128], "src": [224,304], "f": 2, "t": 451, "d": [113,115], "a": 1 }, + { "px": [80,112], "src": [224,320], "f": 2, "t": 474, "d": [113,115], "a": 1 }, + { "px": [208,400], "src": [192,304], "f": 3, "t": 449, "d": [113,397], "a": 1 }, + { "px": [208,384], "src": [192,320], "f": 3, "t": 472, "d": [113,397], "a": 1 }, + { "px": [192,400], "src": [208,304], "f": 3, "t": 450, "d": [113,397], "a": 1 }, + { "px": [192,384], "src": [208,320], "f": 3, "t": 473, "d": [113,397], "a": 1 }, + { "px": [176,400], "src": [224,304], "f": 3, "t": 451, "d": [113,397], "a": 1 }, + { "px": [176,384], "src": [224,320], "f": 3, "t": 474, "d": [113,397], "a": 1 }, + { "px": [112,400], "src": [192,304], "f": 0, "t": 449, "d": [113,423], "a": 1 }, + { "px": [112,416], "src": [192,320], "f": 0, "t": 472, "d": [113,423], "a": 1 }, + { "px": [128,400], "src": [208,304], "f": 0, "t": 450, "d": [113,423], "a": 1 }, + { "px": [128,416], "src": [208,320], "f": 0, "t": 473, "d": [113,423], "a": 1 }, + { "px": [144,400], "src": [224,304], "f": 0, "t": 451, "d": [113,423], "a": 1 }, + { "px": [144,416], "src": [224,320], "f": 0, "t": 474, "d": [113,423], "a": 1 }, + { "px": [64,464], "src": [192,304], "f": 2, "t": 449, "d": [113,452], "a": 1 }, + { "px": [64,448], "src": [192,320], "f": 2, "t": 472, "d": [113,452], "a": 1 }, + { "px": [80,464], "src": [208,304], "f": 2, "t": 450, "d": [113,452], "a": 1 }, + { "px": [80,448], "src": [208,320], "f": 2, "t": 473, "d": [113,452], "a": 1 }, + { "px": [96,464], "src": [224,304], "f": 2, "t": 451, "d": [113,452], "a": 1 }, + { "px": [96,448], "src": [224,320], "f": 2, "t": 474, "d": [113,452], "a": 1 }, + { "px": [32,624], "src": [192,304], "f": 2, "t": 449, "d": [113,610], "a": 1 }, + { "px": [32,608], "src": [192,320], "f": 2, "t": 472, "d": [113,610], "a": 1 }, + { "px": [48,624], "src": [208,304], "f": 2, "t": 450, "d": [113,610], "a": 1 }, + { "px": [48,608], "src": [208,320], "f": 2, "t": 473, "d": [113,610], "a": 1 }, + { "px": [64,624], "src": [224,304], "f": 2, "t": 451, "d": [113,610], "a": 1 }, + { "px": [64,608], "src": [224,320], "f": 2, "t": 474, "d": [113,610], "a": 1 }, + { "px": [208,656], "src": [192,304], "f": 3, "t": 449, "d": [113,653], "a": 1 }, + { "px": [208,640], "src": [192,320], "f": 3, "t": 472, "d": [113,653], "a": 1 }, + { "px": [192,656], "src": [208,304], "f": 3, "t": 450, "d": [113,653], "a": 1 }, + { "px": [192,640], "src": [208,320], "f": 3, "t": 473, "d": [113,653], "a": 1 }, + { "px": [176,656], "src": [224,304], "f": 3, "t": 451, "d": [113,653], "a": 1 }, + { "px": [176,640], "src": [224,320], "f": 3, "t": 474, "d": [113,653], "a": 1 }, + { "px": [160,112], "src": [96,208], "f": 0, "t": 305, "d": [114,122], "a": 1 }, + { "px": [192,112], "src": [96,208], "f": 0, "t": 305, "d": [114,124], "a": 1 }, + { "px": [96,448], "src": [96,208], "f": 0, "t": 305, "d": [114,454], "a": 1 }, + { "px": [128,448], "src": [128,224], "f": 0, "t": 330, "d": [114,456], "a": 1 }, + { "px": [96,112], "src": [128,208], "f": 0, "t": 307, "d": [115,118], "a": 1 }, + { "px": [96,128], "src": [128,224], "f": 0, "t": 330, "d": [115,118], "a": 1 }, + { "px": [128,656], "src": [128,208], "f": 0, "t": 307, "d": [115,664], "a": 1 }, + { "px": [128,672], "src": [128,224], "f": 0, "t": 330, "d": [115,664], "a": 1 } + ], + "seed": 4839083, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a36d41f0-66b0-11ec-9cd7-e962574817d4", "dir": "s" }, { "levelIid": "a36e7a70-66b0-11ec-9cd7-67ffb406aba0", "dir": "w" }, { "levelIid": "a37690c0-66b0-11ec-9cd7-5f87e3c093eb", "dir": "w" } ] + }, + { + "identifier": "Garden", + "iid": "a3727210-66b0-11ec-9cd7-aba0184f5034", + "uid": 51, + "worldX": 512, + "worldY": -256, + "worldDepth": 0, + "pxWid": 512, + "pxHei": 512, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a3727215-66b0-11ec-9cd7-efb80a85782d", + "levelId": 51, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 3097303, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Item", + "__grid": [16,15], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a3727216-66b0-11ec-9cd7-f345e02ef7d2", + "width": 24, + "height": 24, + "defUid": 72, + "px": [264,256], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gold", "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gold"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 50, "__tile": null, "defUid": 139, "realEditorValues": [{ "id": "V_Int", "params": [50] }] } + ] + }, + { + "__identifier": "Item", + "__grid": [23,28], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 96, "y": 976, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a3727217-66b0-11ec-9cd7-8ff79d11908d", + "width": 24, + "height": 24, + "defUid": 72, + "px": [376,464], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gem", "__tile": { "tilesetUid": 133, "x": 96, "y": 976, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gem"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [3,15], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 80, "y": 272, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a3727218-66b0-11ec-9cd7-1ddad18de70d", + "width": 24, + "height": 24, + "defUid": 72, + "px": [56,256], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Healing_potion", "__tile": { "tilesetUid": 133, "x": 80, "y": 272, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Healing_potion"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Ladder", + "__grid": [11,16], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "a5883f90-66b0-11ec-9ccd-15e7115af90e", + "width": 16, + "height": 96, + "defUid": 134, + "px": [176,256], + "fieldInstances": [] + }, + { + "__identifier": "Ladder", + "__grid": [8,22], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "a6d1af80-66b0-11ec-9ccd-e12feaf4f282", + "width": 16, + "height": 112, + "defUid": 134, + "px": [128,352], + "fieldInstances": [] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a3727219-66b0-11ec-9cd7-bdaa1a67be1f", + "levelId": 51, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [32,64], "src": [320,128], "f": 0, "t": 204, "d": [26,130], "a": 1 }, + { "px": [464,64], "src": [320,128], "f": 1, "t": 204, "d": [26,157], "a": 1 }, + { "px": [32,80], "src": [320,128], "f": 0, "t": 204, "d": [26,162], "a": 1 }, + { "px": [464,80], "src": [320,128], "f": 1, "t": 204, "d": [26,189], "a": 1 }, + { "px": [32,96], "src": [320,128], "f": 0, "t": 204, "d": [26,194], "a": 1 }, + { "px": [464,96], "src": [320,128], "f": 1, "t": 204, "d": [26,221], "a": 1 }, + { "px": [32,112], "src": [320,128], "f": 0, "t": 204, "d": [26,226], "a": 1 }, + { "px": [464,112], "src": [320,128], "f": 1, "t": 204, "d": [26,253], "a": 1 }, + { "px": [32,128], "src": [320,128], "f": 0, "t": 204, "d": [26,258], "a": 1 }, + { "px": [464,128], "src": [320,128], "f": 1, "t": 204, "d": [26,285], "a": 1 }, + { "px": [32,144], "src": [320,128], "f": 0, "t": 204, "d": [26,290], "a": 1 }, + { "px": [464,144], "src": [320,128], "f": 1, "t": 204, "d": [26,317], "a": 1 }, + { "px": [32,160], "src": [320,128], "f": 0, "t": 204, "d": [26,322], "a": 1 }, + { "px": [464,160], "src": [320,128], "f": 1, "t": 204, "d": [26,349], "a": 1 }, + { "px": [32,176], "src": [320,128], "f": 0, "t": 204, "d": [26,354], "a": 1 }, + { "px": [464,176], "src": [320,128], "f": 1, "t": 204, "d": [26,381], "a": 1 }, + { "px": [32,192], "src": [320,128], "f": 0, "t": 204, "d": [26,386], "a": 1 }, + { "px": [464,192], "src": [320,128], "f": 1, "t": 204, "d": [26,413], "a": 1 }, + { "px": [32,208], "src": [320,128], "f": 0, "t": 204, "d": [26,418], "a": 1 }, + { "px": [464,208], "src": [320,128], "f": 1, "t": 204, "d": [26,445], "a": 1 }, + { "px": [32,224], "src": [320,128], "f": 0, "t": 204, "d": [26,450], "a": 1 }, + { "px": [464,224], "src": [320,128], "f": 1, "t": 204, "d": [26,477], "a": 1 }, + { "px": [32,240], "src": [320,128], "f": 0, "t": 204, "d": [26,482], "a": 1 }, + { "px": [464,240], "src": [320,128], "f": 1, "t": 204, "d": [26,509], "a": 1 }, + { "px": [144,272], "src": [320,128], "f": 0, "t": 204, "d": [26,553], "a": 1 }, + { "px": [176,272], "src": [320,128], "f": 1, "t": 204, "d": [26,555], "a": 1 }, + { "px": [400,272], "src": [320,128], "f": 0, "t": 204, "d": [26,569], "a": 1 }, + { "px": [432,272], "src": [320,128], "f": 1, "t": 204, "d": [26,571], "a": 1 }, + { "px": [144,288], "src": [320,128], "f": 0, "t": 204, "d": [26,585], "a": 1 }, + { "px": [176,288], "src": [320,128], "f": 1, "t": 204, "d": [26,587], "a": 1 }, + { "px": [304,288], "src": [320,128], "f": 0, "t": 204, "d": [26,595], "a": 1 }, + { "px": [64,304], "src": [320,128], "f": 0, "t": 204, "d": [26,612], "a": 1 }, + { "px": [176,304], "src": [320,128], "f": 1, "t": 204, "d": [26,619], "a": 1 }, + { "px": [304,304], "src": [320,128], "f": 0, "t": 204, "d": [26,627], "a": 1 }, + { "px": [64,320], "src": [320,128], "f": 0, "t": 204, "d": [26,644], "a": 1 }, + { "px": [176,320], "src": [320,128], "f": 1, "t": 204, "d": [26,651], "a": 1 }, + { "px": [304,320], "src": [320,128], "f": 0, "t": 204, "d": [26,659], "a": 1 }, + { "px": [64,336], "src": [320,128], "f": 0, "t": 204, "d": [26,676], "a": 1 }, + { "px": [176,336], "src": [320,128], "f": 1, "t": 204, "d": [26,683], "a": 1 }, + { "px": [304,336], "src": [320,128], "f": 0, "t": 204, "d": [26,691], "a": 1 }, + { "px": [400,336], "src": [320,128], "f": 1, "t": 204, "d": [26,697], "a": 1 }, + { "px": [64,352], "src": [320,128], "f": 0, "t": 204, "d": [26,708], "a": 1 }, + { "px": [304,352], "src": [320,128], "f": 0, "t": 204, "d": [26,723], "a": 1 }, + { "px": [400,352], "src": [320,128], "f": 1, "t": 204, "d": [26,729], "a": 1 }, + { "px": [176,368], "src": [320,128], "f": 1, "t": 204, "d": [26,747], "a": 1 }, + { "px": [304,368], "src": [320,128], "f": 0, "t": 204, "d": [26,755], "a": 1 }, + { "px": [400,368], "src": [320,128], "f": 1, "t": 204, "d": [26,761], "a": 1 }, + { "px": [176,384], "src": [320,128], "f": 1, "t": 204, "d": [26,779], "a": 1 }, + { "px": [304,384], "src": [320,128], "f": 0, "t": 204, "d": [26,787], "a": 1 }, + { "px": [400,384], "src": [320,128], "f": 1, "t": 204, "d": [26,793], "a": 1 }, + { "px": [176,400], "src": [320,128], "f": 1, "t": 204, "d": [26,811], "a": 1 }, + { "px": [304,400], "src": [320,128], "f": 0, "t": 204, "d": [26,819], "a": 1 }, + { "px": [400,400], "src": [320,128], "f": 1, "t": 204, "d": [26,825], "a": 1 }, + { "px": [400,416], "src": [320,128], "f": 1, "t": 204, "d": [26,857], "a": 1 }, + { "px": [400,432], "src": [320,128], "f": 1, "t": 204, "d": [26,889], "a": 1 }, + { "px": [144,256], "src": [320,96], "f": 0, "t": 158, "d": [138,521], "a": 1 }, + { "px": [176,256], "src": [320,96], "f": 1, "t": 158, "d": [138,523], "a": 1 }, + { "px": [400,256], "src": [320,96], "f": 0, "t": 158, "d": [138,537], "a": 1 }, + { "px": [432,256], "src": [320,96], "f": 1, "t": 158, "d": [138,539], "a": 1 }, + { "px": [400,320], "src": [320,96], "f": 1, "t": 158, "d": [138,665], "a": 1 }, + { "px": [128,352], "src": [320,96], "f": 1, "t": 158, "d": [138,712], "a": 1 }, + { "px": [64,432], "src": [320,96], "f": 0, "t": 158, "d": [138,868], "a": 1 }, + { "px": [32,64], "src": [336,112], "f": 0, "t": 182, "d": [27,130], "a": 1 }, + { "px": [48,64], "src": [336,112], "f": 0, "t": 182, "d": [27,131], "a": 1 }, + { "px": [64,64], "src": [336,112], "f": 0, "t": 182, "d": [27,132], "a": 1 }, + { "px": [80,64], "src": [336,112], "f": 0, "t": 182, "d": [27,133], "a": 1 }, + { "px": [96,64], "src": [336,112], "f": 0, "t": 182, "d": [27,134], "a": 1 }, + { "px": [112,64], "src": [336,112], "f": 0, "t": 182, "d": [27,135], "a": 1 }, + { "px": [128,64], "src": [336,112], "f": 0, "t": 182, "d": [27,136], "a": 1 }, + { "px": [144,64], "src": [336,112], "f": 0, "t": 182, "d": [27,137], "a": 1 }, + { "px": [160,64], "src": [336,112], "f": 0, "t": 182, "d": [27,138], "a": 1 }, + { "px": [176,64], "src": [336,112], "f": 0, "t": 182, "d": [27,139], "a": 1 }, + { "px": [192,64], "src": [336,112], "f": 0, "t": 182, "d": [27,140], "a": 1 }, + { "px": [208,64], "src": [336,112], "f": 0, "t": 182, "d": [27,141], "a": 1 }, + { "px": [224,64], "src": [336,112], "f": 0, "t": 182, "d": [27,142], "a": 1 }, + { "px": [240,64], "src": [336,112], "f": 0, "t": 182, "d": [27,143], "a": 1 }, + { "px": [256,64], "src": [336,112], "f": 0, "t": 182, "d": [27,144], "a": 1 }, + { "px": [272,64], "src": [336,112], "f": 0, "t": 182, "d": [27,145], "a": 1 }, + { "px": [288,64], "src": [336,112], "f": 0, "t": 182, "d": [27,146], "a": 1 }, + { "px": [304,64], "src": [336,112], "f": 0, "t": 182, "d": [27,147], "a": 1 }, + { "px": [320,64], "src": [336,112], "f": 0, "t": 182, "d": [27,148], "a": 1 }, + { "px": [336,64], "src": [336,112], "f": 0, "t": 182, "d": [27,149], "a": 1 }, + { "px": [352,64], "src": [336,112], "f": 0, "t": 182, "d": [27,150], "a": 1 }, + { "px": [368,64], "src": [336,112], "f": 0, "t": 182, "d": [27,151], "a": 1 }, + { "px": [384,64], "src": [336,112], "f": 0, "t": 182, "d": [27,152], "a": 1 }, + { "px": [400,64], "src": [336,112], "f": 0, "t": 182, "d": [27,153], "a": 1 }, + { "px": [416,64], "src": [336,112], "f": 0, "t": 182, "d": [27,154], "a": 1 }, + { "px": [432,64], "src": [336,112], "f": 0, "t": 182, "d": [27,155], "a": 1 }, + { "px": [448,64], "src": [336,112], "f": 0, "t": 182, "d": [27,156], "a": 1 }, + { "px": [464,64], "src": [336,112], "f": 0, "t": 182, "d": [27,157], "a": 1 }, + { "px": [304,288], "src": [336,112], "f": 0, "t": 182, "d": [27,595], "a": 1 }, + { "px": [320,288], "src": [336,112], "f": 0, "t": 182, "d": [27,596], "a": 1 }, + { "px": [336,288], "src": [336,112], "f": 0, "t": 182, "d": [27,597], "a": 1 }, + { "px": [352,288], "src": [336,112], "f": 0, "t": 182, "d": [27,598], "a": 1 }, + { "px": [368,288], "src": [336,112], "f": 0, "t": 182, "d": [27,599], "a": 1 }, + { "px": [384,288], "src": [336,112], "f": 0, "t": 182, "d": [27,600], "a": 1 }, + { "px": [448,288], "src": [336,112], "f": 0, "t": 182, "d": [27,604], "a": 1 }, + { "px": [464,288], "src": [336,112], "f": 0, "t": 182, "d": [27,605], "a": 1 }, + { "px": [480,288], "src": [336,112], "f": 0, "t": 182, "d": [27,606], "a": 1 }, + { "px": [496,288], "src": [336,112], "f": 0, "t": 182, "d": [27,607], "a": 1 }, + { "px": [64,304], "src": [336,112], "f": 0, "t": 182, "d": [27,612], "a": 1 }, + { "px": [80,304], "src": [336,112], "f": 0, "t": 182, "d": [27,613], "a": 1 }, + { "px": [96,304], "src": [336,112], "f": 0, "t": 182, "d": [27,614], "a": 1 }, + { "px": [112,304], "src": [336,112], "f": 0, "t": 182, "d": [27,615], "a": 1 }, + { "px": [128,304], "src": [336,112], "f": 0, "t": 182, "d": [27,616], "a": 1 }, + { "px": [0,368], "src": [336,112], "f": 0, "t": 182, "d": [27,736], "a": 1 }, + { "px": [16,368], "src": [336,112], "f": 0, "t": 182, "d": [27,737], "a": 1 }, + { "px": [32,368], "src": [336,112], "f": 0, "t": 182, "d": [27,738], "a": 1 }, + { "px": [48,368], "src": [336,112], "f": 0, "t": 182, "d": [27,739], "a": 1 }, + { "px": [144,368], "src": [336,112], "f": 0, "t": 182, "d": [27,745], "a": 1 }, + { "px": [160,368], "src": [336,112], "f": 0, "t": 182, "d": [27,746], "a": 1 }, + { "px": [176,368], "src": [336,112], "f": 0, "t": 182, "d": [27,747], "a": 1 }, + { "px": [192,416], "src": [336,112], "f": 0, "t": 182, "d": [27,844], "a": 1 }, + { "px": [208,416], "src": [336,112], "f": 0, "t": 182, "d": [27,845], "a": 1 }, + { "px": [224,416], "src": [336,112], "f": 0, "t": 182, "d": [27,846], "a": 1 }, + { "px": [240,416], "src": [336,112], "f": 0, "t": 182, "d": [27,847], "a": 1 }, + { "px": [256,416], "src": [336,112], "f": 0, "t": 182, "d": [27,848], "a": 1 }, + { "px": [272,416], "src": [336,112], "f": 0, "t": 182, "d": [27,849], "a": 1 }, + { "px": [288,416], "src": [336,112], "f": 0, "t": 182, "d": [27,850], "a": 1 }, + { "px": [400,288], "src": [320,112], "f": 0, "t": 181, "d": [137,601], "a": 1 }, + { "px": [432,288], "src": [320,112], "f": 1, "t": 181, "d": [137,603], "a": 1 }, + { "px": [144,304], "src": [320,112], "f": 0, "t": 181, "d": [137,617], "a": 1 }, + { "px": [64,368], "src": [320,112], "f": 0, "t": 181, "d": [137,740], "a": 1 }, + { "px": [128,368], "src": [320,112], "f": 1, "t": 181, "d": [137,744], "a": 1 }, + { "px": [176,416], "src": [320,112], "f": 1, "t": 181, "d": [137,843], "a": 1 }, + { "px": [304,416], "src": [320,112], "f": 0, "t": 181, "d": [137,851], "a": 1 } + ], + "seed": 2385479, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a372721a-66b0-11ec-9cd7-7735b083b358", + "levelId": 51, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1, + 1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1, + 1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0, + 0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1, + 1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0, + 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [64,448], "src": [320,160], "f": 0, "t": 250, "d": [21,900], "a": 1 }, + { "px": [80,448], "src": [320,160], "f": 0, "t": 250, "d": [21,901], "a": 1 }, + { "px": [96,448], "src": [320,160], "f": 0, "t": 250, "d": [21,902], "a": 1 }, + { "px": [112,448], "src": [320,160], "f": 0, "t": 250, "d": [21,903], "a": 1 }, + { "px": [128,448], "src": [320,160], "f": 0, "t": 250, "d": [21,904], "a": 1 }, + { "px": [144,448], "src": [320,160], "f": 0, "t": 250, "d": [21,905], "a": 1 }, + { "px": [160,448], "src": [320,160], "f": 0, "t": 250, "d": [21,906], "a": 1 }, + { "px": [176,448], "src": [320,160], "f": 0, "t": 250, "d": [21,907], "a": 1 }, + { "px": [192,448], "src": [320,160], "f": 0, "t": 250, "d": [21,908], "a": 1 }, + { "px": [208,448], "src": [320,160], "f": 0, "t": 250, "d": [21,909], "a": 1 }, + { "px": [224,448], "src": [320,160], "f": 0, "t": 250, "d": [21,910], "a": 1 }, + { "px": [240,448], "src": [320,160], "f": 0, "t": 250, "d": [21,911], "a": 1 }, + { "px": [256,448], "src": [320,160], "f": 0, "t": 250, "d": [21,912], "a": 1 }, + { "px": [272,448], "src": [320,160], "f": 0, "t": 250, "d": [21,913], "a": 1 }, + { "px": [288,448], "src": [320,160], "f": 0, "t": 250, "d": [21,914], "a": 1 }, + { "px": [304,448], "src": [320,160], "f": 0, "t": 250, "d": [21,915], "a": 1 }, + { "px": [320,448], "src": [320,160], "f": 0, "t": 250, "d": [21,916], "a": 1 }, + { "px": [336,448], "src": [320,160], "f": 0, "t": 250, "d": [21,917], "a": 1 }, + { "px": [352,448], "src": [320,160], "f": 0, "t": 250, "d": [21,918], "a": 1 }, + { "px": [368,448], "src": [320,160], "f": 0, "t": 250, "d": [21,919], "a": 1 }, + { "px": [384,448], "src": [320,160], "f": 0, "t": 250, "d": [21,920], "a": 1 }, + { "px": [400,448], "src": [320,160], "f": 0, "t": 250, "d": [21,921], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [8,32], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [8,34], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [8,38], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [8,40], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [8,42], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [8,44], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [8,46], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [8,52], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [8,58], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [8,60], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [8,65], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [8,69], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [8,71], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [8,73], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [8,75], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [8,77], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [8,79], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [8,83], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [8,85], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [8,87], "a": 1 }, + { "px": [400,32], "src": [32,32], "f": 0, "t": 48, "d": [8,89], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [8,91], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [8,93], "a": 1 }, + { "px": [496,32], "src": [32,32], "f": 0, "t": 48, "d": [8,95], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [8,96], "a": 1 }, + { "px": [496,64], "src": [32,32], "f": 0, "t": 48, "d": [8,159], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [8,224], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [8,288], "a": 1 }, + { "px": [496,160], "src": [32,32], "f": 0, "t": 48, "d": [8,351], "a": 1 }, + { "px": [496,192], "src": [32,32], "f": 0, "t": 48, "d": [8,415], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [8,416], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [8,479], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [8,480], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [8,544], "a": 1 }, + { "px": [224,272], "src": [32,32], "f": 0, "t": 48, "d": [8,558], "a": 1 }, + { "px": [256,272], "src": [32,32], "f": 0, "t": 48, "d": [8,560], "a": 1 }, + { "px": [208,288], "src": [32,32], "f": 0, "t": 48, "d": [8,589], "a": 1 }, + { "px": [240,288], "src": [32,32], "f": 0, "t": 48, "d": [8,591], "a": 1 }, + { "px": [272,288], "src": [32,32], "f": 0, "t": 48, "d": [8,593], "a": 1 }, + { "px": [32,304], "src": [32,32], "f": 0, "t": 48, "d": [8,610], "a": 1 }, + { "px": [256,304], "src": [32,32], "f": 0, "t": 48, "d": [8,624], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [8,641], "a": 1 }, + { "px": [272,320], "src": [32,32], "f": 0, "t": 48, "d": [8,657], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [8,672], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [8,674], "a": 1 }, + { "px": [256,336], "src": [32,32], "f": 0, "t": 48, "d": [8,688], "a": 1 }, + { "px": [480,336], "src": [32,32], "f": 0, "t": 48, "d": [8,702], "a": 1 }, + { "px": [208,352], "src": [32,32], "f": 0, "t": 48, "d": [8,717], "a": 1 }, + { "px": [272,352], "src": [32,32], "f": 0, "t": 48, "d": [8,721], "a": 1 }, + { "px": [432,352], "src": [32,32], "f": 0, "t": 48, "d": [8,731], "a": 1 }, + { "px": [464,352], "src": [32,32], "f": 0, "t": 48, "d": [8,733], "a": 1 }, + { "px": [496,352], "src": [32,32], "f": 0, "t": 48, "d": [8,735], "a": 1 }, + { "px": [224,368], "src": [32,32], "f": 0, "t": 48, "d": [8,750], "a": 1 }, + { "px": [256,368], "src": [32,32], "f": 0, "t": 48, "d": [8,752], "a": 1 }, + { "px": [448,368], "src": [32,32], "f": 0, "t": 48, "d": [8,764], "a": 1 }, + { "px": [208,384], "src": [32,32], "f": 0, "t": 48, "d": [8,781], "a": 1 }, + { "px": [240,384], "src": [32,32], "f": 0, "t": 48, "d": [8,783], "a": 1 }, + { "px": [432,384], "src": [32,32], "f": 0, "t": 48, "d": [8,795], "a": 1 }, + { "px": [448,400], "src": [32,32], "f": 0, "t": 48, "d": [8,828], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [8,897], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [8,928], "a": 1 }, + { "px": [32,464], "src": [32,32], "f": 0, "t": 48, "d": [8,930], "a": 1 }, + { "px": [16,480], "src": [32,32], "f": 0, "t": 48, "d": [8,961], "a": 1 }, + { "px": [48,480], "src": [32,32], "f": 0, "t": 48, "d": [8,963], "a": 1 }, + { "px": [80,480], "src": [32,32], "f": 0, "t": 48, "d": [8,965], "a": 1 }, + { "px": [176,480], "src": [32,32], "f": 0, "t": 48, "d": [8,971], "a": 1 }, + { "px": [208,480], "src": [32,32], "f": 0, "t": 48, "d": [8,973], "a": 1 }, + { "px": [336,480], "src": [32,32], "f": 0, "t": 48, "d": [8,981], "a": 1 }, + { "px": [368,480], "src": [32,32], "f": 0, "t": 48, "d": [8,983], "a": 1 }, + { "px": [432,480], "src": [32,32], "f": 0, "t": 48, "d": [8,987], "a": 1 }, + { "px": [32,496], "src": [32,32], "f": 0, "t": 48, "d": [8,994], "a": 1 }, + { "px": [64,496], "src": [32,32], "f": 0, "t": 48, "d": [8,996], "a": 1 }, + { "px": [96,496], "src": [32,32], "f": 0, "t": 48, "d": [8,998], "a": 1 }, + { "px": [160,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1002], "a": 1 }, + { "px": [192,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1004], "a": 1 }, + { "px": [224,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1006], "a": 1 }, + { "px": [256,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1008], "a": 1 }, + { "px": [320,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1012], "a": 1 }, + { "px": [352,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1014], "a": 1 }, + { "px": [448,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1020], "a": 1 }, + { "px": [64,16], "src": [96,96], "f": 0, "t": 144, "d": [83,36], "a": 1 }, + { "px": [256,16], "src": [96,96], "f": 0, "t": 144, "d": [83,48], "a": 1 }, + { "px": [288,16], "src": [96,96], "f": 0, "t": 144, "d": [83,50], "a": 1 }, + { "px": [352,16], "src": [96,96], "f": 0, "t": 144, "d": [83,54], "a": 1 }, + { "px": [384,16], "src": [96,96], "f": 0, "t": 144, "d": [83,56], "a": 1 }, + { "px": [480,16], "src": [96,96], "f": 0, "t": 144, "d": [83,62], "a": 1 }, + { "px": [48,32], "src": [64,96], "f": 0, "t": 142, "d": [83,67], "a": 1 }, + { "px": [272,32], "src": [64,96], "f": 0, "t": 142, "d": [83,81], "a": 1 }, + { "px": [0,80], "src": [64,96], "f": 0, "t": 142, "d": [83,160], "a": 1 }, + { "px": [496,96], "src": [96,96], "f": 0, "t": 144, "d": [83,223], "a": 1 }, + { "px": [496,128], "src": [96,96], "f": 0, "t": 144, "d": [83,287], "a": 1 }, + { "px": [0,176], "src": [96,96], "f": 0, "t": 144, "d": [83,352], "a": 1 }, + { "px": [496,256], "src": [96,96], "f": 0, "t": 144, "d": [83,543], "a": 1 }, + { "px": [32,272], "src": [64,96], "f": 0, "t": 142, "d": [83,546], "a": 1 }, + { "px": [64,272], "src": [64,96], "f": 0, "t": 142, "d": [83,548], "a": 1 }, + { "px": [96,272], "src": [64,96], "f": 0, "t": 142, "d": [83,550], "a": 1 }, + { "px": [16,288], "src": [96,96], "f": 0, "t": 144, "d": [83,577], "a": 1 }, + { "px": [224,304], "src": [64,96], "f": 0, "t": 142, "d": [83,622], "a": 1 }, + { "px": [208,320], "src": [64,96], "f": 0, "t": 142, "d": [83,653], "a": 1 }, + { "px": [224,336], "src": [96,96], "f": 0, "t": 144, "d": [83,686], "a": 1 }, + { "px": [448,336], "src": [64,96], "f": 0, "t": 142, "d": [83,700], "a": 1 }, + { "px": [272,384], "src": [96,96], "f": 0, "t": 144, "d": [83,785], "a": 1 }, + { "px": [432,416], "src": [96,96], "f": 0, "t": 144, "d": [83,859], "a": 1 }, + { "px": [448,432], "src": [64,96], "f": 0, "t": 142, "d": [83,892], "a": 1 }, + { "px": [432,448], "src": [96,96], "f": 0, "t": 144, "d": [83,923], "a": 1 }, + { "px": [448,464], "src": [96,96], "f": 0, "t": 144, "d": [83,956], "a": 1 }, + { "px": [112,480], "src": [96,96], "f": 0, "t": 144, "d": [83,967], "a": 1 }, + { "px": [144,480], "src": [64,96], "f": 0, "t": 142, "d": [83,969], "a": 1 }, + { "px": [240,480], "src": [96,96], "f": 0, "t": 144, "d": [83,975], "a": 1 }, + { "px": [272,480], "src": [96,96], "f": 0, "t": 144, "d": [83,977], "a": 1 }, + { "px": [304,480], "src": [96,96], "f": 0, "t": 144, "d": [83,979], "a": 1 }, + { "px": [400,480], "src": [64,96], "f": 0, "t": 142, "d": [83,985], "a": 1 }, + { "px": [128,496], "src": [64,96], "f": 0, "t": 142, "d": [83,1000], "a": 1 }, + { "px": [288,496], "src": [96,96], "f": 0, "t": 144, "d": [83,1010], "a": 1 }, + { "px": [384,496], "src": [96,96], "f": 0, "t": 144, "d": [83,1016], "a": 1 }, + { "px": [416,496], "src": [64,96], "f": 0, "t": 142, "d": [83,1018], "a": 1 }, + { "px": [16,16], "src": [224,96], "f": 0, "t": 152, "d": [101,33], "a": 1 }, + { "px": [48,16], "src": [192,16], "f": 0, "t": 35, "d": [101,35], "a": 1 }, + { "px": [80,16], "src": [96,0], "f": 0, "t": 6, "d": [101,37], "a": 1 }, + { "px": [112,16], "src": [192,16], "f": 0, "t": 35, "d": [101,39], "a": 1 }, + { "px": [144,16], "src": [224,96], "f": 0, "t": 152, "d": [101,41], "a": 1 }, + { "px": [176,16], "src": [192,16], "f": 0, "t": 35, "d": [101,43], "a": 1 }, + { "px": [208,16], "src": [192,16], "f": 0, "t": 35, "d": [101,45], "a": 1 }, + { "px": [240,16], "src": [224,96], "f": 0, "t": 152, "d": [101,47], "a": 1 }, + { "px": [272,16], "src": [192,16], "f": 0, "t": 35, "d": [101,49], "a": 1 }, + { "px": [304,16], "src": [192,16], "f": 0, "t": 35, "d": [101,51], "a": 1 }, + { "px": [336,16], "src": [192,16], "f": 0, "t": 35, "d": [101,53], "a": 1 }, + { "px": [368,16], "src": [224,96], "f": 0, "t": 152, "d": [101,55], "a": 1 }, + { "px": [400,16], "src": [224,96], "f": 0, "t": 152, "d": [101,57], "a": 1 }, + { "px": [432,16], "src": [96,0], "f": 0, "t": 6, "d": [101,59], "a": 1 }, + { "px": [464,16], "src": [96,0], "f": 0, "t": 6, "d": [101,61], "a": 1 }, + { "px": [496,16], "src": [192,16], "f": 0, "t": 35, "d": [101,63], "a": 1 }, + { "px": [0,32], "src": [192,16], "f": 0, "t": 35, "d": [101,64], "a": 1 }, + { "px": [32,32], "src": [192,16], "f": 0, "t": 35, "d": [101,66], "a": 1 }, + { "px": [64,32], "src": [96,0], "f": 0, "t": 6, "d": [101,68], "a": 1 }, + { "px": [96,32], "src": [192,16], "f": 0, "t": 35, "d": [101,70], "a": 1 }, + { "px": [128,32], "src": [192,16], "f": 0, "t": 35, "d": [101,72], "a": 1 }, + { "px": [160,32], "src": [224,96], "f": 0, "t": 152, "d": [101,74], "a": 1 }, + { "px": [192,32], "src": [224,96], "f": 0, "t": 152, "d": [101,76], "a": 1 }, + { "px": [224,32], "src": [192,16], "f": 0, "t": 35, "d": [101,78], "a": 1 }, + { "px": [256,32], "src": [96,0], "f": 0, "t": 6, "d": [101,80], "a": 1 }, + { "px": [288,32], "src": [96,0], "f": 0, "t": 6, "d": [101,82], "a": 1 }, + { "px": [320,32], "src": [224,96], "f": 0, "t": 152, "d": [101,84], "a": 1 }, + { "px": [352,32], "src": [192,16], "f": 0, "t": 35, "d": [101,86], "a": 1 }, + { "px": [384,32], "src": [96,0], "f": 0, "t": 6, "d": [101,88], "a": 1 }, + { "px": [416,32], "src": [192,16], "f": 0, "t": 35, "d": [101,90], "a": 1 }, + { "px": [448,32], "src": [192,16], "f": 0, "t": 35, "d": [101,92], "a": 1 }, + { "px": [480,32], "src": [192,16], "f": 0, "t": 35, "d": [101,94], "a": 1 }, + { "px": [496,48], "src": [224,96], "f": 0, "t": 152, "d": [101,127], "a": 1 }, + { "px": [0,64], "src": [96,0], "f": 0, "t": 6, "d": [101,128], "a": 1 }, + { "px": [496,80], "src": [96,0], "f": 0, "t": 6, "d": [101,191], "a": 1 }, + { "px": [0,96], "src": [224,96], "f": 0, "t": 152, "d": [101,192], "a": 1 }, + { "px": [496,112], "src": [192,16], "f": 0, "t": 35, "d": [101,255], "a": 1 }, + { "px": [0,128], "src": [224,96], "f": 0, "t": 152, "d": [101,256], "a": 1 }, + { "px": [496,144], "src": [192,16], "f": 0, "t": 35, "d": [101,319], "a": 1 }, + { "px": [0,160], "src": [224,96], "f": 0, "t": 152, "d": [101,320], "a": 1 }, + { "px": [496,176], "src": [192,16], "f": 0, "t": 35, "d": [101,383], "a": 1 }, + { "px": [0,192], "src": [192,16], "f": 0, "t": 35, "d": [101,384], "a": 1 }, + { "px": [496,208], "src": [192,16], "f": 0, "t": 35, "d": [101,447], "a": 1 }, + { "px": [0,224], "src": [224,96], "f": 0, "t": 152, "d": [101,448], "a": 1 }, + { "px": [496,240], "src": [192,16], "f": 0, "t": 35, "d": [101,511], "a": 1 }, + { "px": [0,256], "src": [96,0], "f": 0, "t": 6, "d": [101,512], "a": 1 }, + { "px": [16,272], "src": [224,96], "f": 0, "t": 152, "d": [101,545], "a": 1 }, + { "px": [48,272], "src": [224,96], "f": 0, "t": 152, "d": [101,547], "a": 1 }, + { "px": [80,272], "src": [96,0], "f": 0, "t": 6, "d": [101,549], "a": 1 }, + { "px": [112,272], "src": [96,0], "f": 0, "t": 6, "d": [101,551], "a": 1 }, + { "px": [208,272], "src": [224,96], "f": 0, "t": 152, "d": [101,557], "a": 1 }, + { "px": [240,272], "src": [96,0], "f": 0, "t": 6, "d": [101,559], "a": 1 }, + { "px": [272,272], "src": [224,96], "f": 0, "t": 152, "d": [101,561], "a": 1 }, + { "px": [0,288], "src": [192,16], "f": 0, "t": 35, "d": [101,576], "a": 1 }, + { "px": [32,288], "src": [192,16], "f": 0, "t": 35, "d": [101,578], "a": 1 }, + { "px": [224,288], "src": [192,16], "f": 0, "t": 35, "d": [101,590], "a": 1 }, + { "px": [256,288], "src": [96,0], "f": 0, "t": 6, "d": [101,592], "a": 1 }, + { "px": [16,304], "src": [224,96], "f": 0, "t": 152, "d": [101,609], "a": 1 }, + { "px": [208,304], "src": [224,96], "f": 0, "t": 152, "d": [101,621], "a": 1 }, + { "px": [272,304], "src": [96,0], "f": 0, "t": 6, "d": [101,625], "a": 1 }, + { "px": [0,320], "src": [192,16], "f": 0, "t": 35, "d": [101,640], "a": 1 }, + { "px": [32,320], "src": [224,96], "f": 0, "t": 152, "d": [101,642], "a": 1 }, + { "px": [224,320], "src": [96,0], "f": 0, "t": 6, "d": [101,654], "a": 1 }, + { "px": [256,320], "src": [192,16], "f": 0, "t": 35, "d": [101,656], "a": 1 }, + { "px": [16,336], "src": [224,96], "f": 0, "t": 152, "d": [101,673], "a": 1 }, + { "px": [208,336], "src": [96,0], "f": 0, "t": 6, "d": [101,685], "a": 1 }, + { "px": [272,336], "src": [192,16], "f": 0, "t": 35, "d": [101,689], "a": 1 }, + { "px": [432,336], "src": [224,96], "f": 0, "t": 152, "d": [101,699], "a": 1 }, + { "px": [464,336], "src": [192,16], "f": 0, "t": 35, "d": [101,701], "a": 1 }, + { "px": [496,336], "src": [96,0], "f": 0, "t": 6, "d": [101,703], "a": 1 }, + { "px": [224,352], "src": [96,0], "f": 0, "t": 6, "d": [101,718], "a": 1 }, + { "px": [256,352], "src": [192,16], "f": 0, "t": 35, "d": [101,720], "a": 1 }, + { "px": [448,352], "src": [96,0], "f": 0, "t": 6, "d": [101,732], "a": 1 }, + { "px": [480,352], "src": [224,96], "f": 0, "t": 152, "d": [101,734], "a": 1 }, + { "px": [208,368], "src": [96,0], "f": 0, "t": 6, "d": [101,749], "a": 1 }, + { "px": [240,368], "src": [224,96], "f": 0, "t": 152, "d": [101,751], "a": 1 }, + { "px": [272,368], "src": [96,0], "f": 0, "t": 6, "d": [101,753], "a": 1 }, + { "px": [432,368], "src": [192,16], "f": 0, "t": 35, "d": [101,763], "a": 1 }, + { "px": [224,384], "src": [96,0], "f": 0, "t": 6, "d": [101,782], "a": 1 }, + { "px": [256,384], "src": [96,0], "f": 0, "t": 6, "d": [101,784], "a": 1 }, + { "px": [448,384], "src": [224,96], "f": 0, "t": 152, "d": [101,796], "a": 1 }, + { "px": [432,400], "src": [192,16], "f": 0, "t": 35, "d": [101,827], "a": 1 }, + { "px": [448,416], "src": [192,16], "f": 0, "t": 35, "d": [101,860], "a": 1 }, + { "px": [432,432], "src": [192,16], "f": 0, "t": 35, "d": [101,891], "a": 1 }, + { "px": [0,448], "src": [192,16], "f": 0, "t": 35, "d": [101,896], "a": 1 }, + { "px": [32,448], "src": [224,96], "f": 0, "t": 152, "d": [101,898], "a": 1 }, + { "px": [448,448], "src": [192,16], "f": 0, "t": 35, "d": [101,924], "a": 1 }, + { "px": [16,464], "src": [192,16], "f": 0, "t": 35, "d": [101,929], "a": 1 }, + { "px": [432,464], "src": [192,16], "f": 0, "t": 35, "d": [101,955], "a": 1 }, + { "px": [32,480], "src": [192,16], "f": 0, "t": 35, "d": [101,962], "a": 1 }, + { "px": [64,480], "src": [96,0], "f": 0, "t": 6, "d": [101,964], "a": 1 }, + { "px": [96,480], "src": [224,96], "f": 0, "t": 152, "d": [101,966], "a": 1 }, + { "px": [128,480], "src": [96,0], "f": 0, "t": 6, "d": [101,968], "a": 1 }, + { "px": [160,480], "src": [192,16], "f": 0, "t": 35, "d": [101,970], "a": 1 }, + { "px": [192,480], "src": [224,96], "f": 0, "t": 152, "d": [101,972], "a": 1 }, + { "px": [224,480], "src": [96,0], "f": 0, "t": 6, "d": [101,974], "a": 1 }, + { "px": [256,480], "src": [192,16], "f": 0, "t": 35, "d": [101,976], "a": 1 }, + { "px": [288,480], "src": [224,96], "f": 0, "t": 152, "d": [101,978], "a": 1 }, + { "px": [320,480], "src": [192,16], "f": 0, "t": 35, "d": [101,980], "a": 1 }, + { "px": [352,480], "src": [224,96], "f": 0, "t": 152, "d": [101,982], "a": 1 }, + { "px": [384,480], "src": [224,96], "f": 0, "t": 152, "d": [101,984], "a": 1 }, + { "px": [416,480], "src": [224,96], "f": 0, "t": 152, "d": [101,986], "a": 1 }, + { "px": [448,480], "src": [192,16], "f": 0, "t": 35, "d": [101,988], "a": 1 }, + { "px": [16,496], "src": [192,16], "f": 0, "t": 35, "d": [101,993], "a": 1 }, + { "px": [48,496], "src": [96,0], "f": 0, "t": 6, "d": [101,995], "a": 1 }, + { "px": [80,496], "src": [96,0], "f": 0, "t": 6, "d": [101,997], "a": 1 }, + { "px": [112,496], "src": [224,96], "f": 0, "t": 152, "d": [101,999], "a": 1 }, + { "px": [144,496], "src": [224,96], "f": 0, "t": 152, "d": [101,1001], "a": 1 }, + { "px": [176,496], "src": [192,16], "f": 0, "t": 35, "d": [101,1003], "a": 1 }, + { "px": [208,496], "src": [192,16], "f": 0, "t": 35, "d": [101,1005], "a": 1 }, + { "px": [240,496], "src": [96,0], "f": 0, "t": 6, "d": [101,1007], "a": 1 }, + { "px": [272,496], "src": [224,96], "f": 0, "t": 152, "d": [101,1009], "a": 1 }, + { "px": [304,496], "src": [192,16], "f": 0, "t": 35, "d": [101,1011], "a": 1 }, + { "px": [336,496], "src": [224,96], "f": 0, "t": 152, "d": [101,1013], "a": 1 }, + { "px": [368,496], "src": [96,0], "f": 0, "t": 6, "d": [101,1015], "a": 1 }, + { "px": [400,496], "src": [192,16], "f": 0, "t": 35, "d": [101,1017], "a": 1 }, + { "px": [432,496], "src": [224,96], "f": 0, "t": 152, "d": [101,1019], "a": 1 }, + { "px": [0,0], "src": [32,32], "f": 0, "t": 48, "d": [127,0], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [32,0], "src": [32,32], "f": 0, "t": 48, "d": [127,2], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [64,0], "src": [32,32], "f": 0, "t": 48, "d": [127,4], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [127,8], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [192,0], "src": [32,32], "f": 0, "t": 48, "d": [127,12], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [256,0], "src": [32,32], "f": 0, "t": 48, "d": [127,16], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [127,21], "a": 1 }, + { "px": [352,0], "src": [32,32], "f": 0, "t": 48, "d": [127,22], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [127,23], "a": 1 }, + { "px": [384,0], "src": [32,32], "f": 0, "t": 48, "d": [127,24], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [127,25], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [127,27], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [127,28], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [127,31], "a": 1 }, + { "px": [0,304], "src": [32,32], "f": 0, "t": 48, "d": [127,608], "a": 1 }, + { "px": [240,320], "src": [32,32], "f": 0, "t": 48, "d": [127,655], "a": 1 }, + { "px": [240,336], "src": [32,32], "f": 0, "t": 48, "d": [127,687], "a": 1 }, + { "px": [240,352], "src": [32,32], "f": 0, "t": 48, "d": [127,719], "a": 1 }, + { "px": [480,368], "src": [32,32], "f": 0, "t": 48, "d": [127,766], "a": 1 }, + { "px": [496,368], "src": [32,32], "f": 0, "t": 48, "d": [127,767], "a": 1 }, + { "px": [464,384], "src": [32,32], "f": 0, "t": 48, "d": [127,797], "a": 1 }, + { "px": [496,384], "src": [32,32], "f": 0, "t": 48, "d": [127,799], "a": 1 }, + { "px": [464,400], "src": [32,32], "f": 0, "t": 48, "d": [127,829], "a": 1 }, + { "px": [480,400], "src": [32,32], "f": 0, "t": 48, "d": [127,830], "a": 1 }, + { "px": [496,400], "src": [32,32], "f": 0, "t": 48, "d": [127,831], "a": 1 }, + { "px": [464,416], "src": [32,32], "f": 0, "t": 48, "d": [127,861], "a": 1 }, + { "px": [480,416], "src": [32,32], "f": 0, "t": 48, "d": [127,862], "a": 1 }, + { "px": [496,416], "src": [32,32], "f": 0, "t": 48, "d": [127,863], "a": 1 }, + { "px": [464,432], "src": [32,32], "f": 0, "t": 48, "d": [127,893], "a": 1 }, + { "px": [480,432], "src": [32,32], "f": 0, "t": 48, "d": [127,894], "a": 1 }, + { "px": [496,432], "src": [32,32], "f": 0, "t": 48, "d": [127,895], "a": 1 }, + { "px": [464,448], "src": [32,32], "f": 0, "t": 48, "d": [127,925], "a": 1 }, + { "px": [480,448], "src": [32,32], "f": 0, "t": 48, "d": [127,926], "a": 1 }, + { "px": [496,448], "src": [32,32], "f": 0, "t": 48, "d": [127,927], "a": 1 }, + { "px": [464,464], "src": [32,32], "f": 0, "t": 48, "d": [127,957], "a": 1 }, + { "px": [480,464], "src": [32,32], "f": 0, "t": 48, "d": [127,958], "a": 1 }, + { "px": [496,464], "src": [32,32], "f": 0, "t": 48, "d": [127,959], "a": 1 }, + { "px": [0,480], "src": [32,32], "f": 0, "t": 48, "d": [127,960], "a": 1 }, + { "px": [464,480], "src": [32,32], "f": 0, "t": 48, "d": [127,989], "a": 1 }, + { "px": [496,480], "src": [32,32], "f": 0, "t": 48, "d": [127,991], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,992], "a": 1 }, + { "px": [464,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1021], "a": 1 }, + { "px": [480,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1022], "a": 1 }, + { "px": [96,0], "src": [64,96], "f": 0, "t": 142, "d": [126,6], "a": 1 }, + { "px": [160,0], "src": [96,96], "f": 0, "t": 144, "d": [126,10], "a": 1 }, + { "px": [288,0], "src": [64,96], "f": 0, "t": 142, "d": [126,18], "a": 1 }, + { "px": [320,0], "src": [96,96], "f": 0, "t": 144, "d": [126,20], "a": 1 }, + { "px": [416,0], "src": [96,96], "f": 0, "t": 144, "d": [126,26], "a": 1 }, + { "px": [480,0], "src": [64,96], "f": 0, "t": 142, "d": [126,30], "a": 1 }, + { "px": [240,304], "src": [96,96], "f": 0, "t": 144, "d": [126,623], "a": 1 }, + { "px": [464,368], "src": [96,96], "f": 0, "t": 144, "d": [126,765], "a": 1 }, + { "px": [480,384], "src": [64,96], "f": 0, "t": 142, "d": [126,798], "a": 1 }, + { "px": [480,480], "src": [96,96], "f": 0, "t": 144, "d": [126,990], "a": 1 }, + { "px": [496,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1023], "a": 1 }, + { "px": [32,48], "src": [256,160], "f": 0, "t": 246, "d": [12,98], "a": 1 }, + { "px": [48,48], "src": [256,160], "f": 0, "t": 246, "d": [12,99], "a": 1 }, + { "px": [80,48], "src": [256,160], "f": 0, "t": 246, "d": [12,101], "a": 1 }, + { "px": [96,48], "src": [256,160], "f": 0, "t": 246, "d": [12,102], "a": 1 }, + { "px": [112,48], "src": [256,160], "f": 0, "t": 246, "d": [12,103], "a": 1 }, + { "px": [128,48], "src": [256,160], "f": 0, "t": 246, "d": [12,104], "a": 1 }, + { "px": [240,48], "src": [256,160], "f": 0, "t": 246, "d": [12,111], "a": 1 }, + { "px": [256,48], "src": [256,160], "f": 0, "t": 246, "d": [12,112], "a": 1 }, + { "px": [288,48], "src": [256,160], "f": 0, "t": 246, "d": [12,114], "a": 1 }, + { "px": [336,48], "src": [256,160], "f": 0, "t": 246, "d": [12,117], "a": 1 }, + { "px": [352,48], "src": [256,160], "f": 0, "t": 246, "d": [12,118], "a": 1 }, + { "px": [368,48], "src": [256,160], "f": 0, "t": 246, "d": [12,119], "a": 1 }, + { "px": [400,48], "src": [256,160], "f": 0, "t": 246, "d": [12,121], "a": 1 }, + { "px": [416,48], "src": [256,160], "f": 0, "t": 246, "d": [12,122], "a": 1 }, + { "px": [432,48], "src": [256,160], "f": 0, "t": 246, "d": [12,123], "a": 1 }, + { "px": [448,48], "src": [256,160], "f": 0, "t": 246, "d": [12,124], "a": 1 }, + { "px": [464,48], "src": [256,160], "f": 0, "t": 246, "d": [12,125], "a": 1 }, + { "px": [320,272], "src": [256,160], "f": 0, "t": 246, "d": [12,564], "a": 1 }, + { "px": [336,272], "src": [256,160], "f": 0, "t": 246, "d": [12,565], "a": 1 }, + { "px": [352,272], "src": [256,160], "f": 0, "t": 246, "d": [12,566], "a": 1 }, + { "px": [464,272], "src": [256,160], "f": 0, "t": 246, "d": [12,573], "a": 1 }, + { "px": [480,272], "src": [256,160], "f": 0, "t": 246, "d": [12,574], "a": 1 }, + { "px": [496,272], "src": [256,160], "f": 0, "t": 246, "d": [12,575], "a": 1 }, + { "px": [80,288], "src": [256,160], "f": 0, "t": 246, "d": [12,581], "a": 1 }, + { "px": [0,352], "src": [256,160], "f": 0, "t": 246, "d": [12,704], "a": 1 }, + { "px": [16,352], "src": [256,160], "f": 0, "t": 246, "d": [12,705], "a": 1 }, + { "px": [32,352], "src": [256,160], "f": 0, "t": 246, "d": [12,706], "a": 1 }, + { "px": [240,400], "src": [256,160], "f": 0, "t": 246, "d": [12,815], "a": 1 }, + { "px": [32,256], "src": [256,96], "f": 0, "t": 154, "d": [9,514], "a": 1 }, + { "px": [48,256], "src": [256,96], "f": 0, "t": 154, "d": [9,515], "a": 1 }, + { "px": [64,256], "src": [256,96], "f": 0, "t": 154, "d": [9,516], "a": 1 }, + { "px": [112,256], "src": [256,96], "f": 0, "t": 154, "d": [9,519], "a": 1 }, + { "px": [336,256], "src": [256,96], "f": 0, "t": 154, "d": [9,533], "a": 1 }, + { "px": [352,256], "src": [256,96], "f": 0, "t": 154, "d": [9,534], "a": 1 }, + { "px": [368,256], "src": [256,96], "f": 0, "t": 154, "d": [9,535], "a": 1 }, + { "px": [480,320], "src": [256,96], "f": 0, "t": 154, "d": [9,670], "a": 1 }, + { "px": [160,352], "src": [256,96], "f": 0, "t": 154, "d": [9,714], "a": 1 }, + { "px": [176,352], "src": [256,96], "f": 0, "t": 154, "d": [9,715], "a": 1 }, + { "px": [0,432], "src": [256,96], "f": 0, "t": 154, "d": [9,864], "a": 1 }, + { "px": [16,432], "src": [256,96], "f": 0, "t": 154, "d": [9,865], "a": 1 }, + { "px": [64,464], "src": [256,96], "f": 0, "t": 154, "d": [9,932], "a": 1 }, + { "px": [80,464], "src": [256,96], "f": 0, "t": 154, "d": [9,933], "a": 1 }, + { "px": [96,464], "src": [256,96], "f": 0, "t": 154, "d": [9,934], "a": 1 }, + { "px": [112,464], "src": [256,96], "f": 0, "t": 154, "d": [9,935], "a": 1 }, + { "px": [128,464], "src": [256,96], "f": 0, "t": 154, "d": [9,936], "a": 1 }, + { "px": [144,464], "src": [256,96], "f": 0, "t": 154, "d": [9,937], "a": 1 }, + { "px": [160,464], "src": [256,96], "f": 0, "t": 154, "d": [9,938], "a": 1 }, + { "px": [176,464], "src": [256,96], "f": 0, "t": 154, "d": [9,939], "a": 1 }, + { "px": [192,464], "src": [256,96], "f": 0, "t": 154, "d": [9,940], "a": 1 }, + { "px": [208,464], "src": [256,96], "f": 0, "t": 154, "d": [9,941], "a": 1 }, + { "px": [224,464], "src": [256,96], "f": 0, "t": 154, "d": [9,942], "a": 1 }, + { "px": [240,464], "src": [256,96], "f": 0, "t": 154, "d": [9,943], "a": 1 }, + { "px": [256,464], "src": [256,96], "f": 0, "t": 154, "d": [9,944], "a": 1 }, + { "px": [272,464], "src": [256,96], "f": 0, "t": 154, "d": [9,945], "a": 1 }, + { "px": [288,464], "src": [256,96], "f": 0, "t": 154, "d": [9,946], "a": 1 }, + { "px": [304,464], "src": [256,96], "f": 0, "t": 154, "d": [9,947], "a": 1 }, + { "px": [320,464], "src": [256,96], "f": 0, "t": 154, "d": [9,948], "a": 1 }, + { "px": [336,464], "src": [256,96], "f": 0, "t": 154, "d": [9,949], "a": 1 }, + { "px": [352,464], "src": [256,96], "f": 0, "t": 154, "d": [9,950], "a": 1 }, + { "px": [368,464], "src": [256,96], "f": 0, "t": 154, "d": [9,951], "a": 1 }, + { "px": [384,464], "src": [256,96], "f": 0, "t": 154, "d": [9,952], "a": 1 }, + { "px": [400,464], "src": [256,96], "f": 0, "t": 154, "d": [9,953], "a": 1 }, + { "px": [16,64], "src": [224,128], "f": 1, "t": 198, "d": [10,129], "a": 1 }, + { "px": [480,64], "src": [224,128], "f": 0, "t": 198, "d": [10,158], "a": 1 }, + { "px": [16,80], "src": [224,128], "f": 1, "t": 198, "d": [10,161], "a": 1 }, + { "px": [480,80], "src": [224,128], "f": 0, "t": 198, "d": [10,190], "a": 1 }, + { "px": [16,96], "src": [224,128], "f": 1, "t": 198, "d": [10,193], "a": 1 }, + { "px": [480,96], "src": [224,128], "f": 0, "t": 198, "d": [10,222], "a": 1 }, + { "px": [16,112], "src": [224,128], "f": 1, "t": 198, "d": [10,225], "a": 1 }, + { "px": [480,112], "src": [224,128], "f": 0, "t": 198, "d": [10,254], "a": 1 }, + { "px": [16,128], "src": [224,128], "f": 1, "t": 198, "d": [10,257], "a": 1 }, + { "px": [480,128], "src": [224,128], "f": 0, "t": 198, "d": [10,286], "a": 1 }, + { "px": [16,144], "src": [224,128], "f": 1, "t": 198, "d": [10,289], "a": 1 }, + { "px": [480,144], "src": [224,128], "f": 0, "t": 198, "d": [10,318], "a": 1 }, + { "px": [16,160], "src": [224,128], "f": 1, "t": 198, "d": [10,321], "a": 1 }, + { "px": [480,160], "src": [224,128], "f": 0, "t": 198, "d": [10,350], "a": 1 }, + { "px": [16,176], "src": [224,128], "f": 1, "t": 198, "d": [10,353], "a": 1 }, + { "px": [480,176], "src": [224,128], "f": 0, "t": 198, "d": [10,382], "a": 1 }, + { "px": [16,192], "src": [224,128], "f": 1, "t": 198, "d": [10,385], "a": 1 }, + { "px": [480,192], "src": [224,128], "f": 0, "t": 198, "d": [10,414], "a": 1 }, + { "px": [16,208], "src": [224,128], "f": 1, "t": 198, "d": [10,417], "a": 1 }, + { "px": [480,208], "src": [224,128], "f": 0, "t": 198, "d": [10,446], "a": 1 }, + { "px": [16,224], "src": [224,128], "f": 1, "t": 198, "d": [10,449], "a": 1 }, + { "px": [480,224], "src": [224,128], "f": 0, "t": 198, "d": [10,478], "a": 1 }, + { "px": [16,240], "src": [224,128], "f": 1, "t": 198, "d": [10,481], "a": 1 }, + { "px": [480,240], "src": [224,128], "f": 0, "t": 198, "d": [10,510], "a": 1 }, + { "px": [128,272], "src": [224,128], "f": 1, "t": 198, "d": [10,552], "a": 1 }, + { "px": [192,272], "src": [224,128], "f": 0, "t": 198, "d": [10,556], "a": 1 }, + { "px": [192,288], "src": [224,128], "f": 0, "t": 198, "d": [10,588], "a": 1 }, + { "px": [288,288], "src": [224,128], "f": 1, "t": 198, "d": [10,594], "a": 1 }, + { "px": [48,304], "src": [224,128], "f": 1, "t": 198, "d": [10,611], "a": 1 }, + { "px": [192,304], "src": [224,128], "f": 0, "t": 198, "d": [10,620], "a": 1 }, + { "px": [288,304], "src": [224,128], "f": 1, "t": 198, "d": [10,626], "a": 1 }, + { "px": [48,320], "src": [224,128], "f": 1, "t": 198, "d": [10,643], "a": 1 }, + { "px": [192,320], "src": [224,128], "f": 0, "t": 198, "d": [10,652], "a": 1 }, + { "px": [288,320], "src": [224,128], "f": 1, "t": 198, "d": [10,658], "a": 1 }, + { "px": [48,336], "src": [224,128], "f": 1, "t": 198, "d": [10,675], "a": 1 }, + { "px": [192,336], "src": [224,128], "f": 0, "t": 198, "d": [10,684], "a": 1 }, + { "px": [288,336], "src": [224,128], "f": 1, "t": 198, "d": [10,690], "a": 1 }, + { "px": [416,336], "src": [224,128], "f": 0, "t": 198, "d": [10,698], "a": 1 }, + { "px": [288,352], "src": [224,128], "f": 1, "t": 198, "d": [10,722], "a": 1 }, + { "px": [416,352], "src": [224,128], "f": 0, "t": 198, "d": [10,730], "a": 1 }, + { "px": [192,368], "src": [224,128], "f": 0, "t": 198, "d": [10,748], "a": 1 }, + { "px": [288,368], "src": [224,128], "f": 1, "t": 198, "d": [10,754], "a": 1 }, + { "px": [416,368], "src": [224,128], "f": 0, "t": 198, "d": [10,762], "a": 1 }, + { "px": [192,384], "src": [224,128], "f": 0, "t": 198, "d": [10,780], "a": 1 }, + { "px": [288,384], "src": [224,128], "f": 1, "t": 198, "d": [10,786], "a": 1 }, + { "px": [416,384], "src": [224,128], "f": 0, "t": 198, "d": [10,794], "a": 1 }, + { "px": [416,400], "src": [224,128], "f": 0, "t": 198, "d": [10,826], "a": 1 }, + { "px": [416,416], "src": [224,128], "f": 0, "t": 198, "d": [10,858], "a": 1 }, + { "px": [416,432], "src": [224,128], "f": 0, "t": 198, "d": [10,890], "a": 1 }, + { "px": [48,448], "src": [224,128], "f": 1, "t": 198, "d": [10,899], "a": 1 }, + { "px": [416,448], "src": [224,128], "f": 0, "t": 198, "d": [10,922], "a": 1 }, + { "px": [128,256], "src": [224,96], "f": 1, "t": 152, "d": [11,520], "a": 1 }, + { "px": [384,256], "src": [224,96], "f": 1, "t": 152, "d": [11,536], "a": 1 }, + { "px": [384,272], "src": [224,96], "f": 3, "t": 152, "d": [11,568], "a": 1 }, + { "px": [128,288], "src": [224,96], "f": 3, "t": 152, "d": [11,584], "a": 1 }, + { "px": [416,320], "src": [224,96], "f": 0, "t": 152, "d": [11,666], "a": 1 }, + { "px": [48,352], "src": [224,96], "f": 3, "t": 152, "d": [11,707], "a": 1 }, + { "px": [144,352], "src": [224,96], "f": 0, "t": 152, "d": [11,713], "a": 1 }, + { "px": [16,48], "src": [224,96], "f": 0, "t": 152, "d": [14,97], "a": 1 }, + { "px": [480,48], "src": [224,96], "f": 1, "t": 152, "d": [14,126], "a": 1 }, + { "px": [16,256], "src": [224,96], "f": 2, "t": 152, "d": [14,513], "a": 1 }, + { "px": [480,256], "src": [224,96], "f": 3, "t": 152, "d": [14,542], "a": 1 }, + { "px": [288,272], "src": [224,96], "f": 0, "t": 152, "d": [14,562], "a": 1 }, + { "px": [48,288], "src": [224,96], "f": 0, "t": 152, "d": [14,579], "a": 1 }, + { "px": [192,352], "src": [224,96], "f": 1, "t": 152, "d": [14,716], "a": 1 }, + { "px": [48,464], "src": [224,96], "f": 2, "t": 152, "d": [14,931], "a": 1 }, + { "px": [416,464], "src": [224,96], "f": 3, "t": 152, "d": [14,954], "a": 1 }, + { "px": [64,48], "src": [160,192], "f": 0, "t": 286, "d": [78,100], "a": 1 }, + { "px": [144,48], "src": [160,192], "f": 0, "t": 286, "d": [78,105], "a": 1 }, + { "px": [160,48], "src": [160,192], "f": 0, "t": 286, "d": [78,106], "a": 1 }, + { "px": [176,48], "src": [160,192], "f": 0, "t": 286, "d": [78,107], "a": 1 }, + { "px": [192,48], "src": [192,192], "f": 0, "t": 288, "d": [78,108], "a": 1 }, + { "px": [208,48], "src": [192,192], "f": 0, "t": 288, "d": [78,109], "a": 1 }, + { "px": [224,48], "src": [192,192], "f": 0, "t": 288, "d": [78,110], "a": 1 }, + { "px": [272,48], "src": [192,192], "f": 0, "t": 288, "d": [78,113], "a": 1 }, + { "px": [304,48], "src": [160,192], "f": 0, "t": 286, "d": [78,115], "a": 1 }, + { "px": [320,48], "src": [160,192], "f": 0, "t": 286, "d": [78,116], "a": 1 }, + { "px": [384,48], "src": [192,192], "f": 0, "t": 288, "d": [78,120], "a": 1 }, + { "px": [304,272], "src": [160,192], "f": 0, "t": 286, "d": [78,563], "a": 1 }, + { "px": [368,272], "src": [192,192], "f": 0, "t": 288, "d": [78,567], "a": 1 }, + { "px": [448,272], "src": [160,192], "f": 0, "t": 286, "d": [78,572], "a": 1 }, + { "px": [64,288], "src": [192,192], "f": 0, "t": 288, "d": [78,580], "a": 1 }, + { "px": [96,288], "src": [160,192], "f": 0, "t": 286, "d": [78,582], "a": 1 }, + { "px": [112,288], "src": [160,192], "f": 0, "t": 286, "d": [78,583], "a": 1 }, + { "px": [192,400], "src": [192,192], "f": 0, "t": 288, "d": [78,812], "a": 1 }, + { "px": [208,400], "src": [160,192], "f": 0, "t": 286, "d": [78,813], "a": 1 }, + { "px": [224,400], "src": [192,192], "f": 0, "t": 288, "d": [78,814], "a": 1 }, + { "px": [256,400], "src": [160,192], "f": 0, "t": 286, "d": [78,816], "a": 1 }, + { "px": [272,400], "src": [160,192], "f": 0, "t": 286, "d": [78,817], "a": 1 }, + { "px": [288,400], "src": [192,192], "f": 0, "t": 288, "d": [78,818], "a": 1 }, + { "px": [80,256], "src": [32,0], "f": 0, "t": 2, "d": [80,517], "a": 1 }, + { "px": [96,256], "src": [32,0], "f": 0, "t": 2, "d": [80,518], "a": 1 }, + { "px": [192,256], "src": [32,0], "f": 0, "t": 2, "d": [80,524], "a": 1 }, + { "px": [208,256], "src": [32,0], "f": 0, "t": 2, "d": [80,525], "a": 1 }, + { "px": [224,256], "src": [32,0], "f": 0, "t": 2, "d": [80,526], "a": 1 }, + { "px": [240,256], "src": [32,0], "f": 0, "t": 2, "d": [80,527], "a": 1 }, + { "px": [256,256], "src": [32,0], "f": 0, "t": 2, "d": [80,528], "a": 1 }, + { "px": [272,256], "src": [32,0], "f": 0, "t": 2, "d": [80,529], "a": 1 }, + { "px": [288,256], "src": [32,0], "f": 0, "t": 2, "d": [80,530], "a": 1 }, + { "px": [304,256], "src": [32,0], "f": 0, "t": 2, "d": [80,531], "a": 1 }, + { "px": [320,256], "src": [32,0], "f": 0, "t": 2, "d": [80,532], "a": 1 }, + { "px": [448,256], "src": [32,0], "f": 0, "t": 2, "d": [80,540], "a": 1 }, + { "px": [464,256], "src": [32,0], "f": 0, "t": 2, "d": [80,541], "a": 1 }, + { "px": [432,320], "src": [32,0], "f": 0, "t": 2, "d": [80,667], "a": 1 }, + { "px": [448,320], "src": [32,0], "f": 0, "t": 2, "d": [80,668], "a": 1 }, + { "px": [464,320], "src": [32,0], "f": 0, "t": 2, "d": [80,669], "a": 1 }, + { "px": [496,320], "src": [32,0], "f": 0, "t": 2, "d": [80,671], "a": 1 }, + { "px": [32,432], "src": [32,0], "f": 0, "t": 2, "d": [80,866], "a": 1 }, + { "px": [48,432], "src": [32,0], "f": 0, "t": 2, "d": [80,867], "a": 1 }, + { "px": [48,240], "src": [0,96], "f": 0, "t": 138, "d": [110,483], "a": 1 }, + { "px": [64,240], "src": [32,96], "f": 0, "t": 140, "d": [110,484], "a": 1 }, + { "px": [112,240], "src": [0,96], "f": 0, "t": 138, "d": [110,487], "a": 1 }, + { "px": [128,240], "src": [0,96], "f": 0, "t": 138, "d": [110,488], "a": 1 }, + { "px": [192,240], "src": [0,96], "f": 0, "t": 138, "d": [110,492], "a": 1 }, + { "px": [256,240], "src": [0,96], "f": 0, "t": 138, "d": [110,496], "a": 1 }, + { "px": [272,240], "src": [32,96], "f": 0, "t": 140, "d": [110,497], "a": 1 }, + { "px": [288,240], "src": [32,96], "f": 0, "t": 140, "d": [110,498], "a": 1 }, + { "px": [320,240], "src": [32,96], "f": 0, "t": 140, "d": [110,500], "a": 1 }, + { "px": [336,240], "src": [0,96], "f": 0, "t": 138, "d": [110,501], "a": 1 }, + { "px": [352,240], "src": [0,96], "f": 0, "t": 138, "d": [110,502], "a": 1 }, + { "px": [368,240], "src": [32,96], "f": 0, "t": 140, "d": [110,503], "a": 1 }, + { "px": [448,240], "src": [32,96], "f": 0, "t": 140, "d": [110,508], "a": 1 }, + { "px": [464,240], "src": [0,96], "f": 0, "t": 138, "d": [110,509], "a": 1 }, + { "px": [432,304], "src": [32,96], "f": 0, "t": 140, "d": [110,635], "a": 1 }, + { "px": [464,304], "src": [0,96], "f": 0, "t": 138, "d": [110,637], "a": 1 }, + { "px": [496,304], "src": [0,96], "f": 0, "t": 138, "d": [110,639], "a": 1 }, + { "px": [16,416], "src": [0,96], "f": 0, "t": 138, "d": [110,833], "a": 1 }, + { "px": [32,416], "src": [0,96], "f": 0, "t": 138, "d": [110,834], "a": 1 } + ], + "seed": 7617962, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a3729920-66b0-11ec-9cd7-47f5874270e3", + "levelId": 51, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [48,64], "src": [320,272], "f": 0, "t": 411, "d": [108,131], "a": 1 }, + { "px": [80,64], "src": [320,272], "f": 0, "t": 411, "d": [108,133], "a": 1 }, + { "px": [96,64], "src": [320,272], "f": 0, "t": 411, "d": [108,134], "a": 1 }, + { "px": [112,64], "src": [320,272], "f": 0, "t": 411, "d": [108,135], "a": 1 }, + { "px": [144,64], "src": [320,272], "f": 0, "t": 411, "d": [108,137], "a": 1 }, + { "px": [160,64], "src": [320,272], "f": 0, "t": 411, "d": [108,138], "a": 1 }, + { "px": [176,64], "src": [320,272], "f": 0, "t": 411, "d": [108,139], "a": 1 }, + { "px": [192,64], "src": [320,272], "f": 0, "t": 411, "d": [108,140], "a": 1 }, + { "px": [208,64], "src": [320,272], "f": 0, "t": 411, "d": [108,141], "a": 1 }, + { "px": [224,64], "src": [320,272], "f": 0, "t": 411, "d": [108,142], "a": 1 }, + { "px": [256,64], "src": [320,272], "f": 0, "t": 411, "d": [108,144], "a": 1 }, + { "px": [272,64], "src": [320,272], "f": 0, "t": 411, "d": [108,145], "a": 1 }, + { "px": [288,64], "src": [320,272], "f": 0, "t": 411, "d": [108,146], "a": 1 }, + { "px": [304,64], "src": [320,272], "f": 0, "t": 411, "d": [108,147], "a": 1 }, + { "px": [320,64], "src": [320,272], "f": 0, "t": 411, "d": [108,148], "a": 1 }, + { "px": [336,64], "src": [320,272], "f": 0, "t": 411, "d": [108,149], "a": 1 }, + { "px": [352,64], "src": [320,272], "f": 0, "t": 411, "d": [108,150], "a": 1 }, + { "px": [368,64], "src": [320,272], "f": 0, "t": 411, "d": [108,151], "a": 1 }, + { "px": [416,64], "src": [320,272], "f": 0, "t": 411, "d": [108,154], "a": 1 }, + { "px": [432,64], "src": [320,272], "f": 0, "t": 411, "d": [108,155], "a": 1 }, + { "px": [448,64], "src": [320,272], "f": 0, "t": 411, "d": [108,156], "a": 1 }, + { "px": [48,80], "src": [320,272], "f": 0, "t": 411, "d": [108,163], "a": 1 }, + { "px": [64,80], "src": [320,272], "f": 0, "t": 411, "d": [108,164], "a": 1 }, + { "px": [80,80], "src": [320,272], "f": 0, "t": 411, "d": [108,165], "a": 1 }, + { "px": [96,80], "src": [320,272], "f": 0, "t": 411, "d": [108,166], "a": 1 }, + { "px": [112,80], "src": [320,272], "f": 0, "t": 411, "d": [108,167], "a": 1 }, + { "px": [128,80], "src": [320,272], "f": 0, "t": 411, "d": [108,168], "a": 1 }, + { "px": [144,80], "src": [320,272], "f": 0, "t": 411, "d": [108,169], "a": 1 }, + { "px": [160,80], "src": [320,272], "f": 0, "t": 411, "d": [108,170], "a": 1 }, + { "px": [176,80], "src": [320,272], "f": 0, "t": 411, "d": [108,171], "a": 1 }, + { "px": [192,80], "src": [320,272], "f": 0, "t": 411, "d": [108,172], "a": 1 }, + { "px": [208,80], "src": [320,272], "f": 0, "t": 411, "d": [108,173], "a": 1 }, + { "px": [224,80], "src": [320,272], "f": 0, "t": 411, "d": [108,174], "a": 1 }, + { "px": [240,80], "src": [320,272], "f": 0, "t": 411, "d": [108,175], "a": 1 }, + { "px": [256,80], "src": [320,272], "f": 0, "t": 411, "d": [108,176], "a": 1 }, + { "px": [272,80], "src": [320,272], "f": 0, "t": 411, "d": [108,177], "a": 1 }, + { "px": [288,80], "src": [320,272], "f": 0, "t": 411, "d": [108,178], "a": 1 }, + { "px": [304,80], "src": [320,272], "f": 0, "t": 411, "d": [108,179], "a": 1 }, + { "px": [320,80], "src": [320,272], "f": 0, "t": 411, "d": [108,180], "a": 1 }, + { "px": [336,80], "src": [320,272], "f": 0, "t": 411, "d": [108,181], "a": 1 }, + { "px": [352,80], "src": [320,272], "f": 0, "t": 411, "d": [108,182], "a": 1 }, + { "px": [368,80], "src": [320,272], "f": 0, "t": 411, "d": [108,183], "a": 1 }, + { "px": [384,80], "src": [320,272], "f": 0, "t": 411, "d": [108,184], "a": 1 }, + { "px": [400,80], "src": [320,272], "f": 0, "t": 411, "d": [108,185], "a": 1 }, + { "px": [416,80], "src": [320,272], "f": 0, "t": 411, "d": [108,186], "a": 1 }, + { "px": [432,80], "src": [320,272], "f": 0, "t": 411, "d": [108,187], "a": 1 }, + { "px": [448,80], "src": [320,272], "f": 0, "t": 411, "d": [108,188], "a": 1 }, + { "px": [48,96], "src": [320,272], "f": 0, "t": 411, "d": [108,195], "a": 1 }, + { "px": [64,96], "src": [320,272], "f": 0, "t": 411, "d": [108,196], "a": 1 }, + { "px": [96,96], "src": [320,272], "f": 0, "t": 411, "d": [108,198], "a": 1 }, + { "px": [112,96], "src": [320,272], "f": 0, "t": 411, "d": [108,199], "a": 1 }, + { "px": [128,96], "src": [320,272], "f": 0, "t": 411, "d": [108,200], "a": 1 }, + { "px": [144,96], "src": [320,272], "f": 0, "t": 411, "d": [108,201], "a": 1 }, + { "px": [160,96], "src": [320,272], "f": 0, "t": 411, "d": [108,202], "a": 1 }, + { "px": [192,96], "src": [320,272], "f": 0, "t": 411, "d": [108,204], "a": 1 }, + { "px": [208,96], "src": [320,272], "f": 0, "t": 411, "d": [108,205], "a": 1 }, + { "px": [240,96], "src": [320,272], "f": 0, "t": 411, "d": [108,207], "a": 1 }, + { "px": [256,96], "src": [320,272], "f": 0, "t": 411, "d": [108,208], "a": 1 }, + { "px": [272,96], "src": [320,272], "f": 0, "t": 411, "d": [108,209], "a": 1 }, + { "px": [288,96], "src": [320,272], "f": 0, "t": 411, "d": [108,210], "a": 1 }, + { "px": [304,96], "src": [320,272], "f": 0, "t": 411, "d": [108,211], "a": 1 }, + { "px": [320,96], "src": [320,272], "f": 0, "t": 411, "d": [108,212], "a": 1 }, + { "px": [336,96], "src": [320,272], "f": 0, "t": 411, "d": [108,213], "a": 1 }, + { "px": [352,96], "src": [320,272], "f": 0, "t": 411, "d": [108,214], "a": 1 }, + { "px": [368,96], "src": [320,272], "f": 0, "t": 411, "d": [108,215], "a": 1 }, + { "px": [384,96], "src": [320,272], "f": 0, "t": 411, "d": [108,216], "a": 1 }, + { "px": [400,96], "src": [320,272], "f": 0, "t": 411, "d": [108,217], "a": 1 }, + { "px": [432,96], "src": [320,272], "f": 0, "t": 411, "d": [108,219], "a": 1 }, + { "px": [448,96], "src": [320,272], "f": 0, "t": 411, "d": [108,220], "a": 1 }, + { "px": [48,112], "src": [320,272], "f": 0, "t": 411, "d": [108,227], "a": 1 }, + { "px": [64,112], "src": [320,272], "f": 0, "t": 411, "d": [108,228], "a": 1 }, + { "px": [80,112], "src": [320,272], "f": 0, "t": 411, "d": [108,229], "a": 1 }, + { "px": [96,112], "src": [320,272], "f": 0, "t": 411, "d": [108,230], "a": 1 }, + { "px": [112,112], "src": [320,272], "f": 0, "t": 411, "d": [108,231], "a": 1 }, + { "px": [128,112], "src": [320,272], "f": 0, "t": 411, "d": [108,232], "a": 1 }, + { "px": [144,112], "src": [320,272], "f": 0, "t": 411, "d": [108,233], "a": 1 }, + { "px": [160,112], "src": [320,272], "f": 0, "t": 411, "d": [108,234], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [108,235], "a": 1 }, + { "px": [192,112], "src": [320,272], "f": 0, "t": 411, "d": [108,236], "a": 1 }, + { "px": [208,112], "src": [320,272], "f": 0, "t": 411, "d": [108,237], "a": 1 }, + { "px": [224,112], "src": [320,272], "f": 0, "t": 411, "d": [108,238], "a": 1 }, + { "px": [240,112], "src": [320,272], "f": 0, "t": 411, "d": [108,239], "a": 1 }, + { "px": [256,112], "src": [320,272], "f": 0, "t": 411, "d": [108,240], "a": 1 }, + { "px": [272,112], "src": [320,272], "f": 0, "t": 411, "d": [108,241], "a": 1 }, + { "px": [288,112], "src": [320,272], "f": 0, "t": 411, "d": [108,242], "a": 1 }, + { "px": [304,112], "src": [320,272], "f": 0, "t": 411, "d": [108,243], "a": 1 }, + { "px": [320,112], "src": [320,272], "f": 0, "t": 411, "d": [108,244], "a": 1 }, + { "px": [336,112], "src": [320,272], "f": 0, "t": 411, "d": [108,245], "a": 1 }, + { "px": [352,112], "src": [320,272], "f": 0, "t": 411, "d": [108,246], "a": 1 }, + { "px": [368,112], "src": [320,272], "f": 0, "t": 411, "d": [108,247], "a": 1 }, + { "px": [384,112], "src": [320,272], "f": 0, "t": 411, "d": [108,248], "a": 1 }, + { "px": [400,112], "src": [320,272], "f": 0, "t": 411, "d": [108,249], "a": 1 }, + { "px": [416,112], "src": [320,272], "f": 0, "t": 411, "d": [108,250], "a": 1 }, + { "px": [432,112], "src": [320,272], "f": 0, "t": 411, "d": [108,251], "a": 1 }, + { "px": [448,112], "src": [320,272], "f": 0, "t": 411, "d": [108,252], "a": 1 }, + { "px": [64,128], "src": [320,272], "f": 0, "t": 411, "d": [108,260], "a": 1 }, + { "px": [80,128], "src": [320,272], "f": 0, "t": 411, "d": [108,261], "a": 1 }, + { "px": [96,128], "src": [320,272], "f": 0, "t": 411, "d": [108,262], "a": 1 }, + { "px": [112,128], "src": [320,272], "f": 0, "t": 411, "d": [108,263], "a": 1 }, + { "px": [128,128], "src": [320,272], "f": 0, "t": 411, "d": [108,264], "a": 1 }, + { "px": [144,128], "src": [320,272], "f": 0, "t": 411, "d": [108,265], "a": 1 }, + { "px": [160,128], "src": [320,272], "f": 0, "t": 411, "d": [108,266], "a": 1 }, + { "px": [176,128], "src": [320,272], "f": 0, "t": 411, "d": [108,267], "a": 1 }, + { "px": [192,128], "src": [320,272], "f": 0, "t": 411, "d": [108,268], "a": 1 }, + { "px": [208,128], "src": [320,272], "f": 0, "t": 411, "d": [108,269], "a": 1 }, + { "px": [224,128], "src": [320,272], "f": 0, "t": 411, "d": [108,270], "a": 1 }, + { "px": [240,128], "src": [320,272], "f": 0, "t": 411, "d": [108,271], "a": 1 }, + { "px": [256,128], "src": [320,272], "f": 0, "t": 411, "d": [108,272], "a": 1 }, + { "px": [272,128], "src": [320,272], "f": 0, "t": 411, "d": [108,273], "a": 1 }, + { "px": [304,128], "src": [320,272], "f": 0, "t": 411, "d": [108,275], "a": 1 }, + { "px": [320,128], "src": [320,272], "f": 0, "t": 411, "d": [108,276], "a": 1 }, + { "px": [336,128], "src": [320,272], "f": 0, "t": 411, "d": [108,277], "a": 1 }, + { "px": [352,128], "src": [320,272], "f": 0, "t": 411, "d": [108,278], "a": 1 }, + { "px": [368,128], "src": [320,272], "f": 0, "t": 411, "d": [108,279], "a": 1 }, + { "px": [384,128], "src": [320,272], "f": 0, "t": 411, "d": [108,280], "a": 1 }, + { "px": [400,128], "src": [320,272], "f": 0, "t": 411, "d": [108,281], "a": 1 }, + { "px": [416,128], "src": [320,272], "f": 0, "t": 411, "d": [108,282], "a": 1 }, + { "px": [448,128], "src": [320,272], "f": 0, "t": 411, "d": [108,284], "a": 1 }, + { "px": [48,144], "src": [320,272], "f": 0, "t": 411, "d": [108,291], "a": 1 }, + { "px": [64,144], "src": [320,272], "f": 0, "t": 411, "d": [108,292], "a": 1 }, + { "px": [80,144], "src": [320,272], "f": 0, "t": 411, "d": [108,293], "a": 1 }, + { "px": [96,144], "src": [320,272], "f": 0, "t": 411, "d": [108,294], "a": 1 }, + { "px": [112,144], "src": [320,272], "f": 0, "t": 411, "d": [108,295], "a": 1 }, + { "px": [128,144], "src": [320,272], "f": 0, "t": 411, "d": [108,296], "a": 1 }, + { "px": [144,144], "src": [320,272], "f": 0, "t": 411, "d": [108,297], "a": 1 }, + { "px": [160,144], "src": [320,272], "f": 0, "t": 411, "d": [108,298], "a": 1 }, + { "px": [176,144], "src": [320,272], "f": 0, "t": 411, "d": [108,299], "a": 1 }, + { "px": [192,144], "src": [320,272], "f": 0, "t": 411, "d": [108,300], "a": 1 }, + { "px": [208,144], "src": [320,272], "f": 0, "t": 411, "d": [108,301], "a": 1 }, + { "px": [224,144], "src": [320,272], "f": 0, "t": 411, "d": [108,302], "a": 1 }, + { "px": [240,144], "src": [320,272], "f": 0, "t": 411, "d": [108,303], "a": 1 }, + { "px": [256,144], "src": [320,272], "f": 0, "t": 411, "d": [108,304], "a": 1 }, + { "px": [272,144], "src": [320,272], "f": 0, "t": 411, "d": [108,305], "a": 1 }, + { "px": [288,144], "src": [320,272], "f": 0, "t": 411, "d": [108,306], "a": 1 }, + { "px": [304,144], "src": [320,272], "f": 0, "t": 411, "d": [108,307], "a": 1 }, + { "px": [320,144], "src": [320,272], "f": 0, "t": 411, "d": [108,308], "a": 1 }, + { "px": [336,144], "src": [320,272], "f": 0, "t": 411, "d": [108,309], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [108,311], "a": 1 }, + { "px": [384,144], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [400,144], "src": [320,272], "f": 0, "t": 411, "d": [108,313], "a": 1 }, + { "px": [416,144], "src": [320,272], "f": 0, "t": 411, "d": [108,314], "a": 1 }, + { "px": [432,144], "src": [320,272], "f": 0, "t": 411, "d": [108,315], "a": 1 }, + { "px": [448,144], "src": [320,272], "f": 0, "t": 411, "d": [108,316], "a": 1 }, + { "px": [48,160], "src": [320,272], "f": 0, "t": 411, "d": [108,323], "a": 1 }, + { "px": [64,160], "src": [320,272], "f": 0, "t": 411, "d": [108,324], "a": 1 }, + { "px": [96,160], "src": [320,272], "f": 0, "t": 411, "d": [108,326], "a": 1 }, + { "px": [112,160], "src": [320,272], "f": 0, "t": 411, "d": [108,327], "a": 1 }, + { "px": [128,160], "src": [320,272], "f": 0, "t": 411, "d": [108,328], "a": 1 }, + { "px": [144,160], "src": [320,272], "f": 0, "t": 411, "d": [108,329], "a": 1 }, + { "px": [160,160], "src": [320,272], "f": 0, "t": 411, "d": [108,330], "a": 1 }, + { "px": [192,160], "src": [320,272], "f": 0, "t": 411, "d": [108,332], "a": 1 }, + { "px": [208,160], "src": [320,272], "f": 0, "t": 411, "d": [108,333], "a": 1 }, + { "px": [224,160], "src": [320,272], "f": 0, "t": 411, "d": [108,334], "a": 1 }, + { "px": [240,160], "src": [320,272], "f": 0, "t": 411, "d": [108,335], "a": 1 }, + { "px": [256,160], "src": [320,272], "f": 0, "t": 411, "d": [108,336], "a": 1 }, + { "px": [288,160], "src": [320,272], "f": 0, "t": 411, "d": [108,338], "a": 1 }, + { "px": [304,160], "src": [320,272], "f": 0, "t": 411, "d": [108,339], "a": 1 }, + { "px": [320,160], "src": [320,272], "f": 0, "t": 411, "d": [108,340], "a": 1 }, + { "px": [336,160], "src": [320,272], "f": 0, "t": 411, "d": [108,341], "a": 1 }, + { "px": [352,160], "src": [320,272], "f": 0, "t": 411, "d": [108,342], "a": 1 }, + { "px": [368,160], "src": [320,272], "f": 0, "t": 411, "d": [108,343], "a": 1 }, + { "px": [384,160], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [400,160], "src": [320,272], "f": 0, "t": 411, "d": [108,345], "a": 1 }, + { "px": [416,160], "src": [320,272], "f": 0, "t": 411, "d": [108,346], "a": 1 }, + { "px": [432,160], "src": [320,272], "f": 0, "t": 411, "d": [108,347], "a": 1 }, + { "px": [448,160], "src": [320,272], "f": 0, "t": 411, "d": [108,348], "a": 1 }, + { "px": [48,176], "src": [320,272], "f": 0, "t": 411, "d": [108,355], "a": 1 }, + { "px": [64,176], "src": [320,272], "f": 0, "t": 411, "d": [108,356], "a": 1 }, + { "px": [80,176], "src": [320,272], "f": 0, "t": 411, "d": [108,357], "a": 1 }, + { "px": [96,176], "src": [320,272], "f": 0, "t": 411, "d": [108,358], "a": 1 }, + { "px": [112,176], "src": [320,272], "f": 0, "t": 411, "d": [108,359], "a": 1 }, + { "px": [128,176], "src": [320,272], "f": 0, "t": 411, "d": [108,360], "a": 1 }, + { "px": [144,176], "src": [320,272], "f": 0, "t": 411, "d": [108,361], "a": 1 }, + { "px": [160,176], "src": [320,272], "f": 0, "t": 411, "d": [108,362], "a": 1 }, + { "px": [176,176], "src": [320,272], "f": 0, "t": 411, "d": [108,363], "a": 1 }, + { "px": [192,176], "src": [320,272], "f": 0, "t": 411, "d": [108,364], "a": 1 }, + { "px": [208,176], "src": [320,272], "f": 0, "t": 411, "d": [108,365], "a": 1 }, + { "px": [224,176], "src": [320,272], "f": 0, "t": 411, "d": [108,366], "a": 1 }, + { "px": [240,176], "src": [320,272], "f": 0, "t": 411, "d": [108,367], "a": 1 }, + { "px": [256,176], "src": [320,272], "f": 0, "t": 411, "d": [108,368], "a": 1 }, + { "px": [272,176], "src": [320,272], "f": 0, "t": 411, "d": [108,369], "a": 1 }, + { "px": [288,176], "src": [320,272], "f": 0, "t": 411, "d": [108,370], "a": 1 }, + { "px": [304,176], "src": [320,272], "f": 0, "t": 411, "d": [108,371], "a": 1 }, + { "px": [320,176], "src": [320,272], "f": 0, "t": 411, "d": [108,372], "a": 1 }, + { "px": [336,176], "src": [320,272], "f": 0, "t": 411, "d": [108,373], "a": 1 }, + { "px": [352,176], "src": [320,272], "f": 0, "t": 411, "d": [108,374], "a": 1 }, + { "px": [368,176], "src": [320,272], "f": 0, "t": 411, "d": [108,375], "a": 1 }, + { "px": [384,176], "src": [320,272], "f": 0, "t": 411, "d": [108,376], "a": 1 }, + { "px": [400,176], "src": [320,272], "f": 0, "t": 411, "d": [108,377], "a": 1 }, + { "px": [416,176], "src": [320,272], "f": 0, "t": 411, "d": [108,378], "a": 1 }, + { "px": [432,176], "src": [320,272], "f": 0, "t": 411, "d": [108,379], "a": 1 }, + { "px": [448,176], "src": [320,272], "f": 0, "t": 411, "d": [108,380], "a": 1 }, + { "px": [64,192], "src": [320,272], "f": 0, "t": 411, "d": [108,388], "a": 1 }, + { "px": [80,192], "src": [320,272], "f": 0, "t": 411, "d": [108,389], "a": 1 }, + { "px": [96,192], "src": [320,272], "f": 0, "t": 411, "d": [108,390], "a": 1 }, + { "px": [112,192], "src": [320,272], "f": 0, "t": 411, "d": [108,391], "a": 1 }, + { "px": [128,192], "src": [320,272], "f": 0, "t": 411, "d": [108,392], "a": 1 }, + { "px": [144,192], "src": [320,272], "f": 0, "t": 411, "d": [108,393], "a": 1 }, + { "px": [160,192], "src": [320,272], "f": 0, "t": 411, "d": [108,394], "a": 1 }, + { "px": [176,192], "src": [320,272], "f": 0, "t": 411, "d": [108,395], "a": 1 }, + { "px": [208,192], "src": [320,272], "f": 0, "t": 411, "d": [108,397], "a": 1 }, + { "px": [224,192], "src": [320,272], "f": 0, "t": 411, "d": [108,398], "a": 1 }, + { "px": [240,192], "src": [320,272], "f": 0, "t": 411, "d": [108,399], "a": 1 }, + { "px": [256,192], "src": [320,272], "f": 0, "t": 411, "d": [108,400], "a": 1 }, + { "px": [272,192], "src": [320,272], "f": 0, "t": 411, "d": [108,401], "a": 1 }, + { "px": [288,192], "src": [320,272], "f": 0, "t": 411, "d": [108,402], "a": 1 }, + { "px": [304,192], "src": [320,272], "f": 0, "t": 411, "d": [108,403], "a": 1 }, + { "px": [320,192], "src": [320,272], "f": 0, "t": 411, "d": [108,404], "a": 1 }, + { "px": [336,192], "src": [320,272], "f": 0, "t": 411, "d": [108,405], "a": 1 }, + { "px": [352,192], "src": [320,272], "f": 0, "t": 411, "d": [108,406], "a": 1 }, + { "px": [368,192], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [384,192], "src": [320,272], "f": 0, "t": 411, "d": [108,408], "a": 1 }, + { "px": [400,192], "src": [320,272], "f": 0, "t": 411, "d": [108,409], "a": 1 }, + { "px": [416,192], "src": [320,272], "f": 0, "t": 411, "d": [108,410], "a": 1 }, + { "px": [448,192], "src": [320,272], "f": 0, "t": 411, "d": [108,412], "a": 1 }, + { "px": [48,208], "src": [320,272], "f": 0, "t": 411, "d": [108,419], "a": 1 }, + { "px": [64,208], "src": [320,272], "f": 0, "t": 411, "d": [108,420], "a": 1 }, + { "px": [80,208], "src": [320,272], "f": 0, "t": 411, "d": [108,421], "a": 1 }, + { "px": [96,208], "src": [320,272], "f": 0, "t": 411, "d": [108,422], "a": 1 }, + { "px": [112,208], "src": [320,272], "f": 0, "t": 411, "d": [108,423], "a": 1 }, + { "px": [128,208], "src": [320,272], "f": 0, "t": 411, "d": [108,424], "a": 1 }, + { "px": [144,208], "src": [320,272], "f": 0, "t": 411, "d": [108,425], "a": 1 }, + { "px": [160,208], "src": [320,272], "f": 0, "t": 411, "d": [108,426], "a": 1 }, + { "px": [176,208], "src": [320,272], "f": 0, "t": 411, "d": [108,427], "a": 1 }, + { "px": [192,208], "src": [320,272], "f": 0, "t": 411, "d": [108,428], "a": 1 }, + { "px": [208,208], "src": [320,272], "f": 0, "t": 411, "d": [108,429], "a": 1 }, + { "px": [224,208], "src": [320,272], "f": 0, "t": 411, "d": [108,430], "a": 1 }, + { "px": [240,208], "src": [320,272], "f": 0, "t": 411, "d": [108,431], "a": 1 }, + { "px": [256,208], "src": [320,272], "f": 0, "t": 411, "d": [108,432], "a": 1 }, + { "px": [272,208], "src": [320,272], "f": 0, "t": 411, "d": [108,433], "a": 1 }, + { "px": [288,208], "src": [320,272], "f": 0, "t": 411, "d": [108,434], "a": 1 }, + { "px": [304,208], "src": [320,272], "f": 0, "t": 411, "d": [108,435], "a": 1 }, + { "px": [320,208], "src": [320,272], "f": 0, "t": 411, "d": [108,436], "a": 1 }, + { "px": [336,208], "src": [320,272], "f": 0, "t": 411, "d": [108,437], "a": 1 }, + { "px": [352,208], "src": [320,272], "f": 0, "t": 411, "d": [108,438], "a": 1 }, + { "px": [368,208], "src": [320,272], "f": 0, "t": 411, "d": [108,439], "a": 1 }, + { "px": [384,208], "src": [320,272], "f": 0, "t": 411, "d": [108,440], "a": 1 }, + { "px": [400,208], "src": [320,272], "f": 0, "t": 411, "d": [108,441], "a": 1 }, + { "px": [416,208], "src": [320,272], "f": 0, "t": 411, "d": [108,442], "a": 1 }, + { "px": [432,208], "src": [320,272], "f": 0, "t": 411, "d": [108,443], "a": 1 }, + { "px": [448,208], "src": [320,272], "f": 0, "t": 411, "d": [108,444], "a": 1 }, + { "px": [48,224], "src": [320,272], "f": 0, "t": 411, "d": [108,451], "a": 1 }, + { "px": [64,224], "src": [320,272], "f": 0, "t": 411, "d": [108,452], "a": 1 }, + { "px": [80,224], "src": [320,272], "f": 0, "t": 411, "d": [108,453], "a": 1 }, + { "px": [96,224], "src": [320,272], "f": 0, "t": 411, "d": [108,454], "a": 1 }, + { "px": [112,224], "src": [320,272], "f": 0, "t": 411, "d": [108,455], "a": 1 }, + { "px": [128,224], "src": [320,272], "f": 0, "t": 411, "d": [108,456], "a": 1 }, + { "px": [144,224], "src": [320,272], "f": 0, "t": 411, "d": [108,457], "a": 1 }, + { "px": [160,224], "src": [320,272], "f": 0, "t": 411, "d": [108,458], "a": 1 }, + { "px": [176,224], "src": [320,272], "f": 0, "t": 411, "d": [108,459], "a": 1 }, + { "px": [192,224], "src": [320,272], "f": 0, "t": 411, "d": [108,460], "a": 1 }, + { "px": [208,224], "src": [320,272], "f": 0, "t": 411, "d": [108,461], "a": 1 }, + { "px": [240,224], "src": [320,272], "f": 0, "t": 411, "d": [108,463], "a": 1 }, + { "px": [256,224], "src": [320,272], "f": 0, "t": 411, "d": [108,464], "a": 1 }, + { "px": [272,224], "src": [320,272], "f": 0, "t": 411, "d": [108,465], "a": 1 }, + { "px": [288,224], "src": [320,272], "f": 0, "t": 411, "d": [108,466], "a": 1 }, + { "px": [304,224], "src": [320,272], "f": 0, "t": 411, "d": [108,467], "a": 1 }, + { "px": [320,224], "src": [320,272], "f": 0, "t": 411, "d": [108,468], "a": 1 }, + { "px": [336,224], "src": [320,272], "f": 0, "t": 411, "d": [108,469], "a": 1 }, + { "px": [352,224], "src": [320,272], "f": 0, "t": 411, "d": [108,470], "a": 1 }, + { "px": [368,224], "src": [320,272], "f": 0, "t": 411, "d": [108,471], "a": 1 }, + { "px": [384,224], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [400,224], "src": [320,272], "f": 0, "t": 411, "d": [108,473], "a": 1 }, + { "px": [416,224], "src": [320,272], "f": 0, "t": 411, "d": [108,474], "a": 1 }, + { "px": [432,224], "src": [320,272], "f": 0, "t": 411, "d": [108,475], "a": 1 }, + { "px": [448,224], "src": [320,272], "f": 0, "t": 411, "d": [108,476], "a": 1 }, + { "px": [48,240], "src": [320,272], "f": 0, "t": 411, "d": [108,483], "a": 1 }, + { "px": [64,240], "src": [320,272], "f": 0, "t": 411, "d": [108,484], "a": 1 }, + { "px": [80,240], "src": [320,272], "f": 0, "t": 411, "d": [108,485], "a": 1 }, + { "px": [96,240], "src": [320,272], "f": 0, "t": 411, "d": [108,486], "a": 1 }, + { "px": [112,240], "src": [320,272], "f": 0, "t": 411, "d": [108,487], "a": 1 }, + { "px": [128,240], "src": [320,272], "f": 0, "t": 411, "d": [108,488], "a": 1 }, + { "px": [144,240], "src": [320,272], "f": 0, "t": 411, "d": [108,489], "a": 1 }, + { "px": [160,240], "src": [320,272], "f": 0, "t": 411, "d": [108,490], "a": 1 }, + { "px": [176,240], "src": [320,272], "f": 0, "t": 411, "d": [108,491], "a": 1 }, + { "px": [192,240], "src": [320,272], "f": 0, "t": 411, "d": [108,492], "a": 1 }, + { "px": [208,240], "src": [320,272], "f": 0, "t": 411, "d": [108,493], "a": 1 }, + { "px": [224,240], "src": [320,272], "f": 0, "t": 411, "d": [108,494], "a": 1 }, + { "px": [256,240], "src": [320,272], "f": 0, "t": 411, "d": [108,496], "a": 1 }, + { "px": [272,240], "src": [320,272], "f": 0, "t": 411, "d": [108,497], "a": 1 }, + { "px": [288,240], "src": [320,272], "f": 0, "t": 411, "d": [108,498], "a": 1 }, + { "px": [304,240], "src": [320,272], "f": 0, "t": 411, "d": [108,499], "a": 1 }, + { "px": [320,240], "src": [320,272], "f": 0, "t": 411, "d": [108,500], "a": 1 }, + { "px": [336,240], "src": [320,272], "f": 0, "t": 411, "d": [108,501], "a": 1 }, + { "px": [352,240], "src": [320,272], "f": 0, "t": 411, "d": [108,502], "a": 1 }, + { "px": [368,240], "src": [320,272], "f": 0, "t": 411, "d": [108,503], "a": 1 }, + { "px": [384,240], "src": [320,272], "f": 0, "t": 411, "d": [108,504], "a": 1 }, + { "px": [400,240], "src": [320,272], "f": 0, "t": 411, "d": [108,505], "a": 1 }, + { "px": [416,240], "src": [320,272], "f": 0, "t": 411, "d": [108,506], "a": 1 }, + { "px": [432,240], "src": [320,272], "f": 0, "t": 411, "d": [108,507], "a": 1 }, + { "px": [448,240], "src": [320,272], "f": 0, "t": 411, "d": [108,508], "a": 1 }, + { "px": [160,256], "src": [320,272], "f": 0, "t": 411, "d": [108,522], "a": 1 }, + { "px": [416,256], "src": [320,272], "f": 0, "t": 411, "d": [108,538], "a": 1 }, + { "px": [160,272], "src": [320,272], "f": 0, "t": 411, "d": [108,554], "a": 1 }, + { "px": [416,272], "src": [320,272], "f": 0, "t": 411, "d": [108,570], "a": 1 }, + { "px": [160,288], "src": [320,272], "f": 0, "t": 411, "d": [108,586], "a": 1 }, + { "px": [336,288], "src": [320,272], "f": 0, "t": 411, "d": [108,597], "a": 1 }, + { "px": [368,288], "src": [320,272], "f": 0, "t": 411, "d": [108,599], "a": 1 }, + { "px": [384,288], "src": [320,272], "f": 0, "t": 411, "d": [108,600], "a": 1 }, + { "px": [400,288], "src": [320,272], "f": 0, "t": 411, "d": [108,601], "a": 1 }, + { "px": [416,288], "src": [320,272], "f": 0, "t": 411, "d": [108,602], "a": 1 }, + { "px": [432,288], "src": [320,272], "f": 0, "t": 411, "d": [108,603], "a": 1 }, + { "px": [448,288], "src": [320,272], "f": 0, "t": 411, "d": [108,604], "a": 1 }, + { "px": [464,288], "src": [320,272], "f": 0, "t": 411, "d": [108,605], "a": 1 }, + { "px": [480,288], "src": [320,272], "f": 0, "t": 411, "d": [108,606], "a": 1 }, + { "px": [496,288], "src": [320,272], "f": 0, "t": 411, "d": [108,607], "a": 1 }, + { "px": [80,304], "src": [320,272], "f": 0, "t": 411, "d": [108,613], "a": 1 }, + { "px": [112,304], "src": [320,272], "f": 0, "t": 411, "d": [108,615], "a": 1 }, + { "px": [128,304], "src": [320,272], "f": 0, "t": 411, "d": [108,616], "a": 1 }, + { "px": [144,304], "src": [320,272], "f": 0, "t": 411, "d": [108,617], "a": 1 }, + { "px": [160,304], "src": [320,272], "f": 0, "t": 411, "d": [108,618], "a": 1 }, + { "px": [320,304], "src": [320,272], "f": 0, "t": 411, "d": [108,628], "a": 1 }, + { "px": [336,304], "src": [320,272], "f": 0, "t": 411, "d": [108,629], "a": 1 }, + { "px": [352,304], "src": [320,272], "f": 0, "t": 411, "d": [108,630], "a": 1 }, + { "px": [368,304], "src": [320,272], "f": 0, "t": 411, "d": [108,631], "a": 1 }, + { "px": [384,304], "src": [320,272], "f": 0, "t": 411, "d": [108,632], "a": 1 }, + { "px": [400,304], "src": [320,272], "f": 0, "t": 411, "d": [108,633], "a": 1 }, + { "px": [416,304], "src": [320,272], "f": 0, "t": 411, "d": [108,634], "a": 1 }, + { "px": [432,304], "src": [320,272], "f": 0, "t": 411, "d": [108,635], "a": 1 }, + { "px": [448,304], "src": [320,272], "f": 0, "t": 411, "d": [108,636], "a": 1 }, + { "px": [464,304], "src": [320,272], "f": 0, "t": 411, "d": [108,637], "a": 1 }, + { "px": [480,304], "src": [320,272], "f": 0, "t": 411, "d": [108,638], "a": 1 }, + { "px": [496,304], "src": [320,272], "f": 0, "t": 411, "d": [108,639], "a": 1 }, + { "px": [80,320], "src": [320,272], "f": 0, "t": 411, "d": [108,645], "a": 1 }, + { "px": [112,320], "src": [320,272], "f": 0, "t": 411, "d": [108,647], "a": 1 }, + { "px": [128,320], "src": [320,272], "f": 0, "t": 411, "d": [108,648], "a": 1 }, + { "px": [160,320], "src": [320,272], "f": 0, "t": 411, "d": [108,650], "a": 1 }, + { "px": [320,320], "src": [320,272], "f": 0, "t": 411, "d": [108,660], "a": 1 }, + { "px": [352,320], "src": [320,272], "f": 0, "t": 411, "d": [108,662], "a": 1 }, + { "px": [368,320], "src": [320,272], "f": 0, "t": 411, "d": [108,663], "a": 1 }, + { "px": [384,320], "src": [320,272], "f": 0, "t": 411, "d": [108,664], "a": 1 }, + { "px": [80,336], "src": [320,272], "f": 0, "t": 411, "d": [108,677], "a": 1 }, + { "px": [96,336], "src": [320,272], "f": 0, "t": 411, "d": [108,678], "a": 1 }, + { "px": [112,336], "src": [320,272], "f": 0, "t": 411, "d": [108,679], "a": 1 }, + { "px": [128,336], "src": [320,272], "f": 0, "t": 411, "d": [108,680], "a": 1 }, + { "px": [144,336], "src": [320,272], "f": 0, "t": 411, "d": [108,681], "a": 1 }, + { "px": [320,336], "src": [320,272], "f": 0, "t": 411, "d": [108,692], "a": 1 }, + { "px": [336,336], "src": [320,272], "f": 0, "t": 411, "d": [108,693], "a": 1 }, + { "px": [352,336], "src": [320,272], "f": 0, "t": 411, "d": [108,694], "a": 1 }, + { "px": [368,336], "src": [320,272], "f": 0, "t": 411, "d": [108,695], "a": 1 }, + { "px": [384,336], "src": [320,272], "f": 0, "t": 411, "d": [108,696], "a": 1 }, + { "px": [80,352], "src": [320,272], "f": 0, "t": 411, "d": [108,709], "a": 1 }, + { "px": [96,352], "src": [320,272], "f": 0, "t": 411, "d": [108,710], "a": 1 }, + { "px": [112,352], "src": [320,272], "f": 0, "t": 411, "d": [108,711], "a": 1 }, + { "px": [320,352], "src": [320,272], "f": 0, "t": 411, "d": [108,724], "a": 1 }, + { "px": [336,352], "src": [320,272], "f": 0, "t": 411, "d": [108,725], "a": 1 }, + { "px": [352,352], "src": [320,272], "f": 0, "t": 411, "d": [108,726], "a": 1 }, + { "px": [384,352], "src": [320,272], "f": 0, "t": 411, "d": [108,728], "a": 1 }, + { "px": [0,368], "src": [320,272], "f": 0, "t": 411, "d": [108,736], "a": 1 }, + { "px": [16,368], "src": [320,272], "f": 0, "t": 411, "d": [108,737], "a": 1 }, + { "px": [32,368], "src": [320,272], "f": 0, "t": 411, "d": [108,738], "a": 1 }, + { "px": [48,368], "src": [320,272], "f": 0, "t": 411, "d": [108,739], "a": 1 }, + { "px": [64,368], "src": [320,272], "f": 0, "t": 411, "d": [108,740], "a": 1 }, + { "px": [80,368], "src": [320,272], "f": 0, "t": 411, "d": [108,741], "a": 1 }, + { "px": [96,368], "src": [320,272], "f": 0, "t": 411, "d": [108,742], "a": 1 }, + { "px": [112,368], "src": [320,272], "f": 0, "t": 411, "d": [108,743], "a": 1 }, + { "px": [128,368], "src": [320,272], "f": 0, "t": 411, "d": [108,744], "a": 1 }, + { "px": [144,368], "src": [320,272], "f": 0, "t": 411, "d": [108,745], "a": 1 }, + { "px": [160,368], "src": [320,272], "f": 0, "t": 411, "d": [108,746], "a": 1 }, + { "px": [320,368], "src": [320,272], "f": 0, "t": 411, "d": [108,756], "a": 1 }, + { "px": [336,368], "src": [320,272], "f": 0, "t": 411, "d": [108,757], "a": 1 }, + { "px": [352,368], "src": [320,272], "f": 0, "t": 411, "d": [108,758], "a": 1 }, + { "px": [368,368], "src": [320,272], "f": 0, "t": 411, "d": [108,759], "a": 1 }, + { "px": [384,368], "src": [320,272], "f": 0, "t": 411, "d": [108,760], "a": 1 }, + { "px": [16,384], "src": [320,272], "f": 0, "t": 411, "d": [108,769], "a": 1 }, + { "px": [32,384], "src": [320,272], "f": 0, "t": 411, "d": [108,770], "a": 1 }, + { "px": [64,384], "src": [320,272], "f": 0, "t": 411, "d": [108,772], "a": 1 }, + { "px": [80,384], "src": [320,272], "f": 0, "t": 411, "d": [108,773], "a": 1 }, + { "px": [96,384], "src": [320,272], "f": 0, "t": 411, "d": [108,774], "a": 1 }, + { "px": [112,384], "src": [320,272], "f": 0, "t": 411, "d": [108,775], "a": 1 }, + { "px": [128,384], "src": [320,272], "f": 0, "t": 411, "d": [108,776], "a": 1 }, + { "px": [144,384], "src": [320,272], "f": 0, "t": 411, "d": [108,777], "a": 1 }, + { "px": [160,384], "src": [320,272], "f": 0, "t": 411, "d": [108,778], "a": 1 }, + { "px": [320,384], "src": [320,272], "f": 0, "t": 411, "d": [108,788], "a": 1 }, + { "px": [352,384], "src": [320,272], "f": 0, "t": 411, "d": [108,790], "a": 1 }, + { "px": [368,384], "src": [320,272], "f": 0, "t": 411, "d": [108,791], "a": 1 }, + { "px": [0,400], "src": [320,272], "f": 0, "t": 411, "d": [108,800], "a": 1 }, + { "px": [16,400], "src": [320,272], "f": 0, "t": 411, "d": [108,801], "a": 1 }, + { "px": [32,400], "src": [320,272], "f": 0, "t": 411, "d": [108,802], "a": 1 }, + { "px": [48,400], "src": [320,272], "f": 0, "t": 411, "d": [108,803], "a": 1 }, + { "px": [64,400], "src": [320,272], "f": 0, "t": 411, "d": [108,804], "a": 1 }, + { "px": [80,400], "src": [320,272], "f": 0, "t": 411, "d": [108,805], "a": 1 }, + { "px": [96,400], "src": [320,272], "f": 0, "t": 411, "d": [108,806], "a": 1 }, + { "px": [112,400], "src": [320,272], "f": 0, "t": 411, "d": [108,807], "a": 1 }, + { "px": [128,400], "src": [320,272], "f": 0, "t": 411, "d": [108,808], "a": 1 }, + { "px": [144,400], "src": [320,272], "f": 0, "t": 411, "d": [108,809], "a": 1 }, + { "px": [160,400], "src": [320,272], "f": 0, "t": 411, "d": [108,810], "a": 1 }, + { "px": [320,400], "src": [320,272], "f": 0, "t": 411, "d": [108,820], "a": 1 }, + { "px": [336,400], "src": [320,272], "f": 0, "t": 411, "d": [108,821], "a": 1 }, + { "px": [352,400], "src": [320,272], "f": 0, "t": 411, "d": [108,822], "a": 1 }, + { "px": [368,400], "src": [320,272], "f": 0, "t": 411, "d": [108,823], "a": 1 }, + { "px": [384,400], "src": [320,272], "f": 0, "t": 411, "d": [108,824], "a": 1 }, + { "px": [0,416], "src": [320,272], "f": 0, "t": 411, "d": [108,832], "a": 1 }, + { "px": [16,416], "src": [320,272], "f": 0, "t": 411, "d": [108,833], "a": 1 }, + { "px": [32,416], "src": [320,272], "f": 0, "t": 411, "d": [108,834], "a": 1 }, + { "px": [48,416], "src": [320,272], "f": 0, "t": 411, "d": [108,835], "a": 1 }, + { "px": [64,416], "src": [320,272], "f": 0, "t": 411, "d": [108,836], "a": 1 }, + { "px": [80,416], "src": [320,272], "f": 0, "t": 411, "d": [108,837], "a": 1 }, + { "px": [96,416], "src": [320,272], "f": 0, "t": 411, "d": [108,838], "a": 1 }, + { "px": [112,416], "src": [320,272], "f": 0, "t": 411, "d": [108,839], "a": 1 }, + { "px": [128,416], "src": [320,272], "f": 0, "t": 411, "d": [108,840], "a": 1 }, + { "px": [144,416], "src": [320,272], "f": 0, "t": 411, "d": [108,841], "a": 1 }, + { "px": [160,416], "src": [320,272], "f": 0, "t": 411, "d": [108,842], "a": 1 }, + { "px": [176,416], "src": [320,272], "f": 0, "t": 411, "d": [108,843], "a": 1 }, + { "px": [192,416], "src": [320,272], "f": 0, "t": 411, "d": [108,844], "a": 1 }, + { "px": [208,416], "src": [320,272], "f": 0, "t": 411, "d": [108,845], "a": 1 }, + { "px": [240,416], "src": [320,272], "f": 0, "t": 411, "d": [108,847], "a": 1 }, + { "px": [272,416], "src": [320,272], "f": 0, "t": 411, "d": [108,849], "a": 1 }, + { "px": [288,416], "src": [320,272], "f": 0, "t": 411, "d": [108,850], "a": 1 }, + { "px": [304,416], "src": [320,272], "f": 0, "t": 411, "d": [108,851], "a": 1 }, + { "px": [320,416], "src": [320,272], "f": 0, "t": 411, "d": [108,852], "a": 1 }, + { "px": [336,416], "src": [320,272], "f": 0, "t": 411, "d": [108,853], "a": 1 }, + { "px": [352,416], "src": [320,272], "f": 0, "t": 411, "d": [108,854], "a": 1 }, + { "px": [384,416], "src": [320,272], "f": 0, "t": 411, "d": [108,856], "a": 1 }, + { "px": [80,432], "src": [320,272], "f": 0, "t": 411, "d": [108,869], "a": 1 }, + { "px": [96,432], "src": [320,272], "f": 0, "t": 411, "d": [108,870], "a": 1 }, + { "px": [112,432], "src": [320,272], "f": 0, "t": 411, "d": [108,871], "a": 1 }, + { "px": [128,432], "src": [320,272], "f": 0, "t": 411, "d": [108,872], "a": 1 }, + { "px": [144,432], "src": [320,272], "f": 0, "t": 411, "d": [108,873], "a": 1 }, + { "px": [160,432], "src": [320,272], "f": 0, "t": 411, "d": [108,874], "a": 1 }, + { "px": [176,432], "src": [320,272], "f": 0, "t": 411, "d": [108,875], "a": 1 }, + { "px": [192,432], "src": [320,272], "f": 0, "t": 411, "d": [108,876], "a": 1 }, + { "px": [208,432], "src": [320,272], "f": 0, "t": 411, "d": [108,877], "a": 1 }, + { "px": [224,432], "src": [320,272], "f": 0, "t": 411, "d": [108,878], "a": 1 }, + { "px": [240,432], "src": [320,272], "f": 0, "t": 411, "d": [108,879], "a": 1 }, + { "px": [256,432], "src": [320,272], "f": 0, "t": 411, "d": [108,880], "a": 1 }, + { "px": [272,432], "src": [320,272], "f": 0, "t": 411, "d": [108,881], "a": 1 }, + { "px": [288,432], "src": [320,272], "f": 0, "t": 411, "d": [108,882], "a": 1 }, + { "px": [304,432], "src": [320,272], "f": 0, "t": 411, "d": [108,883], "a": 1 }, + { "px": [320,432], "src": [320,272], "f": 0, "t": 411, "d": [108,884], "a": 1 }, + { "px": [336,432], "src": [320,272], "f": 0, "t": 411, "d": [108,885], "a": 1 }, + { "px": [352,432], "src": [320,272], "f": 0, "t": 411, "d": [108,886], "a": 1 }, + { "px": [368,432], "src": [320,272], "f": 0, "t": 411, "d": [108,887], "a": 1 }, + { "px": [384,432], "src": [320,272], "f": 0, "t": 411, "d": [108,888], "a": 1 }, + { "px": [64,448], "src": [320,272], "f": 0, "t": 411, "d": [108,900], "a": 1 }, + { "px": [80,448], "src": [320,272], "f": 0, "t": 411, "d": [108,901], "a": 1 }, + { "px": [96,448], "src": [320,272], "f": 0, "t": 411, "d": [108,902], "a": 1 }, + { "px": [112,448], "src": [320,272], "f": 0, "t": 411, "d": [108,903], "a": 1 }, + { "px": [128,448], "src": [320,272], "f": 0, "t": 411, "d": [108,904], "a": 1 }, + { "px": [144,448], "src": [320,272], "f": 0, "t": 411, "d": [108,905], "a": 1 }, + { "px": [160,448], "src": [320,272], "f": 0, "t": 411, "d": [108,906], "a": 1 }, + { "px": [176,448], "src": [320,272], "f": 0, "t": 411, "d": [108,907], "a": 1 }, + { "px": [192,448], "src": [320,272], "f": 0, "t": 411, "d": [108,908], "a": 1 }, + { "px": [208,448], "src": [320,272], "f": 0, "t": 411, "d": [108,909], "a": 1 }, + { "px": [224,448], "src": [320,272], "f": 0, "t": 411, "d": [108,910], "a": 1 }, + { "px": [240,448], "src": [320,272], "f": 0, "t": 411, "d": [108,911], "a": 1 }, + { "px": [256,448], "src": [320,272], "f": 0, "t": 411, "d": [108,912], "a": 1 }, + { "px": [272,448], "src": [320,272], "f": 0, "t": 411, "d": [108,913], "a": 1 }, + { "px": [288,448], "src": [320,272], "f": 0, "t": 411, "d": [108,914], "a": 1 }, + { "px": [304,448], "src": [320,272], "f": 0, "t": 411, "d": [108,915], "a": 1 }, + { "px": [320,448], "src": [320,272], "f": 0, "t": 411, "d": [108,916], "a": 1 }, + { "px": [336,448], "src": [320,272], "f": 0, "t": 411, "d": [108,917], "a": 1 }, + { "px": [352,448], "src": [320,272], "f": 0, "t": 411, "d": [108,918], "a": 1 }, + { "px": [368,448], "src": [320,272], "f": 0, "t": 411, "d": [108,919], "a": 1 }, + { "px": [384,448], "src": [320,272], "f": 0, "t": 411, "d": [108,920], "a": 1 }, + { "px": [400,448], "src": [320,272], "f": 0, "t": 411, "d": [108,921], "a": 1 }, + { "px": [448,64], "src": [256,240], "f": 0, "t": 361, "d": [107,157], "a": 1 }, + { "px": [464,64], "src": [272,240], "f": 0, "t": 362, "d": [107,157], "a": 1 }, + { "px": [48,80], "src": [256,240], "f": 1, "t": 361, "d": [107,162], "a": 1 }, + { "px": [32,80], "src": [272,240], "f": 1, "t": 362, "d": [107,162], "a": 1 }, + { "px": [448,80], "src": [256,240], "f": 0, "t": 361, "d": [107,189], "a": 1 }, + { "px": [464,80], "src": [272,240], "f": 0, "t": 362, "d": [107,189], "a": 1 }, + { "px": [48,96], "src": [256,240], "f": 1, "t": 361, "d": [107,194], "a": 1 }, + { "px": [32,96], "src": [272,240], "f": 1, "t": 362, "d": [107,194], "a": 1 }, + { "px": [448,96], "src": [256,240], "f": 0, "t": 361, "d": [107,221], "a": 1 }, + { "px": [464,96], "src": [272,240], "f": 0, "t": 362, "d": [107,221], "a": 1 }, + { "px": [48,112], "src": [256,240], "f": 1, "t": 361, "d": [107,226], "a": 1 }, + { "px": [32,112], "src": [272,240], "f": 1, "t": 362, "d": [107,226], "a": 1 }, + { "px": [448,112], "src": [256,240], "f": 0, "t": 361, "d": [107,253], "a": 1 }, + { "px": [464,112], "src": [272,240], "f": 0, "t": 362, "d": [107,253], "a": 1 }, + { "px": [48,128], "src": [256,240], "f": 1, "t": 361, "d": [107,258], "a": 1 }, + { "px": [32,128], "src": [272,240], "f": 1, "t": 362, "d": [107,258], "a": 1 }, + { "px": [448,128], "src": [256,240], "f": 0, "t": 361, "d": [107,285], "a": 1 }, + { "px": [464,128], "src": [272,240], "f": 0, "t": 362, "d": [107,285], "a": 1 }, + { "px": [48,144], "src": [256,240], "f": 1, "t": 361, "d": [107,290], "a": 1 }, + { "px": [32,144], "src": [272,240], "f": 1, "t": 362, "d": [107,290], "a": 1 }, + { "px": [448,144], "src": [256,240], "f": 0, "t": 361, "d": [107,317], "a": 1 }, + { "px": [464,144], "src": [272,240], "f": 0, "t": 362, "d": [107,317], "a": 1 }, + { "px": [48,160], "src": [256,240], "f": 1, "t": 361, "d": [107,322], "a": 1 }, + { "px": [32,160], "src": [272,240], "f": 1, "t": 362, "d": [107,322], "a": 1 }, + { "px": [448,160], "src": [256,240], "f": 0, "t": 361, "d": [107,349], "a": 1 }, + { "px": [464,160], "src": [272,240], "f": 0, "t": 362, "d": [107,349], "a": 1 }, + { "px": [48,176], "src": [256,240], "f": 1, "t": 361, "d": [107,354], "a": 1 }, + { "px": [32,176], "src": [272,240], "f": 1, "t": 362, "d": [107,354], "a": 1 }, + { "px": [448,176], "src": [256,240], "f": 0, "t": 361, "d": [107,381], "a": 1 }, + { "px": [464,176], "src": [272,240], "f": 0, "t": 362, "d": [107,381], "a": 1 }, + { "px": [48,192], "src": [256,240], "f": 1, "t": 361, "d": [107,386], "a": 1 }, + { "px": [32,192], "src": [272,240], "f": 1, "t": 362, "d": [107,386], "a": 1 }, + { "px": [448,192], "src": [256,240], "f": 0, "t": 361, "d": [107,413], "a": 1 }, + { "px": [464,192], "src": [272,240], "f": 0, "t": 362, "d": [107,413], "a": 1 }, + { "px": [48,208], "src": [256,240], "f": 1, "t": 361, "d": [107,418], "a": 1 }, + { "px": [32,208], "src": [272,240], "f": 1, "t": 362, "d": [107,418], "a": 1 }, + { "px": [448,208], "src": [256,240], "f": 0, "t": 361, "d": [107,445], "a": 1 }, + { "px": [464,208], "src": [272,240], "f": 0, "t": 362, "d": [107,445], "a": 1 }, + { "px": [48,224], "src": [256,240], "f": 1, "t": 361, "d": [107,450], "a": 1 }, + { "px": [32,224], "src": [272,240], "f": 1, "t": 362, "d": [107,450], "a": 1 }, + { "px": [448,224], "src": [256,240], "f": 0, "t": 361, "d": [107,477], "a": 1 }, + { "px": [464,224], "src": [272,240], "f": 0, "t": 362, "d": [107,477], "a": 1 }, + { "px": [448,240], "src": [256,240], "f": 0, "t": 361, "d": [107,509], "a": 1 }, + { "px": [464,240], "src": [272,240], "f": 0, "t": 362, "d": [107,509], "a": 1 }, + { "px": [160,256], "src": [256,240], "f": 1, "t": 361, "d": [107,521], "a": 1 }, + { "px": [144,256], "src": [272,240], "f": 1, "t": 362, "d": [107,521], "a": 1 }, + { "px": [160,256], "src": [256,240], "f": 0, "t": 361, "d": [107,523], "a": 1 }, + { "px": [176,256], "src": [272,240], "f": 0, "t": 362, "d": [107,523], "a": 1 }, + { "px": [416,256], "src": [256,240], "f": 1, "t": 361, "d": [107,537], "a": 1 }, + { "px": [400,256], "src": [272,240], "f": 1, "t": 362, "d": [107,537], "a": 1 }, + { "px": [416,256], "src": [256,240], "f": 0, "t": 361, "d": [107,539], "a": 1 }, + { "px": [432,256], "src": [272,240], "f": 0, "t": 362, "d": [107,539], "a": 1 }, + { "px": [160,272], "src": [256,240], "f": 1, "t": 361, "d": [107,553], "a": 1 }, + { "px": [144,272], "src": [272,240], "f": 1, "t": 362, "d": [107,553], "a": 1 }, + { "px": [160,272], "src": [256,240], "f": 0, "t": 361, "d": [107,555], "a": 1 }, + { "px": [176,272], "src": [272,240], "f": 0, "t": 362, "d": [107,555], "a": 1 }, + { "px": [416,272], "src": [256,240], "f": 1, "t": 361, "d": [107,569], "a": 1 }, + { "px": [400,272], "src": [272,240], "f": 1, "t": 362, "d": [107,569], "a": 1 }, + { "px": [416,272], "src": [256,240], "f": 0, "t": 361, "d": [107,571], "a": 1 }, + { "px": [432,272], "src": [272,240], "f": 0, "t": 362, "d": [107,571], "a": 1 }, + { "px": [160,288], "src": [256,240], "f": 1, "t": 361, "d": [107,585], "a": 1 }, + { "px": [144,288], "src": [272,240], "f": 1, "t": 362, "d": [107,585], "a": 1 }, + { "px": [160,288], "src": [256,240], "f": 0, "t": 361, "d": [107,587], "a": 1 }, + { "px": [176,288], "src": [272,240], "f": 0, "t": 362, "d": [107,587], "a": 1 }, + { "px": [160,304], "src": [256,240], "f": 0, "t": 361, "d": [107,619], "a": 1 }, + { "px": [176,304], "src": [272,240], "f": 0, "t": 362, "d": [107,619], "a": 1 }, + { "px": [320,304], "src": [256,240], "f": 1, "t": 361, "d": [107,627], "a": 1 }, + { "px": [304,304], "src": [272,240], "f": 1, "t": 362, "d": [107,627], "a": 1 }, + { "px": [80,320], "src": [256,240], "f": 1, "t": 361, "d": [107,644], "a": 1 }, + { "px": [64,320], "src": [272,240], "f": 1, "t": 362, "d": [107,644], "a": 1 }, + { "px": [160,320], "src": [256,240], "f": 0, "t": 361, "d": [107,651], "a": 1 }, + { "px": [176,320], "src": [272,240], "f": 0, "t": 362, "d": [107,651], "a": 1 }, + { "px": [320,320], "src": [256,240], "f": 1, "t": 361, "d": [107,659], "a": 1 }, + { "px": [304,320], "src": [272,240], "f": 1, "t": 362, "d": [107,659], "a": 1 }, + { "px": [384,320], "src": [256,240], "f": 0, "t": 361, "d": [107,665], "a": 1 }, + { "px": [400,320], "src": [272,240], "f": 0, "t": 362, "d": [107,665], "a": 1 }, + { "px": [80,336], "src": [256,240], "f": 1, "t": 361, "d": [107,676], "a": 1 }, + { "px": [64,336], "src": [272,240], "f": 1, "t": 362, "d": [107,676], "a": 1 }, + { "px": [320,336], "src": [256,240], "f": 1, "t": 361, "d": [107,691], "a": 1 }, + { "px": [304,336], "src": [272,240], "f": 1, "t": 362, "d": [107,691], "a": 1 }, + { "px": [384,336], "src": [256,240], "f": 0, "t": 361, "d": [107,697], "a": 1 }, + { "px": [400,336], "src": [272,240], "f": 0, "t": 362, "d": [107,697], "a": 1 }, + { "px": [80,352], "src": [256,240], "f": 1, "t": 361, "d": [107,708], "a": 1 }, + { "px": [64,352], "src": [272,240], "f": 1, "t": 362, "d": [107,708], "a": 1 }, + { "px": [112,352], "src": [256,240], "f": 0, "t": 361, "d": [107,712], "a": 1 }, + { "px": [128,352], "src": [272,240], "f": 0, "t": 362, "d": [107,712], "a": 1 }, + { "px": [320,352], "src": [256,240], "f": 1, "t": 361, "d": [107,723], "a": 1 }, + { "px": [304,352], "src": [272,240], "f": 1, "t": 362, "d": [107,723], "a": 1 }, + { "px": [384,352], "src": [256,240], "f": 0, "t": 361, "d": [107,729], "a": 1 }, + { "px": [400,352], "src": [272,240], "f": 0, "t": 362, "d": [107,729], "a": 1 }, + { "px": [320,368], "src": [256,240], "f": 1, "t": 361, "d": [107,755], "a": 1 }, + { "px": [304,368], "src": [272,240], "f": 1, "t": 362, "d": [107,755], "a": 1 }, + { "px": [384,368], "src": [256,240], "f": 0, "t": 361, "d": [107,761], "a": 1 }, + { "px": [400,368], "src": [272,240], "f": 0, "t": 362, "d": [107,761], "a": 1 }, + { "px": [160,384], "src": [256,240], "f": 0, "t": 361, "d": [107,779], "a": 1 }, + { "px": [176,384], "src": [272,240], "f": 0, "t": 362, "d": [107,779], "a": 1 }, + { "px": [320,384], "src": [256,240], "f": 1, "t": 361, "d": [107,787], "a": 1 }, + { "px": [304,384], "src": [272,240], "f": 1, "t": 362, "d": [107,787], "a": 1 }, + { "px": [384,384], "src": [256,240], "f": 0, "t": 361, "d": [107,793], "a": 1 }, + { "px": [400,384], "src": [272,240], "f": 0, "t": 362, "d": [107,793], "a": 1 }, + { "px": [160,400], "src": [256,240], "f": 0, "t": 361, "d": [107,811], "a": 1 }, + { "px": [176,400], "src": [272,240], "f": 0, "t": 362, "d": [107,811], "a": 1 }, + { "px": [320,400], "src": [256,240], "f": 1, "t": 361, "d": [107,819], "a": 1 }, + { "px": [304,400], "src": [272,240], "f": 1, "t": 362, "d": [107,819], "a": 1 }, + { "px": [384,400], "src": [256,240], "f": 0, "t": 361, "d": [107,825], "a": 1 }, + { "px": [400,400], "src": [272,240], "f": 0, "t": 362, "d": [107,825], "a": 1 }, + { "px": [384,416], "src": [256,240], "f": 0, "t": 361, "d": [107,857], "a": 1 }, + { "px": [400,416], "src": [272,240], "f": 0, "t": 362, "d": [107,857], "a": 1 }, + { "px": [80,432], "src": [256,240], "f": 1, "t": 361, "d": [107,868], "a": 1 }, + { "px": [64,432], "src": [272,240], "f": 1, "t": 362, "d": [107,868], "a": 1 }, + { "px": [384,432], "src": [256,240], "f": 0, "t": 361, "d": [107,889], "a": 1 }, + { "px": [400,432], "src": [272,240], "f": 0, "t": 362, "d": [107,889], "a": 1 }, + { "px": [64,96], "src": [256,240], "f": 0, "t": 361, "d": [105,197], "a": 1 }, + { "px": [80,96], "src": [272,240], "f": 0, "t": 362, "d": [105,197], "a": 1 }, + { "px": [96,96], "src": [288,240], "f": 0, "t": 363, "d": [105,197], "a": 1 }, + { "px": [160,96], "src": [256,240], "f": 0, "t": 361, "d": [105,203], "a": 1 }, + { "px": [176,96], "src": [272,240], "f": 0, "t": 362, "d": [105,203], "a": 1 }, + { "px": [192,96], "src": [288,240], "f": 0, "t": 363, "d": [105,203], "a": 1 }, + { "px": [208,96], "src": [256,240], "f": 0, "t": 361, "d": [105,206], "a": 1 }, + { "px": [224,96], "src": [272,240], "f": 0, "t": 362, "d": [105,206], "a": 1 }, + { "px": [240,96], "src": [288,240], "f": 0, "t": 363, "d": [105,206], "a": 1 }, + { "px": [400,96], "src": [256,240], "f": 0, "t": 361, "d": [105,218], "a": 1 }, + { "px": [416,96], "src": [272,240], "f": 0, "t": 362, "d": [105,218], "a": 1 }, + { "px": [432,96], "src": [288,240], "f": 0, "t": 363, "d": [105,218], "a": 1 }, + { "px": [32,128], "src": [256,240], "f": 0, "t": 361, "d": [105,259], "a": 1 }, + { "px": [48,128], "src": [272,240], "f": 0, "t": 362, "d": [105,259], "a": 1 }, + { "px": [64,128], "src": [288,240], "f": 0, "t": 363, "d": [105,259], "a": 1 }, + { "px": [272,128], "src": [256,240], "f": 0, "t": 361, "d": [105,274], "a": 1 }, + { "px": [288,128], "src": [272,240], "f": 0, "t": 362, "d": [105,274], "a": 1 }, + { "px": [304,128], "src": [288,240], "f": 0, "t": 363, "d": [105,274], "a": 1 }, + { "px": [416,128], "src": [256,240], "f": 0, "t": 361, "d": [105,283], "a": 1 }, + { "px": [432,128], "src": [272,240], "f": 0, "t": 362, "d": [105,283], "a": 1 }, + { "px": [448,128], "src": [288,240], "f": 0, "t": 363, "d": [105,283], "a": 1 }, + { "px": [64,160], "src": [256,240], "f": 0, "t": 361, "d": [105,325], "a": 1 }, + { "px": [80,160], "src": [272,240], "f": 0, "t": 362, "d": [105,325], "a": 1 }, + { "px": [96,160], "src": [288,240], "f": 0, "t": 363, "d": [105,325], "a": 1 }, + { "px": [160,160], "src": [256,240], "f": 0, "t": 361, "d": [105,331], "a": 1 }, + { "px": [176,160], "src": [272,240], "f": 0, "t": 362, "d": [105,331], "a": 1 }, + { "px": [192,160], "src": [288,240], "f": 0, "t": 363, "d": [105,331], "a": 1 }, + { "px": [256,160], "src": [256,240], "f": 0, "t": 361, "d": [105,337], "a": 1 }, + { "px": [272,160], "src": [272,240], "f": 0, "t": 362, "d": [105,337], "a": 1 }, + { "px": [288,160], "src": [288,240], "f": 0, "t": 363, "d": [105,337], "a": 1 }, + { "px": [32,192], "src": [256,240], "f": 0, "t": 361, "d": [105,387], "a": 1 }, + { "px": [48,192], "src": [272,240], "f": 0, "t": 362, "d": [105,387], "a": 1 }, + { "px": [64,192], "src": [288,240], "f": 0, "t": 363, "d": [105,387], "a": 1 }, + { "px": [176,192], "src": [256,240], "f": 0, "t": 361, "d": [105,396], "a": 1 }, + { "px": [192,192], "src": [272,240], "f": 0, "t": 362, "d": [105,396], "a": 1 }, + { "px": [208,192], "src": [288,240], "f": 0, "t": 363, "d": [105,396], "a": 1 }, + { "px": [416,192], "src": [256,240], "f": 0, "t": 361, "d": [105,411], "a": 1 }, + { "px": [432,192], "src": [272,240], "f": 0, "t": 362, "d": [105,411], "a": 1 }, + { "px": [448,192], "src": [288,240], "f": 0, "t": 363, "d": [105,411], "a": 1 }, + { "px": [208,224], "src": [256,240], "f": 0, "t": 361, "d": [105,462], "a": 1 }, + { "px": [224,224], "src": [272,240], "f": 0, "t": 362, "d": [105,462], "a": 1 }, + { "px": [240,224], "src": [288,240], "f": 0, "t": 363, "d": [105,462], "a": 1 }, + { "px": [80,320], "src": [256,240], "f": 0, "t": 361, "d": [105,646], "a": 1 }, + { "px": [96,320], "src": [272,240], "f": 0, "t": 362, "d": [105,646], "a": 1 }, + { "px": [112,320], "src": [288,240], "f": 0, "t": 363, "d": [105,646], "a": 1 }, + { "px": [128,320], "src": [256,240], "f": 0, "t": 361, "d": [105,649], "a": 1 }, + { "px": [144,320], "src": [272,240], "f": 0, "t": 362, "d": [105,649], "a": 1 }, + { "px": [160,320], "src": [288,240], "f": 0, "t": 363, "d": [105,649], "a": 1 }, + { "px": [320,320], "src": [256,240], "f": 0, "t": 361, "d": [105,661], "a": 1 }, + { "px": [336,320], "src": [272,240], "f": 0, "t": 362, "d": [105,661], "a": 1 }, + { "px": [352,320], "src": [288,240], "f": 0, "t": 363, "d": [105,661], "a": 1 }, + { "px": [352,352], "src": [256,240], "f": 0, "t": 361, "d": [105,727], "a": 1 }, + { "px": [368,352], "src": [272,240], "f": 0, "t": 362, "d": [105,727], "a": 1 }, + { "px": [384,352], "src": [288,240], "f": 0, "t": 363, "d": [105,727], "a": 1 }, + { "px": [-16,384], "src": [256,240], "f": 0, "t": 361, "d": [105,768], "a": 1 }, + { "px": [0,384], "src": [272,240], "f": 0, "t": 362, "d": [105,768], "a": 1 }, + { "px": [16,384], "src": [288,240], "f": 0, "t": 363, "d": [105,768], "a": 1 }, + { "px": [32,384], "src": [256,240], "f": 0, "t": 361, "d": [105,771], "a": 1 }, + { "px": [48,384], "src": [272,240], "f": 0, "t": 362, "d": [105,771], "a": 1 }, + { "px": [64,384], "src": [288,240], "f": 0, "t": 363, "d": [105,771], "a": 1 }, + { "px": [320,384], "src": [256,240], "f": 0, "t": 361, "d": [105,789], "a": 1 }, + { "px": [336,384], "src": [272,240], "f": 0, "t": 362, "d": [105,789], "a": 1 }, + { "px": [352,384], "src": [288,240], "f": 0, "t": 363, "d": [105,789], "a": 1 }, + { "px": [368,384], "src": [256,240], "f": 0, "t": 361, "d": [105,792], "a": 1 }, + { "px": [384,384], "src": [272,240], "f": 0, "t": 362, "d": [105,792], "a": 1 }, + { "px": [400,384], "src": [288,240], "f": 0, "t": 363, "d": [105,792], "a": 1 }, + { "px": [352,416], "src": [256,240], "f": 0, "t": 361, "d": [105,855], "a": 1 }, + { "px": [368,416], "src": [272,240], "f": 0, "t": 362, "d": [105,855], "a": 1 }, + { "px": [384,416], "src": [288,240], "f": 0, "t": 363, "d": [105,855], "a": 1 }, + { "px": [224,96], "src": [144,240], "f": 2, "t": 354, "d": [112,143], "a": 1 }, + { "px": [224,80], "src": [144,256], "f": 2, "t": 377, "d": [112,143], "a": 1 }, + { "px": [224,64], "src": [144,272], "f": 2, "t": 400, "d": [112,143], "a": 1 }, + { "px": [240,96], "src": [160,240], "f": 2, "t": 355, "d": [112,143], "a": 1 }, + { "px": [240,80], "src": [160,256], "f": 2, "t": 378, "d": [112,143], "a": 1 }, + { "px": [240,64], "src": [160,272], "f": 2, "t": 401, "d": [112,143], "a": 1 }, + { "px": [256,96], "src": [176,240], "f": 2, "t": 356, "d": [112,143], "a": 1 }, + { "px": [256,80], "src": [176,256], "f": 2, "t": 379, "d": [112,143], "a": 1 }, + { "px": [256,64], "src": [176,272], "f": 2, "t": 402, "d": [112,143], "a": 1 }, + { "px": [384,96], "src": [144,240], "f": 2, "t": 354, "d": [112,153], "a": 1 }, + { "px": [384,80], "src": [144,256], "f": 2, "t": 377, "d": [112,153], "a": 1 }, + { "px": [384,64], "src": [144,272], "f": 2, "t": 400, "d": [112,153], "a": 1 }, + { "px": [400,96], "src": [160,240], "f": 2, "t": 355, "d": [112,153], "a": 1 }, + { "px": [400,80], "src": [160,256], "f": 2, "t": 378, "d": [112,153], "a": 1 }, + { "px": [400,64], "src": [160,272], "f": 2, "t": 401, "d": [112,153], "a": 1 }, + { "px": [416,96], "src": [176,240], "f": 2, "t": 356, "d": [112,153], "a": 1 }, + { "px": [416,80], "src": [176,256], "f": 2, "t": 379, "d": [112,153], "a": 1 }, + { "px": [416,64], "src": [176,272], "f": 2, "t": 402, "d": [112,153], "a": 1 }, + { "px": [224,208], "src": [144,240], "f": 0, "t": 354, "d": [112,495], "a": 1 }, + { "px": [224,224], "src": [144,256], "f": 0, "t": 377, "d": [112,495], "a": 1 }, + { "px": [224,240], "src": [144,272], "f": 0, "t": 400, "d": [112,495], "a": 1 }, + { "px": [240,208], "src": [160,240], "f": 0, "t": 355, "d": [112,495], "a": 1 }, + { "px": [240,224], "src": [160,256], "f": 0, "t": 378, "d": [112,495], "a": 1 }, + { "px": [240,240], "src": [160,272], "f": 0, "t": 401, "d": [112,495], "a": 1 }, + { "px": [256,208], "src": [176,240], "f": 0, "t": 356, "d": [112,495], "a": 1 }, + { "px": [256,224], "src": [176,256], "f": 0, "t": 379, "d": [112,495], "a": 1 }, + { "px": [256,240], "src": [176,272], "f": 0, "t": 402, "d": [112,495], "a": 1 }, + { "px": [304,320], "src": [144,240], "f": 2, "t": 354, "d": [112,596], "a": 1 }, + { "px": [304,304], "src": [144,256], "f": 2, "t": 377, "d": [112,596], "a": 1 }, + { "px": [304,288], "src": [144,272], "f": 2, "t": 400, "d": [112,596], "a": 1 }, + { "px": [320,320], "src": [160,240], "f": 2, "t": 355, "d": [112,596], "a": 1 }, + { "px": [320,304], "src": [160,256], "f": 2, "t": 378, "d": [112,596], "a": 1 }, + { "px": [320,288], "src": [160,272], "f": 2, "t": 401, "d": [112,596], "a": 1 }, + { "px": [336,320], "src": [176,240], "f": 2, "t": 356, "d": [112,596], "a": 1 }, + { "px": [336,304], "src": [176,256], "f": 2, "t": 379, "d": [112,596], "a": 1 }, + { "px": [336,288], "src": [176,272], "f": 2, "t": 402, "d": [112,596], "a": 1 }, + { "px": [144,304], "src": [144,240], "f": 0, "t": 354, "d": [112,682], "a": 1 }, + { "px": [144,320], "src": [144,256], "f": 0, "t": 377, "d": [112,682], "a": 1 }, + { "px": [144,336], "src": [144,272], "f": 0, "t": 400, "d": [112,682], "a": 1 }, + { "px": [160,304], "src": [160,240], "f": 0, "t": 355, "d": [112,682], "a": 1 }, + { "px": [160,320], "src": [160,256], "f": 0, "t": 378, "d": [112,682], "a": 1 }, + { "px": [160,336], "src": [160,272], "f": 0, "t": 401, "d": [112,682], "a": 1 }, + { "px": [176,304], "src": [176,240], "f": 0, "t": 356, "d": [112,682], "a": 1 }, + { "px": [176,320], "src": [176,256], "f": 0, "t": 379, "d": [112,682], "a": 1 }, + { "px": [176,336], "src": [176,272], "f": 0, "t": 402, "d": [112,682], "a": 1 }, + { "px": [32,80], "src": [192,304], "f": 2, "t": 449, "d": [113,130], "a": 1 }, + { "px": [32,64], "src": [192,320], "f": 2, "t": 472, "d": [113,130], "a": 1 }, + { "px": [48,80], "src": [208,304], "f": 2, "t": 450, "d": [113,130], "a": 1 }, + { "px": [48,64], "src": [208,320], "f": 2, "t": 473, "d": [113,130], "a": 1 }, + { "px": [64,80], "src": [224,304], "f": 2, "t": 451, "d": [113,130], "a": 1 }, + { "px": [64,64], "src": [224,320], "f": 2, "t": 474, "d": [113,130], "a": 1 }, + { "px": [32,224], "src": [192,304], "f": 0, "t": 449, "d": [113,482], "a": 1 }, + { "px": [32,240], "src": [192,320], "f": 0, "t": 472, "d": [113,482], "a": 1 }, + { "px": [48,224], "src": [208,304], "f": 0, "t": 450, "d": [113,482], "a": 1 }, + { "px": [48,240], "src": [208,320], "f": 0, "t": 473, "d": [113,482], "a": 1 }, + { "px": [64,224], "src": [224,304], "f": 0, "t": 451, "d": [113,482], "a": 1 }, + { "px": [64,240], "src": [224,320], "f": 0, "t": 474, "d": [113,482], "a": 1 }, + { "px": [304,304], "src": [192,304], "f": 2, "t": 449, "d": [113,595], "a": 1 }, + { "px": [304,288], "src": [192,320], "f": 2, "t": 472, "d": [113,595], "a": 1 }, + { "px": [320,304], "src": [208,304], "f": 2, "t": 450, "d": [113,595], "a": 1 }, + { "px": [320,288], "src": [208,320], "f": 2, "t": 473, "d": [113,595], "a": 1 }, + { "px": [336,304], "src": [224,304], "f": 2, "t": 451, "d": [113,595], "a": 1 }, + { "px": [336,288], "src": [224,320], "f": 2, "t": 474, "d": [113,595], "a": 1 }, + { "px": [176,320], "src": [192,304], "f": 1, "t": 449, "d": [113,683], "a": 1 }, + { "px": [176,336], "src": [192,320], "f": 1, "t": 472, "d": [113,683], "a": 1 }, + { "px": [160,320], "src": [208,304], "f": 1, "t": 450, "d": [113,683], "a": 1 }, + { "px": [160,336], "src": [208,320], "f": 1, "t": 473, "d": [113,683], "a": 1 }, + { "px": [144,320], "src": [224,304], "f": 1, "t": 451, "d": [113,683], "a": 1 }, + { "px": [144,336], "src": [224,320], "f": 1, "t": 474, "d": [113,683], "a": 1 }, + { "px": [176,384], "src": [192,304], "f": 3, "t": 449, "d": [113,747], "a": 1 }, + { "px": [176,368], "src": [192,320], "f": 3, "t": 472, "d": [113,747], "a": 1 }, + { "px": [160,384], "src": [208,304], "f": 3, "t": 450, "d": [113,747], "a": 1 }, + { "px": [160,368], "src": [208,320], "f": 3, "t": 473, "d": [113,747], "a": 1 }, + { "px": [144,384], "src": [224,304], "f": 3, "t": 451, "d": [113,747], "a": 1 }, + { "px": [144,368], "src": [224,320], "f": 3, "t": 474, "d": [113,747], "a": 1 }, + { "px": [64,64], "src": [96,208], "f": 0, "t": 305, "d": [114,132], "a": 1 }, + { "px": [128,64], "src": [96,208], "f": 0, "t": 305, "d": [114,136], "a": 1 }, + { "px": [384,64], "src": [128,224], "f": 0, "t": 330, "d": [114,152], "a": 1 }, + { "px": [352,288], "src": [96,208], "f": 0, "t": 305, "d": [114,598], "a": 1 }, + { "px": [64,304], "src": [96,208], "f": 0, "t": 305, "d": [114,612], "a": 1 }, + { "px": [96,304], "src": [128,208], "f": 0, "t": 307, "d": [115,614], "a": 1 }, + { "px": [96,320], "src": [128,224], "f": 0, "t": 330, "d": [115,614], "a": 1 }, + { "px": [224,416], "src": [128,208], "f": 0, "t": 307, "d": [115,846], "a": 1 }, + { "px": [224,432], "src": [128,224], "f": 0, "t": 330, "d": [115,846], "a": 1 }, + { "px": [256,416], "src": [128,208], "f": 0, "t": 307, "d": [115,848], "a": 1 }, + { "px": [256,432], "src": [128,224], "f": 0, "t": 330, "d": [115,848], "a": 1 } + ], + "seed": 4000987, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a367c3b0-66b0-11ec-9cd7-91690c910c97", "dir": "w" }, { "levelIid": "a36e7a70-66b0-11ec-9cd7-67ffb406aba0", "dir": "e" }, { "levelIid": "a370eb70-66b0-11ec-9cd7-ef1d13410308", "dir": "s" }, { "levelIid": "07caf540-66b0-11ec-a595-a55a7e13679d", "dir": "s" } ] + }, + { + "identifier": "Save", + "iid": "a3730e50-66b0-11ec-9cd7-65c84b0f9baa", + "uid": 52, + "worldX": 1024, + "worldY": 256, + "worldDepth": 0, + "pxWid": 256, + "pxHei": 512, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#73C7EB", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": "Save", "__tile": null, "defUid": 99, "realEditorValues": [{ + "id": "V_String", + "params": ["Save"] + }] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a3735c70-66b0-11ec-9cd7-df3ee759b153", + "levelId": 52, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 6568829, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "SavingPoint", + "__grid": [7,6], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 133, "x": 336, "y": 0, "w": 16, "h": 16 }, + "__smartColor": "#FFEB5A", + "iid": "762fb910-7820-11ed-a6f2-95baf210def0", + "width": 32, + "height": 48, + "defUid": 141, + "px": [112,96], + "fieldInstances": [] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a3735c71-66b0-11ec-9cd7-453c73ecdaac", + "levelId": 52, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [32,64], "src": [320,128], "f": 0, "t": 204, "d": [26,66], "a": 1 }, + { "px": [192,64], "src": [320,128], "f": 1, "t": 204, "d": [26,76], "a": 1 }, + { "px": [16,80], "src": [320,128], "f": 0, "t": 204, "d": [26,81], "a": 1 }, + { "px": [208,80], "src": [320,128], "f": 1, "t": 204, "d": [26,93], "a": 1 }, + { "px": [224,96], "src": [320,128], "f": 1, "t": 204, "d": [26,110], "a": 1 }, + { "px": [224,112], "src": [320,128], "f": 1, "t": 204, "d": [26,126], "a": 1 }, + { "px": [224,128], "src": [320,128], "f": 1, "t": 204, "d": [26,142], "a": 1 }, + { "px": [224,144], "src": [320,128], "f": 1, "t": 204, "d": [26,158], "a": 1 }, + { "px": [48,160], "src": [320,128], "f": 0, "t": 204, "d": [26,163], "a": 1 }, + { "px": [80,160], "src": [320,128], "f": 1, "t": 204, "d": [26,165], "a": 1 }, + { "px": [160,160], "src": [320,128], "f": 0, "t": 204, "d": [26,170], "a": 1 }, + { "px": [224,160], "src": [320,128], "f": 1, "t": 204, "d": [26,174], "a": 1 }, + { "px": [48,176], "src": [320,128], "f": 0, "t": 204, "d": [26,179], "a": 1 }, + { "px": [96,176], "src": [320,128], "f": 1, "t": 204, "d": [26,182], "a": 1 }, + { "px": [144,176], "src": [320,128], "f": 0, "t": 204, "d": [26,185], "a": 1 }, + { "px": [224,176], "src": [320,128], "f": 1, "t": 204, "d": [26,190], "a": 1 }, + { "px": [48,144], "src": [320,96], "f": 0, "t": 158, "d": [138,147], "a": 1 }, + { "px": [80,144], "src": [320,96], "f": 1, "t": 158, "d": [138,149], "a": 1 }, + { "px": [160,144], "src": [320,96], "f": 0, "t": 158, "d": [138,154], "a": 1 }, + { "px": [32,64], "src": [336,112], "f": 0, "t": 182, "d": [27,66], "a": 1 }, + { "px": [48,64], "src": [336,112], "f": 0, "t": 182, "d": [27,67], "a": 1 }, + { "px": [64,64], "src": [336,112], "f": 0, "t": 182, "d": [27,68], "a": 1 }, + { "px": [80,64], "src": [336,112], "f": 0, "t": 182, "d": [27,69], "a": 1 }, + { "px": [96,64], "src": [336,112], "f": 0, "t": 182, "d": [27,70], "a": 1 }, + { "px": [112,64], "src": [336,112], "f": 0, "t": 182, "d": [27,71], "a": 1 }, + { "px": [128,64], "src": [336,112], "f": 0, "t": 182, "d": [27,72], "a": 1 }, + { "px": [144,64], "src": [336,112], "f": 0, "t": 182, "d": [27,73], "a": 1 }, + { "px": [160,64], "src": [336,112], "f": 0, "t": 182, "d": [27,74], "a": 1 }, + { "px": [176,64], "src": [336,112], "f": 0, "t": 182, "d": [27,75], "a": 1 }, + { "px": [192,64], "src": [336,112], "f": 0, "t": 182, "d": [27,76], "a": 1 }, + { "px": [16,80], "src": [336,112], "f": 0, "t": 182, "d": [27,81], "a": 1 }, + { "px": [208,80], "src": [336,112], "f": 0, "t": 182, "d": [27,93], "a": 1 }, + { "px": [0,96], "src": [336,112], "f": 0, "t": 182, "d": [27,96], "a": 1 }, + { "px": [224,96], "src": [336,112], "f": 0, "t": 182, "d": [27,110], "a": 1 }, + { "px": [96,176], "src": [336,112], "f": 0, "t": 182, "d": [27,182], "a": 1 }, + { "px": [144,176], "src": [336,112], "f": 0, "t": 182, "d": [27,185], "a": 1 }, + { "px": [176,304], "src": [336,112], "f": 0, "t": 182, "d": [27,315], "a": 1 }, + { "px": [192,304], "src": [336,112], "f": 0, "t": 182, "d": [27,316], "a": 1 }, + { "px": [208,304], "src": [336,112], "f": 0, "t": 182, "d": [27,317], "a": 1 }, + { "px": [224,304], "src": [336,112], "f": 0, "t": 182, "d": [27,318], "a": 1 }, + { "px": [240,304], "src": [336,112], "f": 0, "t": 182, "d": [27,319], "a": 1 }, + { "px": [32,80], "src": [320,112], "f": 0, "t": 181, "d": [137,82], "a": 1 }, + { "px": [192,80], "src": [320,112], "f": 1, "t": 181, "d": [137,92], "a": 1 }, + { "px": [16,96], "src": [320,112], "f": 0, "t": 181, "d": [137,97], "a": 1 }, + { "px": [208,96], "src": [320,112], "f": 1, "t": 181, "d": [137,109], "a": 1 }, + { "px": [80,176], "src": [320,112], "f": 1, "t": 181, "d": [137,181], "a": 1 }, + { "px": [160,176], "src": [320,112], "f": 0, "t": 181, "d": [137,186], "a": 1 } + ], + "seed": 9032523, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a3735c72-66b0-11ec-9cd7-e32d0c421ba7", + "levelId": 52, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0, + 1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,2,2,2,2,1,1,2,2,2,2,2,2,1,1,1, + 1,2,2,2,2,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2, + 2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [48,208], "src": [320,176], "f": 0, "t": 273, "d": [28,211], "a": 1 }, + { "px": [64,208], "src": [320,176], "f": 0, "t": 273, "d": [28,212], "a": 1 }, + { "px": [80,208], "src": [320,176], "f": 0, "t": 273, "d": [28,213], "a": 1 }, + { "px": [96,208], "src": [320,176], "f": 0, "t": 273, "d": [28,214], "a": 1 }, + { "px": [144,208], "src": [320,176], "f": 0, "t": 273, "d": [28,217], "a": 1 }, + { "px": [160,208], "src": [320,176], "f": 0, "t": 273, "d": [28,218], "a": 1 }, + { "px": [176,208], "src": [320,176], "f": 0, "t": 273, "d": [28,219], "a": 1 }, + { "px": [192,208], "src": [320,176], "f": 0, "t": 273, "d": [28,220], "a": 1 }, + { "px": [208,208], "src": [320,176], "f": 0, "t": 273, "d": [28,221], "a": 1 }, + { "px": [224,208], "src": [320,176], "f": 0, "t": 273, "d": [28,222], "a": 1 }, + { "px": [160,224], "src": [320,176], "f": 0, "t": 273, "d": [28,234], "a": 1 }, + { "px": [160,240], "src": [320,176], "f": 0, "t": 273, "d": [28,250], "a": 1 }, + { "px": [160,256], "src": [320,176], "f": 0, "t": 273, "d": [28,266], "a": 1 }, + { "px": [160,272], "src": [320,176], "f": 0, "t": 273, "d": [28,282], "a": 1 }, + { "px": [160,288], "src": [320,176], "f": 0, "t": 273, "d": [28,298], "a": 1 }, + { "px": [160,304], "src": [320,176], "f": 0, "t": 273, "d": [28,314], "a": 1 }, + { "px": [176,304], "src": [320,176], "f": 0, "t": 273, "d": [28,315], "a": 1 }, + { "px": [192,304], "src": [320,176], "f": 0, "t": 273, "d": [28,316], "a": 1 }, + { "px": [208,304], "src": [320,176], "f": 0, "t": 273, "d": [28,317], "a": 1 }, + { "px": [224,304], "src": [320,176], "f": 0, "t": 273, "d": [28,318], "a": 1 }, + { "px": [240,304], "src": [320,176], "f": 0, "t": 273, "d": [28,319], "a": 1 }, + { "px": [48,192], "src": [320,160], "f": 0, "t": 250, "d": [21,195], "a": 1 }, + { "px": [64,192], "src": [320,160], "f": 0, "t": 250, "d": [21,196], "a": 1 }, + { "px": [80,192], "src": [320,160], "f": 0, "t": 250, "d": [21,197], "a": 1 }, + { "px": [96,192], "src": [320,160], "f": 0, "t": 250, "d": [21,198], "a": 1 }, + { "px": [144,192], "src": [320,160], "f": 0, "t": 250, "d": [21,201], "a": 1 }, + { "px": [160,192], "src": [320,160], "f": 0, "t": 250, "d": [21,202], "a": 1 }, + { "px": [176,192], "src": [320,160], "f": 0, "t": 250, "d": [21,203], "a": 1 }, + { "px": [192,192], "src": [320,160], "f": 0, "t": 250, "d": [21,204], "a": 1 }, + { "px": [208,192], "src": [320,160], "f": 0, "t": 250, "d": [21,205], "a": 1 }, + { "px": [224,192], "src": [320,160], "f": 0, "t": 250, "d": [21,206], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [8,20], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [8,22], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [8,24], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [8,26], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [8,28], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [8,30], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [8,37], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [8,39], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [8,41], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [8,43], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [8,45], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [8,161], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [8,193], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [8,225], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [8,240], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [8,242], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [8,244], "a": 1 }, + { "px": [128,240], "src": [32,32], "f": 0, "t": 48, "d": [8,248], "a": 1 }, + { "px": [224,240], "src": [32,32], "f": 0, "t": 48, "d": [8,254], "a": 1 }, + { "px": [48,256], "src": [32,32], "f": 0, "t": 48, "d": [8,259], "a": 1 }, + { "px": [80,256], "src": [32,32], "f": 0, "t": 48, "d": [8,261], "a": 1 }, + { "px": [112,256], "src": [32,32], "f": 0, "t": 48, "d": [8,263], "a": 1 }, + { "px": [208,256], "src": [32,32], "f": 0, "t": 48, "d": [8,269], "a": 1 }, + { "px": [128,304], "src": [32,32], "f": 0, "t": 48, "d": [8,312], "a": 1 }, + { "px": [128,336], "src": [32,32], "f": 0, "t": 48, "d": [8,344], "a": 1 }, + { "px": [160,336], "src": [32,32], "f": 0, "t": 48, "d": [8,346], "a": 1 }, + { "px": [192,336], "src": [32,32], "f": 0, "t": 48, "d": [8,348], "a": 1 }, + { "px": [144,352], "src": [32,32], "f": 0, "t": 48, "d": [8,361], "a": 1 }, + { "px": [176,352], "src": [32,32], "f": 0, "t": 48, "d": [8,363], "a": 1 }, + { "px": [0,16], "src": [96,96], "f": 0, "t": 144, "d": [83,16], "a": 1 }, + { "px": [32,16], "src": [96,96], "f": 0, "t": 144, "d": [83,18], "a": 1 }, + { "px": [16,32], "src": [64,96], "f": 0, "t": 142, "d": [83,33], "a": 1 }, + { "px": [48,32], "src": [96,96], "f": 0, "t": 144, "d": [83,35], "a": 1 }, + { "px": [240,32], "src": [96,96], "f": 0, "t": 144, "d": [83,47], "a": 1 }, + { "px": [0,48], "src": [96,96], "f": 0, "t": 144, "d": [83,48], "a": 1 }, + { "px": [224,48], "src": [64,96], "f": 0, "t": 142, "d": [83,62], "a": 1 }, + { "px": [240,64], "src": [64,96], "f": 0, "t": 142, "d": [83,79], "a": 1 }, + { "px": [0,176], "src": [64,96], "f": 0, "t": 142, "d": [83,176], "a": 1 }, + { "px": [0,208], "src": [64,96], "f": 0, "t": 142, "d": [83,208], "a": 1 }, + { "px": [96,240], "src": [96,96], "f": 0, "t": 144, "d": [83,246], "a": 1 }, + { "px": [192,240], "src": [64,96], "f": 0, "t": 142, "d": [83,252], "a": 1 }, + { "px": [16,256], "src": [64,96], "f": 0, "t": 142, "d": [83,257], "a": 1 }, + { "px": [240,256], "src": [64,96], "f": 0, "t": 142, "d": [83,271], "a": 1 }, + { "px": [128,272], "src": [64,96], "f": 0, "t": 142, "d": [83,280], "a": 1 }, + { "px": [192,272], "src": [96,96], "f": 0, "t": 144, "d": [83,284], "a": 1 }, + { "px": [224,272], "src": [64,96], "f": 0, "t": 142, "d": [83,286], "a": 1 }, + { "px": [112,288], "src": [64,96], "f": 0, "t": 142, "d": [83,295], "a": 1 }, + { "px": [112,320], "src": [96,96], "f": 0, "t": 144, "d": [83,327], "a": 1 }, + { "px": [224,336], "src": [64,96], "f": 0, "t": 142, "d": [83,350], "a": 1 }, + { "px": [112,352], "src": [96,96], "f": 0, "t": 144, "d": [83,359], "a": 1 }, + { "px": [208,352], "src": [96,96], "f": 0, "t": 144, "d": [83,365], "a": 1 }, + { "px": [240,352], "src": [96,96], "f": 0, "t": 144, "d": [83,367], "a": 1 }, + { "px": [16,16], "src": [192,16], "f": 0, "t": 35, "d": [101,17], "a": 1 }, + { "px": [48,16], "src": [192,16], "f": 0, "t": 35, "d": [101,19], "a": 1 }, + { "px": [80,16], "src": [224,96], "f": 0, "t": 152, "d": [101,21], "a": 1 }, + { "px": [112,16], "src": [224,96], "f": 0, "t": 152, "d": [101,23], "a": 1 }, + { "px": [144,16], "src": [224,96], "f": 0, "t": 152, "d": [101,25], "a": 1 }, + { "px": [176,16], "src": [224,96], "f": 0, "t": 152, "d": [101,27], "a": 1 }, + { "px": [208,16], "src": [224,96], "f": 0, "t": 152, "d": [101,29], "a": 1 }, + { "px": [240,16], "src": [224,96], "f": 0, "t": 152, "d": [101,31], "a": 1 }, + { "px": [0,32], "src": [96,0], "f": 0, "t": 6, "d": [101,32], "a": 1 }, + { "px": [32,32], "src": [96,0], "f": 0, "t": 6, "d": [101,34], "a": 1 }, + { "px": [64,32], "src": [96,0], "f": 0, "t": 6, "d": [101,36], "a": 1 }, + { "px": [96,32], "src": [192,16], "f": 0, "t": 35, "d": [101,38], "a": 1 }, + { "px": [128,32], "src": [224,96], "f": 0, "t": 152, "d": [101,40], "a": 1 }, + { "px": [160,32], "src": [192,16], "f": 0, "t": 35, "d": [101,42], "a": 1 }, + { "px": [192,32], "src": [224,96], "f": 0, "t": 152, "d": [101,44], "a": 1 }, + { "px": [224,32], "src": [96,0], "f": 0, "t": 6, "d": [101,46], "a": 1 }, + { "px": [240,48], "src": [192,16], "f": 0, "t": 35, "d": [101,63], "a": 1 }, + { "px": [0,160], "src": [192,16], "f": 0, "t": 35, "d": [101,160], "a": 1 }, + { "px": [16,176], "src": [192,16], "f": 0, "t": 35, "d": [101,177], "a": 1 }, + { "px": [0,192], "src": [96,0], "f": 0, "t": 6, "d": [101,192], "a": 1 }, + { "px": [16,208], "src": [224,96], "f": 0, "t": 152, "d": [101,209], "a": 1 }, + { "px": [0,224], "src": [224,96], "f": 0, "t": 152, "d": [101,224], "a": 1 }, + { "px": [16,240], "src": [96,0], "f": 0, "t": 6, "d": [101,241], "a": 1 }, + { "px": [48,240], "src": [192,16], "f": 0, "t": 35, "d": [101,243], "a": 1 }, + { "px": [80,240], "src": [224,96], "f": 0, "t": 152, "d": [101,245], "a": 1 }, + { "px": [112,240], "src": [96,0], "f": 0, "t": 6, "d": [101,247], "a": 1 }, + { "px": [208,240], "src": [224,96], "f": 0, "t": 152, "d": [101,253], "a": 1 }, + { "px": [240,240], "src": [192,16], "f": 0, "t": 35, "d": [101,255], "a": 1 }, + { "px": [0,256], "src": [224,96], "f": 0, "t": 152, "d": [101,256], "a": 1 }, + { "px": [32,256], "src": [192,16], "f": 0, "t": 35, "d": [101,258], "a": 1 }, + { "px": [64,256], "src": [192,16], "f": 0, "t": 35, "d": [101,260], "a": 1 }, + { "px": [96,256], "src": [224,96], "f": 0, "t": 152, "d": [101,262], "a": 1 }, + { "px": [128,256], "src": [96,0], "f": 0, "t": 6, "d": [101,264], "a": 1 }, + { "px": [192,256], "src": [96,0], "f": 0, "t": 6, "d": [101,268], "a": 1 }, + { "px": [224,256], "src": [192,16], "f": 0, "t": 35, "d": [101,270], "a": 1 }, + { "px": [112,272], "src": [192,16], "f": 0, "t": 35, "d": [101,279], "a": 1 }, + { "px": [208,272], "src": [192,16], "f": 0, "t": 35, "d": [101,285], "a": 1 }, + { "px": [240,272], "src": [96,0], "f": 0, "t": 6, "d": [101,287], "a": 1 }, + { "px": [128,288], "src": [96,0], "f": 0, "t": 6, "d": [101,296], "a": 1 }, + { "px": [112,304], "src": [224,96], "f": 0, "t": 152, "d": [101,311], "a": 1 }, + { "px": [128,320], "src": [96,0], "f": 0, "t": 6, "d": [101,328], "a": 1 }, + { "px": [112,336], "src": [96,0], "f": 0, "t": 6, "d": [101,343], "a": 1 }, + { "px": [144,336], "src": [192,16], "f": 0, "t": 35, "d": [101,345], "a": 1 }, + { "px": [176,336], "src": [192,16], "f": 0, "t": 35, "d": [101,347], "a": 1 }, + { "px": [208,336], "src": [192,16], "f": 0, "t": 35, "d": [101,349], "a": 1 }, + { "px": [240,336], "src": [224,96], "f": 0, "t": 152, "d": [101,351], "a": 1 }, + { "px": [128,352], "src": [96,0], "f": 0, "t": 6, "d": [101,360], "a": 1 }, + { "px": [160,352], "src": [96,0], "f": 0, "t": 6, "d": [101,362], "a": 1 }, + { "px": [192,352], "src": [96,0], "f": 0, "t": 6, "d": [101,364], "a": 1 }, + { "px": [224,352], "src": [192,16], "f": 0, "t": 35, "d": [101,366], "a": 1 }, + { "px": [0,0], "src": [32,32], "f": 0, "t": 48, "d": [127,0], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [32,0], "src": [32,32], "f": 0, "t": 48, "d": [127,2], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [64,0], "src": [32,32], "f": 0, "t": 48, "d": [127,4], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [96,0], "src": [32,32], "f": 0, "t": 48, "d": [127,6], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [127,8], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [160,0], "src": [32,32], "f": 0, "t": 48, "d": [127,10], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [127,272], "a": 1 }, + { "px": [16,272], "src": [32,32], "f": 0, "t": 48, "d": [127,273], "a": 1 }, + { "px": [32,272], "src": [32,32], "f": 0, "t": 48, "d": [127,274], "a": 1 }, + { "px": [48,272], "src": [32,32], "f": 0, "t": 48, "d": [127,275], "a": 1 }, + { "px": [64,272], "src": [32,32], "f": 0, "t": 48, "d": [127,276], "a": 1 }, + { "px": [80,272], "src": [32,32], "f": 0, "t": 48, "d": [127,277], "a": 1 }, + { "px": [96,272], "src": [32,32], "f": 0, "t": 48, "d": [127,278], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [127,289], "a": 1 }, + { "px": [48,288], "src": [32,32], "f": 0, "t": 48, "d": [127,291], "a": 1 }, + { "px": [80,288], "src": [32,32], "f": 0, "t": 48, "d": [127,293], "a": 1 }, + { "px": [0,304], "src": [32,32], "f": 0, "t": 48, "d": [127,304], "a": 1 }, + { "px": [16,304], "src": [32,32], "f": 0, "t": 48, "d": [127,305], "a": 1 }, + { "px": [32,304], "src": [32,32], "f": 0, "t": 48, "d": [127,306], "a": 1 }, + { "px": [64,304], "src": [32,32], "f": 0, "t": 48, "d": [127,308], "a": 1 }, + { "px": [80,304], "src": [32,32], "f": 0, "t": 48, "d": [127,309], "a": 1 }, + { "px": [96,304], "src": [32,32], "f": 0, "t": 48, "d": [127,310], "a": 1 }, + { "px": [0,320], "src": [32,32], "f": 0, "t": 48, "d": [127,320], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [127,321], "a": 1 }, + { "px": [32,320], "src": [32,32], "f": 0, "t": 48, "d": [127,322], "a": 1 }, + { "px": [48,320], "src": [32,32], "f": 0, "t": 48, "d": [127,323], "a": 1 }, + { "px": [80,320], "src": [32,32], "f": 0, "t": 48, "d": [127,325], "a": 1 }, + { "px": [96,320], "src": [32,32], "f": 0, "t": 48, "d": [127,326], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [127,336], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [127,338], "a": 1 }, + { "px": [64,336], "src": [32,32], "f": 0, "t": 48, "d": [127,340], "a": 1 }, + { "px": [80,336], "src": [32,32], "f": 0, "t": 48, "d": [127,341], "a": 1 }, + { "px": [96,336], "src": [32,32], "f": 0, "t": 48, "d": [127,342], "a": 1 }, + { "px": [0,352], "src": [32,32], "f": 0, "t": 48, "d": [127,352], "a": 1 }, + { "px": [16,352], "src": [32,32], "f": 0, "t": 48, "d": [127,353], "a": 1 }, + { "px": [48,352], "src": [32,32], "f": 0, "t": 48, "d": [127,355], "a": 1 }, + { "px": [80,352], "src": [32,32], "f": 0, "t": 48, "d": [127,357], "a": 1 }, + { "px": [96,352], "src": [32,32], "f": 0, "t": 48, "d": [127,358], "a": 1 }, + { "px": [0,368], "src": [32,32], "f": 0, "t": 48, "d": [127,368], "a": 1 }, + { "px": [16,368], "src": [32,32], "f": 0, "t": 48, "d": [127,369], "a": 1 }, + { "px": [32,368], "src": [32,32], "f": 0, "t": 48, "d": [127,370], "a": 1 }, + { "px": [48,368], "src": [32,32], "f": 0, "t": 48, "d": [127,371], "a": 1 }, + { "px": [64,368], "src": [32,32], "f": 0, "t": 48, "d": [127,372], "a": 1 }, + { "px": [96,368], "src": [32,32], "f": 0, "t": 48, "d": [127,374], "a": 1 }, + { "px": [128,368], "src": [32,32], "f": 0, "t": 48, "d": [127,376], "a": 1 }, + { "px": [160,368], "src": [32,32], "f": 0, "t": 48, "d": [127,378], "a": 1 }, + { "px": [192,368], "src": [32,32], "f": 0, "t": 48, "d": [127,380], "a": 1 }, + { "px": [208,368], "src": [32,32], "f": 0, "t": 48, "d": [127,381], "a": 1 }, + { "px": [224,368], "src": [32,32], "f": 0, "t": 48, "d": [127,382], "a": 1 }, + { "px": [0,384], "src": [32,32], "f": 0, "t": 48, "d": [127,384], "a": 1 }, + { "px": [16,384], "src": [32,32], "f": 0, "t": 48, "d": [127,385], "a": 1 }, + { "px": [32,384], "src": [32,32], "f": 0, "t": 48, "d": [127,386], "a": 1 }, + { "px": [48,384], "src": [32,32], "f": 0, "t": 48, "d": [127,387], "a": 1 }, + { "px": [80,384], "src": [32,32], "f": 0, "t": 48, "d": [127,389], "a": 1 }, + { "px": [112,384], "src": [32,32], "f": 0, "t": 48, "d": [127,391], "a": 1 }, + { "px": [128,384], "src": [32,32], "f": 0, "t": 48, "d": [127,392], "a": 1 }, + { "px": [144,384], "src": [32,32], "f": 0, "t": 48, "d": [127,393], "a": 1 }, + { "px": [160,384], "src": [32,32], "f": 0, "t": 48, "d": [127,394], "a": 1 }, + { "px": [176,384], "src": [32,32], "f": 0, "t": 48, "d": [127,395], "a": 1 }, + { "px": [208,384], "src": [32,32], "f": 0, "t": 48, "d": [127,397], "a": 1 }, + { "px": [240,384], "src": [32,32], "f": 0, "t": 48, "d": [127,399], "a": 1 }, + { "px": [0,400], "src": [32,32], "f": 0, "t": 48, "d": [127,400], "a": 1 }, + { "px": [16,400], "src": [32,32], "f": 0, "t": 48, "d": [127,401], "a": 1 }, + { "px": [32,400], "src": [32,32], "f": 0, "t": 48, "d": [127,402], "a": 1 }, + { "px": [48,400], "src": [32,32], "f": 0, "t": 48, "d": [127,403], "a": 1 }, + { "px": [64,400], "src": [32,32], "f": 0, "t": 48, "d": [127,404], "a": 1 }, + { "px": [96,400], "src": [32,32], "f": 0, "t": 48, "d": [127,406], "a": 1 }, + { "px": [128,400], "src": [32,32], "f": 0, "t": 48, "d": [127,408], "a": 1 }, + { "px": [144,400], "src": [32,32], "f": 0, "t": 48, "d": [127,409], "a": 1 }, + { "px": [160,400], "src": [32,32], "f": 0, "t": 48, "d": [127,410], "a": 1 }, + { "px": [192,400], "src": [32,32], "f": 0, "t": 48, "d": [127,412], "a": 1 }, + { "px": [208,400], "src": [32,32], "f": 0, "t": 48, "d": [127,413], "a": 1 }, + { "px": [224,400], "src": [32,32], "f": 0, "t": 48, "d": [127,414], "a": 1 }, + { "px": [240,400], "src": [32,32], "f": 0, "t": 48, "d": [127,415], "a": 1 }, + { "px": [16,416], "src": [32,32], "f": 0, "t": 48, "d": [127,417], "a": 1 }, + { "px": [32,416], "src": [32,32], "f": 0, "t": 48, "d": [127,418], "a": 1 }, + { "px": [48,416], "src": [32,32], "f": 0, "t": 48, "d": [127,419], "a": 1 }, + { "px": [64,416], "src": [32,32], "f": 0, "t": 48, "d": [127,420], "a": 1 }, + { "px": [80,416], "src": [32,32], "f": 0, "t": 48, "d": [127,421], "a": 1 }, + { "px": [112,416], "src": [32,32], "f": 0, "t": 48, "d": [127,423], "a": 1 }, + { "px": [128,416], "src": [32,32], "f": 0, "t": 48, "d": [127,424], "a": 1 }, + { "px": [144,416], "src": [32,32], "f": 0, "t": 48, "d": [127,425], "a": 1 }, + { "px": [160,416], "src": [32,32], "f": 0, "t": 48, "d": [127,426], "a": 1 }, + { "px": [176,416], "src": [32,32], "f": 0, "t": 48, "d": [127,427], "a": 1 }, + { "px": [208,416], "src": [32,32], "f": 0, "t": 48, "d": [127,429], "a": 1 }, + { "px": [224,416], "src": [32,32], "f": 0, "t": 48, "d": [127,430], "a": 1 }, + { "px": [240,416], "src": [32,32], "f": 0, "t": 48, "d": [127,431], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [127,432], "a": 1 }, + { "px": [16,432], "src": [32,32], "f": 0, "t": 48, "d": [127,433], "a": 1 }, + { "px": [32,432], "src": [32,32], "f": 0, "t": 48, "d": [127,434], "a": 1 }, + { "px": [48,432], "src": [32,32], "f": 0, "t": 48, "d": [127,435], "a": 1 }, + { "px": [64,432], "src": [32,32], "f": 0, "t": 48, "d": [127,436], "a": 1 }, + { "px": [96,432], "src": [32,32], "f": 0, "t": 48, "d": [127,438], "a": 1 }, + { "px": [128,432], "src": [32,32], "f": 0, "t": 48, "d": [127,440], "a": 1 }, + { "px": [144,432], "src": [32,32], "f": 0, "t": 48, "d": [127,441], "a": 1 }, + { "px": [160,432], "src": [32,32], "f": 0, "t": 48, "d": [127,442], "a": 1 }, + { "px": [176,432], "src": [32,32], "f": 0, "t": 48, "d": [127,443], "a": 1 }, + { "px": [192,432], "src": [32,32], "f": 0, "t": 48, "d": [127,444], "a": 1 }, + { "px": [208,432], "src": [32,32], "f": 0, "t": 48, "d": [127,445], "a": 1 }, + { "px": [224,432], "src": [32,32], "f": 0, "t": 48, "d": [127,446], "a": 1 }, + { "px": [240,432], "src": [32,32], "f": 0, "t": 48, "d": [127,447], "a": 1 }, + { "px": [0,448], "src": [32,32], "f": 0, "t": 48, "d": [127,448], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [127,449], "a": 1 }, + { "px": [32,448], "src": [32,32], "f": 0, "t": 48, "d": [127,450], "a": 1 }, + { "px": [48,448], "src": [32,32], "f": 0, "t": 48, "d": [127,451], "a": 1 }, + { "px": [64,448], "src": [32,32], "f": 0, "t": 48, "d": [127,452], "a": 1 }, + { "px": [80,448], "src": [32,32], "f": 0, "t": 48, "d": [127,453], "a": 1 }, + { "px": [96,448], "src": [32,32], "f": 0, "t": 48, "d": [127,454], "a": 1 }, + { "px": [112,448], "src": [32,32], "f": 0, "t": 48, "d": [127,455], "a": 1 }, + { "px": [144,448], "src": [32,32], "f": 0, "t": 48, "d": [127,457], "a": 1 }, + { "px": [176,448], "src": [32,32], "f": 0, "t": 48, "d": [127,459], "a": 1 }, + { "px": [192,448], "src": [32,32], "f": 0, "t": 48, "d": [127,460], "a": 1 }, + { "px": [208,448], "src": [32,32], "f": 0, "t": 48, "d": [127,461], "a": 1 }, + { "px": [224,448], "src": [32,32], "f": 0, "t": 48, "d": [127,462], "a": 1 }, + { "px": [240,448], "src": [32,32], "f": 0, "t": 48, "d": [127,463], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [127,464], "a": 1 }, + { "px": [16,464], "src": [32,32], "f": 0, "t": 48, "d": [127,465], "a": 1 }, + { "px": [32,464], "src": [32,32], "f": 0, "t": 48, "d": [127,466], "a": 1 }, + { "px": [48,464], "src": [32,32], "f": 0, "t": 48, "d": [127,467], "a": 1 }, + { "px": [64,464], "src": [32,32], "f": 0, "t": 48, "d": [127,468], "a": 1 }, + { "px": [96,464], "src": [32,32], "f": 0, "t": 48, "d": [127,470], "a": 1 }, + { "px": [128,464], "src": [32,32], "f": 0, "t": 48, "d": [127,472], "a": 1 }, + { "px": [160,464], "src": [32,32], "f": 0, "t": 48, "d": [127,474], "a": 1 }, + { "px": [176,464], "src": [32,32], "f": 0, "t": 48, "d": [127,475], "a": 1 }, + { "px": [192,464], "src": [32,32], "f": 0, "t": 48, "d": [127,476], "a": 1 }, + { "px": [208,464], "src": [32,32], "f": 0, "t": 48, "d": [127,477], "a": 1 }, + { "px": [224,464], "src": [32,32], "f": 0, "t": 48, "d": [127,478], "a": 1 }, + { "px": [240,464], "src": [32,32], "f": 0, "t": 48, "d": [127,479], "a": 1 }, + { "px": [16,480], "src": [32,32], "f": 0, "t": 48, "d": [127,481], "a": 1 }, + { "px": [32,480], "src": [32,32], "f": 0, "t": 48, "d": [127,482], "a": 1 }, + { "px": [48,480], "src": [32,32], "f": 0, "t": 48, "d": [127,483], "a": 1 }, + { "px": [64,480], "src": [32,32], "f": 0, "t": 48, "d": [127,484], "a": 1 }, + { "px": [80,480], "src": [32,32], "f": 0, "t": 48, "d": [127,485], "a": 1 }, + { "px": [96,480], "src": [32,32], "f": 0, "t": 48, "d": [127,486], "a": 1 }, + { "px": [112,480], "src": [32,32], "f": 0, "t": 48, "d": [127,487], "a": 1 }, + { "px": [144,480], "src": [32,32], "f": 0, "t": 48, "d": [127,489], "a": 1 }, + { "px": [176,480], "src": [32,32], "f": 0, "t": 48, "d": [127,491], "a": 1 }, + { "px": [192,480], "src": [32,32], "f": 0, "t": 48, "d": [127,492], "a": 1 }, + { "px": [208,480], "src": [32,32], "f": 0, "t": 48, "d": [127,493], "a": 1 }, + { "px": [224,480], "src": [32,32], "f": 0, "t": 48, "d": [127,494], "a": 1 }, + { "px": [240,480], "src": [32,32], "f": 0, "t": 48, "d": [127,495], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,496], "a": 1 }, + { "px": [16,496], "src": [32,32], "f": 0, "t": 48, "d": [127,497], "a": 1 }, + { "px": [32,496], "src": [32,32], "f": 0, "t": 48, "d": [127,498], "a": 1 }, + { "px": [48,496], "src": [32,32], "f": 0, "t": 48, "d": [127,499], "a": 1 }, + { "px": [64,496], "src": [32,32], "f": 0, "t": 48, "d": [127,500], "a": 1 }, + { "px": [80,496], "src": [32,32], "f": 0, "t": 48, "d": [127,501], "a": 1 }, + { "px": [96,496], "src": [32,32], "f": 0, "t": 48, "d": [127,502], "a": 1 }, + { "px": [112,496], "src": [32,32], "f": 0, "t": 48, "d": [127,503], "a": 1 }, + { "px": [128,496], "src": [32,32], "f": 0, "t": 48, "d": [127,504], "a": 1 }, + { "px": [160,496], "src": [32,32], "f": 0, "t": 48, "d": [127,506], "a": 1 }, + { "px": [176,496], "src": [32,32], "f": 0, "t": 48, "d": [127,507], "a": 1 }, + { "px": [192,496], "src": [32,32], "f": 0, "t": 48, "d": [127,508], "a": 1 }, + { "px": [208,496], "src": [32,32], "f": 0, "t": 48, "d": [127,509], "a": 1 }, + { "px": [224,496], "src": [32,32], "f": 0, "t": 48, "d": [127,510], "a": 1 }, + { "px": [192,0], "src": [64,96], "f": 0, "t": 142, "d": [126,12], "a": 1 }, + { "px": [0,288], "src": [96,96], "f": 0, "t": 144, "d": [126,288], "a": 1 }, + { "px": [32,288], "src": [96,96], "f": 0, "t": 144, "d": [126,290], "a": 1 }, + { "px": [64,288], "src": [96,96], "f": 0, "t": 144, "d": [126,292], "a": 1 }, + { "px": [96,288], "src": [96,96], "f": 0, "t": 144, "d": [126,294], "a": 1 }, + { "px": [48,304], "src": [96,96], "f": 0, "t": 144, "d": [126,307], "a": 1 }, + { "px": [64,320], "src": [64,96], "f": 0, "t": 142, "d": [126,324], "a": 1 }, + { "px": [16,336], "src": [96,96], "f": 0, "t": 144, "d": [126,337], "a": 1 }, + { "px": [48,336], "src": [64,96], "f": 0, "t": 142, "d": [126,339], "a": 1 }, + { "px": [32,352], "src": [64,96], "f": 0, "t": 142, "d": [126,354], "a": 1 }, + { "px": [64,352], "src": [96,96], "f": 0, "t": 144, "d": [126,356], "a": 1 }, + { "px": [80,368], "src": [64,96], "f": 0, "t": 142, "d": [126,373], "a": 1 }, + { "px": [112,368], "src": [64,96], "f": 0, "t": 142, "d": [126,375], "a": 1 }, + { "px": [144,368], "src": [64,96], "f": 0, "t": 142, "d": [126,377], "a": 1 }, + { "px": [176,368], "src": [96,96], "f": 0, "t": 144, "d": [126,379], "a": 1 }, + { "px": [240,368], "src": [64,96], "f": 0, "t": 142, "d": [126,383], "a": 1 }, + { "px": [64,384], "src": [96,96], "f": 0, "t": 144, "d": [126,388], "a": 1 }, + { "px": [96,384], "src": [96,96], "f": 0, "t": 144, "d": [126,390], "a": 1 }, + { "px": [192,384], "src": [96,96], "f": 0, "t": 144, "d": [126,396], "a": 1 }, + { "px": [224,384], "src": [64,96], "f": 0, "t": 142, "d": [126,398], "a": 1 }, + { "px": [80,400], "src": [64,96], "f": 0, "t": 142, "d": [126,405], "a": 1 }, + { "px": [112,400], "src": [64,96], "f": 0, "t": 142, "d": [126,407], "a": 1 }, + { "px": [176,400], "src": [96,96], "f": 0, "t": 144, "d": [126,411], "a": 1 }, + { "px": [0,416], "src": [96,96], "f": 0, "t": 144, "d": [126,416], "a": 1 }, + { "px": [96,416], "src": [64,96], "f": 0, "t": 142, "d": [126,422], "a": 1 }, + { "px": [192,416], "src": [96,96], "f": 0, "t": 144, "d": [126,428], "a": 1 }, + { "px": [80,432], "src": [64,96], "f": 0, "t": 142, "d": [126,437], "a": 1 }, + { "px": [112,432], "src": [64,96], "f": 0, "t": 142, "d": [126,439], "a": 1 }, + { "px": [128,448], "src": [96,96], "f": 0, "t": 144, "d": [126,456], "a": 1 }, + { "px": [160,448], "src": [96,96], "f": 0, "t": 144, "d": [126,458], "a": 1 }, + { "px": [80,464], "src": [64,96], "f": 0, "t": 142, "d": [126,469], "a": 1 }, + { "px": [112,464], "src": [96,96], "f": 0, "t": 144, "d": [126,471], "a": 1 }, + { "px": [144,464], "src": [64,96], "f": 0, "t": 142, "d": [126,473], "a": 1 }, + { "px": [0,480], "src": [64,96], "f": 0, "t": 142, "d": [126,480], "a": 1 }, + { "px": [128,480], "src": [96,96], "f": 0, "t": 144, "d": [126,488], "a": 1 }, + { "px": [160,480], "src": [64,96], "f": 0, "t": 142, "d": [126,490], "a": 1 }, + { "px": [144,496], "src": [96,96], "f": 0, "t": 144, "d": [126,505], "a": 1 }, + { "px": [240,496], "src": [96,96], "f": 0, "t": 144, "d": [126,511], "a": 1 }, + { "px": [32,48], "src": [256,160], "f": 0, "t": 246, "d": [12,50], "a": 1 }, + { "px": [48,48], "src": [256,160], "f": 0, "t": 246, "d": [12,51], "a": 1 }, + { "px": [64,48], "src": [256,160], "f": 0, "t": 246, "d": [12,52], "a": 1 }, + { "px": [80,48], "src": [256,160], "f": 0, "t": 246, "d": [12,53], "a": 1 }, + { "px": [96,48], "src": [256,160], "f": 0, "t": 246, "d": [12,54], "a": 1 }, + { "px": [112,48], "src": [256,160], "f": 0, "t": 246, "d": [12,55], "a": 1 }, + { "px": [160,48], "src": [256,160], "f": 0, "t": 246, "d": [12,58], "a": 1 }, + { "px": [192,48], "src": [256,160], "f": 0, "t": 246, "d": [12,60], "a": 1 }, + { "px": [192,288], "src": [256,160], "f": 0, "t": 246, "d": [12,300], "a": 1 }, + { "px": [208,288], "src": [256,160], "f": 0, "t": 246, "d": [12,301], "a": 1 }, + { "px": [240,288], "src": [256,160], "f": 0, "t": 246, "d": [12,303], "a": 1 }, + { "px": [0,144], "src": [256,96], "f": 0, "t": 154, "d": [9,144], "a": 1 }, + { "px": [16,144], "src": [256,96], "f": 0, "t": 154, "d": [9,145], "a": 1 }, + { "px": [128,144], "src": [256,96], "f": 0, "t": 154, "d": [9,152], "a": 1 }, + { "px": [48,224], "src": [256,96], "f": 0, "t": 154, "d": [9,227], "a": 1 }, + { "px": [64,224], "src": [256,96], "f": 0, "t": 154, "d": [9,228], "a": 1 }, + { "px": [80,224], "src": [256,96], "f": 0, "t": 154, "d": [9,229], "a": 1 }, + { "px": [96,224], "src": [256,96], "f": 0, "t": 154, "d": [9,230], "a": 1 }, + { "px": [192,224], "src": [256,96], "f": 0, "t": 154, "d": [9,236], "a": 1 }, + { "px": [208,224], "src": [256,96], "f": 0, "t": 154, "d": [9,237], "a": 1 }, + { "px": [224,224], "src": [256,96], "f": 0, "t": 154, "d": [9,238], "a": 1 }, + { "px": [160,320], "src": [256,96], "f": 0, "t": 154, "d": [9,330], "a": 1 }, + { "px": [176,320], "src": [256,96], "f": 0, "t": 154, "d": [9,331], "a": 1 }, + { "px": [192,320], "src": [256,96], "f": 0, "t": 154, "d": [9,332], "a": 1 }, + { "px": [208,320], "src": [256,96], "f": 0, "t": 154, "d": [9,333], "a": 1 }, + { "px": [224,320], "src": [256,96], "f": 0, "t": 154, "d": [9,334], "a": 1 }, + { "px": [240,320], "src": [256,96], "f": 0, "t": 154, "d": [9,335], "a": 1 }, + { "px": [240,96], "src": [224,128], "f": 0, "t": 198, "d": [10,111], "a": 1 }, + { "px": [240,112], "src": [224,128], "f": 0, "t": 198, "d": [10,127], "a": 1 }, + { "px": [240,128], "src": [224,128], "f": 0, "t": 198, "d": [10,143], "a": 1 }, + { "px": [240,144], "src": [224,128], "f": 0, "t": 198, "d": [10,159], "a": 1 }, + { "px": [32,160], "src": [224,128], "f": 1, "t": 198, "d": [10,162], "a": 1 }, + { "px": [240,160], "src": [224,128], "f": 0, "t": 198, "d": [10,175], "a": 1 }, + { "px": [32,176], "src": [224,128], "f": 1, "t": 198, "d": [10,178], "a": 1 }, + { "px": [112,176], "src": [224,128], "f": 0, "t": 198, "d": [10,183], "a": 1 }, + { "px": [128,176], "src": [224,128], "f": 1, "t": 198, "d": [10,184], "a": 1 }, + { "px": [240,176], "src": [224,128], "f": 0, "t": 198, "d": [10,191], "a": 1 }, + { "px": [32,192], "src": [224,128], "f": 1, "t": 198, "d": [10,194], "a": 1 }, + { "px": [112,192], "src": [224,128], "f": 0, "t": 198, "d": [10,199], "a": 1 }, + { "px": [128,192], "src": [224,128], "f": 1, "t": 198, "d": [10,200], "a": 1 }, + { "px": [240,192], "src": [224,128], "f": 0, "t": 198, "d": [10,207], "a": 1 }, + { "px": [32,208], "src": [224,128], "f": 1, "t": 198, "d": [10,210], "a": 1 }, + { "px": [112,208], "src": [224,128], "f": 0, "t": 198, "d": [10,215], "a": 1 }, + { "px": [128,208], "src": [224,128], "f": 1, "t": 198, "d": [10,216], "a": 1 }, + { "px": [240,208], "src": [224,128], "f": 0, "t": 198, "d": [10,223], "a": 1 }, + { "px": [144,240], "src": [224,128], "f": 1, "t": 198, "d": [10,249], "a": 1 }, + { "px": [176,240], "src": [224,128], "f": 0, "t": 198, "d": [10,251], "a": 1 }, + { "px": [144,256], "src": [224,128], "f": 1, "t": 198, "d": [10,265], "a": 1 }, + { "px": [176,256], "src": [224,128], "f": 0, "t": 198, "d": [10,267], "a": 1 }, + { "px": [144,272], "src": [224,128], "f": 1, "t": 198, "d": [10,281], "a": 1 }, + { "px": [176,272], "src": [224,128], "f": 0, "t": 198, "d": [10,283], "a": 1 }, + { "px": [144,288], "src": [224,128], "f": 1, "t": 198, "d": [10,297], "a": 1 }, + { "px": [144,304], "src": [224,128], "f": 1, "t": 198, "d": [10,313], "a": 1 }, + { "px": [16,64], "src": [224,96], "f": 3, "t": 152, "d": [11,65], "a": 1 }, + { "px": [208,64], "src": [224,96], "f": 2, "t": 152, "d": [11,77], "a": 1 }, + { "px": [0,80], "src": [224,96], "f": 3, "t": 152, "d": [11,80], "a": 1 }, + { "px": [32,144], "src": [224,96], "f": 1, "t": 152, "d": [11,146], "a": 1 }, + { "px": [144,144], "src": [224,96], "f": 1, "t": 152, "d": [11,153], "a": 1 }, + { "px": [144,160], "src": [224,96], "f": 3, "t": 152, "d": [11,169], "a": 1 }, + { "px": [144,224], "src": [224,96], "f": 1, "t": 152, "d": [11,233], "a": 1 }, + { "px": [176,224], "src": [224,96], "f": 0, "t": 152, "d": [11,235], "a": 1 }, + { "px": [176,288], "src": [224,96], "f": 2, "t": 152, "d": [11,299], "a": 1 }, + { "px": [16,48], "src": [224,96], "f": 0, "t": 152, "d": [14,49], "a": 1 }, + { "px": [208,48], "src": [224,96], "f": 1, "t": 152, "d": [14,61], "a": 1 }, + { "px": [0,64], "src": [224,96], "f": 0, "t": 152, "d": [14,64], "a": 1 }, + { "px": [224,64], "src": [224,96], "f": 1, "t": 152, "d": [14,78], "a": 1 }, + { "px": [240,80], "src": [224,96], "f": 1, "t": 152, "d": [14,95], "a": 1 }, + { "px": [112,160], "src": [224,96], "f": 1, "t": 152, "d": [14,167], "a": 1 }, + { "px": [128,160], "src": [224,96], "f": 0, "t": 152, "d": [14,168], "a": 1 }, + { "px": [32,224], "src": [224,96], "f": 2, "t": 152, "d": [14,226], "a": 1 }, + { "px": [112,224], "src": [224,96], "f": 3, "t": 152, "d": [14,231], "a": 1 }, + { "px": [128,224], "src": [224,96], "f": 2, "t": 152, "d": [14,232], "a": 1 }, + { "px": [240,224], "src": [224,96], "f": 3, "t": 152, "d": [14,239], "a": 1 }, + { "px": [144,320], "src": [224,96], "f": 2, "t": 152, "d": [14,329], "a": 1 }, + { "px": [128,48], "src": [192,192], "f": 0, "t": 288, "d": [78,56], "a": 1 }, + { "px": [144,48], "src": [160,192], "f": 0, "t": 286, "d": [78,57], "a": 1 }, + { "px": [176,48], "src": [192,192], "f": 0, "t": 288, "d": [78,59], "a": 1 }, + { "px": [224,80], "src": [160,192], "f": 0, "t": 286, "d": [78,94], "a": 1 }, + { "px": [96,160], "src": [192,192], "f": 0, "t": 288, "d": [78,166], "a": 1 }, + { "px": [224,288], "src": [160,192], "f": 0, "t": 286, "d": [78,302], "a": 1 }, + { "px": [96,144], "src": [32,0], "f": 0, "t": 2, "d": [80,150], "a": 1 }, + { "px": [112,144], "src": [32,0], "f": 0, "t": 2, "d": [80,151], "a": 1 }, + { "px": [0,128], "src": [0,96], "f": 0, "t": 138, "d": [110,128], "a": 1 }, + { "px": [128,128], "src": [0,96], "f": 0, "t": 138, "d": [110,136], "a": 1 } + ], + "seed": 203026, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a3738380-66b0-11ec-9cd7-a9de5a745b7a", + "levelId": 52, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [48,64], "src": [320,272], "f": 0, "t": 411, "d": [108,67], "a": 1 }, + { "px": [80,64], "src": [320,272], "f": 0, "t": 411, "d": [108,69], "a": 1 }, + { "px": [96,64], "src": [320,272], "f": 0, "t": 411, "d": [108,70], "a": 1 }, + { "px": [112,64], "src": [320,272], "f": 0, "t": 411, "d": [108,71], "a": 1 }, + { "px": [128,64], "src": [320,272], "f": 0, "t": 411, "d": [108,72], "a": 1 }, + { "px": [144,64], "src": [320,272], "f": 0, "t": 411, "d": [108,73], "a": 1 }, + { "px": [160,64], "src": [320,272], "f": 0, "t": 411, "d": [108,74], "a": 1 }, + { "px": [176,64], "src": [320,272], "f": 0, "t": 411, "d": [108,75], "a": 1 }, + { "px": [32,80], "src": [320,272], "f": 0, "t": 411, "d": [108,82], "a": 1 }, + { "px": [48,80], "src": [320,272], "f": 0, "t": 411, "d": [108,83], "a": 1 }, + { "px": [64,80], "src": [320,272], "f": 0, "t": 411, "d": [108,84], "a": 1 }, + { "px": [80,80], "src": [320,272], "f": 0, "t": 411, "d": [108,85], "a": 1 }, + { "px": [96,80], "src": [320,272], "f": 0, "t": 411, "d": [108,86], "a": 1 }, + { "px": [112,80], "src": [320,272], "f": 0, "t": 411, "d": [108,87], "a": 1 }, + { "px": [128,80], "src": [320,272], "f": 0, "t": 411, "d": [108,88], "a": 1 }, + { "px": [144,80], "src": [320,272], "f": 0, "t": 411, "d": [108,89], "a": 1 }, + { "px": [160,80], "src": [320,272], "f": 0, "t": 411, "d": [108,90], "a": 1 }, + { "px": [176,80], "src": [320,272], "f": 0, "t": 411, "d": [108,91], "a": 1 }, + { "px": [192,80], "src": [320,272], "f": 0, "t": 411, "d": [108,92], "a": 1 }, + { "px": [16,96], "src": [320,272], "f": 0, "t": 411, "d": [108,97], "a": 1 }, + { "px": [32,96], "src": [320,272], "f": 0, "t": 411, "d": [108,98], "a": 1 }, + { "px": [48,96], "src": [320,272], "f": 0, "t": 411, "d": [108,99], "a": 1 }, + { "px": [64,96], "src": [320,272], "f": 0, "t": 411, "d": [108,100], "a": 1 }, + { "px": [80,96], "src": [320,272], "f": 0, "t": 411, "d": [108,101], "a": 1 }, + { "px": [96,96], "src": [320,272], "f": 0, "t": 411, "d": [108,102], "a": 1 }, + { "px": [112,96], "src": [320,272], "f": 0, "t": 411, "d": [108,103], "a": 1 }, + { "px": [128,96], "src": [320,272], "f": 0, "t": 411, "d": [108,104], "a": 1 }, + { "px": [144,96], "src": [320,272], "f": 0, "t": 411, "d": [108,105], "a": 1 }, + { "px": [160,96], "src": [320,272], "f": 0, "t": 411, "d": [108,106], "a": 1 }, + { "px": [176,96], "src": [320,272], "f": 0, "t": 411, "d": [108,107], "a": 1 }, + { "px": [192,96], "src": [320,272], "f": 0, "t": 411, "d": [108,108], "a": 1 }, + { "px": [208,96], "src": [320,272], "f": 0, "t": 411, "d": [108,109], "a": 1 }, + { "px": [0,112], "src": [320,272], "f": 0, "t": 411, "d": [108,112], "a": 1 }, + { "px": [16,112], "src": [320,272], "f": 0, "t": 411, "d": [108,113], "a": 1 }, + { "px": [32,112], "src": [320,272], "f": 0, "t": 411, "d": [108,114], "a": 1 }, + { "px": [48,112], "src": [320,272], "f": 0, "t": 411, "d": [108,115], "a": 1 }, + { "px": [64,112], "src": [320,272], "f": 0, "t": 411, "d": [108,116], "a": 1 }, + { "px": [80,112], "src": [320,272], "f": 0, "t": 411, "d": [108,117], "a": 1 }, + { "px": [96,112], "src": [320,272], "f": 0, "t": 411, "d": [108,118], "a": 1 }, + { "px": [112,112], "src": [320,272], "f": 0, "t": 411, "d": [108,119], "a": 1 }, + { "px": [128,112], "src": [320,272], "f": 0, "t": 411, "d": [108,120], "a": 1 }, + { "px": [144,112], "src": [320,272], "f": 0, "t": 411, "d": [108,121], "a": 1 }, + { "px": [160,112], "src": [320,272], "f": 0, "t": 411, "d": [108,122], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [108,123], "a": 1 }, + { "px": [192,112], "src": [320,272], "f": 0, "t": 411, "d": [108,124], "a": 1 }, + { "px": [208,112], "src": [320,272], "f": 0, "t": 411, "d": [108,125], "a": 1 }, + { "px": [0,128], "src": [320,272], "f": 0, "t": 411, "d": [108,128], "a": 1 }, + { "px": [16,128], "src": [320,272], "f": 0, "t": 411, "d": [108,129], "a": 1 }, + { "px": [32,128], "src": [320,272], "f": 0, "t": 411, "d": [108,130], "a": 1 }, + { "px": [48,128], "src": [320,272], "f": 0, "t": 411, "d": [108,131], "a": 1 }, + { "px": [64,128], "src": [320,272], "f": 0, "t": 411, "d": [108,132], "a": 1 }, + { "px": [80,128], "src": [320,272], "f": 0, "t": 411, "d": [108,133], "a": 1 }, + { "px": [96,128], "src": [320,272], "f": 0, "t": 411, "d": [108,134], "a": 1 }, + { "px": [112,128], "src": [320,272], "f": 0, "t": 411, "d": [108,135], "a": 1 }, + { "px": [128,128], "src": [320,272], "f": 0, "t": 411, "d": [108,136], "a": 1 }, + { "px": [144,128], "src": [320,272], "f": 0, "t": 411, "d": [108,137], "a": 1 }, + { "px": [160,128], "src": [320,272], "f": 0, "t": 411, "d": [108,138], "a": 1 }, + { "px": [176,128], "src": [320,272], "f": 0, "t": 411, "d": [108,139], "a": 1 }, + { "px": [192,128], "src": [320,272], "f": 0, "t": 411, "d": [108,140], "a": 1 }, + { "px": [208,128], "src": [320,272], "f": 0, "t": 411, "d": [108,141], "a": 1 }, + { "px": [64,144], "src": [320,272], "f": 0, "t": 411, "d": [108,148], "a": 1 }, + { "px": [176,144], "src": [320,272], "f": 0, "t": 411, "d": [108,155], "a": 1 }, + { "px": [192,144], "src": [320,272], "f": 0, "t": 411, "d": [108,156], "a": 1 }, + { "px": [208,144], "src": [320,272], "f": 0, "t": 411, "d": [108,157], "a": 1 }, + { "px": [64,160], "src": [320,272], "f": 0, "t": 411, "d": [108,164], "a": 1 }, + { "px": [176,160], "src": [320,272], "f": 0, "t": 411, "d": [108,171], "a": 1 }, + { "px": [192,160], "src": [320,272], "f": 0, "t": 411, "d": [108,172], "a": 1 }, + { "px": [208,160], "src": [320,272], "f": 0, "t": 411, "d": [108,173], "a": 1 }, + { "px": [64,176], "src": [320,272], "f": 0, "t": 411, "d": [108,180], "a": 1 }, + { "px": [80,176], "src": [320,272], "f": 0, "t": 411, "d": [108,181], "a": 1 }, + { "px": [160,176], "src": [320,272], "f": 0, "t": 411, "d": [108,186], "a": 1 }, + { "px": [176,176], "src": [320,272], "f": 0, "t": 411, "d": [108,187], "a": 1 }, + { "px": [192,176], "src": [320,272], "f": 0, "t": 411, "d": [108,188], "a": 1 }, + { "px": [208,176], "src": [320,272], "f": 0, "t": 411, "d": [108,189], "a": 1 }, + { "px": [48,192], "src": [320,272], "f": 0, "t": 411, "d": [108,195], "a": 1 }, + { "px": [64,192], "src": [320,272], "f": 0, "t": 411, "d": [108,196], "a": 1 }, + { "px": [80,192], "src": [320,272], "f": 0, "t": 411, "d": [108,197], "a": 1 }, + { "px": [96,192], "src": [320,272], "f": 0, "t": 411, "d": [108,198], "a": 1 }, + { "px": [144,192], "src": [320,272], "f": 0, "t": 411, "d": [108,201], "a": 1 }, + { "px": [160,192], "src": [320,272], "f": 0, "t": 411, "d": [108,202], "a": 1 }, + { "px": [176,192], "src": [320,272], "f": 0, "t": 411, "d": [108,203], "a": 1 }, + { "px": [192,192], "src": [320,272], "f": 0, "t": 411, "d": [108,204], "a": 1 }, + { "px": [208,192], "src": [320,272], "f": 0, "t": 411, "d": [108,205], "a": 1 }, + { "px": [224,192], "src": [320,272], "f": 0, "t": 411, "d": [108,206], "a": 1 }, + { "px": [48,208], "src": [320,272], "f": 0, "t": 411, "d": [108,211], "a": 1 }, + { "px": [64,208], "src": [320,272], "f": 0, "t": 411, "d": [108,212], "a": 1 }, + { "px": [80,208], "src": [320,272], "f": 0, "t": 411, "d": [108,213], "a": 1 }, + { "px": [96,208], "src": [320,272], "f": 0, "t": 411, "d": [108,214], "a": 1 }, + { "px": [144,208], "src": [320,272], "f": 0, "t": 411, "d": [108,217], "a": 1 }, + { "px": [160,208], "src": [320,272], "f": 0, "t": 411, "d": [108,218], "a": 1 }, + { "px": [176,208], "src": [320,272], "f": 0, "t": 411, "d": [108,219], "a": 1 }, + { "px": [192,208], "src": [320,272], "f": 0, "t": 411, "d": [108,220], "a": 1 }, + { "px": [208,208], "src": [320,272], "f": 0, "t": 411, "d": [108,221], "a": 1 }, + { "px": [224,208], "src": [320,272], "f": 0, "t": 411, "d": [108,222], "a": 1 }, + { "px": [160,224], "src": [320,272], "f": 0, "t": 411, "d": [108,234], "a": 1 }, + { "px": [160,240], "src": [320,272], "f": 0, "t": 411, "d": [108,250], "a": 1 }, + { "px": [160,256], "src": [320,272], "f": 0, "t": 411, "d": [108,266], "a": 1 }, + { "px": [160,272], "src": [320,272], "f": 0, "t": 411, "d": [108,282], "a": 1 }, + { "px": [160,288], "src": [320,272], "f": 0, "t": 411, "d": [108,298], "a": 1 }, + { "px": [160,304], "src": [320,272], "f": 0, "t": 411, "d": [108,314], "a": 1 }, + { "px": [176,304], "src": [320,272], "f": 0, "t": 411, "d": [108,315], "a": 1 }, + { "px": [192,304], "src": [320,272], "f": 0, "t": 411, "d": [108,316], "a": 1 }, + { "px": [208,304], "src": [320,272], "f": 0, "t": 411, "d": [108,317], "a": 1 }, + { "px": [224,304], "src": [320,272], "f": 0, "t": 411, "d": [108,318], "a": 1 }, + { "px": [240,304], "src": [320,272], "f": 0, "t": 411, "d": [108,319], "a": 1 }, + { "px": [32,80], "src": [256,240], "f": 1, "t": 361, "d": [107,81], "a": 1 }, + { "px": [16,80], "src": [272,240], "f": 1, "t": 362, "d": [107,81], "a": 1 }, + { "px": [192,80], "src": [256,240], "f": 0, "t": 361, "d": [107,93], "a": 1 }, + { "px": [208,80], "src": [272,240], "f": 0, "t": 362, "d": [107,93], "a": 1 }, + { "px": [208,96], "src": [256,240], "f": 0, "t": 361, "d": [107,110], "a": 1 }, + { "px": [224,96], "src": [272,240], "f": 0, "t": 362, "d": [107,110], "a": 1 }, + { "px": [208,112], "src": [256,240], "f": 0, "t": 361, "d": [107,126], "a": 1 }, + { "px": [224,112], "src": [272,240], "f": 0, "t": 362, "d": [107,126], "a": 1 }, + { "px": [208,128], "src": [256,240], "f": 0, "t": 361, "d": [107,142], "a": 1 }, + { "px": [224,128], "src": [272,240], "f": 0, "t": 362, "d": [107,142], "a": 1 }, + { "px": [64,144], "src": [256,240], "f": 1, "t": 361, "d": [107,147], "a": 1 }, + { "px": [48,144], "src": [272,240], "f": 1, "t": 362, "d": [107,147], "a": 1 }, + { "px": [64,144], "src": [256,240], "f": 0, "t": 361, "d": [107,149], "a": 1 }, + { "px": [80,144], "src": [272,240], "f": 0, "t": 362, "d": [107,149], "a": 1 }, + { "px": [176,144], "src": [256,240], "f": 1, "t": 361, "d": [107,154], "a": 1 }, + { "px": [160,144], "src": [272,240], "f": 1, "t": 362, "d": [107,154], "a": 1 }, + { "px": [208,144], "src": [256,240], "f": 0, "t": 361, "d": [107,158], "a": 1 }, + { "px": [224,144], "src": [272,240], "f": 0, "t": 362, "d": [107,158], "a": 1 }, + { "px": [64,160], "src": [256,240], "f": 1, "t": 361, "d": [107,163], "a": 1 }, + { "px": [48,160], "src": [272,240], "f": 1, "t": 362, "d": [107,163], "a": 1 }, + { "px": [64,160], "src": [256,240], "f": 0, "t": 361, "d": [107,165], "a": 1 }, + { "px": [80,160], "src": [272,240], "f": 0, "t": 362, "d": [107,165], "a": 1 }, + { "px": [176,160], "src": [256,240], "f": 1, "t": 361, "d": [107,170], "a": 1 }, + { "px": [160,160], "src": [272,240], "f": 1, "t": 362, "d": [107,170], "a": 1 }, + { "px": [208,160], "src": [256,240], "f": 0, "t": 361, "d": [107,174], "a": 1 }, + { "px": [224,160], "src": [272,240], "f": 0, "t": 362, "d": [107,174], "a": 1 }, + { "px": [64,176], "src": [256,240], "f": 1, "t": 361, "d": [107,179], "a": 1 }, + { "px": [48,176], "src": [272,240], "f": 1, "t": 362, "d": [107,179], "a": 1 }, + { "px": [80,176], "src": [256,240], "f": 0, "t": 361, "d": [107,182], "a": 1 }, + { "px": [96,176], "src": [272,240], "f": 0, "t": 362, "d": [107,182], "a": 1 }, + { "px": [160,176], "src": [256,240], "f": 1, "t": 361, "d": [107,185], "a": 1 }, + { "px": [144,176], "src": [272,240], "f": 1, "t": 362, "d": [107,185], "a": 1 }, + { "px": [208,176], "src": [256,240], "f": 0, "t": 361, "d": [107,190], "a": 1 }, + { "px": [224,176], "src": [272,240], "f": 0, "t": 362, "d": [107,190], "a": 1 }, + { "px": [32,64], "src": [96,208], "f": 0, "t": 305, "d": [114,66], "a": 1 }, + { "px": [64,64], "src": [96,208], "f": 0, "t": 305, "d": [114,68], "a": 1 }, + { "px": [192,64], "src": [128,224], "f": 0, "t": 330, "d": [114,76], "a": 1 }, + { "px": [0,96], "src": [96,208], "f": 0, "t": 305, "d": [114,96], "a": 1 } + ], + "seed": 6787926, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a36e7a70-66b0-11ec-9cd7-67ffb406aba0", "dir": "n" }, { "levelIid": "a3707640-66b0-11ec-9cd7-59efc6b24075", "dir": "s" }, { "levelIid": "a370eb70-66b0-11ec-9cd7-ef1d13410308", "dir": "w" }, { "levelIid": "a37690c0-66b0-11ec-9cd7-5f87e3c093eb", "dir": "e" } ] + }, + { + "identifier": "Flooded_rooms", + "iid": "a373aa90-66b0-11ec-9cd7-a9310f178834", + "uid": 71, + "worldX": 1024, + "worldY": 1024, + "worldDepth": 0, + "pxWid": 512, + "pxHei": 512, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a373aa95-66b0-11ec-9cd7-cb519b308861", + "levelId": 71, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 8145397, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Item", + "__grid": [14,27], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a373aa96-66b0-11ec-9cd7-7903b95e3e7d", + "width": 24, + "height": 24, + "defUid": 72, + "px": [232,448], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gold", "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gold"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 200, "__tile": null, "defUid": 139, "realEditorValues": [{ "id": "V_Int", "params": [200] }] } + ] + }, + { + "__identifier": "Item", + "__grid": [12,27], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a373aa97-66b0-11ec-9cd7-d715c6c71930", + "width": 24, + "height": 24, + "defUid": 72, + "px": [200,448], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gold", "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gold"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 50, "__tile": null, "defUid": 139, "realEditorValues": [{ "id": "V_Int", "params": [50] }] } + ] + }, + { + "__identifier": "Item", + "__grid": [19,27], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 32, "y": 992, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a373aa98-66b0-11ec-9cd7-d5022af1eb97", + "width": 24, + "height": 24, + "defUid": 72, + "px": [312,448], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Green_gem", "__tile": { "tilesetUid": 133, "x": 32, "y": 992, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Green_gem"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "Item", + "__grid": [7,25], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 96, "y": 976, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a373aa99-66b0-11ec-9cd7-d18008148c79", + "width": 24, + "height": 24, + "defUid": 72, + "px": [120,416], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gem", "__tile": { "tilesetUid": 133, "x": 96, "y": 976, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gem"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + }, + { + "__identifier": "SecretArea", + "__grid": [3,11], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 133, "x": 336, "y": 16, "w": 16, "h": 16 }, + "__smartColor": "#FFCC00", + "iid": "a373aa9b-66b0-11ec-9cd7-bd56f31f6283", + "width": 416, + "height": 144, + "defUid": 96, + "px": [48,176], + "fieldInstances": [{ "__identifier": "playSecretJingle", "__type": "Bool", "__value": true, "__tile": null, "defUid": 97, "realEditorValues": [] }] + }, + { + "__identifier": "Item", + "__grid": [10,27], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "1b892130-7820-11ed-b4b8-155ce4ee3573", + "width": 24, + "height": 24, + "defUid": 72, + "px": [168,448], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gold", "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gold"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 50, "__tile": null, "defUid": 139, "realEditorValues": [{ "id": "V_Int", "params": [50] }] } + ] + }, + { + "__identifier": "Item", + "__grid": [24,27], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "1c19c870-7820-11ed-b4b8-9dba990f1c87", + "width": 24, + "height": 24, + "defUid": 72, + "px": [392,448], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Gold", "__tile": { "tilesetUid": 133, "x": 240, "y": 352, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Gold"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 50, "__tile": null, "defUid": 139, "realEditorValues": [{ "id": "V_Int", "params": [50] }] } + ] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a373aa9c-66b0-11ec-9cd7-e5546a99d8c3", + "levelId": 71, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [64,208], "src": [336,112], "f": 0, "t": 182, "d": [27,420], "a": 1 }, + { "px": [80,208], "src": [336,112], "f": 0, "t": 182, "d": [27,421], "a": 1 }, + { "px": [96,208], "src": [336,112], "f": 0, "t": 182, "d": [27,422], "a": 1 }, + { "px": [112,208], "src": [336,112], "f": 0, "t": 182, "d": [27,423], "a": 1 }, + { "px": [128,208], "src": [336,112], "f": 0, "t": 182, "d": [27,424], "a": 1 }, + { "px": [144,208], "src": [336,112], "f": 0, "t": 182, "d": [27,425], "a": 1 }, + { "px": [160,208], "src": [336,112], "f": 0, "t": 182, "d": [27,426], "a": 1 }, + { "px": [176,208], "src": [336,112], "f": 0, "t": 182, "d": [27,427], "a": 1 }, + { "px": [192,208], "src": [336,112], "f": 0, "t": 182, "d": [27,428], "a": 1 }, + { "px": [208,208], "src": [336,112], "f": 0, "t": 182, "d": [27,429], "a": 1 }, + { "px": [224,208], "src": [336,112], "f": 0, "t": 182, "d": [27,430], "a": 1 }, + { "px": [240,208], "src": [336,112], "f": 0, "t": 182, "d": [27,431], "a": 1 }, + { "px": [256,208], "src": [336,112], "f": 0, "t": 182, "d": [27,432], "a": 1 }, + { "px": [272,208], "src": [336,112], "f": 0, "t": 182, "d": [27,433], "a": 1 }, + { "px": [288,208], "src": [336,112], "f": 0, "t": 182, "d": [27,434], "a": 1 }, + { "px": [304,208], "src": [336,112], "f": 0, "t": 182, "d": [27,435], "a": 1 }, + { "px": [320,208], "src": [336,112], "f": 0, "t": 182, "d": [27,436], "a": 1 }, + { "px": [336,208], "src": [336,112], "f": 0, "t": 182, "d": [27,437], "a": 1 }, + { "px": [400,208], "src": [336,112], "f": 0, "t": 182, "d": [27,441], "a": 1 }, + { "px": [416,208], "src": [336,112], "f": 0, "t": 182, "d": [27,442], "a": 1 }, + { "px": [432,208], "src": [336,112], "f": 0, "t": 182, "d": [27,443], "a": 1 } + ], + "seed": 9293936, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a373aa9d-66b0-11ec-9cd7-cb09b9a740ab", + "levelId": 71, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, + 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1, + 1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1, + 1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [352,0], "src": [320,176], "f": 0, "t": 273, "d": [28,22], "a": 1 }, + { "px": [368,0], "src": [320,176], "f": 0, "t": 273, "d": [28,23], "a": 1 }, + { "px": [384,0], "src": [320,176], "f": 0, "t": 273, "d": [28,24], "a": 1 }, + { "px": [352,16], "src": [320,176], "f": 0, "t": 273, "d": [28,54], "a": 1 }, + { "px": [368,16], "src": [320,176], "f": 0, "t": 273, "d": [28,55], "a": 1 }, + { "px": [384,16], "src": [320,176], "f": 0, "t": 273, "d": [28,56], "a": 1 }, + { "px": [352,32], "src": [320,176], "f": 0, "t": 273, "d": [28,86], "a": 1 }, + { "px": [368,32], "src": [320,176], "f": 0, "t": 273, "d": [28,87], "a": 1 }, + { "px": [384,32], "src": [320,176], "f": 0, "t": 273, "d": [28,88], "a": 1 }, + { "px": [352,48], "src": [320,176], "f": 0, "t": 273, "d": [28,118], "a": 1 }, + { "px": [368,48], "src": [320,176], "f": 0, "t": 273, "d": [28,119], "a": 1 }, + { "px": [384,48], "src": [320,176], "f": 0, "t": 273, "d": [28,120], "a": 1 }, + { "px": [352,64], "src": [320,176], "f": 0, "t": 273, "d": [28,150], "a": 1 }, + { "px": [368,64], "src": [320,176], "f": 0, "t": 273, "d": [28,151], "a": 1 }, + { "px": [384,64], "src": [320,176], "f": 0, "t": 273, "d": [28,152], "a": 1 }, + { "px": [352,80], "src": [320,176], "f": 0, "t": 273, "d": [28,182], "a": 1 }, + { "px": [368,80], "src": [320,176], "f": 0, "t": 273, "d": [28,183], "a": 1 }, + { "px": [384,80], "src": [320,176], "f": 0, "t": 273, "d": [28,184], "a": 1 }, + { "px": [352,96], "src": [320,176], "f": 0, "t": 273, "d": [28,214], "a": 1 }, + { "px": [368,96], "src": [320,176], "f": 0, "t": 273, "d": [28,215], "a": 1 }, + { "px": [384,96], "src": [320,176], "f": 0, "t": 273, "d": [28,216], "a": 1 }, + { "px": [352,112], "src": [320,176], "f": 0, "t": 273, "d": [28,246], "a": 1 }, + { "px": [368,112], "src": [320,176], "f": 0, "t": 273, "d": [28,247], "a": 1 }, + { "px": [384,112], "src": [320,176], "f": 0, "t": 273, "d": [28,248], "a": 1 }, + { "px": [352,128], "src": [320,176], "f": 0, "t": 273, "d": [28,278], "a": 1 }, + { "px": [368,128], "src": [320,176], "f": 0, "t": 273, "d": [28,279], "a": 1 }, + { "px": [384,128], "src": [320,176], "f": 0, "t": 273, "d": [28,280], "a": 1 }, + { "px": [352,144], "src": [320,176], "f": 0, "t": 273, "d": [28,310], "a": 1 }, + { "px": [368,144], "src": [320,176], "f": 0, "t": 273, "d": [28,311], "a": 1 }, + { "px": [384,144], "src": [320,176], "f": 0, "t": 273, "d": [28,312], "a": 1 }, + { "px": [352,160], "src": [320,176], "f": 0, "t": 273, "d": [28,342], "a": 1 }, + { "px": [368,160], "src": [320,176], "f": 0, "t": 273, "d": [28,343], "a": 1 }, + { "px": [384,160], "src": [320,176], "f": 0, "t": 273, "d": [28,344], "a": 1 }, + { "px": [352,176], "src": [320,176], "f": 0, "t": 273, "d": [28,374], "a": 1 }, + { "px": [368,176], "src": [320,176], "f": 0, "t": 273, "d": [28,375], "a": 1 }, + { "px": [384,176], "src": [320,176], "f": 0, "t": 273, "d": [28,376], "a": 1 }, + { "px": [352,192], "src": [320,176], "f": 0, "t": 273, "d": [28,406], "a": 1 }, + { "px": [368,192], "src": [320,176], "f": 0, "t": 273, "d": [28,407], "a": 1 }, + { "px": [384,192], "src": [320,176], "f": 0, "t": 273, "d": [28,408], "a": 1 }, + { "px": [64,208], "src": [320,176], "f": 0, "t": 273, "d": [28,420], "a": 1 }, + { "px": [80,208], "src": [320,176], "f": 0, "t": 273, "d": [28,421], "a": 1 }, + { "px": [96,208], "src": [320,176], "f": 0, "t": 273, "d": [28,422], "a": 1 }, + { "px": [112,208], "src": [320,176], "f": 0, "t": 273, "d": [28,423], "a": 1 }, + { "px": [128,208], "src": [320,176], "f": 0, "t": 273, "d": [28,424], "a": 1 }, + { "px": [144,208], "src": [320,176], "f": 0, "t": 273, "d": [28,425], "a": 1 }, + { "px": [160,208], "src": [320,176], "f": 0, "t": 273, "d": [28,426], "a": 1 }, + { "px": [176,208], "src": [320,176], "f": 0, "t": 273, "d": [28,427], "a": 1 }, + { "px": [192,208], "src": [320,176], "f": 0, "t": 273, "d": [28,428], "a": 1 }, + { "px": [208,208], "src": [320,176], "f": 0, "t": 273, "d": [28,429], "a": 1 }, + { "px": [224,208], "src": [320,176], "f": 0, "t": 273, "d": [28,430], "a": 1 }, + { "px": [240,208], "src": [320,176], "f": 0, "t": 273, "d": [28,431], "a": 1 }, + { "px": [256,208], "src": [320,176], "f": 0, "t": 273, "d": [28,432], "a": 1 }, + { "px": [272,208], "src": [320,176], "f": 0, "t": 273, "d": [28,433], "a": 1 }, + { "px": [288,208], "src": [320,176], "f": 0, "t": 273, "d": [28,434], "a": 1 }, + { "px": [304,208], "src": [320,176], "f": 0, "t": 273, "d": [28,435], "a": 1 }, + { "px": [320,208], "src": [320,176], "f": 0, "t": 273, "d": [28,436], "a": 1 }, + { "px": [336,208], "src": [320,176], "f": 0, "t": 273, "d": [28,437], "a": 1 }, + { "px": [352,208], "src": [320,176], "f": 0, "t": 273, "d": [28,438], "a": 1 }, + { "px": [368,208], "src": [320,176], "f": 0, "t": 273, "d": [28,439], "a": 1 }, + { "px": [384,208], "src": [320,176], "f": 0, "t": 273, "d": [28,440], "a": 1 }, + { "px": [400,208], "src": [320,176], "f": 0, "t": 273, "d": [28,441], "a": 1 }, + { "px": [416,208], "src": [320,176], "f": 0, "t": 273, "d": [28,442], "a": 1 }, + { "px": [432,208], "src": [320,176], "f": 0, "t": 273, "d": [28,443], "a": 1 }, + { "px": [64,224], "src": [320,176], "f": 0, "t": 273, "d": [28,452], "a": 1 }, + { "px": [80,224], "src": [320,176], "f": 0, "t": 273, "d": [28,453], "a": 1 }, + { "px": [96,224], "src": [320,176], "f": 0, "t": 273, "d": [28,454], "a": 1 }, + { "px": [112,224], "src": [320,176], "f": 0, "t": 273, "d": [28,455], "a": 1 }, + { "px": [128,224], "src": [320,176], "f": 0, "t": 273, "d": [28,456], "a": 1 }, + { "px": [144,224], "src": [320,176], "f": 0, "t": 273, "d": [28,457], "a": 1 }, + { "px": [160,224], "src": [320,176], "f": 0, "t": 273, "d": [28,458], "a": 1 }, + { "px": [176,224], "src": [320,176], "f": 0, "t": 273, "d": [28,459], "a": 1 }, + { "px": [192,224], "src": [320,176], "f": 0, "t": 273, "d": [28,460], "a": 1 }, + { "px": [208,224], "src": [320,176], "f": 0, "t": 273, "d": [28,461], "a": 1 }, + { "px": [224,224], "src": [320,176], "f": 0, "t": 273, "d": [28,462], "a": 1 }, + { "px": [240,224], "src": [320,176], "f": 0, "t": 273, "d": [28,463], "a": 1 }, + { "px": [256,224], "src": [320,176], "f": 0, "t": 273, "d": [28,464], "a": 1 }, + { "px": [272,224], "src": [320,176], "f": 0, "t": 273, "d": [28,465], "a": 1 }, + { "px": [288,224], "src": [320,176], "f": 0, "t": 273, "d": [28,466], "a": 1 }, + { "px": [304,224], "src": [320,176], "f": 0, "t": 273, "d": [28,467], "a": 1 }, + { "px": [320,224], "src": [320,176], "f": 0, "t": 273, "d": [28,468], "a": 1 }, + { "px": [336,224], "src": [320,176], "f": 0, "t": 273, "d": [28,469], "a": 1 }, + { "px": [352,224], "src": [320,176], "f": 0, "t": 273, "d": [28,470], "a": 1 }, + { "px": [368,224], "src": [320,176], "f": 0, "t": 273, "d": [28,471], "a": 1 }, + { "px": [384,224], "src": [320,176], "f": 0, "t": 273, "d": [28,472], "a": 1 }, + { "px": [400,224], "src": [320,176], "f": 0, "t": 273, "d": [28,473], "a": 1 }, + { "px": [416,224], "src": [320,176], "f": 0, "t": 273, "d": [28,474], "a": 1 }, + { "px": [432,224], "src": [320,176], "f": 0, "t": 273, "d": [28,475], "a": 1 }, + { "px": [64,240], "src": [320,176], "f": 0, "t": 273, "d": [28,484], "a": 1 }, + { "px": [80,240], "src": [320,176], "f": 0, "t": 273, "d": [28,485], "a": 1 }, + { "px": [96,240], "src": [320,176], "f": 0, "t": 273, "d": [28,486], "a": 1 }, + { "px": [112,240], "src": [320,176], "f": 0, "t": 273, "d": [28,487], "a": 1 }, + { "px": [128,240], "src": [320,176], "f": 0, "t": 273, "d": [28,488], "a": 1 }, + { "px": [144,240], "src": [320,176], "f": 0, "t": 273, "d": [28,489], "a": 1 }, + { "px": [160,240], "src": [320,176], "f": 0, "t": 273, "d": [28,490], "a": 1 }, + { "px": [176,240], "src": [320,176], "f": 0, "t": 273, "d": [28,491], "a": 1 }, + { "px": [192,240], "src": [320,176], "f": 0, "t": 273, "d": [28,492], "a": 1 }, + { "px": [208,240], "src": [320,176], "f": 0, "t": 273, "d": [28,493], "a": 1 }, + { "px": [224,240], "src": [320,176], "f": 0, "t": 273, "d": [28,494], "a": 1 }, + { "px": [240,240], "src": [320,176], "f": 0, "t": 273, "d": [28,495], "a": 1 }, + { "px": [256,240], "src": [320,176], "f": 0, "t": 273, "d": [28,496], "a": 1 }, + { "px": [272,240], "src": [320,176], "f": 0, "t": 273, "d": [28,497], "a": 1 }, + { "px": [288,240], "src": [320,176], "f": 0, "t": 273, "d": [28,498], "a": 1 }, + { "px": [304,240], "src": [320,176], "f": 0, "t": 273, "d": [28,499], "a": 1 }, + { "px": [320,240], "src": [320,176], "f": 0, "t": 273, "d": [28,500], "a": 1 }, + { "px": [336,240], "src": [320,176], "f": 0, "t": 273, "d": [28,501], "a": 1 }, + { "px": [352,240], "src": [320,176], "f": 0, "t": 273, "d": [28,502], "a": 1 }, + { "px": [368,240], "src": [320,176], "f": 0, "t": 273, "d": [28,503], "a": 1 }, + { "px": [384,240], "src": [320,176], "f": 0, "t": 273, "d": [28,504], "a": 1 }, + { "px": [400,240], "src": [320,176], "f": 0, "t": 273, "d": [28,505], "a": 1 }, + { "px": [416,240], "src": [320,176], "f": 0, "t": 273, "d": [28,506], "a": 1 }, + { "px": [432,240], "src": [320,176], "f": 0, "t": 273, "d": [28,507], "a": 1 }, + { "px": [64,256], "src": [320,176], "f": 0, "t": 273, "d": [28,516], "a": 1 }, + { "px": [80,256], "src": [320,176], "f": 0, "t": 273, "d": [28,517], "a": 1 }, + { "px": [96,256], "src": [320,176], "f": 0, "t": 273, "d": [28,518], "a": 1 }, + { "px": [112,256], "src": [320,176], "f": 0, "t": 273, "d": [28,519], "a": 1 }, + { "px": [128,256], "src": [320,176], "f": 0, "t": 273, "d": [28,520], "a": 1 }, + { "px": [144,256], "src": [320,176], "f": 0, "t": 273, "d": [28,521], "a": 1 }, + { "px": [160,256], "src": [320,176], "f": 0, "t": 273, "d": [28,522], "a": 1 }, + { "px": [176,256], "src": [320,176], "f": 0, "t": 273, "d": [28,523], "a": 1 }, + { "px": [192,256], "src": [320,176], "f": 0, "t": 273, "d": [28,524], "a": 1 }, + { "px": [208,256], "src": [320,176], "f": 0, "t": 273, "d": [28,525], "a": 1 }, + { "px": [224,256], "src": [320,176], "f": 0, "t": 273, "d": [28,526], "a": 1 }, + { "px": [240,256], "src": [320,176], "f": 0, "t": 273, "d": [28,527], "a": 1 }, + { "px": [256,256], "src": [320,176], "f": 0, "t": 273, "d": [28,528], "a": 1 }, + { "px": [272,256], "src": [320,176], "f": 0, "t": 273, "d": [28,529], "a": 1 }, + { "px": [288,256], "src": [320,176], "f": 0, "t": 273, "d": [28,530], "a": 1 }, + { "px": [304,256], "src": [320,176], "f": 0, "t": 273, "d": [28,531], "a": 1 }, + { "px": [320,256], "src": [320,176], "f": 0, "t": 273, "d": [28,532], "a": 1 }, + { "px": [336,256], "src": [320,176], "f": 0, "t": 273, "d": [28,533], "a": 1 }, + { "px": [352,256], "src": [320,176], "f": 0, "t": 273, "d": [28,534], "a": 1 }, + { "px": [368,256], "src": [320,176], "f": 0, "t": 273, "d": [28,535], "a": 1 }, + { "px": [384,256], "src": [320,176], "f": 0, "t": 273, "d": [28,536], "a": 1 }, + { "px": [400,256], "src": [320,176], "f": 0, "t": 273, "d": [28,537], "a": 1 }, + { "px": [416,256], "src": [320,176], "f": 0, "t": 273, "d": [28,538], "a": 1 }, + { "px": [432,256], "src": [320,176], "f": 0, "t": 273, "d": [28,539], "a": 1 }, + { "px": [64,272], "src": [320,176], "f": 0, "t": 273, "d": [28,548], "a": 1 }, + { "px": [80,272], "src": [320,176], "f": 0, "t": 273, "d": [28,549], "a": 1 }, + { "px": [96,272], "src": [320,176], "f": 0, "t": 273, "d": [28,550], "a": 1 }, + { "px": [112,272], "src": [320,176], "f": 0, "t": 273, "d": [28,551], "a": 1 }, + { "px": [128,272], "src": [320,176], "f": 0, "t": 273, "d": [28,552], "a": 1 }, + { "px": [144,272], "src": [320,176], "f": 0, "t": 273, "d": [28,553], "a": 1 }, + { "px": [160,272], "src": [320,176], "f": 0, "t": 273, "d": [28,554], "a": 1 }, + { "px": [176,272], "src": [320,176], "f": 0, "t": 273, "d": [28,555], "a": 1 }, + { "px": [192,272], "src": [320,176], "f": 0, "t": 273, "d": [28,556], "a": 1 }, + { "px": [208,272], "src": [320,176], "f": 0, "t": 273, "d": [28,557], "a": 1 }, + { "px": [224,272], "src": [320,176], "f": 0, "t": 273, "d": [28,558], "a": 1 }, + { "px": [240,272], "src": [320,176], "f": 0, "t": 273, "d": [28,559], "a": 1 }, + { "px": [256,272], "src": [320,176], "f": 0, "t": 273, "d": [28,560], "a": 1 }, + { "px": [272,272], "src": [320,176], "f": 0, "t": 273, "d": [28,561], "a": 1 }, + { "px": [288,272], "src": [320,176], "f": 0, "t": 273, "d": [28,562], "a": 1 }, + { "px": [304,272], "src": [320,176], "f": 0, "t": 273, "d": [28,563], "a": 1 }, + { "px": [320,272], "src": [320,176], "f": 0, "t": 273, "d": [28,564], "a": 1 }, + { "px": [336,272], "src": [320,176], "f": 0, "t": 273, "d": [28,565], "a": 1 }, + { "px": [352,272], "src": [320,176], "f": 0, "t": 273, "d": [28,566], "a": 1 }, + { "px": [368,272], "src": [320,176], "f": 0, "t": 273, "d": [28,567], "a": 1 }, + { "px": [384,272], "src": [320,176], "f": 0, "t": 273, "d": [28,568], "a": 1 }, + { "px": [400,272], "src": [320,176], "f": 0, "t": 273, "d": [28,569], "a": 1 }, + { "px": [416,272], "src": [320,176], "f": 0, "t": 273, "d": [28,570], "a": 1 }, + { "px": [432,272], "src": [320,176], "f": 0, "t": 273, "d": [28,571], "a": 1 }, + { "px": [64,288], "src": [320,176], "f": 0, "t": 273, "d": [28,580], "a": 1 }, + { "px": [80,288], "src": [320,176], "f": 0, "t": 273, "d": [28,581], "a": 1 }, + { "px": [96,288], "src": [320,176], "f": 0, "t": 273, "d": [28,582], "a": 1 }, + { "px": [112,288], "src": [320,176], "f": 0, "t": 273, "d": [28,583], "a": 1 }, + { "px": [128,288], "src": [320,176], "f": 0, "t": 273, "d": [28,584], "a": 1 }, + { "px": [144,288], "src": [320,176], "f": 0, "t": 273, "d": [28,585], "a": 1 }, + { "px": [160,288], "src": [320,176], "f": 0, "t": 273, "d": [28,586], "a": 1 }, + { "px": [176,288], "src": [320,176], "f": 0, "t": 273, "d": [28,587], "a": 1 }, + { "px": [192,288], "src": [320,176], "f": 0, "t": 273, "d": [28,588], "a": 1 }, + { "px": [208,288], "src": [320,176], "f": 0, "t": 273, "d": [28,589], "a": 1 }, + { "px": [224,288], "src": [320,176], "f": 0, "t": 273, "d": [28,590], "a": 1 }, + { "px": [240,288], "src": [320,176], "f": 0, "t": 273, "d": [28,591], "a": 1 }, + { "px": [256,288], "src": [320,176], "f": 0, "t": 273, "d": [28,592], "a": 1 }, + { "px": [272,288], "src": [320,176], "f": 0, "t": 273, "d": [28,593], "a": 1 }, + { "px": [288,288], "src": [320,176], "f": 0, "t": 273, "d": [28,594], "a": 1 }, + { "px": [304,288], "src": [320,176], "f": 0, "t": 273, "d": [28,595], "a": 1 }, + { "px": [320,288], "src": [320,176], "f": 0, "t": 273, "d": [28,596], "a": 1 }, + { "px": [336,288], "src": [320,176], "f": 0, "t": 273, "d": [28,597], "a": 1 }, + { "px": [352,288], "src": [320,176], "f": 0, "t": 273, "d": [28,598], "a": 1 }, + { "px": [368,288], "src": [320,176], "f": 0, "t": 273, "d": [28,599], "a": 1 }, + { "px": [384,288], "src": [320,176], "f": 0, "t": 273, "d": [28,600], "a": 1 }, + { "px": [400,288], "src": [320,176], "f": 0, "t": 273, "d": [28,601], "a": 1 }, + { "px": [416,288], "src": [320,176], "f": 0, "t": 273, "d": [28,602], "a": 1 }, + { "px": [432,288], "src": [320,176], "f": 0, "t": 273, "d": [28,603], "a": 1 }, + { "px": [64,304], "src": [320,176], "f": 0, "t": 273, "d": [28,612], "a": 1 }, + { "px": [80,304], "src": [320,176], "f": 0, "t": 273, "d": [28,613], "a": 1 }, + { "px": [96,304], "src": [320,176], "f": 0, "t": 273, "d": [28,614], "a": 1 }, + { "px": [112,304], "src": [320,176], "f": 0, "t": 273, "d": [28,615], "a": 1 }, + { "px": [128,304], "src": [320,176], "f": 0, "t": 273, "d": [28,616], "a": 1 }, + { "px": [144,304], "src": [320,176], "f": 0, "t": 273, "d": [28,617], "a": 1 }, + { "px": [160,304], "src": [320,176], "f": 0, "t": 273, "d": [28,618], "a": 1 }, + { "px": [176,304], "src": [320,176], "f": 0, "t": 273, "d": [28,619], "a": 1 }, + { "px": [192,304], "src": [320,176], "f": 0, "t": 273, "d": [28,620], "a": 1 }, + { "px": [208,304], "src": [320,176], "f": 0, "t": 273, "d": [28,621], "a": 1 }, + { "px": [224,304], "src": [320,176], "f": 0, "t": 273, "d": [28,622], "a": 1 }, + { "px": [240,304], "src": [320,176], "f": 0, "t": 273, "d": [28,623], "a": 1 }, + { "px": [256,304], "src": [320,176], "f": 0, "t": 273, "d": [28,624], "a": 1 }, + { "px": [272,304], "src": [320,176], "f": 0, "t": 273, "d": [28,625], "a": 1 }, + { "px": [288,304], "src": [320,176], "f": 0, "t": 273, "d": [28,626], "a": 1 }, + { "px": [304,304], "src": [320,176], "f": 0, "t": 273, "d": [28,627], "a": 1 }, + { "px": [320,304], "src": [320,176], "f": 0, "t": 273, "d": [28,628], "a": 1 }, + { "px": [336,304], "src": [320,176], "f": 0, "t": 273, "d": [28,629], "a": 1 }, + { "px": [352,304], "src": [320,176], "f": 0, "t": 273, "d": [28,630], "a": 1 }, + { "px": [368,304], "src": [320,176], "f": 0, "t": 273, "d": [28,631], "a": 1 }, + { "px": [384,304], "src": [320,176], "f": 0, "t": 273, "d": [28,632], "a": 1 }, + { "px": [400,304], "src": [320,176], "f": 0, "t": 273, "d": [28,633], "a": 1 }, + { "px": [416,304], "src": [320,176], "f": 0, "t": 273, "d": [28,634], "a": 1 }, + { "px": [432,304], "src": [320,176], "f": 0, "t": 273, "d": [28,635], "a": 1 }, + { "px": [64,320], "src": [320,176], "f": 0, "t": 273, "d": [28,644], "a": 1 }, + { "px": [80,320], "src": [320,176], "f": 0, "t": 273, "d": [28,645], "a": 1 }, + { "px": [96,320], "src": [320,176], "f": 0, "t": 273, "d": [28,646], "a": 1 }, + { "px": [112,320], "src": [320,176], "f": 0, "t": 273, "d": [28,647], "a": 1 }, + { "px": [128,320], "src": [320,176], "f": 0, "t": 273, "d": [28,648], "a": 1 }, + { "px": [144,320], "src": [320,176], "f": 0, "t": 273, "d": [28,649], "a": 1 }, + { "px": [160,320], "src": [320,176], "f": 0, "t": 273, "d": [28,650], "a": 1 }, + { "px": [176,320], "src": [320,176], "f": 0, "t": 273, "d": [28,651], "a": 1 }, + { "px": [192,320], "src": [320,176], "f": 0, "t": 273, "d": [28,652], "a": 1 }, + { "px": [208,320], "src": [320,176], "f": 0, "t": 273, "d": [28,653], "a": 1 }, + { "px": [224,320], "src": [320,176], "f": 0, "t": 273, "d": [28,654], "a": 1 }, + { "px": [240,320], "src": [320,176], "f": 0, "t": 273, "d": [28,655], "a": 1 }, + { "px": [256,320], "src": [320,176], "f": 0, "t": 273, "d": [28,656], "a": 1 }, + { "px": [272,320], "src": [320,176], "f": 0, "t": 273, "d": [28,657], "a": 1 }, + { "px": [288,320], "src": [320,176], "f": 0, "t": 273, "d": [28,658], "a": 1 }, + { "px": [304,320], "src": [320,176], "f": 0, "t": 273, "d": [28,659], "a": 1 }, + { "px": [320,320], "src": [320,176], "f": 0, "t": 273, "d": [28,660], "a": 1 }, + { "px": [336,320], "src": [320,176], "f": 0, "t": 273, "d": [28,661], "a": 1 }, + { "px": [352,320], "src": [320,176], "f": 0, "t": 273, "d": [28,662], "a": 1 }, + { "px": [368,320], "src": [320,176], "f": 0, "t": 273, "d": [28,663], "a": 1 }, + { "px": [384,320], "src": [320,176], "f": 0, "t": 273, "d": [28,664], "a": 1 }, + { "px": [400,320], "src": [320,176], "f": 0, "t": 273, "d": [28,665], "a": 1 }, + { "px": [416,320], "src": [320,176], "f": 0, "t": 273, "d": [28,666], "a": 1 }, + { "px": [432,320], "src": [320,176], "f": 0, "t": 273, "d": [28,667], "a": 1 }, + { "px": [64,336], "src": [320,176], "f": 0, "t": 273, "d": [28,676], "a": 1 }, + { "px": [80,336], "src": [320,176], "f": 0, "t": 273, "d": [28,677], "a": 1 }, + { "px": [96,336], "src": [320,176], "f": 0, "t": 273, "d": [28,678], "a": 1 }, + { "px": [112,336], "src": [320,176], "f": 0, "t": 273, "d": [28,679], "a": 1 }, + { "px": [128,336], "src": [320,176], "f": 0, "t": 273, "d": [28,680], "a": 1 }, + { "px": [144,336], "src": [320,176], "f": 0, "t": 273, "d": [28,681], "a": 1 }, + { "px": [160,336], "src": [320,176], "f": 0, "t": 273, "d": [28,682], "a": 1 }, + { "px": [176,336], "src": [320,176], "f": 0, "t": 273, "d": [28,683], "a": 1 }, + { "px": [192,336], "src": [320,176], "f": 0, "t": 273, "d": [28,684], "a": 1 }, + { "px": [208,336], "src": [320,176], "f": 0, "t": 273, "d": [28,685], "a": 1 }, + { "px": [224,336], "src": [320,176], "f": 0, "t": 273, "d": [28,686], "a": 1 }, + { "px": [240,336], "src": [320,176], "f": 0, "t": 273, "d": [28,687], "a": 1 }, + { "px": [256,336], "src": [320,176], "f": 0, "t": 273, "d": [28,688], "a": 1 }, + { "px": [272,336], "src": [320,176], "f": 0, "t": 273, "d": [28,689], "a": 1 }, + { "px": [288,336], "src": [320,176], "f": 0, "t": 273, "d": [28,690], "a": 1 }, + { "px": [304,336], "src": [320,176], "f": 0, "t": 273, "d": [28,691], "a": 1 }, + { "px": [320,336], "src": [320,176], "f": 0, "t": 273, "d": [28,692], "a": 1 }, + { "px": [336,336], "src": [320,176], "f": 0, "t": 273, "d": [28,693], "a": 1 }, + { "px": [352,336], "src": [320,176], "f": 0, "t": 273, "d": [28,694], "a": 1 }, + { "px": [368,336], "src": [320,176], "f": 0, "t": 273, "d": [28,695], "a": 1 }, + { "px": [384,336], "src": [320,176], "f": 0, "t": 273, "d": [28,696], "a": 1 }, + { "px": [400,336], "src": [320,176], "f": 0, "t": 273, "d": [28,697], "a": 1 }, + { "px": [416,336], "src": [320,176], "f": 0, "t": 273, "d": [28,698], "a": 1 }, + { "px": [432,336], "src": [320,176], "f": 0, "t": 273, "d": [28,699], "a": 1 }, + { "px": [64,352], "src": [320,176], "f": 0, "t": 273, "d": [28,708], "a": 1 }, + { "px": [80,352], "src": [320,176], "f": 0, "t": 273, "d": [28,709], "a": 1 }, + { "px": [96,352], "src": [320,176], "f": 0, "t": 273, "d": [28,710], "a": 1 }, + { "px": [112,352], "src": [320,176], "f": 0, "t": 273, "d": [28,711], "a": 1 }, + { "px": [128,352], "src": [320,176], "f": 0, "t": 273, "d": [28,712], "a": 1 }, + { "px": [144,352], "src": [320,176], "f": 0, "t": 273, "d": [28,713], "a": 1 }, + { "px": [160,352], "src": [320,176], "f": 0, "t": 273, "d": [28,714], "a": 1 }, + { "px": [176,352], "src": [320,176], "f": 0, "t": 273, "d": [28,715], "a": 1 }, + { "px": [192,352], "src": [320,176], "f": 0, "t": 273, "d": [28,716], "a": 1 }, + { "px": [208,352], "src": [320,176], "f": 0, "t": 273, "d": [28,717], "a": 1 }, + { "px": [224,352], "src": [320,176], "f": 0, "t": 273, "d": [28,718], "a": 1 }, + { "px": [240,352], "src": [320,176], "f": 0, "t": 273, "d": [28,719], "a": 1 }, + { "px": [256,352], "src": [320,176], "f": 0, "t": 273, "d": [28,720], "a": 1 }, + { "px": [272,352], "src": [320,176], "f": 0, "t": 273, "d": [28,721], "a": 1 }, + { "px": [288,352], "src": [320,176], "f": 0, "t": 273, "d": [28,722], "a": 1 }, + { "px": [304,352], "src": [320,176], "f": 0, "t": 273, "d": [28,723], "a": 1 }, + { "px": [320,352], "src": [320,176], "f": 0, "t": 273, "d": [28,724], "a": 1 }, + { "px": [336,352], "src": [320,176], "f": 0, "t": 273, "d": [28,725], "a": 1 }, + { "px": [352,352], "src": [320,176], "f": 0, "t": 273, "d": [28,726], "a": 1 }, + { "px": [368,352], "src": [320,176], "f": 0, "t": 273, "d": [28,727], "a": 1 }, + { "px": [384,352], "src": [320,176], "f": 0, "t": 273, "d": [28,728], "a": 1 }, + { "px": [400,352], "src": [320,176], "f": 0, "t": 273, "d": [28,729], "a": 1 }, + { "px": [416,352], "src": [320,176], "f": 0, "t": 273, "d": [28,730], "a": 1 }, + { "px": [432,352], "src": [320,176], "f": 0, "t": 273, "d": [28,731], "a": 1 }, + { "px": [64,368], "src": [320,176], "f": 0, "t": 273, "d": [28,740], "a": 1 }, + { "px": [80,368], "src": [320,176], "f": 0, "t": 273, "d": [28,741], "a": 1 }, + { "px": [96,368], "src": [320,176], "f": 0, "t": 273, "d": [28,742], "a": 1 }, + { "px": [112,368], "src": [320,176], "f": 0, "t": 273, "d": [28,743], "a": 1 }, + { "px": [128,368], "src": [320,176], "f": 0, "t": 273, "d": [28,744], "a": 1 }, + { "px": [144,368], "src": [320,176], "f": 0, "t": 273, "d": [28,745], "a": 1 }, + { "px": [160,368], "src": [320,176], "f": 0, "t": 273, "d": [28,746], "a": 1 }, + { "px": [176,368], "src": [320,176], "f": 0, "t": 273, "d": [28,747], "a": 1 }, + { "px": [192,368], "src": [320,176], "f": 0, "t": 273, "d": [28,748], "a": 1 }, + { "px": [208,368], "src": [320,176], "f": 0, "t": 273, "d": [28,749], "a": 1 }, + { "px": [224,368], "src": [320,176], "f": 0, "t": 273, "d": [28,750], "a": 1 }, + { "px": [240,368], "src": [320,176], "f": 0, "t": 273, "d": [28,751], "a": 1 }, + { "px": [256,368], "src": [320,176], "f": 0, "t": 273, "d": [28,752], "a": 1 }, + { "px": [272,368], "src": [320,176], "f": 0, "t": 273, "d": [28,753], "a": 1 }, + { "px": [288,368], "src": [320,176], "f": 0, "t": 273, "d": [28,754], "a": 1 }, + { "px": [304,368], "src": [320,176], "f": 0, "t": 273, "d": [28,755], "a": 1 }, + { "px": [320,368], "src": [320,176], "f": 0, "t": 273, "d": [28,756], "a": 1 }, + { "px": [336,368], "src": [320,176], "f": 0, "t": 273, "d": [28,757], "a": 1 }, + { "px": [352,368], "src": [320,176], "f": 0, "t": 273, "d": [28,758], "a": 1 }, + { "px": [368,368], "src": [320,176], "f": 0, "t": 273, "d": [28,759], "a": 1 }, + { "px": [384,368], "src": [320,176], "f": 0, "t": 273, "d": [28,760], "a": 1 }, + { "px": [400,368], "src": [320,176], "f": 0, "t": 273, "d": [28,761], "a": 1 }, + { "px": [416,368], "src": [320,176], "f": 0, "t": 273, "d": [28,762], "a": 1 }, + { "px": [432,368], "src": [320,176], "f": 0, "t": 273, "d": [28,763], "a": 1 }, + { "px": [64,384], "src": [320,176], "f": 0, "t": 273, "d": [28,772], "a": 1 }, + { "px": [80,384], "src": [320,176], "f": 0, "t": 273, "d": [28,773], "a": 1 }, + { "px": [96,384], "src": [320,176], "f": 0, "t": 273, "d": [28,774], "a": 1 }, + { "px": [112,384], "src": [320,176], "f": 0, "t": 273, "d": [28,775], "a": 1 }, + { "px": [128,384], "src": [320,176], "f": 0, "t": 273, "d": [28,776], "a": 1 }, + { "px": [144,384], "src": [320,176], "f": 0, "t": 273, "d": [28,777], "a": 1 }, + { "px": [160,384], "src": [320,176], "f": 0, "t": 273, "d": [28,778], "a": 1 }, + { "px": [176,384], "src": [320,176], "f": 0, "t": 273, "d": [28,779], "a": 1 }, + { "px": [192,384], "src": [320,176], "f": 0, "t": 273, "d": [28,780], "a": 1 }, + { "px": [208,384], "src": [320,176], "f": 0, "t": 273, "d": [28,781], "a": 1 }, + { "px": [224,384], "src": [320,176], "f": 0, "t": 273, "d": [28,782], "a": 1 }, + { "px": [240,384], "src": [320,176], "f": 0, "t": 273, "d": [28,783], "a": 1 }, + { "px": [256,384], "src": [320,176], "f": 0, "t": 273, "d": [28,784], "a": 1 }, + { "px": [272,384], "src": [320,176], "f": 0, "t": 273, "d": [28,785], "a": 1 }, + { "px": [288,384], "src": [320,176], "f": 0, "t": 273, "d": [28,786], "a": 1 }, + { "px": [304,384], "src": [320,176], "f": 0, "t": 273, "d": [28,787], "a": 1 }, + { "px": [320,384], "src": [320,176], "f": 0, "t": 273, "d": [28,788], "a": 1 }, + { "px": [336,384], "src": [320,176], "f": 0, "t": 273, "d": [28,789], "a": 1 }, + { "px": [352,384], "src": [320,176], "f": 0, "t": 273, "d": [28,790], "a": 1 }, + { "px": [368,384], "src": [320,176], "f": 0, "t": 273, "d": [28,791], "a": 1 }, + { "px": [384,384], "src": [320,176], "f": 0, "t": 273, "d": [28,792], "a": 1 }, + { "px": [400,384], "src": [320,176], "f": 0, "t": 273, "d": [28,793], "a": 1 }, + { "px": [416,384], "src": [320,176], "f": 0, "t": 273, "d": [28,794], "a": 1 }, + { "px": [432,384], "src": [320,176], "f": 0, "t": 273, "d": [28,795], "a": 1 }, + { "px": [64,400], "src": [320,176], "f": 0, "t": 273, "d": [28,804], "a": 1 }, + { "px": [80,400], "src": [320,176], "f": 0, "t": 273, "d": [28,805], "a": 1 }, + { "px": [96,400], "src": [320,176], "f": 0, "t": 273, "d": [28,806], "a": 1 }, + { "px": [112,400], "src": [320,176], "f": 0, "t": 273, "d": [28,807], "a": 1 }, + { "px": [128,400], "src": [320,176], "f": 0, "t": 273, "d": [28,808], "a": 1 }, + { "px": [144,400], "src": [320,176], "f": 0, "t": 273, "d": [28,809], "a": 1 }, + { "px": [160,400], "src": [320,176], "f": 0, "t": 273, "d": [28,810], "a": 1 }, + { "px": [176,400], "src": [320,176], "f": 0, "t": 273, "d": [28,811], "a": 1 }, + { "px": [192,400], "src": [320,176], "f": 0, "t": 273, "d": [28,812], "a": 1 }, + { "px": [208,400], "src": [320,176], "f": 0, "t": 273, "d": [28,813], "a": 1 }, + { "px": [224,400], "src": [320,176], "f": 0, "t": 273, "d": [28,814], "a": 1 }, + { "px": [240,400], "src": [320,176], "f": 0, "t": 273, "d": [28,815], "a": 1 }, + { "px": [256,400], "src": [320,176], "f": 0, "t": 273, "d": [28,816], "a": 1 }, + { "px": [272,400], "src": [320,176], "f": 0, "t": 273, "d": [28,817], "a": 1 }, + { "px": [288,400], "src": [320,176], "f": 0, "t": 273, "d": [28,818], "a": 1 }, + { "px": [304,400], "src": [320,176], "f": 0, "t": 273, "d": [28,819], "a": 1 }, + { "px": [320,400], "src": [320,176], "f": 0, "t": 273, "d": [28,820], "a": 1 }, + { "px": [336,400], "src": [320,176], "f": 0, "t": 273, "d": [28,821], "a": 1 }, + { "px": [352,400], "src": [320,176], "f": 0, "t": 273, "d": [28,822], "a": 1 }, + { "px": [368,400], "src": [320,176], "f": 0, "t": 273, "d": [28,823], "a": 1 }, + { "px": [384,400], "src": [320,176], "f": 0, "t": 273, "d": [28,824], "a": 1 }, + { "px": [400,400], "src": [320,176], "f": 0, "t": 273, "d": [28,825], "a": 1 }, + { "px": [416,400], "src": [320,176], "f": 0, "t": 273, "d": [28,826], "a": 1 }, + { "px": [432,400], "src": [320,176], "f": 0, "t": 273, "d": [28,827], "a": 1 }, + { "px": [128,416], "src": [320,176], "f": 0, "t": 273, "d": [28,840], "a": 1 }, + { "px": [144,416], "src": [320,176], "f": 0, "t": 273, "d": [28,841], "a": 1 }, + { "px": [160,416], "src": [320,176], "f": 0, "t": 273, "d": [28,842], "a": 1 }, + { "px": [176,416], "src": [320,176], "f": 0, "t": 273, "d": [28,843], "a": 1 }, + { "px": [192,416], "src": [320,176], "f": 0, "t": 273, "d": [28,844], "a": 1 }, + { "px": [208,416], "src": [320,176], "f": 0, "t": 273, "d": [28,845], "a": 1 }, + { "px": [224,416], "src": [320,176], "f": 0, "t": 273, "d": [28,846], "a": 1 }, + { "px": [240,416], "src": [320,176], "f": 0, "t": 273, "d": [28,847], "a": 1 }, + { "px": [256,416], "src": [320,176], "f": 0, "t": 273, "d": [28,848], "a": 1 }, + { "px": [272,416], "src": [320,176], "f": 0, "t": 273, "d": [28,849], "a": 1 }, + { "px": [288,416], "src": [320,176], "f": 0, "t": 273, "d": [28,850], "a": 1 }, + { "px": [304,416], "src": [320,176], "f": 0, "t": 273, "d": [28,851], "a": 1 }, + { "px": [320,416], "src": [320,176], "f": 0, "t": 273, "d": [28,852], "a": 1 }, + { "px": [336,416], "src": [320,176], "f": 0, "t": 273, "d": [28,853], "a": 1 }, + { "px": [352,416], "src": [320,176], "f": 0, "t": 273, "d": [28,854], "a": 1 }, + { "px": [368,416], "src": [320,176], "f": 0, "t": 273, "d": [28,855], "a": 1 }, + { "px": [384,416], "src": [320,176], "f": 0, "t": 273, "d": [28,856], "a": 1 }, + { "px": [400,416], "src": [320,176], "f": 0, "t": 273, "d": [28,857], "a": 1 }, + { "px": [416,416], "src": [320,176], "f": 0, "t": 273, "d": [28,858], "a": 1 }, + { "px": [432,416], "src": [320,176], "f": 0, "t": 273, "d": [28,859], "a": 1 }, + { "px": [128,432], "src": [320,176], "f": 0, "t": 273, "d": [28,872], "a": 1 }, + { "px": [144,432], "src": [320,176], "f": 0, "t": 273, "d": [28,873], "a": 1 }, + { "px": [160,432], "src": [320,176], "f": 0, "t": 273, "d": [28,874], "a": 1 }, + { "px": [176,432], "src": [320,176], "f": 0, "t": 273, "d": [28,875], "a": 1 }, + { "px": [192,432], "src": [320,176], "f": 0, "t": 273, "d": [28,876], "a": 1 }, + { "px": [208,432], "src": [320,176], "f": 0, "t": 273, "d": [28,877], "a": 1 }, + { "px": [224,432], "src": [320,176], "f": 0, "t": 273, "d": [28,878], "a": 1 }, + { "px": [240,432], "src": [320,176], "f": 0, "t": 273, "d": [28,879], "a": 1 }, + { "px": [256,432], "src": [320,176], "f": 0, "t": 273, "d": [28,880], "a": 1 }, + { "px": [272,432], "src": [320,176], "f": 0, "t": 273, "d": [28,881], "a": 1 }, + { "px": [288,432], "src": [320,176], "f": 0, "t": 273, "d": [28,882], "a": 1 }, + { "px": [304,432], "src": [320,176], "f": 0, "t": 273, "d": [28,883], "a": 1 }, + { "px": [320,432], "src": [320,176], "f": 0, "t": 273, "d": [28,884], "a": 1 }, + { "px": [336,432], "src": [320,176], "f": 0, "t": 273, "d": [28,885], "a": 1 }, + { "px": [352,432], "src": [320,176], "f": 0, "t": 273, "d": [28,886], "a": 1 }, + { "px": [368,432], "src": [320,176], "f": 0, "t": 273, "d": [28,887], "a": 1 }, + { "px": [384,432], "src": [320,176], "f": 0, "t": 273, "d": [28,888], "a": 1 }, + { "px": [400,432], "src": [320,176], "f": 0, "t": 273, "d": [28,889], "a": 1 }, + { "px": [416,432], "src": [320,176], "f": 0, "t": 273, "d": [28,890], "a": 1 }, + { "px": [432,432], "src": [320,176], "f": 0, "t": 273, "d": [28,891], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [8,19], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [8,27], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [8,52], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [8,58], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [8,83], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [8,91], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [8,116], "a": 1 }, + { "px": [416,48], "src": [32,32], "f": 0, "t": 48, "d": [8,122], "a": 1 }, + { "px": [432,64], "src": [32,32], "f": 0, "t": 48, "d": [8,155], "a": 1 }, + { "px": [416,80], "src": [32,32], "f": 0, "t": 48, "d": [8,186], "a": 1 }, + { "px": [304,96], "src": [32,32], "f": 0, "t": 48, "d": [8,211], "a": 1 }, + { "px": [432,96], "src": [32,32], "f": 0, "t": 48, "d": [8,219], "a": 1 }, + { "px": [320,112], "src": [32,32], "f": 0, "t": 48, "d": [8,244], "a": 1 }, + { "px": [304,128], "src": [32,32], "f": 0, "t": 48, "d": [8,275], "a": 1 }, + { "px": [432,128], "src": [32,32], "f": 0, "t": 48, "d": [8,283], "a": 1 }, + { "px": [320,144], "src": [32,32], "f": 0, "t": 48, "d": [8,308], "a": 1 }, + { "px": [416,144], "src": [32,32], "f": 0, "t": 48, "d": [8,314], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [8,321], "a": 1 }, + { "px": [48,160], "src": [32,32], "f": 0, "t": 48, "d": [8,323], "a": 1 }, + { "px": [112,160], "src": [32,32], "f": 0, "t": 48, "d": [8,327], "a": 1 }, + { "px": [176,160], "src": [32,32], "f": 0, "t": 48, "d": [8,331], "a": 1 }, + { "px": [272,160], "src": [32,32], "f": 0, "t": 48, "d": [8,337], "a": 1 }, + { "px": [304,160], "src": [32,32], "f": 0, "t": 48, "d": [8,339], "a": 1 }, + { "px": [432,160], "src": [32,32], "f": 0, "t": 48, "d": [8,347], "a": 1 }, + { "px": [464,160], "src": [32,32], "f": 0, "t": 48, "d": [8,349], "a": 1 }, + { "px": [32,176], "src": [32,32], "f": 0, "t": 48, "d": [8,354], "a": 1 }, + { "px": [64,176], "src": [32,32], "f": 0, "t": 48, "d": [8,356], "a": 1 }, + { "px": [96,176], "src": [32,32], "f": 0, "t": 48, "d": [8,358], "a": 1 }, + { "px": [160,176], "src": [32,32], "f": 0, "t": 48, "d": [8,362], "a": 1 }, + { "px": [192,176], "src": [32,32], "f": 0, "t": 48, "d": [8,364], "a": 1 }, + { "px": [224,176], "src": [32,32], "f": 0, "t": 48, "d": [8,366], "a": 1 }, + { "px": [256,176], "src": [32,32], "f": 0, "t": 48, "d": [8,368], "a": 1 }, + { "px": [288,176], "src": [32,32], "f": 0, "t": 48, "d": [8,370], "a": 1 }, + { "px": [416,176], "src": [32,32], "f": 0, "t": 48, "d": [8,378], "a": 1 }, + { "px": [448,176], "src": [32,32], "f": 0, "t": 48, "d": [8,380], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [8,385], "a": 1 }, + { "px": [464,192], "src": [32,32], "f": 0, "t": 48, "d": [8,413], "a": 1 }, + { "px": [32,208], "src": [32,32], "f": 0, "t": 48, "d": [8,418], "a": 1 }, + { "px": [480,208], "src": [32,32], "f": 0, "t": 48, "d": [8,446], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [8,449], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [8,482], "a": 1 }, + { "px": [16,256], "src": [32,32], "f": 0, "t": 48, "d": [8,513], "a": 1 }, + { "px": [32,272], "src": [32,32], "f": 0, "t": 48, "d": [8,546], "a": 1 }, + { "px": [480,272], "src": [32,32], "f": 0, "t": 48, "d": [8,574], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [8,577], "a": 1 }, + { "px": [464,288], "src": [32,32], "f": 0, "t": 48, "d": [8,605], "a": 1 }, + { "px": [480,304], "src": [32,32], "f": 0, "t": 48, "d": [8,638], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [8,641], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [8,674], "a": 1 }, + { "px": [480,336], "src": [32,32], "f": 0, "t": 48, "d": [8,702], "a": 1 }, + { "px": [16,352], "src": [32,32], "f": 0, "t": 48, "d": [8,705], "a": 1 }, + { "px": [464,352], "src": [32,32], "f": 0, "t": 48, "d": [8,733], "a": 1 }, + { "px": [32,368], "src": [32,32], "f": 0, "t": 48, "d": [8,738], "a": 1 }, + { "px": [464,416], "src": [32,32], "f": 0, "t": 48, "d": [8,861], "a": 1 }, + { "px": [480,432], "src": [32,32], "f": 0, "t": 48, "d": [8,894], "a": 1 }, + { "px": [48,448], "src": [32,32], "f": 0, "t": 48, "d": [8,899], "a": 1 }, + { "px": [80,448], "src": [32,32], "f": 0, "t": 48, "d": [8,901], "a": 1 }, + { "px": [464,448], "src": [32,32], "f": 0, "t": 48, "d": [8,925], "a": 1 }, + { "px": [96,464], "src": [32,32], "f": 0, "t": 48, "d": [8,934], "a": 1 }, + { "px": [160,464], "src": [32,32], "f": 0, "t": 48, "d": [8,938], "a": 1 }, + { "px": [256,464], "src": [32,32], "f": 0, "t": 48, "d": [8,944], "a": 1 }, + { "px": [320,464], "src": [32,32], "f": 0, "t": 48, "d": [8,948], "a": 1 }, + { "px": [352,464], "src": [32,32], "f": 0, "t": 48, "d": [8,950], "a": 1 }, + { "px": [448,464], "src": [32,32], "f": 0, "t": 48, "d": [8,956], "a": 1 }, + { "px": [480,464], "src": [32,32], "f": 0, "t": 48, "d": [8,958], "a": 1 }, + { "px": [144,480], "src": [32,32], "f": 0, "t": 48, "d": [8,969], "a": 1 }, + { "px": [240,480], "src": [32,32], "f": 0, "t": 48, "d": [8,975], "a": 1 }, + { "px": [272,480], "src": [32,32], "f": 0, "t": 48, "d": [8,977], "a": 1 }, + { "px": [336,480], "src": [32,32], "f": 0, "t": 48, "d": [8,981], "a": 1 }, + { "px": [368,480], "src": [32,32], "f": 0, "t": 48, "d": [8,983], "a": 1 }, + { "px": [400,480], "src": [32,32], "f": 0, "t": 48, "d": [8,985], "a": 1 }, + { "px": [464,480], "src": [32,32], "f": 0, "t": 48, "d": [8,989], "a": 1 }, + { "px": [304,64], "src": [96,96], "f": 0, "t": 144, "d": [83,147], "a": 1 }, + { "px": [320,80], "src": [96,96], "f": 0, "t": 144, "d": [83,180], "a": 1 }, + { "px": [416,112], "src": [64,96], "f": 0, "t": 142, "d": [83,250], "a": 1 }, + { "px": [80,160], "src": [64,96], "f": 0, "t": 142, "d": [83,325], "a": 1 }, + { "px": [144,160], "src": [64,96], "f": 0, "t": 142, "d": [83,329], "a": 1 }, + { "px": [208,160], "src": [64,96], "f": 0, "t": 142, "d": [83,333], "a": 1 }, + { "px": [240,160], "src": [64,96], "f": 0, "t": 142, "d": [83,335], "a": 1 }, + { "px": [128,176], "src": [96,96], "f": 0, "t": 144, "d": [83,360], "a": 1 }, + { "px": [320,176], "src": [96,96], "f": 0, "t": 144, "d": [83,372], "a": 1 }, + { "px": [480,176], "src": [96,96], "f": 0, "t": 144, "d": [83,382], "a": 1 }, + { "px": [464,224], "src": [64,96], "f": 0, "t": 142, "d": [83,477], "a": 1 }, + { "px": [480,240], "src": [64,96], "f": 0, "t": 142, "d": [83,510], "a": 1 }, + { "px": [464,256], "src": [64,96], "f": 0, "t": 142, "d": [83,541], "a": 1 }, + { "px": [32,304], "src": [64,96], "f": 0, "t": 142, "d": [83,610], "a": 1 }, + { "px": [464,320], "src": [64,96], "f": 0, "t": 142, "d": [83,669], "a": 1 }, + { "px": [480,368], "src": [64,96], "f": 0, "t": 142, "d": [83,766], "a": 1 }, + { "px": [16,384], "src": [96,96], "f": 0, "t": 144, "d": [83,769], "a": 1 }, + { "px": [464,384], "src": [96,96], "f": 0, "t": 144, "d": [83,797], "a": 1 }, + { "px": [32,400], "src": [64,96], "f": 0, "t": 142, "d": [83,802], "a": 1 }, + { "px": [480,400], "src": [96,96], "f": 0, "t": 144, "d": [83,830], "a": 1 }, + { "px": [16,416], "src": [64,96], "f": 0, "t": 142, "d": [83,833], "a": 1 }, + { "px": [32,432], "src": [96,96], "f": 0, "t": 144, "d": [83,866], "a": 1 }, + { "px": [64,432], "src": [96,96], "f": 0, "t": 144, "d": [83,868], "a": 1 }, + { "px": [96,432], "src": [96,96], "f": 0, "t": 144, "d": [83,870], "a": 1 }, + { "px": [16,448], "src": [64,96], "f": 0, "t": 142, "d": [83,897], "a": 1 }, + { "px": [128,464], "src": [64,96], "f": 0, "t": 142, "d": [83,936], "a": 1 }, + { "px": [192,464], "src": [96,96], "f": 0, "t": 144, "d": [83,940], "a": 1 }, + { "px": [224,464], "src": [64,96], "f": 0, "t": 142, "d": [83,942], "a": 1 }, + { "px": [288,464], "src": [64,96], "f": 0, "t": 142, "d": [83,946], "a": 1 }, + { "px": [384,464], "src": [96,96], "f": 0, "t": 144, "d": [83,952], "a": 1 }, + { "px": [416,464], "src": [96,96], "f": 0, "t": 144, "d": [83,954], "a": 1 }, + { "px": [80,480], "src": [96,96], "f": 0, "t": 144, "d": [83,965], "a": 1 }, + { "px": [112,480], "src": [64,96], "f": 0, "t": 142, "d": [83,967], "a": 1 }, + { "px": [176,480], "src": [64,96], "f": 0, "t": 142, "d": [83,971], "a": 1 }, + { "px": [208,480], "src": [96,96], "f": 0, "t": 144, "d": [83,973], "a": 1 }, + { "px": [304,480], "src": [64,96], "f": 0, "t": 142, "d": [83,979], "a": 1 }, + { "px": [432,480], "src": [96,96], "f": 0, "t": 144, "d": [83,987], "a": 1 }, + { "px": [320,0], "src": [224,96], "f": 0, "t": 152, "d": [101,20], "a": 1 }, + { "px": [416,0], "src": [96,0], "f": 0, "t": 6, "d": [101,26], "a": 1 }, + { "px": [304,16], "src": [192,16], "f": 0, "t": 35, "d": [101,51], "a": 1 }, + { "px": [432,16], "src": [224,96], "f": 0, "t": 152, "d": [101,59], "a": 1 }, + { "px": [320,32], "src": [96,0], "f": 0, "t": 6, "d": [101,84], "a": 1 }, + { "px": [416,32], "src": [192,16], "f": 0, "t": 35, "d": [101,90], "a": 1 }, + { "px": [304,48], "src": [224,96], "f": 0, "t": 152, "d": [101,115], "a": 1 }, + { "px": [432,48], "src": [96,0], "f": 0, "t": 6, "d": [101,123], "a": 1 }, + { "px": [320,64], "src": [224,96], "f": 0, "t": 152, "d": [101,148], "a": 1 }, + { "px": [416,64], "src": [224,96], "f": 0, "t": 152, "d": [101,154], "a": 1 }, + { "px": [304,80], "src": [96,0], "f": 0, "t": 6, "d": [101,179], "a": 1 }, + { "px": [432,80], "src": [224,96], "f": 0, "t": 152, "d": [101,187], "a": 1 }, + { "px": [320,96], "src": [96,0], "f": 0, "t": 6, "d": [101,212], "a": 1 }, + { "px": [416,96], "src": [192,16], "f": 0, "t": 35, "d": [101,218], "a": 1 }, + { "px": [304,112], "src": [96,0], "f": 0, "t": 6, "d": [101,243], "a": 1 }, + { "px": [432,112], "src": [224,96], "f": 0, "t": 152, "d": [101,251], "a": 1 }, + { "px": [320,128], "src": [224,96], "f": 0, "t": 152, "d": [101,276], "a": 1 }, + { "px": [416,128], "src": [192,16], "f": 0, "t": 35, "d": [101,282], "a": 1 }, + { "px": [304,144], "src": [192,16], "f": 0, "t": 35, "d": [101,307], "a": 1 }, + { "px": [432,144], "src": [224,96], "f": 0, "t": 152, "d": [101,315], "a": 1 }, + { "px": [32,160], "src": [224,96], "f": 0, "t": 152, "d": [101,322], "a": 1 }, + { "px": [64,160], "src": [224,96], "f": 0, "t": 152, "d": [101,324], "a": 1 }, + { "px": [96,160], "src": [96,0], "f": 0, "t": 6, "d": [101,326], "a": 1 }, + { "px": [128,160], "src": [224,96], "f": 0, "t": 152, "d": [101,328], "a": 1 }, + { "px": [160,160], "src": [192,16], "f": 0, "t": 35, "d": [101,330], "a": 1 }, + { "px": [192,160], "src": [96,0], "f": 0, "t": 6, "d": [101,332], "a": 1 }, + { "px": [224,160], "src": [192,16], "f": 0, "t": 35, "d": [101,334], "a": 1 }, + { "px": [256,160], "src": [192,16], "f": 0, "t": 35, "d": [101,336], "a": 1 }, + { "px": [288,160], "src": [96,0], "f": 0, "t": 6, "d": [101,338], "a": 1 }, + { "px": [320,160], "src": [224,96], "f": 0, "t": 152, "d": [101,340], "a": 1 }, + { "px": [416,160], "src": [96,0], "f": 0, "t": 6, "d": [101,346], "a": 1 }, + { "px": [448,160], "src": [224,96], "f": 0, "t": 152, "d": [101,348], "a": 1 }, + { "px": [480,160], "src": [192,16], "f": 0, "t": 35, "d": [101,350], "a": 1 }, + { "px": [16,176], "src": [96,0], "f": 0, "t": 6, "d": [101,353], "a": 1 }, + { "px": [48,176], "src": [192,16], "f": 0, "t": 35, "d": [101,355], "a": 1 }, + { "px": [80,176], "src": [192,16], "f": 0, "t": 35, "d": [101,357], "a": 1 }, + { "px": [112,176], "src": [192,16], "f": 0, "t": 35, "d": [101,359], "a": 1 }, + { "px": [144,176], "src": [224,96], "f": 0, "t": 152, "d": [101,361], "a": 1 }, + { "px": [176,176], "src": [96,0], "f": 0, "t": 6, "d": [101,363], "a": 1 }, + { "px": [208,176], "src": [224,96], "f": 0, "t": 152, "d": [101,365], "a": 1 }, + { "px": [240,176], "src": [96,0], "f": 0, "t": 6, "d": [101,367], "a": 1 }, + { "px": [272,176], "src": [224,96], "f": 0, "t": 152, "d": [101,369], "a": 1 }, + { "px": [304,176], "src": [96,0], "f": 0, "t": 6, "d": [101,371], "a": 1 }, + { "px": [432,176], "src": [96,0], "f": 0, "t": 6, "d": [101,379], "a": 1 }, + { "px": [464,176], "src": [96,0], "f": 0, "t": 6, "d": [101,381], "a": 1 }, + { "px": [32,192], "src": [224,96], "f": 0, "t": 152, "d": [101,386], "a": 1 }, + { "px": [480,192], "src": [192,16], "f": 0, "t": 35, "d": [101,414], "a": 1 }, + { "px": [16,208], "src": [224,96], "f": 0, "t": 152, "d": [101,417], "a": 1 }, + { "px": [464,208], "src": [96,0], "f": 0, "t": 6, "d": [101,445], "a": 1 }, + { "px": [32,224], "src": [224,96], "f": 0, "t": 152, "d": [101,450], "a": 1 }, + { "px": [480,224], "src": [96,0], "f": 0, "t": 6, "d": [101,478], "a": 1 }, + { "px": [16,240], "src": [192,16], "f": 0, "t": 35, "d": [101,481], "a": 1 }, + { "px": [464,240], "src": [96,0], "f": 0, "t": 6, "d": [101,509], "a": 1 }, + { "px": [32,256], "src": [96,0], "f": 0, "t": 6, "d": [101,514], "a": 1 }, + { "px": [480,256], "src": [224,96], "f": 0, "t": 152, "d": [101,542], "a": 1 }, + { "px": [16,272], "src": [224,96], "f": 0, "t": 152, "d": [101,545], "a": 1 }, + { "px": [464,272], "src": [224,96], "f": 0, "t": 152, "d": [101,573], "a": 1 }, + { "px": [32,288], "src": [96,0], "f": 0, "t": 6, "d": [101,578], "a": 1 }, + { "px": [480,288], "src": [192,16], "f": 0, "t": 35, "d": [101,606], "a": 1 }, + { "px": [16,304], "src": [224,96], "f": 0, "t": 152, "d": [101,609], "a": 1 }, + { "px": [464,304], "src": [224,96], "f": 0, "t": 152, "d": [101,637], "a": 1 }, + { "px": [32,320], "src": [224,96], "f": 0, "t": 152, "d": [101,642], "a": 1 }, + { "px": [480,320], "src": [192,16], "f": 0, "t": 35, "d": [101,670], "a": 1 }, + { "px": [16,336], "src": [192,16], "f": 0, "t": 35, "d": [101,673], "a": 1 }, + { "px": [464,336], "src": [96,0], "f": 0, "t": 6, "d": [101,701], "a": 1 }, + { "px": [32,352], "src": [224,96], "f": 0, "t": 152, "d": [101,706], "a": 1 }, + { "px": [480,352], "src": [224,96], "f": 0, "t": 152, "d": [101,734], "a": 1 }, + { "px": [16,368], "src": [224,96], "f": 0, "t": 152, "d": [101,737], "a": 1 }, + { "px": [464,368], "src": [192,16], "f": 0, "t": 35, "d": [101,765], "a": 1 }, + { "px": [32,384], "src": [96,0], "f": 0, "t": 6, "d": [101,770], "a": 1 }, + { "px": [480,384], "src": [192,16], "f": 0, "t": 35, "d": [101,798], "a": 1 }, + { "px": [16,400], "src": [224,96], "f": 0, "t": 152, "d": [101,801], "a": 1 }, + { "px": [464,400], "src": [224,96], "f": 0, "t": 152, "d": [101,829], "a": 1 }, + { "px": [32,416], "src": [96,0], "f": 0, "t": 6, "d": [101,834], "a": 1 }, + { "px": [480,416], "src": [96,0], "f": 0, "t": 6, "d": [101,862], "a": 1 }, + { "px": [16,432], "src": [192,16], "f": 0, "t": 35, "d": [101,865], "a": 1 }, + { "px": [48,432], "src": [192,16], "f": 0, "t": 35, "d": [101,867], "a": 1 }, + { "px": [80,432], "src": [192,16], "f": 0, "t": 35, "d": [101,869], "a": 1 }, + { "px": [464,432], "src": [96,0], "f": 0, "t": 6, "d": [101,893], "a": 1 }, + { "px": [32,448], "src": [192,16], "f": 0, "t": 35, "d": [101,898], "a": 1 }, + { "px": [64,448], "src": [96,0], "f": 0, "t": 6, "d": [101,900], "a": 1 }, + { "px": [96,448], "src": [192,16], "f": 0, "t": 35, "d": [101,902], "a": 1 }, + { "px": [480,448], "src": [192,16], "f": 0, "t": 35, "d": [101,926], "a": 1 }, + { "px": [80,464], "src": [96,0], "f": 0, "t": 6, "d": [101,933], "a": 1 }, + { "px": [112,464], "src": [192,16], "f": 0, "t": 35, "d": [101,935], "a": 1 }, + { "px": [144,464], "src": [224,96], "f": 0, "t": 152, "d": [101,937], "a": 1 }, + { "px": [176,464], "src": [96,0], "f": 0, "t": 6, "d": [101,939], "a": 1 }, + { "px": [208,464], "src": [96,0], "f": 0, "t": 6, "d": [101,941], "a": 1 }, + { "px": [240,464], "src": [192,16], "f": 0, "t": 35, "d": [101,943], "a": 1 }, + { "px": [272,464], "src": [192,16], "f": 0, "t": 35, "d": [101,945], "a": 1 }, + { "px": [304,464], "src": [192,16], "f": 0, "t": 35, "d": [101,947], "a": 1 }, + { "px": [336,464], "src": [96,0], "f": 0, "t": 6, "d": [101,949], "a": 1 }, + { "px": [368,464], "src": [192,16], "f": 0, "t": 35, "d": [101,951], "a": 1 }, + { "px": [400,464], "src": [192,16], "f": 0, "t": 35, "d": [101,953], "a": 1 }, + { "px": [432,464], "src": [96,0], "f": 0, "t": 6, "d": [101,955], "a": 1 }, + { "px": [464,464], "src": [224,96], "f": 0, "t": 152, "d": [101,957], "a": 1 }, + { "px": [96,480], "src": [96,0], "f": 0, "t": 6, "d": [101,966], "a": 1 }, + { "px": [128,480], "src": [96,0], "f": 0, "t": 6, "d": [101,968], "a": 1 }, + { "px": [160,480], "src": [96,0], "f": 0, "t": 6, "d": [101,970], "a": 1 }, + { "px": [192,480], "src": [96,0], "f": 0, "t": 6, "d": [101,972], "a": 1 }, + { "px": [224,480], "src": [224,96], "f": 0, "t": 152, "d": [101,974], "a": 1 }, + { "px": [256,480], "src": [192,16], "f": 0, "t": 35, "d": [101,976], "a": 1 }, + { "px": [288,480], "src": [96,0], "f": 0, "t": 6, "d": [101,978], "a": 1 }, + { "px": [320,480], "src": [224,96], "f": 0, "t": 152, "d": [101,980], "a": 1 }, + { "px": [352,480], "src": [192,16], "f": 0, "t": 35, "d": [101,982], "a": 1 }, + { "px": [384,480], "src": [224,96], "f": 0, "t": 152, "d": [101,984], "a": 1 }, + { "px": [416,480], "src": [96,0], "f": 0, "t": 6, "d": [101,986], "a": 1 }, + { "px": [448,480], "src": [224,96], "f": 0, "t": 152, "d": [101,988], "a": 1 }, + { "px": [480,480], "src": [96,0], "f": 0, "t": 6, "d": [101,990], "a": 1 }, + { "px": [0,0], "src": [32,32], "f": 0, "t": 48, "d": [127,0], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [64,0], "src": [32,32], "f": 0, "t": 48, "d": [127,4], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [96,0], "src": [32,32], "f": 0, "t": 48, "d": [127,6], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [127,8], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [160,0], "src": [32,32], "f": 0, "t": 48, "d": [127,10], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [127,28], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [127,31], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,32], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [127,34], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [127,36], "a": 1 }, + { "px": [80,16], "src": [32,32], "f": 0, "t": 48, "d": [127,37], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [127,38], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [127,40], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [127,42], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,44], "a": 1 }, + { "px": [208,16], "src": [32,32], "f": 0, "t": 48, "d": [127,45], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [240,16], "src": [32,32], "f": 0, "t": 48, "d": [127,47], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [272,16], "src": [32,32], "f": 0, "t": 48, "d": [127,49], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [127,60], "a": 1 }, + { "px": [464,16], "src": [32,32], "f": 0, "t": 48, "d": [127,61], "a": 1 }, + { "px": [480,16], "src": [32,32], "f": 0, "t": 48, "d": [127,62], "a": 1 }, + { "px": [496,16], "src": [32,32], "f": 0, "t": 48, "d": [127,63], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [127,65], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [127,67], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [127,69], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [127,71], "a": 1 }, + { "px": [128,32], "src": [32,32], "f": 0, "t": 48, "d": [127,72], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [127,73], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [127,75], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [127,77], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,79], "a": 1 }, + { "px": [256,32], "src": [32,32], "f": 0, "t": 48, "d": [127,80], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [127,81], "a": 1 }, + { "px": [448,32], "src": [32,32], "f": 0, "t": 48, "d": [127,92], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [127,93], "a": 1 }, + { "px": [480,32], "src": [32,32], "f": 0, "t": 48, "d": [127,94], "a": 1 }, + { "px": [496,32], "src": [32,32], "f": 0, "t": 48, "d": [127,95], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,96], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [127,98], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [127,100], "a": 1 }, + { "px": [80,48], "src": [32,32], "f": 0, "t": 48, "d": [127,101], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [127,102], "a": 1 }, + { "px": [112,48], "src": [32,32], "f": 0, "t": 48, "d": [127,103], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [127,104], "a": 1 }, + { "px": [144,48], "src": [32,32], "f": 0, "t": 48, "d": [127,105], "a": 1 }, + { "px": [160,48], "src": [32,32], "f": 0, "t": 48, "d": [127,106], "a": 1 }, + { "px": [176,48], "src": [32,32], "f": 0, "t": 48, "d": [127,107], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [127,108], "a": 1 }, + { "px": [208,48], "src": [32,32], "f": 0, "t": 48, "d": [127,109], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [127,110], "a": 1 }, + { "px": [240,48], "src": [32,32], "f": 0, "t": 48, "d": [127,111], "a": 1 }, + { "px": [256,48], "src": [32,32], "f": 0, "t": 48, "d": [127,112], "a": 1 }, + { "px": [288,48], "src": [32,32], "f": 0, "t": 48, "d": [127,114], "a": 1 }, + { "px": [448,48], "src": [32,32], "f": 0, "t": 48, "d": [127,124], "a": 1 }, + { "px": [464,48], "src": [32,32], "f": 0, "t": 48, "d": [127,125], "a": 1 }, + { "px": [480,48], "src": [32,32], "f": 0, "t": 48, "d": [127,126], "a": 1 }, + { "px": [496,48], "src": [32,32], "f": 0, "t": 48, "d": [127,127], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [127,129], "a": 1 }, + { "px": [48,64], "src": [32,32], "f": 0, "t": 48, "d": [127,131], "a": 1 }, + { "px": [64,64], "src": [32,32], "f": 0, "t": 48, "d": [127,132], "a": 1 }, + { "px": [80,64], "src": [32,32], "f": 0, "t": 48, "d": [127,133], "a": 1 }, + { "px": [96,64], "src": [32,32], "f": 0, "t": 48, "d": [127,134], "a": 1 }, + { "px": [112,64], "src": [32,32], "f": 0, "t": 48, "d": [127,135], "a": 1 }, + { "px": [128,64], "src": [32,32], "f": 0, "t": 48, "d": [127,136], "a": 1 }, + { "px": [144,64], "src": [32,32], "f": 0, "t": 48, "d": [127,137], "a": 1 }, + { "px": [160,64], "src": [32,32], "f": 0, "t": 48, "d": [127,138], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [127,139], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [127,141], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [127,143], "a": 1 }, + { "px": [256,64], "src": [32,32], "f": 0, "t": 48, "d": [127,144], "a": 1 }, + { "px": [272,64], "src": [32,32], "f": 0, "t": 48, "d": [127,145], "a": 1 }, + { "px": [448,64], "src": [32,32], "f": 0, "t": 48, "d": [127,156], "a": 1 }, + { "px": [464,64], "src": [32,32], "f": 0, "t": 48, "d": [127,157], "a": 1 }, + { "px": [496,64], "src": [32,32], "f": 0, "t": 48, "d": [127,159], "a": 1 }, + { "px": [0,80], "src": [32,32], "f": 0, "t": 48, "d": [127,160], "a": 1 }, + { "px": [16,80], "src": [32,32], "f": 0, "t": 48, "d": [127,161], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [127,162], "a": 1 }, + { "px": [48,80], "src": [32,32], "f": 0, "t": 48, "d": [127,163], "a": 1 }, + { "px": [64,80], "src": [32,32], "f": 0, "t": 48, "d": [127,164], "a": 1 }, + { "px": [96,80], "src": [32,32], "f": 0, "t": 48, "d": [127,166], "a": 1 }, + { "px": [112,80], "src": [32,32], "f": 0, "t": 48, "d": [127,167], "a": 1 }, + { "px": [128,80], "src": [32,32], "f": 0, "t": 48, "d": [127,168], "a": 1 }, + { "px": [144,80], "src": [32,32], "f": 0, "t": 48, "d": [127,169], "a": 1 }, + { "px": [160,80], "src": [32,32], "f": 0, "t": 48, "d": [127,170], "a": 1 }, + { "px": [192,80], "src": [32,32], "f": 0, "t": 48, "d": [127,172], "a": 1 }, + { "px": [208,80], "src": [32,32], "f": 0, "t": 48, "d": [127,173], "a": 1 }, + { "px": [224,80], "src": [32,32], "f": 0, "t": 48, "d": [127,174], "a": 1 }, + { "px": [256,80], "src": [32,32], "f": 0, "t": 48, "d": [127,176], "a": 1 }, + { "px": [272,80], "src": [32,32], "f": 0, "t": 48, "d": [127,177], "a": 1 }, + { "px": [288,80], "src": [32,32], "f": 0, "t": 48, "d": [127,178], "a": 1 }, + { "px": [448,80], "src": [32,32], "f": 0, "t": 48, "d": [127,188], "a": 1 }, + { "px": [464,80], "src": [32,32], "f": 0, "t": 48, "d": [127,189], "a": 1 }, + { "px": [480,80], "src": [32,32], "f": 0, "t": 48, "d": [127,190], "a": 1 }, + { "px": [496,80], "src": [32,32], "f": 0, "t": 48, "d": [127,191], "a": 1 }, + { "px": [0,96], "src": [32,32], "f": 0, "t": 48, "d": [127,192], "a": 1 }, + { "px": [16,96], "src": [32,32], "f": 0, "t": 48, "d": [127,193], "a": 1 }, + { "px": [48,96], "src": [32,32], "f": 0, "t": 48, "d": [127,195], "a": 1 }, + { "px": [64,96], "src": [32,32], "f": 0, "t": 48, "d": [127,196], "a": 1 }, + { "px": [80,96], "src": [32,32], "f": 0, "t": 48, "d": [127,197], "a": 1 }, + { "px": [96,96], "src": [32,32], "f": 0, "t": 48, "d": [127,198], "a": 1 }, + { "px": [112,96], "src": [32,32], "f": 0, "t": 48, "d": [127,199], "a": 1 }, + { "px": [128,96], "src": [32,32], "f": 0, "t": 48, "d": [127,200], "a": 1 }, + { "px": [144,96], "src": [32,32], "f": 0, "t": 48, "d": [127,201], "a": 1 }, + { "px": [160,96], "src": [32,32], "f": 0, "t": 48, "d": [127,202], "a": 1 }, + { "px": [176,96], "src": [32,32], "f": 0, "t": 48, "d": [127,203], "a": 1 }, + { "px": [192,96], "src": [32,32], "f": 0, "t": 48, "d": [127,204], "a": 1 }, + { "px": [208,96], "src": [32,32], "f": 0, "t": 48, "d": [127,205], "a": 1 }, + { "px": [240,96], "src": [32,32], "f": 0, "t": 48, "d": [127,207], "a": 1 }, + { "px": [256,96], "src": [32,32], "f": 0, "t": 48, "d": [127,208], "a": 1 }, + { "px": [272,96], "src": [32,32], "f": 0, "t": 48, "d": [127,209], "a": 1 }, + { "px": [288,96], "src": [32,32], "f": 0, "t": 48, "d": [127,210], "a": 1 }, + { "px": [464,96], "src": [32,32], "f": 0, "t": 48, "d": [127,221], "a": 1 }, + { "px": [480,96], "src": [32,32], "f": 0, "t": 48, "d": [127,222], "a": 1 }, + { "px": [496,96], "src": [32,32], "f": 0, "t": 48, "d": [127,223], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [127,224], "a": 1 }, + { "px": [16,112], "src": [32,32], "f": 0, "t": 48, "d": [127,225], "a": 1 }, + { "px": [32,112], "src": [32,32], "f": 0, "t": 48, "d": [127,226], "a": 1 }, + { "px": [48,112], "src": [32,32], "f": 0, "t": 48, "d": [127,227], "a": 1 }, + { "px": [64,112], "src": [32,32], "f": 0, "t": 48, "d": [127,228], "a": 1 }, + { "px": [80,112], "src": [32,32], "f": 0, "t": 48, "d": [127,229], "a": 1 }, + { "px": [96,112], "src": [32,32], "f": 0, "t": 48, "d": [127,230], "a": 1 }, + { "px": [112,112], "src": [32,32], "f": 0, "t": 48, "d": [127,231], "a": 1 }, + { "px": [128,112], "src": [32,32], "f": 0, "t": 48, "d": [127,232], "a": 1 }, + { "px": [160,112], "src": [32,32], "f": 0, "t": 48, "d": [127,234], "a": 1 }, + { "px": [192,112], "src": [32,32], "f": 0, "t": 48, "d": [127,236], "a": 1 }, + { "px": [224,112], "src": [32,32], "f": 0, "t": 48, "d": [127,238], "a": 1 }, + { "px": [240,112], "src": [32,32], "f": 0, "t": 48, "d": [127,239], "a": 1 }, + { "px": [256,112], "src": [32,32], "f": 0, "t": 48, "d": [127,240], "a": 1 }, + { "px": [272,112], "src": [32,32], "f": 0, "t": 48, "d": [127,241], "a": 1 }, + { "px": [288,112], "src": [32,32], "f": 0, "t": 48, "d": [127,242], "a": 1 }, + { "px": [448,112], "src": [32,32], "f": 0, "t": 48, "d": [127,252], "a": 1 }, + { "px": [480,112], "src": [32,32], "f": 0, "t": 48, "d": [127,254], "a": 1 }, + { "px": [16,128], "src": [32,32], "f": 0, "t": 48, "d": [127,257], "a": 1 }, + { "px": [32,128], "src": [32,32], "f": 0, "t": 48, "d": [127,258], "a": 1 }, + { "px": [48,128], "src": [32,32], "f": 0, "t": 48, "d": [127,259], "a": 1 }, + { "px": [64,128], "src": [32,32], "f": 0, "t": 48, "d": [127,260], "a": 1 }, + { "px": [80,128], "src": [32,32], "f": 0, "t": 48, "d": [127,261], "a": 1 }, + { "px": [96,128], "src": [32,32], "f": 0, "t": 48, "d": [127,262], "a": 1 }, + { "px": [112,128], "src": [32,32], "f": 0, "t": 48, "d": [127,263], "a": 1 }, + { "px": [128,128], "src": [32,32], "f": 0, "t": 48, "d": [127,264], "a": 1 }, + { "px": [144,128], "src": [32,32], "f": 0, "t": 48, "d": [127,265], "a": 1 }, + { "px": [160,128], "src": [32,32], "f": 0, "t": 48, "d": [127,266], "a": 1 }, + { "px": [176,128], "src": [32,32], "f": 0, "t": 48, "d": [127,267], "a": 1 }, + { "px": [208,128], "src": [32,32], "f": 0, "t": 48, "d": [127,269], "a": 1 }, + { "px": [224,128], "src": [32,32], "f": 0, "t": 48, "d": [127,270], "a": 1 }, + { "px": [240,128], "src": [32,32], "f": 0, "t": 48, "d": [127,271], "a": 1 }, + { "px": [256,128], "src": [32,32], "f": 0, "t": 48, "d": [127,272], "a": 1 }, + { "px": [272,128], "src": [32,32], "f": 0, "t": 48, "d": [127,273], "a": 1 }, + { "px": [288,128], "src": [32,32], "f": 0, "t": 48, "d": [127,274], "a": 1 }, + { "px": [448,128], "src": [32,32], "f": 0, "t": 48, "d": [127,284], "a": 1 }, + { "px": [464,128], "src": [32,32], "f": 0, "t": 48, "d": [127,285], "a": 1 }, + { "px": [496,128], "src": [32,32], "f": 0, "t": 48, "d": [127,287], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [127,288], "a": 1 }, + { "px": [32,144], "src": [32,32], "f": 0, "t": 48, "d": [127,290], "a": 1 }, + { "px": [48,144], "src": [32,32], "f": 0, "t": 48, "d": [127,291], "a": 1 }, + { "px": [64,144], "src": [32,32], "f": 0, "t": 48, "d": [127,292], "a": 1 }, + { "px": [80,144], "src": [32,32], "f": 0, "t": 48, "d": [127,293], "a": 1 }, + { "px": [96,144], "src": [32,32], "f": 0, "t": 48, "d": [127,294], "a": 1 }, + { "px": [112,144], "src": [32,32], "f": 0, "t": 48, "d": [127,295], "a": 1 }, + { "px": [128,144], "src": [32,32], "f": 0, "t": 48, "d": [127,296], "a": 1 }, + { "px": [160,144], "src": [32,32], "f": 0, "t": 48, "d": [127,298], "a": 1 }, + { "px": [176,144], "src": [32,32], "f": 0, "t": 48, "d": [127,299], "a": 1 }, + { "px": [192,144], "src": [32,32], "f": 0, "t": 48, "d": [127,300], "a": 1 }, + { "px": [224,144], "src": [32,32], "f": 0, "t": 48, "d": [127,302], "a": 1 }, + { "px": [240,144], "src": [32,32], "f": 0, "t": 48, "d": [127,303], "a": 1 }, + { "px": [256,144], "src": [32,32], "f": 0, "t": 48, "d": [127,304], "a": 1 }, + { "px": [272,144], "src": [32,32], "f": 0, "t": 48, "d": [127,305], "a": 1 }, + { "px": [288,144], "src": [32,32], "f": 0, "t": 48, "d": [127,306], "a": 1 }, + { "px": [448,144], "src": [32,32], "f": 0, "t": 48, "d": [127,316], "a": 1 }, + { "px": [464,144], "src": [32,32], "f": 0, "t": 48, "d": [127,317], "a": 1 }, + { "px": [480,144], "src": [32,32], "f": 0, "t": 48, "d": [127,318], "a": 1 }, + { "px": [496,144], "src": [32,32], "f": 0, "t": 48, "d": [127,319], "a": 1 }, + { "px": [496,160], "src": [32,32], "f": 0, "t": 48, "d": [127,351], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [127,352], "a": 1 }, + { "px": [496,176], "src": [32,32], "f": 0, "t": 48, "d": [127,383], "a": 1 }, + { "px": [0,192], "src": [32,32], "f": 0, "t": 48, "d": [127,384], "a": 1 }, + { "px": [496,192], "src": [32,32], "f": 0, "t": 48, "d": [127,415], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [127,416], "a": 1 }, + { "px": [496,208], "src": [32,32], "f": 0, "t": 48, "d": [127,447], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [127,479], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [127,480], "a": 1 }, + { "px": [496,240], "src": [32,32], "f": 0, "t": 48, "d": [127,511], "a": 1 }, + { "px": [0,256], "src": [32,32], "f": 0, "t": 48, "d": [127,512], "a": 1 }, + { "px": [496,256], "src": [32,32], "f": 0, "t": 48, "d": [127,543], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [127,544], "a": 1 }, + { "px": [0,288], "src": [32,32], "f": 0, "t": 48, "d": [127,576], "a": 1 }, + { "px": [496,288], "src": [32,32], "f": 0, "t": 48, "d": [127,607], "a": 1 }, + { "px": [0,304], "src": [32,32], "f": 0, "t": 48, "d": [127,608], "a": 1 }, + { "px": [496,304], "src": [32,32], "f": 0, "t": 48, "d": [127,639], "a": 1 }, + { "px": [496,320], "src": [32,32], "f": 0, "t": 48, "d": [127,671], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [127,672], "a": 1 }, + { "px": [496,336], "src": [32,32], "f": 0, "t": 48, "d": [127,703], "a": 1 }, + { "px": [496,352], "src": [32,32], "f": 0, "t": 48, "d": [127,735], "a": 1 }, + { "px": [0,368], "src": [32,32], "f": 0, "t": 48, "d": [127,736], "a": 1 }, + { "px": [496,368], "src": [32,32], "f": 0, "t": 48, "d": [127,767], "a": 1 }, + { "px": [496,384], "src": [32,32], "f": 0, "t": 48, "d": [127,799], "a": 1 }, + { "px": [0,400], "src": [32,32], "f": 0, "t": 48, "d": [127,800], "a": 1 }, + { "px": [496,400], "src": [32,32], "f": 0, "t": 48, "d": [127,831], "a": 1 }, + { "px": [0,416], "src": [32,32], "f": 0, "t": 48, "d": [127,832], "a": 1 }, + { "px": [496,416], "src": [32,32], "f": 0, "t": 48, "d": [127,863], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [127,864], "a": 1 }, + { "px": [0,448], "src": [32,32], "f": 0, "t": 48, "d": [127,896], "a": 1 }, + { "px": [496,448], "src": [32,32], "f": 0, "t": 48, "d": [127,927], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [127,928], "a": 1 }, + { "px": [16,464], "src": [32,32], "f": 0, "t": 48, "d": [127,929], "a": 1 }, + { "px": [32,464], "src": [32,32], "f": 0, "t": 48, "d": [127,930], "a": 1 }, + { "px": [48,464], "src": [32,32], "f": 0, "t": 48, "d": [127,931], "a": 1 }, + { "px": [64,464], "src": [32,32], "f": 0, "t": 48, "d": [127,932], "a": 1 }, + { "px": [496,464], "src": [32,32], "f": 0, "t": 48, "d": [127,959], "a": 1 }, + { "px": [0,480], "src": [32,32], "f": 0, "t": 48, "d": [127,960], "a": 1 }, + { "px": [16,480], "src": [32,32], "f": 0, "t": 48, "d": [127,961], "a": 1 }, + { "px": [48,480], "src": [32,32], "f": 0, "t": 48, "d": [127,963], "a": 1 }, + { "px": [64,480], "src": [32,32], "f": 0, "t": 48, "d": [127,964], "a": 1 }, + { "px": [496,480], "src": [32,32], "f": 0, "t": 48, "d": [127,991], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,992], "a": 1 }, + { "px": [32,496], "src": [32,32], "f": 0, "t": 48, "d": [127,994], "a": 1 }, + { "px": [48,496], "src": [32,32], "f": 0, "t": 48, "d": [127,995], "a": 1 }, + { "px": [64,496], "src": [32,32], "f": 0, "t": 48, "d": [127,996], "a": 1 }, + { "px": [80,496], "src": [32,32], "f": 0, "t": 48, "d": [127,997], "a": 1 }, + { "px": [96,496], "src": [32,32], "f": 0, "t": 48, "d": [127,998], "a": 1 }, + { "px": [128,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1000], "a": 1 }, + { "px": [160,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1002], "a": 1 }, + { "px": [192,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1004], "a": 1 }, + { "px": [208,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1005], "a": 1 }, + { "px": [224,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1006], "a": 1 }, + { "px": [240,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1007], "a": 1 }, + { "px": [256,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1008], "a": 1 }, + { "px": [272,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1009], "a": 1 }, + { "px": [288,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1010], "a": 1 }, + { "px": [304,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1011], "a": 1 }, + { "px": [320,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1012], "a": 1 }, + { "px": [352,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1014], "a": 1 }, + { "px": [384,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1016], "a": 1 }, + { "px": [416,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1018], "a": 1 }, + { "px": [432,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1019], "a": 1 }, + { "px": [448,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1020], "a": 1 }, + { "px": [464,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1021], "a": 1 }, + { "px": [480,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1022], "a": 1 }, + { "px": [496,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1023], "a": 1 }, + { "px": [32,0], "src": [64,96], "f": 0, "t": 142, "d": [126,2], "a": 1 }, + { "px": [192,0], "src": [96,96], "f": 0, "t": 144, "d": [126,12], "a": 1 }, + { "px": [256,0], "src": [96,96], "f": 0, "t": 144, "d": [126,16], "a": 1 }, + { "px": [288,0], "src": [64,96], "f": 0, "t": 142, "d": [126,18], "a": 1 }, + { "px": [480,0], "src": [64,96], "f": 0, "t": 142, "d": [126,30], "a": 1 }, + { "px": [16,16], "src": [64,96], "f": 0, "t": 142, "d": [126,33], "a": 1 }, + { "px": [48,16], "src": [64,96], "f": 0, "t": 142, "d": [126,35], "a": 1 }, + { "px": [112,16], "src": [64,96], "f": 0, "t": 142, "d": [126,39], "a": 1 }, + { "px": [144,16], "src": [96,96], "f": 0, "t": 144, "d": [126,41], "a": 1 }, + { "px": [176,16], "src": [96,96], "f": 0, "t": 144, "d": [126,43], "a": 1 }, + { "px": [0,32], "src": [96,96], "f": 0, "t": 144, "d": [126,64], "a": 1 }, + { "px": [32,32], "src": [64,96], "f": 0, "t": 142, "d": [126,66], "a": 1 }, + { "px": [64,32], "src": [64,96], "f": 0, "t": 142, "d": [126,68], "a": 1 }, + { "px": [96,32], "src": [96,96], "f": 0, "t": 144, "d": [126,70], "a": 1 }, + { "px": [160,32], "src": [96,96], "f": 0, "t": 144, "d": [126,74], "a": 1 }, + { "px": [192,32], "src": [64,96], "f": 0, "t": 142, "d": [126,76], "a": 1 }, + { "px": [224,32], "src": [64,96], "f": 0, "t": 142, "d": [126,78], "a": 1 }, + { "px": [288,32], "src": [96,96], "f": 0, "t": 144, "d": [126,82], "a": 1 }, + { "px": [16,48], "src": [64,96], "f": 0, "t": 142, "d": [126,97], "a": 1 }, + { "px": [48,48], "src": [96,96], "f": 0, "t": 144, "d": [126,99], "a": 1 }, + { "px": [272,48], "src": [64,96], "f": 0, "t": 142, "d": [126,113], "a": 1 }, + { "px": [0,64], "src": [96,96], "f": 0, "t": 144, "d": [126,128], "a": 1 }, + { "px": [32,64], "src": [96,96], "f": 0, "t": 144, "d": [126,130], "a": 1 }, + { "px": [192,64], "src": [64,96], "f": 0, "t": 142, "d": [126,140], "a": 1 }, + { "px": [224,64], "src": [96,96], "f": 0, "t": 144, "d": [126,142], "a": 1 }, + { "px": [288,64], "src": [96,96], "f": 0, "t": 144, "d": [126,146], "a": 1 }, + { "px": [480,64], "src": [64,96], "f": 0, "t": 142, "d": [126,158], "a": 1 }, + { "px": [80,80], "src": [96,96], "f": 0, "t": 144, "d": [126,165], "a": 1 }, + { "px": [176,80], "src": [96,96], "f": 0, "t": 144, "d": [126,171], "a": 1 }, + { "px": [240,80], "src": [96,96], "f": 0, "t": 144, "d": [126,175], "a": 1 }, + { "px": [32,96], "src": [96,96], "f": 0, "t": 144, "d": [126,194], "a": 1 }, + { "px": [224,96], "src": [64,96], "f": 0, "t": 142, "d": [126,206], "a": 1 }, + { "px": [448,96], "src": [96,96], "f": 0, "t": 144, "d": [126,220], "a": 1 }, + { "px": [144,112], "src": [96,96], "f": 0, "t": 144, "d": [126,233], "a": 1 }, + { "px": [176,112], "src": [64,96], "f": 0, "t": 142, "d": [126,235], "a": 1 }, + { "px": [208,112], "src": [64,96], "f": 0, "t": 142, "d": [126,237], "a": 1 }, + { "px": [464,112], "src": [96,96], "f": 0, "t": 144, "d": [126,253], "a": 1 }, + { "px": [496,112], "src": [96,96], "f": 0, "t": 144, "d": [126,255], "a": 1 }, + { "px": [0,128], "src": [96,96], "f": 0, "t": 144, "d": [126,256], "a": 1 }, + { "px": [192,128], "src": [64,96], "f": 0, "t": 142, "d": [126,268], "a": 1 }, + { "px": [480,128], "src": [64,96], "f": 0, "t": 142, "d": [126,286], "a": 1 }, + { "px": [16,144], "src": [64,96], "f": 0, "t": 142, "d": [126,289], "a": 1 }, + { "px": [144,144], "src": [96,96], "f": 0, "t": 144, "d": [126,297], "a": 1 }, + { "px": [208,144], "src": [64,96], "f": 0, "t": 142, "d": [126,301], "a": 1 }, + { "px": [0,160], "src": [64,96], "f": 0, "t": 142, "d": [126,320], "a": 1 }, + { "px": [0,224], "src": [64,96], "f": 0, "t": 142, "d": [126,448], "a": 1 }, + { "px": [496,272], "src": [96,96], "f": 0, "t": 144, "d": [126,575], "a": 1 }, + { "px": [0,320], "src": [64,96], "f": 0, "t": 142, "d": [126,640], "a": 1 }, + { "px": [0,352], "src": [64,96], "f": 0, "t": 142, "d": [126,704], "a": 1 }, + { "px": [0,384], "src": [96,96], "f": 0, "t": 144, "d": [126,768], "a": 1 }, + { "px": [496,432], "src": [96,96], "f": 0, "t": 144, "d": [126,895], "a": 1 }, + { "px": [32,480], "src": [64,96], "f": 0, "t": 142, "d": [126,962], "a": 1 }, + { "px": [16,496], "src": [96,96], "f": 0, "t": 144, "d": [126,993], "a": 1 }, + { "px": [112,496], "src": [96,96], "f": 0, "t": 144, "d": [126,999], "a": 1 }, + { "px": [144,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1001], "a": 1 }, + { "px": [176,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1003], "a": 1 }, + { "px": [336,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1013], "a": 1 }, + { "px": [368,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1015], "a": 1 }, + { "px": [400,496], "src": [96,96], "f": 0, "t": 144, "d": [126,1017], "a": 1 }, + { "px": [64,192], "src": [256,160], "f": 0, "t": 246, "d": [12,388], "a": 1 }, + { "px": [80,192], "src": [256,160], "f": 0, "t": 246, "d": [12,389], "a": 1 }, + { "px": [96,192], "src": [256,160], "f": 0, "t": 246, "d": [12,390], "a": 1 }, + { "px": [112,192], "src": [256,160], "f": 0, "t": 246, "d": [12,391], "a": 1 }, + { "px": [144,192], "src": [256,160], "f": 0, "t": 246, "d": [12,393], "a": 1 }, + { "px": [160,192], "src": [256,160], "f": 0, "t": 246, "d": [12,394], "a": 1 }, + { "px": [176,192], "src": [256,160], "f": 0, "t": 246, "d": [12,395], "a": 1 }, + { "px": [192,192], "src": [256,160], "f": 0, "t": 246, "d": [12,396], "a": 1 }, + { "px": [208,192], "src": [256,160], "f": 0, "t": 246, "d": [12,397], "a": 1 }, + { "px": [224,192], "src": [256,160], "f": 0, "t": 246, "d": [12,398], "a": 1 }, + { "px": [272,192], "src": [256,160], "f": 0, "t": 246, "d": [12,401], "a": 1 }, + { "px": [288,192], "src": [256,160], "f": 0, "t": 246, "d": [12,402], "a": 1 }, + { "px": [304,192], "src": [256,160], "f": 0, "t": 246, "d": [12,403], "a": 1 }, + { "px": [416,192], "src": [256,160], "f": 0, "t": 246, "d": [12,410], "a": 1 }, + { "px": [432,192], "src": [256,160], "f": 0, "t": 246, "d": [12,411], "a": 1 }, + { "px": [64,416], "src": [256,96], "f": 0, "t": 154, "d": [9,836], "a": 1 }, + { "px": [80,416], "src": [256,96], "f": 0, "t": 154, "d": [9,837], "a": 1 }, + { "px": [96,416], "src": [256,96], "f": 0, "t": 154, "d": [9,838], "a": 1 }, + { "px": [128,448], "src": [256,96], "f": 0, "t": 154, "d": [9,904], "a": 1 }, + { "px": [144,448], "src": [256,96], "f": 0, "t": 154, "d": [9,905], "a": 1 }, + { "px": [160,448], "src": [256,96], "f": 0, "t": 154, "d": [9,906], "a": 1 }, + { "px": [176,448], "src": [256,96], "f": 0, "t": 154, "d": [9,907], "a": 1 }, + { "px": [192,448], "src": [256,96], "f": 0, "t": 154, "d": [9,908], "a": 1 }, + { "px": [208,448], "src": [256,96], "f": 0, "t": 154, "d": [9,909], "a": 1 }, + { "px": [224,448], "src": [256,96], "f": 0, "t": 154, "d": [9,910], "a": 1 }, + { "px": [240,448], "src": [256,96], "f": 0, "t": 154, "d": [9,911], "a": 1 }, + { "px": [256,448], "src": [256,96], "f": 0, "t": 154, "d": [9,912], "a": 1 }, + { "px": [272,448], "src": [256,96], "f": 0, "t": 154, "d": [9,913], "a": 1 }, + { "px": [288,448], "src": [256,96], "f": 0, "t": 154, "d": [9,914], "a": 1 }, + { "px": [304,448], "src": [256,96], "f": 0, "t": 154, "d": [9,915], "a": 1 }, + { "px": [320,448], "src": [256,96], "f": 0, "t": 154, "d": [9,916], "a": 1 }, + { "px": [336,448], "src": [256,96], "f": 0, "t": 154, "d": [9,917], "a": 1 }, + { "px": [352,448], "src": [256,96], "f": 0, "t": 154, "d": [9,918], "a": 1 }, + { "px": [368,448], "src": [256,96], "f": 0, "t": 154, "d": [9,919], "a": 1 }, + { "px": [384,448], "src": [256,96], "f": 0, "t": 154, "d": [9,920], "a": 1 }, + { "px": [400,448], "src": [256,96], "f": 0, "t": 154, "d": [9,921], "a": 1 }, + { "px": [416,448], "src": [256,96], "f": 0, "t": 154, "d": [9,922], "a": 1 }, + { "px": [432,448], "src": [256,96], "f": 0, "t": 154, "d": [9,923], "a": 1 }, + { "px": [336,0], "src": [224,128], "f": 1, "t": 198, "d": [10,21], "a": 1 }, + { "px": [400,0], "src": [224,128], "f": 0, "t": 198, "d": [10,25], "a": 1 }, + { "px": [336,16], "src": [224,128], "f": 1, "t": 198, "d": [10,53], "a": 1 }, + { "px": [400,16], "src": [224,128], "f": 0, "t": 198, "d": [10,57], "a": 1 }, + { "px": [336,32], "src": [224,128], "f": 1, "t": 198, "d": [10,85], "a": 1 }, + { "px": [400,32], "src": [224,128], "f": 0, "t": 198, "d": [10,89], "a": 1 }, + { "px": [336,48], "src": [224,128], "f": 1, "t": 198, "d": [10,117], "a": 1 }, + { "px": [400,48], "src": [224,128], "f": 0, "t": 198, "d": [10,121], "a": 1 }, + { "px": [336,64], "src": [224,128], "f": 1, "t": 198, "d": [10,149], "a": 1 }, + { "px": [400,64], "src": [224,128], "f": 0, "t": 198, "d": [10,153], "a": 1 }, + { "px": [336,80], "src": [224,128], "f": 1, "t": 198, "d": [10,181], "a": 1 }, + { "px": [400,80], "src": [224,128], "f": 0, "t": 198, "d": [10,185], "a": 1 }, + { "px": [336,96], "src": [224,128], "f": 1, "t": 198, "d": [10,213], "a": 1 }, + { "px": [400,96], "src": [224,128], "f": 0, "t": 198, "d": [10,217], "a": 1 }, + { "px": [336,112], "src": [224,128], "f": 1, "t": 198, "d": [10,245], "a": 1 }, + { "px": [400,112], "src": [224,128], "f": 0, "t": 198, "d": [10,249], "a": 1 }, + { "px": [336,128], "src": [224,128], "f": 1, "t": 198, "d": [10,277], "a": 1 }, + { "px": [400,128], "src": [224,128], "f": 0, "t": 198, "d": [10,281], "a": 1 }, + { "px": [336,144], "src": [224,128], "f": 1, "t": 198, "d": [10,309], "a": 1 }, + { "px": [400,144], "src": [224,128], "f": 0, "t": 198, "d": [10,313], "a": 1 }, + { "px": [336,160], "src": [224,128], "f": 1, "t": 198, "d": [10,341], "a": 1 }, + { "px": [400,160], "src": [224,128], "f": 0, "t": 198, "d": [10,345], "a": 1 }, + { "px": [336,176], "src": [224,128], "f": 1, "t": 198, "d": [10,373], "a": 1 }, + { "px": [400,176], "src": [224,128], "f": 0, "t": 198, "d": [10,377], "a": 1 }, + { "px": [48,208], "src": [224,128], "f": 1, "t": 198, "d": [10,419], "a": 1 }, + { "px": [448,208], "src": [224,128], "f": 0, "t": 198, "d": [10,444], "a": 1 }, + { "px": [48,224], "src": [224,128], "f": 1, "t": 198, "d": [10,451], "a": 1 }, + { "px": [448,224], "src": [224,128], "f": 0, "t": 198, "d": [10,476], "a": 1 }, + { "px": [48,240], "src": [224,128], "f": 1, "t": 198, "d": [10,483], "a": 1 }, + { "px": [448,240], "src": [224,128], "f": 0, "t": 198, "d": [10,508], "a": 1 }, + { "px": [48,256], "src": [224,128], "f": 1, "t": 198, "d": [10,515], "a": 1 }, + { "px": [448,256], "src": [224,128], "f": 0, "t": 198, "d": [10,540], "a": 1 }, + { "px": [48,272], "src": [224,128], "f": 1, "t": 198, "d": [10,547], "a": 1 }, + { "px": [448,272], "src": [224,128], "f": 0, "t": 198, "d": [10,572], "a": 1 }, + { "px": [48,288], "src": [224,128], "f": 1, "t": 198, "d": [10,579], "a": 1 }, + { "px": [448,288], "src": [224,128], "f": 0, "t": 198, "d": [10,604], "a": 1 }, + { "px": [48,304], "src": [224,128], "f": 1, "t": 198, "d": [10,611], "a": 1 }, + { "px": [448,304], "src": [224,128], "f": 0, "t": 198, "d": [10,636], "a": 1 }, + { "px": [48,320], "src": [224,128], "f": 1, "t": 198, "d": [10,643], "a": 1 }, + { "px": [448,320], "src": [224,128], "f": 0, "t": 198, "d": [10,668], "a": 1 }, + { "px": [48,336], "src": [224,128], "f": 1, "t": 198, "d": [10,675], "a": 1 }, + { "px": [448,336], "src": [224,128], "f": 0, "t": 198, "d": [10,700], "a": 1 }, + { "px": [48,352], "src": [224,128], "f": 1, "t": 198, "d": [10,707], "a": 1 }, + { "px": [448,352], "src": [224,128], "f": 0, "t": 198, "d": [10,732], "a": 1 }, + { "px": [48,368], "src": [224,128], "f": 1, "t": 198, "d": [10,739], "a": 1 }, + { "px": [448,368], "src": [224,128], "f": 0, "t": 198, "d": [10,764], "a": 1 }, + { "px": [48,384], "src": [224,128], "f": 1, "t": 198, "d": [10,771], "a": 1 }, + { "px": [448,384], "src": [224,128], "f": 0, "t": 198, "d": [10,796], "a": 1 }, + { "px": [48,400], "src": [224,128], "f": 1, "t": 198, "d": [10,803], "a": 1 }, + { "px": [448,400], "src": [224,128], "f": 0, "t": 198, "d": [10,828], "a": 1 }, + { "px": [448,416], "src": [224,128], "f": 0, "t": 198, "d": [10,860], "a": 1 }, + { "px": [112,432], "src": [224,128], "f": 1, "t": 198, "d": [10,871], "a": 1 }, + { "px": [448,432], "src": [224,128], "f": 0, "t": 198, "d": [10,892], "a": 1 }, + { "px": [336,192], "src": [224,96], "f": 3, "t": 152, "d": [11,405], "a": 1 }, + { "px": [112,416], "src": [224,96], "f": 1, "t": 152, "d": [11,839], "a": 1 }, + { "px": [48,192], "src": [224,96], "f": 0, "t": 152, "d": [14,387], "a": 1 }, + { "px": [448,192], "src": [224,96], "f": 1, "t": 152, "d": [14,412], "a": 1 }, + { "px": [48,416], "src": [224,96], "f": 2, "t": 152, "d": [14,835], "a": 1 }, + { "px": [112,448], "src": [224,96], "f": 2, "t": 152, "d": [14,903], "a": 1 }, + { "px": [448,448], "src": [224,96], "f": 3, "t": 152, "d": [14,924], "a": 1 }, + { "px": [128,192], "src": [192,192], "f": 0, "t": 288, "d": [78,392], "a": 1 }, + { "px": [240,192], "src": [160,192], "f": 0, "t": 286, "d": [78,399], "a": 1 }, + { "px": [256,192], "src": [192,192], "f": 0, "t": 288, "d": [78,400], "a": 1 }, + { "px": [320,192], "src": [192,192], "f": 0, "t": 288, "d": [78,404], "a": 1 }, + { "px": [400,192], "src": [192,192], "f": 0, "t": 288, "d": [78,409], "a": 1 } + ], + "seed": 5053884, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a373f8b0-66b0-11ec-9cd7-0b5b38e80477", + "levelId": 71, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [352,0], "src": [320,272], "f": 0, "t": 411, "d": [108,22], "a": 1 }, + { "px": [368,0], "src": [320,272], "f": 0, "t": 411, "d": [108,23], "a": 1 }, + { "px": [384,0], "src": [320,272], "f": 0, "t": 411, "d": [108,24], "a": 1 }, + { "px": [352,16], "src": [320,272], "f": 0, "t": 411, "d": [108,54], "a": 1 }, + { "px": [368,16], "src": [320,272], "f": 0, "t": 411, "d": [108,55], "a": 1 }, + { "px": [384,16], "src": [320,272], "f": 0, "t": 411, "d": [108,56], "a": 1 }, + { "px": [352,32], "src": [320,272], "f": 0, "t": 411, "d": [108,86], "a": 1 }, + { "px": [368,32], "src": [320,272], "f": 0, "t": 411, "d": [108,87], "a": 1 }, + { "px": [384,32], "src": [320,272], "f": 0, "t": 411, "d": [108,88], "a": 1 }, + { "px": [352,48], "src": [320,272], "f": 0, "t": 411, "d": [108,118], "a": 1 }, + { "px": [368,48], "src": [320,272], "f": 0, "t": 411, "d": [108,119], "a": 1 }, + { "px": [384,48], "src": [320,272], "f": 0, "t": 411, "d": [108,120], "a": 1 }, + { "px": [352,64], "src": [320,272], "f": 0, "t": 411, "d": [108,150], "a": 1 }, + { "px": [368,64], "src": [320,272], "f": 0, "t": 411, "d": [108,151], "a": 1 }, + { "px": [384,64], "src": [320,272], "f": 0, "t": 411, "d": [108,152], "a": 1 }, + { "px": [352,80], "src": [320,272], "f": 0, "t": 411, "d": [108,182], "a": 1 }, + { "px": [368,80], "src": [320,272], "f": 0, "t": 411, "d": [108,183], "a": 1 }, + { "px": [384,80], "src": [320,272], "f": 0, "t": 411, "d": [108,184], "a": 1 }, + { "px": [352,96], "src": [320,272], "f": 0, "t": 411, "d": [108,214], "a": 1 }, + { "px": [368,96], "src": [320,272], "f": 0, "t": 411, "d": [108,215], "a": 1 }, + { "px": [384,96], "src": [320,272], "f": 0, "t": 411, "d": [108,216], "a": 1 }, + { "px": [352,112], "src": [320,272], "f": 0, "t": 411, "d": [108,246], "a": 1 }, + { "px": [368,112], "src": [320,272], "f": 0, "t": 411, "d": [108,247], "a": 1 }, + { "px": [384,112], "src": [320,272], "f": 0, "t": 411, "d": [108,248], "a": 1 }, + { "px": [352,128], "src": [320,272], "f": 0, "t": 411, "d": [108,278], "a": 1 }, + { "px": [368,128], "src": [320,272], "f": 0, "t": 411, "d": [108,279], "a": 1 }, + { "px": [384,128], "src": [320,272], "f": 0, "t": 411, "d": [108,280], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [108,311], "a": 1 }, + { "px": [384,144], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [352,160], "src": [320,272], "f": 0, "t": 411, "d": [108,342], "a": 1 }, + { "px": [368,160], "src": [320,272], "f": 0, "t": 411, "d": [108,343], "a": 1 }, + { "px": [384,160], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [352,176], "src": [320,272], "f": 0, "t": 411, "d": [108,374], "a": 1 }, + { "px": [368,176], "src": [320,272], "f": 0, "t": 411, "d": [108,375], "a": 1 }, + { "px": [384,176], "src": [320,272], "f": 0, "t": 411, "d": [108,376], "a": 1 }, + { "px": [352,192], "src": [320,272], "f": 0, "t": 411, "d": [108,406], "a": 1 }, + { "px": [368,192], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [384,192], "src": [320,272], "f": 0, "t": 411, "d": [108,408], "a": 1 }, + { "px": [64,208], "src": [320,272], "f": 0, "t": 411, "d": [108,420], "a": 1 }, + { "px": [80,208], "src": [320,272], "f": 0, "t": 411, "d": [108,421], "a": 1 }, + { "px": [96,208], "src": [320,272], "f": 0, "t": 411, "d": [108,422], "a": 1 }, + { "px": [112,208], "src": [320,272], "f": 0, "t": 411, "d": [108,423], "a": 1 }, + { "px": [128,208], "src": [320,272], "f": 0, "t": 411, "d": [108,424], "a": 1 }, + { "px": [144,208], "src": [320,272], "f": 0, "t": 411, "d": [108,425], "a": 1 }, + { "px": [160,208], "src": [320,272], "f": 0, "t": 411, "d": [108,426], "a": 1 }, + { "px": [176,208], "src": [320,272], "f": 0, "t": 411, "d": [108,427], "a": 1 }, + { "px": [192,208], "src": [320,272], "f": 0, "t": 411, "d": [108,428], "a": 1 }, + { "px": [208,208], "src": [320,272], "f": 0, "t": 411, "d": [108,429], "a": 1 }, + { "px": [224,208], "src": [320,272], "f": 0, "t": 411, "d": [108,430], "a": 1 }, + { "px": [240,208], "src": [320,272], "f": 0, "t": 411, "d": [108,431], "a": 1 }, + { "px": [256,208], "src": [320,272], "f": 0, "t": 411, "d": [108,432], "a": 1 }, + { "px": [272,208], "src": [320,272], "f": 0, "t": 411, "d": [108,433], "a": 1 }, + { "px": [288,208], "src": [320,272], "f": 0, "t": 411, "d": [108,434], "a": 1 }, + { "px": [304,208], "src": [320,272], "f": 0, "t": 411, "d": [108,435], "a": 1 }, + { "px": [320,208], "src": [320,272], "f": 0, "t": 411, "d": [108,436], "a": 1 }, + { "px": [336,208], "src": [320,272], "f": 0, "t": 411, "d": [108,437], "a": 1 }, + { "px": [352,208], "src": [320,272], "f": 0, "t": 411, "d": [108,438], "a": 1 }, + { "px": [368,208], "src": [320,272], "f": 0, "t": 411, "d": [108,439], "a": 1 }, + { "px": [384,208], "src": [320,272], "f": 0, "t": 411, "d": [108,440], "a": 1 }, + { "px": [400,208], "src": [320,272], "f": 0, "t": 411, "d": [108,441], "a": 1 }, + { "px": [416,208], "src": [320,272], "f": 0, "t": 411, "d": [108,442], "a": 1 }, + { "px": [432,208], "src": [320,272], "f": 0, "t": 411, "d": [108,443], "a": 1 }, + { "px": [64,224], "src": [320,272], "f": 0, "t": 411, "d": [108,452], "a": 1 }, + { "px": [80,224], "src": [320,272], "f": 0, "t": 411, "d": [108,453], "a": 1 }, + { "px": [96,224], "src": [320,272], "f": 0, "t": 411, "d": [108,454], "a": 1 }, + { "px": [112,224], "src": [320,272], "f": 0, "t": 411, "d": [108,455], "a": 1 }, + { "px": [128,224], "src": [320,272], "f": 0, "t": 411, "d": [108,456], "a": 1 }, + { "px": [144,224], "src": [320,272], "f": 0, "t": 411, "d": [108,457], "a": 1 }, + { "px": [160,224], "src": [320,272], "f": 0, "t": 411, "d": [108,458], "a": 1 }, + { "px": [176,224], "src": [320,272], "f": 0, "t": 411, "d": [108,459], "a": 1 }, + { "px": [192,224], "src": [320,272], "f": 0, "t": 411, "d": [108,460], "a": 1 }, + { "px": [208,224], "src": [320,272], "f": 0, "t": 411, "d": [108,461], "a": 1 }, + { "px": [224,224], "src": [320,272], "f": 0, "t": 411, "d": [108,462], "a": 1 }, + { "px": [240,224], "src": [320,272], "f": 0, "t": 411, "d": [108,463], "a": 1 }, + { "px": [256,224], "src": [320,272], "f": 0, "t": 411, "d": [108,464], "a": 1 }, + { "px": [272,224], "src": [320,272], "f": 0, "t": 411, "d": [108,465], "a": 1 }, + { "px": [288,224], "src": [320,272], "f": 0, "t": 411, "d": [108,466], "a": 1 }, + { "px": [304,224], "src": [320,272], "f": 0, "t": 411, "d": [108,467], "a": 1 }, + { "px": [320,224], "src": [320,272], "f": 0, "t": 411, "d": [108,468], "a": 1 }, + { "px": [336,224], "src": [320,272], "f": 0, "t": 411, "d": [108,469], "a": 1 }, + { "px": [352,224], "src": [320,272], "f": 0, "t": 411, "d": [108,470], "a": 1 }, + { "px": [368,224], "src": [320,272], "f": 0, "t": 411, "d": [108,471], "a": 1 }, + { "px": [384,224], "src": [320,272], "f": 0, "t": 411, "d": [108,472], "a": 1 }, + { "px": [400,224], "src": [320,272], "f": 0, "t": 411, "d": [108,473], "a": 1 }, + { "px": [416,224], "src": [320,272], "f": 0, "t": 411, "d": [108,474], "a": 1 }, + { "px": [432,224], "src": [320,272], "f": 0, "t": 411, "d": [108,475], "a": 1 }, + { "px": [64,240], "src": [320,272], "f": 0, "t": 411, "d": [108,484], "a": 1 }, + { "px": [80,240], "src": [320,272], "f": 0, "t": 411, "d": [108,485], "a": 1 }, + { "px": [96,240], "src": [320,272], "f": 0, "t": 411, "d": [108,486], "a": 1 }, + { "px": [112,240], "src": [320,272], "f": 0, "t": 411, "d": [108,487], "a": 1 }, + { "px": [128,240], "src": [320,272], "f": 0, "t": 411, "d": [108,488], "a": 1 }, + { "px": [144,240], "src": [320,272], "f": 0, "t": 411, "d": [108,489], "a": 1 }, + { "px": [160,240], "src": [320,272], "f": 0, "t": 411, "d": [108,490], "a": 1 }, + { "px": [176,240], "src": [320,272], "f": 0, "t": 411, "d": [108,491], "a": 1 }, + { "px": [192,240], "src": [320,272], "f": 0, "t": 411, "d": [108,492], "a": 1 }, + { "px": [208,240], "src": [320,272], "f": 0, "t": 411, "d": [108,493], "a": 1 }, + { "px": [224,240], "src": [320,272], "f": 0, "t": 411, "d": [108,494], "a": 1 }, + { "px": [240,240], "src": [320,272], "f": 0, "t": 411, "d": [108,495], "a": 1 }, + { "px": [256,240], "src": [320,272], "f": 0, "t": 411, "d": [108,496], "a": 1 }, + { "px": [272,240], "src": [320,272], "f": 0, "t": 411, "d": [108,497], "a": 1 }, + { "px": [288,240], "src": [320,272], "f": 0, "t": 411, "d": [108,498], "a": 1 }, + { "px": [304,240], "src": [320,272], "f": 0, "t": 411, "d": [108,499], "a": 1 }, + { "px": [320,240], "src": [320,272], "f": 0, "t": 411, "d": [108,500], "a": 1 }, + { "px": [336,240], "src": [320,272], "f": 0, "t": 411, "d": [108,501], "a": 1 }, + { "px": [352,240], "src": [320,272], "f": 0, "t": 411, "d": [108,502], "a": 1 }, + { "px": [368,240], "src": [320,272], "f": 0, "t": 411, "d": [108,503], "a": 1 }, + { "px": [384,240], "src": [320,272], "f": 0, "t": 411, "d": [108,504], "a": 1 }, + { "px": [400,240], "src": [320,272], "f": 0, "t": 411, "d": [108,505], "a": 1 }, + { "px": [416,240], "src": [320,272], "f": 0, "t": 411, "d": [108,506], "a": 1 }, + { "px": [432,240], "src": [320,272], "f": 0, "t": 411, "d": [108,507], "a": 1 }, + { "px": [64,256], "src": [320,272], "f": 0, "t": 411, "d": [108,516], "a": 1 }, + { "px": [80,256], "src": [320,272], "f": 0, "t": 411, "d": [108,517], "a": 1 }, + { "px": [96,256], "src": [320,272], "f": 0, "t": 411, "d": [108,518], "a": 1 }, + { "px": [112,256], "src": [320,272], "f": 0, "t": 411, "d": [108,519], "a": 1 }, + { "px": [128,256], "src": [320,272], "f": 0, "t": 411, "d": [108,520], "a": 1 }, + { "px": [144,256], "src": [320,272], "f": 0, "t": 411, "d": [108,521], "a": 1 }, + { "px": [160,256], "src": [320,272], "f": 0, "t": 411, "d": [108,522], "a": 1 }, + { "px": [176,256], "src": [320,272], "f": 0, "t": 411, "d": [108,523], "a": 1 }, + { "px": [192,256], "src": [320,272], "f": 0, "t": 411, "d": [108,524], "a": 1 }, + { "px": [208,256], "src": [320,272], "f": 0, "t": 411, "d": [108,525], "a": 1 }, + { "px": [224,256], "src": [320,272], "f": 0, "t": 411, "d": [108,526], "a": 1 }, + { "px": [240,256], "src": [320,272], "f": 0, "t": 411, "d": [108,527], "a": 1 }, + { "px": [256,256], "src": [320,272], "f": 0, "t": 411, "d": [108,528], "a": 1 }, + { "px": [272,256], "src": [320,272], "f": 0, "t": 411, "d": [108,529], "a": 1 }, + { "px": [288,256], "src": [320,272], "f": 0, "t": 411, "d": [108,530], "a": 1 }, + { "px": [304,256], "src": [320,272], "f": 0, "t": 411, "d": [108,531], "a": 1 }, + { "px": [320,256], "src": [320,272], "f": 0, "t": 411, "d": [108,532], "a": 1 }, + { "px": [336,256], "src": [320,272], "f": 0, "t": 411, "d": [108,533], "a": 1 }, + { "px": [352,256], "src": [320,272], "f": 0, "t": 411, "d": [108,534], "a": 1 }, + { "px": [368,256], "src": [320,272], "f": 0, "t": 411, "d": [108,535], "a": 1 }, + { "px": [384,256], "src": [320,272], "f": 0, "t": 411, "d": [108,536], "a": 1 }, + { "px": [400,256], "src": [320,272], "f": 0, "t": 411, "d": [108,537], "a": 1 }, + { "px": [416,256], "src": [320,272], "f": 0, "t": 411, "d": [108,538], "a": 1 }, + { "px": [432,256], "src": [320,272], "f": 0, "t": 411, "d": [108,539], "a": 1 }, + { "px": [64,272], "src": [320,272], "f": 0, "t": 411, "d": [108,548], "a": 1 }, + { "px": [80,272], "src": [320,272], "f": 0, "t": 411, "d": [108,549], "a": 1 }, + { "px": [96,272], "src": [320,272], "f": 0, "t": 411, "d": [108,550], "a": 1 }, + { "px": [112,272], "src": [320,272], "f": 0, "t": 411, "d": [108,551], "a": 1 }, + { "px": [128,272], "src": [320,272], "f": 0, "t": 411, "d": [108,552], "a": 1 }, + { "px": [144,272], "src": [320,272], "f": 0, "t": 411, "d": [108,553], "a": 1 }, + { "px": [160,272], "src": [320,272], "f": 0, "t": 411, "d": [108,554], "a": 1 }, + { "px": [176,272], "src": [320,272], "f": 0, "t": 411, "d": [108,555], "a": 1 }, + { "px": [192,272], "src": [320,272], "f": 0, "t": 411, "d": [108,556], "a": 1 }, + { "px": [208,272], "src": [320,272], "f": 0, "t": 411, "d": [108,557], "a": 1 }, + { "px": [224,272], "src": [320,272], "f": 0, "t": 411, "d": [108,558], "a": 1 }, + { "px": [240,272], "src": [320,272], "f": 0, "t": 411, "d": [108,559], "a": 1 }, + { "px": [256,272], "src": [320,272], "f": 0, "t": 411, "d": [108,560], "a": 1 }, + { "px": [272,272], "src": [320,272], "f": 0, "t": 411, "d": [108,561], "a": 1 }, + { "px": [288,272], "src": [320,272], "f": 0, "t": 411, "d": [108,562], "a": 1 }, + { "px": [304,272], "src": [320,272], "f": 0, "t": 411, "d": [108,563], "a": 1 }, + { "px": [320,272], "src": [320,272], "f": 0, "t": 411, "d": [108,564], "a": 1 }, + { "px": [336,272], "src": [320,272], "f": 0, "t": 411, "d": [108,565], "a": 1 }, + { "px": [352,272], "src": [320,272], "f": 0, "t": 411, "d": [108,566], "a": 1 }, + { "px": [368,272], "src": [320,272], "f": 0, "t": 411, "d": [108,567], "a": 1 }, + { "px": [384,272], "src": [320,272], "f": 0, "t": 411, "d": [108,568], "a": 1 }, + { "px": [400,272], "src": [320,272], "f": 0, "t": 411, "d": [108,569], "a": 1 }, + { "px": [416,272], "src": [320,272], "f": 0, "t": 411, "d": [108,570], "a": 1 }, + { "px": [432,272], "src": [320,272], "f": 0, "t": 411, "d": [108,571], "a": 1 }, + { "px": [64,288], "src": [320,272], "f": 0, "t": 411, "d": [108,580], "a": 1 }, + { "px": [80,288], "src": [320,272], "f": 0, "t": 411, "d": [108,581], "a": 1 }, + { "px": [96,288], "src": [320,272], "f": 0, "t": 411, "d": [108,582], "a": 1 }, + { "px": [112,288], "src": [320,272], "f": 0, "t": 411, "d": [108,583], "a": 1 }, + { "px": [128,288], "src": [320,272], "f": 0, "t": 411, "d": [108,584], "a": 1 }, + { "px": [144,288], "src": [320,272], "f": 0, "t": 411, "d": [108,585], "a": 1 }, + { "px": [160,288], "src": [320,272], "f": 0, "t": 411, "d": [108,586], "a": 1 }, + { "px": [176,288], "src": [320,272], "f": 0, "t": 411, "d": [108,587], "a": 1 }, + { "px": [192,288], "src": [320,272], "f": 0, "t": 411, "d": [108,588], "a": 1 }, + { "px": [208,288], "src": [320,272], "f": 0, "t": 411, "d": [108,589], "a": 1 }, + { "px": [224,288], "src": [320,272], "f": 0, "t": 411, "d": [108,590], "a": 1 }, + { "px": [240,288], "src": [320,272], "f": 0, "t": 411, "d": [108,591], "a": 1 }, + { "px": [256,288], "src": [320,272], "f": 0, "t": 411, "d": [108,592], "a": 1 }, + { "px": [272,288], "src": [320,272], "f": 0, "t": 411, "d": [108,593], "a": 1 }, + { "px": [288,288], "src": [320,272], "f": 0, "t": 411, "d": [108,594], "a": 1 }, + { "px": [304,288], "src": [320,272], "f": 0, "t": 411, "d": [108,595], "a": 1 }, + { "px": [320,288], "src": [320,272], "f": 0, "t": 411, "d": [108,596], "a": 1 }, + { "px": [336,288], "src": [320,272], "f": 0, "t": 411, "d": [108,597], "a": 1 }, + { "px": [352,288], "src": [320,272], "f": 0, "t": 411, "d": [108,598], "a": 1 }, + { "px": [368,288], "src": [320,272], "f": 0, "t": 411, "d": [108,599], "a": 1 }, + { "px": [384,288], "src": [320,272], "f": 0, "t": 411, "d": [108,600], "a": 1 }, + { "px": [400,288], "src": [320,272], "f": 0, "t": 411, "d": [108,601], "a": 1 }, + { "px": [416,288], "src": [320,272], "f": 0, "t": 411, "d": [108,602], "a": 1 }, + { "px": [432,288], "src": [320,272], "f": 0, "t": 411, "d": [108,603], "a": 1 }, + { "px": [64,304], "src": [320,272], "f": 0, "t": 411, "d": [108,612], "a": 1 }, + { "px": [80,304], "src": [320,272], "f": 0, "t": 411, "d": [108,613], "a": 1 }, + { "px": [96,304], "src": [320,272], "f": 0, "t": 411, "d": [108,614], "a": 1 }, + { "px": [112,304], "src": [320,272], "f": 0, "t": 411, "d": [108,615], "a": 1 }, + { "px": [128,304], "src": [320,272], "f": 0, "t": 411, "d": [108,616], "a": 1 }, + { "px": [144,304], "src": [320,272], "f": 0, "t": 411, "d": [108,617], "a": 1 }, + { "px": [160,304], "src": [320,272], "f": 0, "t": 411, "d": [108,618], "a": 1 }, + { "px": [176,304], "src": [320,272], "f": 0, "t": 411, "d": [108,619], "a": 1 }, + { "px": [192,304], "src": [320,272], "f": 0, "t": 411, "d": [108,620], "a": 1 }, + { "px": [208,304], "src": [320,272], "f": 0, "t": 411, "d": [108,621], "a": 1 }, + { "px": [224,304], "src": [320,272], "f": 0, "t": 411, "d": [108,622], "a": 1 }, + { "px": [240,304], "src": [320,272], "f": 0, "t": 411, "d": [108,623], "a": 1 }, + { "px": [256,304], "src": [320,272], "f": 0, "t": 411, "d": [108,624], "a": 1 }, + { "px": [272,304], "src": [320,272], "f": 0, "t": 411, "d": [108,625], "a": 1 }, + { "px": [288,304], "src": [320,272], "f": 0, "t": 411, "d": [108,626], "a": 1 }, + { "px": [304,304], "src": [320,272], "f": 0, "t": 411, "d": [108,627], "a": 1 }, + { "px": [320,304], "src": [320,272], "f": 0, "t": 411, "d": [108,628], "a": 1 }, + { "px": [336,304], "src": [320,272], "f": 0, "t": 411, "d": [108,629], "a": 1 }, + { "px": [352,304], "src": [320,272], "f": 0, "t": 411, "d": [108,630], "a": 1 }, + { "px": [368,304], "src": [320,272], "f": 0, "t": 411, "d": [108,631], "a": 1 }, + { "px": [384,304], "src": [320,272], "f": 0, "t": 411, "d": [108,632], "a": 1 }, + { "px": [400,304], "src": [320,272], "f": 0, "t": 411, "d": [108,633], "a": 1 }, + { "px": [416,304], "src": [320,272], "f": 0, "t": 411, "d": [108,634], "a": 1 }, + { "px": [432,304], "src": [320,272], "f": 0, "t": 411, "d": [108,635], "a": 1 }, + { "px": [64,320], "src": [320,272], "f": 0, "t": 411, "d": [108,644], "a": 1 }, + { "px": [80,320], "src": [320,272], "f": 0, "t": 411, "d": [108,645], "a": 1 }, + { "px": [96,320], "src": [320,272], "f": 0, "t": 411, "d": [108,646], "a": 1 }, + { "px": [112,320], "src": [320,272], "f": 0, "t": 411, "d": [108,647], "a": 1 }, + { "px": [128,320], "src": [320,272], "f": 0, "t": 411, "d": [108,648], "a": 1 }, + { "px": [144,320], "src": [320,272], "f": 0, "t": 411, "d": [108,649], "a": 1 }, + { "px": [160,320], "src": [320,272], "f": 0, "t": 411, "d": [108,650], "a": 1 }, + { "px": [176,320], "src": [320,272], "f": 0, "t": 411, "d": [108,651], "a": 1 }, + { "px": [192,320], "src": [320,272], "f": 0, "t": 411, "d": [108,652], "a": 1 }, + { "px": [208,320], "src": [320,272], "f": 0, "t": 411, "d": [108,653], "a": 1 }, + { "px": [224,320], "src": [320,272], "f": 0, "t": 411, "d": [108,654], "a": 1 }, + { "px": [240,320], "src": [320,272], "f": 0, "t": 411, "d": [108,655], "a": 1 }, + { "px": [256,320], "src": [320,272], "f": 0, "t": 411, "d": [108,656], "a": 1 }, + { "px": [272,320], "src": [320,272], "f": 0, "t": 411, "d": [108,657], "a": 1 }, + { "px": [288,320], "src": [320,272], "f": 0, "t": 411, "d": [108,658], "a": 1 }, + { "px": [304,320], "src": [320,272], "f": 0, "t": 411, "d": [108,659], "a": 1 }, + { "px": [320,320], "src": [320,272], "f": 0, "t": 411, "d": [108,660], "a": 1 }, + { "px": [336,320], "src": [320,272], "f": 0, "t": 411, "d": [108,661], "a": 1 }, + { "px": [352,320], "src": [320,272], "f": 0, "t": 411, "d": [108,662], "a": 1 }, + { "px": [368,320], "src": [320,272], "f": 0, "t": 411, "d": [108,663], "a": 1 }, + { "px": [384,320], "src": [320,272], "f": 0, "t": 411, "d": [108,664], "a": 1 }, + { "px": [400,320], "src": [320,272], "f": 0, "t": 411, "d": [108,665], "a": 1 }, + { "px": [416,320], "src": [320,272], "f": 0, "t": 411, "d": [108,666], "a": 1 }, + { "px": [432,320], "src": [320,272], "f": 0, "t": 411, "d": [108,667], "a": 1 }, + { "px": [64,336], "src": [320,272], "f": 0, "t": 411, "d": [108,676], "a": 1 }, + { "px": [80,336], "src": [320,272], "f": 0, "t": 411, "d": [108,677], "a": 1 }, + { "px": [96,336], "src": [320,272], "f": 0, "t": 411, "d": [108,678], "a": 1 }, + { "px": [112,336], "src": [320,272], "f": 0, "t": 411, "d": [108,679], "a": 1 }, + { "px": [128,336], "src": [320,272], "f": 0, "t": 411, "d": [108,680], "a": 1 }, + { "px": [144,336], "src": [320,272], "f": 0, "t": 411, "d": [108,681], "a": 1 }, + { "px": [160,336], "src": [320,272], "f": 0, "t": 411, "d": [108,682], "a": 1 }, + { "px": [176,336], "src": [320,272], "f": 0, "t": 411, "d": [108,683], "a": 1 }, + { "px": [192,336], "src": [320,272], "f": 0, "t": 411, "d": [108,684], "a": 1 }, + { "px": [208,336], "src": [320,272], "f": 0, "t": 411, "d": [108,685], "a": 1 }, + { "px": [224,336], "src": [320,272], "f": 0, "t": 411, "d": [108,686], "a": 1 }, + { "px": [240,336], "src": [320,272], "f": 0, "t": 411, "d": [108,687], "a": 1 }, + { "px": [256,336], "src": [320,272], "f": 0, "t": 411, "d": [108,688], "a": 1 }, + { "px": [272,336], "src": [320,272], "f": 0, "t": 411, "d": [108,689], "a": 1 }, + { "px": [288,336], "src": [320,272], "f": 0, "t": 411, "d": [108,690], "a": 1 }, + { "px": [304,336], "src": [320,272], "f": 0, "t": 411, "d": [108,691], "a": 1 }, + { "px": [320,336], "src": [320,272], "f": 0, "t": 411, "d": [108,692], "a": 1 }, + { "px": [336,336], "src": [320,272], "f": 0, "t": 411, "d": [108,693], "a": 1 }, + { "px": [352,336], "src": [320,272], "f": 0, "t": 411, "d": [108,694], "a": 1 }, + { "px": [368,336], "src": [320,272], "f": 0, "t": 411, "d": [108,695], "a": 1 }, + { "px": [384,336], "src": [320,272], "f": 0, "t": 411, "d": [108,696], "a": 1 }, + { "px": [400,336], "src": [320,272], "f": 0, "t": 411, "d": [108,697], "a": 1 }, + { "px": [416,336], "src": [320,272], "f": 0, "t": 411, "d": [108,698], "a": 1 }, + { "px": [432,336], "src": [320,272], "f": 0, "t": 411, "d": [108,699], "a": 1 }, + { "px": [64,352], "src": [320,272], "f": 0, "t": 411, "d": [108,708], "a": 1 }, + { "px": [80,352], "src": [320,272], "f": 0, "t": 411, "d": [108,709], "a": 1 }, + { "px": [96,352], "src": [320,272], "f": 0, "t": 411, "d": [108,710], "a": 1 }, + { "px": [112,352], "src": [320,272], "f": 0, "t": 411, "d": [108,711], "a": 1 }, + { "px": [128,352], "src": [320,272], "f": 0, "t": 411, "d": [108,712], "a": 1 }, + { "px": [144,352], "src": [320,272], "f": 0, "t": 411, "d": [108,713], "a": 1 }, + { "px": [160,352], "src": [320,272], "f": 0, "t": 411, "d": [108,714], "a": 1 }, + { "px": [176,352], "src": [320,272], "f": 0, "t": 411, "d": [108,715], "a": 1 }, + { "px": [192,352], "src": [320,272], "f": 0, "t": 411, "d": [108,716], "a": 1 }, + { "px": [208,352], "src": [320,272], "f": 0, "t": 411, "d": [108,717], "a": 1 }, + { "px": [224,352], "src": [320,272], "f": 0, "t": 411, "d": [108,718], "a": 1 }, + { "px": [240,352], "src": [320,272], "f": 0, "t": 411, "d": [108,719], "a": 1 }, + { "px": [256,352], "src": [320,272], "f": 0, "t": 411, "d": [108,720], "a": 1 }, + { "px": [272,352], "src": [320,272], "f": 0, "t": 411, "d": [108,721], "a": 1 }, + { "px": [288,352], "src": [320,272], "f": 0, "t": 411, "d": [108,722], "a": 1 }, + { "px": [304,352], "src": [320,272], "f": 0, "t": 411, "d": [108,723], "a": 1 }, + { "px": [320,352], "src": [320,272], "f": 0, "t": 411, "d": [108,724], "a": 1 }, + { "px": [336,352], "src": [320,272], "f": 0, "t": 411, "d": [108,725], "a": 1 }, + { "px": [352,352], "src": [320,272], "f": 0, "t": 411, "d": [108,726], "a": 1 }, + { "px": [368,352], "src": [320,272], "f": 0, "t": 411, "d": [108,727], "a": 1 }, + { "px": [384,352], "src": [320,272], "f": 0, "t": 411, "d": [108,728], "a": 1 }, + { "px": [400,352], "src": [320,272], "f": 0, "t": 411, "d": [108,729], "a": 1 }, + { "px": [416,352], "src": [320,272], "f": 0, "t": 411, "d": [108,730], "a": 1 }, + { "px": [432,352], "src": [320,272], "f": 0, "t": 411, "d": [108,731], "a": 1 }, + { "px": [64,368], "src": [320,272], "f": 0, "t": 411, "d": [108,740], "a": 1 }, + { "px": [80,368], "src": [320,272], "f": 0, "t": 411, "d": [108,741], "a": 1 }, + { "px": [96,368], "src": [320,272], "f": 0, "t": 411, "d": [108,742], "a": 1 }, + { "px": [112,368], "src": [320,272], "f": 0, "t": 411, "d": [108,743], "a": 1 }, + { "px": [128,368], "src": [320,272], "f": 0, "t": 411, "d": [108,744], "a": 1 }, + { "px": [144,368], "src": [320,272], "f": 0, "t": 411, "d": [108,745], "a": 1 }, + { "px": [160,368], "src": [320,272], "f": 0, "t": 411, "d": [108,746], "a": 1 }, + { "px": [176,368], "src": [320,272], "f": 0, "t": 411, "d": [108,747], "a": 1 }, + { "px": [192,368], "src": [320,272], "f": 0, "t": 411, "d": [108,748], "a": 1 }, + { "px": [208,368], "src": [320,272], "f": 0, "t": 411, "d": [108,749], "a": 1 }, + { "px": [224,368], "src": [320,272], "f": 0, "t": 411, "d": [108,750], "a": 1 }, + { "px": [240,368], "src": [320,272], "f": 0, "t": 411, "d": [108,751], "a": 1 }, + { "px": [256,368], "src": [320,272], "f": 0, "t": 411, "d": [108,752], "a": 1 }, + { "px": [272,368], "src": [320,272], "f": 0, "t": 411, "d": [108,753], "a": 1 }, + { "px": [288,368], "src": [320,272], "f": 0, "t": 411, "d": [108,754], "a": 1 }, + { "px": [304,368], "src": [320,272], "f": 0, "t": 411, "d": [108,755], "a": 1 }, + { "px": [320,368], "src": [320,272], "f": 0, "t": 411, "d": [108,756], "a": 1 }, + { "px": [336,368], "src": [320,272], "f": 0, "t": 411, "d": [108,757], "a": 1 }, + { "px": [352,368], "src": [320,272], "f": 0, "t": 411, "d": [108,758], "a": 1 }, + { "px": [368,368], "src": [320,272], "f": 0, "t": 411, "d": [108,759], "a": 1 }, + { "px": [384,368], "src": [320,272], "f": 0, "t": 411, "d": [108,760], "a": 1 }, + { "px": [400,368], "src": [320,272], "f": 0, "t": 411, "d": [108,761], "a": 1 }, + { "px": [416,368], "src": [320,272], "f": 0, "t": 411, "d": [108,762], "a": 1 }, + { "px": [432,368], "src": [320,272], "f": 0, "t": 411, "d": [108,763], "a": 1 }, + { "px": [64,384], "src": [320,272], "f": 0, "t": 411, "d": [108,772], "a": 1 }, + { "px": [80,384], "src": [320,272], "f": 0, "t": 411, "d": [108,773], "a": 1 }, + { "px": [96,384], "src": [320,272], "f": 0, "t": 411, "d": [108,774], "a": 1 }, + { "px": [112,384], "src": [320,272], "f": 0, "t": 411, "d": [108,775], "a": 1 }, + { "px": [128,384], "src": [320,272], "f": 0, "t": 411, "d": [108,776], "a": 1 }, + { "px": [144,384], "src": [320,272], "f": 0, "t": 411, "d": [108,777], "a": 1 }, + { "px": [160,384], "src": [320,272], "f": 0, "t": 411, "d": [108,778], "a": 1 }, + { "px": [176,384], "src": [320,272], "f": 0, "t": 411, "d": [108,779], "a": 1 }, + { "px": [192,384], "src": [320,272], "f": 0, "t": 411, "d": [108,780], "a": 1 }, + { "px": [208,384], "src": [320,272], "f": 0, "t": 411, "d": [108,781], "a": 1 }, + { "px": [224,384], "src": [320,272], "f": 0, "t": 411, "d": [108,782], "a": 1 }, + { "px": [240,384], "src": [320,272], "f": 0, "t": 411, "d": [108,783], "a": 1 }, + { "px": [256,384], "src": [320,272], "f": 0, "t": 411, "d": [108,784], "a": 1 }, + { "px": [272,384], "src": [320,272], "f": 0, "t": 411, "d": [108,785], "a": 1 }, + { "px": [288,384], "src": [320,272], "f": 0, "t": 411, "d": [108,786], "a": 1 }, + { "px": [304,384], "src": [320,272], "f": 0, "t": 411, "d": [108,787], "a": 1 }, + { "px": [320,384], "src": [320,272], "f": 0, "t": 411, "d": [108,788], "a": 1 }, + { "px": [336,384], "src": [320,272], "f": 0, "t": 411, "d": [108,789], "a": 1 }, + { "px": [352,384], "src": [320,272], "f": 0, "t": 411, "d": [108,790], "a": 1 }, + { "px": [368,384], "src": [320,272], "f": 0, "t": 411, "d": [108,791], "a": 1 }, + { "px": [384,384], "src": [320,272], "f": 0, "t": 411, "d": [108,792], "a": 1 }, + { "px": [400,384], "src": [320,272], "f": 0, "t": 411, "d": [108,793], "a": 1 }, + { "px": [416,384], "src": [320,272], "f": 0, "t": 411, "d": [108,794], "a": 1 }, + { "px": [432,384], "src": [320,272], "f": 0, "t": 411, "d": [108,795], "a": 1 }, + { "px": [64,400], "src": [320,272], "f": 0, "t": 411, "d": [108,804], "a": 1 }, + { "px": [80,400], "src": [320,272], "f": 0, "t": 411, "d": [108,805], "a": 1 }, + { "px": [96,400], "src": [320,272], "f": 0, "t": 411, "d": [108,806], "a": 1 }, + { "px": [112,400], "src": [320,272], "f": 0, "t": 411, "d": [108,807], "a": 1 }, + { "px": [128,400], "src": [320,272], "f": 0, "t": 411, "d": [108,808], "a": 1 }, + { "px": [144,400], "src": [320,272], "f": 0, "t": 411, "d": [108,809], "a": 1 }, + { "px": [160,400], "src": [320,272], "f": 0, "t": 411, "d": [108,810], "a": 1 }, + { "px": [176,400], "src": [320,272], "f": 0, "t": 411, "d": [108,811], "a": 1 }, + { "px": [192,400], "src": [320,272], "f": 0, "t": 411, "d": [108,812], "a": 1 }, + { "px": [208,400], "src": [320,272], "f": 0, "t": 411, "d": [108,813], "a": 1 }, + { "px": [224,400], "src": [320,272], "f": 0, "t": 411, "d": [108,814], "a": 1 }, + { "px": [240,400], "src": [320,272], "f": 0, "t": 411, "d": [108,815], "a": 1 }, + { "px": [256,400], "src": [320,272], "f": 0, "t": 411, "d": [108,816], "a": 1 }, + { "px": [272,400], "src": [320,272], "f": 0, "t": 411, "d": [108,817], "a": 1 }, + { "px": [288,400], "src": [320,272], "f": 0, "t": 411, "d": [108,818], "a": 1 }, + { "px": [304,400], "src": [320,272], "f": 0, "t": 411, "d": [108,819], "a": 1 }, + { "px": [320,400], "src": [320,272], "f": 0, "t": 411, "d": [108,820], "a": 1 }, + { "px": [336,400], "src": [320,272], "f": 0, "t": 411, "d": [108,821], "a": 1 }, + { "px": [352,400], "src": [320,272], "f": 0, "t": 411, "d": [108,822], "a": 1 }, + { "px": [368,400], "src": [320,272], "f": 0, "t": 411, "d": [108,823], "a": 1 }, + { "px": [384,400], "src": [320,272], "f": 0, "t": 411, "d": [108,824], "a": 1 }, + { "px": [400,400], "src": [320,272], "f": 0, "t": 411, "d": [108,825], "a": 1 }, + { "px": [416,400], "src": [320,272], "f": 0, "t": 411, "d": [108,826], "a": 1 }, + { "px": [432,400], "src": [320,272], "f": 0, "t": 411, "d": [108,827], "a": 1 }, + { "px": [128,416], "src": [320,272], "f": 0, "t": 411, "d": [108,840], "a": 1 }, + { "px": [144,416], "src": [320,272], "f": 0, "t": 411, "d": [108,841], "a": 1 }, + { "px": [160,416], "src": [320,272], "f": 0, "t": 411, "d": [108,842], "a": 1 }, + { "px": [176,416], "src": [320,272], "f": 0, "t": 411, "d": [108,843], "a": 1 }, + { "px": [192,416], "src": [320,272], "f": 0, "t": 411, "d": [108,844], "a": 1 }, + { "px": [208,416], "src": [320,272], "f": 0, "t": 411, "d": [108,845], "a": 1 }, + { "px": [224,416], "src": [320,272], "f": 0, "t": 411, "d": [108,846], "a": 1 }, + { "px": [240,416], "src": [320,272], "f": 0, "t": 411, "d": [108,847], "a": 1 }, + { "px": [256,416], "src": [320,272], "f": 0, "t": 411, "d": [108,848], "a": 1 }, + { "px": [272,416], "src": [320,272], "f": 0, "t": 411, "d": [108,849], "a": 1 }, + { "px": [288,416], "src": [320,272], "f": 0, "t": 411, "d": [108,850], "a": 1 }, + { "px": [304,416], "src": [320,272], "f": 0, "t": 411, "d": [108,851], "a": 1 }, + { "px": [320,416], "src": [320,272], "f": 0, "t": 411, "d": [108,852], "a": 1 }, + { "px": [336,416], "src": [320,272], "f": 0, "t": 411, "d": [108,853], "a": 1 }, + { "px": [352,416], "src": [320,272], "f": 0, "t": 411, "d": [108,854], "a": 1 }, + { "px": [368,416], "src": [320,272], "f": 0, "t": 411, "d": [108,855], "a": 1 }, + { "px": [384,416], "src": [320,272], "f": 0, "t": 411, "d": [108,856], "a": 1 }, + { "px": [400,416], "src": [320,272], "f": 0, "t": 411, "d": [108,857], "a": 1 }, + { "px": [416,416], "src": [320,272], "f": 0, "t": 411, "d": [108,858], "a": 1 }, + { "px": [432,416], "src": [320,272], "f": 0, "t": 411, "d": [108,859], "a": 1 }, + { "px": [128,432], "src": [320,272], "f": 0, "t": 411, "d": [108,872], "a": 1 }, + { "px": [144,432], "src": [320,272], "f": 0, "t": 411, "d": [108,873], "a": 1 }, + { "px": [160,432], "src": [320,272], "f": 0, "t": 411, "d": [108,874], "a": 1 }, + { "px": [176,432], "src": [320,272], "f": 0, "t": 411, "d": [108,875], "a": 1 }, + { "px": [192,432], "src": [320,272], "f": 0, "t": 411, "d": [108,876], "a": 1 }, + { "px": [208,432], "src": [320,272], "f": 0, "t": 411, "d": [108,877], "a": 1 }, + { "px": [224,432], "src": [320,272], "f": 0, "t": 411, "d": [108,878], "a": 1 }, + { "px": [240,432], "src": [320,272], "f": 0, "t": 411, "d": [108,879], "a": 1 }, + { "px": [256,432], "src": [320,272], "f": 0, "t": 411, "d": [108,880], "a": 1 }, + { "px": [272,432], "src": [320,272], "f": 0, "t": 411, "d": [108,881], "a": 1 }, + { "px": [288,432], "src": [320,272], "f": 0, "t": 411, "d": [108,882], "a": 1 }, + { "px": [304,432], "src": [320,272], "f": 0, "t": 411, "d": [108,883], "a": 1 }, + { "px": [320,432], "src": [320,272], "f": 0, "t": 411, "d": [108,884], "a": 1 }, + { "px": [336,432], "src": [320,272], "f": 0, "t": 411, "d": [108,885], "a": 1 }, + { "px": [352,432], "src": [320,272], "f": 0, "t": 411, "d": [108,886], "a": 1 }, + { "px": [368,432], "src": [320,272], "f": 0, "t": 411, "d": [108,887], "a": 1 }, + { "px": [384,432], "src": [320,272], "f": 0, "t": 411, "d": [108,888], "a": 1 }, + { "px": [400,432], "src": [320,272], "f": 0, "t": 411, "d": [108,889], "a": 1 }, + { "px": [416,432], "src": [320,272], "f": 0, "t": 411, "d": [108,890], "a": 1 }, + { "px": [432,432], "src": [320,272], "f": 0, "t": 411, "d": [108,891], "a": 1 } + ], + "seed": 8217624, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a36d41f0-66b0-11ec-9cd7-e962574817d4", "dir": "e" }, { "levelIid": "a3707640-66b0-11ec-9cd7-59efc6b24075", "dir": "n" } ] + }, + { + "identifier": "Long_hallway", + "iid": "a374bc00-66b0-11ec-9cd7-65fcab2d5d53", + "uid": 84, + "worldX": 1536, + "worldY": 256, + "worldDepth": 1, + "pxWid": 1792, + "pxHei": 256, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 112, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a374bc05-66b0-11ec-9cd7-315ee5c3e0d3", + "levelId": 84, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 7312809, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Teleport", + "__grid": [7,11], + "__pivot": [0.5,1], + "__tags": ["actor"], + "__tile": { "tilesetUid": 133, "x": 224, "y": 176, "w": 16, "h": 16 }, + "__smartColor": "#EC50FF", + "iid": "d0d166d0-66b0-11ec-b893-fbba01a4c0d1", + "width": 24, + "height": 24, + "defUid": 130, + "px": [120,192], + "fieldInstances": [{ "__identifier": "destination", "__type": "EntityRef", "__value": { + "entityIid": "d4c0c970-66b0-11ec-b893-e744143e4b85", + "layerIid": "a371aec5-66b0-11ec-9cd7-cd4768d1d266", + "levelIid": "a371aec0-66b0-11ec-9cd7-6f9e87cc2465", + "worldIid": "ca3d7420-c640-11ed-ad34-5f1a115c4cf3" + }, "__tile": null, "defUid": 131, "realEditorValues": [{ + "id": "V_String", + "params": ["d4c0c970-66b0-11ec-b893-e744143e4b85"] + }] }] + }, + { + "__identifier": "Ladder", + "__grid": [107,0], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "3baf9450-66b0-11ec-9ccd-095fcfe224e9", + "width": 16, + "height": 96, + "defUid": 134, + "px": [1712,0], + "fieldInstances": [] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 112, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a374bc06-66b0-11ec-9cd7-d9a87a661e3f", + "levelId": 84, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [1696,16], "src": [320,128], "f": 0, "t": 204, "d": [26,218], "a": 1 }, + { "px": [1728,16], "src": [320,128], "f": 1, "t": 204, "d": [26,220], "a": 1 }, + { "px": [1072,32], "src": [320,128], "f": 0, "t": 204, "d": [26,291], "a": 1 }, + { "px": [1392,32], "src": [320,128], "f": 1, "t": 204, "d": [26,311], "a": 1 }, + { "px": [1696,32], "src": [320,128], "f": 0, "t": 204, "d": [26,330], "a": 1 }, + { "px": [1728,32], "src": [320,128], "f": 1, "t": 204, "d": [26,332], "a": 1 }, + { "px": [1072,48], "src": [320,128], "f": 0, "t": 204, "d": [26,403], "a": 1 }, + { "px": [1728,48], "src": [320,128], "f": 1, "t": 204, "d": [26,444], "a": 1 }, + { "px": [656,64], "src": [320,128], "f": 0, "t": 204, "d": [26,489], "a": 1 }, + { "px": [1728,64], "src": [320,128], "f": 1, "t": 204, "d": [26,556], "a": 1 }, + { "px": [656,80], "src": [320,128], "f": 0, "t": 204, "d": [26,601], "a": 1 }, + { "px": [1728,80], "src": [320,128], "f": 1, "t": 204, "d": [26,668], "a": 1 }, + { "px": [656,96], "src": [320,128], "f": 0, "t": 204, "d": [26,713], "a": 1 }, + { "px": [96,112], "src": [320,128], "f": 0, "t": 204, "d": [26,790], "a": 1 }, + { "px": [128,112], "src": [320,128], "f": 1, "t": 204, "d": [26,792], "a": 1 }, + { "px": [656,112], "src": [320,128], "f": 0, "t": 204, "d": [26,825], "a": 1 }, + { "px": [1648,112], "src": [320,128], "f": 1, "t": 204, "d": [26,887], "a": 1 }, + { "px": [80,128], "src": [320,128], "f": 0, "t": 204, "d": [26,901], "a": 1 }, + { "px": [144,128], "src": [320,128], "f": 1, "t": 204, "d": [26,905], "a": 1 }, + { "px": [656,128], "src": [320,128], "f": 0, "t": 204, "d": [26,937], "a": 1 }, + { "px": [1648,128], "src": [320,128], "f": 1, "t": 204, "d": [26,999], "a": 1 }, + { "px": [80,144], "src": [320,128], "f": 0, "t": 204, "d": [26,1013], "a": 1 }, + { "px": [1648,144], "src": [320,128], "f": 1, "t": 204, "d": [26,1111], "a": 1 }, + { "px": [80,160], "src": [320,128], "f": 0, "t": 204, "d": [26,1125], "a": 1 }, + { "px": [672,160], "src": [320,128], "f": 1, "t": 204, "d": [26,1162], "a": 1 }, + { "px": [1072,160], "src": [320,128], "f": 0, "t": 204, "d": [26,1187], "a": 1 }, + { "px": [1648,160], "src": [320,128], "f": 1, "t": 204, "d": [26,1223], "a": 1 }, + { "px": [1072,176], "src": [320,128], "f": 0, "t": 204, "d": [26,1299], "a": 1 }, + { "px": [1072,192], "src": [320,128], "f": 0, "t": 204, "d": [26,1411], "a": 1 }, + { "px": [1648,96], "src": [320,96], "f": 1, "t": 158, "d": [138,775], "a": 1 }, + { "px": [672,144], "src": [320,96], "f": 1, "t": 158, "d": [138,1050], "a": 1 }, + { "px": [1072,144], "src": [320,96], "f": 0, "t": 158, "d": [138,1075], "a": 1 }, + { "px": [96,176], "src": [320,96], "f": 0, "t": 158, "d": [138,1238], "a": 1 }, + { "px": [128,176], "src": [320,96], "f": 1, "t": 158, "d": [138,1240], "a": 1 }, + { "px": [1472,176], "src": [320,96], "f": 1, "t": 158, "d": [138,1324], "a": 1 }, + { "px": [1392,192], "src": [320,96], "f": 1, "t": 158, "d": [138,1431], "a": 1 }, + { "px": [1072,32], "src": [336,112], "f": 0, "t": 182, "d": [27,291], "a": 1 }, + { "px": [1088,32], "src": [336,112], "f": 0, "t": 182, "d": [27,292], "a": 1 }, + { "px": [1104,32], "src": [336,112], "f": 0, "t": 182, "d": [27,293], "a": 1 }, + { "px": [1120,32], "src": [336,112], "f": 0, "t": 182, "d": [27,294], "a": 1 }, + { "px": [1136,32], "src": [336,112], "f": 0, "t": 182, "d": [27,295], "a": 1 }, + { "px": [1152,32], "src": [336,112], "f": 0, "t": 182, "d": [27,296], "a": 1 }, + { "px": [1168,32], "src": [336,112], "f": 0, "t": 182, "d": [27,297], "a": 1 }, + { "px": [1184,32], "src": [336,112], "f": 0, "t": 182, "d": [27,298], "a": 1 }, + { "px": [1200,32], "src": [336,112], "f": 0, "t": 182, "d": [27,299], "a": 1 }, + { "px": [1216,32], "src": [336,112], "f": 0, "t": 182, "d": [27,300], "a": 1 }, + { "px": [1232,32], "src": [336,112], "f": 0, "t": 182, "d": [27,301], "a": 1 }, + { "px": [1248,32], "src": [336,112], "f": 0, "t": 182, "d": [27,302], "a": 1 }, + { "px": [1264,32], "src": [336,112], "f": 0, "t": 182, "d": [27,303], "a": 1 }, + { "px": [1280,32], "src": [336,112], "f": 0, "t": 182, "d": [27,304], "a": 1 }, + { "px": [1296,32], "src": [336,112], "f": 0, "t": 182, "d": [27,305], "a": 1 }, + { "px": [1312,32], "src": [336,112], "f": 0, "t": 182, "d": [27,306], "a": 1 }, + { "px": [1328,32], "src": [336,112], "f": 0, "t": 182, "d": [27,307], "a": 1 }, + { "px": [1344,32], "src": [336,112], "f": 0, "t": 182, "d": [27,308], "a": 1 }, + { "px": [1360,32], "src": [336,112], "f": 0, "t": 182, "d": [27,309], "a": 1 }, + { "px": [1376,32], "src": [336,112], "f": 0, "t": 182, "d": [27,310], "a": 1 }, + { "px": [1392,32], "src": [336,112], "f": 0, "t": 182, "d": [27,311], "a": 1 }, + { "px": [1408,48], "src": [336,112], "f": 0, "t": 182, "d": [27,424], "a": 1 }, + { "px": [1424,48], "src": [336,112], "f": 0, "t": 182, "d": [27,425], "a": 1 }, + { "px": [1440,48], "src": [336,112], "f": 0, "t": 182, "d": [27,426], "a": 1 }, + { "px": [1456,48], "src": [336,112], "f": 0, "t": 182, "d": [27,427], "a": 1 }, + { "px": [1472,48], "src": [336,112], "f": 0, "t": 182, "d": [27,428], "a": 1 }, + { "px": [1488,48], "src": [336,112], "f": 0, "t": 182, "d": [27,429], "a": 1 }, + { "px": [1504,48], "src": [336,112], "f": 0, "t": 182, "d": [27,430], "a": 1 }, + { "px": [1520,48], "src": [336,112], "f": 0, "t": 182, "d": [27,431], "a": 1 }, + { "px": [1536,48], "src": [336,112], "f": 0, "t": 182, "d": [27,432], "a": 1 }, + { "px": [1552,48], "src": [336,112], "f": 0, "t": 182, "d": [27,433], "a": 1 }, + { "px": [1568,48], "src": [336,112], "f": 0, "t": 182, "d": [27,434], "a": 1 }, + { "px": [1584,48], "src": [336,112], "f": 0, "t": 182, "d": [27,435], "a": 1 }, + { "px": [1600,48], "src": [336,112], "f": 0, "t": 182, "d": [27,436], "a": 1 }, + { "px": [1616,48], "src": [336,112], "f": 0, "t": 182, "d": [27,437], "a": 1 }, + { "px": [1632,48], "src": [336,112], "f": 0, "t": 182, "d": [27,438], "a": 1 }, + { "px": [1648,48], "src": [336,112], "f": 0, "t": 182, "d": [27,439], "a": 1 }, + { "px": [1664,48], "src": [336,112], "f": 0, "t": 182, "d": [27,440], "a": 1 }, + { "px": [1680,48], "src": [336,112], "f": 0, "t": 182, "d": [27,441], "a": 1 }, + { "px": [656,64], "src": [336,112], "f": 0, "t": 182, "d": [27,489], "a": 1 }, + { "px": [672,64], "src": [336,112], "f": 0, "t": 182, "d": [27,490], "a": 1 }, + { "px": [688,64], "src": [336,112], "f": 0, "t": 182, "d": [27,491], "a": 1 }, + { "px": [704,64], "src": [336,112], "f": 0, "t": 182, "d": [27,492], "a": 1 }, + { "px": [720,64], "src": [336,112], "f": 0, "t": 182, "d": [27,493], "a": 1 }, + { "px": [736,64], "src": [336,112], "f": 0, "t": 182, "d": [27,494], "a": 1 }, + { "px": [752,64], "src": [336,112], "f": 0, "t": 182, "d": [27,495], "a": 1 }, + { "px": [768,64], "src": [336,112], "f": 0, "t": 182, "d": [27,496], "a": 1 }, + { "px": [784,64], "src": [336,112], "f": 0, "t": 182, "d": [27,497], "a": 1 }, + { "px": [800,64], "src": [336,112], "f": 0, "t": 182, "d": [27,498], "a": 1 }, + { "px": [816,64], "src": [336,112], "f": 0, "t": 182, "d": [27,499], "a": 1 }, + { "px": [832,64], "src": [336,112], "f": 0, "t": 182, "d": [27,500], "a": 1 }, + { "px": [848,64], "src": [336,112], "f": 0, "t": 182, "d": [27,501], "a": 1 }, + { "px": [864,64], "src": [336,112], "f": 0, "t": 182, "d": [27,502], "a": 1 }, + { "px": [880,64], "src": [336,112], "f": 0, "t": 182, "d": [27,503], "a": 1 }, + { "px": [896,64], "src": [336,112], "f": 0, "t": 182, "d": [27,504], "a": 1 }, + { "px": [912,64], "src": [336,112], "f": 0, "t": 182, "d": [27,505], "a": 1 }, + { "px": [928,64], "src": [336,112], "f": 0, "t": 182, "d": [27,506], "a": 1 }, + { "px": [944,64], "src": [336,112], "f": 0, "t": 182, "d": [27,507], "a": 1 }, + { "px": [960,64], "src": [336,112], "f": 0, "t": 182, "d": [27,508], "a": 1 }, + { "px": [976,64], "src": [336,112], "f": 0, "t": 182, "d": [27,509], "a": 1 }, + { "px": [992,64], "src": [336,112], "f": 0, "t": 182, "d": [27,510], "a": 1 }, + { "px": [1008,64], "src": [336,112], "f": 0, "t": 182, "d": [27,511], "a": 1 }, + { "px": [1024,64], "src": [336,112], "f": 0, "t": 182, "d": [27,512], "a": 1 }, + { "px": [1040,64], "src": [336,112], "f": 0, "t": 182, "d": [27,513], "a": 1 }, + { "px": [1056,64], "src": [336,112], "f": 0, "t": 182, "d": [27,514], "a": 1 }, + { "px": [96,112], "src": [336,112], "f": 0, "t": 182, "d": [27,790], "a": 1 }, + { "px": [112,112], "src": [336,112], "f": 0, "t": 182, "d": [27,791], "a": 1 }, + { "px": [128,112], "src": [336,112], "f": 0, "t": 182, "d": [27,792], "a": 1 }, + { "px": [80,128], "src": [336,112], "f": 0, "t": 182, "d": [27,901], "a": 1 }, + { "px": [144,128], "src": [336,112], "f": 0, "t": 182, "d": [27,905], "a": 1 }, + { "px": [160,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1018], "a": 1 }, + { "px": [176,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1019], "a": 1 }, + { "px": [192,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1020], "a": 1 }, + { "px": [208,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1021], "a": 1 }, + { "px": [224,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1022], "a": 1 }, + { "px": [240,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1023], "a": 1 }, + { "px": [256,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1024], "a": 1 }, + { "px": [272,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1025], "a": 1 }, + { "px": [288,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1026], "a": 1 }, + { "px": [304,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1027], "a": 1 }, + { "px": [320,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1028], "a": 1 }, + { "px": [336,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1029], "a": 1 }, + { "px": [352,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1030], "a": 1 }, + { "px": [368,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1031], "a": 1 }, + { "px": [384,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1032], "a": 1 }, + { "px": [400,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1033], "a": 1 }, + { "px": [416,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1034], "a": 1 }, + { "px": [432,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1035], "a": 1 }, + { "px": [448,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1036], "a": 1 }, + { "px": [464,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1037], "a": 1 }, + { "px": [480,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1038], "a": 1 }, + { "px": [496,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1039], "a": 1 }, + { "px": [512,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1040], "a": 1 }, + { "px": [528,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1041], "a": 1 }, + { "px": [544,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1042], "a": 1 }, + { "px": [560,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1043], "a": 1 }, + { "px": [576,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1044], "a": 1 }, + { "px": [592,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1045], "a": 1 }, + { "px": [608,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1046], "a": 1 }, + { "px": [624,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1047], "a": 1 }, + { "px": [640,144], "src": [336,112], "f": 0, "t": 182, "d": [27,1048], "a": 1 }, + { "px": [1392,48], "src": [320,112], "f": 1, "t": 181, "d": [137,423], "a": 1 }, + { "px": [1696,48], "src": [320,112], "f": 0, "t": 181, "d": [137,442], "a": 1 }, + { "px": [1072,64], "src": [320,112], "f": 0, "t": 181, "d": [137,515], "a": 1 }, + { "px": [96,128], "src": [320,112], "f": 0, "t": 181, "d": [137,902], "a": 1 }, + { "px": [128,128], "src": [320,112], "f": 1, "t": 181, "d": [137,904], "a": 1 }, + { "px": [144,144], "src": [320,112], "f": 1, "t": 181, "d": [137,1017], "a": 1 }, + { "px": [656,144], "src": [320,112], "f": 0, "t": 181, "d": [137,1049], "a": 1 } + ], + "seed": 7193726, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 112, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a374bc07-66b0-11ec-9cd7-2bac2861f874", + "levelId": 84, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [1040,0], "src": [32,32], "f": 0, "t": 48, "d": [8,65], "a": 1 }, + { "px": [1136,0], "src": [32,32], "f": 0, "t": 48, "d": [8,71], "a": 1 }, + { "px": [1168,0], "src": [32,32], "f": 0, "t": 48, "d": [8,73], "a": 1 }, + { "px": [1232,0], "src": [32,32], "f": 0, "t": 48, "d": [8,77], "a": 1 }, + { "px": [1264,0], "src": [32,32], "f": 0, "t": 48, "d": [8,79], "a": 1 }, + { "px": [1296,0], "src": [32,32], "f": 0, "t": 48, "d": [8,81], "a": 1 }, + { "px": [1328,0], "src": [32,32], "f": 0, "t": 48, "d": [8,83], "a": 1 }, + { "px": [1392,0], "src": [32,32], "f": 0, "t": 48, "d": [8,87], "a": 1 }, + { "px": [1424,0], "src": [32,32], "f": 0, "t": 48, "d": [8,89], "a": 1 }, + { "px": [1520,0], "src": [32,32], "f": 0, "t": 48, "d": [8,95], "a": 1 }, + { "px": [1552,0], "src": [32,32], "f": 0, "t": 48, "d": [8,97], "a": 1 }, + { "px": [1584,0], "src": [32,32], "f": 0, "t": 48, "d": [8,99], "a": 1 }, + { "px": [1616,0], "src": [32,32], "f": 0, "t": 48, "d": [8,101], "a": 1 }, + { "px": [608,16], "src": [32,32], "f": 0, "t": 48, "d": [8,150], "a": 1 }, + { "px": [640,16], "src": [32,32], "f": 0, "t": 48, "d": [8,152], "a": 1 }, + { "px": [672,16], "src": [32,32], "f": 0, "t": 48, "d": [8,154], "a": 1 }, + { "px": [704,16], "src": [32,32], "f": 0, "t": 48, "d": [8,156], "a": 1 }, + { "px": [736,16], "src": [32,32], "f": 0, "t": 48, "d": [8,158], "a": 1 }, + { "px": [768,16], "src": [32,32], "f": 0, "t": 48, "d": [8,160], "a": 1 }, + { "px": [896,16], "src": [32,32], "f": 0, "t": 48, "d": [8,168], "a": 1 }, + { "px": [928,16], "src": [32,32], "f": 0, "t": 48, "d": [8,170], "a": 1 }, + { "px": [960,16], "src": [32,32], "f": 0, "t": 48, "d": [8,172], "a": 1 }, + { "px": [1024,16], "src": [32,32], "f": 0, "t": 48, "d": [8,176], "a": 1 }, + { "px": [1440,16], "src": [32,32], "f": 0, "t": 48, "d": [8,202], "a": 1 }, + { "px": [1504,16], "src": [32,32], "f": 0, "t": 48, "d": [8,206], "a": 1 }, + { "px": [1536,16], "src": [32,32], "f": 0, "t": 48, "d": [8,208], "a": 1 }, + { "px": [1568,16], "src": [32,32], "f": 0, "t": 48, "d": [8,210], "a": 1 }, + { "px": [1600,16], "src": [32,32], "f": 0, "t": 48, "d": [8,212], "a": 1 }, + { "px": [1632,16], "src": [32,32], "f": 0, "t": 48, "d": [8,214], "a": 1 }, + { "px": [1664,16], "src": [32,32], "f": 0, "t": 48, "d": [8,216], "a": 1 }, + { "px": [656,32], "src": [32,32], "f": 0, "t": 48, "d": [8,265], "a": 1 }, + { "px": [688,32], "src": [32,32], "f": 0, "t": 48, "d": [8,267], "a": 1 }, + { "px": [720,32], "src": [32,32], "f": 0, "t": 48, "d": [8,269], "a": 1 }, + { "px": [752,32], "src": [32,32], "f": 0, "t": 48, "d": [8,271], "a": 1 }, + { "px": [816,32], "src": [32,32], "f": 0, "t": 48, "d": [8,275], "a": 1 }, + { "px": [880,32], "src": [32,32], "f": 0, "t": 48, "d": [8,279], "a": 1 }, + { "px": [912,32], "src": [32,32], "f": 0, "t": 48, "d": [8,281], "a": 1 }, + { "px": [944,32], "src": [32,32], "f": 0, "t": 48, "d": [8,283], "a": 1 }, + { "px": [976,32], "src": [32,32], "f": 0, "t": 48, "d": [8,285], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [8,459], "a": 1 }, + { "px": [624,64], "src": [32,32], "f": 0, "t": 48, "d": [8,487], "a": 1 }, + { "px": [96,80], "src": [32,32], "f": 0, "t": 48, "d": [8,566], "a": 1 }, + { "px": [192,80], "src": [32,32], "f": 0, "t": 48, "d": [8,572], "a": 1 }, + { "px": [608,80], "src": [32,32], "f": 0, "t": 48, "d": [8,598], "a": 1 }, + { "px": [176,96], "src": [32,32], "f": 0, "t": 48, "d": [8,683], "a": 1 }, + { "px": [208,96], "src": [32,32], "f": 0, "t": 48, "d": [8,685], "a": 1 }, + { "px": [240,96], "src": [32,32], "f": 0, "t": 48, "d": [8,687], "a": 1 }, + { "px": [304,96], "src": [32,32], "f": 0, "t": 48, "d": [8,691], "a": 1 }, + { "px": [368,96], "src": [32,32], "f": 0, "t": 48, "d": [8,695], "a": 1 }, + { "px": [464,96], "src": [32,32], "f": 0, "t": 48, "d": [8,701], "a": 1 }, + { "px": [496,96], "src": [32,32], "f": 0, "t": 48, "d": [8,703], "a": 1 }, + { "px": [560,96], "src": [32,32], "f": 0, "t": 48, "d": [8,707], "a": 1 }, + { "px": [592,96], "src": [32,32], "f": 0, "t": 48, "d": [8,709], "a": 1 }, + { "px": [624,96], "src": [32,32], "f": 0, "t": 48, "d": [8,711], "a": 1 }, + { "px": [192,112], "src": [32,32], "f": 0, "t": 48, "d": [8,796], "a": 1 }, + { "px": [224,112], "src": [32,32], "f": 0, "t": 48, "d": [8,798], "a": 1 }, + { "px": [256,112], "src": [32,32], "f": 0, "t": 48, "d": [8,800], "a": 1 }, + { "px": [288,112], "src": [32,32], "f": 0, "t": 48, "d": [8,802], "a": 1 }, + { "px": [320,112], "src": [32,32], "f": 0, "t": 48, "d": [8,804], "a": 1 }, + { "px": [352,112], "src": [32,32], "f": 0, "t": 48, "d": [8,806], "a": 1 }, + { "px": [384,112], "src": [32,32], "f": 0, "t": 48, "d": [8,808], "a": 1 }, + { "px": [448,112], "src": [32,32], "f": 0, "t": 48, "d": [8,812], "a": 1 }, + { "px": [512,112], "src": [32,32], "f": 0, "t": 48, "d": [8,816], "a": 1 }, + { "px": [544,112], "src": [32,32], "f": 0, "t": 48, "d": [8,818], "a": 1 }, + { "px": [576,112], "src": [32,32], "f": 0, "t": 48, "d": [8,820], "a": 1 }, + { "px": [608,112], "src": [32,32], "f": 0, "t": 48, "d": [8,822], "a": 1 }, + { "px": [1728,112], "src": [32,32], "f": 0, "t": 48, "d": [8,892], "a": 1 }, + { "px": [1760,112], "src": [32,32], "f": 0, "t": 48, "d": [8,894], "a": 1 }, + { "px": [48,128], "src": [32,32], "f": 0, "t": 48, "d": [8,899], "a": 1 }, + { "px": [1680,128], "src": [32,32], "f": 0, "t": 48, "d": [8,1001], "a": 1 }, + { "px": [1744,128], "src": [32,32], "f": 0, "t": 48, "d": [8,1005], "a": 1 }, + { "px": [32,144], "src": [32,32], "f": 0, "t": 48, "d": [8,1010], "a": 1 }, + { "px": [1696,144], "src": [32,32], "f": 0, "t": 48, "d": [8,1114], "a": 1 }, + { "px": [48,160], "src": [32,32], "f": 0, "t": 48, "d": [8,1123], "a": 1 }, + { "px": [784,160], "src": [32,32], "f": 0, "t": 48, "d": [8,1169], "a": 1 }, + { "px": [848,160], "src": [32,32], "f": 0, "t": 48, "d": [8,1173], "a": 1 }, + { "px": [912,160], "src": [32,32], "f": 0, "t": 48, "d": [8,1177], "a": 1 }, + { "px": [976,160], "src": [32,32], "f": 0, "t": 48, "d": [8,1181], "a": 1 }, + { "px": [1040,160], "src": [32,32], "f": 0, "t": 48, "d": [8,1185], "a": 1 }, + { "px": [704,176], "src": [32,32], "f": 0, "t": 48, "d": [8,1276], "a": 1 }, + { "px": [768,176], "src": [32,32], "f": 0, "t": 48, "d": [8,1280], "a": 1 }, + { "px": [832,176], "src": [32,32], "f": 0, "t": 48, "d": [8,1284], "a": 1 }, + { "px": [928,176], "src": [32,32], "f": 0, "t": 48, "d": [8,1290], "a": 1 }, + { "px": [992,176], "src": [32,32], "f": 0, "t": 48, "d": [8,1294], "a": 1 }, + { "px": [208,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1357], "a": 1 }, + { "px": [240,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1359], "a": 1 }, + { "px": [272,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1361], "a": 1 }, + { "px": [336,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1365], "a": 1 }, + { "px": [400,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1369], "a": 1 }, + { "px": [432,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1371], "a": 1 }, + { "px": [464,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1373], "a": 1 }, + { "px": [496,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1375], "a": 1 }, + { "px": [592,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1381], "a": 1 }, + { "px": [624,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1383], "a": 1 }, + { "px": [656,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1385], "a": 1 }, + { "px": [688,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1387], "a": 1 }, + { "px": [720,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1389], "a": 1 }, + { "px": [1520,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1439], "a": 1 }, + { "px": [1616,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1445], "a": 1 }, + { "px": [1648,192], "src": [32,32], "f": 0, "t": 48, "d": [8,1447], "a": 1 }, + { "px": [224,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1470], "a": 1 }, + { "px": [256,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1472], "a": 1 }, + { "px": [352,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1478], "a": 1 }, + { "px": [384,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1480], "a": 1 }, + { "px": [416,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1482], "a": 1 }, + { "px": [448,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1484], "a": 1 }, + { "px": [480,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1486], "a": 1 }, + { "px": [512,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1488], "a": 1 }, + { "px": [544,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1490], "a": 1 }, + { "px": [576,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1492], "a": 1 }, + { "px": [672,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1498], "a": 1 }, + { "px": [704,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1500], "a": 1 }, + { "px": [1472,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1548], "a": 1 }, + { "px": [1568,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1554], "a": 1 }, + { "px": [1632,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1558], "a": 1 }, + { "px": [1664,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1560], "a": 1 }, + { "px": [1696,208], "src": [32,32], "f": 0, "t": 48, "d": [8,1562], "a": 1 }, + { "px": [1072,224], "src": [32,32], "f": 0, "t": 48, "d": [8,1635], "a": 1 }, + { "px": [1136,224], "src": [32,32], "f": 0, "t": 48, "d": [8,1639], "a": 1 }, + { "px": [1168,224], "src": [32,32], "f": 0, "t": 48, "d": [8,1641], "a": 1 }, + { "px": [1232,224], "src": [32,32], "f": 0, "t": 48, "d": [8,1645], "a": 1 }, + { "px": [1264,224], "src": [32,32], "f": 0, "t": 48, "d": [8,1647], "a": 1 }, + { "px": [1296,224], "src": [32,32], "f": 0, "t": 48, "d": [8,1649], "a": 1 }, + { "px": [1328,224], "src": [32,32], "f": 0, "t": 48, "d": [8,1651], "a": 1 }, + { "px": [1456,224], "src": [32,32], "f": 0, "t": 48, "d": [8,1659], "a": 1 }, + { "px": [1488,224], "src": [32,32], "f": 0, "t": 48, "d": [8,1661], "a": 1 }, + { "px": [1056,240], "src": [32,32], "f": 0, "t": 48, "d": [8,1746], "a": 1 }, + { "px": [1152,240], "src": [32,32], "f": 0, "t": 48, "d": [8,1752], "a": 1 }, + { "px": [1216,240], "src": [32,32], "f": 0, "t": 48, "d": [8,1756], "a": 1 }, + { "px": [1280,240], "src": [32,32], "f": 0, "t": 48, "d": [8,1760], "a": 1 }, + { "px": [1312,240], "src": [32,32], "f": 0, "t": 48, "d": [8,1762], "a": 1 }, + { "px": [1344,240], "src": [32,32], "f": 0, "t": 48, "d": [8,1764], "a": 1 }, + { "px": [1376,240], "src": [32,32], "f": 0, "t": 48, "d": [8,1766], "a": 1 }, + { "px": [1440,240], "src": [32,32], "f": 0, "t": 48, "d": [8,1770], "a": 1 }, + { "px": [1072,0], "src": [64,96], "f": 0, "t": 142, "d": [83,67], "a": 1 }, + { "px": [1104,0], "src": [96,96], "f": 0, "t": 144, "d": [83,69], "a": 1 }, + { "px": [1200,0], "src": [64,96], "f": 0, "t": 142, "d": [83,75], "a": 1 }, + { "px": [1360,0], "src": [64,96], "f": 0, "t": 142, "d": [83,85], "a": 1 }, + { "px": [1456,0], "src": [64,96], "f": 0, "t": 142, "d": [83,91], "a": 1 }, + { "px": [1488,0], "src": [64,96], "f": 0, "t": 142, "d": [83,93], "a": 1 }, + { "px": [1648,0], "src": [64,96], "f": 0, "t": 142, "d": [83,103], "a": 1 }, + { "px": [1776,0], "src": [96,96], "f": 0, "t": 144, "d": [83,111], "a": 1 }, + { "px": [800,16], "src": [96,96], "f": 0, "t": 144, "d": [83,162], "a": 1 }, + { "px": [832,16], "src": [96,96], "f": 0, "t": 144, "d": [83,164], "a": 1 }, + { "px": [864,16], "src": [64,96], "f": 0, "t": 142, "d": [83,166], "a": 1 }, + { "px": [992,16], "src": [64,96], "f": 0, "t": 142, "d": [83,174], "a": 1 }, + { "px": [1472,16], "src": [64,96], "f": 0, "t": 142, "d": [83,204], "a": 1 }, + { "px": [1760,16], "src": [96,96], "f": 0, "t": 144, "d": [83,222], "a": 1 }, + { "px": [624,32], "src": [96,96], "f": 0, "t": 144, "d": [83,263], "a": 1 }, + { "px": [784,32], "src": [96,96], "f": 0, "t": 144, "d": [83,273], "a": 1 }, + { "px": [848,32], "src": [96,96], "f": 0, "t": 144, "d": [83,277], "a": 1 }, + { "px": [1008,32], "src": [96,96], "f": 0, "t": 144, "d": [83,287], "a": 1 }, + { "px": [1040,32], "src": [64,96], "f": 0, "t": 142, "d": [83,289], "a": 1 }, + { "px": [1776,32], "src": [64,96], "f": 0, "t": 142, "d": [83,335], "a": 1 }, + { "px": [608,48], "src": [64,96], "f": 0, "t": 142, "d": [83,374], "a": 1 }, + { "px": [1760,48], "src": [96,96], "f": 0, "t": 144, "d": [83,446], "a": 1 }, + { "px": [48,64], "src": [96,96], "f": 0, "t": 144, "d": [83,451], "a": 1 }, + { "px": [80,64], "src": [64,96], "f": 0, "t": 142, "d": [83,453], "a": 1 }, + { "px": [112,64], "src": [64,96], "f": 0, "t": 142, "d": [83,455], "a": 1 }, + { "px": [144,64], "src": [64,96], "f": 0, "t": 142, "d": [83,457], "a": 1 }, + { "px": [1776,64], "src": [96,96], "f": 0, "t": 144, "d": [83,559], "a": 1 }, + { "px": [32,80], "src": [96,96], "f": 0, "t": 144, "d": [83,562], "a": 1 }, + { "px": [64,80], "src": [96,96], "f": 0, "t": 144, "d": [83,564], "a": 1 }, + { "px": [128,80], "src": [64,96], "f": 0, "t": 142, "d": [83,568], "a": 1 }, + { "px": [160,80], "src": [64,96], "f": 0, "t": 142, "d": [83,570], "a": 1 }, + { "px": [1760,80], "src": [64,96], "f": 0, "t": 142, "d": [83,670], "a": 1 }, + { "px": [48,96], "src": [64,96], "f": 0, "t": 142, "d": [83,675], "a": 1 }, + { "px": [272,96], "src": [96,96], "f": 0, "t": 144, "d": [83,689], "a": 1 }, + { "px": [336,96], "src": [64,96], "f": 0, "t": 142, "d": [83,693], "a": 1 }, + { "px": [400,96], "src": [64,96], "f": 0, "t": 142, "d": [83,697], "a": 1 }, + { "px": [432,96], "src": [64,96], "f": 0, "t": 142, "d": [83,699], "a": 1 }, + { "px": [528,96], "src": [64,96], "f": 0, "t": 142, "d": [83,705], "a": 1 }, + { "px": [1776,96], "src": [96,96], "f": 0, "t": 144, "d": [83,783], "a": 1 }, + { "px": [32,112], "src": [64,96], "f": 0, "t": 142, "d": [83,786], "a": 1 }, + { "px": [416,112], "src": [64,96], "f": 0, "t": 142, "d": [83,810], "a": 1 }, + { "px": [480,112], "src": [64,96], "f": 0, "t": 142, "d": [83,814], "a": 1 }, + { "px": [1696,112], "src": [64,96], "f": 0, "t": 142, "d": [83,890], "a": 1 }, + { "px": [1712,128], "src": [64,96], "f": 0, "t": 142, "d": [83,1003], "a": 1 }, + { "px": [1776,128], "src": [64,96], "f": 0, "t": 142, "d": [83,1007], "a": 1 }, + { "px": [720,160], "src": [96,96], "f": 0, "t": 144, "d": [83,1165], "a": 1 }, + { "px": [752,160], "src": [64,96], "f": 0, "t": 142, "d": [83,1167], "a": 1 }, + { "px": [816,160], "src": [96,96], "f": 0, "t": 144, "d": [83,1171], "a": 1 }, + { "px": [880,160], "src": [64,96], "f": 0, "t": 142, "d": [83,1175], "a": 1 }, + { "px": [944,160], "src": [64,96], "f": 0, "t": 142, "d": [83,1179], "a": 1 }, + { "px": [1008,160], "src": [96,96], "f": 0, "t": 144, "d": [83,1183], "a": 1 }, + { "px": [1680,160], "src": [96,96], "f": 0, "t": 144, "d": [83,1225], "a": 1 }, + { "px": [32,176], "src": [64,96], "f": 0, "t": 142, "d": [83,1234], "a": 1 }, + { "px": [736,176], "src": [64,96], "f": 0, "t": 142, "d": [83,1278], "a": 1 }, + { "px": [800,176], "src": [96,96], "f": 0, "t": 144, "d": [83,1282], "a": 1 }, + { "px": [864,176], "src": [96,96], "f": 0, "t": 144, "d": [83,1286], "a": 1 }, + { "px": [896,176], "src": [64,96], "f": 0, "t": 142, "d": [83,1288], "a": 1 }, + { "px": [960,176], "src": [96,96], "f": 0, "t": 144, "d": [83,1292], "a": 1 }, + { "px": [1024,176], "src": [96,96], "f": 0, "t": 144, "d": [83,1296], "a": 1 }, + { "px": [1696,176], "src": [96,96], "f": 0, "t": 144, "d": [83,1338], "a": 1 }, + { "px": [48,192], "src": [96,96], "f": 0, "t": 144, "d": [83,1347], "a": 1 }, + { "px": [176,192], "src": [96,96], "f": 0, "t": 144, "d": [83,1355], "a": 1 }, + { "px": [304,192], "src": [64,96], "f": 0, "t": 142, "d": [83,1363], "a": 1 }, + { "px": [368,192], "src": [96,96], "f": 0, "t": 144, "d": [83,1367], "a": 1 }, + { "px": [528,192], "src": [96,96], "f": 0, "t": 144, "d": [83,1377], "a": 1 }, + { "px": [560,192], "src": [96,96], "f": 0, "t": 144, "d": [83,1379], "a": 1 }, + { "px": [1040,192], "src": [64,96], "f": 0, "t": 142, "d": [83,1409], "a": 1 }, + { "px": [1552,192], "src": [96,96], "f": 0, "t": 144, "d": [83,1441], "a": 1 }, + { "px": [1584,192], "src": [96,96], "f": 0, "t": 144, "d": [83,1443], "a": 1 }, + { "px": [1680,192], "src": [96,96], "f": 0, "t": 144, "d": [83,1449], "a": 1 }, + { "px": [32,208], "src": [64,96], "f": 0, "t": 142, "d": [83,1458], "a": 1 }, + { "px": [64,208], "src": [96,96], "f": 0, "t": 144, "d": [83,1460], "a": 1 }, + { "px": [96,208], "src": [64,96], "f": 0, "t": 142, "d": [83,1462], "a": 1 }, + { "px": [128,208], "src": [64,96], "f": 0, "t": 142, "d": [83,1464], "a": 1 }, + { "px": [160,208], "src": [64,96], "f": 0, "t": 142, "d": [83,1466], "a": 1 }, + { "px": [192,208], "src": [64,96], "f": 0, "t": 142, "d": [83,1468], "a": 1 }, + { "px": [288,208], "src": [64,96], "f": 0, "t": 142, "d": [83,1474], "a": 1 }, + { "px": [320,208], "src": [96,96], "f": 0, "t": 144, "d": [83,1476], "a": 1 }, + { "px": [608,208], "src": [64,96], "f": 0, "t": 142, "d": [83,1494], "a": 1 }, + { "px": [640,208], "src": [96,96], "f": 0, "t": 144, "d": [83,1496], "a": 1 }, + { "px": [1024,208], "src": [96,96], "f": 0, "t": 144, "d": [83,1520], "a": 1 }, + { "px": [1440,208], "src": [96,96], "f": 0, "t": 144, "d": [83,1546], "a": 1 }, + { "px": [1504,208], "src": [64,96], "f": 0, "t": 142, "d": [83,1550], "a": 1 }, + { "px": [1536,208], "src": [64,96], "f": 0, "t": 142, "d": [83,1552], "a": 1 }, + { "px": [1600,208], "src": [64,96], "f": 0, "t": 142, "d": [83,1556], "a": 1 }, + { "px": [48,224], "src": [96,96], "f": 0, "t": 144, "d": [83,1571], "a": 1 }, + { "px": [80,224], "src": [96,96], "f": 0, "t": 144, "d": [83,1573], "a": 1 }, + { "px": [112,224], "src": [64,96], "f": 0, "t": 142, "d": [83,1575], "a": 1 }, + { "px": [144,224], "src": [64,96], "f": 0, "t": 142, "d": [83,1577], "a": 1 }, + { "px": [176,224], "src": [64,96], "f": 0, "t": 142, "d": [83,1579], "a": 1 }, + { "px": [1040,224], "src": [64,96], "f": 0, "t": 142, "d": [83,1633], "a": 1 }, + { "px": [1104,224], "src": [96,96], "f": 0, "t": 144, "d": [83,1637], "a": 1 }, + { "px": [1200,224], "src": [96,96], "f": 0, "t": 144, "d": [83,1643], "a": 1 }, + { "px": [1360,224], "src": [96,96], "f": 0, "t": 144, "d": [83,1653], "a": 1 }, + { "px": [1392,224], "src": [96,96], "f": 0, "t": 144, "d": [83,1655], "a": 1 }, + { "px": [1424,224], "src": [64,96], "f": 0, "t": 142, "d": [83,1657], "a": 1 }, + { "px": [1520,224], "src": [96,96], "f": 0, "t": 144, "d": [83,1663], "a": 1 }, + { "px": [1024,240], "src": [96,96], "f": 0, "t": 144, "d": [83,1744], "a": 1 }, + { "px": [1088,240], "src": [96,96], "f": 0, "t": 144, "d": [83,1748], "a": 1 }, + { "px": [1120,240], "src": [96,96], "f": 0, "t": 144, "d": [83,1750], "a": 1 }, + { "px": [1184,240], "src": [96,96], "f": 0, "t": 144, "d": [83,1754], "a": 1 }, + { "px": [1248,240], "src": [96,96], "f": 0, "t": 144, "d": [83,1758], "a": 1 }, + { "px": [1408,240], "src": [96,96], "f": 0, "t": 144, "d": [83,1768], "a": 1 }, + { "px": [1024,0], "src": [224,96], "f": 0, "t": 152, "d": [101,64], "a": 1 }, + { "px": [1056,0], "src": [192,16], "f": 0, "t": 35, "d": [101,66], "a": 1 }, + { "px": [1088,0], "src": [224,96], "f": 0, "t": 152, "d": [101,68], "a": 1 }, + { "px": [1120,0], "src": [192,16], "f": 0, "t": 35, "d": [101,70], "a": 1 }, + { "px": [1152,0], "src": [96,0], "f": 0, "t": 6, "d": [101,72], "a": 1 }, + { "px": [1184,0], "src": [96,0], "f": 0, "t": 6, "d": [101,74], "a": 1 }, + { "px": [1216,0], "src": [96,0], "f": 0, "t": 6, "d": [101,76], "a": 1 }, + { "px": [1248,0], "src": [96,0], "f": 0, "t": 6, "d": [101,78], "a": 1 }, + { "px": [1280,0], "src": [192,16], "f": 0, "t": 35, "d": [101,80], "a": 1 }, + { "px": [1312,0], "src": [224,96], "f": 0, "t": 152, "d": [101,82], "a": 1 }, + { "px": [1344,0], "src": [96,0], "f": 0, "t": 6, "d": [101,84], "a": 1 }, + { "px": [1376,0], "src": [96,0], "f": 0, "t": 6, "d": [101,86], "a": 1 }, + { "px": [1408,0], "src": [96,0], "f": 0, "t": 6, "d": [101,88], "a": 1 }, + { "px": [1440,0], "src": [192,16], "f": 0, "t": 35, "d": [101,90], "a": 1 }, + { "px": [1472,0], "src": [224,96], "f": 0, "t": 152, "d": [101,92], "a": 1 }, + { "px": [1504,0], "src": [192,16], "f": 0, "t": 35, "d": [101,94], "a": 1 }, + { "px": [1536,0], "src": [96,0], "f": 0, "t": 6, "d": [101,96], "a": 1 }, + { "px": [1568,0], "src": [96,0], "f": 0, "t": 6, "d": [101,98], "a": 1 }, + { "px": [1600,0], "src": [224,96], "f": 0, "t": 152, "d": [101,100], "a": 1 }, + { "px": [1632,0], "src": [224,96], "f": 0, "t": 152, "d": [101,102], "a": 1 }, + { "px": [1664,0], "src": [224,96], "f": 0, "t": 152, "d": [101,104], "a": 1 }, + { "px": [1760,0], "src": [224,96], "f": 0, "t": 152, "d": [101,110], "a": 1 }, + { "px": [624,16], "src": [96,0], "f": 0, "t": 6, "d": [101,151], "a": 1 }, + { "px": [656,16], "src": [96,0], "f": 0, "t": 6, "d": [101,153], "a": 1 }, + { "px": [688,16], "src": [224,96], "f": 0, "t": 152, "d": [101,155], "a": 1 }, + { "px": [720,16], "src": [192,16], "f": 0, "t": 35, "d": [101,157], "a": 1 }, + { "px": [752,16], "src": [224,96], "f": 0, "t": 152, "d": [101,159], "a": 1 }, + { "px": [784,16], "src": [224,96], "f": 0, "t": 152, "d": [101,161], "a": 1 }, + { "px": [816,16], "src": [192,16], "f": 0, "t": 35, "d": [101,163], "a": 1 }, + { "px": [848,16], "src": [224,96], "f": 0, "t": 152, "d": [101,165], "a": 1 }, + { "px": [880,16], "src": [224,96], "f": 0, "t": 152, "d": [101,167], "a": 1 }, + { "px": [912,16], "src": [224,96], "f": 0, "t": 152, "d": [101,169], "a": 1 }, + { "px": [944,16], "src": [192,16], "f": 0, "t": 35, "d": [101,171], "a": 1 }, + { "px": [976,16], "src": [96,0], "f": 0, "t": 6, "d": [101,173], "a": 1 }, + { "px": [1008,16], "src": [224,96], "f": 0, "t": 152, "d": [101,175], "a": 1 }, + { "px": [1040,16], "src": [224,96], "f": 0, "t": 152, "d": [101,177], "a": 1 }, + { "px": [1424,16], "src": [224,96], "f": 0, "t": 152, "d": [101,201], "a": 1 }, + { "px": [1456,16], "src": [96,0], "f": 0, "t": 6, "d": [101,203], "a": 1 }, + { "px": [1488,16], "src": [224,96], "f": 0, "t": 152, "d": [101,205], "a": 1 }, + { "px": [1520,16], "src": [96,0], "f": 0, "t": 6, "d": [101,207], "a": 1 }, + { "px": [1552,16], "src": [192,16], "f": 0, "t": 35, "d": [101,209], "a": 1 }, + { "px": [1584,16], "src": [192,16], "f": 0, "t": 35, "d": [101,211], "a": 1 }, + { "px": [1616,16], "src": [224,96], "f": 0, "t": 152, "d": [101,213], "a": 1 }, + { "px": [1648,16], "src": [96,0], "f": 0, "t": 6, "d": [101,215], "a": 1 }, + { "px": [1776,16], "src": [96,0], "f": 0, "t": 6, "d": [101,223], "a": 1 }, + { "px": [608,32], "src": [224,96], "f": 0, "t": 152, "d": [101,262], "a": 1 }, + { "px": [640,32], "src": [96,0], "f": 0, "t": 6, "d": [101,264], "a": 1 }, + { "px": [672,32], "src": [224,96], "f": 0, "t": 152, "d": [101,266], "a": 1 }, + { "px": [704,32], "src": [192,16], "f": 0, "t": 35, "d": [101,268], "a": 1 }, + { "px": [736,32], "src": [96,0], "f": 0, "t": 6, "d": [101,270], "a": 1 }, + { "px": [768,32], "src": [96,0], "f": 0, "t": 6, "d": [101,272], "a": 1 }, + { "px": [800,32], "src": [96,0], "f": 0, "t": 6, "d": [101,274], "a": 1 }, + { "px": [832,32], "src": [224,96], "f": 0, "t": 152, "d": [101,276], "a": 1 }, + { "px": [864,32], "src": [96,0], "f": 0, "t": 6, "d": [101,278], "a": 1 }, + { "px": [896,32], "src": [192,16], "f": 0, "t": 35, "d": [101,280], "a": 1 }, + { "px": [928,32], "src": [192,16], "f": 0, "t": 35, "d": [101,282], "a": 1 }, + { "px": [960,32], "src": [192,16], "f": 0, "t": 35, "d": [101,284], "a": 1 }, + { "px": [992,32], "src": [96,0], "f": 0, "t": 6, "d": [101,286], "a": 1 }, + { "px": [1024,32], "src": [224,96], "f": 0, "t": 152, "d": [101,288], "a": 1 }, + { "px": [1760,32], "src": [224,96], "f": 0, "t": 152, "d": [101,334], "a": 1 }, + { "px": [624,48], "src": [192,16], "f": 0, "t": 35, "d": [101,375], "a": 1 }, + { "px": [1776,48], "src": [192,16], "f": 0, "t": 35, "d": [101,447], "a": 1 }, + { "px": [64,64], "src": [192,16], "f": 0, "t": 35, "d": [101,452], "a": 1 }, + { "px": [96,64], "src": [224,96], "f": 0, "t": 152, "d": [101,454], "a": 1 }, + { "px": [128,64], "src": [96,0], "f": 0, "t": 6, "d": [101,456], "a": 1 }, + { "px": [160,64], "src": [224,96], "f": 0, "t": 152, "d": [101,458], "a": 1 }, + { "px": [608,64], "src": [96,0], "f": 0, "t": 6, "d": [101,486], "a": 1 }, + { "px": [1760,64], "src": [96,0], "f": 0, "t": 6, "d": [101,558], "a": 1 }, + { "px": [48,80], "src": [224,96], "f": 0, "t": 152, "d": [101,563], "a": 1 }, + { "px": [80,80], "src": [224,96], "f": 0, "t": 152, "d": [101,565], "a": 1 }, + { "px": [112,80], "src": [192,16], "f": 0, "t": 35, "d": [101,567], "a": 1 }, + { "px": [144,80], "src": [96,0], "f": 0, "t": 6, "d": [101,569], "a": 1 }, + { "px": [176,80], "src": [224,96], "f": 0, "t": 152, "d": [101,571], "a": 1 }, + { "px": [624,80], "src": [96,0], "f": 0, "t": 6, "d": [101,599], "a": 1 }, + { "px": [1776,80], "src": [224,96], "f": 0, "t": 152, "d": [101,671], "a": 1 }, + { "px": [32,96], "src": [192,16], "f": 0, "t": 35, "d": [101,674], "a": 1 }, + { "px": [64,96], "src": [96,0], "f": 0, "t": 6, "d": [101,676], "a": 1 }, + { "px": [160,96], "src": [224,96], "f": 0, "t": 152, "d": [101,682], "a": 1 }, + { "px": [192,96], "src": [192,16], "f": 0, "t": 35, "d": [101,684], "a": 1 }, + { "px": [224,96], "src": [224,96], "f": 0, "t": 152, "d": [101,686], "a": 1 }, + { "px": [256,96], "src": [224,96], "f": 0, "t": 152, "d": [101,688], "a": 1 }, + { "px": [288,96], "src": [192,16], "f": 0, "t": 35, "d": [101,690], "a": 1 }, + { "px": [320,96], "src": [96,0], "f": 0, "t": 6, "d": [101,692], "a": 1 }, + { "px": [352,96], "src": [224,96], "f": 0, "t": 152, "d": [101,694], "a": 1 }, + { "px": [384,96], "src": [96,0], "f": 0, "t": 6, "d": [101,696], "a": 1 }, + { "px": [416,96], "src": [224,96], "f": 0, "t": 152, "d": [101,698], "a": 1 }, + { "px": [448,96], "src": [224,96], "f": 0, "t": 152, "d": [101,700], "a": 1 }, + { "px": [480,96], "src": [96,0], "f": 0, "t": 6, "d": [101,702], "a": 1 }, + { "px": [512,96], "src": [192,16], "f": 0, "t": 35, "d": [101,704], "a": 1 }, + { "px": [544,96], "src": [192,16], "f": 0, "t": 35, "d": [101,706], "a": 1 }, + { "px": [576,96], "src": [224,96], "f": 0, "t": 152, "d": [101,708], "a": 1 }, + { "px": [608,96], "src": [224,96], "f": 0, "t": 152, "d": [101,710], "a": 1 }, + { "px": [1760,96], "src": [192,16], "f": 0, "t": 35, "d": [101,782], "a": 1 }, + { "px": [48,112], "src": [192,16], "f": 0, "t": 35, "d": [101,787], "a": 1 }, + { "px": [176,112], "src": [96,0], "f": 0, "t": 6, "d": [101,795], "a": 1 }, + { "px": [208,112], "src": [192,16], "f": 0, "t": 35, "d": [101,797], "a": 1 }, + { "px": [240,112], "src": [192,16], "f": 0, "t": 35, "d": [101,799], "a": 1 }, + { "px": [272,112], "src": [224,96], "f": 0, "t": 152, "d": [101,801], "a": 1 }, + { "px": [304,112], "src": [96,0], "f": 0, "t": 6, "d": [101,803], "a": 1 }, + { "px": [336,112], "src": [192,16], "f": 0, "t": 35, "d": [101,805], "a": 1 }, + { "px": [368,112], "src": [224,96], "f": 0, "t": 152, "d": [101,807], "a": 1 }, + { "px": [400,112], "src": [96,0], "f": 0, "t": 6, "d": [101,809], "a": 1 }, + { "px": [432,112], "src": [224,96], "f": 0, "t": 152, "d": [101,811], "a": 1 }, + { "px": [464,112], "src": [96,0], "f": 0, "t": 6, "d": [101,813], "a": 1 }, + { "px": [496,112], "src": [192,16], "f": 0, "t": 35, "d": [101,815], "a": 1 }, + { "px": [528,112], "src": [96,0], "f": 0, "t": 6, "d": [101,817], "a": 1 }, + { "px": [560,112], "src": [224,96], "f": 0, "t": 152, "d": [101,819], "a": 1 }, + { "px": [592,112], "src": [96,0], "f": 0, "t": 6, "d": [101,821], "a": 1 }, + { "px": [624,112], "src": [224,96], "f": 0, "t": 152, "d": [101,823], "a": 1 }, + { "px": [1680,112], "src": [192,16], "f": 0, "t": 35, "d": [101,889], "a": 1 }, + { "px": [1712,112], "src": [224,96], "f": 0, "t": 152, "d": [101,891], "a": 1 }, + { "px": [1744,112], "src": [224,96], "f": 0, "t": 152, "d": [101,893], "a": 1 }, + { "px": [1776,112], "src": [192,16], "f": 0, "t": 35, "d": [101,895], "a": 1 }, + { "px": [32,128], "src": [224,96], "f": 0, "t": 152, "d": [101,898], "a": 1 }, + { "px": [1696,128], "src": [96,0], "f": 0, "t": 6, "d": [101,1002], "a": 1 }, + { "px": [1728,128], "src": [224,96], "f": 0, "t": 152, "d": [101,1004], "a": 1 }, + { "px": [1760,128], "src": [224,96], "f": 0, "t": 152, "d": [101,1006], "a": 1 }, + { "px": [48,144], "src": [96,0], "f": 0, "t": 6, "d": [101,1011], "a": 1 }, + { "px": [1680,144], "src": [192,16], "f": 0, "t": 35, "d": [101,1113], "a": 1 }, + { "px": [32,160], "src": [224,96], "f": 0, "t": 152, "d": [101,1122], "a": 1 }, + { "px": [704,160], "src": [224,96], "f": 0, "t": 152, "d": [101,1164], "a": 1 }, + { "px": [736,160], "src": [192,16], "f": 0, "t": 35, "d": [101,1166], "a": 1 }, + { "px": [768,160], "src": [96,0], "f": 0, "t": 6, "d": [101,1168], "a": 1 }, + { "px": [800,160], "src": [224,96], "f": 0, "t": 152, "d": [101,1170], "a": 1 }, + { "px": [832,160], "src": [224,96], "f": 0, "t": 152, "d": [101,1172], "a": 1 }, + { "px": [864,160], "src": [192,16], "f": 0, "t": 35, "d": [101,1174], "a": 1 }, + { "px": [896,160], "src": [96,0], "f": 0, "t": 6, "d": [101,1176], "a": 1 }, + { "px": [928,160], "src": [224,96], "f": 0, "t": 152, "d": [101,1178], "a": 1 }, + { "px": [960,160], "src": [96,0], "f": 0, "t": 6, "d": [101,1180], "a": 1 }, + { "px": [992,160], "src": [192,16], "f": 0, "t": 35, "d": [101,1182], "a": 1 }, + { "px": [1024,160], "src": [192,16], "f": 0, "t": 35, "d": [101,1184], "a": 1 }, + { "px": [1696,160], "src": [224,96], "f": 0, "t": 152, "d": [101,1226], "a": 1 }, + { "px": [48,176], "src": [96,0], "f": 0, "t": 6, "d": [101,1235], "a": 1 }, + { "px": [720,176], "src": [224,96], "f": 0, "t": 152, "d": [101,1277], "a": 1 }, + { "px": [752,176], "src": [96,0], "f": 0, "t": 6, "d": [101,1279], "a": 1 }, + { "px": [784,176], "src": [224,96], "f": 0, "t": 152, "d": [101,1281], "a": 1 }, + { "px": [816,176], "src": [192,16], "f": 0, "t": 35, "d": [101,1283], "a": 1 }, + { "px": [848,176], "src": [224,96], "f": 0, "t": 152, "d": [101,1285], "a": 1 }, + { "px": [880,176], "src": [96,0], "f": 0, "t": 6, "d": [101,1287], "a": 1 }, + { "px": [912,176], "src": [224,96], "f": 0, "t": 152, "d": [101,1289], "a": 1 }, + { "px": [944,176], "src": [96,0], "f": 0, "t": 6, "d": [101,1291], "a": 1 }, + { "px": [976,176], "src": [192,16], "f": 0, "t": 35, "d": [101,1293], "a": 1 }, + { "px": [1008,176], "src": [192,16], "f": 0, "t": 35, "d": [101,1295], "a": 1 }, + { "px": [1040,176], "src": [96,0], "f": 0, "t": 6, "d": [101,1297], "a": 1 }, + { "px": [1680,176], "src": [224,96], "f": 0, "t": 152, "d": [101,1337], "a": 1 }, + { "px": [32,192], "src": [224,96], "f": 0, "t": 152, "d": [101,1346], "a": 1 }, + { "px": [64,192], "src": [192,16], "f": 0, "t": 35, "d": [101,1348], "a": 1 }, + { "px": [160,192], "src": [224,96], "f": 0, "t": 152, "d": [101,1354], "a": 1 }, + { "px": [192,192], "src": [96,0], "f": 0, "t": 6, "d": [101,1356], "a": 1 }, + { "px": [224,192], "src": [192,16], "f": 0, "t": 35, "d": [101,1358], "a": 1 }, + { "px": [256,192], "src": [224,96], "f": 0, "t": 152, "d": [101,1360], "a": 1 }, + { "px": [288,192], "src": [224,96], "f": 0, "t": 152, "d": [101,1362], "a": 1 }, + { "px": [320,192], "src": [96,0], "f": 0, "t": 6, "d": [101,1364], "a": 1 }, + { "px": [352,192], "src": [224,96], "f": 0, "t": 152, "d": [101,1366], "a": 1 }, + { "px": [384,192], "src": [192,16], "f": 0, "t": 35, "d": [101,1368], "a": 1 }, + { "px": [416,192], "src": [224,96], "f": 0, "t": 152, "d": [101,1370], "a": 1 }, + { "px": [448,192], "src": [96,0], "f": 0, "t": 6, "d": [101,1372], "a": 1 }, + { "px": [480,192], "src": [96,0], "f": 0, "t": 6, "d": [101,1374], "a": 1 }, + { "px": [512,192], "src": [224,96], "f": 0, "t": 152, "d": [101,1376], "a": 1 }, + { "px": [544,192], "src": [192,16], "f": 0, "t": 35, "d": [101,1378], "a": 1 }, + { "px": [576,192], "src": [192,16], "f": 0, "t": 35, "d": [101,1380], "a": 1 }, + { "px": [608,192], "src": [192,16], "f": 0, "t": 35, "d": [101,1382], "a": 1 }, + { "px": [640,192], "src": [192,16], "f": 0, "t": 35, "d": [101,1384], "a": 1 }, + { "px": [672,192], "src": [96,0], "f": 0, "t": 6, "d": [101,1386], "a": 1 }, + { "px": [704,192], "src": [96,0], "f": 0, "t": 6, "d": [101,1388], "a": 1 }, + { "px": [1024,192], "src": [192,16], "f": 0, "t": 35, "d": [101,1408], "a": 1 }, + { "px": [1504,192], "src": [192,16], "f": 0, "t": 35, "d": [101,1438], "a": 1 }, + { "px": [1536,192], "src": [192,16], "f": 0, "t": 35, "d": [101,1440], "a": 1 }, + { "px": [1568,192], "src": [96,0], "f": 0, "t": 6, "d": [101,1442], "a": 1 }, + { "px": [1600,192], "src": [192,16], "f": 0, "t": 35, "d": [101,1444], "a": 1 }, + { "px": [1632,192], "src": [96,0], "f": 0, "t": 6, "d": [101,1446], "a": 1 }, + { "px": [1664,192], "src": [224,96], "f": 0, "t": 152, "d": [101,1448], "a": 1 }, + { "px": [1696,192], "src": [192,16], "f": 0, "t": 35, "d": [101,1450], "a": 1 }, + { "px": [48,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1459], "a": 1 }, + { "px": [80,208], "src": [96,0], "f": 0, "t": 6, "d": [101,1461], "a": 1 }, + { "px": [112,208], "src": [96,0], "f": 0, "t": 6, "d": [101,1463], "a": 1 }, + { "px": [144,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1465], "a": 1 }, + { "px": [176,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1467], "a": 1 }, + { "px": [208,208], "src": [192,16], "f": 0, "t": 35, "d": [101,1469], "a": 1 }, + { "px": [240,208], "src": [192,16], "f": 0, "t": 35, "d": [101,1471], "a": 1 }, + { "px": [272,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1473], "a": 1 }, + { "px": [304,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1475], "a": 1 }, + { "px": [336,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1477], "a": 1 }, + { "px": [368,208], "src": [96,0], "f": 0, "t": 6, "d": [101,1479], "a": 1 }, + { "px": [400,208], "src": [96,0], "f": 0, "t": 6, "d": [101,1481], "a": 1 }, + { "px": [432,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1483], "a": 1 }, + { "px": [464,208], "src": [192,16], "f": 0, "t": 35, "d": [101,1485], "a": 1 }, + { "px": [496,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1487], "a": 1 }, + { "px": [528,208], "src": [96,0], "f": 0, "t": 6, "d": [101,1489], "a": 1 }, + { "px": [560,208], "src": [96,0], "f": 0, "t": 6, "d": [101,1491], "a": 1 }, + { "px": [592,208], "src": [192,16], "f": 0, "t": 35, "d": [101,1493], "a": 1 }, + { "px": [624,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1495], "a": 1 }, + { "px": [656,208], "src": [192,16], "f": 0, "t": 35, "d": [101,1497], "a": 1 }, + { "px": [688,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1499], "a": 1 }, + { "px": [720,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1501], "a": 1 }, + { "px": [1040,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1521], "a": 1 }, + { "px": [1424,208], "src": [192,16], "f": 0, "t": 35, "d": [101,1545], "a": 1 }, + { "px": [1456,208], "src": [192,16], "f": 0, "t": 35, "d": [101,1547], "a": 1 }, + { "px": [1488,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1549], "a": 1 }, + { "px": [1520,208], "src": [192,16], "f": 0, "t": 35, "d": [101,1551], "a": 1 }, + { "px": [1552,208], "src": [192,16], "f": 0, "t": 35, "d": [101,1553], "a": 1 }, + { "px": [1584,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1555], "a": 1 }, + { "px": [1616,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1557], "a": 1 }, + { "px": [1648,208], "src": [224,96], "f": 0, "t": 152, "d": [101,1559], "a": 1 }, + { "px": [1680,208], "src": [192,16], "f": 0, "t": 35, "d": [101,1561], "a": 1 }, + { "px": [64,224], "src": [192,16], "f": 0, "t": 35, "d": [101,1572], "a": 1 }, + { "px": [96,224], "src": [96,0], "f": 0, "t": 6, "d": [101,1574], "a": 1 }, + { "px": [128,224], "src": [192,16], "f": 0, "t": 35, "d": [101,1576], "a": 1 }, + { "px": [160,224], "src": [192,16], "f": 0, "t": 35, "d": [101,1578], "a": 1 }, + { "px": [1024,224], "src": [96,0], "f": 0, "t": 6, "d": [101,1632], "a": 1 }, + { "px": [1056,224], "src": [96,0], "f": 0, "t": 6, "d": [101,1634], "a": 1 }, + { "px": [1088,224], "src": [224,96], "f": 0, "t": 152, "d": [101,1636], "a": 1 }, + { "px": [1120,224], "src": [192,16], "f": 0, "t": 35, "d": [101,1638], "a": 1 }, + { "px": [1152,224], "src": [192,16], "f": 0, "t": 35, "d": [101,1640], "a": 1 }, + { "px": [1184,224], "src": [96,0], "f": 0, "t": 6, "d": [101,1642], "a": 1 }, + { "px": [1216,224], "src": [96,0], "f": 0, "t": 6, "d": [101,1644], "a": 1 }, + { "px": [1248,224], "src": [224,96], "f": 0, "t": 152, "d": [101,1646], "a": 1 }, + { "px": [1280,224], "src": [192,16], "f": 0, "t": 35, "d": [101,1648], "a": 1 }, + { "px": [1312,224], "src": [192,16], "f": 0, "t": 35, "d": [101,1650], "a": 1 }, + { "px": [1344,224], "src": [192,16], "f": 0, "t": 35, "d": [101,1652], "a": 1 }, + { "px": [1376,224], "src": [96,0], "f": 0, "t": 6, "d": [101,1654], "a": 1 }, + { "px": [1408,224], "src": [192,16], "f": 0, "t": 35, "d": [101,1656], "a": 1 }, + { "px": [1440,224], "src": [192,16], "f": 0, "t": 35, "d": [101,1658], "a": 1 }, + { "px": [1472,224], "src": [192,16], "f": 0, "t": 35, "d": [101,1660], "a": 1 }, + { "px": [1504,224], "src": [192,16], "f": 0, "t": 35, "d": [101,1662], "a": 1 }, + { "px": [1040,240], "src": [192,16], "f": 0, "t": 35, "d": [101,1745], "a": 1 }, + { "px": [1072,240], "src": [224,96], "f": 0, "t": 152, "d": [101,1747], "a": 1 }, + { "px": [1104,240], "src": [96,0], "f": 0, "t": 6, "d": [101,1749], "a": 1 }, + { "px": [1136,240], "src": [224,96], "f": 0, "t": 152, "d": [101,1751], "a": 1 }, + { "px": [1168,240], "src": [96,0], "f": 0, "t": 6, "d": [101,1753], "a": 1 }, + { "px": [1200,240], "src": [192,16], "f": 0, "t": 35, "d": [101,1755], "a": 1 }, + { "px": [1232,240], "src": [96,0], "f": 0, "t": 6, "d": [101,1757], "a": 1 }, + { "px": [1264,240], "src": [192,16], "f": 0, "t": 35, "d": [101,1759], "a": 1 }, + { "px": [1296,240], "src": [192,16], "f": 0, "t": 35, "d": [101,1761], "a": 1 }, + { "px": [1328,240], "src": [192,16], "f": 0, "t": 35, "d": [101,1763], "a": 1 }, + { "px": [1360,240], "src": [224,96], "f": 0, "t": 152, "d": [101,1765], "a": 1 }, + { "px": [1392,240], "src": [224,96], "f": 0, "t": 152, "d": [101,1767], "a": 1 }, + { "px": [1424,240], "src": [224,96], "f": 0, "t": 152, "d": [101,1769], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [32,0], "src": [32,32], "f": 0, "t": 48, "d": [127,2], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [64,0], "src": [32,32], "f": 0, "t": 48, "d": [127,4], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [127,8], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [160,0], "src": [32,32], "f": 0, "t": 48, "d": [127,10], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [192,0], "src": [32,32], "f": 0, "t": 48, "d": [127,12], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [127,21], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [127,23], "a": 1 }, + { "px": [384,0], "src": [32,32], "f": 0, "t": 48, "d": [127,24], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [127,25], "a": 1 }, + { "px": [416,0], "src": [32,32], "f": 0, "t": 48, "d": [127,26], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [127,27], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [127,28], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [480,0], "src": [32,32], "f": 0, "t": 48, "d": [127,30], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [127,31], "a": 1 }, + { "px": [512,0], "src": [32,32], "f": 0, "t": 48, "d": [127,32], "a": 1 }, + { "px": [528,0], "src": [32,32], "f": 0, "t": 48, "d": [127,33], "a": 1 }, + { "px": [560,0], "src": [32,32], "f": 0, "t": 48, "d": [127,35], "a": 1 }, + { "px": [576,0], "src": [32,32], "f": 0, "t": 48, "d": [127,36], "a": 1 }, + { "px": [592,0], "src": [32,32], "f": 0, "t": 48, "d": [127,37], "a": 1 }, + { "px": [608,0], "src": [32,32], "f": 0, "t": 48, "d": [127,38], "a": 1 }, + { "px": [624,0], "src": [32,32], "f": 0, "t": 48, "d": [127,39], "a": 1 }, + { "px": [640,0], "src": [32,32], "f": 0, "t": 48, "d": [127,40], "a": 1 }, + { "px": [656,0], "src": [32,32], "f": 0, "t": 48, "d": [127,41], "a": 1 }, + { "px": [688,0], "src": [32,32], "f": 0, "t": 48, "d": [127,43], "a": 1 }, + { "px": [720,0], "src": [32,32], "f": 0, "t": 48, "d": [127,45], "a": 1 }, + { "px": [736,0], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [752,0], "src": [32,32], "f": 0, "t": 48, "d": [127,47], "a": 1 }, + { "px": [768,0], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [784,0], "src": [32,32], "f": 0, "t": 48, "d": [127,49], "a": 1 }, + { "px": [816,0], "src": [32,32], "f": 0, "t": 48, "d": [127,51], "a": 1 }, + { "px": [832,0], "src": [32,32], "f": 0, "t": 48, "d": [127,52], "a": 1 }, + { "px": [848,0], "src": [32,32], "f": 0, "t": 48, "d": [127,53], "a": 1 }, + { "px": [864,0], "src": [32,32], "f": 0, "t": 48, "d": [127,54], "a": 1 }, + { "px": [880,0], "src": [32,32], "f": 0, "t": 48, "d": [127,55], "a": 1 }, + { "px": [912,0], "src": [32,32], "f": 0, "t": 48, "d": [127,57], "a": 1 }, + { "px": [928,0], "src": [32,32], "f": 0, "t": 48, "d": [127,58], "a": 1 }, + { "px": [944,0], "src": [32,32], "f": 0, "t": 48, "d": [127,59], "a": 1 }, + { "px": [976,0], "src": [32,32], "f": 0, "t": 48, "d": [127,61], "a": 1 }, + { "px": [992,0], "src": [32,32], "f": 0, "t": 48, "d": [127,62], "a": 1 }, + { "px": [1008,0], "src": [32,32], "f": 0, "t": 48, "d": [127,63], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,112], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [127,114], "a": 1 }, + { "px": [48,16], "src": [32,32], "f": 0, "t": 48, "d": [127,115], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [127,116], "a": 1 }, + { "px": [80,16], "src": [32,32], "f": 0, "t": 48, "d": [127,117], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [127,118], "a": 1 }, + { "px": [112,16], "src": [32,32], "f": 0, "t": 48, "d": [127,119], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [127,120], "a": 1 }, + { "px": [144,16], "src": [32,32], "f": 0, "t": 48, "d": [127,121], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [127,122], "a": 1 }, + { "px": [176,16], "src": [32,32], "f": 0, "t": 48, "d": [127,123], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,124], "a": 1 }, + { "px": [208,16], "src": [32,32], "f": 0, "t": 48, "d": [127,125], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,126], "a": 1 }, + { "px": [240,16], "src": [32,32], "f": 0, "t": 48, "d": [127,127], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [127,128], "a": 1 }, + { "px": [272,16], "src": [32,32], "f": 0, "t": 48, "d": [127,129], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [127,130], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [127,131], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [127,132], "a": 1 }, + { "px": [336,16], "src": [32,32], "f": 0, "t": 48, "d": [127,133], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [127,134], "a": 1 }, + { "px": [368,16], "src": [32,32], "f": 0, "t": 48, "d": [127,135], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [127,136], "a": 1 }, + { "px": [400,16], "src": [32,32], "f": 0, "t": 48, "d": [127,137], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [127,138], "a": 1 }, + { "px": [432,16], "src": [32,32], "f": 0, "t": 48, "d": [127,139], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [127,140], "a": 1 }, + { "px": [464,16], "src": [32,32], "f": 0, "t": 48, "d": [127,141], "a": 1 }, + { "px": [480,16], "src": [32,32], "f": 0, "t": 48, "d": [127,142], "a": 1 }, + { "px": [512,16], "src": [32,32], "f": 0, "t": 48, "d": [127,144], "a": 1 }, + { "px": [544,16], "src": [32,32], "f": 0, "t": 48, "d": [127,146], "a": 1 }, + { "px": [560,16], "src": [32,32], "f": 0, "t": 48, "d": [127,147], "a": 1 }, + { "px": [576,16], "src": [32,32], "f": 0, "t": 48, "d": [127,148], "a": 1 }, + { "px": [592,16], "src": [32,32], "f": 0, "t": 48, "d": [127,149], "a": 1 }, + { "px": [0,32], "src": [32,32], "f": 0, "t": 48, "d": [127,224], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [127,225], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [127,227], "a": 1 }, + { "px": [64,32], "src": [32,32], "f": 0, "t": 48, "d": [127,228], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [127,229], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [127,231], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [127,233], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [127,235], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [127,237], "a": 1 }, + { "px": [224,32], "src": [32,32], "f": 0, "t": 48, "d": [127,238], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,239], "a": 1 }, + { "px": [256,32], "src": [32,32], "f": 0, "t": 48, "d": [127,240], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [127,241], "a": 1 }, + { "px": [288,32], "src": [32,32], "f": 0, "t": 48, "d": [127,242], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [127,243], "a": 1 }, + { "px": [320,32], "src": [32,32], "f": 0, "t": 48, "d": [127,244], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [127,245], "a": 1 }, + { "px": [352,32], "src": [32,32], "f": 0, "t": 48, "d": [127,246], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [127,247], "a": 1 }, + { "px": [400,32], "src": [32,32], "f": 0, "t": 48, "d": [127,249], "a": 1 }, + { "px": [416,32], "src": [32,32], "f": 0, "t": 48, "d": [127,250], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [127,251], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [127,253], "a": 1 }, + { "px": [496,32], "src": [32,32], "f": 0, "t": 48, "d": [127,255], "a": 1 }, + { "px": [528,32], "src": [32,32], "f": 0, "t": 48, "d": [127,257], "a": 1 }, + { "px": [544,32], "src": [32,32], "f": 0, "t": 48, "d": [127,258], "a": 1 }, + { "px": [560,32], "src": [32,32], "f": 0, "t": 48, "d": [127,259], "a": 1 }, + { "px": [576,32], "src": [32,32], "f": 0, "t": 48, "d": [127,260], "a": 1 }, + { "px": [592,32], "src": [32,32], "f": 0, "t": 48, "d": [127,261], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,336], "a": 1 }, + { "px": [16,48], "src": [32,32], "f": 0, "t": 48, "d": [127,337], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [127,338], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [127,340], "a": 1 }, + { "px": [80,48], "src": [32,32], "f": 0, "t": 48, "d": [127,341], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [127,342], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [127,344], "a": 1 }, + { "px": [160,48], "src": [32,32], "f": 0, "t": 48, "d": [127,346], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [127,348], "a": 1 }, + { "px": [208,48], "src": [32,32], "f": 0, "t": 48, "d": [127,349], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [127,350], "a": 1 }, + { "px": [240,48], "src": [32,32], "f": 0, "t": 48, "d": [127,351], "a": 1 }, + { "px": [256,48], "src": [32,32], "f": 0, "t": 48, "d": [127,352], "a": 1 }, + { "px": [272,48], "src": [32,32], "f": 0, "t": 48, "d": [127,353], "a": 1 }, + { "px": [288,48], "src": [32,32], "f": 0, "t": 48, "d": [127,354], "a": 1 }, + { "px": [304,48], "src": [32,32], "f": 0, "t": 48, "d": [127,355], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [127,356], "a": 1 }, + { "px": [336,48], "src": [32,32], "f": 0, "t": 48, "d": [127,357], "a": 1 }, + { "px": [352,48], "src": [32,32], "f": 0, "t": 48, "d": [127,358], "a": 1 }, + { "px": [384,48], "src": [32,32], "f": 0, "t": 48, "d": [127,360], "a": 1 }, + { "px": [416,48], "src": [32,32], "f": 0, "t": 48, "d": [127,362], "a": 1 }, + { "px": [432,48], "src": [32,32], "f": 0, "t": 48, "d": [127,363], "a": 1 }, + { "px": [448,48], "src": [32,32], "f": 0, "t": 48, "d": [127,364], "a": 1 }, + { "px": [480,48], "src": [32,32], "f": 0, "t": 48, "d": [127,366], "a": 1 }, + { "px": [512,48], "src": [32,32], "f": 0, "t": 48, "d": [127,368], "a": 1 }, + { "px": [528,48], "src": [32,32], "f": 0, "t": 48, "d": [127,369], "a": 1 }, + { "px": [544,48], "src": [32,32], "f": 0, "t": 48, "d": [127,370], "a": 1 }, + { "px": [560,48], "src": [32,32], "f": 0, "t": 48, "d": [127,371], "a": 1 }, + { "px": [576,48], "src": [32,32], "f": 0, "t": 48, "d": [127,372], "a": 1 }, + { "px": [592,48], "src": [32,32], "f": 0, "t": 48, "d": [127,373], "a": 1 }, + { "px": [0,64], "src": [32,32], "f": 0, "t": 48, "d": [127,448], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [127,449], "a": 1 }, + { "px": [32,64], "src": [32,32], "f": 0, "t": 48, "d": [127,450], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [127,461], "a": 1 }, + { "px": [224,64], "src": [32,32], "f": 0, "t": 48, "d": [127,462], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [127,463], "a": 1 }, + { "px": [256,64], "src": [32,32], "f": 0, "t": 48, "d": [127,464], "a": 1 }, + { "px": [272,64], "src": [32,32], "f": 0, "t": 48, "d": [127,465], "a": 1 }, + { "px": [288,64], "src": [32,32], "f": 0, "t": 48, "d": [127,466], "a": 1 }, + { "px": [304,64], "src": [32,32], "f": 0, "t": 48, "d": [127,467], "a": 1 }, + { "px": [320,64], "src": [32,32], "f": 0, "t": 48, "d": [127,468], "a": 1 }, + { "px": [336,64], "src": [32,32], "f": 0, "t": 48, "d": [127,469], "a": 1 }, + { "px": [352,64], "src": [32,32], "f": 0, "t": 48, "d": [127,470], "a": 1 }, + { "px": [368,64], "src": [32,32], "f": 0, "t": 48, "d": [127,471], "a": 1 }, + { "px": [384,64], "src": [32,32], "f": 0, "t": 48, "d": [127,472], "a": 1 }, + { "px": [400,64], "src": [32,32], "f": 0, "t": 48, "d": [127,473], "a": 1 }, + { "px": [416,64], "src": [32,32], "f": 0, "t": 48, "d": [127,474], "a": 1 }, + { "px": [432,64], "src": [32,32], "f": 0, "t": 48, "d": [127,475], "a": 1 }, + { "px": [448,64], "src": [32,32], "f": 0, "t": 48, "d": [127,476], "a": 1 }, + { "px": [464,64], "src": [32,32], "f": 0, "t": 48, "d": [127,477], "a": 1 }, + { "px": [496,64], "src": [32,32], "f": 0, "t": 48, "d": [127,479], "a": 1 }, + { "px": [512,64], "src": [32,32], "f": 0, "t": 48, "d": [127,480], "a": 1 }, + { "px": [528,64], "src": [32,32], "f": 0, "t": 48, "d": [127,481], "a": 1 }, + { "px": [544,64], "src": [32,32], "f": 0, "t": 48, "d": [127,482], "a": 1 }, + { "px": [560,64], "src": [32,32], "f": 0, "t": 48, "d": [127,483], "a": 1 }, + { "px": [576,64], "src": [32,32], "f": 0, "t": 48, "d": [127,484], "a": 1 }, + { "px": [592,64], "src": [32,32], "f": 0, "t": 48, "d": [127,485], "a": 1 }, + { "px": [0,80], "src": [32,32], "f": 0, "t": 48, "d": [127,560], "a": 1 }, + { "px": [224,80], "src": [32,32], "f": 0, "t": 48, "d": [127,574], "a": 1 }, + { "px": [240,80], "src": [32,32], "f": 0, "t": 48, "d": [127,575], "a": 1 }, + { "px": [256,80], "src": [32,32], "f": 0, "t": 48, "d": [127,576], "a": 1 }, + { "px": [288,80], "src": [32,32], "f": 0, "t": 48, "d": [127,578], "a": 1 }, + { "px": [304,80], "src": [32,32], "f": 0, "t": 48, "d": [127,579], "a": 1 }, + { "px": [320,80], "src": [32,32], "f": 0, "t": 48, "d": [127,580], "a": 1 }, + { "px": [352,80], "src": [32,32], "f": 0, "t": 48, "d": [127,582], "a": 1 }, + { "px": [368,80], "src": [32,32], "f": 0, "t": 48, "d": [127,583], "a": 1 }, + { "px": [384,80], "src": [32,32], "f": 0, "t": 48, "d": [127,584], "a": 1 }, + { "px": [416,80], "src": [32,32], "f": 0, "t": 48, "d": [127,586], "a": 1 }, + { "px": [432,80], "src": [32,32], "f": 0, "t": 48, "d": [127,587], "a": 1 }, + { "px": [448,80], "src": [32,32], "f": 0, "t": 48, "d": [127,588], "a": 1 }, + { "px": [464,80], "src": [32,32], "f": 0, "t": 48, "d": [127,589], "a": 1 }, + { "px": [480,80], "src": [32,32], "f": 0, "t": 48, "d": [127,590], "a": 1 }, + { "px": [512,80], "src": [32,32], "f": 0, "t": 48, "d": [127,592], "a": 1 }, + { "px": [528,80], "src": [32,32], "f": 0, "t": 48, "d": [127,593], "a": 1 }, + { "px": [544,80], "src": [32,32], "f": 0, "t": 48, "d": [127,594], "a": 1 }, + { "px": [576,80], "src": [32,32], "f": 0, "t": 48, "d": [127,596], "a": 1 }, + { "px": [0,96], "src": [32,32], "f": 0, "t": 48, "d": [127,672], "a": 1 }, + { "px": [16,96], "src": [32,32], "f": 0, "t": 48, "d": [127,673], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [127,784], "a": 1 }, + { "px": [0,128], "src": [32,32], "f": 0, "t": 48, "d": [127,896], "a": 1 }, + { "px": [16,128], "src": [32,32], "f": 0, "t": 48, "d": [127,897], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [127,1008], "a": 1 }, + { "px": [16,144], "src": [32,32], "f": 0, "t": 48, "d": [127,1009], "a": 1 }, + { "px": [1728,144], "src": [32,32], "f": 0, "t": 48, "d": [127,1116], "a": 1 }, + { "px": [1760,144], "src": [32,32], "f": 0, "t": 48, "d": [127,1118], "a": 1 }, + { "px": [1776,144], "src": [32,32], "f": 0, "t": 48, "d": [127,1119], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [127,1121], "a": 1 }, + { "px": [1712,160], "src": [32,32], "f": 0, "t": 48, "d": [127,1227], "a": 1 }, + { "px": [1744,160], "src": [32,32], "f": 0, "t": 48, "d": [127,1229], "a": 1 }, + { "px": [1776,160], "src": [32,32], "f": 0, "t": 48, "d": [127,1231], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [127,1232], "a": 1 }, + { "px": [1712,176], "src": [32,32], "f": 0, "t": 48, "d": [127,1339], "a": 1 }, + { "px": [1728,176], "src": [32,32], "f": 0, "t": 48, "d": [127,1340], "a": 1 }, + { "px": [1760,176], "src": [32,32], "f": 0, "t": 48, "d": [127,1342], "a": 1 }, + { "px": [1776,176], "src": [32,32], "f": 0, "t": 48, "d": [127,1343], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1345], "a": 1 }, + { "px": [736,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1390], "a": 1 }, + { "px": [752,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1391], "a": 1 }, + { "px": [784,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1393], "a": 1 }, + { "px": [800,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1394], "a": 1 }, + { "px": [816,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1395], "a": 1 }, + { "px": [848,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1397], "a": 1 }, + { "px": [864,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1398], "a": 1 }, + { "px": [880,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1399], "a": 1 }, + { "px": [896,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1400], "a": 1 }, + { "px": [912,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1401], "a": 1 }, + { "px": [944,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1403], "a": 1 }, + { "px": [976,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1405], "a": 1 }, + { "px": [1008,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1407], "a": 1 }, + { "px": [1712,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1451], "a": 1 }, + { "px": [1744,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1453], "a": 1 }, + { "px": [1760,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1454], "a": 1 }, + { "px": [1776,192], "src": [32,32], "f": 0, "t": 48, "d": [127,1455], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1456], "a": 1 }, + { "px": [16,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1457], "a": 1 }, + { "px": [736,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1502], "a": 1 }, + { "px": [768,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1504], "a": 1 }, + { "px": [800,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1506], "a": 1 }, + { "px": [832,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1508], "a": 1 }, + { "px": [848,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1509], "a": 1 }, + { "px": [864,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1510], "a": 1 }, + { "px": [880,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1511], "a": 1 }, + { "px": [896,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1512], "a": 1 }, + { "px": [928,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1514], "a": 1 }, + { "px": [960,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1516], "a": 1 }, + { "px": [992,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1518], "a": 1 }, + { "px": [1008,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1519], "a": 1 }, + { "px": [1712,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1563], "a": 1 }, + { "px": [1728,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1564], "a": 1 }, + { "px": [1744,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1565], "a": 1 }, + { "px": [1760,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1566], "a": 1 }, + { "px": [1776,208], "src": [32,32], "f": 0, "t": 48, "d": [127,1567], "a": 1 }, + { "px": [0,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1568], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1569], "a": 1 }, + { "px": [32,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1570], "a": 1 }, + { "px": [192,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1580], "a": 1 }, + { "px": [208,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1581], "a": 1 }, + { "px": [224,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1582], "a": 1 }, + { "px": [240,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1583], "a": 1 }, + { "px": [256,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1584], "a": 1 }, + { "px": [272,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1585], "a": 1 }, + { "px": [288,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1586], "a": 1 }, + { "px": [304,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1587], "a": 1 }, + { "px": [320,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1588], "a": 1 }, + { "px": [336,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1589], "a": 1 }, + { "px": [352,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1590], "a": 1 }, + { "px": [368,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1591], "a": 1 }, + { "px": [400,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1593], "a": 1 }, + { "px": [432,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1595], "a": 1 }, + { "px": [464,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1597], "a": 1 }, + { "px": [480,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1598], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1599], "a": 1 }, + { "px": [528,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1601], "a": 1 }, + { "px": [544,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1602], "a": 1 }, + { "px": [560,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1603], "a": 1 }, + { "px": [592,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1605], "a": 1 }, + { "px": [624,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1607], "a": 1 }, + { "px": [640,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1608], "a": 1 }, + { "px": [656,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1609], "a": 1 }, + { "px": [688,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1611], "a": 1 }, + { "px": [704,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1612], "a": 1 }, + { "px": [720,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1613], "a": 1 }, + { "px": [752,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1615], "a": 1 }, + { "px": [784,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1617], "a": 1 }, + { "px": [800,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1618], "a": 1 }, + { "px": [816,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1619], "a": 1 }, + { "px": [832,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1620], "a": 1 }, + { "px": [848,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1621], "a": 1 }, + { "px": [864,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1622], "a": 1 }, + { "px": [880,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1623], "a": 1 }, + { "px": [896,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1624], "a": 1 }, + { "px": [912,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1625], "a": 1 }, + { "px": [944,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1627], "a": 1 }, + { "px": [960,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1628], "a": 1 }, + { "px": [976,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1629], "a": 1 }, + { "px": [992,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1630], "a": 1 }, + { "px": [1008,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1631], "a": 1 }, + { "px": [1552,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1665], "a": 1 }, + { "px": [1568,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1666], "a": 1 }, + { "px": [1584,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1667], "a": 1 }, + { "px": [1600,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1668], "a": 1 }, + { "px": [1616,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1669], "a": 1 }, + { "px": [1632,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1670], "a": 1 }, + { "px": [1648,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1671], "a": 1 }, + { "px": [1664,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1672], "a": 1 }, + { "px": [1680,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1673], "a": 1 }, + { "px": [1712,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1675], "a": 1 }, + { "px": [1744,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1677], "a": 1 }, + { "px": [1776,224], "src": [32,32], "f": 0, "t": 48, "d": [127,1679], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1680], "a": 1 }, + { "px": [16,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1681], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1682], "a": 1 }, + { "px": [48,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1683], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1684], "a": 1 }, + { "px": [96,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1686], "a": 1 }, + { "px": [128,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1688], "a": 1 }, + { "px": [144,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1689], "a": 1 }, + { "px": [160,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1690], "a": 1 }, + { "px": [176,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1691], "a": 1 }, + { "px": [192,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1692], "a": 1 }, + { "px": [208,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1693], "a": 1 }, + { "px": [224,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1694], "a": 1 }, + { "px": [256,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1696], "a": 1 }, + { "px": [272,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1697], "a": 1 }, + { "px": [288,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1698], "a": 1 }, + { "px": [320,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1700], "a": 1 }, + { "px": [336,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1701], "a": 1 }, + { "px": [352,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1702], "a": 1 }, + { "px": [384,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1704], "a": 1 }, + { "px": [416,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1706], "a": 1 }, + { "px": [432,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1707], "a": 1 }, + { "px": [448,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1708], "a": 1 }, + { "px": [464,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1709], "a": 1 }, + { "px": [480,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1710], "a": 1 }, + { "px": [512,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1712], "a": 1 }, + { "px": [528,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1713], "a": 1 }, + { "px": [544,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1714], "a": 1 }, + { "px": [560,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1715], "a": 1 }, + { "px": [576,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1716], "a": 1 }, + { "px": [592,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1717], "a": 1 }, + { "px": [608,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1718], "a": 1 }, + { "px": [624,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1719], "a": 1 }, + { "px": [640,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1720], "a": 1 }, + { "px": [656,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1721], "a": 1 }, + { "px": [672,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1722], "a": 1 }, + { "px": [688,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1723], "a": 1 }, + { "px": [704,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1724], "a": 1 }, + { "px": [720,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1725], "a": 1 }, + { "px": [736,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1726], "a": 1 }, + { "px": [752,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1727], "a": 1 }, + { "px": [768,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1728], "a": 1 }, + { "px": [784,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1729], "a": 1 }, + { "px": [800,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1730], "a": 1 }, + { "px": [832,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1732], "a": 1 }, + { "px": [848,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1733], "a": 1 }, + { "px": [864,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1734], "a": 1 }, + { "px": [896,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1736], "a": 1 }, + { "px": [928,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1738], "a": 1 }, + { "px": [960,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1740], "a": 1 }, + { "px": [976,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1741], "a": 1 }, + { "px": [992,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1742], "a": 1 }, + { "px": [1008,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1743], "a": 1 }, + { "px": [1456,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1771], "a": 1 }, + { "px": [1472,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1772], "a": 1 }, + { "px": [1488,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1773], "a": 1 }, + { "px": [1504,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1774], "a": 1 }, + { "px": [1536,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1776], "a": 1 }, + { "px": [1552,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1777], "a": 1 }, + { "px": [1568,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1778], "a": 1 }, + { "px": [1584,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1779], "a": 1 }, + { "px": [1600,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1780], "a": 1 }, + { "px": [1632,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1782], "a": 1 }, + { "px": [1648,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1783], "a": 1 }, + { "px": [1664,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1784], "a": 1 }, + { "px": [1696,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1786], "a": 1 }, + { "px": [1728,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1788], "a": 1 }, + { "px": [1760,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1790], "a": 1 }, + { "px": [1776,240], "src": [32,32], "f": 0, "t": 48, "d": [127,1791], "a": 1 }, + { "px": [0,0], "src": [64,96], "f": 0, "t": 142, "d": [126,0], "a": 1 }, + { "px": [96,0], "src": [64,96], "f": 0, "t": 142, "d": [126,6], "a": 1 }, + { "px": [256,0], "src": [64,96], "f": 0, "t": 142, "d": [126,16], "a": 1 }, + { "px": [320,0], "src": [64,96], "f": 0, "t": 142, "d": [126,20], "a": 1 }, + { "px": [352,0], "src": [64,96], "f": 0, "t": 142, "d": [126,22], "a": 1 }, + { "px": [544,0], "src": [64,96], "f": 0, "t": 142, "d": [126,34], "a": 1 }, + { "px": [672,0], "src": [96,96], "f": 0, "t": 144, "d": [126,42], "a": 1 }, + { "px": [704,0], "src": [64,96], "f": 0, "t": 142, "d": [126,44], "a": 1 }, + { "px": [800,0], "src": [64,96], "f": 0, "t": 142, "d": [126,50], "a": 1 }, + { "px": [896,0], "src": [64,96], "f": 0, "t": 142, "d": [126,56], "a": 1 }, + { "px": [960,0], "src": [96,96], "f": 0, "t": 144, "d": [126,60], "a": 1 }, + { "px": [16,16], "src": [64,96], "f": 0, "t": 142, "d": [126,113], "a": 1 }, + { "px": [496,16], "src": [64,96], "f": 0, "t": 142, "d": [126,143], "a": 1 }, + { "px": [528,16], "src": [96,96], "f": 0, "t": 144, "d": [126,145], "a": 1 }, + { "px": [32,32], "src": [64,96], "f": 0, "t": 142, "d": [126,226], "a": 1 }, + { "px": [96,32], "src": [96,96], "f": 0, "t": 144, "d": [126,230], "a": 1 }, + { "px": [128,32], "src": [64,96], "f": 0, "t": 142, "d": [126,232], "a": 1 }, + { "px": [160,32], "src": [64,96], "f": 0, "t": 142, "d": [126,234], "a": 1 }, + { "px": [192,32], "src": [96,96], "f": 0, "t": 144, "d": [126,236], "a": 1 }, + { "px": [384,32], "src": [64,96], "f": 0, "t": 142, "d": [126,248], "a": 1 }, + { "px": [448,32], "src": [96,96], "f": 0, "t": 144, "d": [126,252], "a": 1 }, + { "px": [480,32], "src": [96,96], "f": 0, "t": 144, "d": [126,254], "a": 1 }, + { "px": [512,32], "src": [64,96], "f": 0, "t": 142, "d": [126,256], "a": 1 }, + { "px": [48,48], "src": [96,96], "f": 0, "t": 144, "d": [126,339], "a": 1 }, + { "px": [112,48], "src": [96,96], "f": 0, "t": 144, "d": [126,343], "a": 1 }, + { "px": [144,48], "src": [96,96], "f": 0, "t": 144, "d": [126,345], "a": 1 }, + { "px": [176,48], "src": [96,96], "f": 0, "t": 144, "d": [126,347], "a": 1 }, + { "px": [368,48], "src": [64,96], "f": 0, "t": 142, "d": [126,359], "a": 1 }, + { "px": [400,48], "src": [96,96], "f": 0, "t": 144, "d": [126,361], "a": 1 }, + { "px": [464,48], "src": [64,96], "f": 0, "t": 142, "d": [126,365], "a": 1 }, + { "px": [496,48], "src": [64,96], "f": 0, "t": 142, "d": [126,367], "a": 1 }, + { "px": [192,64], "src": [64,96], "f": 0, "t": 142, "d": [126,460], "a": 1 }, + { "px": [480,64], "src": [96,96], "f": 0, "t": 144, "d": [126,478], "a": 1 }, + { "px": [16,80], "src": [96,96], "f": 0, "t": 144, "d": [126,561], "a": 1 }, + { "px": [208,80], "src": [64,96], "f": 0, "t": 142, "d": [126,573], "a": 1 }, + { "px": [272,80], "src": [96,96], "f": 0, "t": 144, "d": [126,577], "a": 1 }, + { "px": [336,80], "src": [64,96], "f": 0, "t": 142, "d": [126,581], "a": 1 }, + { "px": [400,80], "src": [64,96], "f": 0, "t": 142, "d": [126,585], "a": 1 }, + { "px": [496,80], "src": [64,96], "f": 0, "t": 142, "d": [126,591], "a": 1 }, + { "px": [560,80], "src": [64,96], "f": 0, "t": 142, "d": [126,595], "a": 1 }, + { "px": [592,80], "src": [64,96], "f": 0, "t": 142, "d": [126,597], "a": 1 }, + { "px": [16,112], "src": [96,96], "f": 0, "t": 144, "d": [126,785], "a": 1 }, + { "px": [1712,144], "src": [64,96], "f": 0, "t": 142, "d": [126,1115], "a": 1 }, + { "px": [1744,144], "src": [96,96], "f": 0, "t": 144, "d": [126,1117], "a": 1 }, + { "px": [0,160], "src": [96,96], "f": 0, "t": 144, "d": [126,1120], "a": 1 }, + { "px": [1728,160], "src": [64,96], "f": 0, "t": 142, "d": [126,1228], "a": 1 }, + { "px": [1760,160], "src": [96,96], "f": 0, "t": 144, "d": [126,1230], "a": 1 }, + { "px": [16,176], "src": [96,96], "f": 0, "t": 144, "d": [126,1233], "a": 1 }, + { "px": [1744,176], "src": [96,96], "f": 0, "t": 144, "d": [126,1341], "a": 1 }, + { "px": [0,192], "src": [96,96], "f": 0, "t": 144, "d": [126,1344], "a": 1 }, + { "px": [768,192], "src": [64,96], "f": 0, "t": 142, "d": [126,1392], "a": 1 }, + { "px": [832,192], "src": [96,96], "f": 0, "t": 144, "d": [126,1396], "a": 1 }, + { "px": [928,192], "src": [96,96], "f": 0, "t": 144, "d": [126,1402], "a": 1 }, + { "px": [960,192], "src": [96,96], "f": 0, "t": 144, "d": [126,1404], "a": 1 }, + { "px": [992,192], "src": [64,96], "f": 0, "t": 142, "d": [126,1406], "a": 1 }, + { "px": [1728,192], "src": [96,96], "f": 0, "t": 144, "d": [126,1452], "a": 1 }, + { "px": [752,208], "src": [64,96], "f": 0, "t": 142, "d": [126,1503], "a": 1 }, + { "px": [784,208], "src": [96,96], "f": 0, "t": 144, "d": [126,1505], "a": 1 }, + { "px": [816,208], "src": [96,96], "f": 0, "t": 144, "d": [126,1507], "a": 1 }, + { "px": [912,208], "src": [96,96], "f": 0, "t": 144, "d": [126,1513], "a": 1 }, + { "px": [944,208], "src": [64,96], "f": 0, "t": 142, "d": [126,1515], "a": 1 }, + { "px": [976,208], "src": [64,96], "f": 0, "t": 142, "d": [126,1517], "a": 1 }, + { "px": [384,224], "src": [96,96], "f": 0, "t": 144, "d": [126,1592], "a": 1 }, + { "px": [416,224], "src": [96,96], "f": 0, "t": 144, "d": [126,1594], "a": 1 }, + { "px": [448,224], "src": [64,96], "f": 0, "t": 142, "d": [126,1596], "a": 1 }, + { "px": [512,224], "src": [96,96], "f": 0, "t": 144, "d": [126,1600], "a": 1 }, + { "px": [576,224], "src": [96,96], "f": 0, "t": 144, "d": [126,1604], "a": 1 }, + { "px": [608,224], "src": [96,96], "f": 0, "t": 144, "d": [126,1606], "a": 1 }, + { "px": [672,224], "src": [64,96], "f": 0, "t": 142, "d": [126,1610], "a": 1 }, + { "px": [736,224], "src": [96,96], "f": 0, "t": 144, "d": [126,1614], "a": 1 }, + { "px": [768,224], "src": [64,96], "f": 0, "t": 142, "d": [126,1616], "a": 1 }, + { "px": [928,224], "src": [64,96], "f": 0, "t": 142, "d": [126,1626], "a": 1 }, + { "px": [1536,224], "src": [64,96], "f": 0, "t": 142, "d": [126,1664], "a": 1 }, + { "px": [1696,224], "src": [64,96], "f": 0, "t": 142, "d": [126,1674], "a": 1 }, + { "px": [1728,224], "src": [96,96], "f": 0, "t": 144, "d": [126,1676], "a": 1 }, + { "px": [1760,224], "src": [96,96], "f": 0, "t": 144, "d": [126,1678], "a": 1 }, + { "px": [80,240], "src": [96,96], "f": 0, "t": 144, "d": [126,1685], "a": 1 }, + { "px": [112,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1687], "a": 1 }, + { "px": [240,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1695], "a": 1 }, + { "px": [304,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1699], "a": 1 }, + { "px": [368,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1703], "a": 1 }, + { "px": [400,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1705], "a": 1 }, + { "px": [496,240], "src": [96,96], "f": 0, "t": 144, "d": [126,1711], "a": 1 }, + { "px": [816,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1731], "a": 1 }, + { "px": [880,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1735], "a": 1 }, + { "px": [912,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1737], "a": 1 }, + { "px": [944,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1739], "a": 1 }, + { "px": [1520,240], "src": [96,96], "f": 0, "t": 144, "d": [126,1775], "a": 1 }, + { "px": [1616,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1781], "a": 1 }, + { "px": [1680,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1785], "a": 1 }, + { "px": [1712,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1787], "a": 1 }, + { "px": [1744,240], "src": [64,96], "f": 0, "t": 142, "d": [126,1789], "a": 1 }, + { "px": [1072,16], "src": [256,160], "f": 0, "t": 246, "d": [12,179], "a": 1 }, + { "px": [1088,16], "src": [256,160], "f": 0, "t": 246, "d": [12,180], "a": 1 }, + { "px": [1104,16], "src": [256,160], "f": 0, "t": 246, "d": [12,181], "a": 1 }, + { "px": [1120,16], "src": [256,160], "f": 0, "t": 246, "d": [12,182], "a": 1 }, + { "px": [1152,16], "src": [256,160], "f": 0, "t": 246, "d": [12,184], "a": 1 }, + { "px": [1168,16], "src": [256,160], "f": 0, "t": 246, "d": [12,185], "a": 1 }, + { "px": [1184,16], "src": [256,160], "f": 0, "t": 246, "d": [12,186], "a": 1 }, + { "px": [1264,16], "src": [256,160], "f": 0, "t": 246, "d": [12,191], "a": 1 }, + { "px": [1280,16], "src": [256,160], "f": 0, "t": 246, "d": [12,192], "a": 1 }, + { "px": [1296,16], "src": [256,160], "f": 0, "t": 246, "d": [12,193], "a": 1 }, + { "px": [1392,16], "src": [256,160], "f": 0, "t": 246, "d": [12,199], "a": 1 }, + { "px": [1456,32], "src": [256,160], "f": 0, "t": 246, "d": [12,315], "a": 1 }, + { "px": [1472,32], "src": [256,160], "f": 0, "t": 246, "d": [12,316], "a": 1 }, + { "px": [1488,32], "src": [256,160], "f": 0, "t": 246, "d": [12,317], "a": 1 }, + { "px": [1504,32], "src": [256,160], "f": 0, "t": 246, "d": [12,318], "a": 1 }, + { "px": [1520,32], "src": [256,160], "f": 0, "t": 246, "d": [12,319], "a": 1 }, + { "px": [1552,32], "src": [256,160], "f": 0, "t": 246, "d": [12,321], "a": 1 }, + { "px": [1584,32], "src": [256,160], "f": 0, "t": 246, "d": [12,323], "a": 1 }, + { "px": [1600,32], "src": [256,160], "f": 0, "t": 246, "d": [12,324], "a": 1 }, + { "px": [1616,32], "src": [256,160], "f": 0, "t": 246, "d": [12,325], "a": 1 }, + { "px": [1632,32], "src": [256,160], "f": 0, "t": 246, "d": [12,326], "a": 1 }, + { "px": [1648,32], "src": [256,160], "f": 0, "t": 246, "d": [12,327], "a": 1 }, + { "px": [672,48], "src": [256,160], "f": 0, "t": 246, "d": [12,378], "a": 1 }, + { "px": [688,48], "src": [256,160], "f": 0, "t": 246, "d": [12,379], "a": 1 }, + { "px": [720,48], "src": [256,160], "f": 0, "t": 246, "d": [12,381], "a": 1 }, + { "px": [784,48], "src": [256,160], "f": 0, "t": 246, "d": [12,385], "a": 1 }, + { "px": [800,48], "src": [256,160], "f": 0, "t": 246, "d": [12,386], "a": 1 }, + { "px": [848,48], "src": [256,160], "f": 0, "t": 246, "d": [12,389], "a": 1 }, + { "px": [864,48], "src": [256,160], "f": 0, "t": 246, "d": [12,390], "a": 1 }, + { "px": [880,48], "src": [256,160], "f": 0, "t": 246, "d": [12,391], "a": 1 }, + { "px": [896,48], "src": [256,160], "f": 0, "t": 246, "d": [12,392], "a": 1 }, + { "px": [912,48], "src": [256,160], "f": 0, "t": 246, "d": [12,393], "a": 1 }, + { "px": [928,48], "src": [256,160], "f": 0, "t": 246, "d": [12,394], "a": 1 }, + { "px": [944,48], "src": [256,160], "f": 0, "t": 246, "d": [12,395], "a": 1 }, + { "px": [976,48], "src": [256,160], "f": 0, "t": 246, "d": [12,397], "a": 1 }, + { "px": [1008,48], "src": [256,160], "f": 0, "t": 246, "d": [12,399], "a": 1 }, + { "px": [1024,48], "src": [256,160], "f": 0, "t": 246, "d": [12,400], "a": 1 }, + { "px": [1040,48], "src": [256,160], "f": 0, "t": 246, "d": [12,401], "a": 1 }, + { "px": [128,96], "src": [256,160], "f": 0, "t": 246, "d": [12,680], "a": 1 }, + { "px": [176,128], "src": [256,160], "f": 0, "t": 246, "d": [12,907], "a": 1 }, + { "px": [192,128], "src": [256,160], "f": 0, "t": 246, "d": [12,908], "a": 1 }, + { "px": [208,128], "src": [256,160], "f": 0, "t": 246, "d": [12,909], "a": 1 }, + { "px": [224,128], "src": [256,160], "f": 0, "t": 246, "d": [12,910], "a": 1 }, + { "px": [240,128], "src": [256,160], "f": 0, "t": 246, "d": [12,911], "a": 1 }, + { "px": [272,128], "src": [256,160], "f": 0, "t": 246, "d": [12,913], "a": 1 }, + { "px": [288,128], "src": [256,160], "f": 0, "t": 246, "d": [12,914], "a": 1 }, + { "px": [304,128], "src": [256,160], "f": 0, "t": 246, "d": [12,915], "a": 1 }, + { "px": [352,128], "src": [256,160], "f": 0, "t": 246, "d": [12,918], "a": 1 }, + { "px": [368,128], "src": [256,160], "f": 0, "t": 246, "d": [12,919], "a": 1 }, + { "px": [384,128], "src": [256,160], "f": 0, "t": 246, "d": [12,920], "a": 1 }, + { "px": [400,128], "src": [256,160], "f": 0, "t": 246, "d": [12,921], "a": 1 }, + { "px": [416,128], "src": [256,160], "f": 0, "t": 246, "d": [12,922], "a": 1 }, + { "px": [432,128], "src": [256,160], "f": 0, "t": 246, "d": [12,923], "a": 1 }, + { "px": [464,128], "src": [256,160], "f": 0, "t": 246, "d": [12,925], "a": 1 }, + { "px": [480,128], "src": [256,160], "f": 0, "t": 246, "d": [12,926], "a": 1 }, + { "px": [496,128], "src": [256,160], "f": 0, "t": 246, "d": [12,927], "a": 1 }, + { "px": [512,128], "src": [256,160], "f": 0, "t": 246, "d": [12,928], "a": 1 }, + { "px": [528,128], "src": [256,160], "f": 0, "t": 246, "d": [12,929], "a": 1 }, + { "px": [544,128], "src": [256,160], "f": 0, "t": 246, "d": [12,930], "a": 1 }, + { "px": [592,128], "src": [256,160], "f": 0, "t": 246, "d": [12,933], "a": 1 }, + { "px": [608,128], "src": [256,160], "f": 0, "t": 246, "d": [12,934], "a": 1 }, + { "px": [624,128], "src": [256,160], "f": 0, "t": 246, "d": [12,935], "a": 1 }, + { "px": [752,144], "src": [256,96], "f": 0, "t": 154, "d": [9,1055], "a": 1 }, + { "px": [768,144], "src": [256,96], "f": 0, "t": 154, "d": [9,1056], "a": 1 }, + { "px": [784,144], "src": [256,96], "f": 0, "t": 154, "d": [9,1057], "a": 1 }, + { "px": [848,144], "src": [256,96], "f": 0, "t": 154, "d": [9,1061], "a": 1 }, + { "px": [864,144], "src": [256,96], "f": 0, "t": 154, "d": [9,1062], "a": 1 }, + { "px": [880,144], "src": [256,96], "f": 0, "t": 154, "d": [9,1063], "a": 1 }, + { "px": [896,144], "src": [256,96], "f": 0, "t": 154, "d": [9,1064], "a": 1 }, + { "px": [912,144], "src": [256,96], "f": 0, "t": 154, "d": [9,1065], "a": 1 }, + { "px": [928,144], "src": [256,96], "f": 0, "t": 154, "d": [9,1066], "a": 1 }, + { "px": [944,144], "src": [256,96], "f": 0, "t": 154, "d": [9,1067], "a": 1 }, + { "px": [960,144], "src": [256,96], "f": 0, "t": 154, "d": [9,1068], "a": 1 }, + { "px": [992,144], "src": [256,96], "f": 0, "t": 154, "d": [9,1070], "a": 1 }, + { "px": [176,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1243], "a": 1 }, + { "px": [256,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1248], "a": 1 }, + { "px": [272,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1249], "a": 1 }, + { "px": [288,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1250], "a": 1 }, + { "px": [304,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1251], "a": 1 }, + { "px": [416,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1258], "a": 1 }, + { "px": [432,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1259], "a": 1 }, + { "px": [448,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1260], "a": 1 }, + { "px": [464,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1261], "a": 1 }, + { "px": [480,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1262], "a": 1 }, + { "px": [496,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1263], "a": 1 }, + { "px": [512,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1264], "a": 1 }, + { "px": [528,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1265], "a": 1 }, + { "px": [1616,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1333], "a": 1 }, + { "px": [1632,176], "src": [256,96], "f": 0, "t": 154, "d": [9,1334], "a": 1 }, + { "px": [96,192], "src": [256,96], "f": 0, "t": 154, "d": [9,1350], "a": 1 }, + { "px": [1072,208], "src": [256,96], "f": 0, "t": 154, "d": [9,1523], "a": 1 }, + { "px": [1088,208], "src": [256,96], "f": 0, "t": 154, "d": [9,1524], "a": 1 }, + { "px": [1152,208], "src": [256,96], "f": 0, "t": 154, "d": [9,1528], "a": 1 }, + { "px": [1168,208], "src": [256,96], "f": 0, "t": 154, "d": [9,1529], "a": 1 }, + { "px": [1184,208], "src": [256,96], "f": 0, "t": 154, "d": [9,1530], "a": 1 }, + { "px": [1200,208], "src": [256,96], "f": 0, "t": 154, "d": [9,1531], "a": 1 }, + { "px": [1248,208], "src": [256,96], "f": 0, "t": 154, "d": [9,1534], "a": 1 }, + { "px": [1264,208], "src": [256,96], "f": 0, "t": 154, "d": [9,1535], "a": 1 }, + { "px": [1312,208], "src": [256,96], "f": 0, "t": 154, "d": [9,1538], "a": 1 }, + { "px": [1376,208], "src": [256,96], "f": 0, "t": 154, "d": [9,1542], "a": 1 }, + { "px": [1392,208], "src": [256,96], "f": 0, "t": 154, "d": [9,1543], "a": 1 }, + { "px": [1680,0], "src": [224,128], "f": 1, "t": 198, "d": [10,105], "a": 1 }, + { "px": [1744,0], "src": [224,128], "f": 0, "t": 198, "d": [10,109], "a": 1 }, + { "px": [1680,16], "src": [224,128], "f": 1, "t": 198, "d": [10,217], "a": 1 }, + { "px": [1744,16], "src": [224,128], "f": 0, "t": 198, "d": [10,221], "a": 1 }, + { "px": [1056,32], "src": [224,128], "f": 1, "t": 198, "d": [10,290], "a": 1 }, + { "px": [1744,32], "src": [224,128], "f": 0, "t": 198, "d": [10,333], "a": 1 }, + { "px": [1744,48], "src": [224,128], "f": 0, "t": 198, "d": [10,445], "a": 1 }, + { "px": [640,64], "src": [224,128], "f": 1, "t": 198, "d": [10,488], "a": 1 }, + { "px": [1744,64], "src": [224,128], "f": 0, "t": 198, "d": [10,557], "a": 1 }, + { "px": [640,80], "src": [224,128], "f": 1, "t": 198, "d": [10,600], "a": 1 }, + { "px": [1744,80], "src": [224,128], "f": 0, "t": 198, "d": [10,669], "a": 1 }, + { "px": [640,96], "src": [224,128], "f": 1, "t": 198, "d": [10,712], "a": 1 }, + { "px": [640,112], "src": [224,128], "f": 1, "t": 198, "d": [10,824], "a": 1 }, + { "px": [1664,112], "src": [224,128], "f": 0, "t": 198, "d": [10,888], "a": 1 }, + { "px": [64,128], "src": [224,128], "f": 1, "t": 198, "d": [10,900], "a": 1 }, + { "px": [1664,128], "src": [224,128], "f": 0, "t": 198, "d": [10,1000], "a": 1 }, + { "px": [64,144], "src": [224,128], "f": 1, "t": 198, "d": [10,1012], "a": 1 }, + { "px": [1664,144], "src": [224,128], "f": 0, "t": 198, "d": [10,1112], "a": 1 }, + { "px": [64,160], "src": [224,128], "f": 1, "t": 198, "d": [10,1124], "a": 1 }, + { "px": [688,160], "src": [224,128], "f": 0, "t": 198, "d": [10,1163], "a": 1 }, + { "px": [1056,160], "src": [224,128], "f": 1, "t": 198, "d": [10,1186], "a": 1 }, + { "px": [1664,160], "src": [224,128], "f": 0, "t": 198, "d": [10,1224], "a": 1 }, + { "px": [1056,176], "src": [224,128], "f": 1, "t": 198, "d": [10,1298], "a": 1 }, + { "px": [1056,192], "src": [224,128], "f": 1, "t": 198, "d": [10,1410], "a": 1 }, + { "px": [1680,32], "src": [224,96], "f": 3, "t": 152, "d": [11,329], "a": 1 }, + { "px": [1664,96], "src": [224,96], "f": 0, "t": 152, "d": [11,776], "a": 1 }, + { "px": [80,112], "src": [224,96], "f": 3, "t": 152, "d": [11,789], "a": 1 }, + { "px": [144,112], "src": [224,96], "f": 2, "t": 152, "d": [11,793], "a": 1 }, + { "px": [80,176], "src": [224,96], "f": 1, "t": 152, "d": [11,1237], "a": 1 }, + { "px": [1056,16], "src": [224,96], "f": 0, "t": 152, "d": [14,178], "a": 1 }, + { "px": [1408,16], "src": [224,96], "f": 1, "t": 152, "d": [14,200], "a": 1 }, + { "px": [640,48], "src": [224,96], "f": 0, "t": 152, "d": [14,376], "a": 1 }, + { "px": [80,96], "src": [224,96], "f": 0, "t": 152, "d": [14,677], "a": 1 }, + { "px": [144,96], "src": [224,96], "f": 1, "t": 152, "d": [14,681], "a": 1 }, + { "px": [1744,96], "src": [224,96], "f": 3, "t": 152, "d": [14,781], "a": 1 }, + { "px": [64,112], "src": [224,96], "f": 0, "t": 152, "d": [14,788], "a": 1 }, + { "px": [160,112], "src": [224,96], "f": 1, "t": 152, "d": [14,794], "a": 1 }, + { "px": [64,176], "src": [224,96], "f": 2, "t": 152, "d": [14,1236], "a": 1 }, + { "px": [688,176], "src": [224,96], "f": 3, "t": 152, "d": [14,1275], "a": 1 }, + { "px": [1664,176], "src": [224,96], "f": 3, "t": 152, "d": [14,1336], "a": 1 }, + { "px": [80,192], "src": [224,96], "f": 2, "t": 152, "d": [14,1349], "a": 1 }, + { "px": [144,192], "src": [224,96], "f": 3, "t": 152, "d": [14,1353], "a": 1 }, + { "px": [1488,192], "src": [224,96], "f": 3, "t": 152, "d": [14,1437], "a": 1 }, + { "px": [1056,208], "src": [224,96], "f": 2, "t": 152, "d": [14,1522], "a": 1 }, + { "px": [1408,208], "src": [224,96], "f": 3, "t": 152, "d": [14,1544], "a": 1 }, + { "px": [1136,16], "src": [192,192], "f": 0, "t": 288, "d": [78,183], "a": 1 }, + { "px": [1200,16], "src": [160,192], "f": 0, "t": 286, "d": [78,187], "a": 1 }, + { "px": [1216,16], "src": [160,192], "f": 0, "t": 286, "d": [78,188], "a": 1 }, + { "px": [1232,16], "src": [160,192], "f": 0, "t": 286, "d": [78,189], "a": 1 }, + { "px": [1248,16], "src": [160,192], "f": 0, "t": 286, "d": [78,190], "a": 1 }, + { "px": [1312,16], "src": [160,192], "f": 0, "t": 286, "d": [78,194], "a": 1 }, + { "px": [1328,16], "src": [160,192], "f": 0, "t": 286, "d": [78,195], "a": 1 }, + { "px": [1344,16], "src": [160,192], "f": 0, "t": 286, "d": [78,196], "a": 1 }, + { "px": [1360,16], "src": [192,192], "f": 0, "t": 288, "d": [78,197], "a": 1 }, + { "px": [1376,16], "src": [192,192], "f": 0, "t": 288, "d": [78,198], "a": 1 }, + { "px": [1408,32], "src": [160,192], "f": 0, "t": 286, "d": [78,312], "a": 1 }, + { "px": [1424,32], "src": [192,192], "f": 0, "t": 288, "d": [78,313], "a": 1 }, + { "px": [1440,32], "src": [160,192], "f": 0, "t": 286, "d": [78,314], "a": 1 }, + { "px": [1536,32], "src": [160,192], "f": 0, "t": 286, "d": [78,320], "a": 1 }, + { "px": [1568,32], "src": [192,192], "f": 0, "t": 288, "d": [78,322], "a": 1 }, + { "px": [1664,32], "src": [192,192], "f": 0, "t": 288, "d": [78,328], "a": 1 }, + { "px": [656,48], "src": [192,192], "f": 0, "t": 288, "d": [78,377], "a": 1 }, + { "px": [704,48], "src": [192,192], "f": 0, "t": 288, "d": [78,380], "a": 1 }, + { "px": [736,48], "src": [160,192], "f": 0, "t": 286, "d": [78,382], "a": 1 }, + { "px": [752,48], "src": [160,192], "f": 0, "t": 286, "d": [78,383], "a": 1 }, + { "px": [768,48], "src": [192,192], "f": 0, "t": 288, "d": [78,384], "a": 1 }, + { "px": [816,48], "src": [192,192], "f": 0, "t": 288, "d": [78,387], "a": 1 }, + { "px": [832,48], "src": [160,192], "f": 0, "t": 286, "d": [78,388], "a": 1 }, + { "px": [960,48], "src": [160,192], "f": 0, "t": 286, "d": [78,396], "a": 1 }, + { "px": [992,48], "src": [192,192], "f": 0, "t": 288, "d": [78,398], "a": 1 }, + { "px": [1056,48], "src": [160,192], "f": 0, "t": 286, "d": [78,402], "a": 1 }, + { "px": [96,96], "src": [160,192], "f": 0, "t": 286, "d": [78,678], "a": 1 }, + { "px": [112,96], "src": [192,192], "f": 0, "t": 288, "d": [78,679], "a": 1 }, + { "px": [160,128], "src": [192,192], "f": 0, "t": 288, "d": [78,906], "a": 1 }, + { "px": [256,128], "src": [192,192], "f": 0, "t": 288, "d": [78,912], "a": 1 }, + { "px": [320,128], "src": [192,192], "f": 0, "t": 288, "d": [78,916], "a": 1 }, + { "px": [336,128], "src": [160,192], "f": 0, "t": 286, "d": [78,917], "a": 1 }, + { "px": [448,128], "src": [160,192], "f": 0, "t": 286, "d": [78,924], "a": 1 }, + { "px": [560,128], "src": [160,192], "f": 0, "t": 286, "d": [78,931], "a": 1 }, + { "px": [576,128], "src": [160,192], "f": 0, "t": 286, "d": [78,932], "a": 1 }, + { "px": [640,128], "src": [160,192], "f": 0, "t": 286, "d": [78,936], "a": 1 }, + { "px": [1680,96], "src": [32,0], "f": 0, "t": 2, "d": [80,777], "a": 1 }, + { "px": [1696,96], "src": [32,0], "f": 0, "t": 2, "d": [80,778], "a": 1 }, + { "px": [1712,96], "src": [32,0], "f": 0, "t": 2, "d": [80,779], "a": 1 }, + { "px": [1728,96], "src": [32,0], "f": 0, "t": 2, "d": [80,780], "a": 1 }, + { "px": [688,144], "src": [32,0], "f": 0, "t": 2, "d": [80,1051], "a": 1 }, + { "px": [704,144], "src": [32,0], "f": 0, "t": 2, "d": [80,1052], "a": 1 }, + { "px": [720,144], "src": [32,0], "f": 0, "t": 2, "d": [80,1053], "a": 1 }, + { "px": [736,144], "src": [32,0], "f": 0, "t": 2, "d": [80,1054], "a": 1 }, + { "px": [800,144], "src": [32,0], "f": 0, "t": 2, "d": [80,1058], "a": 1 }, + { "px": [816,144], "src": [32,0], "f": 0, "t": 2, "d": [80,1059], "a": 1 }, + { "px": [832,144], "src": [32,0], "f": 0, "t": 2, "d": [80,1060], "a": 1 }, + { "px": [976,144], "src": [32,0], "f": 0, "t": 2, "d": [80,1069], "a": 1 }, + { "px": [1008,144], "src": [32,0], "f": 0, "t": 2, "d": [80,1071], "a": 1 }, + { "px": [1024,144], "src": [32,0], "f": 0, "t": 2, "d": [80,1072], "a": 1 }, + { "px": [1040,144], "src": [32,0], "f": 0, "t": 2, "d": [80,1073], "a": 1 }, + { "px": [1056,144], "src": [32,0], "f": 0, "t": 2, "d": [80,1074], "a": 1 }, + { "px": [144,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1241], "a": 1 }, + { "px": [160,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1242], "a": 1 }, + { "px": [192,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1244], "a": 1 }, + { "px": [208,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1245], "a": 1 }, + { "px": [224,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1246], "a": 1 }, + { "px": [240,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1247], "a": 1 }, + { "px": [320,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1252], "a": 1 }, + { "px": [336,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1253], "a": 1 }, + { "px": [352,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1254], "a": 1 }, + { "px": [368,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1255], "a": 1 }, + { "px": [384,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1256], "a": 1 }, + { "px": [400,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1257], "a": 1 }, + { "px": [544,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1266], "a": 1 }, + { "px": [560,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1267], "a": 1 }, + { "px": [576,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1268], "a": 1 }, + { "px": [592,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1269], "a": 1 }, + { "px": [608,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1270], "a": 1 }, + { "px": [624,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1271], "a": 1 }, + { "px": [640,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1272], "a": 1 }, + { "px": [656,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1273], "a": 1 }, + { "px": [672,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1274], "a": 1 }, + { "px": [1488,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1325], "a": 1 }, + { "px": [1504,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1326], "a": 1 }, + { "px": [1520,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1327], "a": 1 }, + { "px": [1536,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1328], "a": 1 }, + { "px": [1552,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1329], "a": 1 }, + { "px": [1568,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1330], "a": 1 }, + { "px": [1584,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1331], "a": 1 }, + { "px": [1600,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1332], "a": 1 }, + { "px": [1648,176], "src": [32,0], "f": 0, "t": 2, "d": [80,1335], "a": 1 }, + { "px": [112,192], "src": [32,0], "f": 0, "t": 2, "d": [80,1351], "a": 1 }, + { "px": [128,192], "src": [32,0], "f": 0, "t": 2, "d": [80,1352], "a": 1 }, + { "px": [1408,192], "src": [32,0], "f": 0, "t": 2, "d": [80,1432], "a": 1 }, + { "px": [1424,192], "src": [32,0], "f": 0, "t": 2, "d": [80,1433], "a": 1 }, + { "px": [1440,192], "src": [32,0], "f": 0, "t": 2, "d": [80,1434], "a": 1 }, + { "px": [1456,192], "src": [32,0], "f": 0, "t": 2, "d": [80,1435], "a": 1 }, + { "px": [1472,192], "src": [32,0], "f": 0, "t": 2, "d": [80,1436], "a": 1 }, + { "px": [1104,208], "src": [32,0], "f": 0, "t": 2, "d": [80,1525], "a": 1 }, + { "px": [1120,208], "src": [32,0], "f": 0, "t": 2, "d": [80,1526], "a": 1 }, + { "px": [1136,208], "src": [32,0], "f": 0, "t": 2, "d": [80,1527], "a": 1 }, + { "px": [1216,208], "src": [32,0], "f": 0, "t": 2, "d": [80,1532], "a": 1 }, + { "px": [1232,208], "src": [32,0], "f": 0, "t": 2, "d": [80,1533], "a": 1 }, + { "px": [1280,208], "src": [32,0], "f": 0, "t": 2, "d": [80,1536], "a": 1 }, + { "px": [1296,208], "src": [32,0], "f": 0, "t": 2, "d": [80,1537], "a": 1 }, + { "px": [1328,208], "src": [32,0], "f": 0, "t": 2, "d": [80,1539], "a": 1 }, + { "px": [1344,208], "src": [32,0], "f": 0, "t": 2, "d": [80,1540], "a": 1 }, + { "px": [1360,208], "src": [32,0], "f": 0, "t": 2, "d": [80,1541], "a": 1 }, + { "px": [1680,80], "src": [0,96], "f": 0, "t": 138, "d": [110,665], "a": 1 }, + { "px": [1696,80], "src": [32,96], "f": 0, "t": 140, "d": [110,666], "a": 1 }, + { "px": [1728,80], "src": [0,96], "f": 0, "t": 138, "d": [110,668], "a": 1 }, + { "px": [688,128], "src": [32,96], "f": 0, "t": 140, "d": [110,939], "a": 1 }, + { "px": [704,128], "src": [32,96], "f": 0, "t": 140, "d": [110,940], "a": 1 }, + { "px": [720,128], "src": [32,96], "f": 0, "t": 140, "d": [110,941], "a": 1 }, + { "px": [736,128], "src": [32,96], "f": 0, "t": 140, "d": [110,942], "a": 1 }, + { "px": [768,128], "src": [32,96], "f": 0, "t": 140, "d": [110,944], "a": 1 }, + { "px": [800,128], "src": [0,96], "f": 0, "t": 138, "d": [110,946], "a": 1 }, + { "px": [832,128], "src": [0,96], "f": 0, "t": 138, "d": [110,948], "a": 1 }, + { "px": [864,128], "src": [32,96], "f": 0, "t": 140, "d": [110,950], "a": 1 }, + { "px": [880,128], "src": [32,96], "f": 0, "t": 140, "d": [110,951], "a": 1 }, + { "px": [896,128], "src": [0,96], "f": 0, "t": 138, "d": [110,952], "a": 1 }, + { "px": [912,128], "src": [0,96], "f": 0, "t": 138, "d": [110,953], "a": 1 }, + { "px": [944,128], "src": [32,96], "f": 0, "t": 140, "d": [110,955], "a": 1 }, + { "px": [1024,128], "src": [32,96], "f": 0, "t": 140, "d": [110,960], "a": 1 }, + { "px": [1040,128], "src": [0,96], "f": 0, "t": 138, "d": [110,961], "a": 1 }, + { "px": [1056,128], "src": [0,96], "f": 0, "t": 138, "d": [110,962], "a": 1 }, + { "px": [144,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1129], "a": 1 }, + { "px": [160,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1130], "a": 1 }, + { "px": [176,160], "src": [32,96], "f": 0, "t": 140, "d": [110,1131], "a": 1 }, + { "px": [192,160], "src": [32,96], "f": 0, "t": 140, "d": [110,1132], "a": 1 }, + { "px": [208,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1133], "a": 1 }, + { "px": [224,160], "src": [32,96], "f": 0, "t": 140, "d": [110,1134], "a": 1 }, + { "px": [320,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1140], "a": 1 }, + { "px": [336,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1141], "a": 1 }, + { "px": [352,160], "src": [32,96], "f": 0, "t": 140, "d": [110,1142], "a": 1 }, + { "px": [432,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1147], "a": 1 }, + { "px": [448,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1148], "a": 1 }, + { "px": [464,160], "src": [32,96], "f": 0, "t": 140, "d": [110,1149], "a": 1 }, + { "px": [496,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1151], "a": 1 }, + { "px": [528,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1153], "a": 1 }, + { "px": [560,160], "src": [32,96], "f": 0, "t": 140, "d": [110,1155], "a": 1 }, + { "px": [624,160], "src": [32,96], "f": 0, "t": 140, "d": [110,1159], "a": 1 }, + { "px": [656,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1161], "a": 1 }, + { "px": [672,160], "src": [32,96], "f": 0, "t": 140, "d": [110,1162], "a": 1 }, + { "px": [1488,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1213], "a": 1 }, + { "px": [1520,160], "src": [32,96], "f": 0, "t": 140, "d": [110,1215], "a": 1 }, + { "px": [1536,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1216], "a": 1 }, + { "px": [1600,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1220], "a": 1 }, + { "px": [1616,160], "src": [32,96], "f": 0, "t": 140, "d": [110,1221], "a": 1 }, + { "px": [1632,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1222], "a": 1 }, + { "px": [1648,160], "src": [0,96], "f": 0, "t": 138, "d": [110,1223], "a": 1 }, + { "px": [96,176], "src": [0,96], "f": 0, "t": 138, "d": [110,1238], "a": 1 }, + { "px": [112,176], "src": [32,96], "f": 0, "t": 140, "d": [110,1239], "a": 1 }, + { "px": [1408,176], "src": [32,96], "f": 0, "t": 140, "d": [110,1320], "a": 1 }, + { "px": [1424,176], "src": [32,96], "f": 0, "t": 140, "d": [110,1321], "a": 1 }, + { "px": [1456,176], "src": [32,96], "f": 0, "t": 140, "d": [110,1323], "a": 1 }, + { "px": [1472,176], "src": [32,96], "f": 0, "t": 140, "d": [110,1324], "a": 1 }, + { "px": [1072,192], "src": [0,96], "f": 0, "t": 138, "d": [110,1411], "a": 1 }, + { "px": [1088,192], "src": [0,96], "f": 0, "t": 138, "d": [110,1412], "a": 1 }, + { "px": [1120,192], "src": [32,96], "f": 0, "t": 140, "d": [110,1414], "a": 1 }, + { "px": [1168,192], "src": [0,96], "f": 0, "t": 138, "d": [110,1417], "a": 1 }, + { "px": [1216,192], "src": [32,96], "f": 0, "t": 140, "d": [110,1420], "a": 1 }, + { "px": [1264,192], "src": [32,96], "f": 0, "t": 140, "d": [110,1423], "a": 1 }, + { "px": [1280,192], "src": [32,96], "f": 0, "t": 140, "d": [110,1424], "a": 1 }, + { "px": [1296,192], "src": [32,96], "f": 0, "t": 140, "d": [110,1425], "a": 1 }, + { "px": [1328,192], "src": [32,96], "f": 0, "t": 140, "d": [110,1427], "a": 1 }, + { "px": [1376,192], "src": [0,96], "f": 0, "t": 138, "d": [110,1430], "a": 1 } + ], + "seed": 9804469, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 112, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a3750a20-66b0-11ec-9cd7-b5f836f73b67", + "levelId": 84, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [1712,0], "src": [320,272], "f": 0, "t": 411, "d": [108,107], "a": 1 }, + { "px": [1712,16], "src": [320,272], "f": 0, "t": 411, "d": [108,219], "a": 1 }, + { "px": [1088,32], "src": [320,272], "f": 0, "t": 411, "d": [108,292], "a": 1 }, + { "px": [1104,32], "src": [320,272], "f": 0, "t": 411, "d": [108,293], "a": 1 }, + { "px": [1136,32], "src": [320,272], "f": 0, "t": 411, "d": [108,295], "a": 1 }, + { "px": [1168,32], "src": [320,272], "f": 0, "t": 411, "d": [108,297], "a": 1 }, + { "px": [1200,32], "src": [320,272], "f": 0, "t": 411, "d": [108,299], "a": 1 }, + { "px": [1216,32], "src": [320,272], "f": 0, "t": 411, "d": [108,300], "a": 1 }, + { "px": [1232,32], "src": [320,272], "f": 0, "t": 411, "d": [108,301], "a": 1 }, + { "px": [1248,32], "src": [320,272], "f": 0, "t": 411, "d": [108,302], "a": 1 }, + { "px": [1264,32], "src": [320,272], "f": 0, "t": 411, "d": [108,303], "a": 1 }, + { "px": [1280,32], "src": [320,272], "f": 0, "t": 411, "d": [108,304], "a": 1 }, + { "px": [1296,32], "src": [320,272], "f": 0, "t": 411, "d": [108,305], "a": 1 }, + { "px": [1312,32], "src": [320,272], "f": 0, "t": 411, "d": [108,306], "a": 1 }, + { "px": [1328,32], "src": [320,272], "f": 0, "t": 411, "d": [108,307], "a": 1 }, + { "px": [1344,32], "src": [320,272], "f": 0, "t": 411, "d": [108,308], "a": 1 }, + { "px": [1088,48], "src": [320,272], "f": 0, "t": 411, "d": [108,404], "a": 1 }, + { "px": [1104,48], "src": [320,272], "f": 0, "t": 411, "d": [108,405], "a": 1 }, + { "px": [1120,48], "src": [320,272], "f": 0, "t": 411, "d": [108,406], "a": 1 }, + { "px": [1136,48], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [1152,48], "src": [320,272], "f": 0, "t": 411, "d": [108,408], "a": 1 }, + { "px": [1168,48], "src": [320,272], "f": 0, "t": 411, "d": [108,409], "a": 1 }, + { "px": [1184,48], "src": [320,272], "f": 0, "t": 411, "d": [108,410], "a": 1 }, + { "px": [1200,48], "src": [320,272], "f": 0, "t": 411, "d": [108,411], "a": 1 }, + { "px": [1216,48], "src": [320,272], "f": 0, "t": 411, "d": [108,412], "a": 1 }, + { "px": [1232,48], "src": [320,272], "f": 0, "t": 411, "d": [108,413], "a": 1 }, + { "px": [1248,48], "src": [320,272], "f": 0, "t": 411, "d": [108,414], "a": 1 }, + { "px": [1264,48], "src": [320,272], "f": 0, "t": 411, "d": [108,415], "a": 1 }, + { "px": [1280,48], "src": [320,272], "f": 0, "t": 411, "d": [108,416], "a": 1 }, + { "px": [1296,48], "src": [320,272], "f": 0, "t": 411, "d": [108,417], "a": 1 }, + { "px": [1312,48], "src": [320,272], "f": 0, "t": 411, "d": [108,418], "a": 1 }, + { "px": [1328,48], "src": [320,272], "f": 0, "t": 411, "d": [108,419], "a": 1 }, + { "px": [1344,48], "src": [320,272], "f": 0, "t": 411, "d": [108,420], "a": 1 }, + { "px": [1360,48], "src": [320,272], "f": 0, "t": 411, "d": [108,421], "a": 1 }, + { "px": [1376,48], "src": [320,272], "f": 0, "t": 411, "d": [108,422], "a": 1 }, + { "px": [1392,48], "src": [320,272], "f": 0, "t": 411, "d": [108,423], "a": 1 }, + { "px": [1408,48], "src": [320,272], "f": 0, "t": 411, "d": [108,424], "a": 1 }, + { "px": [1424,48], "src": [320,272], "f": 0, "t": 411, "d": [108,425], "a": 1 }, + { "px": [1440,48], "src": [320,272], "f": 0, "t": 411, "d": [108,426], "a": 1 }, + { "px": [1456,48], "src": [320,272], "f": 0, "t": 411, "d": [108,427], "a": 1 }, + { "px": [1472,48], "src": [320,272], "f": 0, "t": 411, "d": [108,428], "a": 1 }, + { "px": [1488,48], "src": [320,272], "f": 0, "t": 411, "d": [108,429], "a": 1 }, + { "px": [1504,48], "src": [320,272], "f": 0, "t": 411, "d": [108,430], "a": 1 }, + { "px": [1520,48], "src": [320,272], "f": 0, "t": 411, "d": [108,431], "a": 1 }, + { "px": [1536,48], "src": [320,272], "f": 0, "t": 411, "d": [108,432], "a": 1 }, + { "px": [1552,48], "src": [320,272], "f": 0, "t": 411, "d": [108,433], "a": 1 }, + { "px": [1584,48], "src": [320,272], "f": 0, "t": 411, "d": [108,435], "a": 1 }, + { "px": [1600,48], "src": [320,272], "f": 0, "t": 411, "d": [108,436], "a": 1 }, + { "px": [1616,48], "src": [320,272], "f": 0, "t": 411, "d": [108,437], "a": 1 }, + { "px": [1648,48], "src": [320,272], "f": 0, "t": 411, "d": [108,439], "a": 1 }, + { "px": [1664,48], "src": [320,272], "f": 0, "t": 411, "d": [108,440], "a": 1 }, + { "px": [1680,48], "src": [320,272], "f": 0, "t": 411, "d": [108,441], "a": 1 }, + { "px": [1696,48], "src": [320,272], "f": 0, "t": 411, "d": [108,442], "a": 1 }, + { "px": [1712,48], "src": [320,272], "f": 0, "t": 411, "d": [108,443], "a": 1 }, + { "px": [672,64], "src": [320,272], "f": 0, "t": 411, "d": [108,490], "a": 1 }, + { "px": [688,64], "src": [320,272], "f": 0, "t": 411, "d": [108,491], "a": 1 }, + { "px": [704,64], "src": [320,272], "f": 0, "t": 411, "d": [108,492], "a": 1 }, + { "px": [720,64], "src": [320,272], "f": 0, "t": 411, "d": [108,493], "a": 1 }, + { "px": [736,64], "src": [320,272], "f": 0, "t": 411, "d": [108,494], "a": 1 }, + { "px": [752,64], "src": [320,272], "f": 0, "t": 411, "d": [108,495], "a": 1 }, + { "px": [768,64], "src": [320,272], "f": 0, "t": 411, "d": [108,496], "a": 1 }, + { "px": [784,64], "src": [320,272], "f": 0, "t": 411, "d": [108,497], "a": 1 }, + { "px": [816,64], "src": [320,272], "f": 0, "t": 411, "d": [108,499], "a": 1 }, + { "px": [832,64], "src": [320,272], "f": 0, "t": 411, "d": [108,500], "a": 1 }, + { "px": [848,64], "src": [320,272], "f": 0, "t": 411, "d": [108,501], "a": 1 }, + { "px": [864,64], "src": [320,272], "f": 0, "t": 411, "d": [108,502], "a": 1 }, + { "px": [912,64], "src": [320,272], "f": 0, "t": 411, "d": [108,505], "a": 1 }, + { "px": [944,64], "src": [320,272], "f": 0, "t": 411, "d": [108,507], "a": 1 }, + { "px": [960,64], "src": [320,272], "f": 0, "t": 411, "d": [108,508], "a": 1 }, + { "px": [976,64], "src": [320,272], "f": 0, "t": 411, "d": [108,509], "a": 1 }, + { "px": [992,64], "src": [320,272], "f": 0, "t": 411, "d": [108,510], "a": 1 }, + { "px": [1008,64], "src": [320,272], "f": 0, "t": 411, "d": [108,511], "a": 1 }, + { "px": [1024,64], "src": [320,272], "f": 0, "t": 411, "d": [108,512], "a": 1 }, + { "px": [1056,64], "src": [320,272], "f": 0, "t": 411, "d": [108,514], "a": 1 }, + { "px": [1072,64], "src": [320,272], "f": 0, "t": 411, "d": [108,515], "a": 1 }, + { "px": [1088,64], "src": [320,272], "f": 0, "t": 411, "d": [108,516], "a": 1 }, + { "px": [1104,64], "src": [320,272], "f": 0, "t": 411, "d": [108,517], "a": 1 }, + { "px": [1120,64], "src": [320,272], "f": 0, "t": 411, "d": [108,518], "a": 1 }, + { "px": [1136,64], "src": [320,272], "f": 0, "t": 411, "d": [108,519], "a": 1 }, + { "px": [1152,64], "src": [320,272], "f": 0, "t": 411, "d": [108,520], "a": 1 }, + { "px": [1168,64], "src": [320,272], "f": 0, "t": 411, "d": [108,521], "a": 1 }, + { "px": [1184,64], "src": [320,272], "f": 0, "t": 411, "d": [108,522], "a": 1 }, + { "px": [1216,64], "src": [320,272], "f": 0, "t": 411, "d": [108,524], "a": 1 }, + { "px": [1232,64], "src": [320,272], "f": 0, "t": 411, "d": [108,525], "a": 1 }, + { "px": [1248,64], "src": [320,272], "f": 0, "t": 411, "d": [108,526], "a": 1 }, + { "px": [1264,64], "src": [320,272], "f": 0, "t": 411, "d": [108,527], "a": 1 }, + { "px": [1280,64], "src": [320,272], "f": 0, "t": 411, "d": [108,528], "a": 1 }, + { "px": [1296,64], "src": [320,272], "f": 0, "t": 411, "d": [108,529], "a": 1 }, + { "px": [1312,64], "src": [320,272], "f": 0, "t": 411, "d": [108,530], "a": 1 }, + { "px": [1328,64], "src": [320,272], "f": 0, "t": 411, "d": [108,531], "a": 1 }, + { "px": [1344,64], "src": [320,272], "f": 0, "t": 411, "d": [108,532], "a": 1 }, + { "px": [1360,64], "src": [320,272], "f": 0, "t": 411, "d": [108,533], "a": 1 }, + { "px": [1376,64], "src": [320,272], "f": 0, "t": 411, "d": [108,534], "a": 1 }, + { "px": [1392,64], "src": [320,272], "f": 0, "t": 411, "d": [108,535], "a": 1 }, + { "px": [1408,64], "src": [320,272], "f": 0, "t": 411, "d": [108,536], "a": 1 }, + { "px": [1424,64], "src": [320,272], "f": 0, "t": 411, "d": [108,537], "a": 1 }, + { "px": [1440,64], "src": [320,272], "f": 0, "t": 411, "d": [108,538], "a": 1 }, + { "px": [1456,64], "src": [320,272], "f": 0, "t": 411, "d": [108,539], "a": 1 }, + { "px": [1472,64], "src": [320,272], "f": 0, "t": 411, "d": [108,540], "a": 1 }, + { "px": [1488,64], "src": [320,272], "f": 0, "t": 411, "d": [108,541], "a": 1 }, + { "px": [1504,64], "src": [320,272], "f": 0, "t": 411, "d": [108,542], "a": 1 }, + { "px": [1520,64], "src": [320,272], "f": 0, "t": 411, "d": [108,543], "a": 1 }, + { "px": [1536,64], "src": [320,272], "f": 0, "t": 411, "d": [108,544], "a": 1 }, + { "px": [1552,64], "src": [320,272], "f": 0, "t": 411, "d": [108,545], "a": 1 }, + { "px": [1568,64], "src": [320,272], "f": 0, "t": 411, "d": [108,546], "a": 1 }, + { "px": [1584,64], "src": [320,272], "f": 0, "t": 411, "d": [108,547], "a": 1 }, + { "px": [1600,64], "src": [320,272], "f": 0, "t": 411, "d": [108,548], "a": 1 }, + { "px": [1616,64], "src": [320,272], "f": 0, "t": 411, "d": [108,549], "a": 1 }, + { "px": [1632,64], "src": [320,272], "f": 0, "t": 411, "d": [108,550], "a": 1 }, + { "px": [1648,64], "src": [320,272], "f": 0, "t": 411, "d": [108,551], "a": 1 }, + { "px": [1664,64], "src": [320,272], "f": 0, "t": 411, "d": [108,552], "a": 1 }, + { "px": [1680,64], "src": [320,272], "f": 0, "t": 411, "d": [108,553], "a": 1 }, + { "px": [1696,64], "src": [320,272], "f": 0, "t": 411, "d": [108,554], "a": 1 }, + { "px": [1712,64], "src": [320,272], "f": 0, "t": 411, "d": [108,555], "a": 1 }, + { "px": [672,80], "src": [320,272], "f": 0, "t": 411, "d": [108,602], "a": 1 }, + { "px": [688,80], "src": [320,272], "f": 0, "t": 411, "d": [108,603], "a": 1 }, + { "px": [704,80], "src": [320,272], "f": 0, "t": 411, "d": [108,604], "a": 1 }, + { "px": [720,80], "src": [320,272], "f": 0, "t": 411, "d": [108,605], "a": 1 }, + { "px": [736,80], "src": [320,272], "f": 0, "t": 411, "d": [108,606], "a": 1 }, + { "px": [752,80], "src": [320,272], "f": 0, "t": 411, "d": [108,607], "a": 1 }, + { "px": [768,80], "src": [320,272], "f": 0, "t": 411, "d": [108,608], "a": 1 }, + { "px": [784,80], "src": [320,272], "f": 0, "t": 411, "d": [108,609], "a": 1 }, + { "px": [800,80], "src": [320,272], "f": 0, "t": 411, "d": [108,610], "a": 1 }, + { "px": [816,80], "src": [320,272], "f": 0, "t": 411, "d": [108,611], "a": 1 }, + { "px": [832,80], "src": [320,272], "f": 0, "t": 411, "d": [108,612], "a": 1 }, + { "px": [848,80], "src": [320,272], "f": 0, "t": 411, "d": [108,613], "a": 1 }, + { "px": [864,80], "src": [320,272], "f": 0, "t": 411, "d": [108,614], "a": 1 }, + { "px": [880,80], "src": [320,272], "f": 0, "t": 411, "d": [108,615], "a": 1 }, + { "px": [896,80], "src": [320,272], "f": 0, "t": 411, "d": [108,616], "a": 1 }, + { "px": [912,80], "src": [320,272], "f": 0, "t": 411, "d": [108,617], "a": 1 }, + { "px": [928,80], "src": [320,272], "f": 0, "t": 411, "d": [108,618], "a": 1 }, + { "px": [944,80], "src": [320,272], "f": 0, "t": 411, "d": [108,619], "a": 1 }, + { "px": [960,80], "src": [320,272], "f": 0, "t": 411, "d": [108,620], "a": 1 }, + { "px": [976,80], "src": [320,272], "f": 0, "t": 411, "d": [108,621], "a": 1 }, + { "px": [992,80], "src": [320,272], "f": 0, "t": 411, "d": [108,622], "a": 1 }, + { "px": [1008,80], "src": [320,272], "f": 0, "t": 411, "d": [108,623], "a": 1 }, + { "px": [1024,80], "src": [320,272], "f": 0, "t": 411, "d": [108,624], "a": 1 }, + { "px": [1040,80], "src": [320,272], "f": 0, "t": 411, "d": [108,625], "a": 1 }, + { "px": [1056,80], "src": [320,272], "f": 0, "t": 411, "d": [108,626], "a": 1 }, + { "px": [1072,80], "src": [320,272], "f": 0, "t": 411, "d": [108,627], "a": 1 }, + { "px": [1088,80], "src": [320,272], "f": 0, "t": 411, "d": [108,628], "a": 1 }, + { "px": [1104,80], "src": [320,272], "f": 0, "t": 411, "d": [108,629], "a": 1 }, + { "px": [1120,80], "src": [320,272], "f": 0, "t": 411, "d": [108,630], "a": 1 }, + { "px": [1136,80], "src": [320,272], "f": 0, "t": 411, "d": [108,631], "a": 1 }, + { "px": [1152,80], "src": [320,272], "f": 0, "t": 411, "d": [108,632], "a": 1 }, + { "px": [1168,80], "src": [320,272], "f": 0, "t": 411, "d": [108,633], "a": 1 }, + { "px": [1184,80], "src": [320,272], "f": 0, "t": 411, "d": [108,634], "a": 1 }, + { "px": [1200,80], "src": [320,272], "f": 0, "t": 411, "d": [108,635], "a": 1 }, + { "px": [1216,80], "src": [320,272], "f": 0, "t": 411, "d": [108,636], "a": 1 }, + { "px": [1232,80], "src": [320,272], "f": 0, "t": 411, "d": [108,637], "a": 1 }, + { "px": [1248,80], "src": [320,272], "f": 0, "t": 411, "d": [108,638], "a": 1 }, + { "px": [1264,80], "src": [320,272], "f": 0, "t": 411, "d": [108,639], "a": 1 }, + { "px": [1280,80], "src": [320,272], "f": 0, "t": 411, "d": [108,640], "a": 1 }, + { "px": [1296,80], "src": [320,272], "f": 0, "t": 411, "d": [108,641], "a": 1 }, + { "px": [1312,80], "src": [320,272], "f": 0, "t": 411, "d": [108,642], "a": 1 }, + { "px": [1328,80], "src": [320,272], "f": 0, "t": 411, "d": [108,643], "a": 1 }, + { "px": [1344,80], "src": [320,272], "f": 0, "t": 411, "d": [108,644], "a": 1 }, + { "px": [1360,80], "src": [320,272], "f": 0, "t": 411, "d": [108,645], "a": 1 }, + { "px": [1376,80], "src": [320,272], "f": 0, "t": 411, "d": [108,646], "a": 1 }, + { "px": [1392,80], "src": [320,272], "f": 0, "t": 411, "d": [108,647], "a": 1 }, + { "px": [1408,80], "src": [320,272], "f": 0, "t": 411, "d": [108,648], "a": 1 }, + { "px": [1424,80], "src": [320,272], "f": 0, "t": 411, "d": [108,649], "a": 1 }, + { "px": [1440,80], "src": [320,272], "f": 0, "t": 411, "d": [108,650], "a": 1 }, + { "px": [1456,80], "src": [320,272], "f": 0, "t": 411, "d": [108,651], "a": 1 }, + { "px": [1472,80], "src": [320,272], "f": 0, "t": 411, "d": [108,652], "a": 1 }, + { "px": [1488,80], "src": [320,272], "f": 0, "t": 411, "d": [108,653], "a": 1 }, + { "px": [1504,80], "src": [320,272], "f": 0, "t": 411, "d": [108,654], "a": 1 }, + { "px": [1520,80], "src": [320,272], "f": 0, "t": 411, "d": [108,655], "a": 1 }, + { "px": [1536,80], "src": [320,272], "f": 0, "t": 411, "d": [108,656], "a": 1 }, + { "px": [1552,80], "src": [320,272], "f": 0, "t": 411, "d": [108,657], "a": 1 }, + { "px": [1568,80], "src": [320,272], "f": 0, "t": 411, "d": [108,658], "a": 1 }, + { "px": [1584,80], "src": [320,272], "f": 0, "t": 411, "d": [108,659], "a": 1 }, + { "px": [1600,80], "src": [320,272], "f": 0, "t": 411, "d": [108,660], "a": 1 }, + { "px": [1616,80], "src": [320,272], "f": 0, "t": 411, "d": [108,661], "a": 1 }, + { "px": [1632,80], "src": [320,272], "f": 0, "t": 411, "d": [108,662], "a": 1 }, + { "px": [1648,80], "src": [320,272], "f": 0, "t": 411, "d": [108,663], "a": 1 }, + { "px": [1664,80], "src": [320,272], "f": 0, "t": 411, "d": [108,664], "a": 1 }, + { "px": [1680,80], "src": [320,272], "f": 0, "t": 411, "d": [108,665], "a": 1 }, + { "px": [1696,80], "src": [320,272], "f": 0, "t": 411, "d": [108,666], "a": 1 }, + { "px": [1712,80], "src": [320,272], "f": 0, "t": 411, "d": [108,667], "a": 1 }, + { "px": [672,96], "src": [320,272], "f": 0, "t": 411, "d": [108,714], "a": 1 }, + { "px": [688,96], "src": [320,272], "f": 0, "t": 411, "d": [108,715], "a": 1 }, + { "px": [704,96], "src": [320,272], "f": 0, "t": 411, "d": [108,716], "a": 1 }, + { "px": [720,96], "src": [320,272], "f": 0, "t": 411, "d": [108,717], "a": 1 }, + { "px": [736,96], "src": [320,272], "f": 0, "t": 411, "d": [108,718], "a": 1 }, + { "px": [752,96], "src": [320,272], "f": 0, "t": 411, "d": [108,719], "a": 1 }, + { "px": [768,96], "src": [320,272], "f": 0, "t": 411, "d": [108,720], "a": 1 }, + { "px": [784,96], "src": [320,272], "f": 0, "t": 411, "d": [108,721], "a": 1 }, + { "px": [816,96], "src": [320,272], "f": 0, "t": 411, "d": [108,723], "a": 1 }, + { "px": [832,96], "src": [320,272], "f": 0, "t": 411, "d": [108,724], "a": 1 }, + { "px": [848,96], "src": [320,272], "f": 0, "t": 411, "d": [108,725], "a": 1 }, + { "px": [864,96], "src": [320,272], "f": 0, "t": 411, "d": [108,726], "a": 1 }, + { "px": [880,96], "src": [320,272], "f": 0, "t": 411, "d": [108,727], "a": 1 }, + { "px": [896,96], "src": [320,272], "f": 0, "t": 411, "d": [108,728], "a": 1 }, + { "px": [912,96], "src": [320,272], "f": 0, "t": 411, "d": [108,729], "a": 1 }, + { "px": [928,96], "src": [320,272], "f": 0, "t": 411, "d": [108,730], "a": 1 }, + { "px": [944,96], "src": [320,272], "f": 0, "t": 411, "d": [108,731], "a": 1 }, + { "px": [960,96], "src": [320,272], "f": 0, "t": 411, "d": [108,732], "a": 1 }, + { "px": [976,96], "src": [320,272], "f": 0, "t": 411, "d": [108,733], "a": 1 }, + { "px": [1008,96], "src": [320,272], "f": 0, "t": 411, "d": [108,735], "a": 1 }, + { "px": [1024,96], "src": [320,272], "f": 0, "t": 411, "d": [108,736], "a": 1 }, + { "px": [1040,96], "src": [320,272], "f": 0, "t": 411, "d": [108,737], "a": 1 }, + { "px": [1056,96], "src": [320,272], "f": 0, "t": 411, "d": [108,738], "a": 1 }, + { "px": [1072,96], "src": [320,272], "f": 0, "t": 411, "d": [108,739], "a": 1 }, + { "px": [1088,96], "src": [320,272], "f": 0, "t": 411, "d": [108,740], "a": 1 }, + { "px": [1104,96], "src": [320,272], "f": 0, "t": 411, "d": [108,741], "a": 1 }, + { "px": [1120,96], "src": [320,272], "f": 0, "t": 411, "d": [108,742], "a": 1 }, + { "px": [1152,96], "src": [320,272], "f": 0, "t": 411, "d": [108,744], "a": 1 }, + { "px": [1168,96], "src": [320,272], "f": 0, "t": 411, "d": [108,745], "a": 1 }, + { "px": [1200,96], "src": [320,272], "f": 0, "t": 411, "d": [108,747], "a": 1 }, + { "px": [1216,96], "src": [320,272], "f": 0, "t": 411, "d": [108,748], "a": 1 }, + { "px": [1248,96], "src": [320,272], "f": 0, "t": 411, "d": [108,750], "a": 1 }, + { "px": [1264,96], "src": [320,272], "f": 0, "t": 411, "d": [108,751], "a": 1 }, + { "px": [1296,96], "src": [320,272], "f": 0, "t": 411, "d": [108,753], "a": 1 }, + { "px": [1312,96], "src": [320,272], "f": 0, "t": 411, "d": [108,754], "a": 1 }, + { "px": [1344,96], "src": [320,272], "f": 0, "t": 411, "d": [108,756], "a": 1 }, + { "px": [1360,96], "src": [320,272], "f": 0, "t": 411, "d": [108,757], "a": 1 }, + { "px": [1376,96], "src": [320,272], "f": 0, "t": 411, "d": [108,758], "a": 1 }, + { "px": [1392,96], "src": [320,272], "f": 0, "t": 411, "d": [108,759], "a": 1 }, + { "px": [1408,96], "src": [320,272], "f": 0, "t": 411, "d": [108,760], "a": 1 }, + { "px": [1440,96], "src": [320,272], "f": 0, "t": 411, "d": [108,762], "a": 1 }, + { "px": [1456,96], "src": [320,272], "f": 0, "t": 411, "d": [108,763], "a": 1 }, + { "px": [1472,96], "src": [320,272], "f": 0, "t": 411, "d": [108,764], "a": 1 }, + { "px": [1488,96], "src": [320,272], "f": 0, "t": 411, "d": [108,765], "a": 1 }, + { "px": [1504,96], "src": [320,272], "f": 0, "t": 411, "d": [108,766], "a": 1 }, + { "px": [1520,96], "src": [320,272], "f": 0, "t": 411, "d": [108,767], "a": 1 }, + { "px": [1536,96], "src": [320,272], "f": 0, "t": 411, "d": [108,768], "a": 1 }, + { "px": [1552,96], "src": [320,272], "f": 0, "t": 411, "d": [108,769], "a": 1 }, + { "px": [1584,96], "src": [320,272], "f": 0, "t": 411, "d": [108,771], "a": 1 }, + { "px": [1600,96], "src": [320,272], "f": 0, "t": 411, "d": [108,772], "a": 1 }, + { "px": [1616,96], "src": [320,272], "f": 0, "t": 411, "d": [108,773], "a": 1 }, + { "px": [1632,96], "src": [320,272], "f": 0, "t": 411, "d": [108,774], "a": 1 }, + { "px": [112,112], "src": [320,272], "f": 0, "t": 411, "d": [108,791], "a": 1 }, + { "px": [672,112], "src": [320,272], "f": 0, "t": 411, "d": [108,826], "a": 1 }, + { "px": [688,112], "src": [320,272], "f": 0, "t": 411, "d": [108,827], "a": 1 }, + { "px": [704,112], "src": [320,272], "f": 0, "t": 411, "d": [108,828], "a": 1 }, + { "px": [720,112], "src": [320,272], "f": 0, "t": 411, "d": [108,829], "a": 1 }, + { "px": [736,112], "src": [320,272], "f": 0, "t": 411, "d": [108,830], "a": 1 }, + { "px": [752,112], "src": [320,272], "f": 0, "t": 411, "d": [108,831], "a": 1 }, + { "px": [768,112], "src": [320,272], "f": 0, "t": 411, "d": [108,832], "a": 1 }, + { "px": [784,112], "src": [320,272], "f": 0, "t": 411, "d": [108,833], "a": 1 }, + { "px": [800,112], "src": [320,272], "f": 0, "t": 411, "d": [108,834], "a": 1 }, + { "px": [816,112], "src": [320,272], "f": 0, "t": 411, "d": [108,835], "a": 1 }, + { "px": [832,112], "src": [320,272], "f": 0, "t": 411, "d": [108,836], "a": 1 }, + { "px": [848,112], "src": [320,272], "f": 0, "t": 411, "d": [108,837], "a": 1 }, + { "px": [864,112], "src": [320,272], "f": 0, "t": 411, "d": [108,838], "a": 1 }, + { "px": [880,112], "src": [320,272], "f": 0, "t": 411, "d": [108,839], "a": 1 }, + { "px": [896,112], "src": [320,272], "f": 0, "t": 411, "d": [108,840], "a": 1 }, + { "px": [912,112], "src": [320,272], "f": 0, "t": 411, "d": [108,841], "a": 1 }, + { "px": [928,112], "src": [320,272], "f": 0, "t": 411, "d": [108,842], "a": 1 }, + { "px": [944,112], "src": [320,272], "f": 0, "t": 411, "d": [108,843], "a": 1 }, + { "px": [960,112], "src": [320,272], "f": 0, "t": 411, "d": [108,844], "a": 1 }, + { "px": [976,112], "src": [320,272], "f": 0, "t": 411, "d": [108,845], "a": 1 }, + { "px": [992,112], "src": [320,272], "f": 0, "t": 411, "d": [108,846], "a": 1 }, + { "px": [1008,112], "src": [320,272], "f": 0, "t": 411, "d": [108,847], "a": 1 }, + { "px": [1024,112], "src": [320,272], "f": 0, "t": 411, "d": [108,848], "a": 1 }, + { "px": [1040,112], "src": [320,272], "f": 0, "t": 411, "d": [108,849], "a": 1 }, + { "px": [1056,112], "src": [320,272], "f": 0, "t": 411, "d": [108,850], "a": 1 }, + { "px": [1072,112], "src": [320,272], "f": 0, "t": 411, "d": [108,851], "a": 1 }, + { "px": [1088,112], "src": [320,272], "f": 0, "t": 411, "d": [108,852], "a": 1 }, + { "px": [1104,112], "src": [320,272], "f": 0, "t": 411, "d": [108,853], "a": 1 }, + { "px": [1120,112], "src": [320,272], "f": 0, "t": 411, "d": [108,854], "a": 1 }, + { "px": [1136,112], "src": [320,272], "f": 0, "t": 411, "d": [108,855], "a": 1 }, + { "px": [1152,112], "src": [320,272], "f": 0, "t": 411, "d": [108,856], "a": 1 }, + { "px": [1168,112], "src": [320,272], "f": 0, "t": 411, "d": [108,857], "a": 1 }, + { "px": [1184,112], "src": [320,272], "f": 0, "t": 411, "d": [108,858], "a": 1 }, + { "px": [1200,112], "src": [320,272], "f": 0, "t": 411, "d": [108,859], "a": 1 }, + { "px": [1216,112], "src": [320,272], "f": 0, "t": 411, "d": [108,860], "a": 1 }, + { "px": [1232,112], "src": [320,272], "f": 0, "t": 411, "d": [108,861], "a": 1 }, + { "px": [1248,112], "src": [320,272], "f": 0, "t": 411, "d": [108,862], "a": 1 }, + { "px": [1264,112], "src": [320,272], "f": 0, "t": 411, "d": [108,863], "a": 1 }, + { "px": [1280,112], "src": [320,272], "f": 0, "t": 411, "d": [108,864], "a": 1 }, + { "px": [1296,112], "src": [320,272], "f": 0, "t": 411, "d": [108,865], "a": 1 }, + { "px": [1312,112], "src": [320,272], "f": 0, "t": 411, "d": [108,866], "a": 1 }, + { "px": [1328,112], "src": [320,272], "f": 0, "t": 411, "d": [108,867], "a": 1 }, + { "px": [1344,112], "src": [320,272], "f": 0, "t": 411, "d": [108,868], "a": 1 }, + { "px": [1360,112], "src": [320,272], "f": 0, "t": 411, "d": [108,869], "a": 1 }, + { "px": [1376,112], "src": [320,272], "f": 0, "t": 411, "d": [108,870], "a": 1 }, + { "px": [1392,112], "src": [320,272], "f": 0, "t": 411, "d": [108,871], "a": 1 }, + { "px": [1408,112], "src": [320,272], "f": 0, "t": 411, "d": [108,872], "a": 1 }, + { "px": [1424,112], "src": [320,272], "f": 0, "t": 411, "d": [108,873], "a": 1 }, + { "px": [1440,112], "src": [320,272], "f": 0, "t": 411, "d": [108,874], "a": 1 }, + { "px": [1456,112], "src": [320,272], "f": 0, "t": 411, "d": [108,875], "a": 1 }, + { "px": [1472,112], "src": [320,272], "f": 0, "t": 411, "d": [108,876], "a": 1 }, + { "px": [1488,112], "src": [320,272], "f": 0, "t": 411, "d": [108,877], "a": 1 }, + { "px": [1504,112], "src": [320,272], "f": 0, "t": 411, "d": [108,878], "a": 1 }, + { "px": [1520,112], "src": [320,272], "f": 0, "t": 411, "d": [108,879], "a": 1 }, + { "px": [1536,112], "src": [320,272], "f": 0, "t": 411, "d": [108,880], "a": 1 }, + { "px": [1552,112], "src": [320,272], "f": 0, "t": 411, "d": [108,881], "a": 1 }, + { "px": [1568,112], "src": [320,272], "f": 0, "t": 411, "d": [108,882], "a": 1 }, + { "px": [1584,112], "src": [320,272], "f": 0, "t": 411, "d": [108,883], "a": 1 }, + { "px": [1600,112], "src": [320,272], "f": 0, "t": 411, "d": [108,884], "a": 1 }, + { "px": [1616,112], "src": [320,272], "f": 0, "t": 411, "d": [108,885], "a": 1 }, + { "px": [1632,112], "src": [320,272], "f": 0, "t": 411, "d": [108,886], "a": 1 }, + { "px": [96,128], "src": [320,272], "f": 0, "t": 411, "d": [108,902], "a": 1 }, + { "px": [112,128], "src": [320,272], "f": 0, "t": 411, "d": [108,903], "a": 1 }, + { "px": [128,128], "src": [320,272], "f": 0, "t": 411, "d": [108,904], "a": 1 }, + { "px": [672,128], "src": [320,272], "f": 0, "t": 411, "d": [108,938], "a": 1 }, + { "px": [688,128], "src": [320,272], "f": 0, "t": 411, "d": [108,939], "a": 1 }, + { "px": [704,128], "src": [320,272], "f": 0, "t": 411, "d": [108,940], "a": 1 }, + { "px": [736,128], "src": [320,272], "f": 0, "t": 411, "d": [108,942], "a": 1 }, + { "px": [752,128], "src": [320,272], "f": 0, "t": 411, "d": [108,943], "a": 1 }, + { "px": [768,128], "src": [320,272], "f": 0, "t": 411, "d": [108,944], "a": 1 }, + { "px": [784,128], "src": [320,272], "f": 0, "t": 411, "d": [108,945], "a": 1 }, + { "px": [800,128], "src": [320,272], "f": 0, "t": 411, "d": [108,946], "a": 1 }, + { "px": [816,128], "src": [320,272], "f": 0, "t": 411, "d": [108,947], "a": 1 }, + { "px": [832,128], "src": [320,272], "f": 0, "t": 411, "d": [108,948], "a": 1 }, + { "px": [848,128], "src": [320,272], "f": 0, "t": 411, "d": [108,949], "a": 1 }, + { "px": [864,128], "src": [320,272], "f": 0, "t": 411, "d": [108,950], "a": 1 }, + { "px": [896,128], "src": [320,272], "f": 0, "t": 411, "d": [108,952], "a": 1 }, + { "px": [912,128], "src": [320,272], "f": 0, "t": 411, "d": [108,953], "a": 1 }, + { "px": [928,128], "src": [320,272], "f": 0, "t": 411, "d": [108,954], "a": 1 }, + { "px": [944,128], "src": [320,272], "f": 0, "t": 411, "d": [108,955], "a": 1 }, + { "px": [976,128], "src": [320,272], "f": 0, "t": 411, "d": [108,957], "a": 1 }, + { "px": [992,128], "src": [320,272], "f": 0, "t": 411, "d": [108,958], "a": 1 }, + { "px": [1008,128], "src": [320,272], "f": 0, "t": 411, "d": [108,959], "a": 1 }, + { "px": [1024,128], "src": [320,272], "f": 0, "t": 411, "d": [108,960], "a": 1 }, + { "px": [1040,128], "src": [320,272], "f": 0, "t": 411, "d": [108,961], "a": 1 }, + { "px": [1056,128], "src": [320,272], "f": 0, "t": 411, "d": [108,962], "a": 1 }, + { "px": [1072,128], "src": [320,272], "f": 0, "t": 411, "d": [108,963], "a": 1 }, + { "px": [1088,128], "src": [320,272], "f": 0, "t": 411, "d": [108,964], "a": 1 }, + { "px": [1104,128], "src": [320,272], "f": 0, "t": 411, "d": [108,965], "a": 1 }, + { "px": [1120,128], "src": [320,272], "f": 0, "t": 411, "d": [108,966], "a": 1 }, + { "px": [1136,128], "src": [320,272], "f": 0, "t": 411, "d": [108,967], "a": 1 }, + { "px": [1152,128], "src": [320,272], "f": 0, "t": 411, "d": [108,968], "a": 1 }, + { "px": [1168,128], "src": [320,272], "f": 0, "t": 411, "d": [108,969], "a": 1 }, + { "px": [1184,128], "src": [320,272], "f": 0, "t": 411, "d": [108,970], "a": 1 }, + { "px": [1216,128], "src": [320,272], "f": 0, "t": 411, "d": [108,972], "a": 1 }, + { "px": [1232,128], "src": [320,272], "f": 0, "t": 411, "d": [108,973], "a": 1 }, + { "px": [1248,128], "src": [320,272], "f": 0, "t": 411, "d": [108,974], "a": 1 }, + { "px": [1264,128], "src": [320,272], "f": 0, "t": 411, "d": [108,975], "a": 1 }, + { "px": [1280,128], "src": [320,272], "f": 0, "t": 411, "d": [108,976], "a": 1 }, + { "px": [1296,128], "src": [320,272], "f": 0, "t": 411, "d": [108,977], "a": 1 }, + { "px": [1312,128], "src": [320,272], "f": 0, "t": 411, "d": [108,978], "a": 1 }, + { "px": [1328,128], "src": [320,272], "f": 0, "t": 411, "d": [108,979], "a": 1 }, + { "px": [1360,128], "src": [320,272], "f": 0, "t": 411, "d": [108,981], "a": 1 }, + { "px": [1376,128], "src": [320,272], "f": 0, "t": 411, "d": [108,982], "a": 1 }, + { "px": [1392,128], "src": [320,272], "f": 0, "t": 411, "d": [108,983], "a": 1 }, + { "px": [1408,128], "src": [320,272], "f": 0, "t": 411, "d": [108,984], "a": 1 }, + { "px": [1424,128], "src": [320,272], "f": 0, "t": 411, "d": [108,985], "a": 1 }, + { "px": [1440,128], "src": [320,272], "f": 0, "t": 411, "d": [108,986], "a": 1 }, + { "px": [1456,128], "src": [320,272], "f": 0, "t": 411, "d": [108,987], "a": 1 }, + { "px": [1472,128], "src": [320,272], "f": 0, "t": 411, "d": [108,988], "a": 1 }, + { "px": [1488,128], "src": [320,272], "f": 0, "t": 411, "d": [108,989], "a": 1 }, + { "px": [1504,128], "src": [320,272], "f": 0, "t": 411, "d": [108,990], "a": 1 }, + { "px": [1520,128], "src": [320,272], "f": 0, "t": 411, "d": [108,991], "a": 1 }, + { "px": [1552,128], "src": [320,272], "f": 0, "t": 411, "d": [108,993], "a": 1 }, + { "px": [1568,128], "src": [320,272], "f": 0, "t": 411, "d": [108,994], "a": 1 }, + { "px": [1584,128], "src": [320,272], "f": 0, "t": 411, "d": [108,995], "a": 1 }, + { "px": [1600,128], "src": [320,272], "f": 0, "t": 411, "d": [108,996], "a": 1 }, + { "px": [1616,128], "src": [320,272], "f": 0, "t": 411, "d": [108,997], "a": 1 }, + { "px": [96,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1014], "a": 1 }, + { "px": [112,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1015], "a": 1 }, + { "px": [128,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1016], "a": 1 }, + { "px": [144,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1017], "a": 1 }, + { "px": [160,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1018], "a": 1 }, + { "px": [176,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1019], "a": 1 }, + { "px": [208,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1021], "a": 1 }, + { "px": [240,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1023], "a": 1 }, + { "px": [256,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1024], "a": 1 }, + { "px": [272,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1025], "a": 1 }, + { "px": [288,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1026], "a": 1 }, + { "px": [304,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1027], "a": 1 }, + { "px": [320,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1028], "a": 1 }, + { "px": [336,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1029], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1030], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1031], "a": 1 }, + { "px": [384,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1032], "a": 1 }, + { "px": [400,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1033], "a": 1 }, + { "px": [432,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1035], "a": 1 }, + { "px": [448,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1036], "a": 1 }, + { "px": [464,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1037], "a": 1 }, + { "px": [480,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1038], "a": 1 }, + { "px": [496,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1039], "a": 1 }, + { "px": [512,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1040], "a": 1 }, + { "px": [528,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1041], "a": 1 }, + { "px": [544,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1042], "a": 1 }, + { "px": [560,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1043], "a": 1 }, + { "px": [576,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1044], "a": 1 }, + { "px": [592,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1045], "a": 1 }, + { "px": [608,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1046], "a": 1 }, + { "px": [624,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1047], "a": 1 }, + { "px": [640,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1048], "a": 1 }, + { "px": [656,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1049], "a": 1 }, + { "px": [1088,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1076], "a": 1 }, + { "px": [1104,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1077], "a": 1 }, + { "px": [1120,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1078], "a": 1 }, + { "px": [1136,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1079], "a": 1 }, + { "px": [1152,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1080], "a": 1 }, + { "px": [1168,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1081], "a": 1 }, + { "px": [1184,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1082], "a": 1 }, + { "px": [1200,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1083], "a": 1 }, + { "px": [1216,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1084], "a": 1 }, + { "px": [1232,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1085], "a": 1 }, + { "px": [1248,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1086], "a": 1 }, + { "px": [1264,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1087], "a": 1 }, + { "px": [1280,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1088], "a": 1 }, + { "px": [1296,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1089], "a": 1 }, + { "px": [1312,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1090], "a": 1 }, + { "px": [1328,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1091], "a": 1 }, + { "px": [1344,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1092], "a": 1 }, + { "px": [1360,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1093], "a": 1 }, + { "px": [1376,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1094], "a": 1 }, + { "px": [1392,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1095], "a": 1 }, + { "px": [1408,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1096], "a": 1 }, + { "px": [1424,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1097], "a": 1 }, + { "px": [1440,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1098], "a": 1 }, + { "px": [1456,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1099], "a": 1 }, + { "px": [1472,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1100], "a": 1 }, + { "px": [1488,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1101], "a": 1 }, + { "px": [1504,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1102], "a": 1 }, + { "px": [1520,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1103], "a": 1 }, + { "px": [1536,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1104], "a": 1 }, + { "px": [1552,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1105], "a": 1 }, + { "px": [1568,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1106], "a": 1 }, + { "px": [1584,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1107], "a": 1 }, + { "px": [1600,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1108], "a": 1 }, + { "px": [1616,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1109], "a": 1 }, + { "px": [1632,144], "src": [320,272], "f": 0, "t": 411, "d": [108,1110], "a": 1 }, + { "px": [96,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1126], "a": 1 }, + { "px": [112,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1127], "a": 1 }, + { "px": [144,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1129], "a": 1 }, + { "px": [160,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1130], "a": 1 }, + { "px": [176,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1131], "a": 1 }, + { "px": [192,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1132], "a": 1 }, + { "px": [208,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1133], "a": 1 }, + { "px": [224,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1134], "a": 1 }, + { "px": [240,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1135], "a": 1 }, + { "px": [256,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1136], "a": 1 }, + { "px": [272,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1137], "a": 1 }, + { "px": [288,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1138], "a": 1 }, + { "px": [304,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1139], "a": 1 }, + { "px": [320,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1140], "a": 1 }, + { "px": [336,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1141], "a": 1 }, + { "px": [352,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1142], "a": 1 }, + { "px": [368,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1143], "a": 1 }, + { "px": [384,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1144], "a": 1 }, + { "px": [400,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1145], "a": 1 }, + { "px": [416,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1146], "a": 1 }, + { "px": [432,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1147], "a": 1 }, + { "px": [448,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1148], "a": 1 }, + { "px": [464,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1149], "a": 1 }, + { "px": [480,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1150], "a": 1 }, + { "px": [496,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1151], "a": 1 }, + { "px": [512,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1152], "a": 1 }, + { "px": [528,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1153], "a": 1 }, + { "px": [544,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1154], "a": 1 }, + { "px": [560,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1155], "a": 1 }, + { "px": [576,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1156], "a": 1 }, + { "px": [592,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1157], "a": 1 }, + { "px": [608,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1158], "a": 1 }, + { "px": [624,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1159], "a": 1 }, + { "px": [640,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1160], "a": 1 }, + { "px": [656,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1161], "a": 1 }, + { "px": [1104,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1189], "a": 1 }, + { "px": [1120,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1190], "a": 1 }, + { "px": [1136,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1191], "a": 1 }, + { "px": [1152,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1192], "a": 1 }, + { "px": [1168,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1193], "a": 1 }, + { "px": [1200,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1195], "a": 1 }, + { "px": [1216,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1196], "a": 1 }, + { "px": [1232,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1197], "a": 1 }, + { "px": [1248,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1198], "a": 1 }, + { "px": [1264,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1199], "a": 1 }, + { "px": [1280,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1200], "a": 1 }, + { "px": [1296,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1201], "a": 1 }, + { "px": [1312,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1202], "a": 1 }, + { "px": [1328,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1203], "a": 1 }, + { "px": [1344,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1204], "a": 1 }, + { "px": [1360,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1205], "a": 1 }, + { "px": [1392,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1207], "a": 1 }, + { "px": [1408,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1208], "a": 1 }, + { "px": [1424,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1209], "a": 1 }, + { "px": [1440,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1210], "a": 1 }, + { "px": [1456,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1211], "a": 1 }, + { "px": [1488,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1213], "a": 1 }, + { "px": [1504,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1214], "a": 1 }, + { "px": [1520,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1215], "a": 1 }, + { "px": [1536,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1216], "a": 1 }, + { "px": [1552,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1217], "a": 1 }, + { "px": [1568,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1218], "a": 1 }, + { "px": [1584,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1219], "a": 1 }, + { "px": [1616,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1221], "a": 1 }, + { "px": [1632,160], "src": [320,272], "f": 0, "t": 411, "d": [108,1222], "a": 1 }, + { "px": [112,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1239], "a": 1 }, + { "px": [1088,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1300], "a": 1 }, + { "px": [1104,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1301], "a": 1 }, + { "px": [1120,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1302], "a": 1 }, + { "px": [1136,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1303], "a": 1 }, + { "px": [1152,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1304], "a": 1 }, + { "px": [1168,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1305], "a": 1 }, + { "px": [1184,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1306], "a": 1 }, + { "px": [1200,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1307], "a": 1 }, + { "px": [1216,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1308], "a": 1 }, + { "px": [1232,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1309], "a": 1 }, + { "px": [1248,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1310], "a": 1 }, + { "px": [1264,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1311], "a": 1 }, + { "px": [1280,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1312], "a": 1 }, + { "px": [1296,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1313], "a": 1 }, + { "px": [1312,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1314], "a": 1 }, + { "px": [1328,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1315], "a": 1 }, + { "px": [1344,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1316], "a": 1 }, + { "px": [1360,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1317], "a": 1 }, + { "px": [1376,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1318], "a": 1 }, + { "px": [1392,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1319], "a": 1 }, + { "px": [1408,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1320], "a": 1 }, + { "px": [1424,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1321], "a": 1 }, + { "px": [1440,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1322], "a": 1 }, + { "px": [1456,176], "src": [320,272], "f": 0, "t": 411, "d": [108,1323], "a": 1 }, + { "px": [1088,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1412], "a": 1 }, + { "px": [1104,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1413], "a": 1 }, + { "px": [1120,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1414], "a": 1 }, + { "px": [1136,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1415], "a": 1 }, + { "px": [1152,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1416], "a": 1 }, + { "px": [1168,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1417], "a": 1 }, + { "px": [1184,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1418], "a": 1 }, + { "px": [1200,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1419], "a": 1 }, + { "px": [1216,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1420], "a": 1 }, + { "px": [1232,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1421], "a": 1 }, + { "px": [1248,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1422], "a": 1 }, + { "px": [1264,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1423], "a": 1 }, + { "px": [1296,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1425], "a": 1 }, + { "px": [1312,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1426], "a": 1 }, + { "px": [1328,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1427], "a": 1 }, + { "px": [1344,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1428], "a": 1 }, + { "px": [1376,192], "src": [320,272], "f": 0, "t": 411, "d": [108,1430], "a": 1 }, + { "px": [1712,0], "src": [256,240], "f": 1, "t": 361, "d": [107,106], "a": 1 }, + { "px": [1696,0], "src": [272,240], "f": 1, "t": 362, "d": [107,106], "a": 1 }, + { "px": [1712,0], "src": [256,240], "f": 0, "t": 361, "d": [107,108], "a": 1 }, + { "px": [1728,0], "src": [272,240], "f": 0, "t": 362, "d": [107,108], "a": 1 }, + { "px": [1712,16], "src": [256,240], "f": 1, "t": 361, "d": [107,218], "a": 1 }, + { "px": [1696,16], "src": [272,240], "f": 1, "t": 362, "d": [107,218], "a": 1 }, + { "px": [1712,16], "src": [256,240], "f": 0, "t": 361, "d": [107,220], "a": 1 }, + { "px": [1728,16], "src": [272,240], "f": 0, "t": 362, "d": [107,220], "a": 1 }, + { "px": [1088,32], "src": [256,240], "f": 1, "t": 361, "d": [107,291], "a": 1 }, + { "px": [1072,32], "src": [272,240], "f": 1, "t": 362, "d": [107,291], "a": 1 }, + { "px": [1376,32], "src": [256,240], "f": 0, "t": 361, "d": [107,311], "a": 1 }, + { "px": [1392,32], "src": [272,240], "f": 0, "t": 362, "d": [107,311], "a": 1 }, + { "px": [1712,32], "src": [256,240], "f": 1, "t": 361, "d": [107,330], "a": 1 }, + { "px": [1696,32], "src": [272,240], "f": 1, "t": 362, "d": [107,330], "a": 1 }, + { "px": [1712,32], "src": [256,240], "f": 0, "t": 361, "d": [107,332], "a": 1 }, + { "px": [1728,32], "src": [272,240], "f": 0, "t": 362, "d": [107,332], "a": 1 }, + { "px": [1088,48], "src": [256,240], "f": 1, "t": 361, "d": [107,403], "a": 1 }, + { "px": [1072,48], "src": [272,240], "f": 1, "t": 362, "d": [107,403], "a": 1 }, + { "px": [1712,48], "src": [256,240], "f": 0, "t": 361, "d": [107,444], "a": 1 }, + { "px": [1728,48], "src": [272,240], "f": 0, "t": 362, "d": [107,444], "a": 1 }, + { "px": [1712,64], "src": [256,240], "f": 0, "t": 361, "d": [107,556], "a": 1 }, + { "px": [1728,64], "src": [272,240], "f": 0, "t": 362, "d": [107,556], "a": 1 }, + { "px": [672,80], "src": [256,240], "f": 1, "t": 361, "d": [107,601], "a": 1 }, + { "px": [656,80], "src": [272,240], "f": 1, "t": 362, "d": [107,601], "a": 1 }, + { "px": [672,96], "src": [256,240], "f": 1, "t": 361, "d": [107,713], "a": 1 }, + { "px": [656,96], "src": [272,240], "f": 1, "t": 362, "d": [107,713], "a": 1 }, + { "px": [1632,96], "src": [256,240], "f": 0, "t": 361, "d": [107,775], "a": 1 }, + { "px": [1648,96], "src": [272,240], "f": 0, "t": 362, "d": [107,775], "a": 1 }, + { "px": [112,112], "src": [256,240], "f": 1, "t": 361, "d": [107,790], "a": 1 }, + { "px": [96,112], "src": [272,240], "f": 1, "t": 362, "d": [107,790], "a": 1 }, + { "px": [112,112], "src": [256,240], "f": 0, "t": 361, "d": [107,792], "a": 1 }, + { "px": [128,112], "src": [272,240], "f": 0, "t": 362, "d": [107,792], "a": 1 }, + { "px": [672,112], "src": [256,240], "f": 1, "t": 361, "d": [107,825], "a": 1 }, + { "px": [656,112], "src": [272,240], "f": 1, "t": 362, "d": [107,825], "a": 1 }, + { "px": [1632,112], "src": [256,240], "f": 0, "t": 361, "d": [107,887], "a": 1 }, + { "px": [1648,112], "src": [272,240], "f": 0, "t": 362, "d": [107,887], "a": 1 }, + { "px": [96,128], "src": [256,240], "f": 1, "t": 361, "d": [107,901], "a": 1 }, + { "px": [80,128], "src": [272,240], "f": 1, "t": 362, "d": [107,901], "a": 1 }, + { "px": [128,128], "src": [256,240], "f": 0, "t": 361, "d": [107,905], "a": 1 }, + { "px": [144,128], "src": [272,240], "f": 0, "t": 362, "d": [107,905], "a": 1 }, + { "px": [672,128], "src": [256,240], "f": 1, "t": 361, "d": [107,937], "a": 1 }, + { "px": [656,128], "src": [272,240], "f": 1, "t": 362, "d": [107,937], "a": 1 }, + { "px": [1632,128], "src": [256,240], "f": 0, "t": 361, "d": [107,999], "a": 1 }, + { "px": [1648,128], "src": [272,240], "f": 0, "t": 362, "d": [107,999], "a": 1 }, + { "px": [96,144], "src": [256,240], "f": 1, "t": 361, "d": [107,1013], "a": 1 }, + { "px": [80,144], "src": [272,240], "f": 1, "t": 362, "d": [107,1013], "a": 1 }, + { "px": [656,144], "src": [256,240], "f": 0, "t": 361, "d": [107,1050], "a": 1 }, + { "px": [672,144], "src": [272,240], "f": 0, "t": 362, "d": [107,1050], "a": 1 }, + { "px": [1088,144], "src": [256,240], "f": 1, "t": 361, "d": [107,1075], "a": 1 }, + { "px": [1072,144], "src": [272,240], "f": 1, "t": 362, "d": [107,1075], "a": 1 }, + { "px": [1632,144], "src": [256,240], "f": 0, "t": 361, "d": [107,1111], "a": 1 }, + { "px": [1648,144], "src": [272,240], "f": 0, "t": 362, "d": [107,1111], "a": 1 }, + { "px": [96,160], "src": [256,240], "f": 1, "t": 361, "d": [107,1125], "a": 1 }, + { "px": [80,160], "src": [272,240], "f": 1, "t": 362, "d": [107,1125], "a": 1 }, + { "px": [1088,160], "src": [256,240], "f": 1, "t": 361, "d": [107,1187], "a": 1 }, + { "px": [1072,160], "src": [272,240], "f": 1, "t": 362, "d": [107,1187], "a": 1 }, + { "px": [1632,160], "src": [256,240], "f": 0, "t": 361, "d": [107,1223], "a": 1 }, + { "px": [1648,160], "src": [272,240], "f": 0, "t": 362, "d": [107,1223], "a": 1 }, + { "px": [112,176], "src": [256,240], "f": 1, "t": 361, "d": [107,1238], "a": 1 }, + { "px": [96,176], "src": [272,240], "f": 1, "t": 362, "d": [107,1238], "a": 1 }, + { "px": [112,176], "src": [256,240], "f": 0, "t": 361, "d": [107,1240], "a": 1 }, + { "px": [128,176], "src": [272,240], "f": 0, "t": 362, "d": [107,1240], "a": 1 }, + { "px": [1088,176], "src": [256,240], "f": 1, "t": 361, "d": [107,1299], "a": 1 }, + { "px": [1072,176], "src": [272,240], "f": 1, "t": 362, "d": [107,1299], "a": 1 }, + { "px": [1456,176], "src": [256,240], "f": 0, "t": 361, "d": [107,1324], "a": 1 }, + { "px": [1472,176], "src": [272,240], "f": 0, "t": 362, "d": [107,1324], "a": 1 }, + { "px": [1376,192], "src": [256,240], "f": 0, "t": 361, "d": [107,1431], "a": 1 }, + { "px": [1392,192], "src": [272,240], "f": 0, "t": 362, "d": [107,1431], "a": 1 }, + { "px": [1696,32], "src": [256,240], "f": 0, "t": 361, "d": [105,331], "a": 1 }, + { "px": [1712,32], "src": [272,240], "f": 0, "t": 362, "d": [105,331], "a": 1 }, + { "px": [1728,32], "src": [288,240], "f": 0, "t": 363, "d": [105,331], "a": 1 }, + { "px": [1184,64], "src": [256,240], "f": 0, "t": 361, "d": [105,523], "a": 1 }, + { "px": [1200,64], "src": [272,240], "f": 0, "t": 362, "d": [105,523], "a": 1 }, + { "px": [1216,64], "src": [288,240], "f": 0, "t": 363, "d": [105,523], "a": 1 }, + { "px": [784,96], "src": [256,240], "f": 0, "t": 361, "d": [105,722], "a": 1 }, + { "px": [800,96], "src": [272,240], "f": 0, "t": 362, "d": [105,722], "a": 1 }, + { "px": [816,96], "src": [288,240], "f": 0, "t": 363, "d": [105,722], "a": 1 }, + { "px": [976,96], "src": [256,240], "f": 0, "t": 361, "d": [105,734], "a": 1 }, + { "px": [992,96], "src": [272,240], "f": 0, "t": 362, "d": [105,734], "a": 1 }, + { "px": [1008,96], "src": [288,240], "f": 0, "t": 363, "d": [105,734], "a": 1 }, + { "px": [1120,96], "src": [256,240], "f": 0, "t": 361, "d": [105,743], "a": 1 }, + { "px": [1136,96], "src": [272,240], "f": 0, "t": 362, "d": [105,743], "a": 1 }, + { "px": [1152,96], "src": [288,240], "f": 0, "t": 363, "d": [105,743], "a": 1 }, + { "px": [1168,96], "src": [256,240], "f": 0, "t": 361, "d": [105,746], "a": 1 }, + { "px": [1184,96], "src": [272,240], "f": 0, "t": 362, "d": [105,746], "a": 1 }, + { "px": [1200,96], "src": [288,240], "f": 0, "t": 363, "d": [105,746], "a": 1 }, + { "px": [1216,96], "src": [256,240], "f": 0, "t": 361, "d": [105,749], "a": 1 }, + { "px": [1232,96], "src": [272,240], "f": 0, "t": 362, "d": [105,749], "a": 1 }, + { "px": [1248,96], "src": [288,240], "f": 0, "t": 363, "d": [105,749], "a": 1 }, + { "px": [1264,96], "src": [256,240], "f": 0, "t": 361, "d": [105,752], "a": 1 }, + { "px": [1280,96], "src": [272,240], "f": 0, "t": 362, "d": [105,752], "a": 1 }, + { "px": [1296,96], "src": [288,240], "f": 0, "t": 363, "d": [105,752], "a": 1 }, + { "px": [1312,96], "src": [256,240], "f": 0, "t": 361, "d": [105,755], "a": 1 }, + { "px": [1328,96], "src": [272,240], "f": 0, "t": 362, "d": [105,755], "a": 1 }, + { "px": [1344,96], "src": [288,240], "f": 0, "t": 363, "d": [105,755], "a": 1 }, + { "px": [1408,96], "src": [256,240], "f": 0, "t": 361, "d": [105,761], "a": 1 }, + { "px": [1424,96], "src": [272,240], "f": 0, "t": 362, "d": [105,761], "a": 1 }, + { "px": [1440,96], "src": [288,240], "f": 0, "t": 363, "d": [105,761], "a": 1 }, + { "px": [1552,96], "src": [256,240], "f": 0, "t": 361, "d": [105,770], "a": 1 }, + { "px": [1568,96], "src": [272,240], "f": 0, "t": 362, "d": [105,770], "a": 1 }, + { "px": [1584,96], "src": [288,240], "f": 0, "t": 363, "d": [105,770], "a": 1 }, + { "px": [1184,128], "src": [256,240], "f": 0, "t": 361, "d": [105,971], "a": 1 }, + { "px": [1200,128], "src": [272,240], "f": 0, "t": 362, "d": [105,971], "a": 1 }, + { "px": [1216,128], "src": [288,240], "f": 0, "t": 363, "d": [105,971], "a": 1 }, + { "px": [1328,128], "src": [256,240], "f": 0, "t": 361, "d": [105,980], "a": 1 }, + { "px": [1344,128], "src": [272,240], "f": 0, "t": 362, "d": [105,980], "a": 1 }, + { "px": [1360,128], "src": [288,240], "f": 0, "t": 363, "d": [105,980], "a": 1 }, + { "px": [1520,128], "src": [256,240], "f": 0, "t": 361, "d": [105,992], "a": 1 }, + { "px": [1536,128], "src": [272,240], "f": 0, "t": 362, "d": [105,992], "a": 1 }, + { "px": [1552,128], "src": [288,240], "f": 0, "t": 363, "d": [105,992], "a": 1 }, + { "px": [1616,128], "src": [256,240], "f": 0, "t": 361, "d": [105,998], "a": 1 }, + { "px": [1632,128], "src": [272,240], "f": 0, "t": 362, "d": [105,998], "a": 1 }, + { "px": [1648,128], "src": [288,240], "f": 0, "t": 363, "d": [105,998], "a": 1 }, + { "px": [112,160], "src": [256,240], "f": 0, "t": 361, "d": [105,1128], "a": 1 }, + { "px": [128,160], "src": [272,240], "f": 0, "t": 362, "d": [105,1128], "a": 1 }, + { "px": [144,160], "src": [288,240], "f": 0, "t": 363, "d": [105,1128], "a": 1 }, + { "px": [1072,160], "src": [256,240], "f": 0, "t": 361, "d": [105,1188], "a": 1 }, + { "px": [1088,160], "src": [272,240], "f": 0, "t": 362, "d": [105,1188], "a": 1 }, + { "px": [1104,160], "src": [288,240], "f": 0, "t": 363, "d": [105,1188], "a": 1 }, + { "px": [1168,160], "src": [256,240], "f": 0, "t": 361, "d": [105,1194], "a": 1 }, + { "px": [1184,160], "src": [272,240], "f": 0, "t": 362, "d": [105,1194], "a": 1 }, + { "px": [1200,160], "src": [288,240], "f": 0, "t": 363, "d": [105,1194], "a": 1 }, + { "px": [1360,160], "src": [256,240], "f": 0, "t": 361, "d": [105,1206], "a": 1 }, + { "px": [1376,160], "src": [272,240], "f": 0, "t": 362, "d": [105,1206], "a": 1 }, + { "px": [1392,160], "src": [288,240], "f": 0, "t": 363, "d": [105,1206], "a": 1 }, + { "px": [1456,160], "src": [256,240], "f": 0, "t": 361, "d": [105,1212], "a": 1 }, + { "px": [1472,160], "src": [272,240], "f": 0, "t": 362, "d": [105,1212], "a": 1 }, + { "px": [1488,160], "src": [288,240], "f": 0, "t": 363, "d": [105,1212], "a": 1 }, + { "px": [1344,64], "src": [144,240], "f": 2, "t": 354, "d": [112,309], "a": 1 }, + { "px": [1344,48], "src": [144,256], "f": 2, "t": 377, "d": [112,309], "a": 1 }, + { "px": [1344,32], "src": [144,272], "f": 2, "t": 400, "d": [112,309], "a": 1 }, + { "px": [1360,64], "src": [160,240], "f": 2, "t": 355, "d": [112,309], "a": 1 }, + { "px": [1360,48], "src": [160,256], "f": 2, "t": 378, "d": [112,309], "a": 1 }, + { "px": [1360,32], "src": [160,272], "f": 2, "t": 401, "d": [112,309], "a": 1 }, + { "px": [1376,64], "src": [176,240], "f": 2, "t": 356, "d": [112,309], "a": 1 }, + { "px": [1376,48], "src": [176,256], "f": 2, "t": 379, "d": [112,309], "a": 1 }, + { "px": [1376,32], "src": [176,272], "f": 2, "t": 402, "d": [112,309], "a": 1 }, + { "px": [784,96], "src": [144,240], "f": 2, "t": 354, "d": [112,498], "a": 1 }, + { "px": [784,80], "src": [144,256], "f": 2, "t": 377, "d": [112,498], "a": 1 }, + { "px": [784,64], "src": [144,272], "f": 2, "t": 400, "d": [112,498], "a": 1 }, + { "px": [800,96], "src": [160,240], "f": 2, "t": 355, "d": [112,498], "a": 1 }, + { "px": [800,80], "src": [160,256], "f": 2, "t": 378, "d": [112,498], "a": 1 }, + { "px": [800,64], "src": [160,272], "f": 2, "t": 401, "d": [112,498], "a": 1 }, + { "px": [816,96], "src": [176,240], "f": 2, "t": 356, "d": [112,498], "a": 1 }, + { "px": [816,80], "src": [176,256], "f": 2, "t": 379, "d": [112,498], "a": 1 }, + { "px": [816,64], "src": [176,272], "f": 2, "t": 402, "d": [112,498], "a": 1 }, + { "px": [864,96], "src": [144,240], "f": 2, "t": 354, "d": [112,503], "a": 1 }, + { "px": [864,80], "src": [144,256], "f": 2, "t": 377, "d": [112,503], "a": 1 }, + { "px": [864,64], "src": [144,272], "f": 2, "t": 400, "d": [112,503], "a": 1 }, + { "px": [880,96], "src": [160,240], "f": 2, "t": 355, "d": [112,503], "a": 1 }, + { "px": [880,80], "src": [160,256], "f": 2, "t": 378, "d": [112,503], "a": 1 }, + { "px": [880,64], "src": [160,272], "f": 2, "t": 401, "d": [112,503], "a": 1 }, + { "px": [896,96], "src": [176,240], "f": 2, "t": 356, "d": [112,503], "a": 1 }, + { "px": [896,80], "src": [176,256], "f": 2, "t": 379, "d": [112,503], "a": 1 }, + { "px": [896,64], "src": [176,272], "f": 2, "t": 402, "d": [112,503], "a": 1 }, + { "px": [1024,96], "src": [144,240], "f": 2, "t": 354, "d": [112,513], "a": 1 }, + { "px": [1024,80], "src": [144,256], "f": 2, "t": 377, "d": [112,513], "a": 1 }, + { "px": [1024,64], "src": [144,272], "f": 2, "t": 400, "d": [112,513], "a": 1 }, + { "px": [1040,96], "src": [160,240], "f": 2, "t": 355, "d": [112,513], "a": 1 }, + { "px": [1040,80], "src": [160,256], "f": 2, "t": 378, "d": [112,513], "a": 1 }, + { "px": [1040,64], "src": [160,272], "f": 2, "t": 401, "d": [112,513], "a": 1 }, + { "px": [1056,96], "src": [176,240], "f": 2, "t": 356, "d": [112,513], "a": 1 }, + { "px": [1056,80], "src": [176,256], "f": 2, "t": 379, "d": [112,513], "a": 1 }, + { "px": [1056,64], "src": [176,272], "f": 2, "t": 402, "d": [112,513], "a": 1 }, + { "px": [704,96], "src": [144,240], "f": 0, "t": 354, "d": [112,941], "a": 1 }, + { "px": [704,112], "src": [144,256], "f": 0, "t": 377, "d": [112,941], "a": 1 }, + { "px": [704,128], "src": [144,272], "f": 0, "t": 400, "d": [112,941], "a": 1 }, + { "px": [720,96], "src": [160,240], "f": 0, "t": 355, "d": [112,941], "a": 1 }, + { "px": [720,112], "src": [160,256], "f": 0, "t": 378, "d": [112,941], "a": 1 }, + { "px": [720,128], "src": [160,272], "f": 0, "t": 401, "d": [112,941], "a": 1 }, + { "px": [736,96], "src": [176,240], "f": 0, "t": 356, "d": [112,941], "a": 1 }, + { "px": [736,112], "src": [176,256], "f": 0, "t": 379, "d": [112,941], "a": 1 }, + { "px": [736,128], "src": [176,272], "f": 0, "t": 402, "d": [112,941], "a": 1 }, + { "px": [864,96], "src": [144,240], "f": 0, "t": 354, "d": [112,951], "a": 1 }, + { "px": [864,112], "src": [144,256], "f": 0, "t": 377, "d": [112,951], "a": 1 }, + { "px": [864,128], "src": [144,272], "f": 0, "t": 400, "d": [112,951], "a": 1 }, + { "px": [880,96], "src": [160,240], "f": 0, "t": 355, "d": [112,951], "a": 1 }, + { "px": [880,112], "src": [160,256], "f": 0, "t": 378, "d": [112,951], "a": 1 }, + { "px": [880,128], "src": [160,272], "f": 0, "t": 401, "d": [112,951], "a": 1 }, + { "px": [896,96], "src": [176,240], "f": 0, "t": 356, "d": [112,951], "a": 1 }, + { "px": [896,112], "src": [176,256], "f": 0, "t": 379, "d": [112,951], "a": 1 }, + { "px": [896,128], "src": [176,272], "f": 0, "t": 402, "d": [112,951], "a": 1 }, + { "px": [944,96], "src": [144,240], "f": 0, "t": 354, "d": [112,956], "a": 1 }, + { "px": [944,112], "src": [144,256], "f": 0, "t": 377, "d": [112,956], "a": 1 }, + { "px": [944,128], "src": [144,272], "f": 0, "t": 400, "d": [112,956], "a": 1 }, + { "px": [960,96], "src": [160,240], "f": 0, "t": 355, "d": [112,956], "a": 1 }, + { "px": [960,112], "src": [160,256], "f": 0, "t": 378, "d": [112,956], "a": 1 }, + { "px": [960,128], "src": [160,272], "f": 0, "t": 401, "d": [112,956], "a": 1 }, + { "px": [976,96], "src": [176,240], "f": 0, "t": 356, "d": [112,956], "a": 1 }, + { "px": [976,112], "src": [176,256], "f": 0, "t": 379, "d": [112,956], "a": 1 }, + { "px": [976,128], "src": [176,272], "f": 0, "t": 402, "d": [112,956], "a": 1 }, + { "px": [1584,128], "src": [144,240], "f": 0, "t": 354, "d": [112,1220], "a": 1 }, + { "px": [1584,144], "src": [144,256], "f": 0, "t": 377, "d": [112,1220], "a": 1 }, + { "px": [1584,160], "src": [144,272], "f": 0, "t": 400, "d": [112,1220], "a": 1 }, + { "px": [1600,128], "src": [160,240], "f": 0, "t": 355, "d": [112,1220], "a": 1 }, + { "px": [1600,144], "src": [160,256], "f": 0, "t": 378, "d": [112,1220], "a": 1 }, + { "px": [1600,160], "src": [160,272], "f": 0, "t": 401, "d": [112,1220], "a": 1 }, + { "px": [1616,128], "src": [176,240], "f": 0, "t": 356, "d": [112,1220], "a": 1 }, + { "px": [1616,144], "src": [176,256], "f": 0, "t": 379, "d": [112,1220], "a": 1 }, + { "px": [1616,160], "src": [176,272], "f": 0, "t": 402, "d": [112,1220], "a": 1 }, + { "px": [1264,160], "src": [144,240], "f": 0, "t": 354, "d": [112,1424], "a": 1 }, + { "px": [1264,176], "src": [144,256], "f": 0, "t": 377, "d": [112,1424], "a": 1 }, + { "px": [1264,192], "src": [144,272], "f": 0, "t": 400, "d": [112,1424], "a": 1 }, + { "px": [1280,160], "src": [160,240], "f": 0, "t": 355, "d": [112,1424], "a": 1 }, + { "px": [1280,176], "src": [160,256], "f": 0, "t": 378, "d": [112,1424], "a": 1 }, + { "px": [1280,192], "src": [160,272], "f": 0, "t": 401, "d": [112,1424], "a": 1 }, + { "px": [1296,160], "src": [176,240], "f": 0, "t": 356, "d": [112,1424], "a": 1 }, + { "px": [1296,176], "src": [176,256], "f": 0, "t": 379, "d": [112,1424], "a": 1 }, + { "px": [1296,192], "src": [176,272], "f": 0, "t": 402, "d": [112,1424], "a": 1 }, + { "px": [1344,160], "src": [144,240], "f": 0, "t": 354, "d": [112,1429], "a": 1 }, + { "px": [1344,176], "src": [144,256], "f": 0, "t": 377, "d": [112,1429], "a": 1 }, + { "px": [1344,192], "src": [144,272], "f": 0, "t": 400, "d": [112,1429], "a": 1 }, + { "px": [1360,160], "src": [160,240], "f": 0, "t": 355, "d": [112,1429], "a": 1 }, + { "px": [1360,176], "src": [160,256], "f": 0, "t": 378, "d": [112,1429], "a": 1 }, + { "px": [1360,192], "src": [160,272], "f": 0, "t": 401, "d": [112,1429], "a": 1 }, + { "px": [1376,160], "src": [176,240], "f": 0, "t": 356, "d": [112,1429], "a": 1 }, + { "px": [1376,176], "src": [176,256], "f": 0, "t": 379, "d": [112,1429], "a": 1 }, + { "px": [1376,192], "src": [176,272], "f": 0, "t": 402, "d": [112,1429], "a": 1 }, + { "px": [656,80], "src": [192,304], "f": 2, "t": 449, "d": [113,489], "a": 1 }, + { "px": [656,64], "src": [192,320], "f": 2, "t": 472, "d": [113,489], "a": 1 }, + { "px": [672,80], "src": [208,304], "f": 2, "t": 450, "d": [113,489], "a": 1 }, + { "px": [672,64], "src": [208,320], "f": 2, "t": 473, "d": [113,489], "a": 1 }, + { "px": [688,80], "src": [224,304], "f": 2, "t": 451, "d": [113,489], "a": 1 }, + { "px": [688,64], "src": [224,320], "f": 2, "t": 474, "d": [113,489], "a": 1 }, + { "px": [1728,64], "src": [192,304], "f": 1, "t": 449, "d": [113,668], "a": 1 }, + { "px": [1728,80], "src": [192,320], "f": 1, "t": 472, "d": [113,668], "a": 1 }, + { "px": [1712,64], "src": [208,304], "f": 1, "t": 450, "d": [113,668], "a": 1 }, + { "px": [1712,80], "src": [208,320], "f": 1, "t": 473, "d": [113,668], "a": 1 }, + { "px": [1696,64], "src": [224,304], "f": 1, "t": 451, "d": [113,668], "a": 1 }, + { "px": [1696,80], "src": [224,320], "f": 1, "t": 474, "d": [113,668], "a": 1 }, + { "px": [672,144], "src": [192,304], "f": 1, "t": 449, "d": [113,1162], "a": 1 }, + { "px": [672,160], "src": [192,320], "f": 1, "t": 472, "d": [113,1162], "a": 1 }, + { "px": [656,144], "src": [208,304], "f": 1, "t": 450, "d": [113,1162], "a": 1 }, + { "px": [656,160], "src": [208,320], "f": 1, "t": 473, "d": [113,1162], "a": 1 }, + { "px": [640,144], "src": [224,304], "f": 1, "t": 451, "d": [113,1162], "a": 1 }, + { "px": [640,160], "src": [224,320], "f": 1, "t": 474, "d": [113,1162], "a": 1 }, + { "px": [1072,176], "src": [192,304], "f": 0, "t": 449, "d": [113,1411], "a": 1 }, + { "px": [1072,192], "src": [192,320], "f": 0, "t": 472, "d": [113,1411], "a": 1 }, + { "px": [1088,176], "src": [208,304], "f": 0, "t": 450, "d": [113,1411], "a": 1 }, + { "px": [1088,192], "src": [208,320], "f": 0, "t": 473, "d": [113,1411], "a": 1 }, + { "px": [1104,176], "src": [224,304], "f": 0, "t": 451, "d": [113,1411], "a": 1 }, + { "px": [1104,192], "src": [224,320], "f": 0, "t": 474, "d": [113,1411], "a": 1 }, + { "px": [1120,32], "src": [128,224], "f": 0, "t": 330, "d": [114,294], "a": 1 }, + { "px": [1184,32], "src": [128,224], "f": 0, "t": 330, "d": [114,298], "a": 1 }, + { "px": [1376,32], "src": [128,224], "f": 0, "t": 330, "d": [114,310], "a": 1 }, + { "px": [1632,48], "src": [128,224], "f": 0, "t": 330, "d": [114,438], "a": 1 }, + { "px": [928,64], "src": [96,208], "f": 0, "t": 305, "d": [114,506], "a": 1 }, + { "px": [192,144], "src": [128,224], "f": 0, "t": 330, "d": [114,1020], "a": 1 }, + { "px": [416,144], "src": [128,224], "f": 0, "t": 330, "d": [114,1034], "a": 1 }, + { "px": [1152,32], "src": [128,208], "f": 0, "t": 307, "d": [115,296], "a": 1 }, + { "px": [1152,48], "src": [128,224], "f": 0, "t": 330, "d": [115,296], "a": 1 }, + { "px": [1568,48], "src": [128,208], "f": 0, "t": 307, "d": [115,434], "a": 1 }, + { "px": [1568,64], "src": [128,224], "f": 0, "t": 330, "d": [115,434], "a": 1 }, + { "px": [896,64], "src": [128,208], "f": 0, "t": 307, "d": [115,504], "a": 1 }, + { "px": [896,80], "src": [128,224], "f": 0, "t": 330, "d": [115,504], "a": 1 }, + { "px": [224,144], "src": [128,208], "f": 0, "t": 307, "d": [115,1022], "a": 1 }, + { "px": [224,160], "src": [128,224], "f": 0, "t": 330, "d": [115,1022], "a": 1 } + ], + "seed": 193204, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [{ "levelIid": "a375f480-66b0-11ec-9cd7-05be0d3437be", "dir": "n" }] + }, + { + "identifier": "Exit", + "iid": "a375f480-66b0-11ec-9cd7-05be0d3437be", + "uid": 85, + "worldX": 2816, + "worldY": 0, + "worldDepth": 1, + "pxWid": 512, + "pxHei": 256, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#D69FBE", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": "Exit", "__tile": null, "defUid": 99, "realEditorValues": [{ + "id": "V_String", + "params": ["Exit"] + }] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a375f485-66b0-11ec-9cd7-0bf99ad3e136", + "levelId": 85, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 9758160, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Exit", + "__grid": [1,8], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 133, "x": 48, "y": 240, "w": 16, "h": 16 }, + "__smartColor": "#126CCB", + "iid": "a375f486-66b0-11ec-9cd7-fd86a8f321b7", + "width": 48, + "height": 48, + "defUid": 94, + "px": [16,128], + "fieldInstances": [] + }, + { + "__identifier": "Ladder", + "__grid": [27,13], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 6, "x": 96, "y": 144, "w": 16, "h": 16 }, + "__smartColor": "#94D9B3", + "iid": "473827b0-66b0-11ec-9ccd-136878feffb5", + "width": 16, + "height": 48, + "defUid": 134, + "px": [432,208], + "fieldInstances": [] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a375f487-66b0-11ec-9cd7-496fc9d8fea0", + "levelId": 85, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [80,80], "src": [320,128], "f": 0, "t": 204, "d": [26,165], "a": 1 }, + { "px": [448,80], "src": [320,128], "f": 1, "t": 204, "d": [26,188], "a": 1 }, + { "px": [80,96], "src": [320,128], "f": 0, "t": 204, "d": [26,197], "a": 1 }, + { "px": [448,96], "src": [320,128], "f": 1, "t": 204, "d": [26,220], "a": 1 }, + { "px": [80,112], "src": [320,128], "f": 0, "t": 204, "d": [26,229], "a": 1 }, + { "px": [448,112], "src": [320,128], "f": 1, "t": 204, "d": [26,252], "a": 1 }, + { "px": [16,128], "src": [320,128], "f": 0, "t": 204, "d": [26,257], "a": 1 }, + { "px": [448,128], "src": [320,128], "f": 1, "t": 204, "d": [26,284], "a": 1 }, + { "px": [16,144], "src": [320,128], "f": 0, "t": 204, "d": [26,289], "a": 1 }, + { "px": [448,144], "src": [320,128], "f": 1, "t": 204, "d": [26,316], "a": 1 }, + { "px": [16,160], "src": [320,128], "f": 0, "t": 204, "d": [26,321], "a": 1 }, + { "px": [448,160], "src": [320,128], "f": 1, "t": 204, "d": [26,348], "a": 1 }, + { "px": [448,176], "src": [320,128], "f": 1, "t": 204, "d": [26,380], "a": 1 }, + { "px": [80,192], "src": [320,128], "f": 0, "t": 204, "d": [26,389], "a": 1 }, + { "px": [448,192], "src": [320,128], "f": 1, "t": 204, "d": [26,412], "a": 1 }, + { "px": [416,224], "src": [320,128], "f": 0, "t": 204, "d": [26,474], "a": 1 }, + { "px": [448,224], "src": [320,128], "f": 1, "t": 204, "d": [26,476], "a": 1 }, + { "px": [416,240], "src": [320,128], "f": 0, "t": 204, "d": [26,506], "a": 1 }, + { "px": [448,240], "src": [320,128], "f": 1, "t": 204, "d": [26,508], "a": 1 }, + { "px": [80,176], "src": [320,96], "f": 0, "t": 158, "d": [138,357], "a": 1 }, + { "px": [432,208], "src": [320,96], "f": 0, "t": 158, "d": [138,443], "a": 1 }, + { "px": [80,80], "src": [336,112], "f": 0, "t": 182, "d": [27,165], "a": 1 }, + { "px": [96,80], "src": [336,112], "f": 0, "t": 182, "d": [27,166], "a": 1 }, + { "px": [112,80], "src": [336,112], "f": 0, "t": 182, "d": [27,167], "a": 1 }, + { "px": [128,80], "src": [336,112], "f": 0, "t": 182, "d": [27,168], "a": 1 }, + { "px": [144,80], "src": [336,112], "f": 0, "t": 182, "d": [27,169], "a": 1 }, + { "px": [160,80], "src": [336,112], "f": 0, "t": 182, "d": [27,170], "a": 1 }, + { "px": [176,80], "src": [336,112], "f": 0, "t": 182, "d": [27,171], "a": 1 }, + { "px": [192,80], "src": [336,112], "f": 0, "t": 182, "d": [27,172], "a": 1 }, + { "px": [208,80], "src": [336,112], "f": 0, "t": 182, "d": [27,173], "a": 1 }, + { "px": [224,80], "src": [336,112], "f": 0, "t": 182, "d": [27,174], "a": 1 }, + { "px": [240,80], "src": [336,112], "f": 0, "t": 182, "d": [27,175], "a": 1 }, + { "px": [256,80], "src": [336,112], "f": 0, "t": 182, "d": [27,176], "a": 1 }, + { "px": [272,80], "src": [336,112], "f": 0, "t": 182, "d": [27,177], "a": 1 }, + { "px": [288,80], "src": [336,112], "f": 0, "t": 182, "d": [27,178], "a": 1 }, + { "px": [304,80], "src": [336,112], "f": 0, "t": 182, "d": [27,179], "a": 1 }, + { "px": [320,80], "src": [336,112], "f": 0, "t": 182, "d": [27,180], "a": 1 }, + { "px": [336,80], "src": [336,112], "f": 0, "t": 182, "d": [27,181], "a": 1 }, + { "px": [352,80], "src": [336,112], "f": 0, "t": 182, "d": [27,182], "a": 1 }, + { "px": [368,80], "src": [336,112], "f": 0, "t": 182, "d": [27,183], "a": 1 }, + { "px": [384,80], "src": [336,112], "f": 0, "t": 182, "d": [27,184], "a": 1 }, + { "px": [400,80], "src": [336,112], "f": 0, "t": 182, "d": [27,185], "a": 1 }, + { "px": [416,80], "src": [336,112], "f": 0, "t": 182, "d": [27,186], "a": 1 }, + { "px": [432,80], "src": [336,112], "f": 0, "t": 182, "d": [27,187], "a": 1 }, + { "px": [448,80], "src": [336,112], "f": 0, "t": 182, "d": [27,188], "a": 1 }, + { "px": [16,128], "src": [336,112], "f": 0, "t": 182, "d": [27,257], "a": 1 }, + { "px": [32,128], "src": [336,112], "f": 0, "t": 182, "d": [27,258], "a": 1 }, + { "px": [48,128], "src": [336,112], "f": 0, "t": 182, "d": [27,259], "a": 1 }, + { "px": [64,128], "src": [336,112], "f": 0, "t": 182, "d": [27,260], "a": 1 }, + { "px": [416,224], "src": [336,112], "f": 0, "t": 182, "d": [27,474], "a": 1 }, + { "px": [448,224], "src": [336,112], "f": 0, "t": 182, "d": [27,476], "a": 1 }, + { "px": [80,128], "src": [320,112], "f": 0, "t": 181, "d": [137,261], "a": 1 }, + { "px": [432,224], "src": [320,112], "f": 0, "t": 181, "d": [137,475], "a": 1 } + ], + "seed": 4189221, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a375f488-66b0-11ec-9cd7-7f024607986b", + "levelId": 85, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, + 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1 + ], + "autoLayerTiles": [ + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [8,67], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [8,69], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [8,71], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [8,75], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [8,77], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [8,79], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [8,83], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [8,85], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [8,87], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [8,91], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [8,93], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [8,98], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [8,100], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [8,102], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [8,104], "a": 1 }, + { "px": [160,48], "src": [32,32], "f": 0, "t": 48, "d": [8,106], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [8,108], "a": 1 }, + { "px": [256,48], "src": [32,32], "f": 0, "t": 48, "d": [8,112], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [8,116], "a": 1 }, + { "px": [352,48], "src": [32,32], "f": 0, "t": 48, "d": [8,118], "a": 1 }, + { "px": [384,48], "src": [32,32], "f": 0, "t": 48, "d": [8,120], "a": 1 }, + { "px": [416,48], "src": [32,32], "f": 0, "t": 48, "d": [8,122], "a": 1 }, + { "px": [448,48], "src": [32,32], "f": 0, "t": 48, "d": [8,124], "a": 1 }, + { "px": [480,48], "src": [32,32], "f": 0, "t": 48, "d": [8,126], "a": 1 }, + { "px": [48,64], "src": [32,32], "f": 0, "t": 48, "d": [8,131], "a": 1 }, + { "px": [496,64], "src": [32,32], "f": 0, "t": 48, "d": [8,159], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [8,162], "a": 1 }, + { "px": [48,96], "src": [32,32], "f": 0, "t": 48, "d": [8,195], "a": 1 }, + { "px": [480,112], "src": [32,32], "f": 0, "t": 48, "d": [8,254], "a": 1 }, + { "px": [480,144], "src": [32,32], "f": 0, "t": 48, "d": [8,318], "a": 1 }, + { "px": [496,160], "src": [32,32], "f": 0, "t": 48, "d": [8,351], "a": 1 }, + { "px": [480,176], "src": [32,32], "f": 0, "t": 48, "d": [8,382], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [8,385], "a": 1 }, + { "px": [48,192], "src": [32,32], "f": 0, "t": 48, "d": [8,387], "a": 1 }, + { "px": [32,208], "src": [32,32], "f": 0, "t": 48, "d": [8,418], "a": 1 }, + { "px": [480,208], "src": [32,32], "f": 0, "t": 48, "d": [8,446], "a": 1 }, + { "px": [48,224], "src": [32,32], "f": 0, "t": 48, "d": [8,451], "a": 1 }, + { "px": [80,224], "src": [32,32], "f": 0, "t": 48, "d": [8,453], "a": 1 }, + { "px": [208,224], "src": [32,32], "f": 0, "t": 48, "d": [8,461], "a": 1 }, + { "px": [240,224], "src": [32,32], "f": 0, "t": 48, "d": [8,463], "a": 1 }, + { "px": [272,224], "src": [32,32], "f": 0, "t": 48, "d": [8,465], "a": 1 }, + { "px": [336,224], "src": [32,32], "f": 0, "t": 48, "d": [8,469], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [8,479], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [8,482], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [8,484], "a": 1 }, + { "px": [96,240], "src": [32,32], "f": 0, "t": 48, "d": [8,486], "a": 1 }, + { "px": [256,240], "src": [32,32], "f": 0, "t": 48, "d": [8,496], "a": 1 }, + { "px": [288,240], "src": [32,32], "f": 0, "t": 48, "d": [8,498], "a": 1 }, + { "px": [144,32], "src": [96,96], "f": 0, "t": 144, "d": [83,73], "a": 1 }, + { "px": [272,32], "src": [96,96], "f": 0, "t": 144, "d": [83,81], "a": 1 }, + { "px": [400,32], "src": [64,96], "f": 0, "t": 142, "d": [83,89], "a": 1 }, + { "px": [496,32], "src": [96,96], "f": 0, "t": 144, "d": [83,95], "a": 1 }, + { "px": [224,48], "src": [96,96], "f": 0, "t": 144, "d": [83,110], "a": 1 }, + { "px": [288,48], "src": [96,96], "f": 0, "t": 144, "d": [83,114], "a": 1 }, + { "px": [0,80], "src": [64,96], "f": 0, "t": 142, "d": [83,160], "a": 1 }, + { "px": [480,80], "src": [96,96], "f": 0, "t": 144, "d": [83,190], "a": 1 }, + { "px": [16,96], "src": [64,96], "f": 0, "t": 142, "d": [83,193], "a": 1 }, + { "px": [496,96], "src": [64,96], "f": 0, "t": 142, "d": [83,223], "a": 1 }, + { "px": [496,128], "src": [64,96], "f": 0, "t": 142, "d": [83,287], "a": 1 }, + { "px": [496,192], "src": [64,96], "f": 0, "t": 142, "d": [83,415], "a": 1 }, + { "px": [0,208], "src": [96,96], "f": 0, "t": 144, "d": [83,416], "a": 1 }, + { "px": [112,224], "src": [96,96], "f": 0, "t": 144, "d": [83,455], "a": 1 }, + { "px": [144,224], "src": [64,96], "f": 0, "t": 142, "d": [83,457], "a": 1 }, + { "px": [176,224], "src": [96,96], "f": 0, "t": 144, "d": [83,459], "a": 1 }, + { "px": [304,224], "src": [96,96], "f": 0, "t": 144, "d": [83,467], "a": 1 }, + { "px": [368,224], "src": [96,96], "f": 0, "t": 144, "d": [83,471], "a": 1 }, + { "px": [128,240], "src": [96,96], "f": 0, "t": 144, "d": [83,488], "a": 1 }, + { "px": [160,240], "src": [96,96], "f": 0, "t": 144, "d": [83,490], "a": 1 }, + { "px": [192,240], "src": [64,96], "f": 0, "t": 142, "d": [83,492], "a": 1 }, + { "px": [224,240], "src": [64,96], "f": 0, "t": 142, "d": [83,494], "a": 1 }, + { "px": [320,240], "src": [64,96], "f": 0, "t": 142, "d": [83,500], "a": 1 }, + { "px": [352,240], "src": [96,96], "f": 0, "t": 144, "d": [83,502], "a": 1 }, + { "px": [384,240], "src": [64,96], "f": 0, "t": 142, "d": [83,504], "a": 1 }, + { "px": [480,240], "src": [96,96], "f": 0, "t": 144, "d": [83,510], "a": 1 }, + { "px": [32,32], "src": [224,96], "f": 0, "t": 152, "d": [101,66], "a": 1 }, + { "px": [64,32], "src": [224,96], "f": 0, "t": 152, "d": [101,68], "a": 1 }, + { "px": [96,32], "src": [96,0], "f": 0, "t": 6, "d": [101,70], "a": 1 }, + { "px": [128,32], "src": [224,96], "f": 0, "t": 152, "d": [101,72], "a": 1 }, + { "px": [160,32], "src": [224,96], "f": 0, "t": 152, "d": [101,74], "a": 1 }, + { "px": [192,32], "src": [192,16], "f": 0, "t": 35, "d": [101,76], "a": 1 }, + { "px": [224,32], "src": [96,0], "f": 0, "t": 6, "d": [101,78], "a": 1 }, + { "px": [256,32], "src": [224,96], "f": 0, "t": 152, "d": [101,80], "a": 1 }, + { "px": [288,32], "src": [224,96], "f": 0, "t": 152, "d": [101,82], "a": 1 }, + { "px": [320,32], "src": [96,0], "f": 0, "t": 6, "d": [101,84], "a": 1 }, + { "px": [352,32], "src": [192,16], "f": 0, "t": 35, "d": [101,86], "a": 1 }, + { "px": [384,32], "src": [96,0], "f": 0, "t": 6, "d": [101,88], "a": 1 }, + { "px": [416,32], "src": [192,16], "f": 0, "t": 35, "d": [101,90], "a": 1 }, + { "px": [448,32], "src": [224,96], "f": 0, "t": 152, "d": [101,92], "a": 1 }, + { "px": [480,32], "src": [224,96], "f": 0, "t": 152, "d": [101,94], "a": 1 }, + { "px": [48,48], "src": [96,0], "f": 0, "t": 6, "d": [101,99], "a": 1 }, + { "px": [80,48], "src": [192,16], "f": 0, "t": 35, "d": [101,101], "a": 1 }, + { "px": [112,48], "src": [192,16], "f": 0, "t": 35, "d": [101,103], "a": 1 }, + { "px": [144,48], "src": [224,96], "f": 0, "t": 152, "d": [101,105], "a": 1 }, + { "px": [176,48], "src": [96,0], "f": 0, "t": 6, "d": [101,107], "a": 1 }, + { "px": [208,48], "src": [96,0], "f": 0, "t": 6, "d": [101,109], "a": 1 }, + { "px": [240,48], "src": [96,0], "f": 0, "t": 6, "d": [101,111], "a": 1 }, + { "px": [272,48], "src": [224,96], "f": 0, "t": 152, "d": [101,113], "a": 1 }, + { "px": [304,48], "src": [224,96], "f": 0, "t": 152, "d": [101,115], "a": 1 }, + { "px": [336,48], "src": [96,0], "f": 0, "t": 6, "d": [101,117], "a": 1 }, + { "px": [368,48], "src": [96,0], "f": 0, "t": 6, "d": [101,119], "a": 1 }, + { "px": [400,48], "src": [224,96], "f": 0, "t": 152, "d": [101,121], "a": 1 }, + { "px": [432,48], "src": [96,0], "f": 0, "t": 6, "d": [101,123], "a": 1 }, + { "px": [464,48], "src": [96,0], "f": 0, "t": 6, "d": [101,125], "a": 1 }, + { "px": [496,48], "src": [96,0], "f": 0, "t": 6, "d": [101,127], "a": 1 }, + { "px": [32,64], "src": [224,96], "f": 0, "t": 152, "d": [101,130], "a": 1 }, + { "px": [480,64], "src": [224,96], "f": 0, "t": 152, "d": [101,158], "a": 1 }, + { "px": [16,80], "src": [192,16], "f": 0, "t": 35, "d": [101,161], "a": 1 }, + { "px": [48,80], "src": [224,96], "f": 0, "t": 152, "d": [101,163], "a": 1 }, + { "px": [496,80], "src": [224,96], "f": 0, "t": 152, "d": [101,191], "a": 1 }, + { "px": [0,96], "src": [224,96], "f": 0, "t": 152, "d": [101,192], "a": 1 }, + { "px": [32,96], "src": [224,96], "f": 0, "t": 152, "d": [101,194], "a": 1 }, + { "px": [480,96], "src": [96,0], "f": 0, "t": 6, "d": [101,222], "a": 1 }, + { "px": [496,112], "src": [224,96], "f": 0, "t": 152, "d": [101,255], "a": 1 }, + { "px": [480,128], "src": [224,96], "f": 0, "t": 152, "d": [101,286], "a": 1 }, + { "px": [496,144], "src": [224,96], "f": 0, "t": 152, "d": [101,319], "a": 1 }, + { "px": [480,160], "src": [96,0], "f": 0, "t": 6, "d": [101,350], "a": 1 }, + { "px": [496,176], "src": [96,0], "f": 0, "t": 6, "d": [101,383], "a": 1 }, + { "px": [0,192], "src": [96,0], "f": 0, "t": 6, "d": [101,384], "a": 1 }, + { "px": [32,192], "src": [96,0], "f": 0, "t": 6, "d": [101,386], "a": 1 }, + { "px": [480,192], "src": [96,0], "f": 0, "t": 6, "d": [101,414], "a": 1 }, + { "px": [16,208], "src": [224,96], "f": 0, "t": 152, "d": [101,417], "a": 1 }, + { "px": [48,208], "src": [96,0], "f": 0, "t": 6, "d": [101,419], "a": 1 }, + { "px": [496,208], "src": [224,96], "f": 0, "t": 152, "d": [101,447], "a": 1 }, + { "px": [32,224], "src": [96,0], "f": 0, "t": 6, "d": [101,450], "a": 1 }, + { "px": [64,224], "src": [192,16], "f": 0, "t": 35, "d": [101,452], "a": 1 }, + { "px": [96,224], "src": [192,16], "f": 0, "t": 35, "d": [101,454], "a": 1 }, + { "px": [128,224], "src": [96,0], "f": 0, "t": 6, "d": [101,456], "a": 1 }, + { "px": [160,224], "src": [192,16], "f": 0, "t": 35, "d": [101,458], "a": 1 }, + { "px": [192,224], "src": [96,0], "f": 0, "t": 6, "d": [101,460], "a": 1 }, + { "px": [224,224], "src": [192,16], "f": 0, "t": 35, "d": [101,462], "a": 1 }, + { "px": [256,224], "src": [224,96], "f": 0, "t": 152, "d": [101,464], "a": 1 }, + { "px": [288,224], "src": [96,0], "f": 0, "t": 6, "d": [101,466], "a": 1 }, + { "px": [320,224], "src": [96,0], "f": 0, "t": 6, "d": [101,468], "a": 1 }, + { "px": [352,224], "src": [96,0], "f": 0, "t": 6, "d": [101,470], "a": 1 }, + { "px": [384,224], "src": [192,16], "f": 0, "t": 35, "d": [101,472], "a": 1 }, + { "px": [480,224], "src": [96,0], "f": 0, "t": 6, "d": [101,478], "a": 1 }, + { "px": [48,240], "src": [96,0], "f": 0, "t": 6, "d": [101,483], "a": 1 }, + { "px": [80,240], "src": [192,16], "f": 0, "t": 35, "d": [101,485], "a": 1 }, + { "px": [112,240], "src": [224,96], "f": 0, "t": 152, "d": [101,487], "a": 1 }, + { "px": [144,240], "src": [224,96], "f": 0, "t": 152, "d": [101,489], "a": 1 }, + { "px": [176,240], "src": [96,0], "f": 0, "t": 6, "d": [101,491], "a": 1 }, + { "px": [208,240], "src": [96,0], "f": 0, "t": 6, "d": [101,493], "a": 1 }, + { "px": [240,240], "src": [96,0], "f": 0, "t": 6, "d": [101,495], "a": 1 }, + { "px": [272,240], "src": [96,0], "f": 0, "t": 6, "d": [101,497], "a": 1 }, + { "px": [304,240], "src": [224,96], "f": 0, "t": 152, "d": [101,499], "a": 1 }, + { "px": [336,240], "src": [192,16], "f": 0, "t": 35, "d": [101,501], "a": 1 }, + { "px": [368,240], "src": [96,0], "f": 0, "t": 6, "d": [101,503], "a": 1 }, + { "px": [496,240], "src": [192,16], "f": 0, "t": 35, "d": [101,511], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [32,0], "src": [32,32], "f": 0, "t": 48, "d": [127,2], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [96,0], "src": [32,32], "f": 0, "t": 48, "d": [127,6], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [127,8], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [192,0], "src": [32,32], "f": 0, "t": 48, "d": [127,12], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [256,0], "src": [32,32], "f": 0, "t": 48, "d": [127,16], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [127,21], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [127,23], "a": 1 }, + { "px": [384,0], "src": [32,32], "f": 0, "t": 48, "d": [127,24], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [127,25], "a": 1 }, + { "px": [416,0], "src": [32,32], "f": 0, "t": 48, "d": [127,26], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [127,27], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [127,28], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [127,31], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,32], "a": 1 }, + { "px": [16,16], "src": [32,32], "f": 0, "t": 48, "d": [127,33], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [127,34], "a": 1 }, + { "px": [48,16], "src": [32,32], "f": 0, "t": 48, "d": [127,35], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [127,36], "a": 1 }, + { "px": [80,16], "src": [32,32], "f": 0, "t": 48, "d": [127,37], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [127,38], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [127,40], "a": 1 }, + { "px": [144,16], "src": [32,32], "f": 0, "t": 48, "d": [127,41], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [127,42], "a": 1 }, + { "px": [176,16], "src": [32,32], "f": 0, "t": 48, "d": [127,43], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,44], "a": 1 }, + { "px": [208,16], "src": [32,32], "f": 0, "t": 48, "d": [127,45], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [240,16], "src": [32,32], "f": 0, "t": 48, "d": [127,47], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [127,52], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [127,54], "a": 1 }, + { "px": [368,16], "src": [32,32], "f": 0, "t": 48, "d": [127,55], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [127,56], "a": 1 }, + { "px": [400,16], "src": [32,32], "f": 0, "t": 48, "d": [127,57], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [127,58], "a": 1 }, + { "px": [432,16], "src": [32,32], "f": 0, "t": 48, "d": [127,59], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [127,60], "a": 1 }, + { "px": [464,16], "src": [32,32], "f": 0, "t": 48, "d": [127,61], "a": 1 }, + { "px": [480,16], "src": [32,32], "f": 0, "t": 48, "d": [127,62], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [127,65], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,96], "a": 1 }, + { "px": [16,48], "src": [32,32], "f": 0, "t": 48, "d": [127,97], "a": 1 }, + { "px": [0,64], "src": [32,32], "f": 0, "t": 48, "d": [127,128], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [127,129], "a": 1 }, + { "px": [0,224], "src": [32,32], "f": 0, "t": 48, "d": [127,448], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [127,449], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [127,480], "a": 1 }, + { "px": [0,0], "src": [64,96], "f": 0, "t": 142, "d": [126,0], "a": 1 }, + { "px": [64,0], "src": [64,96], "f": 0, "t": 142, "d": [126,4], "a": 1 }, + { "px": [160,0], "src": [64,96], "f": 0, "t": 142, "d": [126,10], "a": 1 }, + { "px": [320,0], "src": [96,96], "f": 0, "t": 144, "d": [126,20], "a": 1 }, + { "px": [352,0], "src": [96,96], "f": 0, "t": 144, "d": [126,22], "a": 1 }, + { "px": [480,0], "src": [64,96], "f": 0, "t": 142, "d": [126,30], "a": 1 }, + { "px": [112,16], "src": [96,96], "f": 0, "t": 144, "d": [126,39], "a": 1 }, + { "px": [272,16], "src": [96,96], "f": 0, "t": 144, "d": [126,49], "a": 1 }, + { "px": [304,16], "src": [64,96], "f": 0, "t": 142, "d": [126,51], "a": 1 }, + { "px": [336,16], "src": [64,96], "f": 0, "t": 142, "d": [126,53], "a": 1 }, + { "px": [496,16], "src": [96,96], "f": 0, "t": 144, "d": [126,63], "a": 1 }, + { "px": [0,32], "src": [64,96], "f": 0, "t": 142, "d": [126,64], "a": 1 }, + { "px": [16,240], "src": [96,96], "f": 0, "t": 144, "d": [126,481], "a": 1 }, + { "px": [80,64], "src": [256,160], "f": 0, "t": 246, "d": [12,133], "a": 1 }, + { "px": [96,64], "src": [256,160], "f": 0, "t": 246, "d": [12,134], "a": 1 }, + { "px": [112,64], "src": [256,160], "f": 0, "t": 246, "d": [12,135], "a": 1 }, + { "px": [144,64], "src": [256,160], "f": 0, "t": 246, "d": [12,137], "a": 1 }, + { "px": [160,64], "src": [256,160], "f": 0, "t": 246, "d": [12,138], "a": 1 }, + { "px": [176,64], "src": [256,160], "f": 0, "t": 246, "d": [12,139], "a": 1 }, + { "px": [192,64], "src": [256,160], "f": 0, "t": 246, "d": [12,140], "a": 1 }, + { "px": [208,64], "src": [256,160], "f": 0, "t": 246, "d": [12,141], "a": 1 }, + { "px": [240,64], "src": [256,160], "f": 0, "t": 246, "d": [12,143], "a": 1 }, + { "px": [256,64], "src": [256,160], "f": 0, "t": 246, "d": [12,144], "a": 1 }, + { "px": [272,64], "src": [256,160], "f": 0, "t": 246, "d": [12,145], "a": 1 }, + { "px": [288,64], "src": [256,160], "f": 0, "t": 246, "d": [12,146], "a": 1 }, + { "px": [304,64], "src": [256,160], "f": 0, "t": 246, "d": [12,147], "a": 1 }, + { "px": [336,64], "src": [256,160], "f": 0, "t": 246, "d": [12,149], "a": 1 }, + { "px": [368,64], "src": [256,160], "f": 0, "t": 246, "d": [12,151], "a": 1 }, + { "px": [416,64], "src": [256,160], "f": 0, "t": 246, "d": [12,154], "a": 1 }, + { "px": [432,64], "src": [256,160], "f": 0, "t": 246, "d": [12,155], "a": 1 }, + { "px": [16,112], "src": [256,160], "f": 0, "t": 246, "d": [12,225], "a": 1 }, + { "px": [48,112], "src": [256,160], "f": 0, "t": 246, "d": [12,227], "a": 1 }, + { "px": [80,208], "src": [256,96], "f": 0, "t": 154, "d": [9,421], "a": 1 }, + { "px": [96,208], "src": [256,96], "f": 0, "t": 154, "d": [9,422], "a": 1 }, + { "px": [128,208], "src": [256,96], "f": 0, "t": 154, "d": [9,424], "a": 1 }, + { "px": [144,208], "src": [256,96], "f": 0, "t": 154, "d": [9,425], "a": 1 }, + { "px": [160,208], "src": [256,96], "f": 0, "t": 154, "d": [9,426], "a": 1 }, + { "px": [336,208], "src": [256,96], "f": 0, "t": 154, "d": [9,437], "a": 1 }, + { "px": [352,208], "src": [256,96], "f": 0, "t": 154, "d": [9,438], "a": 1 }, + { "px": [368,208], "src": [256,96], "f": 0, "t": 154, "d": [9,439], "a": 1 }, + { "px": [384,208], "src": [256,96], "f": 0, "t": 154, "d": [9,440], "a": 1 }, + { "px": [64,80], "src": [224,128], "f": 1, "t": 198, "d": [10,164], "a": 1 }, + { "px": [464,80], "src": [224,128], "f": 0, "t": 198, "d": [10,189], "a": 1 }, + { "px": [64,96], "src": [224,128], "f": 1, "t": 198, "d": [10,196], "a": 1 }, + { "px": [464,96], "src": [224,128], "f": 0, "t": 198, "d": [10,221], "a": 1 }, + { "px": [464,112], "src": [224,128], "f": 0, "t": 198, "d": [10,253], "a": 1 }, + { "px": [0,128], "src": [224,128], "f": 1, "t": 198, "d": [10,256], "a": 1 }, + { "px": [464,128], "src": [224,128], "f": 0, "t": 198, "d": [10,285], "a": 1 }, + { "px": [0,144], "src": [224,128], "f": 1, "t": 198, "d": [10,288], "a": 1 }, + { "px": [464,144], "src": [224,128], "f": 0, "t": 198, "d": [10,317], "a": 1 }, + { "px": [0,160], "src": [224,128], "f": 1, "t": 198, "d": [10,320], "a": 1 }, + { "px": [464,160], "src": [224,128], "f": 0, "t": 198, "d": [10,349], "a": 1 }, + { "px": [464,176], "src": [224,128], "f": 0, "t": 198, "d": [10,381], "a": 1 }, + { "px": [64,192], "src": [224,128], "f": 1, "t": 198, "d": [10,388], "a": 1 }, + { "px": [464,192], "src": [224,128], "f": 0, "t": 198, "d": [10,413], "a": 1 }, + { "px": [400,224], "src": [224,128], "f": 1, "t": 198, "d": [10,473], "a": 1 }, + { "px": [464,224], "src": [224,128], "f": 0, "t": 198, "d": [10,477], "a": 1 }, + { "px": [400,240], "src": [224,128], "f": 1, "t": 198, "d": [10,505], "a": 1 }, + { "px": [464,240], "src": [224,128], "f": 0, "t": 198, "d": [10,509], "a": 1 }, + { "px": [64,112], "src": [224,96], "f": 3, "t": 152, "d": [11,228], "a": 1 }, + { "px": [416,208], "src": [224,96], "f": 1, "t": 152, "d": [11,442], "a": 1 }, + { "px": [448,208], "src": [224,96], "f": 0, "t": 152, "d": [11,444], "a": 1 }, + { "px": [64,64], "src": [224,96], "f": 0, "t": 152, "d": [14,132], "a": 1 }, + { "px": [464,64], "src": [224,96], "f": 1, "t": 152, "d": [14,157], "a": 1 }, + { "px": [0,112], "src": [224,96], "f": 0, "t": 152, "d": [14,224], "a": 1 }, + { "px": [0,176], "src": [224,96], "f": 2, "t": 152, "d": [14,352], "a": 1 }, + { "px": [64,208], "src": [224,96], "f": 2, "t": 152, "d": [14,420], "a": 1 }, + { "px": [400,208], "src": [224,96], "f": 0, "t": 152, "d": [14,441], "a": 1 }, + { "px": [464,208], "src": [224,96], "f": 1, "t": 152, "d": [14,445], "a": 1 }, + { "px": [128,64], "src": [160,192], "f": 0, "t": 286, "d": [78,136], "a": 1 }, + { "px": [224,64], "src": [192,192], "f": 0, "t": 288, "d": [78,142], "a": 1 }, + { "px": [320,64], "src": [192,192], "f": 0, "t": 288, "d": [78,148], "a": 1 }, + { "px": [352,64], "src": [160,192], "f": 0, "t": 286, "d": [78,150], "a": 1 }, + { "px": [384,64], "src": [192,192], "f": 0, "t": 288, "d": [78,152], "a": 1 }, + { "px": [400,64], "src": [192,192], "f": 0, "t": 288, "d": [78,153], "a": 1 }, + { "px": [448,64], "src": [192,192], "f": 0, "t": 288, "d": [78,156], "a": 1 }, + { "px": [32,112], "src": [160,192], "f": 0, "t": 286, "d": [78,226], "a": 1 }, + { "px": [16,176], "src": [32,0], "f": 0, "t": 2, "d": [80,353], "a": 1 }, + { "px": [32,176], "src": [32,0], "f": 0, "t": 2, "d": [80,354], "a": 1 }, + { "px": [48,176], "src": [32,0], "f": 0, "t": 2, "d": [80,355], "a": 1 }, + { "px": [64,176], "src": [32,0], "f": 0, "t": 2, "d": [80,356], "a": 1 }, + { "px": [112,208], "src": [32,0], "f": 0, "t": 2, "d": [80,423], "a": 1 }, + { "px": [176,208], "src": [32,0], "f": 0, "t": 2, "d": [80,427], "a": 1 }, + { "px": [192,208], "src": [32,0], "f": 0, "t": 2, "d": [80,428], "a": 1 }, + { "px": [208,208], "src": [32,0], "f": 0, "t": 2, "d": [80,429], "a": 1 }, + { "px": [224,208], "src": [32,0], "f": 0, "t": 2, "d": [80,430], "a": 1 }, + { "px": [240,208], "src": [32,0], "f": 0, "t": 2, "d": [80,431], "a": 1 }, + { "px": [256,208], "src": [32,0], "f": 0, "t": 2, "d": [80,432], "a": 1 }, + { "px": [272,208], "src": [32,0], "f": 0, "t": 2, "d": [80,433], "a": 1 }, + { "px": [288,208], "src": [32,0], "f": 0, "t": 2, "d": [80,434], "a": 1 }, + { "px": [304,208], "src": [32,0], "f": 0, "t": 2, "d": [80,435], "a": 1 }, + { "px": [320,208], "src": [32,0], "f": 0, "t": 2, "d": [80,436], "a": 1 }, + { "px": [16,160], "src": [0,96], "f": 0, "t": 138, "d": [110,321], "a": 1 }, + { "px": [32,160], "src": [32,96], "f": 0, "t": 140, "d": [110,322], "a": 1 }, + { "px": [48,160], "src": [32,96], "f": 0, "t": 140, "d": [110,323], "a": 1 }, + { "px": [96,192], "src": [0,96], "f": 0, "t": 138, "d": [110,390], "a": 1 }, + { "px": [128,192], "src": [32,96], "f": 0, "t": 140, "d": [110,392], "a": 1 }, + { "px": [160,192], "src": [32,96], "f": 0, "t": 140, "d": [110,394], "a": 1 }, + { "px": [208,192], "src": [0,96], "f": 0, "t": 138, "d": [110,397], "a": 1 }, + { "px": [224,192], "src": [0,96], "f": 0, "t": 138, "d": [110,398], "a": 1 }, + { "px": [256,192], "src": [32,96], "f": 0, "t": 140, "d": [110,400], "a": 1 }, + { "px": [272,192], "src": [32,96], "f": 0, "t": 140, "d": [110,401], "a": 1 }, + { "px": [304,192], "src": [0,96], "f": 0, "t": 138, "d": [110,403], "a": 1 }, + { "px": [352,192], "src": [0,96], "f": 0, "t": 138, "d": [110,406], "a": 1 }, + { "px": [384,192], "src": [0,96], "f": 0, "t": 138, "d": [110,408], "a": 1 }, + { "px": [400,192], "src": [32,96], "f": 0, "t": 140, "d": [110,409], "a": 1 } + ], + "seed": 8662977, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 32, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a375f489-66b0-11ec-9cd7-c3612a266203", + "levelId": 85, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [96,80], "src": [320,272], "f": 0, "t": 411, "d": [108,166], "a": 1 }, + { "px": [112,80], "src": [320,272], "f": 0, "t": 411, "d": [108,167], "a": 1 }, + { "px": [128,80], "src": [320,272], "f": 0, "t": 411, "d": [108,168], "a": 1 }, + { "px": [144,80], "src": [320,272], "f": 0, "t": 411, "d": [108,169], "a": 1 }, + { "px": [176,80], "src": [320,272], "f": 0, "t": 411, "d": [108,171], "a": 1 }, + { "px": [192,80], "src": [320,272], "f": 0, "t": 411, "d": [108,172], "a": 1 }, + { "px": [208,80], "src": [320,272], "f": 0, "t": 411, "d": [108,173], "a": 1 }, + { "px": [224,80], "src": [320,272], "f": 0, "t": 411, "d": [108,174], "a": 1 }, + { "px": [256,80], "src": [320,272], "f": 0, "t": 411, "d": [108,176], "a": 1 }, + { "px": [272,80], "src": [320,272], "f": 0, "t": 411, "d": [108,177], "a": 1 }, + { "px": [288,80], "src": [320,272], "f": 0, "t": 411, "d": [108,178], "a": 1 }, + { "px": [304,80], "src": [320,272], "f": 0, "t": 411, "d": [108,179], "a": 1 }, + { "px": [336,80], "src": [320,272], "f": 0, "t": 411, "d": [108,181], "a": 1 }, + { "px": [368,80], "src": [320,272], "f": 0, "t": 411, "d": [108,183], "a": 1 }, + { "px": [432,80], "src": [320,272], "f": 0, "t": 411, "d": [108,187], "a": 1 }, + { "px": [96,96], "src": [320,272], "f": 0, "t": 411, "d": [108,198], "a": 1 }, + { "px": [112,96], "src": [320,272], "f": 0, "t": 411, "d": [108,199], "a": 1 }, + { "px": [128,96], "src": [320,272], "f": 0, "t": 411, "d": [108,200], "a": 1 }, + { "px": [144,96], "src": [320,272], "f": 0, "t": 411, "d": [108,201], "a": 1 }, + { "px": [160,96], "src": [320,272], "f": 0, "t": 411, "d": [108,202], "a": 1 }, + { "px": [176,96], "src": [320,272], "f": 0, "t": 411, "d": [108,203], "a": 1 }, + { "px": [192,96], "src": [320,272], "f": 0, "t": 411, "d": [108,204], "a": 1 }, + { "px": [208,96], "src": [320,272], "f": 0, "t": 411, "d": [108,205], "a": 1 }, + { "px": [224,96], "src": [320,272], "f": 0, "t": 411, "d": [108,206], "a": 1 }, + { "px": [240,96], "src": [320,272], "f": 0, "t": 411, "d": [108,207], "a": 1 }, + { "px": [256,96], "src": [320,272], "f": 0, "t": 411, "d": [108,208], "a": 1 }, + { "px": [288,96], "src": [320,272], "f": 0, "t": 411, "d": [108,210], "a": 1 }, + { "px": [304,96], "src": [320,272], "f": 0, "t": 411, "d": [108,211], "a": 1 }, + { "px": [320,96], "src": [320,272], "f": 0, "t": 411, "d": [108,212], "a": 1 }, + { "px": [336,96], "src": [320,272], "f": 0, "t": 411, "d": [108,213], "a": 1 }, + { "px": [352,96], "src": [320,272], "f": 0, "t": 411, "d": [108,214], "a": 1 }, + { "px": [368,96], "src": [320,272], "f": 0, "t": 411, "d": [108,215], "a": 1 }, + { "px": [384,96], "src": [320,272], "f": 0, "t": 411, "d": [108,216], "a": 1 }, + { "px": [400,96], "src": [320,272], "f": 0, "t": 411, "d": [108,217], "a": 1 }, + { "px": [416,96], "src": [320,272], "f": 0, "t": 411, "d": [108,218], "a": 1 }, + { "px": [432,96], "src": [320,272], "f": 0, "t": 411, "d": [108,219], "a": 1 }, + { "px": [96,112], "src": [320,272], "f": 0, "t": 411, "d": [108,230], "a": 1 }, + { "px": [112,112], "src": [320,272], "f": 0, "t": 411, "d": [108,231], "a": 1 }, + { "px": [128,112], "src": [320,272], "f": 0, "t": 411, "d": [108,232], "a": 1 }, + { "px": [144,112], "src": [320,272], "f": 0, "t": 411, "d": [108,233], "a": 1 }, + { "px": [160,112], "src": [320,272], "f": 0, "t": 411, "d": [108,234], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [108,235], "a": 1 }, + { "px": [192,112], "src": [320,272], "f": 0, "t": 411, "d": [108,236], "a": 1 }, + { "px": [208,112], "src": [320,272], "f": 0, "t": 411, "d": [108,237], "a": 1 }, + { "px": [224,112], "src": [320,272], "f": 0, "t": 411, "d": [108,238], "a": 1 }, + { "px": [240,112], "src": [320,272], "f": 0, "t": 411, "d": [108,239], "a": 1 }, + { "px": [256,112], "src": [320,272], "f": 0, "t": 411, "d": [108,240], "a": 1 }, + { "px": [272,112], "src": [320,272], "f": 0, "t": 411, "d": [108,241], "a": 1 }, + { "px": [288,112], "src": [320,272], "f": 0, "t": 411, "d": [108,242], "a": 1 }, + { "px": [304,112], "src": [320,272], "f": 0, "t": 411, "d": [108,243], "a": 1 }, + { "px": [320,112], "src": [320,272], "f": 0, "t": 411, "d": [108,244], "a": 1 }, + { "px": [336,112], "src": [320,272], "f": 0, "t": 411, "d": [108,245], "a": 1 }, + { "px": [352,112], "src": [320,272], "f": 0, "t": 411, "d": [108,246], "a": 1 }, + { "px": [368,112], "src": [320,272], "f": 0, "t": 411, "d": [108,247], "a": 1 }, + { "px": [384,112], "src": [320,272], "f": 0, "t": 411, "d": [108,248], "a": 1 }, + { "px": [400,112], "src": [320,272], "f": 0, "t": 411, "d": [108,249], "a": 1 }, + { "px": [416,112], "src": [320,272], "f": 0, "t": 411, "d": [108,250], "a": 1 }, + { "px": [432,112], "src": [320,272], "f": 0, "t": 411, "d": [108,251], "a": 1 }, + { "px": [32,128], "src": [320,272], "f": 0, "t": 411, "d": [108,258], "a": 1 }, + { "px": [48,128], "src": [320,272], "f": 0, "t": 411, "d": [108,259], "a": 1 }, + { "px": [64,128], "src": [320,272], "f": 0, "t": 411, "d": [108,260], "a": 1 }, + { "px": [80,128], "src": [320,272], "f": 0, "t": 411, "d": [108,261], "a": 1 }, + { "px": [96,128], "src": [320,272], "f": 0, "t": 411, "d": [108,262], "a": 1 }, + { "px": [112,128], "src": [320,272], "f": 0, "t": 411, "d": [108,263], "a": 1 }, + { "px": [128,128], "src": [320,272], "f": 0, "t": 411, "d": [108,264], "a": 1 }, + { "px": [144,128], "src": [320,272], "f": 0, "t": 411, "d": [108,265], "a": 1 }, + { "px": [160,128], "src": [320,272], "f": 0, "t": 411, "d": [108,266], "a": 1 }, + { "px": [176,128], "src": [320,272], "f": 0, "t": 411, "d": [108,267], "a": 1 }, + { "px": [192,128], "src": [320,272], "f": 0, "t": 411, "d": [108,268], "a": 1 }, + { "px": [208,128], "src": [320,272], "f": 0, "t": 411, "d": [108,269], "a": 1 }, + { "px": [224,128], "src": [320,272], "f": 0, "t": 411, "d": [108,270], "a": 1 }, + { "px": [240,128], "src": [320,272], "f": 0, "t": 411, "d": [108,271], "a": 1 }, + { "px": [256,128], "src": [320,272], "f": 0, "t": 411, "d": [108,272], "a": 1 }, + { "px": [272,128], "src": [320,272], "f": 0, "t": 411, "d": [108,273], "a": 1 }, + { "px": [304,128], "src": [320,272], "f": 0, "t": 411, "d": [108,275], "a": 1 }, + { "px": [320,128], "src": [320,272], "f": 0, "t": 411, "d": [108,276], "a": 1 }, + { "px": [336,128], "src": [320,272], "f": 0, "t": 411, "d": [108,277], "a": 1 }, + { "px": [352,128], "src": [320,272], "f": 0, "t": 411, "d": [108,278], "a": 1 }, + { "px": [368,128], "src": [320,272], "f": 0, "t": 411, "d": [108,279], "a": 1 }, + { "px": [400,128], "src": [320,272], "f": 0, "t": 411, "d": [108,281], "a": 1 }, + { "px": [416,128], "src": [320,272], "f": 0, "t": 411, "d": [108,282], "a": 1 }, + { "px": [432,128], "src": [320,272], "f": 0, "t": 411, "d": [108,283], "a": 1 }, + { "px": [32,144], "src": [320,272], "f": 0, "t": 411, "d": [108,290], "a": 1 }, + { "px": [48,144], "src": [320,272], "f": 0, "t": 411, "d": [108,291], "a": 1 }, + { "px": [64,144], "src": [320,272], "f": 0, "t": 411, "d": [108,292], "a": 1 }, + { "px": [80,144], "src": [320,272], "f": 0, "t": 411, "d": [108,293], "a": 1 }, + { "px": [96,144], "src": [320,272], "f": 0, "t": 411, "d": [108,294], "a": 1 }, + { "px": [112,144], "src": [320,272], "f": 0, "t": 411, "d": [108,295], "a": 1 }, + { "px": [128,144], "src": [320,272], "f": 0, "t": 411, "d": [108,296], "a": 1 }, + { "px": [144,144], "src": [320,272], "f": 0, "t": 411, "d": [108,297], "a": 1 }, + { "px": [160,144], "src": [320,272], "f": 0, "t": 411, "d": [108,298], "a": 1 }, + { "px": [176,144], "src": [320,272], "f": 0, "t": 411, "d": [108,299], "a": 1 }, + { "px": [192,144], "src": [320,272], "f": 0, "t": 411, "d": [108,300], "a": 1 }, + { "px": [208,144], "src": [320,272], "f": 0, "t": 411, "d": [108,301], "a": 1 }, + { "px": [224,144], "src": [320,272], "f": 0, "t": 411, "d": [108,302], "a": 1 }, + { "px": [240,144], "src": [320,272], "f": 0, "t": 411, "d": [108,303], "a": 1 }, + { "px": [256,144], "src": [320,272], "f": 0, "t": 411, "d": [108,304], "a": 1 }, + { "px": [272,144], "src": [320,272], "f": 0, "t": 411, "d": [108,305], "a": 1 }, + { "px": [288,144], "src": [320,272], "f": 0, "t": 411, "d": [108,306], "a": 1 }, + { "px": [304,144], "src": [320,272], "f": 0, "t": 411, "d": [108,307], "a": 1 }, + { "px": [320,144], "src": [320,272], "f": 0, "t": 411, "d": [108,308], "a": 1 }, + { "px": [336,144], "src": [320,272], "f": 0, "t": 411, "d": [108,309], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [108,311], "a": 1 }, + { "px": [384,144], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [400,144], "src": [320,272], "f": 0, "t": 411, "d": [108,313], "a": 1 }, + { "px": [416,144], "src": [320,272], "f": 0, "t": 411, "d": [108,314], "a": 1 }, + { "px": [432,144], "src": [320,272], "f": 0, "t": 411, "d": [108,315], "a": 1 }, + { "px": [32,160], "src": [320,272], "f": 0, "t": 411, "d": [108,322], "a": 1 }, + { "px": [48,160], "src": [320,272], "f": 0, "t": 411, "d": [108,323], "a": 1 }, + { "px": [64,160], "src": [320,272], "f": 0, "t": 411, "d": [108,324], "a": 1 }, + { "px": [96,160], "src": [320,272], "f": 0, "t": 411, "d": [108,326], "a": 1 }, + { "px": [112,160], "src": [320,272], "f": 0, "t": 411, "d": [108,327], "a": 1 }, + { "px": [128,160], "src": [320,272], "f": 0, "t": 411, "d": [108,328], "a": 1 }, + { "px": [144,160], "src": [320,272], "f": 0, "t": 411, "d": [108,329], "a": 1 }, + { "px": [160,160], "src": [320,272], "f": 0, "t": 411, "d": [108,330], "a": 1 }, + { "px": [176,160], "src": [320,272], "f": 0, "t": 411, "d": [108,331], "a": 1 }, + { "px": [192,160], "src": [320,272], "f": 0, "t": 411, "d": [108,332], "a": 1 }, + { "px": [208,160], "src": [320,272], "f": 0, "t": 411, "d": [108,333], "a": 1 }, + { "px": [224,160], "src": [320,272], "f": 0, "t": 411, "d": [108,334], "a": 1 }, + { "px": [240,160], "src": [320,272], "f": 0, "t": 411, "d": [108,335], "a": 1 }, + { "px": [256,160], "src": [320,272], "f": 0, "t": 411, "d": [108,336], "a": 1 }, + { "px": [272,160], "src": [320,272], "f": 0, "t": 411, "d": [108,337], "a": 1 }, + { "px": [288,160], "src": [320,272], "f": 0, "t": 411, "d": [108,338], "a": 1 }, + { "px": [304,160], "src": [320,272], "f": 0, "t": 411, "d": [108,339], "a": 1 }, + { "px": [320,160], "src": [320,272], "f": 0, "t": 411, "d": [108,340], "a": 1 }, + { "px": [336,160], "src": [320,272], "f": 0, "t": 411, "d": [108,341], "a": 1 }, + { "px": [352,160], "src": [320,272], "f": 0, "t": 411, "d": [108,342], "a": 1 }, + { "px": [368,160], "src": [320,272], "f": 0, "t": 411, "d": [108,343], "a": 1 }, + { "px": [384,160], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [400,160], "src": [320,272], "f": 0, "t": 411, "d": [108,345], "a": 1 }, + { "px": [416,160], "src": [320,272], "f": 0, "t": 411, "d": [108,346], "a": 1 }, + { "px": [432,160], "src": [320,272], "f": 0, "t": 411, "d": [108,347], "a": 1 }, + { "px": [96,176], "src": [320,272], "f": 0, "t": 411, "d": [108,358], "a": 1 }, + { "px": [112,176], "src": [320,272], "f": 0, "t": 411, "d": [108,359], "a": 1 }, + { "px": [128,176], "src": [320,272], "f": 0, "t": 411, "d": [108,360], "a": 1 }, + { "px": [144,176], "src": [320,272], "f": 0, "t": 411, "d": [108,361], "a": 1 }, + { "px": [160,176], "src": [320,272], "f": 0, "t": 411, "d": [108,362], "a": 1 }, + { "px": [176,176], "src": [320,272], "f": 0, "t": 411, "d": [108,363], "a": 1 }, + { "px": [192,176], "src": [320,272], "f": 0, "t": 411, "d": [108,364], "a": 1 }, + { "px": [208,176], "src": [320,272], "f": 0, "t": 411, "d": [108,365], "a": 1 }, + { "px": [224,176], "src": [320,272], "f": 0, "t": 411, "d": [108,366], "a": 1 }, + { "px": [240,176], "src": [320,272], "f": 0, "t": 411, "d": [108,367], "a": 1 }, + { "px": [256,176], "src": [320,272], "f": 0, "t": 411, "d": [108,368], "a": 1 }, + { "px": [272,176], "src": [320,272], "f": 0, "t": 411, "d": [108,369], "a": 1 }, + { "px": [288,176], "src": [320,272], "f": 0, "t": 411, "d": [108,370], "a": 1 }, + { "px": [304,176], "src": [320,272], "f": 0, "t": 411, "d": [108,371], "a": 1 }, + { "px": [320,176], "src": [320,272], "f": 0, "t": 411, "d": [108,372], "a": 1 }, + { "px": [336,176], "src": [320,272], "f": 0, "t": 411, "d": [108,373], "a": 1 }, + { "px": [352,176], "src": [320,272], "f": 0, "t": 411, "d": [108,374], "a": 1 }, + { "px": [368,176], "src": [320,272], "f": 0, "t": 411, "d": [108,375], "a": 1 }, + { "px": [384,176], "src": [320,272], "f": 0, "t": 411, "d": [108,376], "a": 1 }, + { "px": [400,176], "src": [320,272], "f": 0, "t": 411, "d": [108,377], "a": 1 }, + { "px": [416,176], "src": [320,272], "f": 0, "t": 411, "d": [108,378], "a": 1 }, + { "px": [432,176], "src": [320,272], "f": 0, "t": 411, "d": [108,379], "a": 1 }, + { "px": [96,192], "src": [320,272], "f": 0, "t": 411, "d": [108,390], "a": 1 }, + { "px": [112,192], "src": [320,272], "f": 0, "t": 411, "d": [108,391], "a": 1 }, + { "px": [128,192], "src": [320,272], "f": 0, "t": 411, "d": [108,392], "a": 1 }, + { "px": [144,192], "src": [320,272], "f": 0, "t": 411, "d": [108,393], "a": 1 }, + { "px": [160,192], "src": [320,272], "f": 0, "t": 411, "d": [108,394], "a": 1 }, + { "px": [176,192], "src": [320,272], "f": 0, "t": 411, "d": [108,395], "a": 1 }, + { "px": [192,192], "src": [320,272], "f": 0, "t": 411, "d": [108,396], "a": 1 }, + { "px": [208,192], "src": [320,272], "f": 0, "t": 411, "d": [108,397], "a": 1 }, + { "px": [224,192], "src": [320,272], "f": 0, "t": 411, "d": [108,398], "a": 1 }, + { "px": [240,192], "src": [320,272], "f": 0, "t": 411, "d": [108,399], "a": 1 }, + { "px": [256,192], "src": [320,272], "f": 0, "t": 411, "d": [108,400], "a": 1 }, + { "px": [272,192], "src": [320,272], "f": 0, "t": 411, "d": [108,401], "a": 1 }, + { "px": [288,192], "src": [320,272], "f": 0, "t": 411, "d": [108,402], "a": 1 }, + { "px": [304,192], "src": [320,272], "f": 0, "t": 411, "d": [108,403], "a": 1 }, + { "px": [336,192], "src": [320,272], "f": 0, "t": 411, "d": [108,405], "a": 1 }, + { "px": [352,192], "src": [320,272], "f": 0, "t": 411, "d": [108,406], "a": 1 }, + { "px": [368,192], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [384,192], "src": [320,272], "f": 0, "t": 411, "d": [108,408], "a": 1 }, + { "px": [400,192], "src": [320,272], "f": 0, "t": 411, "d": [108,409], "a": 1 }, + { "px": [416,192], "src": [320,272], "f": 0, "t": 411, "d": [108,410], "a": 1 }, + { "px": [432,192], "src": [320,272], "f": 0, "t": 411, "d": [108,411], "a": 1 }, + { "px": [432,224], "src": [320,272], "f": 0, "t": 411, "d": [108,475], "a": 1 }, + { "px": [432,240], "src": [320,272], "f": 0, "t": 411, "d": [108,507], "a": 1 }, + { "px": [432,80], "src": [256,240], "f": 0, "t": 361, "d": [107,188], "a": 1 }, + { "px": [448,80], "src": [272,240], "f": 0, "t": 362, "d": [107,188], "a": 1 }, + { "px": [96,96], "src": [256,240], "f": 1, "t": 361, "d": [107,197], "a": 1 }, + { "px": [80,96], "src": [272,240], "f": 1, "t": 362, "d": [107,197], "a": 1 }, + { "px": [432,96], "src": [256,240], "f": 0, "t": 361, "d": [107,220], "a": 1 }, + { "px": [448,96], "src": [272,240], "f": 0, "t": 362, "d": [107,220], "a": 1 }, + { "px": [96,112], "src": [256,240], "f": 1, "t": 361, "d": [107,229], "a": 1 }, + { "px": [80,112], "src": [272,240], "f": 1, "t": 362, "d": [107,229], "a": 1 }, + { "px": [432,112], "src": [256,240], "f": 0, "t": 361, "d": [107,252], "a": 1 }, + { "px": [448,112], "src": [272,240], "f": 0, "t": 362, "d": [107,252], "a": 1 }, + { "px": [32,128], "src": [256,240], "f": 1, "t": 361, "d": [107,257], "a": 1 }, + { "px": [16,128], "src": [272,240], "f": 1, "t": 362, "d": [107,257], "a": 1 }, + { "px": [432,128], "src": [256,240], "f": 0, "t": 361, "d": [107,284], "a": 1 }, + { "px": [448,128], "src": [272,240], "f": 0, "t": 362, "d": [107,284], "a": 1 }, + { "px": [32,144], "src": [256,240], "f": 1, "t": 361, "d": [107,289], "a": 1 }, + { "px": [16,144], "src": [272,240], "f": 1, "t": 362, "d": [107,289], "a": 1 }, + { "px": [432,144], "src": [256,240], "f": 0, "t": 361, "d": [107,316], "a": 1 }, + { "px": [448,144], "src": [272,240], "f": 0, "t": 362, "d": [107,316], "a": 1 }, + { "px": [432,160], "src": [256,240], "f": 0, "t": 361, "d": [107,348], "a": 1 }, + { "px": [448,160], "src": [272,240], "f": 0, "t": 362, "d": [107,348], "a": 1 }, + { "px": [96,176], "src": [256,240], "f": 1, "t": 361, "d": [107,357], "a": 1 }, + { "px": [80,176], "src": [272,240], "f": 1, "t": 362, "d": [107,357], "a": 1 }, + { "px": [432,176], "src": [256,240], "f": 0, "t": 361, "d": [107,380], "a": 1 }, + { "px": [448,176], "src": [272,240], "f": 0, "t": 362, "d": [107,380], "a": 1 }, + { "px": [432,192], "src": [256,240], "f": 0, "t": 361, "d": [107,412], "a": 1 }, + { "px": [448,192], "src": [272,240], "f": 0, "t": 362, "d": [107,412], "a": 1 }, + { "px": [416,208], "src": [256,240], "f": 0, "t": 361, "d": [107,443], "a": 1 }, + { "px": [432,208], "src": [272,240], "f": 0, "t": 362, "d": [107,443], "a": 1 }, + { "px": [432,224], "src": [256,240], "f": 1, "t": 361, "d": [107,474], "a": 1 }, + { "px": [416,224], "src": [272,240], "f": 1, "t": 362, "d": [107,474], "a": 1 }, + { "px": [432,224], "src": [256,240], "f": 0, "t": 361, "d": [107,476], "a": 1 }, + { "px": [448,224], "src": [272,240], "f": 0, "t": 362, "d": [107,476], "a": 1 }, + { "px": [432,240], "src": [256,240], "f": 1, "t": 361, "d": [107,506], "a": 1 }, + { "px": [416,240], "src": [272,240], "f": 1, "t": 362, "d": [107,506], "a": 1 }, + { "px": [432,240], "src": [256,240], "f": 0, "t": 361, "d": [107,508], "a": 1 }, + { "px": [448,240], "src": [272,240], "f": 0, "t": 362, "d": [107,508], "a": 1 }, + { "px": [256,96], "src": [256,240], "f": 0, "t": 361, "d": [105,209], "a": 1 }, + { "px": [272,96], "src": [272,240], "f": 0, "t": 362, "d": [105,209], "a": 1 }, + { "px": [288,96], "src": [288,240], "f": 0, "t": 363, "d": [105,209], "a": 1 }, + { "px": [272,128], "src": [256,240], "f": 0, "t": 361, "d": [105,274], "a": 1 }, + { "px": [288,128], "src": [272,240], "f": 0, "t": 362, "d": [105,274], "a": 1 }, + { "px": [304,128], "src": [288,240], "f": 0, "t": 363, "d": [105,274], "a": 1 }, + { "px": [368,128], "src": [256,240], "f": 0, "t": 361, "d": [105,280], "a": 1 }, + { "px": [384,128], "src": [272,240], "f": 0, "t": 362, "d": [105,280], "a": 1 }, + { "px": [400,128], "src": [288,240], "f": 0, "t": 363, "d": [105,280], "a": 1 }, + { "px": [64,160], "src": [256,240], "f": 0, "t": 361, "d": [105,325], "a": 1 }, + { "px": [80,160], "src": [272,240], "f": 0, "t": 362, "d": [105,325], "a": 1 }, + { "px": [96,160], "src": [288,240], "f": 0, "t": 363, "d": [105,325], "a": 1 }, + { "px": [224,112], "src": [144,240], "f": 2, "t": 354, "d": [112,175], "a": 1 }, + { "px": [224,96], "src": [144,256], "f": 2, "t": 377, "d": [112,175], "a": 1 }, + { "px": [224,80], "src": [144,272], "f": 2, "t": 400, "d": [112,175], "a": 1 }, + { "px": [240,112], "src": [160,240], "f": 2, "t": 355, "d": [112,175], "a": 1 }, + { "px": [240,96], "src": [160,256], "f": 2, "t": 378, "d": [112,175], "a": 1 }, + { "px": [240,80], "src": [160,272], "f": 2, "t": 401, "d": [112,175], "a": 1 }, + { "px": [256,112], "src": [176,240], "f": 2, "t": 356, "d": [112,175], "a": 1 }, + { "px": [256,96], "src": [176,256], "f": 2, "t": 379, "d": [112,175], "a": 1 }, + { "px": [256,80], "src": [176,272], "f": 2, "t": 402, "d": [112,175], "a": 1 }, + { "px": [304,112], "src": [144,240], "f": 2, "t": 354, "d": [112,180], "a": 1 }, + { "px": [304,96], "src": [144,256], "f": 2, "t": 377, "d": [112,180], "a": 1 }, + { "px": [304,80], "src": [144,272], "f": 2, "t": 400, "d": [112,180], "a": 1 }, + { "px": [320,112], "src": [160,240], "f": 2, "t": 355, "d": [112,180], "a": 1 }, + { "px": [320,96], "src": [160,256], "f": 2, "t": 378, "d": [112,180], "a": 1 }, + { "px": [320,80], "src": [160,272], "f": 2, "t": 401, "d": [112,180], "a": 1 }, + { "px": [336,112], "src": [176,240], "f": 2, "t": 356, "d": [112,180], "a": 1 }, + { "px": [336,96], "src": [176,256], "f": 2, "t": 379, "d": [112,180], "a": 1 }, + { "px": [336,80], "src": [176,272], "f": 2, "t": 402, "d": [112,180], "a": 1 }, + { "px": [384,112], "src": [144,240], "f": 2, "t": 354, "d": [112,185], "a": 1 }, + { "px": [384,96], "src": [144,256], "f": 2, "t": 377, "d": [112,185], "a": 1 }, + { "px": [384,80], "src": [144,272], "f": 2, "t": 400, "d": [112,185], "a": 1 }, + { "px": [400,112], "src": [160,240], "f": 2, "t": 355, "d": [112,185], "a": 1 }, + { "px": [400,96], "src": [160,256], "f": 2, "t": 378, "d": [112,185], "a": 1 }, + { "px": [400,80], "src": [160,272], "f": 2, "t": 401, "d": [112,185], "a": 1 }, + { "px": [416,112], "src": [176,240], "f": 2, "t": 356, "d": [112,185], "a": 1 }, + { "px": [416,96], "src": [176,256], "f": 2, "t": 379, "d": [112,185], "a": 1 }, + { "px": [416,80], "src": [176,272], "f": 2, "t": 402, "d": [112,185], "a": 1 }, + { "px": [304,160], "src": [144,240], "f": 0, "t": 354, "d": [112,404], "a": 1 }, + { "px": [304,176], "src": [144,256], "f": 0, "t": 377, "d": [112,404], "a": 1 }, + { "px": [304,192], "src": [144,272], "f": 0, "t": 400, "d": [112,404], "a": 1 }, + { "px": [320,160], "src": [160,240], "f": 0, "t": 355, "d": [112,404], "a": 1 }, + { "px": [320,176], "src": [160,256], "f": 0, "t": 378, "d": [112,404], "a": 1 }, + { "px": [320,192], "src": [160,272], "f": 0, "t": 401, "d": [112,404], "a": 1 }, + { "px": [336,160], "src": [176,240], "f": 0, "t": 356, "d": [112,404], "a": 1 }, + { "px": [336,176], "src": [176,256], "f": 0, "t": 379, "d": [112,404], "a": 1 }, + { "px": [336,192], "src": [176,272], "f": 0, "t": 402, "d": [112,404], "a": 1 }, + { "px": [80,96], "src": [192,304], "f": 2, "t": 449, "d": [113,165], "a": 1 }, + { "px": [80,80], "src": [192,320], "f": 2, "t": 472, "d": [113,165], "a": 1 }, + { "px": [96,96], "src": [208,304], "f": 2, "t": 450, "d": [113,165], "a": 1 }, + { "px": [96,80], "src": [208,320], "f": 2, "t": 473, "d": [113,165], "a": 1 }, + { "px": [112,96], "src": [224,304], "f": 2, "t": 451, "d": [113,165], "a": 1 }, + { "px": [112,80], "src": [224,320], "f": 2, "t": 474, "d": [113,165], "a": 1 }, + { "px": [16,144], "src": [192,304], "f": 0, "t": 449, "d": [113,321], "a": 1 }, + { "px": [16,160], "src": [192,320], "f": 0, "t": 472, "d": [113,321], "a": 1 }, + { "px": [32,144], "src": [208,304], "f": 0, "t": 450, "d": [113,321], "a": 1 }, + { "px": [32,160], "src": [208,320], "f": 0, "t": 473, "d": [113,321], "a": 1 }, + { "px": [48,144], "src": [224,304], "f": 0, "t": 451, "d": [113,321], "a": 1 }, + { "px": [48,160], "src": [224,320], "f": 0, "t": 474, "d": [113,321], "a": 1 }, + { "px": [80,176], "src": [192,304], "f": 0, "t": 449, "d": [113,389], "a": 1 }, + { "px": [80,192], "src": [192,320], "f": 0, "t": 472, "d": [113,389], "a": 1 }, + { "px": [96,176], "src": [208,304], "f": 0, "t": 450, "d": [113,389], "a": 1 }, + { "px": [96,192], "src": [208,320], "f": 0, "t": 473, "d": [113,389], "a": 1 }, + { "px": [112,176], "src": [224,304], "f": 0, "t": 451, "d": [113,389], "a": 1 }, + { "px": [112,192], "src": [224,320], "f": 0, "t": 474, "d": [113,389], "a": 1 }, + { "px": [384,80], "src": [96,208], "f": 0, "t": 305, "d": [114,184], "a": 1 }, + { "px": [160,80], "src": [128,208], "f": 0, "t": 307, "d": [115,170], "a": 1 }, + { "px": [160,96], "src": [128,224], "f": 0, "t": 330, "d": [115,170], "a": 1 }, + { "px": [352,80], "src": [128,208], "f": 0, "t": 307, "d": [115,182], "a": 1 }, + { "px": [352,96], "src": [128,224], "f": 0, "t": 330, "d": [115,182], "a": 1 }, + { "px": [416,80], "src": [128,208], "f": 0, "t": 307, "d": [115,186], "a": 1 }, + { "px": [416,96], "src": [128,224], "f": 0, "t": 330, "d": [115,186], "a": 1 } + ], + "seed": 588803, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [{ "levelIid": "a374bc00-66b0-11ec-9cd7-65fcab2d5d53", "dir": "s" }] + }, + { + "identifier": "Hidden_cave", + "iid": "a37690c0-66b0-11ec-9cd7-5f87e3c093eb", + "uid": 87, + "worldX": 1280, + "worldY": 256, + "worldDepth": 0, + "pxWid": 256, + "pxHei": 512, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "a37690c5-66b0-11ec-9cd7-bd3dc3e25368", + "levelId": 87, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 8089209, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "SecretArea", + "__grid": [2,11], + "__pivot": [0,0], + "__tags": ["region"], + "__tile": { "tilesetUid": 133, "x": 336, "y": 16, "w": 16, "h": 16 }, + "__smartColor": "#FFCC00", + "iid": "a37690c6-66b0-11ec-9cd7-91a751d327cb", + "width": 192, + "height": 208, + "defUid": 96, + "px": [32,176], + "fieldInstances": [{ "__identifier": "playSecretJingle", "__type": "Bool", "__value": true, "__tile": null, "defUid": 97, "realEditorValues": [] }] + }, + { + "__identifier": "Item", + "__grid": [7,15], + "__pivot": [0.5,1], + "__tags": ["loot"], + "__tile": { "tilesetUid": 133, "x": 240, "y": 432, "w": 16, "h": 16 }, + "__smartColor": "#FFEC8A", + "iid": "a37690c7-66b0-11ec-9cd7-833be48de81f", + "width": 24, + "height": 24, + "defUid": 72, + "px": [120,256], + "fieldInstances": [ + { "__identifier": "type", "__type": "LocalEnum.ItemType", "__value": "Vorpal_blade", "__tile": { "tilesetUid": 133, "x": 240, "y": 432, "w": 16, "h": 16 }, "defUid": 76, "realEditorValues": [{ + "id": "V_String", + "params": ["Vorpal_blade"] + }] }, + { "__identifier": "price", "__type": "Int", "__value": 0, "__tile": null, "defUid": 93, "realEditorValues": [] }, + { "__identifier": "count", "__type": "Int", "__value": 1, "__tile": null, "defUid": 139, "realEditorValues": [] } + ] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a37690c8-66b0-11ec-9cd7-9d71aa82afca", + "levelId": 87, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [80,208], "src": [320,128], "f": 0, "t": 204, "d": [26,213], "a": 1 }, + { "px": [144,208], "src": [320,128], "f": 1, "t": 204, "d": [26,217], "a": 1 }, + { "px": [64,224], "src": [320,128], "f": 0, "t": 204, "d": [26,228], "a": 1 }, + { "px": [160,224], "src": [320,128], "f": 1, "t": 204, "d": [26,234], "a": 1 }, + { "px": [64,240], "src": [320,128], "f": 0, "t": 204, "d": [26,244], "a": 1 }, + { "px": [160,240], "src": [320,128], "f": 1, "t": 204, "d": [26,250], "a": 1 }, + { "px": [64,256], "src": [320,128], "f": 0, "t": 204, "d": [26,260], "a": 1 }, + { "px": [160,256], "src": [320,128], "f": 1, "t": 204, "d": [26,266], "a": 1 }, + { "px": [96,256], "src": [320,96], "f": 1, "t": 158, "d": [138,262], "a": 1 }, + { "px": [128,256], "src": [320,96], "f": 0, "t": 158, "d": [138,264], "a": 1 }, + { "px": [80,208], "src": [336,112], "f": 0, "t": 182, "d": [27,213], "a": 1 }, + { "px": [96,208], "src": [336,112], "f": 0, "t": 182, "d": [27,214], "a": 1 }, + { "px": [112,208], "src": [336,112], "f": 0, "t": 182, "d": [27,215], "a": 1 }, + { "px": [128,208], "src": [336,112], "f": 0, "t": 182, "d": [27,216], "a": 1 }, + { "px": [144,208], "src": [336,112], "f": 0, "t": 182, "d": [27,217], "a": 1 }, + { "px": [64,224], "src": [336,112], "f": 0, "t": 182, "d": [27,228], "a": 1 }, + { "px": [160,224], "src": [336,112], "f": 0, "t": 182, "d": [27,234], "a": 1 }, + { "px": [48,288], "src": [336,112], "f": 0, "t": 182, "d": [27,291], "a": 1 }, + { "px": [112,288], "src": [336,112], "f": 0, "t": 182, "d": [27,295], "a": 1 }, + { "px": [176,288], "src": [336,112], "f": 0, "t": 182, "d": [27,299], "a": 1 }, + { "px": [0,304], "src": [336,112], "f": 0, "t": 182, "d": [27,304], "a": 1 }, + { "px": [16,304], "src": [336,112], "f": 0, "t": 182, "d": [27,305], "a": 1 }, + { "px": [32,304], "src": [336,112], "f": 0, "t": 182, "d": [27,306], "a": 1 }, + { "px": [192,304], "src": [336,112], "f": 0, "t": 182, "d": [27,316], "a": 1 }, + { "px": [208,304], "src": [336,112], "f": 0, "t": 182, "d": [27,317], "a": 1 }, + { "px": [224,304], "src": [336,112], "f": 0, "t": 182, "d": [27,318], "a": 1 }, + { "px": [240,304], "src": [336,112], "f": 0, "t": 182, "d": [27,319], "a": 1 }, + { "px": [80,224], "src": [320,112], "f": 0, "t": 181, "d": [137,229], "a": 1 }, + { "px": [144,224], "src": [320,112], "f": 1, "t": 181, "d": [137,233], "a": 1 } + ], + "seed": 879235, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a37690c9-66b0-11ec-9cd7-a39661efaa6f", + "levelId": 87, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0, + 0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,1, + 2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2, + 2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,1, + 1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [48,288], "src": [320,176], "f": 0, "t": 273, "d": [28,291], "a": 1 }, + { "px": [64,288], "src": [320,176], "f": 0, "t": 273, "d": [28,292], "a": 1 }, + { "px": [80,288], "src": [320,176], "f": 0, "t": 273, "d": [28,293], "a": 1 }, + { "px": [96,288], "src": [320,176], "f": 0, "t": 273, "d": [28,294], "a": 1 }, + { "px": [112,288], "src": [320,176], "f": 0, "t": 273, "d": [28,295], "a": 1 }, + { "px": [128,288], "src": [320,176], "f": 0, "t": 273, "d": [28,296], "a": 1 }, + { "px": [144,288], "src": [320,176], "f": 0, "t": 273, "d": [28,297], "a": 1 }, + { "px": [160,288], "src": [320,176], "f": 0, "t": 273, "d": [28,298], "a": 1 }, + { "px": [176,288], "src": [320,176], "f": 0, "t": 273, "d": [28,299], "a": 1 }, + { "px": [0,304], "src": [320,176], "f": 0, "t": 273, "d": [28,304], "a": 1 }, + { "px": [16,304], "src": [320,176], "f": 0, "t": 273, "d": [28,305], "a": 1 }, + { "px": [32,304], "src": [320,176], "f": 0, "t": 273, "d": [28,306], "a": 1 }, + { "px": [48,304], "src": [320,176], "f": 0, "t": 273, "d": [28,307], "a": 1 }, + { "px": [64,304], "src": [320,176], "f": 0, "t": 273, "d": [28,308], "a": 1 }, + { "px": [80,304], "src": [320,176], "f": 0, "t": 273, "d": [28,309], "a": 1 }, + { "px": [96,304], "src": [320,176], "f": 0, "t": 273, "d": [28,310], "a": 1 }, + { "px": [112,304], "src": [320,176], "f": 0, "t": 273, "d": [28,311], "a": 1 }, + { "px": [128,304], "src": [320,176], "f": 0, "t": 273, "d": [28,312], "a": 1 }, + { "px": [144,304], "src": [320,176], "f": 0, "t": 273, "d": [28,313], "a": 1 }, + { "px": [160,304], "src": [320,176], "f": 0, "t": 273, "d": [28,314], "a": 1 }, + { "px": [176,304], "src": [320,176], "f": 0, "t": 273, "d": [28,315], "a": 1 }, + { "px": [192,304], "src": [320,176], "f": 0, "t": 273, "d": [28,316], "a": 1 }, + { "px": [208,304], "src": [320,176], "f": 0, "t": 273, "d": [28,317], "a": 1 }, + { "px": [224,304], "src": [320,176], "f": 0, "t": 273, "d": [28,318], "a": 1 }, + { "px": [240,304], "src": [320,176], "f": 0, "t": 273, "d": [28,319], "a": 1 }, + { "px": [48,320], "src": [320,176], "f": 0, "t": 273, "d": [28,323], "a": 1 }, + { "px": [64,320], "src": [320,176], "f": 0, "t": 273, "d": [28,324], "a": 1 }, + { "px": [80,320], "src": [320,176], "f": 0, "t": 273, "d": [28,325], "a": 1 }, + { "px": [96,320], "src": [320,176], "f": 0, "t": 273, "d": [28,326], "a": 1 }, + { "px": [112,320], "src": [320,176], "f": 0, "t": 273, "d": [28,327], "a": 1 }, + { "px": [128,320], "src": [320,176], "f": 0, "t": 273, "d": [28,328], "a": 1 }, + { "px": [144,320], "src": [320,176], "f": 0, "t": 273, "d": [28,329], "a": 1 }, + { "px": [160,320], "src": [320,176], "f": 0, "t": 273, "d": [28,330], "a": 1 }, + { "px": [176,320], "src": [320,176], "f": 0, "t": 273, "d": [28,331], "a": 1 }, + { "px": [192,320], "src": [320,176], "f": 0, "t": 273, "d": [28,332], "a": 1 }, + { "px": [208,320], "src": [320,176], "f": 0, "t": 273, "d": [28,333], "a": 1 }, + { "px": [224,320], "src": [320,176], "f": 0, "t": 273, "d": [28,334], "a": 1 }, + { "px": [240,320], "src": [320,176], "f": 0, "t": 273, "d": [28,335], "a": 1 }, + { "px": [96,336], "src": [320,176], "f": 0, "t": 273, "d": [28,342], "a": 1 }, + { "px": [112,336], "src": [320,176], "f": 0, "t": 273, "d": [28,343], "a": 1 }, + { "px": [128,336], "src": [320,176], "f": 0, "t": 273, "d": [28,344], "a": 1 }, + { "px": [144,336], "src": [320,176], "f": 0, "t": 273, "d": [28,345], "a": 1 }, + { "px": [160,336], "src": [320,176], "f": 0, "t": 273, "d": [28,346], "a": 1 }, + { "px": [176,336], "src": [320,176], "f": 0, "t": 273, "d": [28,347], "a": 1 }, + { "px": [192,336], "src": [320,176], "f": 0, "t": 273, "d": [28,348], "a": 1 }, + { "px": [160,352], "src": [320,176], "f": 0, "t": 273, "d": [28,362], "a": 1 }, + { "px": [176,352], "src": [320,176], "f": 0, "t": 273, "d": [28,363], "a": 1 }, + { "px": [64,272], "src": [320,160], "f": 0, "t": 250, "d": [21,276], "a": 1 }, + { "px": [80,272], "src": [320,160], "f": 0, "t": 250, "d": [21,277], "a": 1 }, + { "px": [96,272], "src": [320,160], "f": 0, "t": 250, "d": [21,278], "a": 1 }, + { "px": [128,272], "src": [320,160], "f": 0, "t": 250, "d": [21,280], "a": 1 }, + { "px": [144,272], "src": [320,160], "f": 0, "t": 250, "d": [21,281], "a": 1 }, + { "px": [160,272], "src": [320,160], "f": 0, "t": 250, "d": [21,282], "a": 1 }, + { "px": [80,160], "src": [32,32], "f": 0, "t": 48, "d": [8,165], "a": 1 }, + { "px": [112,160], "src": [32,32], "f": 0, "t": 48, "d": [8,167], "a": 1 }, + { "px": [176,160], "src": [32,32], "f": 0, "t": 48, "d": [8,171], "a": 1 }, + { "px": [32,176], "src": [32,32], "f": 0, "t": 48, "d": [8,178], "a": 1 }, + { "px": [64,176], "src": [32,32], "f": 0, "t": 48, "d": [8,180], "a": 1 }, + { "px": [96,176], "src": [32,32], "f": 0, "t": 48, "d": [8,182], "a": 1 }, + { "px": [128,176], "src": [32,32], "f": 0, "t": 48, "d": [8,184], "a": 1 }, + { "px": [160,176], "src": [32,32], "f": 0, "t": 48, "d": [8,186], "a": 1 }, + { "px": [192,176], "src": [32,32], "f": 0, "t": 48, "d": [8,188], "a": 1 }, + { "px": [48,192], "src": [32,32], "f": 0, "t": 48, "d": [8,195], "a": 1 }, + { "px": [176,192], "src": [32,32], "f": 0, "t": 48, "d": [8,203], "a": 1 }, + { "px": [208,192], "src": [32,32], "f": 0, "t": 48, "d": [8,205], "a": 1 }, + { "px": [208,224], "src": [32,32], "f": 0, "t": 48, "d": [8,237], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [8,242], "a": 1 }, + { "px": [192,240], "src": [32,32], "f": 0, "t": 48, "d": [8,252], "a": 1 }, + { "px": [224,240], "src": [32,32], "f": 0, "t": 48, "d": [8,254], "a": 1 }, + { "px": [240,256], "src": [32,32], "f": 0, "t": 48, "d": [8,271], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [8,272], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [8,336], "a": 1 }, + { "px": [16,352], "src": [32,32], "f": 0, "t": 48, "d": [8,353], "a": 1 }, + { "px": [48,352], "src": [32,32], "f": 0, "t": 48, "d": [8,355], "a": 1 }, + { "px": [240,352], "src": [32,32], "f": 0, "t": 48, "d": [8,367], "a": 1 }, + { "px": [0,368], "src": [32,32], "f": 0, "t": 48, "d": [8,368], "a": 1 }, + { "px": [128,368], "src": [32,32], "f": 0, "t": 48, "d": [8,376], "a": 1 }, + { "px": [224,368], "src": [32,32], "f": 0, "t": 48, "d": [8,382], "a": 1 }, + { "px": [80,384], "src": [32,32], "f": 0, "t": 48, "d": [8,389], "a": 1 }, + { "px": [112,384], "src": [32,32], "f": 0, "t": 48, "d": [8,391], "a": 1 }, + { "px": [144,384], "src": [32,32], "f": 0, "t": 48, "d": [8,393], "a": 1 }, + { "px": [240,384], "src": [32,32], "f": 0, "t": 48, "d": [8,399], "a": 1 }, + { "px": [128,400], "src": [32,32], "f": 0, "t": 48, "d": [8,408], "a": 1 }, + { "px": [192,400], "src": [32,32], "f": 0, "t": 48, "d": [8,412], "a": 1 }, + { "px": [224,400], "src": [32,32], "f": 0, "t": 48, "d": [8,414], "a": 1 }, + { "px": [48,160], "src": [64,96], "f": 0, "t": 142, "d": [83,163], "a": 1 }, + { "px": [144,160], "src": [96,96], "f": 0, "t": 144, "d": [83,169], "a": 1 }, + { "px": [16,192], "src": [96,96], "f": 0, "t": 144, "d": [83,193], "a": 1 }, + { "px": [32,208], "src": [96,96], "f": 0, "t": 144, "d": [83,210], "a": 1 }, + { "px": [192,208], "src": [64,96], "f": 0, "t": 142, "d": [83,220], "a": 1 }, + { "px": [16,224], "src": [64,96], "f": 0, "t": 142, "d": [83,225], "a": 1 }, + { "px": [0,240], "src": [96,96], "f": 0, "t": 144, "d": [83,240], "a": 1 }, + { "px": [16,256], "src": [64,96], "f": 0, "t": 142, "d": [83,257], "a": 1 }, + { "px": [208,256], "src": [64,96], "f": 0, "t": 142, "d": [83,269], "a": 1 }, + { "px": [224,272], "src": [96,96], "f": 0, "t": 144, "d": [83,286], "a": 1 }, + { "px": [32,368], "src": [64,96], "f": 0, "t": 142, "d": [83,370], "a": 1 }, + { "px": [64,368], "src": [96,96], "f": 0, "t": 144, "d": [83,372], "a": 1 }, + { "px": [96,368], "src": [96,96], "f": 0, "t": 144, "d": [83,374], "a": 1 }, + { "px": [48,384], "src": [64,96], "f": 0, "t": 142, "d": [83,387], "a": 1 }, + { "px": [176,384], "src": [64,96], "f": 0, "t": 142, "d": [83,395], "a": 1 }, + { "px": [208,384], "src": [96,96], "f": 0, "t": 144, "d": [83,397], "a": 1 }, + { "px": [160,400], "src": [64,96], "f": 0, "t": 142, "d": [83,410], "a": 1 }, + { "px": [32,160], "src": [224,96], "f": 0, "t": 152, "d": [101,162], "a": 1 }, + { "px": [64,160], "src": [96,0], "f": 0, "t": 6, "d": [101,164], "a": 1 }, + { "px": [96,160], "src": [96,0], "f": 0, "t": 6, "d": [101,166], "a": 1 }, + { "px": [128,160], "src": [192,16], "f": 0, "t": 35, "d": [101,168], "a": 1 }, + { "px": [160,160], "src": [192,16], "f": 0, "t": 35, "d": [101,170], "a": 1 }, + { "px": [192,160], "src": [224,96], "f": 0, "t": 152, "d": [101,172], "a": 1 }, + { "px": [16,176], "src": [192,16], "f": 0, "t": 35, "d": [101,177], "a": 1 }, + { "px": [48,176], "src": [192,16], "f": 0, "t": 35, "d": [101,179], "a": 1 }, + { "px": [80,176], "src": [96,0], "f": 0, "t": 6, "d": [101,181], "a": 1 }, + { "px": [112,176], "src": [96,0], "f": 0, "t": 6, "d": [101,183], "a": 1 }, + { "px": [144,176], "src": [96,0], "f": 0, "t": 6, "d": [101,185], "a": 1 }, + { "px": [176,176], "src": [192,16], "f": 0, "t": 35, "d": [101,187], "a": 1 }, + { "px": [208,176], "src": [96,0], "f": 0, "t": 6, "d": [101,189], "a": 1 }, + { "px": [32,192], "src": [96,0], "f": 0, "t": 6, "d": [101,194], "a": 1 }, + { "px": [192,192], "src": [192,16], "f": 0, "t": 35, "d": [101,204], "a": 1 }, + { "px": [16,208], "src": [96,0], "f": 0, "t": 6, "d": [101,209], "a": 1 }, + { "px": [208,208], "src": [192,16], "f": 0, "t": 35, "d": [101,221], "a": 1 }, + { "px": [32,224], "src": [224,96], "f": 0, "t": 152, "d": [101,226], "a": 1 }, + { "px": [192,224], "src": [224,96], "f": 0, "t": 152, "d": [101,236], "a": 1 }, + { "px": [16,240], "src": [96,0], "f": 0, "t": 6, "d": [101,241], "a": 1 }, + { "px": [208,240], "src": [96,0], "f": 0, "t": 6, "d": [101,253], "a": 1 }, + { "px": [0,256], "src": [192,16], "f": 0, "t": 35, "d": [101,256], "a": 1 }, + { "px": [32,256], "src": [224,96], "f": 0, "t": 152, "d": [101,258], "a": 1 }, + { "px": [192,256], "src": [96,0], "f": 0, "t": 6, "d": [101,268], "a": 1 }, + { "px": [224,256], "src": [96,0], "f": 0, "t": 6, "d": [101,270], "a": 1 }, + { "px": [16,272], "src": [192,16], "f": 0, "t": 35, "d": [101,273], "a": 1 }, + { "px": [208,272], "src": [192,16], "f": 0, "t": 35, "d": [101,285], "a": 1 }, + { "px": [240,272], "src": [192,16], "f": 0, "t": 35, "d": [101,287], "a": 1 }, + { "px": [16,336], "src": [224,96], "f": 0, "t": 152, "d": [101,337], "a": 1 }, + { "px": [0,352], "src": [192,16], "f": 0, "t": 35, "d": [101,352], "a": 1 }, + { "px": [32,352], "src": [192,16], "f": 0, "t": 35, "d": [101,354], "a": 1 }, + { "px": [64,352], "src": [224,96], "f": 0, "t": 152, "d": [101,356], "a": 1 }, + { "px": [224,352], "src": [192,16], "f": 0, "t": 35, "d": [101,366], "a": 1 }, + { "px": [16,368], "src": [192,16], "f": 0, "t": 35, "d": [101,369], "a": 1 }, + { "px": [48,368], "src": [192,16], "f": 0, "t": 35, "d": [101,371], "a": 1 }, + { "px": [80,368], "src": [96,0], "f": 0, "t": 6, "d": [101,373], "a": 1 }, + { "px": [112,368], "src": [224,96], "f": 0, "t": 152, "d": [101,375], "a": 1 }, + { "px": [208,368], "src": [192,16], "f": 0, "t": 35, "d": [101,381], "a": 1 }, + { "px": [240,368], "src": [96,0], "f": 0, "t": 6, "d": [101,383], "a": 1 }, + { "px": [64,384], "src": [192,16], "f": 0, "t": 35, "d": [101,388], "a": 1 }, + { "px": [96,384], "src": [192,16], "f": 0, "t": 35, "d": [101,390], "a": 1 }, + { "px": [128,384], "src": [192,16], "f": 0, "t": 35, "d": [101,392], "a": 1 }, + { "px": [160,384], "src": [192,16], "f": 0, "t": 35, "d": [101,394], "a": 1 }, + { "px": [192,384], "src": [192,16], "f": 0, "t": 35, "d": [101,396], "a": 1 }, + { "px": [224,384], "src": [96,0], "f": 0, "t": 6, "d": [101,398], "a": 1 }, + { "px": [112,400], "src": [224,96], "f": 0, "t": 152, "d": [101,407], "a": 1 }, + { "px": [144,400], "src": [224,96], "f": 0, "t": 152, "d": [101,409], "a": 1 }, + { "px": [176,400], "src": [192,16], "f": 0, "t": 35, "d": [101,411], "a": 1 }, + { "px": [208,400], "src": [224,96], "f": 0, "t": 152, "d": [101,413], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [96,0], "src": [32,32], "f": 0, "t": 48, "d": [127,6], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [192,0], "src": [32,32], "f": 0, "t": 48, "d": [127,12], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [224,0], "src": [32,32], "f": 0, "t": 48, "d": [127,14], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,16], "a": 1 }, + { "px": [16,16], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [48,16], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [127,20], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [127,22], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [127,24], "a": 1 }, + { "px": [144,16], "src": [32,32], "f": 0, "t": 48, "d": [127,25], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [127,26], "a": 1 }, + { "px": [176,16], "src": [32,32], "f": 0, "t": 48, "d": [127,27], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,28], "a": 1 }, + { "px": [208,16], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,30], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [127,33], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [127,35], "a": 1 }, + { "px": [64,32], "src": [32,32], "f": 0, "t": 48, "d": [127,36], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [127,37], "a": 1 }, + { "px": [96,32], "src": [32,32], "f": 0, "t": 48, "d": [127,38], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [127,39], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [127,41], "a": 1 }, + { "px": [160,32], "src": [32,32], "f": 0, "t": 48, "d": [127,42], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [127,43], "a": 1 }, + { "px": [192,32], "src": [32,32], "f": 0, "t": 48, "d": [127,44], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [127,45], "a": 1 }, + { "px": [224,32], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,47], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [48,48], "src": [32,32], "f": 0, "t": 48, "d": [127,51], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [127,52], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [127,54], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [127,56], "a": 1 }, + { "px": [144,48], "src": [32,32], "f": 0, "t": 48, "d": [127,57], "a": 1 }, + { "px": [160,48], "src": [32,32], "f": 0, "t": 48, "d": [127,58], "a": 1 }, + { "px": [176,48], "src": [32,32], "f": 0, "t": 48, "d": [127,59], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [127,60], "a": 1 }, + { "px": [208,48], "src": [32,32], "f": 0, "t": 48, "d": [127,61], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [127,62], "a": 1 }, + { "px": [0,64], "src": [32,32], "f": 0, "t": 48, "d": [127,64], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [127,65], "a": 1 }, + { "px": [32,64], "src": [32,32], "f": 0, "t": 48, "d": [127,66], "a": 1 }, + { "px": [48,64], "src": [32,32], "f": 0, "t": 48, "d": [127,67], "a": 1 }, + { "px": [64,64], "src": [32,32], "f": 0, "t": 48, "d": [127,68], "a": 1 }, + { "px": [80,64], "src": [32,32], "f": 0, "t": 48, "d": [127,69], "a": 1 }, + { "px": [112,64], "src": [32,32], "f": 0, "t": 48, "d": [127,71], "a": 1 }, + { "px": [144,64], "src": [32,32], "f": 0, "t": 48, "d": [127,73], "a": 1 }, + { "px": [160,64], "src": [32,32], "f": 0, "t": 48, "d": [127,74], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [127,75], "a": 1 }, + { "px": [192,64], "src": [32,32], "f": 0, "t": 48, "d": [127,76], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [127,77], "a": 1 }, + { "px": [224,64], "src": [32,32], "f": 0, "t": 48, "d": [127,78], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [127,79], "a": 1 }, + { "px": [0,80], "src": [32,32], "f": 0, "t": 48, "d": [127,80], "a": 1 }, + { "px": [16,80], "src": [32,32], "f": 0, "t": 48, "d": [127,81], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [127,82], "a": 1 }, + { "px": [48,80], "src": [32,32], "f": 0, "t": 48, "d": [127,83], "a": 1 }, + { "px": [64,80], "src": [32,32], "f": 0, "t": 48, "d": [127,84], "a": 1 }, + { "px": [96,80], "src": [32,32], "f": 0, "t": 48, "d": [127,86], "a": 1 }, + { "px": [128,80], "src": [32,32], "f": 0, "t": 48, "d": [127,88], "a": 1 }, + { "px": [160,80], "src": [32,32], "f": 0, "t": 48, "d": [127,90], "a": 1 }, + { "px": [192,80], "src": [32,32], "f": 0, "t": 48, "d": [127,92], "a": 1 }, + { "px": [208,80], "src": [32,32], "f": 0, "t": 48, "d": [127,93], "a": 1 }, + { "px": [224,80], "src": [32,32], "f": 0, "t": 48, "d": [127,94], "a": 1 }, + { "px": [16,96], "src": [32,32], "f": 0, "t": 48, "d": [127,97], "a": 1 }, + { "px": [32,96], "src": [32,32], "f": 0, "t": 48, "d": [127,98], "a": 1 }, + { "px": [48,96], "src": [32,32], "f": 0, "t": 48, "d": [127,99], "a": 1 }, + { "px": [64,96], "src": [32,32], "f": 0, "t": 48, "d": [127,100], "a": 1 }, + { "px": [80,96], "src": [32,32], "f": 0, "t": 48, "d": [127,101], "a": 1 }, + { "px": [112,96], "src": [32,32], "f": 0, "t": 48, "d": [127,103], "a": 1 }, + { "px": [128,96], "src": [32,32], "f": 0, "t": 48, "d": [127,104], "a": 1 }, + { "px": [144,96], "src": [32,32], "f": 0, "t": 48, "d": [127,105], "a": 1 }, + { "px": [160,96], "src": [32,32], "f": 0, "t": 48, "d": [127,106], "a": 1 }, + { "px": [176,96], "src": [32,32], "f": 0, "t": 48, "d": [127,107], "a": 1 }, + { "px": [208,96], "src": [32,32], "f": 0, "t": 48, "d": [127,109], "a": 1 }, + { "px": [224,96], "src": [32,32], "f": 0, "t": 48, "d": [127,110], "a": 1 }, + { "px": [240,96], "src": [32,32], "f": 0, "t": 48, "d": [127,111], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [127,112], "a": 1 }, + { "px": [16,112], "src": [32,32], "f": 0, "t": 48, "d": [127,113], "a": 1 }, + { "px": [32,112], "src": [32,32], "f": 0, "t": 48, "d": [127,114], "a": 1 }, + { "px": [48,112], "src": [32,32], "f": 0, "t": 48, "d": [127,115], "a": 1 }, + { "px": [64,112], "src": [32,32], "f": 0, "t": 48, "d": [127,116], "a": 1 }, + { "px": [96,112], "src": [32,32], "f": 0, "t": 48, "d": [127,118], "a": 1 }, + { "px": [112,112], "src": [32,32], "f": 0, "t": 48, "d": [127,119], "a": 1 }, + { "px": [128,112], "src": [32,32], "f": 0, "t": 48, "d": [127,120], "a": 1 }, + { "px": [160,112], "src": [32,32], "f": 0, "t": 48, "d": [127,122], "a": 1 }, + { "px": [176,112], "src": [32,32], "f": 0, "t": 48, "d": [127,123], "a": 1 }, + { "px": [192,112], "src": [32,32], "f": 0, "t": 48, "d": [127,124], "a": 1 }, + { "px": [208,112], "src": [32,32], "f": 0, "t": 48, "d": [127,125], "a": 1 }, + { "px": [224,112], "src": [32,32], "f": 0, "t": 48, "d": [127,126], "a": 1 }, + { "px": [240,112], "src": [32,32], "f": 0, "t": 48, "d": [127,127], "a": 1 }, + { "px": [0,128], "src": [32,32], "f": 0, "t": 48, "d": [127,128], "a": 1 }, + { "px": [16,128], "src": [32,32], "f": 0, "t": 48, "d": [127,129], "a": 1 }, + { "px": [48,128], "src": [32,32], "f": 0, "t": 48, "d": [127,131], "a": 1 }, + { "px": [80,128], "src": [32,32], "f": 0, "t": 48, "d": [127,133], "a": 1 }, + { "px": [96,128], "src": [32,32], "f": 0, "t": 48, "d": [127,134], "a": 1 }, + { "px": [112,128], "src": [32,32], "f": 0, "t": 48, "d": [127,135], "a": 1 }, + { "px": [128,128], "src": [32,32], "f": 0, "t": 48, "d": [127,136], "a": 1 }, + { "px": [144,128], "src": [32,32], "f": 0, "t": 48, "d": [127,137], "a": 1 }, + { "px": [176,128], "src": [32,32], "f": 0, "t": 48, "d": [127,139], "a": 1 }, + { "px": [192,128], "src": [32,32], "f": 0, "t": 48, "d": [127,140], "a": 1 }, + { "px": [208,128], "src": [32,32], "f": 0, "t": 48, "d": [127,141], "a": 1 }, + { "px": [224,128], "src": [32,32], "f": 0, "t": 48, "d": [127,142], "a": 1 }, + { "px": [240,128], "src": [32,32], "f": 0, "t": 48, "d": [127,143], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [127,144], "a": 1 }, + { "px": [16,144], "src": [32,32], "f": 0, "t": 48, "d": [127,145], "a": 1 }, + { "px": [32,144], "src": [32,32], "f": 0, "t": 48, "d": [127,146], "a": 1 }, + { "px": [64,144], "src": [32,32], "f": 0, "t": 48, "d": [127,148], "a": 1 }, + { "px": [96,144], "src": [32,32], "f": 0, "t": 48, "d": [127,150], "a": 1 }, + { "px": [112,144], "src": [32,32], "f": 0, "t": 48, "d": [127,151], "a": 1 }, + { "px": [128,144], "src": [32,32], "f": 0, "t": 48, "d": [127,152], "a": 1 }, + { "px": [144,144], "src": [32,32], "f": 0, "t": 48, "d": [127,153], "a": 1 }, + { "px": [160,144], "src": [32,32], "f": 0, "t": 48, "d": [127,154], "a": 1 }, + { "px": [176,144], "src": [32,32], "f": 0, "t": 48, "d": [127,155], "a": 1 }, + { "px": [192,144], "src": [32,32], "f": 0, "t": 48, "d": [127,156], "a": 1 }, + { "px": [208,144], "src": [32,32], "f": 0, "t": 48, "d": [127,157], "a": 1 }, + { "px": [224,144], "src": [32,32], "f": 0, "t": 48, "d": [127,158], "a": 1 }, + { "px": [240,144], "src": [32,32], "f": 0, "t": 48, "d": [127,159], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [127,161], "a": 1 }, + { "px": [208,160], "src": [32,32], "f": 0, "t": 48, "d": [127,173], "a": 1 }, + { "px": [224,160], "src": [32,32], "f": 0, "t": 48, "d": [127,174], "a": 1 }, + { "px": [240,160], "src": [32,32], "f": 0, "t": 48, "d": [127,175], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [127,176], "a": 1 }, + { "px": [224,176], "src": [32,32], "f": 0, "t": 48, "d": [127,190], "a": 1 }, + { "px": [0,192], "src": [32,32], "f": 0, "t": 48, "d": [127,192], "a": 1 }, + { "px": [240,192], "src": [32,32], "f": 0, "t": 48, "d": [127,207], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [127,208], "a": 1 }, + { "px": [224,208], "src": [32,32], "f": 0, "t": 48, "d": [127,222], "a": 1 }, + { "px": [0,224], "src": [32,32], "f": 0, "t": 48, "d": [127,224], "a": 1 }, + { "px": [224,224], "src": [32,32], "f": 0, "t": 48, "d": [127,238], "a": 1 }, + { "px": [240,224], "src": [32,32], "f": 0, "t": 48, "d": [127,239], "a": 1 }, + { "px": [0,384], "src": [32,32], "f": 0, "t": 48, "d": [127,384], "a": 1 }, + { "px": [16,384], "src": [32,32], "f": 0, "t": 48, "d": [127,385], "a": 1 }, + { "px": [32,384], "src": [32,32], "f": 0, "t": 48, "d": [127,386], "a": 1 }, + { "px": [0,400], "src": [32,32], "f": 0, "t": 48, "d": [127,400], "a": 1 }, + { "px": [16,400], "src": [32,32], "f": 0, "t": 48, "d": [127,401], "a": 1 }, + { "px": [32,400], "src": [32,32], "f": 0, "t": 48, "d": [127,402], "a": 1 }, + { "px": [48,400], "src": [32,32], "f": 0, "t": 48, "d": [127,403], "a": 1 }, + { "px": [64,400], "src": [32,32], "f": 0, "t": 48, "d": [127,404], "a": 1 }, + { "px": [96,400], "src": [32,32], "f": 0, "t": 48, "d": [127,406], "a": 1 }, + { "px": [0,416], "src": [32,32], "f": 0, "t": 48, "d": [127,416], "a": 1 }, + { "px": [16,416], "src": [32,32], "f": 0, "t": 48, "d": [127,417], "a": 1 }, + { "px": [48,416], "src": [32,32], "f": 0, "t": 48, "d": [127,419], "a": 1 }, + { "px": [64,416], "src": [32,32], "f": 0, "t": 48, "d": [127,420], "a": 1 }, + { "px": [80,416], "src": [32,32], "f": 0, "t": 48, "d": [127,421], "a": 1 }, + { "px": [96,416], "src": [32,32], "f": 0, "t": 48, "d": [127,422], "a": 1 }, + { "px": [112,416], "src": [32,32], "f": 0, "t": 48, "d": [127,423], "a": 1 }, + { "px": [128,416], "src": [32,32], "f": 0, "t": 48, "d": [127,424], "a": 1 }, + { "px": [144,416], "src": [32,32], "f": 0, "t": 48, "d": [127,425], "a": 1 }, + { "px": [160,416], "src": [32,32], "f": 0, "t": 48, "d": [127,426], "a": 1 }, + { "px": [176,416], "src": [32,32], "f": 0, "t": 48, "d": [127,427], "a": 1 }, + { "px": [192,416], "src": [32,32], "f": 0, "t": 48, "d": [127,428], "a": 1 }, + { "px": [208,416], "src": [32,32], "f": 0, "t": 48, "d": [127,429], "a": 1 }, + { "px": [240,416], "src": [32,32], "f": 0, "t": 48, "d": [127,431], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [127,432], "a": 1 }, + { "px": [32,432], "src": [32,32], "f": 0, "t": 48, "d": [127,434], "a": 1 }, + { "px": [48,432], "src": [32,32], "f": 0, "t": 48, "d": [127,435], "a": 1 }, + { "px": [64,432], "src": [32,32], "f": 0, "t": 48, "d": [127,436], "a": 1 }, + { "px": [96,432], "src": [32,32], "f": 0, "t": 48, "d": [127,438], "a": 1 }, + { "px": [112,432], "src": [32,32], "f": 0, "t": 48, "d": [127,439], "a": 1 }, + { "px": [128,432], "src": [32,32], "f": 0, "t": 48, "d": [127,440], "a": 1 }, + { "px": [144,432], "src": [32,32], "f": 0, "t": 48, "d": [127,441], "a": 1 }, + { "px": [160,432], "src": [32,32], "f": 0, "t": 48, "d": [127,442], "a": 1 }, + { "px": [176,432], "src": [32,32], "f": 0, "t": 48, "d": [127,443], "a": 1 }, + { "px": [192,432], "src": [32,32], "f": 0, "t": 48, "d": [127,444], "a": 1 }, + { "px": [208,432], "src": [32,32], "f": 0, "t": 48, "d": [127,445], "a": 1 }, + { "px": [224,432], "src": [32,32], "f": 0, "t": 48, "d": [127,446], "a": 1 }, + { "px": [240,432], "src": [32,32], "f": 0, "t": 48, "d": [127,447], "a": 1 }, + { "px": [0,448], "src": [32,32], "f": 0, "t": 48, "d": [127,448], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [127,449], "a": 1 }, + { "px": [32,448], "src": [32,32], "f": 0, "t": 48, "d": [127,450], "a": 1 }, + { "px": [48,448], "src": [32,32], "f": 0, "t": 48, "d": [127,451], "a": 1 }, + { "px": [80,448], "src": [32,32], "f": 0, "t": 48, "d": [127,453], "a": 1 }, + { "px": [112,448], "src": [32,32], "f": 0, "t": 48, "d": [127,455], "a": 1 }, + { "px": [128,448], "src": [32,32], "f": 0, "t": 48, "d": [127,456], "a": 1 }, + { "px": [144,448], "src": [32,32], "f": 0, "t": 48, "d": [127,457], "a": 1 }, + { "px": [160,448], "src": [32,32], "f": 0, "t": 48, "d": [127,458], "a": 1 }, + { "px": [176,448], "src": [32,32], "f": 0, "t": 48, "d": [127,459], "a": 1 }, + { "px": [192,448], "src": [32,32], "f": 0, "t": 48, "d": [127,460], "a": 1 }, + { "px": [208,448], "src": [32,32], "f": 0, "t": 48, "d": [127,461], "a": 1 }, + { "px": [224,448], "src": [32,32], "f": 0, "t": 48, "d": [127,462], "a": 1 }, + { "px": [240,448], "src": [32,32], "f": 0, "t": 48, "d": [127,463], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [127,464], "a": 1 }, + { "px": [16,464], "src": [32,32], "f": 0, "t": 48, "d": [127,465], "a": 1 }, + { "px": [32,464], "src": [32,32], "f": 0, "t": 48, "d": [127,466], "a": 1 }, + { "px": [48,464], "src": [32,32], "f": 0, "t": 48, "d": [127,467], "a": 1 }, + { "px": [64,464], "src": [32,32], "f": 0, "t": 48, "d": [127,468], "a": 1 }, + { "px": [96,464], "src": [32,32], "f": 0, "t": 48, "d": [127,470], "a": 1 }, + { "px": [128,464], "src": [32,32], "f": 0, "t": 48, "d": [127,472], "a": 1 }, + { "px": [144,464], "src": [32,32], "f": 0, "t": 48, "d": [127,473], "a": 1 }, + { "px": [160,464], "src": [32,32], "f": 0, "t": 48, "d": [127,474], "a": 1 }, + { "px": [176,464], "src": [32,32], "f": 0, "t": 48, "d": [127,475], "a": 1 }, + { "px": [192,464], "src": [32,32], "f": 0, "t": 48, "d": [127,476], "a": 1 }, + { "px": [208,464], "src": [32,32], "f": 0, "t": 48, "d": [127,477], "a": 1 }, + { "px": [224,464], "src": [32,32], "f": 0, "t": 48, "d": [127,478], "a": 1 }, + { "px": [16,480], "src": [32,32], "f": 0, "t": 48, "d": [127,481], "a": 1 }, + { "px": [32,480], "src": [32,32], "f": 0, "t": 48, "d": [127,482], "a": 1 }, + { "px": [48,480], "src": [32,32], "f": 0, "t": 48, "d": [127,483], "a": 1 }, + { "px": [64,480], "src": [32,32], "f": 0, "t": 48, "d": [127,484], "a": 1 }, + { "px": [80,480], "src": [32,32], "f": 0, "t": 48, "d": [127,485], "a": 1 }, + { "px": [112,480], "src": [32,32], "f": 0, "t": 48, "d": [127,487], "a": 1 }, + { "px": [128,480], "src": [32,32], "f": 0, "t": 48, "d": [127,488], "a": 1 }, + { "px": [144,480], "src": [32,32], "f": 0, "t": 48, "d": [127,489], "a": 1 }, + { "px": [176,480], "src": [32,32], "f": 0, "t": 48, "d": [127,491], "a": 1 }, + { "px": [192,480], "src": [32,32], "f": 0, "t": 48, "d": [127,492], "a": 1 }, + { "px": [208,480], "src": [32,32], "f": 0, "t": 48, "d": [127,493], "a": 1 }, + { "px": [224,480], "src": [32,32], "f": 0, "t": 48, "d": [127,494], "a": 1 }, + { "px": [240,480], "src": [32,32], "f": 0, "t": 48, "d": [127,495], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,496], "a": 1 }, + { "px": [16,496], "src": [32,32], "f": 0, "t": 48, "d": [127,497], "a": 1 }, + { "px": [32,496], "src": [32,32], "f": 0, "t": 48, "d": [127,498], "a": 1 }, + { "px": [48,496], "src": [32,32], "f": 0, "t": 48, "d": [127,499], "a": 1 }, + { "px": [64,496], "src": [32,32], "f": 0, "t": 48, "d": [127,500], "a": 1 }, + { "px": [80,496], "src": [32,32], "f": 0, "t": 48, "d": [127,501], "a": 1 }, + { "px": [96,496], "src": [32,32], "f": 0, "t": 48, "d": [127,502], "a": 1 }, + { "px": [128,496], "src": [32,32], "f": 0, "t": 48, "d": [127,504], "a": 1 }, + { "px": [144,496], "src": [32,32], "f": 0, "t": 48, "d": [127,505], "a": 1 }, + { "px": [160,496], "src": [32,32], "f": 0, "t": 48, "d": [127,506], "a": 1 }, + { "px": [176,496], "src": [32,32], "f": 0, "t": 48, "d": [127,507], "a": 1 }, + { "px": [192,496], "src": [32,32], "f": 0, "t": 48, "d": [127,508], "a": 1 }, + { "px": [208,496], "src": [32,32], "f": 0, "t": 48, "d": [127,509], "a": 1 }, + { "px": [224,496], "src": [32,32], "f": 0, "t": 48, "d": [127,510], "a": 1 }, + { "px": [240,496], "src": [32,32], "f": 0, "t": 48, "d": [127,511], "a": 1 }, + { "px": [0,0], "src": [64,96], "f": 0, "t": 142, "d": [126,0], "a": 1 }, + { "px": [32,0], "src": [96,96], "f": 0, "t": 144, "d": [126,2], "a": 1 }, + { "px": [64,0], "src": [96,96], "f": 0, "t": 144, "d": [126,4], "a": 1 }, + { "px": [128,0], "src": [96,96], "f": 0, "t": 144, "d": [126,8], "a": 1 }, + { "px": [160,0], "src": [96,96], "f": 0, "t": 144, "d": [126,10], "a": 1 }, + { "px": [80,16], "src": [96,96], "f": 0, "t": 144, "d": [126,21], "a": 1 }, + { "px": [112,16], "src": [96,96], "f": 0, "t": 144, "d": [126,23], "a": 1 }, + { "px": [240,16], "src": [64,96], "f": 0, "t": 142, "d": [126,31], "a": 1 }, + { "px": [0,32], "src": [96,96], "f": 0, "t": 144, "d": [126,32], "a": 1 }, + { "px": [32,32], "src": [96,96], "f": 0, "t": 144, "d": [126,34], "a": 1 }, + { "px": [128,32], "src": [96,96], "f": 0, "t": 144, "d": [126,40], "a": 1 }, + { "px": [16,48], "src": [96,96], "f": 0, "t": 144, "d": [126,49], "a": 1 }, + { "px": [80,48], "src": [64,96], "f": 0, "t": 142, "d": [126,53], "a": 1 }, + { "px": [112,48], "src": [96,96], "f": 0, "t": 144, "d": [126,55], "a": 1 }, + { "px": [240,48], "src": [96,96], "f": 0, "t": 144, "d": [126,63], "a": 1 }, + { "px": [96,64], "src": [64,96], "f": 0, "t": 142, "d": [126,70], "a": 1 }, + { "px": [128,64], "src": [96,96], "f": 0, "t": 144, "d": [126,72], "a": 1 }, + { "px": [80,80], "src": [64,96], "f": 0, "t": 142, "d": [126,85], "a": 1 }, + { "px": [112,80], "src": [96,96], "f": 0, "t": 144, "d": [126,87], "a": 1 }, + { "px": [144,80], "src": [96,96], "f": 0, "t": 144, "d": [126,89], "a": 1 }, + { "px": [176,80], "src": [64,96], "f": 0, "t": 142, "d": [126,91], "a": 1 }, + { "px": [240,80], "src": [64,96], "f": 0, "t": 142, "d": [126,95], "a": 1 }, + { "px": [0,96], "src": [96,96], "f": 0, "t": 144, "d": [126,96], "a": 1 }, + { "px": [96,96], "src": [64,96], "f": 0, "t": 142, "d": [126,102], "a": 1 }, + { "px": [192,96], "src": [96,96], "f": 0, "t": 144, "d": [126,108], "a": 1 }, + { "px": [80,112], "src": [64,96], "f": 0, "t": 142, "d": [126,117], "a": 1 }, + { "px": [144,112], "src": [64,96], "f": 0, "t": 142, "d": [126,121], "a": 1 }, + { "px": [32,128], "src": [96,96], "f": 0, "t": 144, "d": [126,130], "a": 1 }, + { "px": [64,128], "src": [96,96], "f": 0, "t": 144, "d": [126,132], "a": 1 }, + { "px": [160,128], "src": [96,96], "f": 0, "t": 144, "d": [126,138], "a": 1 }, + { "px": [48,144], "src": [64,96], "f": 0, "t": 142, "d": [126,147], "a": 1 }, + { "px": [80,144], "src": [64,96], "f": 0, "t": 142, "d": [126,149], "a": 1 }, + { "px": [0,160], "src": [96,96], "f": 0, "t": 144, "d": [126,160], "a": 1 }, + { "px": [240,176], "src": [96,96], "f": 0, "t": 144, "d": [126,191], "a": 1 }, + { "px": [224,192], "src": [96,96], "f": 0, "t": 144, "d": [126,206], "a": 1 }, + { "px": [240,208], "src": [96,96], "f": 0, "t": 144, "d": [126,223], "a": 1 }, + { "px": [240,240], "src": [96,96], "f": 0, "t": 144, "d": [126,255], "a": 1 }, + { "px": [80,400], "src": [64,96], "f": 0, "t": 142, "d": [126,405], "a": 1 }, + { "px": [240,400], "src": [96,96], "f": 0, "t": 144, "d": [126,415], "a": 1 }, + { "px": [32,416], "src": [96,96], "f": 0, "t": 144, "d": [126,418], "a": 1 }, + { "px": [224,416], "src": [96,96], "f": 0, "t": 144, "d": [126,430], "a": 1 }, + { "px": [16,432], "src": [64,96], "f": 0, "t": 142, "d": [126,433], "a": 1 }, + { "px": [80,432], "src": [64,96], "f": 0, "t": 142, "d": [126,437], "a": 1 }, + { "px": [64,448], "src": [96,96], "f": 0, "t": 144, "d": [126,452], "a": 1 }, + { "px": [96,448], "src": [96,96], "f": 0, "t": 144, "d": [126,454], "a": 1 }, + { "px": [80,464], "src": [96,96], "f": 0, "t": 144, "d": [126,469], "a": 1 }, + { "px": [112,464], "src": [64,96], "f": 0, "t": 142, "d": [126,471], "a": 1 }, + { "px": [240,464], "src": [96,96], "f": 0, "t": 144, "d": [126,479], "a": 1 }, + { "px": [0,480], "src": [96,96], "f": 0, "t": 144, "d": [126,480], "a": 1 }, + { "px": [96,480], "src": [96,96], "f": 0, "t": 144, "d": [126,486], "a": 1 }, + { "px": [160,480], "src": [64,96], "f": 0, "t": 142, "d": [126,490], "a": 1 }, + { "px": [112,496], "src": [96,96], "f": 0, "t": 144, "d": [126,503], "a": 1 }, + { "px": [96,192], "src": [256,160], "f": 0, "t": 246, "d": [12,198], "a": 1 }, + { "px": [112,192], "src": [256,160], "f": 0, "t": 246, "d": [12,199], "a": 1 }, + { "px": [144,192], "src": [256,160], "f": 0, "t": 246, "d": [12,201], "a": 1 }, + { "px": [0,288], "src": [256,160], "f": 0, "t": 246, "d": [12,288], "a": 1 }, + { "px": [208,288], "src": [256,160], "f": 0, "t": 246, "d": [12,301], "a": 1 }, + { "px": [0,320], "src": [256,96], "f": 0, "t": 154, "d": [9,320], "a": 1 }, + { "px": [16,320], "src": [256,96], "f": 0, "t": 154, "d": [9,321], "a": 1 }, + { "px": [48,336], "src": [256,96], "f": 0, "t": 154, "d": [9,339], "a": 1 }, + { "px": [64,336], "src": [256,96], "f": 0, "t": 154, "d": [9,340], "a": 1 }, + { "px": [224,336], "src": [256,96], "f": 0, "t": 154, "d": [9,350], "a": 1 }, + { "px": [240,336], "src": [256,96], "f": 0, "t": 154, "d": [9,351], "a": 1 }, + { "px": [96,352], "src": [256,96], "f": 0, "t": 154, "d": [9,358], "a": 1 }, + { "px": [112,352], "src": [256,96], "f": 0, "t": 154, "d": [9,359], "a": 1 }, + { "px": [128,352], "src": [256,96], "f": 0, "t": 154, "d": [9,360], "a": 1 }, + { "px": [160,368], "src": [256,96], "f": 0, "t": 154, "d": [9,378], "a": 1 }, + { "px": [176,368], "src": [256,96], "f": 0, "t": 154, "d": [9,379], "a": 1 }, + { "px": [48,224], "src": [224,128], "f": 1, "t": 198, "d": [10,227], "a": 1 }, + { "px": [176,224], "src": [224,128], "f": 0, "t": 198, "d": [10,235], "a": 1 }, + { "px": [48,240], "src": [224,128], "f": 1, "t": 198, "d": [10,243], "a": 1 }, + { "px": [176,240], "src": [224,128], "f": 0, "t": 198, "d": [10,251], "a": 1 }, + { "px": [48,256], "src": [224,128], "f": 1, "t": 198, "d": [10,259], "a": 1 }, + { "px": [176,256], "src": [224,128], "f": 0, "t": 198, "d": [10,267], "a": 1 }, + { "px": [64,208], "src": [224,96], "f": 3, "t": 152, "d": [11,212], "a": 1 }, + { "px": [160,208], "src": [224,96], "f": 2, "t": 152, "d": [11,218], "a": 1 }, + { "px": [112,272], "src": [224,96], "f": 2, "t": 152, "d": [11,279], "a": 1 }, + { "px": [176,272], "src": [224,96], "f": 2, "t": 152, "d": [11,283], "a": 1 }, + { "px": [32,288], "src": [224,96], "f": 3, "t": 152, "d": [11,290], "a": 1 }, + { "px": [192,288], "src": [224,96], "f": 2, "t": 152, "d": [11,300], "a": 1 }, + { "px": [32,320], "src": [224,96], "f": 1, "t": 152, "d": [11,322], "a": 1 }, + { "px": [80,336], "src": [224,96], "f": 1, "t": 152, "d": [11,341], "a": 1 }, + { "px": [208,336], "src": [224,96], "f": 0, "t": 152, "d": [11,349], "a": 1 }, + { "px": [144,352], "src": [224,96], "f": 1, "t": 152, "d": [11,361], "a": 1 }, + { "px": [192,352], "src": [224,96], "f": 0, "t": 152, "d": [11,364], "a": 1 }, + { "px": [64,192], "src": [224,96], "f": 0, "t": 152, "d": [14,196], "a": 1 }, + { "px": [160,192], "src": [224,96], "f": 1, "t": 152, "d": [14,202], "a": 1 }, + { "px": [48,208], "src": [224,96], "f": 0, "t": 152, "d": [14,211], "a": 1 }, + { "px": [176,208], "src": [224,96], "f": 1, "t": 152, "d": [14,219], "a": 1 }, + { "px": [32,272], "src": [224,96], "f": 0, "t": 152, "d": [14,274], "a": 1 }, + { "px": [192,272], "src": [224,96], "f": 1, "t": 152, "d": [14,284], "a": 1 }, + { "px": [32,336], "src": [224,96], "f": 2, "t": 152, "d": [14,338], "a": 1 }, + { "px": [80,352], "src": [224,96], "f": 2, "t": 152, "d": [14,357], "a": 1 }, + { "px": [208,352], "src": [224,96], "f": 3, "t": 152, "d": [14,365], "a": 1 }, + { "px": [144,368], "src": [224,96], "f": 2, "t": 152, "d": [14,377], "a": 1 }, + { "px": [192,368], "src": [224,96], "f": 3, "t": 152, "d": [14,380], "a": 1 }, + { "px": [80,192], "src": [160,192], "f": 0, "t": 286, "d": [78,197], "a": 1 }, + { "px": [128,192], "src": [192,192], "f": 0, "t": 288, "d": [78,200], "a": 1 }, + { "px": [48,272], "src": [192,192], "f": 0, "t": 288, "d": [78,275], "a": 1 }, + { "px": [16,288], "src": [192,192], "f": 0, "t": 288, "d": [78,289], "a": 1 }, + { "px": [224,288], "src": [192,192], "f": 0, "t": 288, "d": [78,302], "a": 1 }, + { "px": [240,288], "src": [192,192], "f": 0, "t": 288, "d": [78,303], "a": 1 }, + { "px": [112,256], "src": [32,0], "f": 0, "t": 2, "d": [80,263], "a": 1 } + ], + "seed": 6905540, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 32, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "a376b7d0-66b0-11ec-9cd7-fd1ab6fbbf87", + "levelId": 87, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [96,208], "src": [320,272], "f": 0, "t": 411, "d": [108,214], "a": 1 }, + { "px": [112,208], "src": [320,272], "f": 0, "t": 411, "d": [108,215], "a": 1 }, + { "px": [128,208], "src": [320,272], "f": 0, "t": 411, "d": [108,216], "a": 1 }, + { "px": [80,224], "src": [320,272], "f": 0, "t": 411, "d": [108,229], "a": 1 }, + { "px": [96,224], "src": [320,272], "f": 0, "t": 411, "d": [108,230], "a": 1 }, + { "px": [112,224], "src": [320,272], "f": 0, "t": 411, "d": [108,231], "a": 1 }, + { "px": [128,224], "src": [320,272], "f": 0, "t": 411, "d": [108,232], "a": 1 }, + { "px": [144,224], "src": [320,272], "f": 0, "t": 411, "d": [108,233], "a": 1 }, + { "px": [80,240], "src": [320,272], "f": 0, "t": 411, "d": [108,245], "a": 1 }, + { "px": [96,240], "src": [320,272], "f": 0, "t": 411, "d": [108,246], "a": 1 }, + { "px": [112,240], "src": [320,272], "f": 0, "t": 411, "d": [108,247], "a": 1 }, + { "px": [128,240], "src": [320,272], "f": 0, "t": 411, "d": [108,248], "a": 1 }, + { "px": [144,240], "src": [320,272], "f": 0, "t": 411, "d": [108,249], "a": 1 }, + { "px": [80,256], "src": [320,272], "f": 0, "t": 411, "d": [108,261], "a": 1 }, + { "px": [144,256], "src": [320,272], "f": 0, "t": 411, "d": [108,265], "a": 1 }, + { "px": [64,272], "src": [320,272], "f": 0, "t": 411, "d": [108,276], "a": 1 }, + { "px": [80,272], "src": [320,272], "f": 0, "t": 411, "d": [108,277], "a": 1 }, + { "px": [96,272], "src": [320,272], "f": 0, "t": 411, "d": [108,278], "a": 1 }, + { "px": [128,272], "src": [320,272], "f": 0, "t": 411, "d": [108,280], "a": 1 }, + { "px": [144,272], "src": [320,272], "f": 0, "t": 411, "d": [108,281], "a": 1 }, + { "px": [160,272], "src": [320,272], "f": 0, "t": 411, "d": [108,282], "a": 1 }, + { "px": [48,288], "src": [320,272], "f": 0, "t": 411, "d": [108,291], "a": 1 }, + { "px": [64,288], "src": [320,272], "f": 0, "t": 411, "d": [108,292], "a": 1 }, + { "px": [80,288], "src": [320,272], "f": 0, "t": 411, "d": [108,293], "a": 1 }, + { "px": [96,288], "src": [320,272], "f": 0, "t": 411, "d": [108,294], "a": 1 }, + { "px": [112,288], "src": [320,272], "f": 0, "t": 411, "d": [108,295], "a": 1 }, + { "px": [128,288], "src": [320,272], "f": 0, "t": 411, "d": [108,296], "a": 1 }, + { "px": [144,288], "src": [320,272], "f": 0, "t": 411, "d": [108,297], "a": 1 }, + { "px": [160,288], "src": [320,272], "f": 0, "t": 411, "d": [108,298], "a": 1 }, + { "px": [176,288], "src": [320,272], "f": 0, "t": 411, "d": [108,299], "a": 1 }, + { "px": [0,304], "src": [320,272], "f": 0, "t": 411, "d": [108,304], "a": 1 }, + { "px": [16,304], "src": [320,272], "f": 0, "t": 411, "d": [108,305], "a": 1 }, + { "px": [32,304], "src": [320,272], "f": 0, "t": 411, "d": [108,306], "a": 1 }, + { "px": [48,304], "src": [320,272], "f": 0, "t": 411, "d": [108,307], "a": 1 }, + { "px": [64,304], "src": [320,272], "f": 0, "t": 411, "d": [108,308], "a": 1 }, + { "px": [80,304], "src": [320,272], "f": 0, "t": 411, "d": [108,309], "a": 1 }, + { "px": [96,304], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [112,304], "src": [320,272], "f": 0, "t": 411, "d": [108,311], "a": 1 }, + { "px": [128,304], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [144,304], "src": [320,272], "f": 0, "t": 411, "d": [108,313], "a": 1 }, + { "px": [160,304], "src": [320,272], "f": 0, "t": 411, "d": [108,314], "a": 1 }, + { "px": [176,304], "src": [320,272], "f": 0, "t": 411, "d": [108,315], "a": 1 }, + { "px": [192,304], "src": [320,272], "f": 0, "t": 411, "d": [108,316], "a": 1 }, + { "px": [208,304], "src": [320,272], "f": 0, "t": 411, "d": [108,317], "a": 1 }, + { "px": [224,304], "src": [320,272], "f": 0, "t": 411, "d": [108,318], "a": 1 }, + { "px": [240,304], "src": [320,272], "f": 0, "t": 411, "d": [108,319], "a": 1 }, + { "px": [48,320], "src": [320,272], "f": 0, "t": 411, "d": [108,323], "a": 1 }, + { "px": [64,320], "src": [320,272], "f": 0, "t": 411, "d": [108,324], "a": 1 }, + { "px": [80,320], "src": [320,272], "f": 0, "t": 411, "d": [108,325], "a": 1 }, + { "px": [96,320], "src": [320,272], "f": 0, "t": 411, "d": [108,326], "a": 1 }, + { "px": [112,320], "src": [320,272], "f": 0, "t": 411, "d": [108,327], "a": 1 }, + { "px": [128,320], "src": [320,272], "f": 0, "t": 411, "d": [108,328], "a": 1 }, + { "px": [144,320], "src": [320,272], "f": 0, "t": 411, "d": [108,329], "a": 1 }, + { "px": [160,320], "src": [320,272], "f": 0, "t": 411, "d": [108,330], "a": 1 }, + { "px": [176,320], "src": [320,272], "f": 0, "t": 411, "d": [108,331], "a": 1 }, + { "px": [192,320], "src": [320,272], "f": 0, "t": 411, "d": [108,332], "a": 1 }, + { "px": [208,320], "src": [320,272], "f": 0, "t": 411, "d": [108,333], "a": 1 }, + { "px": [224,320], "src": [320,272], "f": 0, "t": 411, "d": [108,334], "a": 1 }, + { "px": [240,320], "src": [320,272], "f": 0, "t": 411, "d": [108,335], "a": 1 }, + { "px": [96,336], "src": [320,272], "f": 0, "t": 411, "d": [108,342], "a": 1 }, + { "px": [112,336], "src": [320,272], "f": 0, "t": 411, "d": [108,343], "a": 1 }, + { "px": [128,336], "src": [320,272], "f": 0, "t": 411, "d": [108,344], "a": 1 }, + { "px": [144,336], "src": [320,272], "f": 0, "t": 411, "d": [108,345], "a": 1 }, + { "px": [160,336], "src": [320,272], "f": 0, "t": 411, "d": [108,346], "a": 1 }, + { "px": [176,336], "src": [320,272], "f": 0, "t": 411, "d": [108,347], "a": 1 }, + { "px": [192,336], "src": [320,272], "f": 0, "t": 411, "d": [108,348], "a": 1 }, + { "px": [160,352], "src": [320,272], "f": 0, "t": 411, "d": [108,362], "a": 1 }, + { "px": [176,352], "src": [320,272], "f": 0, "t": 411, "d": [108,363], "a": 1 }, + { "px": [96,208], "src": [256,240], "f": 1, "t": 361, "d": [107,213], "a": 1 }, + { "px": [80,208], "src": [272,240], "f": 1, "t": 362, "d": [107,213], "a": 1 }, + { "px": [128,208], "src": [256,240], "f": 0, "t": 361, "d": [107,217], "a": 1 }, + { "px": [144,208], "src": [272,240], "f": 0, "t": 362, "d": [107,217], "a": 1 }, + { "px": [80,224], "src": [256,240], "f": 1, "t": 361, "d": [107,228], "a": 1 }, + { "px": [64,224], "src": [272,240], "f": 1, "t": 362, "d": [107,228], "a": 1 }, + { "px": [80,240], "src": [256,240], "f": 1, "t": 361, "d": [107,244], "a": 1 }, + { "px": [64,240], "src": [272,240], "f": 1, "t": 362, "d": [107,244], "a": 1 }, + { "px": [144,240], "src": [256,240], "f": 0, "t": 361, "d": [107,250], "a": 1 }, + { "px": [160,240], "src": [272,240], "f": 0, "t": 362, "d": [107,250], "a": 1 }, + { "px": [80,256], "src": [256,240], "f": 1, "t": 361, "d": [107,260], "a": 1 }, + { "px": [64,256], "src": [272,240], "f": 1, "t": 362, "d": [107,260], "a": 1 }, + { "px": [80,256], "src": [256,240], "f": 0, "t": 361, "d": [107,262], "a": 1 }, + { "px": [96,256], "src": [272,240], "f": 0, "t": 362, "d": [107,262], "a": 1 }, + { "px": [144,256], "src": [256,240], "f": 1, "t": 361, "d": [107,264], "a": 1 }, + { "px": [128,256], "src": [272,240], "f": 1, "t": 362, "d": [107,264], "a": 1 }, + { "px": [144,256], "src": [256,240], "f": 0, "t": 361, "d": [107,266], "a": 1 }, + { "px": [160,256], "src": [272,240], "f": 0, "t": 362, "d": [107,266], "a": 1 }, + { "px": [160,224], "src": [128,224], "f": 0, "t": 330, "d": [114,234], "a": 1 } + ], + "seed": 8383226, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ + { "levelIid": "a36d41f0-66b0-11ec-9cd7-e962574817d4", "dir": "e" }, + { "levelIid": "a36e7a70-66b0-11ec-9cd7-67ffb406aba0", "dir": "n" }, + { "levelIid": "a3707640-66b0-11ec-9cd7-59efc6b24075", "dir": "s" }, + { "levelIid": "a371aec0-66b0-11ec-9cd7-6f9e87cc2465", "dir": "e" }, + { "levelIid": "a3730e50-66b0-11ec-9cd7-65c84b0f9baa", "dir": "w" } + ] + }, + { + "identifier": "Shop_entrance", + "iid": "07caf540-66b0-11ec-a595-a55a7e13679d", + "uid": 129, + "worldX": 512, + "worldY": 256, + "worldDepth": 0, + "pxWid": 256, + "pxHei": 256, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 16, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "07caf541-66b0-11ec-a595-b3726fb46cd5", + "levelId": 129, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 5078264, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Teleport", + "__grid": [10,13], + "__pivot": [0.5,1], + "__tags": ["actor"], + "__tile": { "tilesetUid": 133, "x": 224, "y": 176, "w": 16, "h": 16 }, + "__smartColor": "#EC50FF", + "iid": "3bde8fe0-66b0-11ec-a595-515a2ae1dbef", + "width": 24, + "height": 24, + "defUid": 130, + "px": [168,224], + "fieldInstances": [{ "__identifier": "destination", "__type": "EntityRef", "__value": { + "entityIid": "9c20a1d0-66b0-11ec-b893-7dd8e9dfe663", + "layerIid": "a36f8be5-66b0-11ec-9cd7-779e073cf8d2", + "levelIid": "a36f8be0-66b0-11ec-9cd7-a9c628ac47cf", + "worldIid": "ca3d7420-c640-11ed-ad34-5f1a115c4cf3" + }, "__tile": null, "defUid": 131, "realEditorValues": [{ + "id": "V_String", + "params": ["9c20a1d0-66b0-11ec-b893-7dd8e9dfe663"] + }] }] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "07caf542-66b0-11ec-a595-257dbb6de8ec", + "levelId": 129, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [64,48], "src": [320,128], "f": 0, "t": 204, "d": [26,52], "a": 1 }, + { "px": [176,48], "src": [320,128], "f": 1, "t": 204, "d": [26,59], "a": 1 }, + { "px": [64,64], "src": [320,128], "f": 0, "t": 204, "d": [26,68], "a": 1 }, + { "px": [176,64], "src": [320,128], "f": 1, "t": 204, "d": [26,75], "a": 1 }, + { "px": [64,80], "src": [320,128], "f": 0, "t": 204, "d": [26,84], "a": 1 }, + { "px": [176,80], "src": [320,128], "f": 1, "t": 204, "d": [26,91], "a": 1 }, + { "px": [64,96], "src": [320,128], "f": 0, "t": 204, "d": [26,100], "a": 1 }, + { "px": [64,112], "src": [320,128], "f": 0, "t": 204, "d": [26,116], "a": 1 }, + { "px": [96,112], "src": [320,128], "f": 1, "t": 204, "d": [26,118], "a": 1 }, + { "px": [144,112], "src": [320,128], "f": 0, "t": 204, "d": [26,121], "a": 1 }, + { "px": [64,128], "src": [320,128], "f": 0, "t": 204, "d": [26,132], "a": 1 }, + { "px": [96,128], "src": [320,128], "f": 1, "t": 204, "d": [26,134], "a": 1 }, + { "px": [144,128], "src": [320,128], "f": 0, "t": 204, "d": [26,137], "a": 1 }, + { "px": [96,144], "src": [320,128], "f": 1, "t": 204, "d": [26,150], "a": 1 }, + { "px": [176,176], "src": [320,128], "f": 1, "t": 204, "d": [26,187], "a": 1 }, + { "px": [176,192], "src": [320,128], "f": 1, "t": 204, "d": [26,203], "a": 1 }, + { "px": [64,208], "src": [320,128], "f": 0, "t": 204, "d": [26,212], "a": 1 }, + { "px": [176,208], "src": [320,128], "f": 1, "t": 204, "d": [26,219], "a": 1 }, + { "px": [96,96], "src": [320,96], "f": 1, "t": 158, "d": [138,102], "a": 1 }, + { "px": [144,96], "src": [320,96], "f": 0, "t": 158, "d": [138,105], "a": 1 }, + { "px": [80,160], "src": [320,96], "f": 1, "t": 158, "d": [138,165], "a": 1 }, + { "px": [64,192], "src": [320,96], "f": 0, "t": 158, "d": [138,196], "a": 1 }, + { "px": [64,48], "src": [336,112], "f": 0, "t": 182, "d": [27,52], "a": 1 }, + { "px": [80,48], "src": [336,112], "f": 0, "t": 182, "d": [27,53], "a": 1 }, + { "px": [96,48], "src": [336,112], "f": 0, "t": 182, "d": [27,54], "a": 1 }, + { "px": [112,48], "src": [336,112], "f": 0, "t": 182, "d": [27,55], "a": 1 }, + { "px": [128,48], "src": [336,112], "f": 0, "t": 182, "d": [27,56], "a": 1 }, + { "px": [144,48], "src": [336,112], "f": 0, "t": 182, "d": [27,57], "a": 1 }, + { "px": [160,48], "src": [336,112], "f": 0, "t": 182, "d": [27,58], "a": 1 }, + { "px": [176,48], "src": [336,112], "f": 0, "t": 182, "d": [27,59], "a": 1 }, + { "px": [192,96], "src": [336,112], "f": 0, "t": 182, "d": [27,108], "a": 1 }, + { "px": [208,96], "src": [336,112], "f": 0, "t": 182, "d": [27,109], "a": 1 }, + { "px": [224,96], "src": [336,112], "f": 0, "t": 182, "d": [27,110], "a": 1 }, + { "px": [240,96], "src": [336,112], "f": 0, "t": 182, "d": [27,111], "a": 1 }, + { "px": [0,144], "src": [336,112], "f": 0, "t": 182, "d": [27,144], "a": 1 }, + { "px": [16,144], "src": [336,112], "f": 0, "t": 182, "d": [27,145], "a": 1 }, + { "px": [32,144], "src": [336,112], "f": 0, "t": 182, "d": [27,146], "a": 1 }, + { "px": [48,144], "src": [336,112], "f": 0, "t": 182, "d": [27,147], "a": 1 }, + { "px": [96,176], "src": [336,112], "f": 0, "t": 182, "d": [27,182], "a": 1 }, + { "px": [112,176], "src": [336,112], "f": 0, "t": 182, "d": [27,183], "a": 1 }, + { "px": [128,176], "src": [336,112], "f": 0, "t": 182, "d": [27,184], "a": 1 }, + { "px": [144,176], "src": [336,112], "f": 0, "t": 182, "d": [27,185], "a": 1 }, + { "px": [160,176], "src": [336,112], "f": 0, "t": 182, "d": [27,186], "a": 1 }, + { "px": [176,176], "src": [336,112], "f": 0, "t": 182, "d": [27,187], "a": 1 }, + { "px": [176,96], "src": [320,112], "f": 1, "t": 181, "d": [137,107], "a": 1 }, + { "px": [64,144], "src": [320,112], "f": 0, "t": 181, "d": [137,148], "a": 1 }, + { "px": [80,176], "src": [320,112], "f": 1, "t": 181, "d": [137,181], "a": 1 } + ], + "seed": 8852500, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 16, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "07caf543-66b0-11ec-a595-1720f06413c0", + "levelId": 129, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0, + 0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1, + 0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [8,1], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [8,3], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [8,7], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [8,9], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [8,11], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [8,18], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [8,20], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [8,22], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [8,28], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [8,45], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [8,50], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [8,62], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [8,65], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [8,77], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [8,79], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [8,82], "a": 1 }, + { "px": [16,96], "src": [32,32], "f": 0, "t": 48, "d": [8,97], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [8,112], "a": 1 }, + { "px": [32,112], "src": [32,32], "f": 0, "t": 48, "d": [8,114], "a": 1 }, + { "px": [208,160], "src": [32,32], "f": 0, "t": 48, "d": [8,173], "a": 1 }, + { "px": [32,208], "src": [32,32], "f": 0, "t": 48, "d": [8,210], "a": 1 }, + { "px": [224,208], "src": [32,32], "f": 0, "t": 48, "d": [8,222], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [8,225], "a": 1 }, + { "px": [208,224], "src": [32,32], "f": 0, "t": 48, "d": [8,237], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [8,242], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [8,244], "a": 1 }, + { "px": [96,240], "src": [32,32], "f": 0, "t": 48, "d": [8,246], "a": 1 }, + { "px": [128,240], "src": [32,32], "f": 0, "t": 48, "d": [8,248], "a": 1 }, + { "px": [192,240], "src": [32,32], "f": 0, "t": 48, "d": [8,252], "a": 1 }, + { "px": [224,240], "src": [32,32], "f": 0, "t": 48, "d": [8,254], "a": 1 }, + { "px": [80,0], "src": [64,96], "f": 0, "t": 142, "d": [83,5], "a": 1 }, + { "px": [208,0], "src": [64,96], "f": 0, "t": 142, "d": [83,13], "a": 1 }, + { "px": [128,16], "src": [96,96], "f": 0, "t": 144, "d": [83,24], "a": 1 }, + { "px": [160,16], "src": [64,96], "f": 0, "t": 142, "d": [83,26], "a": 1 }, + { "px": [224,16], "src": [96,96], "f": 0, "t": 144, "d": [83,30], "a": 1 }, + { "px": [16,32], "src": [96,96], "f": 0, "t": 144, "d": [83,33], "a": 1 }, + { "px": [240,160], "src": [64,96], "f": 0, "t": 142, "d": [83,175], "a": 1 }, + { "px": [224,176], "src": [96,96], "f": 0, "t": 144, "d": [83,190], "a": 1 }, + { "px": [208,192], "src": [64,96], "f": 0, "t": 142, "d": [83,205], "a": 1 }, + { "px": [0,208], "src": [64,96], "f": 0, "t": 142, "d": [83,208], "a": 1 }, + { "px": [160,240], "src": [64,96], "f": 0, "t": 142, "d": [83,250], "a": 1 }, + { "px": [32,0], "src": [224,96], "f": 0, "t": 152, "d": [101,2], "a": 1 }, + { "px": [64,0], "src": [224,96], "f": 0, "t": 152, "d": [101,4], "a": 1 }, + { "px": [96,0], "src": [192,16], "f": 0, "t": 35, "d": [101,6], "a": 1 }, + { "px": [128,0], "src": [192,16], "f": 0, "t": 35, "d": [101,8], "a": 1 }, + { "px": [160,0], "src": [96,0], "f": 0, "t": 6, "d": [101,10], "a": 1 }, + { "px": [192,0], "src": [192,16], "f": 0, "t": 35, "d": [101,12], "a": 1 }, + { "px": [224,0], "src": [96,0], "f": 0, "t": 6, "d": [101,14], "a": 1 }, + { "px": [16,16], "src": [96,0], "f": 0, "t": 6, "d": [101,17], "a": 1 }, + { "px": [48,16], "src": [192,16], "f": 0, "t": 35, "d": [101,19], "a": 1 }, + { "px": [80,16], "src": [96,0], "f": 0, "t": 6, "d": [101,21], "a": 1 }, + { "px": [112,16], "src": [224,96], "f": 0, "t": 152, "d": [101,23], "a": 1 }, + { "px": [144,16], "src": [96,0], "f": 0, "t": 6, "d": [101,25], "a": 1 }, + { "px": [176,16], "src": [224,96], "f": 0, "t": 152, "d": [101,27], "a": 1 }, + { "px": [208,16], "src": [192,16], "f": 0, "t": 35, "d": [101,29], "a": 1 }, + { "px": [32,32], "src": [192,16], "f": 0, "t": 35, "d": [101,34], "a": 1 }, + { "px": [224,32], "src": [192,16], "f": 0, "t": 35, "d": [101,46], "a": 1 }, + { "px": [16,48], "src": [96,0], "f": 0, "t": 6, "d": [101,49], "a": 1 }, + { "px": [208,48], "src": [96,0], "f": 0, "t": 6, "d": [101,61], "a": 1 }, + { "px": [240,48], "src": [96,0], "f": 0, "t": 6, "d": [101,63], "a": 1 }, + { "px": [32,64], "src": [192,16], "f": 0, "t": 35, "d": [101,66], "a": 1 }, + { "px": [224,64], "src": [192,16], "f": 0, "t": 35, "d": [101,78], "a": 1 }, + { "px": [16,80], "src": [96,0], "f": 0, "t": 6, "d": [101,81], "a": 1 }, + { "px": [0,96], "src": [96,0], "f": 0, "t": 6, "d": [101,96], "a": 1 }, + { "px": [32,96], "src": [224,96], "f": 0, "t": 152, "d": [101,98], "a": 1 }, + { "px": [16,112], "src": [224,96], "f": 0, "t": 152, "d": [101,113], "a": 1 }, + { "px": [224,160], "src": [96,0], "f": 0, "t": 6, "d": [101,174], "a": 1 }, + { "px": [208,176], "src": [96,0], "f": 0, "t": 6, "d": [101,189], "a": 1 }, + { "px": [240,176], "src": [224,96], "f": 0, "t": 152, "d": [101,191], "a": 1 }, + { "px": [224,192], "src": [224,96], "f": 0, "t": 152, "d": [101,206], "a": 1 }, + { "px": [16,208], "src": [192,16], "f": 0, "t": 35, "d": [101,209], "a": 1 }, + { "px": [208,208], "src": [96,0], "f": 0, "t": 6, "d": [101,221], "a": 1 }, + { "px": [0,224], "src": [224,96], "f": 0, "t": 152, "d": [101,224], "a": 1 }, + { "px": [32,224], "src": [224,96], "f": 0, "t": 152, "d": [101,226], "a": 1 }, + { "px": [224,224], "src": [96,0], "f": 0, "t": 6, "d": [101,238], "a": 1 }, + { "px": [16,240], "src": [96,0], "f": 0, "t": 6, "d": [101,241], "a": 1 }, + { "px": [48,240], "src": [192,16], "f": 0, "t": 35, "d": [101,243], "a": 1 }, + { "px": [80,240], "src": [192,16], "f": 0, "t": 35, "d": [101,245], "a": 1 }, + { "px": [112,240], "src": [96,0], "f": 0, "t": 6, "d": [101,247], "a": 1 }, + { "px": [144,240], "src": [224,96], "f": 0, "t": 152, "d": [101,249], "a": 1 }, + { "px": [176,240], "src": [192,16], "f": 0, "t": 35, "d": [101,251], "a": 1 }, + { "px": [208,240], "src": [192,16], "f": 0, "t": 35, "d": [101,253], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,16], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,47], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [0,80], "src": [32,32], "f": 0, "t": 48, "d": [127,80], "a": 1 }, + { "px": [240,192], "src": [32,32], "f": 0, "t": 48, "d": [127,207], "a": 1 }, + { "px": [240,224], "src": [32,32], "f": 0, "t": 48, "d": [127,239], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [127,240], "a": 1 }, + { "px": [0,0], "src": [96,96], "f": 0, "t": 144, "d": [126,0], "a": 1 }, + { "px": [240,16], "src": [96,96], "f": 0, "t": 144, "d": [126,31], "a": 1 }, + { "px": [0,32], "src": [96,96], "f": 0, "t": 144, "d": [126,32], "a": 1 }, + { "px": [0,64], "src": [64,96], "f": 0, "t": 142, "d": [126,64], "a": 1 }, + { "px": [240,208], "src": [64,96], "f": 0, "t": 142, "d": [126,223], "a": 1 }, + { "px": [240,240], "src": [96,96], "f": 0, "t": 144, "d": [126,255], "a": 1 }, + { "px": [64,32], "src": [256,160], "f": 0, "t": 246, "d": [12,36], "a": 1 }, + { "px": [96,32], "src": [256,160], "f": 0, "t": 246, "d": [12,38], "a": 1 }, + { "px": [112,32], "src": [256,160], "f": 0, "t": 246, "d": [12,39], "a": 1 }, + { "px": [128,32], "src": [256,160], "f": 0, "t": 246, "d": [12,40], "a": 1 }, + { "px": [144,32], "src": [256,160], "f": 0, "t": 246, "d": [12,41], "a": 1 }, + { "px": [208,80], "src": [256,160], "f": 0, "t": 246, "d": [12,93], "a": 1 }, + { "px": [0,128], "src": [256,160], "f": 0, "t": 246, "d": [12,128], "a": 1 }, + { "px": [16,128], "src": [256,160], "f": 0, "t": 246, "d": [12,129], "a": 1 }, + { "px": [128,160], "src": [256,160], "f": 0, "t": 246, "d": [12,168], "a": 1 }, + { "px": [160,160], "src": [256,160], "f": 0, "t": 246, "d": [12,170], "a": 1 }, + { "px": [176,160], "src": [256,160], "f": 0, "t": 246, "d": [12,171], "a": 1 }, + { "px": [144,144], "src": [256,96], "f": 0, "t": 154, "d": [9,153], "a": 1 }, + { "px": [160,144], "src": [256,96], "f": 0, "t": 154, "d": [9,154], "a": 1 }, + { "px": [176,144], "src": [256,96], "f": 0, "t": 154, "d": [9,155], "a": 1 }, + { "px": [192,144], "src": [256,96], "f": 0, "t": 154, "d": [9,156], "a": 1 }, + { "px": [16,192], "src": [256,96], "f": 0, "t": 154, "d": [9,193], "a": 1 }, + { "px": [32,192], "src": [256,96], "f": 0, "t": 154, "d": [9,194], "a": 1 }, + { "px": [64,224], "src": [256,96], "f": 0, "t": 154, "d": [9,228], "a": 1 }, + { "px": [80,224], "src": [256,96], "f": 0, "t": 154, "d": [9,229], "a": 1 }, + { "px": [160,224], "src": [256,96], "f": 0, "t": 154, "d": [9,234], "a": 1 }, + { "px": [176,224], "src": [256,96], "f": 0, "t": 154, "d": [9,235], "a": 1 }, + { "px": [48,48], "src": [224,128], "f": 1, "t": 198, "d": [10,51], "a": 1 }, + { "px": [192,48], "src": [224,128], "f": 0, "t": 198, "d": [10,60], "a": 1 }, + { "px": [48,64], "src": [224,128], "f": 1, "t": 198, "d": [10,67], "a": 1 }, + { "px": [192,64], "src": [224,128], "f": 0, "t": 198, "d": [10,76], "a": 1 }, + { "px": [48,80], "src": [224,128], "f": 1, "t": 198, "d": [10,83], "a": 1 }, + { "px": [48,96], "src": [224,128], "f": 1, "t": 198, "d": [10,99], "a": 1 }, + { "px": [48,112], "src": [224,128], "f": 1, "t": 198, "d": [10,115], "a": 1 }, + { "px": [112,112], "src": [224,128], "f": 0, "t": 198, "d": [10,119], "a": 1 }, + { "px": [128,112], "src": [224,128], "f": 1, "t": 198, "d": [10,120], "a": 1 }, + { "px": [112,128], "src": [224,128], "f": 0, "t": 198, "d": [10,135], "a": 1 }, + { "px": [128,128], "src": [224,128], "f": 1, "t": 198, "d": [10,136], "a": 1 }, + { "px": [112,144], "src": [224,128], "f": 0, "t": 198, "d": [10,151], "a": 1 }, + { "px": [192,176], "src": [224,128], "f": 0, "t": 198, "d": [10,188], "a": 1 }, + { "px": [192,192], "src": [224,128], "f": 0, "t": 198, "d": [10,204], "a": 1 }, + { "px": [48,208], "src": [224,128], "f": 1, "t": 198, "d": [10,211], "a": 1 }, + { "px": [192,208], "src": [224,128], "f": 0, "t": 198, "d": [10,220], "a": 1 }, + { "px": [192,80], "src": [224,96], "f": 2, "t": 152, "d": [11,92], "a": 1 }, + { "px": [48,128], "src": [224,96], "f": 3, "t": 152, "d": [11,131], "a": 1 }, + { "px": [96,160], "src": [224,96], "f": 0, "t": 152, "d": [11,166], "a": 1 }, + { "px": [48,192], "src": [224,96], "f": 1, "t": 152, "d": [11,195], "a": 1 }, + { "px": [48,32], "src": [224,96], "f": 0, "t": 152, "d": [14,35], "a": 1 }, + { "px": [192,32], "src": [224,96], "f": 1, "t": 152, "d": [14,44], "a": 1 }, + { "px": [128,144], "src": [224,96], "f": 2, "t": 152, "d": [14,152], "a": 1 }, + { "px": [112,160], "src": [224,96], "f": 3, "t": 152, "d": [14,167], "a": 1 }, + { "px": [192,160], "src": [224,96], "f": 1, "t": 152, "d": [14,172], "a": 1 }, + { "px": [48,224], "src": [224,96], "f": 2, "t": 152, "d": [14,227], "a": 1 }, + { "px": [192,224], "src": [224,96], "f": 3, "t": 152, "d": [14,236], "a": 1 }, + { "px": [80,32], "src": [160,192], "f": 0, "t": 286, "d": [78,37], "a": 1 }, + { "px": [160,32], "src": [160,192], "f": 0, "t": 286, "d": [78,42], "a": 1 }, + { "px": [176,32], "src": [192,192], "f": 0, "t": 288, "d": [78,43], "a": 1 }, + { "px": [224,80], "src": [160,192], "f": 0, "t": 286, "d": [78,94], "a": 1 }, + { "px": [240,80], "src": [192,192], "f": 0, "t": 288, "d": [78,95], "a": 1 }, + { "px": [32,128], "src": [192,192], "f": 0, "t": 288, "d": [78,130], "a": 1 }, + { "px": [144,160], "src": [160,192], "f": 0, "t": 286, "d": [78,169], "a": 1 }, + { "px": [112,96], "src": [32,0], "f": 0, "t": 2, "d": [80,103], "a": 1 }, + { "px": [128,96], "src": [32,0], "f": 0, "t": 2, "d": [80,104], "a": 1 }, + { "px": [208,144], "src": [32,0], "f": 0, "t": 2, "d": [80,157], "a": 1 }, + { "px": [224,144], "src": [32,0], "f": 0, "t": 2, "d": [80,158], "a": 1 }, + { "px": [240,144], "src": [32,0], "f": 0, "t": 2, "d": [80,159], "a": 1 }, + { "px": [0,192], "src": [32,0], "f": 0, "t": 2, "d": [80,192], "a": 1 }, + { "px": [96,224], "src": [32,0], "f": 0, "t": 2, "d": [80,230], "a": 1 }, + { "px": [112,224], "src": [32,0], "f": 0, "t": 2, "d": [80,231], "a": 1 }, + { "px": [128,224], "src": [32,0], "f": 0, "t": 2, "d": [80,232], "a": 1 }, + { "px": [144,224], "src": [32,0], "f": 0, "t": 2, "d": [80,233], "a": 1 }, + { "px": [112,80], "src": [0,96], "f": 0, "t": 138, "d": [110,87], "a": 1 }, + { "px": [144,128], "src": [0,96], "f": 0, "t": 138, "d": [110,137], "a": 1 }, + { "px": [176,128], "src": [0,96], "f": 0, "t": 138, "d": [110,139], "a": 1 }, + { "px": [224,128], "src": [0,96], "f": 0, "t": 138, "d": [110,142], "a": 1 }, + { "px": [32,176], "src": [0,96], "f": 0, "t": 138, "d": [110,178], "a": 1 }, + { "px": [64,208], "src": [0,96], "f": 0, "t": 138, "d": [110,212], "a": 1 }, + { "px": [96,208], "src": [0,96], "f": 0, "t": 138, "d": [110,214], "a": 1 }, + { "px": [144,208], "src": [32,96], "f": 0, "t": 140, "d": [110,217], "a": 1 }, + { "px": [160,208], "src": [0,96], "f": 0, "t": 138, "d": [110,218], "a": 1 } + ], + "seed": 7328729, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 16, + "__cHei": 16, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "07caf544-66b0-11ec-a595-ed53fae67c85", + "levelId": 129, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [112,48], "src": [320,272], "f": 0, "t": 411, "d": [108,55], "a": 1 }, + { "px": [128,48], "src": [320,272], "f": 0, "t": 411, "d": [108,56], "a": 1 }, + { "px": [144,48], "src": [320,272], "f": 0, "t": 411, "d": [108,57], "a": 1 }, + { "px": [160,48], "src": [320,272], "f": 0, "t": 411, "d": [108,58], "a": 1 }, + { "px": [80,64], "src": [320,272], "f": 0, "t": 411, "d": [108,69], "a": 1 }, + { "px": [96,64], "src": [320,272], "f": 0, "t": 411, "d": [108,70], "a": 1 }, + { "px": [112,64], "src": [320,272], "f": 0, "t": 411, "d": [108,71], "a": 1 }, + { "px": [128,64], "src": [320,272], "f": 0, "t": 411, "d": [108,72], "a": 1 }, + { "px": [144,64], "src": [320,272], "f": 0, "t": 411, "d": [108,73], "a": 1 }, + { "px": [160,64], "src": [320,272], "f": 0, "t": 411, "d": [108,74], "a": 1 }, + { "px": [80,80], "src": [320,272], "f": 0, "t": 411, "d": [108,85], "a": 1 }, + { "px": [96,80], "src": [320,272], "f": 0, "t": 411, "d": [108,86], "a": 1 }, + { "px": [112,80], "src": [320,272], "f": 0, "t": 411, "d": [108,87], "a": 1 }, + { "px": [128,80], "src": [320,272], "f": 0, "t": 411, "d": [108,88], "a": 1 }, + { "px": [144,80], "src": [320,272], "f": 0, "t": 411, "d": [108,89], "a": 1 }, + { "px": [160,80], "src": [320,272], "f": 0, "t": 411, "d": [108,90], "a": 1 }, + { "px": [160,96], "src": [320,272], "f": 0, "t": 411, "d": [108,106], "a": 1 }, + { "px": [176,96], "src": [320,272], "f": 0, "t": 411, "d": [108,107], "a": 1 }, + { "px": [192,96], "src": [320,272], "f": 0, "t": 411, "d": [108,108], "a": 1 }, + { "px": [208,96], "src": [320,272], "f": 0, "t": 411, "d": [108,109], "a": 1 }, + { "px": [224,96], "src": [320,272], "f": 0, "t": 411, "d": [108,110], "a": 1 }, + { "px": [240,96], "src": [320,272], "f": 0, "t": 411, "d": [108,111], "a": 1 }, + { "px": [80,112], "src": [320,272], "f": 0, "t": 411, "d": [108,117], "a": 1 }, + { "px": [160,112], "src": [320,272], "f": 0, "t": 411, "d": [108,122], "a": 1 }, + { "px": [176,112], "src": [320,272], "f": 0, "t": 411, "d": [108,123], "a": 1 }, + { "px": [192,112], "src": [320,272], "f": 0, "t": 411, "d": [108,124], "a": 1 }, + { "px": [208,112], "src": [320,272], "f": 0, "t": 411, "d": [108,125], "a": 1 }, + { "px": [224,112], "src": [320,272], "f": 0, "t": 411, "d": [108,126], "a": 1 }, + { "px": [240,112], "src": [320,272], "f": 0, "t": 411, "d": [108,127], "a": 1 }, + { "px": [80,128], "src": [320,272], "f": 0, "t": 411, "d": [108,133], "a": 1 }, + { "px": [176,128], "src": [320,272], "f": 0, "t": 411, "d": [108,139], "a": 1 }, + { "px": [192,128], "src": [320,272], "f": 0, "t": 411, "d": [108,140], "a": 1 }, + { "px": [208,128], "src": [320,272], "f": 0, "t": 411, "d": [108,141], "a": 1 }, + { "px": [224,128], "src": [320,272], "f": 0, "t": 411, "d": [108,142], "a": 1 }, + { "px": [240,128], "src": [320,272], "f": 0, "t": 411, "d": [108,143], "a": 1 }, + { "px": [0,144], "src": [320,272], "f": 0, "t": 411, "d": [108,144], "a": 1 }, + { "px": [16,144], "src": [320,272], "f": 0, "t": 411, "d": [108,145], "a": 1 }, + { "px": [32,144], "src": [320,272], "f": 0, "t": 411, "d": [108,146], "a": 1 }, + { "px": [48,144], "src": [320,272], "f": 0, "t": 411, "d": [108,147], "a": 1 }, + { "px": [64,144], "src": [320,272], "f": 0, "t": 411, "d": [108,148], "a": 1 }, + { "px": [80,144], "src": [320,272], "f": 0, "t": 411, "d": [108,149], "a": 1 }, + { "px": [0,160], "src": [320,272], "f": 0, "t": 411, "d": [108,160], "a": 1 }, + { "px": [16,160], "src": [320,272], "f": 0, "t": 411, "d": [108,161], "a": 1 }, + { "px": [32,160], "src": [320,272], "f": 0, "t": 411, "d": [108,162], "a": 1 }, + { "px": [48,160], "src": [320,272], "f": 0, "t": 411, "d": [108,163], "a": 1 }, + { "px": [64,160], "src": [320,272], "f": 0, "t": 411, "d": [108,164], "a": 1 }, + { "px": [0,176], "src": [320,272], "f": 0, "t": 411, "d": [108,176], "a": 1 }, + { "px": [16,176], "src": [320,272], "f": 0, "t": 411, "d": [108,177], "a": 1 }, + { "px": [32,176], "src": [320,272], "f": 0, "t": 411, "d": [108,178], "a": 1 }, + { "px": [48,176], "src": [320,272], "f": 0, "t": 411, "d": [108,179], "a": 1 }, + { "px": [64,176], "src": [320,272], "f": 0, "t": 411, "d": [108,180], "a": 1 }, + { "px": [80,176], "src": [320,272], "f": 0, "t": 411, "d": [108,181], "a": 1 }, + { "px": [96,176], "src": [320,272], "f": 0, "t": 411, "d": [108,182], "a": 1 }, + { "px": [112,176], "src": [320,272], "f": 0, "t": 411, "d": [108,183], "a": 1 }, + { "px": [144,176], "src": [320,272], "f": 0, "t": 411, "d": [108,185], "a": 1 }, + { "px": [80,192], "src": [320,272], "f": 0, "t": 411, "d": [108,197], "a": 1 }, + { "px": [96,192], "src": [320,272], "f": 0, "t": 411, "d": [108,198], "a": 1 }, + { "px": [112,192], "src": [320,272], "f": 0, "t": 411, "d": [108,199], "a": 1 }, + { "px": [128,192], "src": [320,272], "f": 0, "t": 411, "d": [108,200], "a": 1 }, + { "px": [160,192], "src": [320,272], "f": 0, "t": 411, "d": [108,202], "a": 1 }, + { "px": [80,208], "src": [320,272], "f": 0, "t": 411, "d": [108,213], "a": 1 }, + { "px": [96,208], "src": [320,272], "f": 0, "t": 411, "d": [108,214], "a": 1 }, + { "px": [112,208], "src": [320,272], "f": 0, "t": 411, "d": [108,215], "a": 1 }, + { "px": [128,208], "src": [320,272], "f": 0, "t": 411, "d": [108,216], "a": 1 }, + { "px": [144,208], "src": [320,272], "f": 0, "t": 411, "d": [108,217], "a": 1 }, + { "px": [80,64], "src": [256,240], "f": 1, "t": 361, "d": [107,68], "a": 1 }, + { "px": [64,64], "src": [272,240], "f": 1, "t": 362, "d": [107,68], "a": 1 }, + { "px": [160,64], "src": [256,240], "f": 0, "t": 361, "d": [107,75], "a": 1 }, + { "px": [176,64], "src": [272,240], "f": 0, "t": 362, "d": [107,75], "a": 1 }, + { "px": [80,80], "src": [256,240], "f": 1, "t": 361, "d": [107,84], "a": 1 }, + { "px": [64,80], "src": [272,240], "f": 1, "t": 362, "d": [107,84], "a": 1 }, + { "px": [160,80], "src": [256,240], "f": 0, "t": 361, "d": [107,91], "a": 1 }, + { "px": [176,80], "src": [272,240], "f": 0, "t": 362, "d": [107,91], "a": 1 }, + { "px": [80,96], "src": [256,240], "f": 1, "t": 361, "d": [107,100], "a": 1 }, + { "px": [64,96], "src": [272,240], "f": 1, "t": 362, "d": [107,100], "a": 1 }, + { "px": [80,96], "src": [256,240], "f": 0, "t": 361, "d": [107,102], "a": 1 }, + { "px": [96,96], "src": [272,240], "f": 0, "t": 362, "d": [107,102], "a": 1 }, + { "px": [160,96], "src": [256,240], "f": 1, "t": 361, "d": [107,105], "a": 1 }, + { "px": [144,96], "src": [272,240], "f": 1, "t": 362, "d": [107,105], "a": 1 }, + { "px": [80,112], "src": [256,240], "f": 1, "t": 361, "d": [107,116], "a": 1 }, + { "px": [64,112], "src": [272,240], "f": 1, "t": 362, "d": [107,116], "a": 1 }, + { "px": [80,112], "src": [256,240], "f": 0, "t": 361, "d": [107,118], "a": 1 }, + { "px": [96,112], "src": [272,240], "f": 0, "t": 362, "d": [107,118], "a": 1 }, + { "px": [160,112], "src": [256,240], "f": 1, "t": 361, "d": [107,121], "a": 1 }, + { "px": [144,112], "src": [272,240], "f": 1, "t": 362, "d": [107,121], "a": 1 }, + { "px": [80,128], "src": [256,240], "f": 1, "t": 361, "d": [107,132], "a": 1 }, + { "px": [64,128], "src": [272,240], "f": 1, "t": 362, "d": [107,132], "a": 1 }, + { "px": [80,128], "src": [256,240], "f": 0, "t": 361, "d": [107,134], "a": 1 }, + { "px": [96,128], "src": [272,240], "f": 0, "t": 362, "d": [107,134], "a": 1 }, + { "px": [80,144], "src": [256,240], "f": 0, "t": 361, "d": [107,150], "a": 1 }, + { "px": [96,144], "src": [272,240], "f": 0, "t": 362, "d": [107,150], "a": 1 }, + { "px": [64,160], "src": [256,240], "f": 0, "t": 361, "d": [107,165], "a": 1 }, + { "px": [80,160], "src": [272,240], "f": 0, "t": 362, "d": [107,165], "a": 1 }, + { "px": [80,192], "src": [256,240], "f": 1, "t": 361, "d": [107,196], "a": 1 }, + { "px": [64,192], "src": [272,240], "f": 1, "t": 362, "d": [107,196], "a": 1 }, + { "px": [160,192], "src": [256,240], "f": 0, "t": 361, "d": [107,203], "a": 1 }, + { "px": [176,192], "src": [272,240], "f": 0, "t": 362, "d": [107,203], "a": 1 }, + { "px": [80,208], "src": [256,240], "f": 1, "t": 361, "d": [107,212], "a": 1 }, + { "px": [64,208], "src": [272,240], "f": 1, "t": 362, "d": [107,212], "a": 1 }, + { "px": [64,96], "src": [256,240], "f": 0, "t": 361, "d": [105,101], "a": 1 }, + { "px": [80,96], "src": [272,240], "f": 0, "t": 362, "d": [105,101], "a": 1 }, + { "px": [96,96], "src": [288,240], "f": 0, "t": 363, "d": [105,101], "a": 1 }, + { "px": [128,192], "src": [256,240], "f": 0, "t": 361, "d": [105,201], "a": 1 }, + { "px": [144,192], "src": [272,240], "f": 0, "t": 362, "d": [105,201], "a": 1 }, + { "px": [160,192], "src": [288,240], "f": 0, "t": 363, "d": [105,201], "a": 1 }, + { "px": [64,80], "src": [144,240], "f": 2, "t": 354, "d": [112,53], "a": 1 }, + { "px": [64,64], "src": [144,256], "f": 2, "t": 377, "d": [112,53], "a": 1 }, + { "px": [64,48], "src": [144,272], "f": 2, "t": 400, "d": [112,53], "a": 1 }, + { "px": [80,80], "src": [160,240], "f": 2, "t": 355, "d": [112,53], "a": 1 }, + { "px": [80,64], "src": [160,256], "f": 2, "t": 378, "d": [112,53], "a": 1 }, + { "px": [80,48], "src": [160,272], "f": 2, "t": 401, "d": [112,53], "a": 1 }, + { "px": [96,80], "src": [176,240], "f": 2, "t": 356, "d": [112,53], "a": 1 }, + { "px": [96,64], "src": [176,256], "f": 2, "t": 379, "d": [112,53], "a": 1 }, + { "px": [96,48], "src": [176,272], "f": 2, "t": 402, "d": [112,53], "a": 1 }, + { "px": [144,96], "src": [144,240], "f": 0, "t": 354, "d": [112,138], "a": 1 }, + { "px": [144,112], "src": [144,256], "f": 0, "t": 377, "d": [112,138], "a": 1 }, + { "px": [144,128], "src": [144,272], "f": 0, "t": 400, "d": [112,138], "a": 1 }, + { "px": [160,96], "src": [160,240], "f": 0, "t": 355, "d": [112,138], "a": 1 }, + { "px": [160,112], "src": [160,256], "f": 0, "t": 378, "d": [112,138], "a": 1 }, + { "px": [160,128], "src": [160,272], "f": 0, "t": 401, "d": [112,138], "a": 1 }, + { "px": [176,96], "src": [176,240], "f": 0, "t": 356, "d": [112,138], "a": 1 }, + { "px": [176,112], "src": [176,256], "f": 0, "t": 379, "d": [112,138], "a": 1 }, + { "px": [176,128], "src": [176,272], "f": 0, "t": 402, "d": [112,138], "a": 1 }, + { "px": [144,176], "src": [144,240], "f": 0, "t": 354, "d": [112,218], "a": 1 }, + { "px": [144,192], "src": [144,256], "f": 0, "t": 377, "d": [112,218], "a": 1 }, + { "px": [144,208], "src": [144,272], "f": 0, "t": 400, "d": [112,218], "a": 1 }, + { "px": [160,176], "src": [160,240], "f": 0, "t": 355, "d": [112,218], "a": 1 }, + { "px": [160,192], "src": [160,256], "f": 0, "t": 378, "d": [112,218], "a": 1 }, + { "px": [160,208], "src": [160,272], "f": 0, "t": 401, "d": [112,218], "a": 1 }, + { "px": [176,176], "src": [176,240], "f": 0, "t": 356, "d": [112,218], "a": 1 }, + { "px": [176,192], "src": [176,256], "f": 0, "t": 379, "d": [112,218], "a": 1 }, + { "px": [176,208], "src": [176,272], "f": 0, "t": 402, "d": [112,218], "a": 1 }, + { "px": [64,64], "src": [192,304], "f": 2, "t": 449, "d": [113,52], "a": 1 }, + { "px": [64,48], "src": [192,320], "f": 2, "t": 472, "d": [113,52], "a": 1 }, + { "px": [80,64], "src": [208,304], "f": 2, "t": 450, "d": [113,52], "a": 1 }, + { "px": [80,48], "src": [208,320], "f": 2, "t": 473, "d": [113,52], "a": 1 }, + { "px": [96,64], "src": [224,304], "f": 2, "t": 451, "d": [113,52], "a": 1 }, + { "px": [96,48], "src": [224,320], "f": 2, "t": 474, "d": [113,52], "a": 1 }, + { "px": [176,64], "src": [192,304], "f": 3, "t": 449, "d": [113,59], "a": 1 }, + { "px": [176,48], "src": [192,320], "f": 3, "t": 472, "d": [113,59], "a": 1 }, + { "px": [160,64], "src": [208,304], "f": 3, "t": 450, "d": [113,59], "a": 1 }, + { "px": [160,48], "src": [208,320], "f": 3, "t": 473, "d": [113,59], "a": 1 }, + { "px": [144,64], "src": [224,304], "f": 3, "t": 451, "d": [113,59], "a": 1 }, + { "px": [144,48], "src": [224,320], "f": 3, "t": 474, "d": [113,59], "a": 1 }, + { "px": [144,112], "src": [192,304], "f": 0, "t": 449, "d": [113,137], "a": 1 }, + { "px": [144,128], "src": [192,320], "f": 0, "t": 472, "d": [113,137], "a": 1 }, + { "px": [160,112], "src": [208,304], "f": 0, "t": 450, "d": [113,137], "a": 1 }, + { "px": [160,128], "src": [208,320], "f": 0, "t": 473, "d": [113,137], "a": 1 }, + { "px": [176,112], "src": [224,304], "f": 0, "t": 451, "d": [113,137], "a": 1 }, + { "px": [176,128], "src": [224,320], "f": 0, "t": 474, "d": [113,137], "a": 1 }, + { "px": [176,192], "src": [192,304], "f": 3, "t": 449, "d": [113,187], "a": 1 }, + { "px": [176,176], "src": [192,320], "f": 3, "t": 472, "d": [113,187], "a": 1 }, + { "px": [160,192], "src": [208,304], "f": 3, "t": 450, "d": [113,187], "a": 1 }, + { "px": [160,176], "src": [208,320], "f": 3, "t": 473, "d": [113,187], "a": 1 }, + { "px": [144,192], "src": [224,304], "f": 3, "t": 451, "d": [113,187], "a": 1 }, + { "px": [144,176], "src": [224,320], "f": 3, "t": 474, "d": [113,187], "a": 1 }, + { "px": [176,192], "src": [192,304], "f": 1, "t": 449, "d": [113,219], "a": 1 }, + { "px": [176,208], "src": [192,320], "f": 1, "t": 472, "d": [113,219], "a": 1 }, + { "px": [160,192], "src": [208,304], "f": 1, "t": 450, "d": [113,219], "a": 1 }, + { "px": [160,208], "src": [208,320], "f": 1, "t": 473, "d": [113,219], "a": 1 }, + { "px": [144,192], "src": [224,304], "f": 1, "t": 451, "d": [113,219], "a": 1 }, + { "px": [144,208], "src": [224,320], "f": 1, "t": 474, "d": [113,219], "a": 1 }, + { "px": [96,48], "src": [128,224], "f": 0, "t": 330, "d": [114,54], "a": 1 }, + { "px": [128,176], "src": [128,224], "f": 0, "t": 330, "d": [114,184], "a": 1 }, + { "px": [160,176], "src": [128,208], "f": 0, "t": 307, "d": [115,186], "a": 1 }, + { "px": [160,192], "src": [128,224], "f": 0, "t": 330, "d": [115,186], "a": 1 } + ], + "seed": 7159786, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [ { "levelIid": "a36811d0-66b0-11ec-9cd7-4367627fb745", "dir": "w" }, { "levelIid": "a36fda00-66b0-11ec-9cd7-ffa8f8d0b484", "dir": "s" }, { "levelIid": "a370eb70-66b0-11ec-9cd7-ef1d13410308", "dir": "e" }, { "levelIid": "a3727210-66b0-11ec-9cd7-aba0184f5034", "dir": "n" } ] + }, + { + "identifier": "Shortcut_passage", + "iid": "9312a0d0-66b0-11ec-a595-a934707bd447", + "uid": 132, + "worldX": 512, + "worldY": 768, + "worldDepth": 1, + "pxWid": 768, + "pxHei": 768, + "__bgColor": "#37494E", + "bgColor": null, + "useAutoIdentifier": false, + "bgRelPath": null, + "bgPos": null, + "bgPivotX": 0.5, + "bgPivotY": 0.5, + "__smartColor": "#919B9E", + "__bgPos": null, + "externalRelPath": null, + "fieldInstances": [{ "__identifier": "roomType", "__type": "LocalEnum.RoomType", "__value": null, "__tile": null, "defUid": 99, "realEditorValues": [] }], + "layerInstances": [ + { + "__identifier": "Entities", + "__type": "Entities", + "__cWid": 48, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": null, + "__tilesetRelPath": null, + "iid": "9312a0d1-66b0-11ec-a595-23396da8cf9f", + "levelId": 132, + "layerDefUid": 77, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [], + "seed": 2289451, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [ + { + "__identifier": "Teleport", + "__grid": [18,32], + "__pivot": [0.5,1], + "__tags": ["actor"], + "__tile": { "tilesetUid": 133, "x": 224, "y": 176, "w": 16, "h": 16 }, + "__smartColor": "#EC50FF", + "iid": "abd6a7b0-66b0-11ec-a595-ffcc1299ef8f", + "width": 24, + "height": 24, + "defUid": 130, + "px": [296,528], + "fieldInstances": [{ "__identifier": "destination", "__type": "EntityRef", "__value": { + "entityIid": "1a247570-66b0-11ec-b893-3368fa8363b5", + "layerIid": "a36b6d35-66b0-11ec-9cd7-430b1023ae6b", + "levelIid": "a36b6d30-66b0-11ec-9cd7-8145d2a69a56", + "worldIid": "ca3d7420-c640-11ed-ad34-5f1a115c4cf3" + }, "__tile": null, "defUid": 131, "realEditorValues": [{ + "id": "V_String", + "params": ["1a247570-66b0-11ec-b893-3368fa8363b5"] + }] }] + }, + { + "__identifier": "Teleport", + "__grid": [28,10], + "__pivot": [0.5,1], + "__tags": ["actor"], + "__tile": { "tilesetUid": 133, "x": 224, "y": 176, "w": 16, "h": 16 }, + "__smartColor": "#EC50FF", + "iid": "b70d98a0-66b0-11ec-a595-b125edb525fa", + "width": 24, + "height": 24, + "defUid": 130, + "px": [456,176], + "fieldInstances": [{ "__identifier": "destination", "__type": "EntityRef", "__value": { + "entityIid": "b9c16e00-66b0-11ec-a595-f73311b85ab0", + "layerIid": "a3707645-66b0-11ec-9cd7-cf8dbd45f43c", + "levelIid": "a3707640-66b0-11ec-9cd7-59efc6b24075", + "worldIid": "ca3d7420-c640-11ed-ad34-5f1a115c4cf3" + }, "__tile": null, "defUid": 131, "realEditorValues": [{ + "id": "V_String", + "params": ["b9c16e00-66b0-11ec-a595-f73311b85ab0"] + }] }] + } + ] + }, + { + "__identifier": "Wall_shadows", + "__type": "AutoLayer", + "__cWid": 48, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 0.53, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "9312a0d2-66b0-11ec-a595-4f8a317d98c1", + "levelId": 132, + "layerDefUid": 24, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [336,96], "src": [320,128], "f": 0, "t": 204, "d": [26,309], "a": 1 }, + { "px": [464,96], "src": [320,128], "f": 1, "t": 204, "d": [26,317], "a": 1 }, + { "px": [336,112], "src": [320,128], "f": 0, "t": 204, "d": [26,357], "a": 1 }, + { "px": [464,112], "src": [320,128], "f": 1, "t": 204, "d": [26,365], "a": 1 }, + { "px": [336,128], "src": [320,128], "f": 0, "t": 204, "d": [26,405], "a": 1 }, + { "px": [464,128], "src": [320,128], "f": 1, "t": 204, "d": [26,413], "a": 1 }, + { "px": [336,144], "src": [320,128], "f": 0, "t": 204, "d": [26,453], "a": 1 }, + { "px": [464,144], "src": [320,128], "f": 1, "t": 204, "d": [26,461], "a": 1 }, + { "px": [336,160], "src": [320,128], "f": 0, "t": 204, "d": [26,501], "a": 1 }, + { "px": [464,160], "src": [320,128], "f": 1, "t": 204, "d": [26,509], "a": 1 }, + { "px": [384,192], "src": [320,128], "f": 0, "t": 204, "d": [26,600], "a": 1 }, + { "px": [416,192], "src": [320,128], "f": 1, "t": 204, "d": [26,602], "a": 1 }, + { "px": [384,208], "src": [320,128], "f": 0, "t": 204, "d": [26,648], "a": 1 }, + { "px": [416,208], "src": [320,128], "f": 1, "t": 204, "d": [26,650], "a": 1 }, + { "px": [384,224], "src": [320,128], "f": 0, "t": 204, "d": [26,696], "a": 1 }, + { "px": [416,224], "src": [320,128], "f": 1, "t": 204, "d": [26,698], "a": 1 }, + { "px": [384,240], "src": [320,128], "f": 0, "t": 204, "d": [26,744], "a": 1 }, + { "px": [416,240], "src": [320,128], "f": 1, "t": 204, "d": [26,746], "a": 1 }, + { "px": [384,256], "src": [320,128], "f": 0, "t": 204, "d": [26,792], "a": 1 }, + { "px": [416,256], "src": [320,128], "f": 1, "t": 204, "d": [26,794], "a": 1 }, + { "px": [384,272], "src": [320,128], "f": 0, "t": 204, "d": [26,840], "a": 1 }, + { "px": [416,272], "src": [320,128], "f": 1, "t": 204, "d": [26,842], "a": 1 }, + { "px": [304,288], "src": [320,128], "f": 0, "t": 204, "d": [26,883], "a": 1 }, + { "px": [416,288], "src": [320,128], "f": 1, "t": 204, "d": [26,890], "a": 1 }, + { "px": [304,304], "src": [320,128], "f": 0, "t": 204, "d": [26,931], "a": 1 }, + { "px": [416,304], "src": [320,128], "f": 1, "t": 204, "d": [26,938], "a": 1 }, + { "px": [304,320], "src": [320,128], "f": 0, "t": 204, "d": [26,979], "a": 1 }, + { "px": [416,320], "src": [320,128], "f": 1, "t": 204, "d": [26,986], "a": 1 }, + { "px": [304,336], "src": [320,128], "f": 0, "t": 204, "d": [26,1027], "a": 1 }, + { "px": [304,352], "src": [320,128], "f": 0, "t": 204, "d": [26,1075], "a": 1 }, + { "px": [336,352], "src": [320,128], "f": 1, "t": 204, "d": [26,1077], "a": 1 }, + { "px": [304,368], "src": [320,128], "f": 0, "t": 204, "d": [26,1123], "a": 1 }, + { "px": [464,368], "src": [320,128], "f": 1, "t": 204, "d": [26,1133], "a": 1 }, + { "px": [304,384], "src": [320,128], "f": 0, "t": 204, "d": [26,1171], "a": 1 }, + { "px": [464,384], "src": [320,128], "f": 1, "t": 204, "d": [26,1181], "a": 1 }, + { "px": [304,400], "src": [320,128], "f": 0, "t": 204, "d": [26,1219], "a": 1 }, + { "px": [464,400], "src": [320,128], "f": 1, "t": 204, "d": [26,1229], "a": 1 }, + { "px": [464,416], "src": [320,128], "f": 1, "t": 204, "d": [26,1277], "a": 1 }, + { "px": [432,432], "src": [320,128], "f": 0, "t": 204, "d": [26,1323], "a": 1 }, + { "px": [464,432], "src": [320,128], "f": 1, "t": 204, "d": [26,1325], "a": 1 }, + { "px": [432,448], "src": [320,128], "f": 0, "t": 204, "d": [26,1371], "a": 1 }, + { "px": [464,448], "src": [320,128], "f": 1, "t": 204, "d": [26,1373], "a": 1 }, + { "px": [432,464], "src": [320,128], "f": 0, "t": 204, "d": [26,1419], "a": 1 }, + { "px": [464,464], "src": [320,128], "f": 1, "t": 204, "d": [26,1421], "a": 1 }, + { "px": [272,480], "src": [320,128], "f": 0, "t": 204, "d": [26,1457], "a": 1 }, + { "px": [464,480], "src": [320,128], "f": 1, "t": 204, "d": [26,1469], "a": 1 }, + { "px": [272,496], "src": [320,128], "f": 0, "t": 204, "d": [26,1505], "a": 1 }, + { "px": [464,496], "src": [320,128], "f": 1, "t": 204, "d": [26,1517], "a": 1 }, + { "px": [272,512], "src": [320,128], "f": 0, "t": 204, "d": [26,1553], "a": 1 }, + { "px": [464,512], "src": [320,128], "f": 1, "t": 204, "d": [26,1565], "a": 1 }, + { "px": [384,176], "src": [320,96], "f": 0, "t": 158, "d": [138,552], "a": 1 }, + { "px": [416,176], "src": [320,96], "f": 1, "t": 158, "d": [138,554], "a": 1 }, + { "px": [336,336], "src": [320,96], "f": 1, "t": 158, "d": [138,1029], "a": 1 }, + { "px": [432,416], "src": [320,96], "f": 0, "t": 158, "d": [138,1275], "a": 1 }, + { "px": [336,96], "src": [336,112], "f": 0, "t": 182, "d": [27,309], "a": 1 }, + { "px": [352,96], "src": [336,112], "f": 0, "t": 182, "d": [27,310], "a": 1 }, + { "px": [368,96], "src": [336,112], "f": 0, "t": 182, "d": [27,311], "a": 1 }, + { "px": [384,96], "src": [336,112], "f": 0, "t": 182, "d": [27,312], "a": 1 }, + { "px": [400,96], "src": [336,112], "f": 0, "t": 182, "d": [27,313], "a": 1 }, + { "px": [416,96], "src": [336,112], "f": 0, "t": 182, "d": [27,314], "a": 1 }, + { "px": [432,96], "src": [336,112], "f": 0, "t": 182, "d": [27,315], "a": 1 }, + { "px": [448,96], "src": [336,112], "f": 0, "t": 182, "d": [27,316], "a": 1 }, + { "px": [464,96], "src": [336,112], "f": 0, "t": 182, "d": [27,317], "a": 1 }, + { "px": [304,288], "src": [336,112], "f": 0, "t": 182, "d": [27,883], "a": 1 }, + { "px": [320,288], "src": [336,112], "f": 0, "t": 182, "d": [27,884], "a": 1 }, + { "px": [336,288], "src": [336,112], "f": 0, "t": 182, "d": [27,885], "a": 1 }, + { "px": [352,288], "src": [336,112], "f": 0, "t": 182, "d": [27,886], "a": 1 }, + { "px": [368,288], "src": [336,112], "f": 0, "t": 182, "d": [27,887], "a": 1 }, + { "px": [352,368], "src": [336,112], "f": 0, "t": 182, "d": [27,1126], "a": 1 }, + { "px": [368,368], "src": [336,112], "f": 0, "t": 182, "d": [27,1127], "a": 1 }, + { "px": [384,368], "src": [336,112], "f": 0, "t": 182, "d": [27,1128], "a": 1 }, + { "px": [400,368], "src": [336,112], "f": 0, "t": 182, "d": [27,1129], "a": 1 }, + { "px": [416,368], "src": [336,112], "f": 0, "t": 182, "d": [27,1130], "a": 1 }, + { "px": [432,368], "src": [336,112], "f": 0, "t": 182, "d": [27,1131], "a": 1 }, + { "px": [448,368], "src": [336,112], "f": 0, "t": 182, "d": [27,1132], "a": 1 }, + { "px": [464,368], "src": [336,112], "f": 0, "t": 182, "d": [27,1133], "a": 1 }, + { "px": [272,480], "src": [336,112], "f": 0, "t": 182, "d": [27,1457], "a": 1 }, + { "px": [288,480], "src": [336,112], "f": 0, "t": 182, "d": [27,1458], "a": 1 }, + { "px": [304,480], "src": [336,112], "f": 0, "t": 182, "d": [27,1459], "a": 1 }, + { "px": [320,480], "src": [336,112], "f": 0, "t": 182, "d": [27,1460], "a": 1 }, + { "px": [336,480], "src": [336,112], "f": 0, "t": 182, "d": [27,1461], "a": 1 }, + { "px": [352,480], "src": [336,112], "f": 0, "t": 182, "d": [27,1462], "a": 1 }, + { "px": [368,480], "src": [336,112], "f": 0, "t": 182, "d": [27,1463], "a": 1 }, + { "px": [384,480], "src": [336,112], "f": 0, "t": 182, "d": [27,1464], "a": 1 }, + { "px": [400,480], "src": [336,112], "f": 0, "t": 182, "d": [27,1465], "a": 1 }, + { "px": [416,480], "src": [336,112], "f": 0, "t": 182, "d": [27,1466], "a": 1 }, + { "px": [384,288], "src": [320,112], "f": 0, "t": 181, "d": [137,888], "a": 1 }, + { "px": [336,368], "src": [320,112], "f": 1, "t": 181, "d": [137,1125], "a": 1 }, + { "px": [432,480], "src": [320,112], "f": 0, "t": 181, "d": [137,1467], "a": 1 } + ], + "seed": 7076279, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Collisions", + "__type": "IntGrid", + "__cWid": 48, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "9312a0d3-66b0-11ec-a595-a1160dd09b61", + "levelId": 132, + "layerDefUid": 1, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, + 0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, + 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ], + "autoLayerTiles": [ + { "px": [288,48], "src": [32,32], "f": 0, "t": 48, "d": [8,162], "a": 1 }, + { "px": [320,48], "src": [32,32], "f": 0, "t": 48, "d": [8,164], "a": 1 }, + { "px": [352,48], "src": [32,32], "f": 0, "t": 48, "d": [8,166], "a": 1 }, + { "px": [384,48], "src": [32,32], "f": 0, "t": 48, "d": [8,168], "a": 1 }, + { "px": [416,48], "src": [32,32], "f": 0, "t": 48, "d": [8,170], "a": 1 }, + { "px": [304,64], "src": [32,32], "f": 0, "t": 48, "d": [8,211], "a": 1 }, + { "px": [336,64], "src": [32,32], "f": 0, "t": 48, "d": [8,213], "a": 1 }, + { "px": [368,64], "src": [32,32], "f": 0, "t": 48, "d": [8,215], "a": 1 }, + { "px": [400,64], "src": [32,32], "f": 0, "t": 48, "d": [8,217], "a": 1 }, + { "px": [464,64], "src": [32,32], "f": 0, "t": 48, "d": [8,221], "a": 1 }, + { "px": [496,64], "src": [32,32], "f": 0, "t": 48, "d": [8,223], "a": 1 }, + { "px": [288,80], "src": [32,32], "f": 0, "t": 48, "d": [8,258], "a": 1 }, + { "px": [496,96], "src": [32,32], "f": 0, "t": 48, "d": [8,319], "a": 1 }, + { "px": [288,112], "src": [32,32], "f": 0, "t": 48, "d": [8,354], "a": 1 }, + { "px": [304,128], "src": [32,32], "f": 0, "t": 48, "d": [8,403], "a": 1 }, + { "px": [496,128], "src": [32,32], "f": 0, "t": 48, "d": [8,415], "a": 1 }, + { "px": [288,144], "src": [32,32], "f": 0, "t": 48, "d": [8,450], "a": 1 }, + { "px": [512,144], "src": [32,32], "f": 0, "t": 48, "d": [8,464], "a": 1 }, + { "px": [496,160], "src": [32,32], "f": 0, "t": 48, "d": [8,511], "a": 1 }, + { "px": [288,176], "src": [32,32], "f": 0, "t": 48, "d": [8,546], "a": 1 }, + { "px": [512,176], "src": [32,32], "f": 0, "t": 48, "d": [8,560], "a": 1 }, + { "px": [496,192], "src": [32,32], "f": 0, "t": 48, "d": [8,607], "a": 1 }, + { "px": [448,208], "src": [32,32], "f": 0, "t": 48, "d": [8,652], "a": 1 }, + { "px": [512,208], "src": [32,32], "f": 0, "t": 48, "d": [8,656], "a": 1 }, + { "px": [336,224], "src": [32,32], "f": 0, "t": 48, "d": [8,693], "a": 1 }, + { "px": [464,224], "src": [32,32], "f": 0, "t": 48, "d": [8,701], "a": 1 }, + { "px": [256,240], "src": [32,32], "f": 0, "t": 48, "d": [8,736], "a": 1 }, + { "px": [288,240], "src": [32,32], "f": 0, "t": 48, "d": [8,738], "a": 1 }, + { "px": [352,240], "src": [32,32], "f": 0, "t": 48, "d": [8,742], "a": 1 }, + { "px": [448,240], "src": [32,32], "f": 0, "t": 48, "d": [8,748], "a": 1 }, + { "px": [272,256], "src": [32,32], "f": 0, "t": 48, "d": [8,785], "a": 1 }, + { "px": [304,256], "src": [32,32], "f": 0, "t": 48, "d": [8,787], "a": 1 }, + { "px": [336,256], "src": [32,32], "f": 0, "t": 48, "d": [8,789], "a": 1 }, + { "px": [272,288], "src": [32,32], "f": 0, "t": 48, "d": [8,881], "a": 1 }, + { "px": [464,288], "src": [32,32], "f": 0, "t": 48, "d": [8,893], "a": 1 }, + { "px": [256,304], "src": [32,32], "f": 0, "t": 48, "d": [8,928], "a": 1 }, + { "px": [272,320], "src": [32,32], "f": 0, "t": 48, "d": [8,977], "a": 1 }, + { "px": [496,320], "src": [32,32], "f": 0, "t": 48, "d": [8,991], "a": 1 }, + { "px": [480,336], "src": [32,32], "f": 0, "t": 48, "d": [8,1038], "a": 1 }, + { "px": [272,352], "src": [32,32], "f": 0, "t": 48, "d": [8,1073], "a": 1 }, + { "px": [496,352], "src": [32,32], "f": 0, "t": 48, "d": [8,1087], "a": 1 }, + { "px": [256,368], "src": [32,32], "f": 0, "t": 48, "d": [8,1120], "a": 1 }, + { "px": [512,368], "src": [32,32], "f": 0, "t": 48, "d": [8,1136], "a": 1 }, + { "px": [272,384], "src": [32,32], "f": 0, "t": 48, "d": [8,1169], "a": 1 }, + { "px": [256,400], "src": [32,32], "f": 0, "t": 48, "d": [8,1216], "a": 1 }, + { "px": [272,416], "src": [32,32], "f": 0, "t": 48, "d": [8,1265], "a": 1 }, + { "px": [224,432], "src": [32,32], "f": 0, "t": 48, "d": [8,1310], "a": 1 }, + { "px": [288,432], "src": [32,32], "f": 0, "t": 48, "d": [8,1314], "a": 1 }, + { "px": [320,432], "src": [32,32], "f": 0, "t": 48, "d": [8,1316], "a": 1 }, + { "px": [352,432], "src": [32,32], "f": 0, "t": 48, "d": [8,1318], "a": 1 }, + { "px": [512,432], "src": [32,32], "f": 0, "t": 48, "d": [8,1328], "a": 1 }, + { "px": [272,448], "src": [32,32], "f": 0, "t": 48, "d": [8,1361], "a": 1 }, + { "px": [304,448], "src": [32,32], "f": 0, "t": 48, "d": [8,1363], "a": 1 }, + { "px": [336,448], "src": [32,32], "f": 0, "t": 48, "d": [8,1365], "a": 1 }, + { "px": [368,448], "src": [32,32], "f": 0, "t": 48, "d": [8,1367], "a": 1 }, + { "px": [224,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1502], "a": 1 }, + { "px": [512,496], "src": [32,32], "f": 0, "t": 48, "d": [8,1520], "a": 1 }, + { "px": [240,512], "src": [32,32], "f": 0, "t": 48, "d": [8,1551], "a": 1 }, + { "px": [224,528], "src": [32,32], "f": 0, "t": 48, "d": [8,1598], "a": 1 }, + { "px": [512,528], "src": [32,32], "f": 0, "t": 48, "d": [8,1616], "a": 1 }, + { "px": [240,544], "src": [32,32], "f": 0, "t": 48, "d": [8,1647], "a": 1 }, + { "px": [272,544], "src": [32,32], "f": 0, "t": 48, "d": [8,1649], "a": 1 }, + { "px": [304,544], "src": [32,32], "f": 0, "t": 48, "d": [8,1651], "a": 1 }, + { "px": [400,544], "src": [32,32], "f": 0, "t": 48, "d": [8,1657], "a": 1 }, + { "px": [432,544], "src": [32,32], "f": 0, "t": 48, "d": [8,1659], "a": 1 }, + { "px": [464,544], "src": [32,32], "f": 0, "t": 48, "d": [8,1661], "a": 1 }, + { "px": [224,560], "src": [32,32], "f": 0, "t": 48, "d": [8,1694], "a": 1 }, + { "px": [256,560], "src": [32,32], "f": 0, "t": 48, "d": [8,1696], "a": 1 }, + { "px": [288,560], "src": [32,32], "f": 0, "t": 48, "d": [8,1698], "a": 1 }, + { "px": [352,560], "src": [32,32], "f": 0, "t": 48, "d": [8,1702], "a": 1 }, + { "px": [384,560], "src": [32,32], "f": 0, "t": 48, "d": [8,1704], "a": 1 }, + { "px": [416,560], "src": [32,32], "f": 0, "t": 48, "d": [8,1706], "a": 1 }, + { "px": [448,560], "src": [32,32], "f": 0, "t": 48, "d": [8,1708], "a": 1 }, + { "px": [512,560], "src": [32,32], "f": 0, "t": 48, "d": [8,1712], "a": 1 }, + { "px": [448,48], "src": [64,96], "f": 0, "t": 142, "d": [83,172], "a": 1 }, + { "px": [480,48], "src": [96,96], "f": 0, "t": 144, "d": [83,174], "a": 1 }, + { "px": [512,48], "src": [64,96], "f": 0, "t": 142, "d": [83,176], "a": 1 }, + { "px": [432,64], "src": [96,96], "f": 0, "t": 144, "d": [83,219], "a": 1 }, + { "px": [512,80], "src": [96,96], "f": 0, "t": 144, "d": [83,272], "a": 1 }, + { "px": [304,96], "src": [64,96], "f": 0, "t": 142, "d": [83,307], "a": 1 }, + { "px": [512,112], "src": [96,96], "f": 0, "t": 144, "d": [83,368], "a": 1 }, + { "px": [304,160], "src": [64,96], "f": 0, "t": 142, "d": [83,499], "a": 1 }, + { "px": [304,192], "src": [64,96], "f": 0, "t": 142, "d": [83,595], "a": 1 }, + { "px": [336,192], "src": [64,96], "f": 0, "t": 142, "d": [83,597], "a": 1 }, + { "px": [464,192], "src": [96,96], "f": 0, "t": 144, "d": [83,605], "a": 1 }, + { "px": [288,208], "src": [64,96], "f": 0, "t": 142, "d": [83,642], "a": 1 }, + { "px": [320,208], "src": [96,96], "f": 0, "t": 144, "d": [83,644], "a": 1 }, + { "px": [352,208], "src": [64,96], "f": 0, "t": 142, "d": [83,646], "a": 1 }, + { "px": [480,208], "src": [96,96], "f": 0, "t": 144, "d": [83,654], "a": 1 }, + { "px": [320,240], "src": [64,96], "f": 0, "t": 142, "d": [83,740], "a": 1 }, + { "px": [464,256], "src": [64,96], "f": 0, "t": 142, "d": [83,797], "a": 1 }, + { "px": [256,272], "src": [96,96], "f": 0, "t": 144, "d": [83,832], "a": 1 }, + { "px": [448,272], "src": [96,96], "f": 0, "t": 144, "d": [83,844], "a": 1 }, + { "px": [448,304], "src": [64,96], "f": 0, "t": 142, "d": [83,940], "a": 1 }, + { "px": [464,320], "src": [96,96], "f": 0, "t": 144, "d": [83,989], "a": 1 }, + { "px": [256,336], "src": [96,96], "f": 0, "t": 144, "d": [83,1024], "a": 1 }, + { "px": [448,336], "src": [64,96], "f": 0, "t": 142, "d": [83,1036], "a": 1 }, + { "px": [512,336], "src": [96,96], "f": 0, "t": 144, "d": [83,1040], "a": 1 }, + { "px": [496,384], "src": [96,96], "f": 0, "t": 144, "d": [83,1183], "a": 1 }, + { "px": [512,400], "src": [64,96], "f": 0, "t": 142, "d": [83,1232], "a": 1 }, + { "px": [496,416], "src": [96,96], "f": 0, "t": 144, "d": [83,1279], "a": 1 }, + { "px": [256,432], "src": [96,96], "f": 0, "t": 144, "d": [83,1312], "a": 1 }, + { "px": [384,432], "src": [96,96], "f": 0, "t": 144, "d": [83,1320], "a": 1 }, + { "px": [240,448], "src": [96,96], "f": 0, "t": 144, "d": [83,1359], "a": 1 }, + { "px": [400,448], "src": [96,96], "f": 0, "t": 144, "d": [83,1369], "a": 1 }, + { "px": [496,448], "src": [64,96], "f": 0, "t": 142, "d": [83,1375], "a": 1 }, + { "px": [224,464], "src": [64,96], "f": 0, "t": 142, "d": [83,1406], "a": 1 }, + { "px": [512,464], "src": [64,96], "f": 0, "t": 142, "d": [83,1424], "a": 1 }, + { "px": [240,480], "src": [96,96], "f": 0, "t": 144, "d": [83,1455], "a": 1 }, + { "px": [496,480], "src": [64,96], "f": 0, "t": 142, "d": [83,1471], "a": 1 }, + { "px": [496,512], "src": [64,96], "f": 0, "t": 142, "d": [83,1567], "a": 1 }, + { "px": [336,544], "src": [64,96], "f": 0, "t": 142, "d": [83,1653], "a": 1 }, + { "px": [368,544], "src": [96,96], "f": 0, "t": 144, "d": [83,1655], "a": 1 }, + { "px": [496,544], "src": [96,96], "f": 0, "t": 144, "d": [83,1663], "a": 1 }, + { "px": [320,560], "src": [96,96], "f": 0, "t": 144, "d": [83,1700], "a": 1 }, + { "px": [480,560], "src": [96,96], "f": 0, "t": 144, "d": [83,1710], "a": 1 }, + { "px": [304,48], "src": [224,96], "f": 0, "t": 152, "d": [101,163], "a": 1 }, + { "px": [336,48], "src": [224,96], "f": 0, "t": 152, "d": [101,165], "a": 1 }, + { "px": [368,48], "src": [96,0], "f": 0, "t": 6, "d": [101,167], "a": 1 }, + { "px": [400,48], "src": [224,96], "f": 0, "t": 152, "d": [101,169], "a": 1 }, + { "px": [432,48], "src": [224,96], "f": 0, "t": 152, "d": [101,171], "a": 1 }, + { "px": [464,48], "src": [96,0], "f": 0, "t": 6, "d": [101,173], "a": 1 }, + { "px": [496,48], "src": [192,16], "f": 0, "t": 35, "d": [101,175], "a": 1 }, + { "px": [288,64], "src": [96,0], "f": 0, "t": 6, "d": [101,210], "a": 1 }, + { "px": [320,64], "src": [224,96], "f": 0, "t": 152, "d": [101,212], "a": 1 }, + { "px": [352,64], "src": [224,96], "f": 0, "t": 152, "d": [101,214], "a": 1 }, + { "px": [384,64], "src": [192,16], "f": 0, "t": 35, "d": [101,216], "a": 1 }, + { "px": [416,64], "src": [96,0], "f": 0, "t": 6, "d": [101,218], "a": 1 }, + { "px": [448,64], "src": [192,16], "f": 0, "t": 35, "d": [101,220], "a": 1 }, + { "px": [480,64], "src": [224,96], "f": 0, "t": 152, "d": [101,222], "a": 1 }, + { "px": [512,64], "src": [96,0], "f": 0, "t": 6, "d": [101,224], "a": 1 }, + { "px": [304,80], "src": [224,96], "f": 0, "t": 152, "d": [101,259], "a": 1 }, + { "px": [496,80], "src": [96,0], "f": 0, "t": 6, "d": [101,271], "a": 1 }, + { "px": [288,96], "src": [192,16], "f": 0, "t": 35, "d": [101,306], "a": 1 }, + { "px": [512,96], "src": [192,16], "f": 0, "t": 35, "d": [101,320], "a": 1 }, + { "px": [304,112], "src": [224,96], "f": 0, "t": 152, "d": [101,355], "a": 1 }, + { "px": [496,112], "src": [224,96], "f": 0, "t": 152, "d": [101,367], "a": 1 }, + { "px": [288,128], "src": [192,16], "f": 0, "t": 35, "d": [101,402], "a": 1 }, + { "px": [512,128], "src": [96,0], "f": 0, "t": 6, "d": [101,416], "a": 1 }, + { "px": [304,144], "src": [96,0], "f": 0, "t": 6, "d": [101,451], "a": 1 }, + { "px": [496,144], "src": [224,96], "f": 0, "t": 152, "d": [101,463], "a": 1 }, + { "px": [288,160], "src": [96,0], "f": 0, "t": 6, "d": [101,498], "a": 1 }, + { "px": [512,160], "src": [96,0], "f": 0, "t": 6, "d": [101,512], "a": 1 }, + { "px": [304,176], "src": [96,0], "f": 0, "t": 6, "d": [101,547], "a": 1 }, + { "px": [496,176], "src": [192,16], "f": 0, "t": 35, "d": [101,559], "a": 1 }, + { "px": [288,192], "src": [96,0], "f": 0, "t": 6, "d": [101,594], "a": 1 }, + { "px": [320,192], "src": [96,0], "f": 0, "t": 6, "d": [101,596], "a": 1 }, + { "px": [352,192], "src": [192,16], "f": 0, "t": 35, "d": [101,598], "a": 1 }, + { "px": [448,192], "src": [224,96], "f": 0, "t": 152, "d": [101,604], "a": 1 }, + { "px": [480,192], "src": [192,16], "f": 0, "t": 35, "d": [101,606], "a": 1 }, + { "px": [512,192], "src": [224,96], "f": 0, "t": 152, "d": [101,608], "a": 1 }, + { "px": [304,208], "src": [224,96], "f": 0, "t": 152, "d": [101,643], "a": 1 }, + { "px": [336,208], "src": [96,0], "f": 0, "t": 6, "d": [101,645], "a": 1 }, + { "px": [464,208], "src": [192,16], "f": 0, "t": 35, "d": [101,653], "a": 1 }, + { "px": [496,208], "src": [192,16], "f": 0, "t": 35, "d": [101,655], "a": 1 }, + { "px": [352,224], "src": [192,16], "f": 0, "t": 35, "d": [101,694], "a": 1 }, + { "px": [448,224], "src": [224,96], "f": 0, "t": 152, "d": [101,700], "a": 1 }, + { "px": [272,240], "src": [224,96], "f": 0, "t": 152, "d": [101,737], "a": 1 }, + { "px": [304,240], "src": [192,16], "f": 0, "t": 35, "d": [101,739], "a": 1 }, + { "px": [336,240], "src": [224,96], "f": 0, "t": 152, "d": [101,741], "a": 1 }, + { "px": [464,240], "src": [224,96], "f": 0, "t": 152, "d": [101,749], "a": 1 }, + { "px": [256,256], "src": [224,96], "f": 0, "t": 152, "d": [101,784], "a": 1 }, + { "px": [288,256], "src": [224,96], "f": 0, "t": 152, "d": [101,786], "a": 1 }, + { "px": [320,256], "src": [224,96], "f": 0, "t": 152, "d": [101,788], "a": 1 }, + { "px": [352,256], "src": [224,96], "f": 0, "t": 152, "d": [101,790], "a": 1 }, + { "px": [448,256], "src": [192,16], "f": 0, "t": 35, "d": [101,796], "a": 1 }, + { "px": [272,272], "src": [96,0], "f": 0, "t": 6, "d": [101,833], "a": 1 }, + { "px": [464,272], "src": [96,0], "f": 0, "t": 6, "d": [101,845], "a": 1 }, + { "px": [256,288], "src": [224,96], "f": 0, "t": 152, "d": [101,880], "a": 1 }, + { "px": [448,288], "src": [96,0], "f": 0, "t": 6, "d": [101,892], "a": 1 }, + { "px": [272,304], "src": [192,16], "f": 0, "t": 35, "d": [101,929], "a": 1 }, + { "px": [464,304], "src": [224,96], "f": 0, "t": 152, "d": [101,941], "a": 1 }, + { "px": [256,320], "src": [224,96], "f": 0, "t": 152, "d": [101,976], "a": 1 }, + { "px": [448,320], "src": [96,0], "f": 0, "t": 6, "d": [101,988], "a": 1 }, + { "px": [480,320], "src": [192,16], "f": 0, "t": 35, "d": [101,990], "a": 1 }, + { "px": [512,320], "src": [96,0], "f": 0, "t": 6, "d": [101,992], "a": 1 }, + { "px": [272,336], "src": [224,96], "f": 0, "t": 152, "d": [101,1025], "a": 1 }, + { "px": [464,336], "src": [96,0], "f": 0, "t": 6, "d": [101,1037], "a": 1 }, + { "px": [496,336], "src": [192,16], "f": 0, "t": 35, "d": [101,1039], "a": 1 }, + { "px": [256,352], "src": [192,16], "f": 0, "t": 35, "d": [101,1072], "a": 1 }, + { "px": [512,352], "src": [224,96], "f": 0, "t": 152, "d": [101,1088], "a": 1 }, + { "px": [272,368], "src": [224,96], "f": 0, "t": 152, "d": [101,1121], "a": 1 }, + { "px": [496,368], "src": [192,16], "f": 0, "t": 35, "d": [101,1135], "a": 1 }, + { "px": [256,384], "src": [192,16], "f": 0, "t": 35, "d": [101,1168], "a": 1 }, + { "px": [512,384], "src": [224,96], "f": 0, "t": 152, "d": [101,1184], "a": 1 }, + { "px": [272,400], "src": [96,0], "f": 0, "t": 6, "d": [101,1217], "a": 1 }, + { "px": [496,400], "src": [96,0], "f": 0, "t": 6, "d": [101,1231], "a": 1 }, + { "px": [256,416], "src": [96,0], "f": 0, "t": 6, "d": [101,1264], "a": 1 }, + { "px": [512,416], "src": [224,96], "f": 0, "t": 152, "d": [101,1280], "a": 1 }, + { "px": [240,432], "src": [192,16], "f": 0, "t": 35, "d": [101,1311], "a": 1 }, + { "px": [272,432], "src": [224,96], "f": 0, "t": 152, "d": [101,1313], "a": 1 }, + { "px": [304,432], "src": [192,16], "f": 0, "t": 35, "d": [101,1315], "a": 1 }, + { "px": [336,432], "src": [224,96], "f": 0, "t": 152, "d": [101,1317], "a": 1 }, + { "px": [368,432], "src": [224,96], "f": 0, "t": 152, "d": [101,1319], "a": 1 }, + { "px": [400,432], "src": [192,16], "f": 0, "t": 35, "d": [101,1321], "a": 1 }, + { "px": [496,432], "src": [96,0], "f": 0, "t": 6, "d": [101,1327], "a": 1 }, + { "px": [224,448], "src": [224,96], "f": 0, "t": 152, "d": [101,1358], "a": 1 }, + { "px": [256,448], "src": [96,0], "f": 0, "t": 6, "d": [101,1360], "a": 1 }, + { "px": [288,448], "src": [192,16], "f": 0, "t": 35, "d": [101,1362], "a": 1 }, + { "px": [320,448], "src": [224,96], "f": 0, "t": 152, "d": [101,1364], "a": 1 }, + { "px": [352,448], "src": [224,96], "f": 0, "t": 152, "d": [101,1366], "a": 1 }, + { "px": [384,448], "src": [224,96], "f": 0, "t": 152, "d": [101,1368], "a": 1 }, + { "px": [512,448], "src": [192,16], "f": 0, "t": 35, "d": [101,1376], "a": 1 }, + { "px": [240,464], "src": [96,0], "f": 0, "t": 6, "d": [101,1407], "a": 1 }, + { "px": [496,464], "src": [192,16], "f": 0, "t": 35, "d": [101,1423], "a": 1 }, + { "px": [224,480], "src": [224,96], "f": 0, "t": 152, "d": [101,1454], "a": 1 }, + { "px": [512,480], "src": [96,0], "f": 0, "t": 6, "d": [101,1472], "a": 1 }, + { "px": [240,496], "src": [192,16], "f": 0, "t": 35, "d": [101,1503], "a": 1 }, + { "px": [496,496], "src": [192,16], "f": 0, "t": 35, "d": [101,1519], "a": 1 }, + { "px": [224,512], "src": [192,16], "f": 0, "t": 35, "d": [101,1550], "a": 1 }, + { "px": [512,512], "src": [96,0], "f": 0, "t": 6, "d": [101,1568], "a": 1 }, + { "px": [240,528], "src": [192,16], "f": 0, "t": 35, "d": [101,1599], "a": 1 }, + { "px": [496,528], "src": [96,0], "f": 0, "t": 6, "d": [101,1615], "a": 1 }, + { "px": [224,544], "src": [224,96], "f": 0, "t": 152, "d": [101,1646], "a": 1 }, + { "px": [256,544], "src": [96,0], "f": 0, "t": 6, "d": [101,1648], "a": 1 }, + { "px": [288,544], "src": [224,96], "f": 0, "t": 152, "d": [101,1650], "a": 1 }, + { "px": [320,544], "src": [96,0], "f": 0, "t": 6, "d": [101,1652], "a": 1 }, + { "px": [352,544], "src": [192,16], "f": 0, "t": 35, "d": [101,1654], "a": 1 }, + { "px": [384,544], "src": [96,0], "f": 0, "t": 6, "d": [101,1656], "a": 1 }, + { "px": [416,544], "src": [96,0], "f": 0, "t": 6, "d": [101,1658], "a": 1 }, + { "px": [448,544], "src": [224,96], "f": 0, "t": 152, "d": [101,1660], "a": 1 }, + { "px": [480,544], "src": [224,96], "f": 0, "t": 152, "d": [101,1662], "a": 1 }, + { "px": [512,544], "src": [96,0], "f": 0, "t": 6, "d": [101,1664], "a": 1 }, + { "px": [240,560], "src": [96,0], "f": 0, "t": 6, "d": [101,1695], "a": 1 }, + { "px": [272,560], "src": [96,0], "f": 0, "t": 6, "d": [101,1697], "a": 1 }, + { "px": [304,560], "src": [192,16], "f": 0, "t": 35, "d": [101,1699], "a": 1 }, + { "px": [336,560], "src": [192,16], "f": 0, "t": 35, "d": [101,1701], "a": 1 }, + { "px": [368,560], "src": [224,96], "f": 0, "t": 152, "d": [101,1703], "a": 1 }, + { "px": [400,560], "src": [192,16], "f": 0, "t": 35, "d": [101,1705], "a": 1 }, + { "px": [432,560], "src": [192,16], "f": 0, "t": 35, "d": [101,1707], "a": 1 }, + { "px": [464,560], "src": [192,16], "f": 0, "t": 35, "d": [101,1709], "a": 1 }, + { "px": [496,560], "src": [192,16], "f": 0, "t": 35, "d": [101,1711], "a": 1 }, + { "px": [0,0], "src": [32,32], "f": 0, "t": 48, "d": [127,0], "a": 1 }, + { "px": [16,0], "src": [32,32], "f": 0, "t": 48, "d": [127,1], "a": 1 }, + { "px": [48,0], "src": [32,32], "f": 0, "t": 48, "d": [127,3], "a": 1 }, + { "px": [80,0], "src": [32,32], "f": 0, "t": 48, "d": [127,5], "a": 1 }, + { "px": [96,0], "src": [32,32], "f": 0, "t": 48, "d": [127,6], "a": 1 }, + { "px": [112,0], "src": [32,32], "f": 0, "t": 48, "d": [127,7], "a": 1 }, + { "px": [128,0], "src": [32,32], "f": 0, "t": 48, "d": [127,8], "a": 1 }, + { "px": [144,0], "src": [32,32], "f": 0, "t": 48, "d": [127,9], "a": 1 }, + { "px": [160,0], "src": [32,32], "f": 0, "t": 48, "d": [127,10], "a": 1 }, + { "px": [176,0], "src": [32,32], "f": 0, "t": 48, "d": [127,11], "a": 1 }, + { "px": [192,0], "src": [32,32], "f": 0, "t": 48, "d": [127,12], "a": 1 }, + { "px": [208,0], "src": [32,32], "f": 0, "t": 48, "d": [127,13], "a": 1 }, + { "px": [240,0], "src": [32,32], "f": 0, "t": 48, "d": [127,15], "a": 1 }, + { "px": [272,0], "src": [32,32], "f": 0, "t": 48, "d": [127,17], "a": 1 }, + { "px": [288,0], "src": [32,32], "f": 0, "t": 48, "d": [127,18], "a": 1 }, + { "px": [304,0], "src": [32,32], "f": 0, "t": 48, "d": [127,19], "a": 1 }, + { "px": [336,0], "src": [32,32], "f": 0, "t": 48, "d": [127,21], "a": 1 }, + { "px": [352,0], "src": [32,32], "f": 0, "t": 48, "d": [127,22], "a": 1 }, + { "px": [368,0], "src": [32,32], "f": 0, "t": 48, "d": [127,23], "a": 1 }, + { "px": [384,0], "src": [32,32], "f": 0, "t": 48, "d": [127,24], "a": 1 }, + { "px": [400,0], "src": [32,32], "f": 0, "t": 48, "d": [127,25], "a": 1 }, + { "px": [432,0], "src": [32,32], "f": 0, "t": 48, "d": [127,27], "a": 1 }, + { "px": [448,0], "src": [32,32], "f": 0, "t": 48, "d": [127,28], "a": 1 }, + { "px": [464,0], "src": [32,32], "f": 0, "t": 48, "d": [127,29], "a": 1 }, + { "px": [496,0], "src": [32,32], "f": 0, "t": 48, "d": [127,31], "a": 1 }, + { "px": [512,0], "src": [32,32], "f": 0, "t": 48, "d": [127,32], "a": 1 }, + { "px": [528,0], "src": [32,32], "f": 0, "t": 48, "d": [127,33], "a": 1 }, + { "px": [544,0], "src": [32,32], "f": 0, "t": 48, "d": [127,34], "a": 1 }, + { "px": [560,0], "src": [32,32], "f": 0, "t": 48, "d": [127,35], "a": 1 }, + { "px": [592,0], "src": [32,32], "f": 0, "t": 48, "d": [127,37], "a": 1 }, + { "px": [608,0], "src": [32,32], "f": 0, "t": 48, "d": [127,38], "a": 1 }, + { "px": [624,0], "src": [32,32], "f": 0, "t": 48, "d": [127,39], "a": 1 }, + { "px": [640,0], "src": [32,32], "f": 0, "t": 48, "d": [127,40], "a": 1 }, + { "px": [656,0], "src": [32,32], "f": 0, "t": 48, "d": [127,41], "a": 1 }, + { "px": [688,0], "src": [32,32], "f": 0, "t": 48, "d": [127,43], "a": 1 }, + { "px": [704,0], "src": [32,32], "f": 0, "t": 48, "d": [127,44], "a": 1 }, + { "px": [720,0], "src": [32,32], "f": 0, "t": 48, "d": [127,45], "a": 1 }, + { "px": [736,0], "src": [32,32], "f": 0, "t": 48, "d": [127,46], "a": 1 }, + { "px": [752,0], "src": [32,32], "f": 0, "t": 48, "d": [127,47], "a": 1 }, + { "px": [0,16], "src": [32,32], "f": 0, "t": 48, "d": [127,48], "a": 1 }, + { "px": [16,16], "src": [32,32], "f": 0, "t": 48, "d": [127,49], "a": 1 }, + { "px": [32,16], "src": [32,32], "f": 0, "t": 48, "d": [127,50], "a": 1 }, + { "px": [64,16], "src": [32,32], "f": 0, "t": 48, "d": [127,52], "a": 1 }, + { "px": [80,16], "src": [32,32], "f": 0, "t": 48, "d": [127,53], "a": 1 }, + { "px": [96,16], "src": [32,32], "f": 0, "t": 48, "d": [127,54], "a": 1 }, + { "px": [112,16], "src": [32,32], "f": 0, "t": 48, "d": [127,55], "a": 1 }, + { "px": [128,16], "src": [32,32], "f": 0, "t": 48, "d": [127,56], "a": 1 }, + { "px": [160,16], "src": [32,32], "f": 0, "t": 48, "d": [127,58], "a": 1 }, + { "px": [176,16], "src": [32,32], "f": 0, "t": 48, "d": [127,59], "a": 1 }, + { "px": [192,16], "src": [32,32], "f": 0, "t": 48, "d": [127,60], "a": 1 }, + { "px": [224,16], "src": [32,32], "f": 0, "t": 48, "d": [127,62], "a": 1 }, + { "px": [240,16], "src": [32,32], "f": 0, "t": 48, "d": [127,63], "a": 1 }, + { "px": [256,16], "src": [32,32], "f": 0, "t": 48, "d": [127,64], "a": 1 }, + { "px": [288,16], "src": [32,32], "f": 0, "t": 48, "d": [127,66], "a": 1 }, + { "px": [304,16], "src": [32,32], "f": 0, "t": 48, "d": [127,67], "a": 1 }, + { "px": [320,16], "src": [32,32], "f": 0, "t": 48, "d": [127,68], "a": 1 }, + { "px": [336,16], "src": [32,32], "f": 0, "t": 48, "d": [127,69], "a": 1 }, + { "px": [352,16], "src": [32,32], "f": 0, "t": 48, "d": [127,70], "a": 1 }, + { "px": [368,16], "src": [32,32], "f": 0, "t": 48, "d": [127,71], "a": 1 }, + { "px": [384,16], "src": [32,32], "f": 0, "t": 48, "d": [127,72], "a": 1 }, + { "px": [416,16], "src": [32,32], "f": 0, "t": 48, "d": [127,74], "a": 1 }, + { "px": [432,16], "src": [32,32], "f": 0, "t": 48, "d": [127,75], "a": 1 }, + { "px": [448,16], "src": [32,32], "f": 0, "t": 48, "d": [127,76], "a": 1 }, + { "px": [464,16], "src": [32,32], "f": 0, "t": 48, "d": [127,77], "a": 1 }, + { "px": [480,16], "src": [32,32], "f": 0, "t": 48, "d": [127,78], "a": 1 }, + { "px": [512,16], "src": [32,32], "f": 0, "t": 48, "d": [127,80], "a": 1 }, + { "px": [528,16], "src": [32,32], "f": 0, "t": 48, "d": [127,81], "a": 1 }, + { "px": [544,16], "src": [32,32], "f": 0, "t": 48, "d": [127,82], "a": 1 }, + { "px": [576,16], "src": [32,32], "f": 0, "t": 48, "d": [127,84], "a": 1 }, + { "px": [592,16], "src": [32,32], "f": 0, "t": 48, "d": [127,85], "a": 1 }, + { "px": [608,16], "src": [32,32], "f": 0, "t": 48, "d": [127,86], "a": 1 }, + { "px": [640,16], "src": [32,32], "f": 0, "t": 48, "d": [127,88], "a": 1 }, + { "px": [656,16], "src": [32,32], "f": 0, "t": 48, "d": [127,89], "a": 1 }, + { "px": [672,16], "src": [32,32], "f": 0, "t": 48, "d": [127,90], "a": 1 }, + { "px": [704,16], "src": [32,32], "f": 0, "t": 48, "d": [127,92], "a": 1 }, + { "px": [736,16], "src": [32,32], "f": 0, "t": 48, "d": [127,94], "a": 1 }, + { "px": [752,16], "src": [32,32], "f": 0, "t": 48, "d": [127,95], "a": 1 }, + { "px": [0,32], "src": [32,32], "f": 0, "t": 48, "d": [127,96], "a": 1 }, + { "px": [16,32], "src": [32,32], "f": 0, "t": 48, "d": [127,97], "a": 1 }, + { "px": [32,32], "src": [32,32], "f": 0, "t": 48, "d": [127,98], "a": 1 }, + { "px": [48,32], "src": [32,32], "f": 0, "t": 48, "d": [127,99], "a": 1 }, + { "px": [80,32], "src": [32,32], "f": 0, "t": 48, "d": [127,101], "a": 1 }, + { "px": [96,32], "src": [32,32], "f": 0, "t": 48, "d": [127,102], "a": 1 }, + { "px": [112,32], "src": [32,32], "f": 0, "t": 48, "d": [127,103], "a": 1 }, + { "px": [128,32], "src": [32,32], "f": 0, "t": 48, "d": [127,104], "a": 1 }, + { "px": [144,32], "src": [32,32], "f": 0, "t": 48, "d": [127,105], "a": 1 }, + { "px": [176,32], "src": [32,32], "f": 0, "t": 48, "d": [127,107], "a": 1 }, + { "px": [208,32], "src": [32,32], "f": 0, "t": 48, "d": [127,109], "a": 1 }, + { "px": [224,32], "src": [32,32], "f": 0, "t": 48, "d": [127,110], "a": 1 }, + { "px": [240,32], "src": [32,32], "f": 0, "t": 48, "d": [127,111], "a": 1 }, + { "px": [272,32], "src": [32,32], "f": 0, "t": 48, "d": [127,113], "a": 1 }, + { "px": [304,32], "src": [32,32], "f": 0, "t": 48, "d": [127,115], "a": 1 }, + { "px": [320,32], "src": [32,32], "f": 0, "t": 48, "d": [127,116], "a": 1 }, + { "px": [336,32], "src": [32,32], "f": 0, "t": 48, "d": [127,117], "a": 1 }, + { "px": [352,32], "src": [32,32], "f": 0, "t": 48, "d": [127,118], "a": 1 }, + { "px": [368,32], "src": [32,32], "f": 0, "t": 48, "d": [127,119], "a": 1 }, + { "px": [384,32], "src": [32,32], "f": 0, "t": 48, "d": [127,120], "a": 1 }, + { "px": [400,32], "src": [32,32], "f": 0, "t": 48, "d": [127,121], "a": 1 }, + { "px": [416,32], "src": [32,32], "f": 0, "t": 48, "d": [127,122], "a": 1 }, + { "px": [432,32], "src": [32,32], "f": 0, "t": 48, "d": [127,123], "a": 1 }, + { "px": [448,32], "src": [32,32], "f": 0, "t": 48, "d": [127,124], "a": 1 }, + { "px": [464,32], "src": [32,32], "f": 0, "t": 48, "d": [127,125], "a": 1 }, + { "px": [480,32], "src": [32,32], "f": 0, "t": 48, "d": [127,126], "a": 1 }, + { "px": [496,32], "src": [32,32], "f": 0, "t": 48, "d": [127,127], "a": 1 }, + { "px": [528,32], "src": [32,32], "f": 0, "t": 48, "d": [127,129], "a": 1 }, + { "px": [544,32], "src": [32,32], "f": 0, "t": 48, "d": [127,130], "a": 1 }, + { "px": [560,32], "src": [32,32], "f": 0, "t": 48, "d": [127,131], "a": 1 }, + { "px": [592,32], "src": [32,32], "f": 0, "t": 48, "d": [127,133], "a": 1 }, + { "px": [624,32], "src": [32,32], "f": 0, "t": 48, "d": [127,135], "a": 1 }, + { "px": [656,32], "src": [32,32], "f": 0, "t": 48, "d": [127,137], "a": 1 }, + { "px": [688,32], "src": [32,32], "f": 0, "t": 48, "d": [127,139], "a": 1 }, + { "px": [720,32], "src": [32,32], "f": 0, "t": 48, "d": [127,141], "a": 1 }, + { "px": [736,32], "src": [32,32], "f": 0, "t": 48, "d": [127,142], "a": 1 }, + { "px": [752,32], "src": [32,32], "f": 0, "t": 48, "d": [127,143], "a": 1 }, + { "px": [0,48], "src": [32,32], "f": 0, "t": 48, "d": [127,144], "a": 1 }, + { "px": [32,48], "src": [32,32], "f": 0, "t": 48, "d": [127,146], "a": 1 }, + { "px": [64,48], "src": [32,32], "f": 0, "t": 48, "d": [127,148], "a": 1 }, + { "px": [80,48], "src": [32,32], "f": 0, "t": 48, "d": [127,149], "a": 1 }, + { "px": [96,48], "src": [32,32], "f": 0, "t": 48, "d": [127,150], "a": 1 }, + { "px": [112,48], "src": [32,32], "f": 0, "t": 48, "d": [127,151], "a": 1 }, + { "px": [128,48], "src": [32,32], "f": 0, "t": 48, "d": [127,152], "a": 1 }, + { "px": [144,48], "src": [32,32], "f": 0, "t": 48, "d": [127,153], "a": 1 }, + { "px": [160,48], "src": [32,32], "f": 0, "t": 48, "d": [127,154], "a": 1 }, + { "px": [192,48], "src": [32,32], "f": 0, "t": 48, "d": [127,156], "a": 1 }, + { "px": [208,48], "src": [32,32], "f": 0, "t": 48, "d": [127,157], "a": 1 }, + { "px": [224,48], "src": [32,32], "f": 0, "t": 48, "d": [127,158], "a": 1 }, + { "px": [256,48], "src": [32,32], "f": 0, "t": 48, "d": [127,160], "a": 1 }, + { "px": [272,48], "src": [32,32], "f": 0, "t": 48, "d": [127,161], "a": 1 }, + { "px": [528,48], "src": [32,32], "f": 0, "t": 48, "d": [127,177], "a": 1 }, + { "px": [544,48], "src": [32,32], "f": 0, "t": 48, "d": [127,178], "a": 1 }, + { "px": [576,48], "src": [32,32], "f": 0, "t": 48, "d": [127,180], "a": 1 }, + { "px": [592,48], "src": [32,32], "f": 0, "t": 48, "d": [127,181], "a": 1 }, + { "px": [608,48], "src": [32,32], "f": 0, "t": 48, "d": [127,182], "a": 1 }, + { "px": [624,48], "src": [32,32], "f": 0, "t": 48, "d": [127,183], "a": 1 }, + { "px": [640,48], "src": [32,32], "f": 0, "t": 48, "d": [127,184], "a": 1 }, + { "px": [672,48], "src": [32,32], "f": 0, "t": 48, "d": [127,186], "a": 1 }, + { "px": [704,48], "src": [32,32], "f": 0, "t": 48, "d": [127,188], "a": 1 }, + { "px": [736,48], "src": [32,32], "f": 0, "t": 48, "d": [127,190], "a": 1 }, + { "px": [752,48], "src": [32,32], "f": 0, "t": 48, "d": [127,191], "a": 1 }, + { "px": [0,64], "src": [32,32], "f": 0, "t": 48, "d": [127,192], "a": 1 }, + { "px": [16,64], "src": [32,32], "f": 0, "t": 48, "d": [127,193], "a": 1 }, + { "px": [48,64], "src": [32,32], "f": 0, "t": 48, "d": [127,195], "a": 1 }, + { "px": [64,64], "src": [32,32], "f": 0, "t": 48, "d": [127,196], "a": 1 }, + { "px": [80,64], "src": [32,32], "f": 0, "t": 48, "d": [127,197], "a": 1 }, + { "px": [112,64], "src": [32,32], "f": 0, "t": 48, "d": [127,199], "a": 1 }, + { "px": [144,64], "src": [32,32], "f": 0, "t": 48, "d": [127,201], "a": 1 }, + { "px": [176,64], "src": [32,32], "f": 0, "t": 48, "d": [127,203], "a": 1 }, + { "px": [208,64], "src": [32,32], "f": 0, "t": 48, "d": [127,205], "a": 1 }, + { "px": [224,64], "src": [32,32], "f": 0, "t": 48, "d": [127,206], "a": 1 }, + { "px": [240,64], "src": [32,32], "f": 0, "t": 48, "d": [127,207], "a": 1 }, + { "px": [272,64], "src": [32,32], "f": 0, "t": 48, "d": [127,209], "a": 1 }, + { "px": [528,64], "src": [32,32], "f": 0, "t": 48, "d": [127,225], "a": 1 }, + { "px": [544,64], "src": [32,32], "f": 0, "t": 48, "d": [127,226], "a": 1 }, + { "px": [560,64], "src": [32,32], "f": 0, "t": 48, "d": [127,227], "a": 1 }, + { "px": [576,64], "src": [32,32], "f": 0, "t": 48, "d": [127,228], "a": 1 }, + { "px": [592,64], "src": [32,32], "f": 0, "t": 48, "d": [127,229], "a": 1 }, + { "px": [624,64], "src": [32,32], "f": 0, "t": 48, "d": [127,231], "a": 1 }, + { "px": [640,64], "src": [32,32], "f": 0, "t": 48, "d": [127,232], "a": 1 }, + { "px": [656,64], "src": [32,32], "f": 0, "t": 48, "d": [127,233], "a": 1 }, + { "px": [672,64], "src": [32,32], "f": 0, "t": 48, "d": [127,234], "a": 1 }, + { "px": [688,64], "src": [32,32], "f": 0, "t": 48, "d": [127,235], "a": 1 }, + { "px": [704,64], "src": [32,32], "f": 0, "t": 48, "d": [127,236], "a": 1 }, + { "px": [720,64], "src": [32,32], "f": 0, "t": 48, "d": [127,237], "a": 1 }, + { "px": [736,64], "src": [32,32], "f": 0, "t": 48, "d": [127,238], "a": 1 }, + { "px": [752,64], "src": [32,32], "f": 0, "t": 48, "d": [127,239], "a": 1 }, + { "px": [0,80], "src": [32,32], "f": 0, "t": 48, "d": [127,240], "a": 1 }, + { "px": [16,80], "src": [32,32], "f": 0, "t": 48, "d": [127,241], "a": 1 }, + { "px": [32,80], "src": [32,32], "f": 0, "t": 48, "d": [127,242], "a": 1 }, + { "px": [48,80], "src": [32,32], "f": 0, "t": 48, "d": [127,243], "a": 1 }, + { "px": [64,80], "src": [32,32], "f": 0, "t": 48, "d": [127,244], "a": 1 }, + { "px": [96,80], "src": [32,32], "f": 0, "t": 48, "d": [127,246], "a": 1 }, + { "px": [128,80], "src": [32,32], "f": 0, "t": 48, "d": [127,248], "a": 1 }, + { "px": [144,80], "src": [32,32], "f": 0, "t": 48, "d": [127,249], "a": 1 }, + { "px": [160,80], "src": [32,32], "f": 0, "t": 48, "d": [127,250], "a": 1 }, + { "px": [192,80], "src": [32,32], "f": 0, "t": 48, "d": [127,252], "a": 1 }, + { "px": [208,80], "src": [32,32], "f": 0, "t": 48, "d": [127,253], "a": 1 }, + { "px": [224,80], "src": [32,32], "f": 0, "t": 48, "d": [127,254], "a": 1 }, + { "px": [256,80], "src": [32,32], "f": 0, "t": 48, "d": [127,256], "a": 1 }, + { "px": [272,80], "src": [32,32], "f": 0, "t": 48, "d": [127,257], "a": 1 }, + { "px": [528,80], "src": [32,32], "f": 0, "t": 48, "d": [127,273], "a": 1 }, + { "px": [544,80], "src": [32,32], "f": 0, "t": 48, "d": [127,274], "a": 1 }, + { "px": [560,80], "src": [32,32], "f": 0, "t": 48, "d": [127,275], "a": 1 }, + { "px": [576,80], "src": [32,32], "f": 0, "t": 48, "d": [127,276], "a": 1 }, + { "px": [592,80], "src": [32,32], "f": 0, "t": 48, "d": [127,277], "a": 1 }, + { "px": [608,80], "src": [32,32], "f": 0, "t": 48, "d": [127,278], "a": 1 }, + { "px": [640,80], "src": [32,32], "f": 0, "t": 48, "d": [127,280], "a": 1 }, + { "px": [672,80], "src": [32,32], "f": 0, "t": 48, "d": [127,282], "a": 1 }, + { "px": [704,80], "src": [32,32], "f": 0, "t": 48, "d": [127,284], "a": 1 }, + { "px": [736,80], "src": [32,32], "f": 0, "t": 48, "d": [127,286], "a": 1 }, + { "px": [752,80], "src": [32,32], "f": 0, "t": 48, "d": [127,287], "a": 1 }, + { "px": [0,96], "src": [32,32], "f": 0, "t": 48, "d": [127,288], "a": 1 }, + { "px": [16,96], "src": [32,32], "f": 0, "t": 48, "d": [127,289], "a": 1 }, + { "px": [32,96], "src": [32,32], "f": 0, "t": 48, "d": [127,290], "a": 1 }, + { "px": [48,96], "src": [32,32], "f": 0, "t": 48, "d": [127,291], "a": 1 }, + { "px": [64,96], "src": [32,32], "f": 0, "t": 48, "d": [127,292], "a": 1 }, + { "px": [80,96], "src": [32,32], "f": 0, "t": 48, "d": [127,293], "a": 1 }, + { "px": [112,96], "src": [32,32], "f": 0, "t": 48, "d": [127,295], "a": 1 }, + { "px": [128,96], "src": [32,32], "f": 0, "t": 48, "d": [127,296], "a": 1 }, + { "px": [144,96], "src": [32,32], "f": 0, "t": 48, "d": [127,297], "a": 1 }, + { "px": [160,96], "src": [32,32], "f": 0, "t": 48, "d": [127,298], "a": 1 }, + { "px": [176,96], "src": [32,32], "f": 0, "t": 48, "d": [127,299], "a": 1 }, + { "px": [208,96], "src": [32,32], "f": 0, "t": 48, "d": [127,301], "a": 1 }, + { "px": [224,96], "src": [32,32], "f": 0, "t": 48, "d": [127,302], "a": 1 }, + { "px": [240,96], "src": [32,32], "f": 0, "t": 48, "d": [127,303], "a": 1 }, + { "px": [256,96], "src": [32,32], "f": 0, "t": 48, "d": [127,304], "a": 1 }, + { "px": [272,96], "src": [32,32], "f": 0, "t": 48, "d": [127,305], "a": 1 }, + { "px": [528,96], "src": [32,32], "f": 0, "t": 48, "d": [127,321], "a": 1 }, + { "px": [544,96], "src": [32,32], "f": 0, "t": 48, "d": [127,322], "a": 1 }, + { "px": [560,96], "src": [32,32], "f": 0, "t": 48, "d": [127,323], "a": 1 }, + { "px": [576,96], "src": [32,32], "f": 0, "t": 48, "d": [127,324], "a": 1 }, + { "px": [592,96], "src": [32,32], "f": 0, "t": 48, "d": [127,325], "a": 1 }, + { "px": [624,96], "src": [32,32], "f": 0, "t": 48, "d": [127,327], "a": 1 }, + { "px": [640,96], "src": [32,32], "f": 0, "t": 48, "d": [127,328], "a": 1 }, + { "px": [656,96], "src": [32,32], "f": 0, "t": 48, "d": [127,329], "a": 1 }, + { "px": [672,96], "src": [32,32], "f": 0, "t": 48, "d": [127,330], "a": 1 }, + { "px": [688,96], "src": [32,32], "f": 0, "t": 48, "d": [127,331], "a": 1 }, + { "px": [704,96], "src": [32,32], "f": 0, "t": 48, "d": [127,332], "a": 1 }, + { "px": [720,96], "src": [32,32], "f": 0, "t": 48, "d": [127,333], "a": 1 }, + { "px": [736,96], "src": [32,32], "f": 0, "t": 48, "d": [127,334], "a": 1 }, + { "px": [752,96], "src": [32,32], "f": 0, "t": 48, "d": [127,335], "a": 1 }, + { "px": [0,112], "src": [32,32], "f": 0, "t": 48, "d": [127,336], "a": 1 }, + { "px": [16,112], "src": [32,32], "f": 0, "t": 48, "d": [127,337], "a": 1 }, + { "px": [32,112], "src": [32,32], "f": 0, "t": 48, "d": [127,338], "a": 1 }, + { "px": [48,112], "src": [32,32], "f": 0, "t": 48, "d": [127,339], "a": 1 }, + { "px": [64,112], "src": [32,32], "f": 0, "t": 48, "d": [127,340], "a": 1 }, + { "px": [80,112], "src": [32,32], "f": 0, "t": 48, "d": [127,341], "a": 1 }, + { "px": [96,112], "src": [32,32], "f": 0, "t": 48, "d": [127,342], "a": 1 }, + { "px": [112,112], "src": [32,32], "f": 0, "t": 48, "d": [127,343], "a": 1 }, + { "px": [128,112], "src": [32,32], "f": 0, "t": 48, "d": [127,344], "a": 1 }, + { "px": [160,112], "src": [32,32], "f": 0, "t": 48, "d": [127,346], "a": 1 }, + { "px": [176,112], "src": [32,32], "f": 0, "t": 48, "d": [127,347], "a": 1 }, + { "px": [192,112], "src": [32,32], "f": 0, "t": 48, "d": [127,348], "a": 1 }, + { "px": [208,112], "src": [32,32], "f": 0, "t": 48, "d": [127,349], "a": 1 }, + { "px": [224,112], "src": [32,32], "f": 0, "t": 48, "d": [127,350], "a": 1 }, + { "px": [240,112], "src": [32,32], "f": 0, "t": 48, "d": [127,351], "a": 1 }, + { "px": [256,112], "src": [32,32], "f": 0, "t": 48, "d": [127,352], "a": 1 }, + { "px": [272,112], "src": [32,32], "f": 0, "t": 48, "d": [127,353], "a": 1 }, + { "px": [528,112], "src": [32,32], "f": 0, "t": 48, "d": [127,369], "a": 1 }, + { "px": [544,112], "src": [32,32], "f": 0, "t": 48, "d": [127,370], "a": 1 }, + { "px": [576,112], "src": [32,32], "f": 0, "t": 48, "d": [127,372], "a": 1 }, + { "px": [608,112], "src": [32,32], "f": 0, "t": 48, "d": [127,374], "a": 1 }, + { "px": [624,112], "src": [32,32], "f": 0, "t": 48, "d": [127,375], "a": 1 }, + { "px": [640,112], "src": [32,32], "f": 0, "t": 48, "d": [127,376], "a": 1 }, + { "px": [672,112], "src": [32,32], "f": 0, "t": 48, "d": [127,378], "a": 1 }, + { "px": [704,112], "src": [32,32], "f": 0, "t": 48, "d": [127,380], "a": 1 }, + { "px": [720,112], "src": [32,32], "f": 0, "t": 48, "d": [127,381], "a": 1 }, + { "px": [736,112], "src": [32,32], "f": 0, "t": 48, "d": [127,382], "a": 1 }, + { "px": [752,112], "src": [32,32], "f": 0, "t": 48, "d": [127,383], "a": 1 }, + { "px": [16,128], "src": [32,32], "f": 0, "t": 48, "d": [127,385], "a": 1 }, + { "px": [48,128], "src": [32,32], "f": 0, "t": 48, "d": [127,387], "a": 1 }, + { "px": [64,128], "src": [32,32], "f": 0, "t": 48, "d": [127,388], "a": 1 }, + { "px": [80,128], "src": [32,32], "f": 0, "t": 48, "d": [127,389], "a": 1 }, + { "px": [96,128], "src": [32,32], "f": 0, "t": 48, "d": [127,390], "a": 1 }, + { "px": [112,128], "src": [32,32], "f": 0, "t": 48, "d": [127,391], "a": 1 }, + { "px": [144,128], "src": [32,32], "f": 0, "t": 48, "d": [127,393], "a": 1 }, + { "px": [176,128], "src": [32,32], "f": 0, "t": 48, "d": [127,395], "a": 1 }, + { "px": [208,128], "src": [32,32], "f": 0, "t": 48, "d": [127,397], "a": 1 }, + { "px": [224,128], "src": [32,32], "f": 0, "t": 48, "d": [127,398], "a": 1 }, + { "px": [240,128], "src": [32,32], "f": 0, "t": 48, "d": [127,399], "a": 1 }, + { "px": [256,128], "src": [32,32], "f": 0, "t": 48, "d": [127,400], "a": 1 }, + { "px": [272,128], "src": [32,32], "f": 0, "t": 48, "d": [127,401], "a": 1 }, + { "px": [528,128], "src": [32,32], "f": 0, "t": 48, "d": [127,417], "a": 1 }, + { "px": [560,128], "src": [32,32], "f": 0, "t": 48, "d": [127,419], "a": 1 }, + { "px": [592,128], "src": [32,32], "f": 0, "t": 48, "d": [127,421], "a": 1 }, + { "px": [608,128], "src": [32,32], "f": 0, "t": 48, "d": [127,422], "a": 1 }, + { "px": [624,128], "src": [32,32], "f": 0, "t": 48, "d": [127,423], "a": 1 }, + { "px": [656,128], "src": [32,32], "f": 0, "t": 48, "d": [127,425], "a": 1 }, + { "px": [672,128], "src": [32,32], "f": 0, "t": 48, "d": [127,426], "a": 1 }, + { "px": [688,128], "src": [32,32], "f": 0, "t": 48, "d": [127,427], "a": 1 }, + { "px": [720,128], "src": [32,32], "f": 0, "t": 48, "d": [127,429], "a": 1 }, + { "px": [736,128], "src": [32,32], "f": 0, "t": 48, "d": [127,430], "a": 1 }, + { "px": [752,128], "src": [32,32], "f": 0, "t": 48, "d": [127,431], "a": 1 }, + { "px": [0,144], "src": [32,32], "f": 0, "t": 48, "d": [127,432], "a": 1 }, + { "px": [16,144], "src": [32,32], "f": 0, "t": 48, "d": [127,433], "a": 1 }, + { "px": [32,144], "src": [32,32], "f": 0, "t": 48, "d": [127,434], "a": 1 }, + { "px": [64,144], "src": [32,32], "f": 0, "t": 48, "d": [127,436], "a": 1 }, + { "px": [80,144], "src": [32,32], "f": 0, "t": 48, "d": [127,437], "a": 1 }, + { "px": [96,144], "src": [32,32], "f": 0, "t": 48, "d": [127,438], "a": 1 }, + { "px": [112,144], "src": [32,32], "f": 0, "t": 48, "d": [127,439], "a": 1 }, + { "px": [128,144], "src": [32,32], "f": 0, "t": 48, "d": [127,440], "a": 1 }, + { "px": [160,144], "src": [32,32], "f": 0, "t": 48, "d": [127,442], "a": 1 }, + { "px": [192,144], "src": [32,32], "f": 0, "t": 48, "d": [127,444], "a": 1 }, + { "px": [224,144], "src": [32,32], "f": 0, "t": 48, "d": [127,446], "a": 1 }, + { "px": [240,144], "src": [32,32], "f": 0, "t": 48, "d": [127,447], "a": 1 }, + { "px": [256,144], "src": [32,32], "f": 0, "t": 48, "d": [127,448], "a": 1 }, + { "px": [272,144], "src": [32,32], "f": 0, "t": 48, "d": [127,449], "a": 1 }, + { "px": [528,144], "src": [32,32], "f": 0, "t": 48, "d": [127,465], "a": 1 }, + { "px": [544,144], "src": [32,32], "f": 0, "t": 48, "d": [127,466], "a": 1 }, + { "px": [560,144], "src": [32,32], "f": 0, "t": 48, "d": [127,467], "a": 1 }, + { "px": [576,144], "src": [32,32], "f": 0, "t": 48, "d": [127,468], "a": 1 }, + { "px": [608,144], "src": [32,32], "f": 0, "t": 48, "d": [127,470], "a": 1 }, + { "px": [640,144], "src": [32,32], "f": 0, "t": 48, "d": [127,472], "a": 1 }, + { "px": [656,144], "src": [32,32], "f": 0, "t": 48, "d": [127,473], "a": 1 }, + { "px": [672,144], "src": [32,32], "f": 0, "t": 48, "d": [127,474], "a": 1 }, + { "px": [704,144], "src": [32,32], "f": 0, "t": 48, "d": [127,476], "a": 1 }, + { "px": [720,144], "src": [32,32], "f": 0, "t": 48, "d": [127,477], "a": 1 }, + { "px": [736,144], "src": [32,32], "f": 0, "t": 48, "d": [127,478], "a": 1 }, + { "px": [752,144], "src": [32,32], "f": 0, "t": 48, "d": [127,479], "a": 1 }, + { "px": [16,160], "src": [32,32], "f": 0, "t": 48, "d": [127,481], "a": 1 }, + { "px": [48,160], "src": [32,32], "f": 0, "t": 48, "d": [127,483], "a": 1 }, + { "px": [80,160], "src": [32,32], "f": 0, "t": 48, "d": [127,485], "a": 1 }, + { "px": [96,160], "src": [32,32], "f": 0, "t": 48, "d": [127,486], "a": 1 }, + { "px": [112,160], "src": [32,32], "f": 0, "t": 48, "d": [127,487], "a": 1 }, + { "px": [128,160], "src": [32,32], "f": 0, "t": 48, "d": [127,488], "a": 1 }, + { "px": [144,160], "src": [32,32], "f": 0, "t": 48, "d": [127,489], "a": 1 }, + { "px": [176,160], "src": [32,32], "f": 0, "t": 48, "d": [127,491], "a": 1 }, + { "px": [192,160], "src": [32,32], "f": 0, "t": 48, "d": [127,492], "a": 1 }, + { "px": [208,160], "src": [32,32], "f": 0, "t": 48, "d": [127,493], "a": 1 }, + { "px": [240,160], "src": [32,32], "f": 0, "t": 48, "d": [127,495], "a": 1 }, + { "px": [256,160], "src": [32,32], "f": 0, "t": 48, "d": [127,496], "a": 1 }, + { "px": [272,160], "src": [32,32], "f": 0, "t": 48, "d": [127,497], "a": 1 }, + { "px": [528,160], "src": [32,32], "f": 0, "t": 48, "d": [127,513], "a": 1 }, + { "px": [560,160], "src": [32,32], "f": 0, "t": 48, "d": [127,515], "a": 1 }, + { "px": [576,160], "src": [32,32], "f": 0, "t": 48, "d": [127,516], "a": 1 }, + { "px": [592,160], "src": [32,32], "f": 0, "t": 48, "d": [127,517], "a": 1 }, + { "px": [608,160], "src": [32,32], "f": 0, "t": 48, "d": [127,518], "a": 1 }, + { "px": [624,160], "src": [32,32], "f": 0, "t": 48, "d": [127,519], "a": 1 }, + { "px": [656,160], "src": [32,32], "f": 0, "t": 48, "d": [127,521], "a": 1 }, + { "px": [672,160], "src": [32,32], "f": 0, "t": 48, "d": [127,522], "a": 1 }, + { "px": [688,160], "src": [32,32], "f": 0, "t": 48, "d": [127,523], "a": 1 }, + { "px": [720,160], "src": [32,32], "f": 0, "t": 48, "d": [127,525], "a": 1 }, + { "px": [736,160], "src": [32,32], "f": 0, "t": 48, "d": [127,526], "a": 1 }, + { "px": [752,160], "src": [32,32], "f": 0, "t": 48, "d": [127,527], "a": 1 }, + { "px": [0,176], "src": [32,32], "f": 0, "t": 48, "d": [127,528], "a": 1 }, + { "px": [32,176], "src": [32,32], "f": 0, "t": 48, "d": [127,530], "a": 1 }, + { "px": [64,176], "src": [32,32], "f": 0, "t": 48, "d": [127,532], "a": 1 }, + { "px": [80,176], "src": [32,32], "f": 0, "t": 48, "d": [127,533], "a": 1 }, + { "px": [96,176], "src": [32,32], "f": 0, "t": 48, "d": [127,534], "a": 1 }, + { "px": [112,176], "src": [32,32], "f": 0, "t": 48, "d": [127,535], "a": 1 }, + { "px": [128,176], "src": [32,32], "f": 0, "t": 48, "d": [127,536], "a": 1 }, + { "px": [144,176], "src": [32,32], "f": 0, "t": 48, "d": [127,537], "a": 1 }, + { "px": [160,176], "src": [32,32], "f": 0, "t": 48, "d": [127,538], "a": 1 }, + { "px": [176,176], "src": [32,32], "f": 0, "t": 48, "d": [127,539], "a": 1 }, + { "px": [192,176], "src": [32,32], "f": 0, "t": 48, "d": [127,540], "a": 1 }, + { "px": [208,176], "src": [32,32], "f": 0, "t": 48, "d": [127,541], "a": 1 }, + { "px": [224,176], "src": [32,32], "f": 0, "t": 48, "d": [127,542], "a": 1 }, + { "px": [240,176], "src": [32,32], "f": 0, "t": 48, "d": [127,543], "a": 1 }, + { "px": [256,176], "src": [32,32], "f": 0, "t": 48, "d": [127,544], "a": 1 }, + { "px": [272,176], "src": [32,32], "f": 0, "t": 48, "d": [127,545], "a": 1 }, + { "px": [528,176], "src": [32,32], "f": 0, "t": 48, "d": [127,561], "a": 1 }, + { "px": [544,176], "src": [32,32], "f": 0, "t": 48, "d": [127,562], "a": 1 }, + { "px": [560,176], "src": [32,32], "f": 0, "t": 48, "d": [127,563], "a": 1 }, + { "px": [576,176], "src": [32,32], "f": 0, "t": 48, "d": [127,564], "a": 1 }, + { "px": [592,176], "src": [32,32], "f": 0, "t": 48, "d": [127,565], "a": 1 }, + { "px": [608,176], "src": [32,32], "f": 0, "t": 48, "d": [127,566], "a": 1 }, + { "px": [624,176], "src": [32,32], "f": 0, "t": 48, "d": [127,567], "a": 1 }, + { "px": [640,176], "src": [32,32], "f": 0, "t": 48, "d": [127,568], "a": 1 }, + { "px": [656,176], "src": [32,32], "f": 0, "t": 48, "d": [127,569], "a": 1 }, + { "px": [672,176], "src": [32,32], "f": 0, "t": 48, "d": [127,570], "a": 1 }, + { "px": [704,176], "src": [32,32], "f": 0, "t": 48, "d": [127,572], "a": 1 }, + { "px": [736,176], "src": [32,32], "f": 0, "t": 48, "d": [127,574], "a": 1 }, + { "px": [0,192], "src": [32,32], "f": 0, "t": 48, "d": [127,576], "a": 1 }, + { "px": [16,192], "src": [32,32], "f": 0, "t": 48, "d": [127,577], "a": 1 }, + { "px": [32,192], "src": [32,32], "f": 0, "t": 48, "d": [127,578], "a": 1 }, + { "px": [48,192], "src": [32,32], "f": 0, "t": 48, "d": [127,579], "a": 1 }, + { "px": [80,192], "src": [32,32], "f": 0, "t": 48, "d": [127,581], "a": 1 }, + { "px": [96,192], "src": [32,32], "f": 0, "t": 48, "d": [127,582], "a": 1 }, + { "px": [112,192], "src": [32,32], "f": 0, "t": 48, "d": [127,583], "a": 1 }, + { "px": [128,192], "src": [32,32], "f": 0, "t": 48, "d": [127,584], "a": 1 }, + { "px": [144,192], "src": [32,32], "f": 0, "t": 48, "d": [127,585], "a": 1 }, + { "px": [160,192], "src": [32,32], "f": 0, "t": 48, "d": [127,586], "a": 1 }, + { "px": [176,192], "src": [32,32], "f": 0, "t": 48, "d": [127,587], "a": 1 }, + { "px": [192,192], "src": [32,32], "f": 0, "t": 48, "d": [127,588], "a": 1 }, + { "px": [208,192], "src": [32,32], "f": 0, "t": 48, "d": [127,589], "a": 1 }, + { "px": [240,192], "src": [32,32], "f": 0, "t": 48, "d": [127,591], "a": 1 }, + { "px": [256,192], "src": [32,32], "f": 0, "t": 48, "d": [127,592], "a": 1 }, + { "px": [272,192], "src": [32,32], "f": 0, "t": 48, "d": [127,593], "a": 1 }, + { "px": [528,192], "src": [32,32], "f": 0, "t": 48, "d": [127,609], "a": 1 }, + { "px": [544,192], "src": [32,32], "f": 0, "t": 48, "d": [127,610], "a": 1 }, + { "px": [560,192], "src": [32,32], "f": 0, "t": 48, "d": [127,611], "a": 1 }, + { "px": [576,192], "src": [32,32], "f": 0, "t": 48, "d": [127,612], "a": 1 }, + { "px": [592,192], "src": [32,32], "f": 0, "t": 48, "d": [127,613], "a": 1 }, + { "px": [608,192], "src": [32,32], "f": 0, "t": 48, "d": [127,614], "a": 1 }, + { "px": [624,192], "src": [32,32], "f": 0, "t": 48, "d": [127,615], "a": 1 }, + { "px": [640,192], "src": [32,32], "f": 0, "t": 48, "d": [127,616], "a": 1 }, + { "px": [656,192], "src": [32,32], "f": 0, "t": 48, "d": [127,617], "a": 1 }, + { "px": [672,192], "src": [32,32], "f": 0, "t": 48, "d": [127,618], "a": 1 }, + { "px": [688,192], "src": [32,32], "f": 0, "t": 48, "d": [127,619], "a": 1 }, + { "px": [720,192], "src": [32,32], "f": 0, "t": 48, "d": [127,621], "a": 1 }, + { "px": [736,192], "src": [32,32], "f": 0, "t": 48, "d": [127,622], "a": 1 }, + { "px": [752,192], "src": [32,32], "f": 0, "t": 48, "d": [127,623], "a": 1 }, + { "px": [0,208], "src": [32,32], "f": 0, "t": 48, "d": [127,624], "a": 1 }, + { "px": [16,208], "src": [32,32], "f": 0, "t": 48, "d": [127,625], "a": 1 }, + { "px": [32,208], "src": [32,32], "f": 0, "t": 48, "d": [127,626], "a": 1 }, + { "px": [48,208], "src": [32,32], "f": 0, "t": 48, "d": [127,627], "a": 1 }, + { "px": [64,208], "src": [32,32], "f": 0, "t": 48, "d": [127,628], "a": 1 }, + { "px": [96,208], "src": [32,32], "f": 0, "t": 48, "d": [127,630], "a": 1 }, + { "px": [112,208], "src": [32,32], "f": 0, "t": 48, "d": [127,631], "a": 1 }, + { "px": [128,208], "src": [32,32], "f": 0, "t": 48, "d": [127,632], "a": 1 }, + { "px": [144,208], "src": [32,32], "f": 0, "t": 48, "d": [127,633], "a": 1 }, + { "px": [160,208], "src": [32,32], "f": 0, "t": 48, "d": [127,634], "a": 1 }, + { "px": [176,208], "src": [32,32], "f": 0, "t": 48, "d": [127,635], "a": 1 }, + { "px": [192,208], "src": [32,32], "f": 0, "t": 48, "d": [127,636], "a": 1 }, + { "px": [224,208], "src": [32,32], "f": 0, "t": 48, "d": [127,638], "a": 1 }, + { "px": [256,208], "src": [32,32], "f": 0, "t": 48, "d": [127,640], "a": 1 }, + { "px": [528,208], "src": [32,32], "f": 0, "t": 48, "d": [127,657], "a": 1 }, + { "px": [544,208], "src": [32,32], "f": 0, "t": 48, "d": [127,658], "a": 1 }, + { "px": [560,208], "src": [32,32], "f": 0, "t": 48, "d": [127,659], "a": 1 }, + { "px": [576,208], "src": [32,32], "f": 0, "t": 48, "d": [127,660], "a": 1 }, + { "px": [592,208], "src": [32,32], "f": 0, "t": 48, "d": [127,661], "a": 1 }, + { "px": [608,208], "src": [32,32], "f": 0, "t": 48, "d": [127,662], "a": 1 }, + { "px": [624,208], "src": [32,32], "f": 0, "t": 48, "d": [127,663], "a": 1 }, + { "px": [640,208], "src": [32,32], "f": 0, "t": 48, "d": [127,664], "a": 1 }, + { "px": [656,208], "src": [32,32], "f": 0, "t": 48, "d": [127,665], "a": 1 }, + { "px": [672,208], "src": [32,32], "f": 0, "t": 48, "d": [127,666], "a": 1 }, + { "px": [688,208], "src": [32,32], "f": 0, "t": 48, "d": [127,667], "a": 1 }, + { "px": [704,208], "src": [32,32], "f": 0, "t": 48, "d": [127,668], "a": 1 }, + { "px": [720,208], "src": [32,32], "f": 0, "t": 48, "d": [127,669], "a": 1 }, + { "px": [736,208], "src": [32,32], "f": 0, "t": 48, "d": [127,670], "a": 1 }, + { "px": [752,208], "src": [32,32], "f": 0, "t": 48, "d": [127,671], "a": 1 }, + { "px": [0,224], "src": [32,32], "f": 0, "t": 48, "d": [127,672], "a": 1 }, + { "px": [16,224], "src": [32,32], "f": 0, "t": 48, "d": [127,673], "a": 1 }, + { "px": [48,224], "src": [32,32], "f": 0, "t": 48, "d": [127,675], "a": 1 }, + { "px": [80,224], "src": [32,32], "f": 0, "t": 48, "d": [127,677], "a": 1 }, + { "px": [96,224], "src": [32,32], "f": 0, "t": 48, "d": [127,678], "a": 1 }, + { "px": [112,224], "src": [32,32], "f": 0, "t": 48, "d": [127,679], "a": 1 }, + { "px": [128,224], "src": [32,32], "f": 0, "t": 48, "d": [127,680], "a": 1 }, + { "px": [144,224], "src": [32,32], "f": 0, "t": 48, "d": [127,681], "a": 1 }, + { "px": [160,224], "src": [32,32], "f": 0, "t": 48, "d": [127,682], "a": 1 }, + { "px": [176,224], "src": [32,32], "f": 0, "t": 48, "d": [127,683], "a": 1 }, + { "px": [208,224], "src": [32,32], "f": 0, "t": 48, "d": [127,685], "a": 1 }, + { "px": [224,224], "src": [32,32], "f": 0, "t": 48, "d": [127,686], "a": 1 }, + { "px": [240,224], "src": [32,32], "f": 0, "t": 48, "d": [127,687], "a": 1 }, + { "px": [272,224], "src": [32,32], "f": 0, "t": 48, "d": [127,689], "a": 1 }, + { "px": [288,224], "src": [32,32], "f": 0, "t": 48, "d": [127,690], "a": 1 }, + { "px": [304,224], "src": [32,32], "f": 0, "t": 48, "d": [127,691], "a": 1 }, + { "px": [320,224], "src": [32,32], "f": 0, "t": 48, "d": [127,692], "a": 1 }, + { "px": [496,224], "src": [32,32], "f": 0, "t": 48, "d": [127,703], "a": 1 }, + { "px": [512,224], "src": [32,32], "f": 0, "t": 48, "d": [127,704], "a": 1 }, + { "px": [528,224], "src": [32,32], "f": 0, "t": 48, "d": [127,705], "a": 1 }, + { "px": [544,224], "src": [32,32], "f": 0, "t": 48, "d": [127,706], "a": 1 }, + { "px": [560,224], "src": [32,32], "f": 0, "t": 48, "d": [127,707], "a": 1 }, + { "px": [592,224], "src": [32,32], "f": 0, "t": 48, "d": [127,709], "a": 1 }, + { "px": [624,224], "src": [32,32], "f": 0, "t": 48, "d": [127,711], "a": 1 }, + { "px": [640,224], "src": [32,32], "f": 0, "t": 48, "d": [127,712], "a": 1 }, + { "px": [656,224], "src": [32,32], "f": 0, "t": 48, "d": [127,713], "a": 1 }, + { "px": [672,224], "src": [32,32], "f": 0, "t": 48, "d": [127,714], "a": 1 }, + { "px": [688,224], "src": [32,32], "f": 0, "t": 48, "d": [127,715], "a": 1 }, + { "px": [704,224], "src": [32,32], "f": 0, "t": 48, "d": [127,716], "a": 1 }, + { "px": [720,224], "src": [32,32], "f": 0, "t": 48, "d": [127,717], "a": 1 }, + { "px": [736,224], "src": [32,32], "f": 0, "t": 48, "d": [127,718], "a": 1 }, + { "px": [752,224], "src": [32,32], "f": 0, "t": 48, "d": [127,719], "a": 1 }, + { "px": [0,240], "src": [32,32], "f": 0, "t": 48, "d": [127,720], "a": 1 }, + { "px": [32,240], "src": [32,32], "f": 0, "t": 48, "d": [127,722], "a": 1 }, + { "px": [64,240], "src": [32,32], "f": 0, "t": 48, "d": [127,724], "a": 1 }, + { "px": [80,240], "src": [32,32], "f": 0, "t": 48, "d": [127,725], "a": 1 }, + { "px": [96,240], "src": [32,32], "f": 0, "t": 48, "d": [127,726], "a": 1 }, + { "px": [112,240], "src": [32,32], "f": 0, "t": 48, "d": [127,727], "a": 1 }, + { "px": [128,240], "src": [32,32], "f": 0, "t": 48, "d": [127,728], "a": 1 }, + { "px": [144,240], "src": [32,32], "f": 0, "t": 48, "d": [127,729], "a": 1 }, + { "px": [160,240], "src": [32,32], "f": 0, "t": 48, "d": [127,730], "a": 1 }, + { "px": [176,240], "src": [32,32], "f": 0, "t": 48, "d": [127,731], "a": 1 }, + { "px": [192,240], "src": [32,32], "f": 0, "t": 48, "d": [127,732], "a": 1 }, + { "px": [224,240], "src": [32,32], "f": 0, "t": 48, "d": [127,734], "a": 1 }, + { "px": [480,240], "src": [32,32], "f": 0, "t": 48, "d": [127,750], "a": 1 }, + { "px": [512,240], "src": [32,32], "f": 0, "t": 48, "d": [127,752], "a": 1 }, + { "px": [528,240], "src": [32,32], "f": 0, "t": 48, "d": [127,753], "a": 1 }, + { "px": [544,240], "src": [32,32], "f": 0, "t": 48, "d": [127,754], "a": 1 }, + { "px": [576,240], "src": [32,32], "f": 0, "t": 48, "d": [127,756], "a": 1 }, + { "px": [608,240], "src": [32,32], "f": 0, "t": 48, "d": [127,758], "a": 1 }, + { "px": [640,240], "src": [32,32], "f": 0, "t": 48, "d": [127,760], "a": 1 }, + { "px": [656,240], "src": [32,32], "f": 0, "t": 48, "d": [127,761], "a": 1 }, + { "px": [672,240], "src": [32,32], "f": 0, "t": 48, "d": [127,762], "a": 1 }, + { "px": [704,240], "src": [32,32], "f": 0, "t": 48, "d": [127,764], "a": 1 }, + { "px": [736,240], "src": [32,32], "f": 0, "t": 48, "d": [127,766], "a": 1 }, + { "px": [752,240], "src": [32,32], "f": 0, "t": 48, "d": [127,767], "a": 1 }, + { "px": [16,256], "src": [32,32], "f": 0, "t": 48, "d": [127,769], "a": 1 }, + { "px": [48,256], "src": [32,32], "f": 0, "t": 48, "d": [127,771], "a": 1 }, + { "px": [80,256], "src": [32,32], "f": 0, "t": 48, "d": [127,773], "a": 1 }, + { "px": [96,256], "src": [32,32], "f": 0, "t": 48, "d": [127,774], "a": 1 }, + { "px": [112,256], "src": [32,32], "f": 0, "t": 48, "d": [127,775], "a": 1 }, + { "px": [128,256], "src": [32,32], "f": 0, "t": 48, "d": [127,776], "a": 1 }, + { "px": [144,256], "src": [32,32], "f": 0, "t": 48, "d": [127,777], "a": 1 }, + { "px": [176,256], "src": [32,32], "f": 0, "t": 48, "d": [127,779], "a": 1 }, + { "px": [208,256], "src": [32,32], "f": 0, "t": 48, "d": [127,781], "a": 1 }, + { "px": [240,256], "src": [32,32], "f": 0, "t": 48, "d": [127,783], "a": 1 }, + { "px": [480,256], "src": [32,32], "f": 0, "t": 48, "d": [127,798], "a": 1 }, + { "px": [496,256], "src": [32,32], "f": 0, "t": 48, "d": [127,799], "a": 1 }, + { "px": [512,256], "src": [32,32], "f": 0, "t": 48, "d": [127,800], "a": 1 }, + { "px": [528,256], "src": [32,32], "f": 0, "t": 48, "d": [127,801], "a": 1 }, + { "px": [544,256], "src": [32,32], "f": 0, "t": 48, "d": [127,802], "a": 1 }, + { "px": [560,256], "src": [32,32], "f": 0, "t": 48, "d": [127,803], "a": 1 }, + { "px": [592,256], "src": [32,32], "f": 0, "t": 48, "d": [127,805], "a": 1 }, + { "px": [624,256], "src": [32,32], "f": 0, "t": 48, "d": [127,807], "a": 1 }, + { "px": [656,256], "src": [32,32], "f": 0, "t": 48, "d": [127,809], "a": 1 }, + { "px": [688,256], "src": [32,32], "f": 0, "t": 48, "d": [127,811], "a": 1 }, + { "px": [704,256], "src": [32,32], "f": 0, "t": 48, "d": [127,812], "a": 1 }, + { "px": [720,256], "src": [32,32], "f": 0, "t": 48, "d": [127,813], "a": 1 }, + { "px": [736,256], "src": [32,32], "f": 0, "t": 48, "d": [127,814], "a": 1 }, + { "px": [752,256], "src": [32,32], "f": 0, "t": 48, "d": [127,815], "a": 1 }, + { "px": [0,272], "src": [32,32], "f": 0, "t": 48, "d": [127,816], "a": 1 }, + { "px": [16,272], "src": [32,32], "f": 0, "t": 48, "d": [127,817], "a": 1 }, + { "px": [32,272], "src": [32,32], "f": 0, "t": 48, "d": [127,818], "a": 1 }, + { "px": [48,272], "src": [32,32], "f": 0, "t": 48, "d": [127,819], "a": 1 }, + { "px": [64,272], "src": [32,32], "f": 0, "t": 48, "d": [127,820], "a": 1 }, + { "px": [80,272], "src": [32,32], "f": 0, "t": 48, "d": [127,821], "a": 1 }, + { "px": [96,272], "src": [32,32], "f": 0, "t": 48, "d": [127,822], "a": 1 }, + { "px": [112,272], "src": [32,32], "f": 0, "t": 48, "d": [127,823], "a": 1 }, + { "px": [128,272], "src": [32,32], "f": 0, "t": 48, "d": [127,824], "a": 1 }, + { "px": [160,272], "src": [32,32], "f": 0, "t": 48, "d": [127,826], "a": 1 }, + { "px": [176,272], "src": [32,32], "f": 0, "t": 48, "d": [127,827], "a": 1 }, + { "px": [192,272], "src": [32,32], "f": 0, "t": 48, "d": [127,828], "a": 1 }, + { "px": [208,272], "src": [32,32], "f": 0, "t": 48, "d": [127,829], "a": 1 }, + { "px": [224,272], "src": [32,32], "f": 0, "t": 48, "d": [127,830], "a": 1 }, + { "px": [480,272], "src": [32,32], "f": 0, "t": 48, "d": [127,846], "a": 1 }, + { "px": [496,272], "src": [32,32], "f": 0, "t": 48, "d": [127,847], "a": 1 }, + { "px": [512,272], "src": [32,32], "f": 0, "t": 48, "d": [127,848], "a": 1 }, + { "px": [528,272], "src": [32,32], "f": 0, "t": 48, "d": [127,849], "a": 1 }, + { "px": [544,272], "src": [32,32], "f": 0, "t": 48, "d": [127,850], "a": 1 }, + { "px": [560,272], "src": [32,32], "f": 0, "t": 48, "d": [127,851], "a": 1 }, + { "px": [576,272], "src": [32,32], "f": 0, "t": 48, "d": [127,852], "a": 1 }, + { "px": [608,272], "src": [32,32], "f": 0, "t": 48, "d": [127,854], "a": 1 }, + { "px": [624,272], "src": [32,32], "f": 0, "t": 48, "d": [127,855], "a": 1 }, + { "px": [640,272], "src": [32,32], "f": 0, "t": 48, "d": [127,856], "a": 1 }, + { "px": [656,272], "src": [32,32], "f": 0, "t": 48, "d": [127,857], "a": 1 }, + { "px": [672,272], "src": [32,32], "f": 0, "t": 48, "d": [127,858], "a": 1 }, + { "px": [688,272], "src": [32,32], "f": 0, "t": 48, "d": [127,859], "a": 1 }, + { "px": [704,272], "src": [32,32], "f": 0, "t": 48, "d": [127,860], "a": 1 }, + { "px": [720,272], "src": [32,32], "f": 0, "t": 48, "d": [127,861], "a": 1 }, + { "px": [736,272], "src": [32,32], "f": 0, "t": 48, "d": [127,862], "a": 1 }, + { "px": [752,272], "src": [32,32], "f": 0, "t": 48, "d": [127,863], "a": 1 }, + { "px": [16,288], "src": [32,32], "f": 0, "t": 48, "d": [127,865], "a": 1 }, + { "px": [48,288], "src": [32,32], "f": 0, "t": 48, "d": [127,867], "a": 1 }, + { "px": [64,288], "src": [32,32], "f": 0, "t": 48, "d": [127,868], "a": 1 }, + { "px": [80,288], "src": [32,32], "f": 0, "t": 48, "d": [127,869], "a": 1 }, + { "px": [96,288], "src": [32,32], "f": 0, "t": 48, "d": [127,870], "a": 1 }, + { "px": [112,288], "src": [32,32], "f": 0, "t": 48, "d": [127,871], "a": 1 }, + { "px": [128,288], "src": [32,32], "f": 0, "t": 48, "d": [127,872], "a": 1 }, + { "px": [144,288], "src": [32,32], "f": 0, "t": 48, "d": [127,873], "a": 1 }, + { "px": [160,288], "src": [32,32], "f": 0, "t": 48, "d": [127,874], "a": 1 }, + { "px": [176,288], "src": [32,32], "f": 0, "t": 48, "d": [127,875], "a": 1 }, + { "px": [208,288], "src": [32,32], "f": 0, "t": 48, "d": [127,877], "a": 1 }, + { "px": [224,288], "src": [32,32], "f": 0, "t": 48, "d": [127,878], "a": 1 }, + { "px": [240,288], "src": [32,32], "f": 0, "t": 48, "d": [127,879], "a": 1 }, + { "px": [480,288], "src": [32,32], "f": 0, "t": 48, "d": [127,894], "a": 1 }, + { "px": [496,288], "src": [32,32], "f": 0, "t": 48, "d": [127,895], "a": 1 }, + { "px": [528,288], "src": [32,32], "f": 0, "t": 48, "d": [127,897], "a": 1 }, + { "px": [544,288], "src": [32,32], "f": 0, "t": 48, "d": [127,898], "a": 1 }, + { "px": [560,288], "src": [32,32], "f": 0, "t": 48, "d": [127,899], "a": 1 }, + { "px": [592,288], "src": [32,32], "f": 0, "t": 48, "d": [127,901], "a": 1 }, + { "px": [624,288], "src": [32,32], "f": 0, "t": 48, "d": [127,903], "a": 1 }, + { "px": [656,288], "src": [32,32], "f": 0, "t": 48, "d": [127,905], "a": 1 }, + { "px": [672,288], "src": [32,32], "f": 0, "t": 48, "d": [127,906], "a": 1 }, + { "px": [688,288], "src": [32,32], "f": 0, "t": 48, "d": [127,907], "a": 1 }, + { "px": [720,288], "src": [32,32], "f": 0, "t": 48, "d": [127,909], "a": 1 }, + { "px": [736,288], "src": [32,32], "f": 0, "t": 48, "d": [127,910], "a": 1 }, + { "px": [752,288], "src": [32,32], "f": 0, "t": 48, "d": [127,911], "a": 1 }, + { "px": [0,304], "src": [32,32], "f": 0, "t": 48, "d": [127,912], "a": 1 }, + { "px": [16,304], "src": [32,32], "f": 0, "t": 48, "d": [127,913], "a": 1 }, + { "px": [32,304], "src": [32,32], "f": 0, "t": 48, "d": [127,914], "a": 1 }, + { "px": [48,304], "src": [32,32], "f": 0, "t": 48, "d": [127,915], "a": 1 }, + { "px": [64,304], "src": [32,32], "f": 0, "t": 48, "d": [127,916], "a": 1 }, + { "px": [80,304], "src": [32,32], "f": 0, "t": 48, "d": [127,917], "a": 1 }, + { "px": [96,304], "src": [32,32], "f": 0, "t": 48, "d": [127,918], "a": 1 }, + { "px": [112,304], "src": [32,32], "f": 0, "t": 48, "d": [127,919], "a": 1 }, + { "px": [128,304], "src": [32,32], "f": 0, "t": 48, "d": [127,920], "a": 1 }, + { "px": [160,304], "src": [32,32], "f": 0, "t": 48, "d": [127,922], "a": 1 }, + { "px": [192,304], "src": [32,32], "f": 0, "t": 48, "d": [127,924], "a": 1 }, + { "px": [208,304], "src": [32,32], "f": 0, "t": 48, "d": [127,925], "a": 1 }, + { "px": [224,304], "src": [32,32], "f": 0, "t": 48, "d": [127,926], "a": 1 }, + { "px": [480,304], "src": [32,32], "f": 0, "t": 48, "d": [127,942], "a": 1 }, + { "px": [512,304], "src": [32,32], "f": 0, "t": 48, "d": [127,944], "a": 1 }, + { "px": [528,304], "src": [32,32], "f": 0, "t": 48, "d": [127,945], "a": 1 }, + { "px": [544,304], "src": [32,32], "f": 0, "t": 48, "d": [127,946], "a": 1 }, + { "px": [560,304], "src": [32,32], "f": 0, "t": 48, "d": [127,947], "a": 1 }, + { "px": [576,304], "src": [32,32], "f": 0, "t": 48, "d": [127,948], "a": 1 }, + { "px": [592,304], "src": [32,32], "f": 0, "t": 48, "d": [127,949], "a": 1 }, + { "px": [608,304], "src": [32,32], "f": 0, "t": 48, "d": [127,950], "a": 1 }, + { "px": [624,304], "src": [32,32], "f": 0, "t": 48, "d": [127,951], "a": 1 }, + { "px": [640,304], "src": [32,32], "f": 0, "t": 48, "d": [127,952], "a": 1 }, + { "px": [656,304], "src": [32,32], "f": 0, "t": 48, "d": [127,953], "a": 1 }, + { "px": [672,304], "src": [32,32], "f": 0, "t": 48, "d": [127,954], "a": 1 }, + { "px": [704,304], "src": [32,32], "f": 0, "t": 48, "d": [127,956], "a": 1 }, + { "px": [720,304], "src": [32,32], "f": 0, "t": 48, "d": [127,957], "a": 1 }, + { "px": [736,304], "src": [32,32], "f": 0, "t": 48, "d": [127,958], "a": 1 }, + { "px": [752,304], "src": [32,32], "f": 0, "t": 48, "d": [127,959], "a": 1 }, + { "px": [0,320], "src": [32,32], "f": 0, "t": 48, "d": [127,960], "a": 1 }, + { "px": [16,320], "src": [32,32], "f": 0, "t": 48, "d": [127,961], "a": 1 }, + { "px": [48,320], "src": [32,32], "f": 0, "t": 48, "d": [127,963], "a": 1 }, + { "px": [64,320], "src": [32,32], "f": 0, "t": 48, "d": [127,964], "a": 1 }, + { "px": [80,320], "src": [32,32], "f": 0, "t": 48, "d": [127,965], "a": 1 }, + { "px": [112,320], "src": [32,32], "f": 0, "t": 48, "d": [127,967], "a": 1 }, + { "px": [128,320], "src": [32,32], "f": 0, "t": 48, "d": [127,968], "a": 1 }, + { "px": [144,320], "src": [32,32], "f": 0, "t": 48, "d": [127,969], "a": 1 }, + { "px": [176,320], "src": [32,32], "f": 0, "t": 48, "d": [127,971], "a": 1 }, + { "px": [208,320], "src": [32,32], "f": 0, "t": 48, "d": [127,973], "a": 1 }, + { "px": [240,320], "src": [32,32], "f": 0, "t": 48, "d": [127,975], "a": 1 }, + { "px": [528,320], "src": [32,32], "f": 0, "t": 48, "d": [127,993], "a": 1 }, + { "px": [560,320], "src": [32,32], "f": 0, "t": 48, "d": [127,995], "a": 1 }, + { "px": [592,320], "src": [32,32], "f": 0, "t": 48, "d": [127,997], "a": 1 }, + { "px": [608,320], "src": [32,32], "f": 0, "t": 48, "d": [127,998], "a": 1 }, + { "px": [624,320], "src": [32,32], "f": 0, "t": 48, "d": [127,999], "a": 1 }, + { "px": [656,320], "src": [32,32], "f": 0, "t": 48, "d": [127,1001], "a": 1 }, + { "px": [688,320], "src": [32,32], "f": 0, "t": 48, "d": [127,1003], "a": 1 }, + { "px": [704,320], "src": [32,32], "f": 0, "t": 48, "d": [127,1004], "a": 1 }, + { "px": [720,320], "src": [32,32], "f": 0, "t": 48, "d": [127,1005], "a": 1 }, + { "px": [736,320], "src": [32,32], "f": 0, "t": 48, "d": [127,1006], "a": 1 }, + { "px": [752,320], "src": [32,32], "f": 0, "t": 48, "d": [127,1007], "a": 1 }, + { "px": [0,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1008], "a": 1 }, + { "px": [32,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1010], "a": 1 }, + { "px": [64,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1012], "a": 1 }, + { "px": [96,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1014], "a": 1 }, + { "px": [112,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1015], "a": 1 }, + { "px": [128,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1016], "a": 1 }, + { "px": [160,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1018], "a": 1 }, + { "px": [176,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1019], "a": 1 }, + { "px": [192,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1020], "a": 1 }, + { "px": [208,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1021], "a": 1 }, + { "px": [224,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1022], "a": 1 }, + { "px": [240,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1023], "a": 1 }, + { "px": [544,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1042], "a": 1 }, + { "px": [560,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1043], "a": 1 }, + { "px": [576,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1044], "a": 1 }, + { "px": [608,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1046], "a": 1 }, + { "px": [640,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1048], "a": 1 }, + { "px": [656,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1049], "a": 1 }, + { "px": [672,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1050], "a": 1 }, + { "px": [704,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1052], "a": 1 }, + { "px": [720,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1053], "a": 1 }, + { "px": [736,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1054], "a": 1 }, + { "px": [752,336], "src": [32,32], "f": 0, "t": 48, "d": [127,1055], "a": 1 }, + { "px": [16,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1057], "a": 1 }, + { "px": [48,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1059], "a": 1 }, + { "px": [80,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1061], "a": 1 }, + { "px": [112,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1063], "a": 1 }, + { "px": [144,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1065], "a": 1 }, + { "px": [160,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1066], "a": 1 }, + { "px": [176,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1067], "a": 1 }, + { "px": [192,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1068], "a": 1 }, + { "px": [208,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1069], "a": 1 }, + { "px": [240,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1071], "a": 1 }, + { "px": [528,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1089], "a": 1 }, + { "px": [544,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1090], "a": 1 }, + { "px": [560,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1091], "a": 1 }, + { "px": [592,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1093], "a": 1 }, + { "px": [624,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1095], "a": 1 }, + { "px": [640,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1096], "a": 1 }, + { "px": [656,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1097], "a": 1 }, + { "px": [688,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1099], "a": 1 }, + { "px": [704,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1100], "a": 1 }, + { "px": [720,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1101], "a": 1 }, + { "px": [736,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1102], "a": 1 }, + { "px": [752,352], "src": [32,32], "f": 0, "t": 48, "d": [127,1103], "a": 1 }, + { "px": [0,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1104], "a": 1 }, + { "px": [16,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1105], "a": 1 }, + { "px": [32,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1106], "a": 1 }, + { "px": [48,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1107], "a": 1 }, + { "px": [64,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1108], "a": 1 }, + { "px": [96,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1110], "a": 1 }, + { "px": [128,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1112], "a": 1 }, + { "px": [144,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1113], "a": 1 }, + { "px": [160,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1114], "a": 1 }, + { "px": [176,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1115], "a": 1 }, + { "px": [192,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1116], "a": 1 }, + { "px": [224,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1118], "a": 1 }, + { "px": [544,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1138], "a": 1 }, + { "px": [576,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1140], "a": 1 }, + { "px": [592,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1141], "a": 1 }, + { "px": [608,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1142], "a": 1 }, + { "px": [640,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1144], "a": 1 }, + { "px": [672,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1146], "a": 1 }, + { "px": [704,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1148], "a": 1 }, + { "px": [736,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1150], "a": 1 }, + { "px": [752,368], "src": [32,32], "f": 0, "t": 48, "d": [127,1151], "a": 1 }, + { "px": [0,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1152], "a": 1 }, + { "px": [16,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1153], "a": 1 }, + { "px": [48,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1155], "a": 1 }, + { "px": [80,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1157], "a": 1 }, + { "px": [112,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1159], "a": 1 }, + { "px": [144,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1161], "a": 1 }, + { "px": [160,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1162], "a": 1 }, + { "px": [176,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1163], "a": 1 }, + { "px": [192,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1164], "a": 1 }, + { "px": [208,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1165], "a": 1 }, + { "px": [224,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1166], "a": 1 }, + { "px": [240,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1167], "a": 1 }, + { "px": [528,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1185], "a": 1 }, + { "px": [560,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1187], "a": 1 }, + { "px": [576,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1188], "a": 1 }, + { "px": [592,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1189], "a": 1 }, + { "px": [608,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1190], "a": 1 }, + { "px": [624,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1191], "a": 1 }, + { "px": [656,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1193], "a": 1 }, + { "px": [688,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1195], "a": 1 }, + { "px": [704,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1196], "a": 1 }, + { "px": [720,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1197], "a": 1 }, + { "px": [736,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1198], "a": 1 }, + { "px": [752,384], "src": [32,32], "f": 0, "t": 48, "d": [127,1199], "a": 1 }, + { "px": [0,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1200], "a": 1 }, + { "px": [16,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1201], "a": 1 }, + { "px": [32,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1202], "a": 1 }, + { "px": [64,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1204], "a": 1 }, + { "px": [96,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1206], "a": 1 }, + { "px": [112,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1207], "a": 1 }, + { "px": [128,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1208], "a": 1 }, + { "px": [160,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1210], "a": 1 }, + { "px": [176,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1211], "a": 1 }, + { "px": [192,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1212], "a": 1 }, + { "px": [208,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1213], "a": 1 }, + { "px": [224,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1214], "a": 1 }, + { "px": [544,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1234], "a": 1 }, + { "px": [576,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1236], "a": 1 }, + { "px": [592,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1237], "a": 1 }, + { "px": [608,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1238], "a": 1 }, + { "px": [624,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1239], "a": 1 }, + { "px": [640,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1240], "a": 1 }, + { "px": [672,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1242], "a": 1 }, + { "px": [704,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1244], "a": 1 }, + { "px": [736,400], "src": [32,32], "f": 0, "t": 48, "d": [127,1246], "a": 1 }, + { "px": [0,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1248], "a": 1 }, + { "px": [16,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1249], "a": 1 }, + { "px": [32,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1250], "a": 1 }, + { "px": [48,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1251], "a": 1 }, + { "px": [64,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1252], "a": 1 }, + { "px": [80,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1253], "a": 1 }, + { "px": [96,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1254], "a": 1 }, + { "px": [112,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1255], "a": 1 }, + { "px": [144,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1257], "a": 1 }, + { "px": [176,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1259], "a": 1 }, + { "px": [192,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1260], "a": 1 }, + { "px": [208,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1261], "a": 1 }, + { "px": [224,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1262], "a": 1 }, + { "px": [240,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1263], "a": 1 }, + { "px": [528,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1281], "a": 1 }, + { "px": [560,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1283], "a": 1 }, + { "px": [576,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1284], "a": 1 }, + { "px": [592,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1285], "a": 1 }, + { "px": [608,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1286], "a": 1 }, + { "px": [624,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1287], "a": 1 }, + { "px": [640,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1288], "a": 1 }, + { "px": [656,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1289], "a": 1 }, + { "px": [688,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1291], "a": 1 }, + { "px": [720,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1293], "a": 1 }, + { "px": [736,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1294], "a": 1 }, + { "px": [752,416], "src": [32,32], "f": 0, "t": 48, "d": [127,1295], "a": 1 }, + { "px": [0,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1296], "a": 1 }, + { "px": [16,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1297], "a": 1 }, + { "px": [32,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1298], "a": 1 }, + { "px": [48,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1299], "a": 1 }, + { "px": [64,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1300], "a": 1 }, + { "px": [80,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1301], "a": 1 }, + { "px": [96,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1302], "a": 1 }, + { "px": [112,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1303], "a": 1 }, + { "px": [128,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1304], "a": 1 }, + { "px": [160,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1306], "a": 1 }, + { "px": [192,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1308], "a": 1 }, + { "px": [208,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1309], "a": 1 }, + { "px": [544,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1330], "a": 1 }, + { "px": [560,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1331], "a": 1 }, + { "px": [576,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1332], "a": 1 }, + { "px": [592,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1333], "a": 1 }, + { "px": [608,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1334], "a": 1 }, + { "px": [624,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1335], "a": 1 }, + { "px": [640,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1336], "a": 1 }, + { "px": [656,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1337], "a": 1 }, + { "px": [672,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1338], "a": 1 }, + { "px": [688,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1339], "a": 1 }, + { "px": [704,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1340], "a": 1 }, + { "px": [736,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1342], "a": 1 }, + { "px": [752,432], "src": [32,32], "f": 0, "t": 48, "d": [127,1343], "a": 1 }, + { "px": [0,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1344], "a": 1 }, + { "px": [16,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1345], "a": 1 }, + { "px": [48,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1347], "a": 1 }, + { "px": [80,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1349], "a": 1 }, + { "px": [112,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1351], "a": 1 }, + { "px": [144,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1353], "a": 1 }, + { "px": [160,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1354], "a": 1 }, + { "px": [176,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1355], "a": 1 }, + { "px": [192,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1356], "a": 1 }, + { "px": [208,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1357], "a": 1 }, + { "px": [528,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1377], "a": 1 }, + { "px": [560,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1379], "a": 1 }, + { "px": [576,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1380], "a": 1 }, + { "px": [592,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1381], "a": 1 }, + { "px": [624,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1383], "a": 1 }, + { "px": [640,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1384], "a": 1 }, + { "px": [656,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1385], "a": 1 }, + { "px": [672,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1386], "a": 1 }, + { "px": [688,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1387], "a": 1 }, + { "px": [720,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1389], "a": 1 }, + { "px": [752,448], "src": [32,32], "f": 0, "t": 48, "d": [127,1391], "a": 1 }, + { "px": [0,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1392], "a": 1 }, + { "px": [16,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1393], "a": 1 }, + { "px": [32,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1394], "a": 1 }, + { "px": [64,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1396], "a": 1 }, + { "px": [80,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1397], "a": 1 }, + { "px": [96,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1398], "a": 1 }, + { "px": [128,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1400], "a": 1 }, + { "px": [160,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1402], "a": 1 }, + { "px": [176,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1403], "a": 1 }, + { "px": [192,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1404], "a": 1 }, + { "px": [544,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1426], "a": 1 }, + { "px": [576,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1428], "a": 1 }, + { "px": [608,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1430], "a": 1 }, + { "px": [640,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1432], "a": 1 }, + { "px": [672,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1434], "a": 1 }, + { "px": [688,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1435], "a": 1 }, + { "px": [704,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1436], "a": 1 }, + { "px": [736,464], "src": [32,32], "f": 0, "t": 48, "d": [127,1438], "a": 1 }, + { "px": [0,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1440], "a": 1 }, + { "px": [16,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1441], "a": 1 }, + { "px": [48,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1443], "a": 1 }, + { "px": [64,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1444], "a": 1 }, + { "px": [80,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1445], "a": 1 }, + { "px": [112,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1447], "a": 1 }, + { "px": [144,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1449], "a": 1 }, + { "px": [176,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1451], "a": 1 }, + { "px": [192,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1452], "a": 1 }, + { "px": [208,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1453], "a": 1 }, + { "px": [528,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1473], "a": 1 }, + { "px": [560,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1475], "a": 1 }, + { "px": [576,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1476], "a": 1 }, + { "px": [592,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1477], "a": 1 }, + { "px": [624,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1479], "a": 1 }, + { "px": [656,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1481], "a": 1 }, + { "px": [672,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1482], "a": 1 }, + { "px": [688,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1483], "a": 1 }, + { "px": [704,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1484], "a": 1 }, + { "px": [720,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1485], "a": 1 }, + { "px": [752,480], "src": [32,32], "f": 0, "t": 48, "d": [127,1487], "a": 1 }, + { "px": [0,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1488], "a": 1 }, + { "px": [16,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1489], "a": 1 }, + { "px": [32,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1490], "a": 1 }, + { "px": [48,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1491], "a": 1 }, + { "px": [64,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1492], "a": 1 }, + { "px": [80,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1493], "a": 1 }, + { "px": [96,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1494], "a": 1 }, + { "px": [112,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1495], "a": 1 }, + { "px": [128,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1496], "a": 1 }, + { "px": [144,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1497], "a": 1 }, + { "px": [160,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1498], "a": 1 }, + { "px": [176,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1499], "a": 1 }, + { "px": [192,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1500], "a": 1 }, + { "px": [208,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1501], "a": 1 }, + { "px": [544,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1522], "a": 1 }, + { "px": [560,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1523], "a": 1 }, + { "px": [576,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1524], "a": 1 }, + { "px": [592,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1525], "a": 1 }, + { "px": [608,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1526], "a": 1 }, + { "px": [640,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1528], "a": 1 }, + { "px": [656,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1529], "a": 1 }, + { "px": [672,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1530], "a": 1 }, + { "px": [688,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1531], "a": 1 }, + { "px": [704,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1532], "a": 1 }, + { "px": [736,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1534], "a": 1 }, + { "px": [752,496], "src": [32,32], "f": 0, "t": 48, "d": [127,1535], "a": 1 }, + { "px": [0,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1536], "a": 1 }, + { "px": [16,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1537], "a": 1 }, + { "px": [48,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1539], "a": 1 }, + { "px": [64,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1540], "a": 1 }, + { "px": [80,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1541], "a": 1 }, + { "px": [96,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1542], "a": 1 }, + { "px": [112,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1543], "a": 1 }, + { "px": [144,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1545], "a": 1 }, + { "px": [160,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1546], "a": 1 }, + { "px": [176,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1547], "a": 1 }, + { "px": [192,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1548], "a": 1 }, + { "px": [208,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1549], "a": 1 }, + { "px": [528,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1569], "a": 1 }, + { "px": [544,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1570], "a": 1 }, + { "px": [560,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1571], "a": 1 }, + { "px": [576,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1572], "a": 1 }, + { "px": [592,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1573], "a": 1 }, + { "px": [624,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1575], "a": 1 }, + { "px": [640,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1576], "a": 1 }, + { "px": [656,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1577], "a": 1 }, + { "px": [672,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1578], "a": 1 }, + { "px": [688,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1579], "a": 1 }, + { "px": [704,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1580], "a": 1 }, + { "px": [720,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1581], "a": 1 }, + { "px": [736,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1582], "a": 1 }, + { "px": [752,512], "src": [32,32], "f": 0, "t": 48, "d": [127,1583], "a": 1 }, + { "px": [0,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1584], "a": 1 }, + { "px": [16,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1585], "a": 1 }, + { "px": [32,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1586], "a": 1 }, + { "px": [48,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1587], "a": 1 }, + { "px": [64,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1588], "a": 1 }, + { "px": [80,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1589], "a": 1 }, + { "px": [96,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1590], "a": 1 }, + { "px": [112,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1591], "a": 1 }, + { "px": [128,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1592], "a": 1 }, + { "px": [160,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1594], "a": 1 }, + { "px": [192,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1596], "a": 1 }, + { "px": [528,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1617], "a": 1 }, + { "px": [544,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1618], "a": 1 }, + { "px": [560,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1619], "a": 1 }, + { "px": [576,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1620], "a": 1 }, + { "px": [592,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1621], "a": 1 }, + { "px": [608,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1622], "a": 1 }, + { "px": [640,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1624], "a": 1 }, + { "px": [656,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1625], "a": 1 }, + { "px": [672,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1626], "a": 1 }, + { "px": [688,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1627], "a": 1 }, + { "px": [704,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1628], "a": 1 }, + { "px": [720,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1629], "a": 1 }, + { "px": [736,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1630], "a": 1 }, + { "px": [752,528], "src": [32,32], "f": 0, "t": 48, "d": [127,1631], "a": 1 }, + { "px": [16,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1633], "a": 1 }, + { "px": [48,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1635], "a": 1 }, + { "px": [64,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1636], "a": 1 }, + { "px": [80,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1637], "a": 1 }, + { "px": [96,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1638], "a": 1 }, + { "px": [112,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1639], "a": 1 }, + { "px": [144,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1641], "a": 1 }, + { "px": [176,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1643], "a": 1 }, + { "px": [208,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1645], "a": 1 }, + { "px": [528,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1665], "a": 1 }, + { "px": [544,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1666], "a": 1 }, + { "px": [560,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1667], "a": 1 }, + { "px": [592,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1669], "a": 1 }, + { "px": [608,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1670], "a": 1 }, + { "px": [624,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1671], "a": 1 }, + { "px": [640,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1672], "a": 1 }, + { "px": [656,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1673], "a": 1 }, + { "px": [672,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1674], "a": 1 }, + { "px": [688,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1675], "a": 1 }, + { "px": [704,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1676], "a": 1 }, + { "px": [720,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1677], "a": 1 }, + { "px": [752,544], "src": [32,32], "f": 0, "t": 48, "d": [127,1679], "a": 1 }, + { "px": [0,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1680], "a": 1 }, + { "px": [32,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1682], "a": 1 }, + { "px": [48,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1683], "a": 1 }, + { "px": [64,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1684], "a": 1 }, + { "px": [96,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1686], "a": 1 }, + { "px": [128,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1688], "a": 1 }, + { "px": [160,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1690], "a": 1 }, + { "px": [192,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1692], "a": 1 }, + { "px": [528,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1713], "a": 1 }, + { "px": [544,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1714], "a": 1 }, + { "px": [576,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1716], "a": 1 }, + { "px": [592,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1717], "a": 1 }, + { "px": [608,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1718], "a": 1 }, + { "px": [624,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1719], "a": 1 }, + { "px": [640,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1720], "a": 1 }, + { "px": [656,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1721], "a": 1 }, + { "px": [672,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1722], "a": 1 }, + { "px": [688,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1723], "a": 1 }, + { "px": [704,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1724], "a": 1 }, + { "px": [720,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1725], "a": 1 }, + { "px": [736,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1726], "a": 1 }, + { "px": [752,560], "src": [32,32], "f": 0, "t": 48, "d": [127,1727], "a": 1 }, + { "px": [0,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1728], "a": 1 }, + { "px": [16,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1729], "a": 1 }, + { "px": [32,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1730], "a": 1 }, + { "px": [48,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1731], "a": 1 }, + { "px": [64,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1732], "a": 1 }, + { "px": [80,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1733], "a": 1 }, + { "px": [96,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1734], "a": 1 }, + { "px": [112,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1735], "a": 1 }, + { "px": [144,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1737], "a": 1 }, + { "px": [160,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1738], "a": 1 }, + { "px": [176,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1739], "a": 1 }, + { "px": [208,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1741], "a": 1 }, + { "px": [240,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1743], "a": 1 }, + { "px": [256,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1744], "a": 1 }, + { "px": [272,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1745], "a": 1 }, + { "px": [304,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1747], "a": 1 }, + { "px": [336,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1749], "a": 1 }, + { "px": [352,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1750], "a": 1 }, + { "px": [368,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1751], "a": 1 }, + { "px": [384,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1752], "a": 1 }, + { "px": [400,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1753], "a": 1 }, + { "px": [416,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1754], "a": 1 }, + { "px": [432,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1755], "a": 1 }, + { "px": [448,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1756], "a": 1 }, + { "px": [464,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1757], "a": 1 }, + { "px": [480,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1758], "a": 1 }, + { "px": [496,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1759], "a": 1 }, + { "px": [512,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1760], "a": 1 }, + { "px": [528,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1761], "a": 1 }, + { "px": [544,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1762], "a": 1 }, + { "px": [560,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1763], "a": 1 }, + { "px": [576,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1764], "a": 1 }, + { "px": [592,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1765], "a": 1 }, + { "px": [624,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1767], "a": 1 }, + { "px": [640,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1768], "a": 1 }, + { "px": [656,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1769], "a": 1 }, + { "px": [672,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1770], "a": 1 }, + { "px": [688,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1771], "a": 1 }, + { "px": [704,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1772], "a": 1 }, + { "px": [720,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1773], "a": 1 }, + { "px": [736,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1774], "a": 1 }, + { "px": [752,576], "src": [32,32], "f": 0, "t": 48, "d": [127,1775], "a": 1 }, + { "px": [0,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1776], "a": 1 }, + { "px": [32,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1778], "a": 1 }, + { "px": [48,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1779], "a": 1 }, + { "px": [64,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1780], "a": 1 }, + { "px": [96,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1782], "a": 1 }, + { "px": [112,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1783], "a": 1 }, + { "px": [128,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1784], "a": 1 }, + { "px": [144,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1785], "a": 1 }, + { "px": [160,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1786], "a": 1 }, + { "px": [176,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1787], "a": 1 }, + { "px": [192,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1788], "a": 1 }, + { "px": [224,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1790], "a": 1 }, + { "px": [240,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1791], "a": 1 }, + { "px": [256,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1792], "a": 1 }, + { "px": [272,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1793], "a": 1 }, + { "px": [288,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1794], "a": 1 }, + { "px": [320,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1796], "a": 1 }, + { "px": [352,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1798], "a": 1 }, + { "px": [368,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1799], "a": 1 }, + { "px": [384,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1800], "a": 1 }, + { "px": [400,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1801], "a": 1 }, + { "px": [416,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1802], "a": 1 }, + { "px": [432,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1803], "a": 1 }, + { "px": [448,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1804], "a": 1 }, + { "px": [464,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1805], "a": 1 }, + { "px": [480,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1806], "a": 1 }, + { "px": [496,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1807], "a": 1 }, + { "px": [512,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1808], "a": 1 }, + { "px": [528,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1809], "a": 1 }, + { "px": [544,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1810], "a": 1 }, + { "px": [560,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1811], "a": 1 }, + { "px": [576,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1812], "a": 1 }, + { "px": [592,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1813], "a": 1 }, + { "px": [608,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1814], "a": 1 }, + { "px": [624,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1815], "a": 1 }, + { "px": [640,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1816], "a": 1 }, + { "px": [656,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1817], "a": 1 }, + { "px": [672,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1818], "a": 1 }, + { "px": [688,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1819], "a": 1 }, + { "px": [704,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1820], "a": 1 }, + { "px": [720,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1821], "a": 1 }, + { "px": [736,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1822], "a": 1 }, + { "px": [752,592], "src": [32,32], "f": 0, "t": 48, "d": [127,1823], "a": 1 }, + { "px": [16,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1825], "a": 1 }, + { "px": [48,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1827], "a": 1 }, + { "px": [80,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1829], "a": 1 }, + { "px": [96,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1830], "a": 1 }, + { "px": [112,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1831], "a": 1 }, + { "px": [128,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1832], "a": 1 }, + { "px": [144,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1833], "a": 1 }, + { "px": [160,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1834], "a": 1 }, + { "px": [176,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1835], "a": 1 }, + { "px": [192,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1836], "a": 1 }, + { "px": [208,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1837], "a": 1 }, + { "px": [240,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1839], "a": 1 }, + { "px": [272,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1841], "a": 1 }, + { "px": [304,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1843], "a": 1 }, + { "px": [320,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1844], "a": 1 }, + { "px": [336,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1845], "a": 1 }, + { "px": [352,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1846], "a": 1 }, + { "px": [368,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1847], "a": 1 }, + { "px": [384,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1848], "a": 1 }, + { "px": [400,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1849], "a": 1 }, + { "px": [416,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1850], "a": 1 }, + { "px": [432,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1851], "a": 1 }, + { "px": [464,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1853], "a": 1 }, + { "px": [480,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1854], "a": 1 }, + { "px": [496,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1855], "a": 1 }, + { "px": [512,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1856], "a": 1 }, + { "px": [528,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1857], "a": 1 }, + { "px": [560,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1859], "a": 1 }, + { "px": [576,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1860], "a": 1 }, + { "px": [592,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1861], "a": 1 }, + { "px": [608,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1862], "a": 1 }, + { "px": [624,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1863], "a": 1 }, + { "px": [640,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1864], "a": 1 }, + { "px": [656,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1865], "a": 1 }, + { "px": [688,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1867], "a": 1 }, + { "px": [720,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1869], "a": 1 }, + { "px": [736,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1870], "a": 1 }, + { "px": [752,608], "src": [32,32], "f": 0, "t": 48, "d": [127,1871], "a": 1 }, + { "px": [0,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1872], "a": 1 }, + { "px": [32,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1874], "a": 1 }, + { "px": [64,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1876], "a": 1 }, + { "px": [96,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1878], "a": 1 }, + { "px": [112,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1879], "a": 1 }, + { "px": [128,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1880], "a": 1 }, + { "px": [144,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1881], "a": 1 }, + { "px": [160,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1882], "a": 1 }, + { "px": [176,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1883], "a": 1 }, + { "px": [192,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1884], "a": 1 }, + { "px": [208,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1885], "a": 1 }, + { "px": [224,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1886], "a": 1 }, + { "px": [256,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1888], "a": 1 }, + { "px": [288,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1890], "a": 1 }, + { "px": [320,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1892], "a": 1 }, + { "px": [336,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1893], "a": 1 }, + { "px": [352,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1894], "a": 1 }, + { "px": [368,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1895], "a": 1 }, + { "px": [384,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1896], "a": 1 }, + { "px": [416,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1898], "a": 1 }, + { "px": [448,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1900], "a": 1 }, + { "px": [464,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1901], "a": 1 }, + { "px": [480,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1902], "a": 1 }, + { "px": [496,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1903], "a": 1 }, + { "px": [512,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1904], "a": 1 }, + { "px": [544,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1906], "a": 1 }, + { "px": [560,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1907], "a": 1 }, + { "px": [576,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1908], "a": 1 }, + { "px": [592,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1909], "a": 1 }, + { "px": [608,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1910], "a": 1 }, + { "px": [624,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1911], "a": 1 }, + { "px": [640,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1912], "a": 1 }, + { "px": [672,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1914], "a": 1 }, + { "px": [704,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1916], "a": 1 }, + { "px": [720,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1917], "a": 1 }, + { "px": [736,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1918], "a": 1 }, + { "px": [752,624], "src": [32,32], "f": 0, "t": 48, "d": [127,1919], "a": 1 }, + { "px": [16,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1921], "a": 1 }, + { "px": [48,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1923], "a": 1 }, + { "px": [64,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1924], "a": 1 }, + { "px": [80,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1925], "a": 1 }, + { "px": [112,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1927], "a": 1 }, + { "px": [128,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1928], "a": 1 }, + { "px": [144,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1929], "a": 1 }, + { "px": [176,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1931], "a": 1 }, + { "px": [208,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1933], "a": 1 }, + { "px": [224,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1934], "a": 1 }, + { "px": [240,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1935], "a": 1 }, + { "px": [272,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1937], "a": 1 }, + { "px": [304,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1939], "a": 1 }, + { "px": [336,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1941], "a": 1 }, + { "px": [352,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1942], "a": 1 }, + { "px": [368,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1943], "a": 1 }, + { "px": [384,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1944], "a": 1 }, + { "px": [400,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1945], "a": 1 }, + { "px": [432,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1947], "a": 1 }, + { "px": [464,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1949], "a": 1 }, + { "px": [480,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1950], "a": 1 }, + { "px": [496,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1951], "a": 1 }, + { "px": [512,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1952], "a": 1 }, + { "px": [528,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1953], "a": 1 }, + { "px": [544,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1954], "a": 1 }, + { "px": [560,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1955], "a": 1 }, + { "px": [576,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1956], "a": 1 }, + { "px": [592,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1957], "a": 1 }, + { "px": [608,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1958], "a": 1 }, + { "px": [624,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1959], "a": 1 }, + { "px": [656,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1961], "a": 1 }, + { "px": [672,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1962], "a": 1 }, + { "px": [688,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1963], "a": 1 }, + { "px": [720,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1965], "a": 1 }, + { "px": [736,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1966], "a": 1 }, + { "px": [752,640], "src": [32,32], "f": 0, "t": 48, "d": [127,1967], "a": 1 }, + { "px": [0,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1968], "a": 1 }, + { "px": [16,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1969], "a": 1 }, + { "px": [32,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1970], "a": 1 }, + { "px": [48,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1971], "a": 1 }, + { "px": [64,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1972], "a": 1 }, + { "px": [80,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1973], "a": 1 }, + { "px": [96,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1974], "a": 1 }, + { "px": [112,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1975], "a": 1 }, + { "px": [128,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1976], "a": 1 }, + { "px": [144,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1977], "a": 1 }, + { "px": [160,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1978], "a": 1 }, + { "px": [192,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1980], "a": 1 }, + { "px": [224,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1982], "a": 1 }, + { "px": [256,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1984], "a": 1 }, + { "px": [272,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1985], "a": 1 }, + { "px": [288,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1986], "a": 1 }, + { "px": [320,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1988], "a": 1 }, + { "px": [336,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1989], "a": 1 }, + { "px": [352,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1990], "a": 1 }, + { "px": [368,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1991], "a": 1 }, + { "px": [384,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1992], "a": 1 }, + { "px": [400,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1993], "a": 1 }, + { "px": [416,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1994], "a": 1 }, + { "px": [448,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1996], "a": 1 }, + { "px": [464,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1997], "a": 1 }, + { "px": [480,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1998], "a": 1 }, + { "px": [496,656], "src": [32,32], "f": 0, "t": 48, "d": [127,1999], "a": 1 }, + { "px": [512,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2000], "a": 1 }, + { "px": [528,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2001], "a": 1 }, + { "px": [544,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2002], "a": 1 }, + { "px": [560,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2003], "a": 1 }, + { "px": [576,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2004], "a": 1 }, + { "px": [592,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2005], "a": 1 }, + { "px": [608,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2006], "a": 1 }, + { "px": [624,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2007], "a": 1 }, + { "px": [640,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2008], "a": 1 }, + { "px": [672,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2010], "a": 1 }, + { "px": [688,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2011], "a": 1 }, + { "px": [704,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2012], "a": 1 }, + { "px": [720,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2013], "a": 1 }, + { "px": [736,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2014], "a": 1 }, + { "px": [752,656], "src": [32,32], "f": 0, "t": 48, "d": [127,2015], "a": 1 }, + { "px": [0,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2016], "a": 1 }, + { "px": [16,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2017], "a": 1 }, + { "px": [48,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2019], "a": 1 }, + { "px": [64,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2020], "a": 1 }, + { "px": [80,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2021], "a": 1 }, + { "px": [96,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2022], "a": 1 }, + { "px": [112,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2023], "a": 1 }, + { "px": [128,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2024], "a": 1 }, + { "px": [144,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2025], "a": 1 }, + { "px": [160,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2026], "a": 1 }, + { "px": [176,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2027], "a": 1 }, + { "px": [192,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2028], "a": 1 }, + { "px": [208,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2029], "a": 1 }, + { "px": [240,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2031], "a": 1 }, + { "px": [256,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2032], "a": 1 }, + { "px": [272,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2033], "a": 1 }, + { "px": [304,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2035], "a": 1 }, + { "px": [320,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2036], "a": 1 }, + { "px": [336,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2037], "a": 1 }, + { "px": [352,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2038], "a": 1 }, + { "px": [368,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2039], "a": 1 }, + { "px": [400,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2041], "a": 1 }, + { "px": [432,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2043], "a": 1 }, + { "px": [448,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2044], "a": 1 }, + { "px": [464,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2045], "a": 1 }, + { "px": [480,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2046], "a": 1 }, + { "px": [496,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2047], "a": 1 }, + { "px": [512,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2048], "a": 1 }, + { "px": [528,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2049], "a": 1 }, + { "px": [560,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2051], "a": 1 }, + { "px": [576,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2052], "a": 1 }, + { "px": [592,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2053], "a": 1 }, + { "px": [608,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2054], "a": 1 }, + { "px": [624,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2055], "a": 1 }, + { "px": [640,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2056], "a": 1 }, + { "px": [656,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2057], "a": 1 }, + { "px": [688,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2059], "a": 1 }, + { "px": [704,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2060], "a": 1 }, + { "px": [720,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2061], "a": 1 }, + { "px": [736,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2062], "a": 1 }, + { "px": [752,672], "src": [32,32], "f": 0, "t": 48, "d": [127,2063], "a": 1 }, + { "px": [0,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2064], "a": 1 }, + { "px": [16,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2065], "a": 1 }, + { "px": [32,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2066], "a": 1 }, + { "px": [48,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2067], "a": 1 }, + { "px": [64,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2068], "a": 1 }, + { "px": [96,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2070], "a": 1 }, + { "px": [112,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2071], "a": 1 }, + { "px": [128,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2072], "a": 1 }, + { "px": [144,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2073], "a": 1 }, + { "px": [160,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2074], "a": 1 }, + { "px": [176,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2075], "a": 1 }, + { "px": [192,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2076], "a": 1 }, + { "px": [208,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2077], "a": 1 }, + { "px": [224,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2078], "a": 1 }, + { "px": [256,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2080], "a": 1 }, + { "px": [288,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2082], "a": 1 }, + { "px": [304,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2083], "a": 1 }, + { "px": [320,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2084], "a": 1 }, + { "px": [352,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2086], "a": 1 }, + { "px": [384,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2088], "a": 1 }, + { "px": [416,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2090], "a": 1 }, + { "px": [432,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2091], "a": 1 }, + { "px": [448,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2092], "a": 1 }, + { "px": [480,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2094], "a": 1 }, + { "px": [512,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2096], "a": 1 }, + { "px": [544,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2098], "a": 1 }, + { "px": [560,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2099], "a": 1 }, + { "px": [576,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2100], "a": 1 }, + { "px": [592,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2101], "a": 1 }, + { "px": [608,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2102], "a": 1 }, + { "px": [640,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2104], "a": 1 }, + { "px": [656,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2105], "a": 1 }, + { "px": [672,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2106], "a": 1 }, + { "px": [688,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2107], "a": 1 }, + { "px": [704,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2108], "a": 1 }, + { "px": [720,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2109], "a": 1 }, + { "px": [736,688], "src": [32,32], "f": 0, "t": 48, "d": [127,2110], "a": 1 }, + { "px": [0,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2112], "a": 1 }, + { "px": [16,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2113], "a": 1 }, + { "px": [32,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2114], "a": 1 }, + { "px": [48,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2115], "a": 1 }, + { "px": [64,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2116], "a": 1 }, + { "px": [80,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2117], "a": 1 }, + { "px": [96,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2118], "a": 1 }, + { "px": [112,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2119], "a": 1 }, + { "px": [128,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2120], "a": 1 }, + { "px": [144,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2121], "a": 1 }, + { "px": [160,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2122], "a": 1 }, + { "px": [176,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2123], "a": 1 }, + { "px": [208,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2125], "a": 1 }, + { "px": [240,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2127], "a": 1 }, + { "px": [272,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2129], "a": 1 }, + { "px": [304,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2131], "a": 1 }, + { "px": [336,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2133], "a": 1 }, + { "px": [368,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2135], "a": 1 }, + { "px": [400,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2137], "a": 1 }, + { "px": [432,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2139], "a": 1 }, + { "px": [464,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2141], "a": 1 }, + { "px": [480,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2142], "a": 1 }, + { "px": [496,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2143], "a": 1 }, + { "px": [512,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2144], "a": 1 }, + { "px": [528,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2145], "a": 1 }, + { "px": [544,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2146], "a": 1 }, + { "px": [560,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2147], "a": 1 }, + { "px": [576,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2148], "a": 1 }, + { "px": [592,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2149], "a": 1 }, + { "px": [608,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2150], "a": 1 }, + { "px": [624,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2151], "a": 1 }, + { "px": [640,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2152], "a": 1 }, + { "px": [656,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2153], "a": 1 }, + { "px": [672,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2154], "a": 1 }, + { "px": [688,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2155], "a": 1 }, + { "px": [704,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2156], "a": 1 }, + { "px": [720,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2157], "a": 1 }, + { "px": [736,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2158], "a": 1 }, + { "px": [752,704], "src": [32,32], "f": 0, "t": 48, "d": [127,2159], "a": 1 }, + { "px": [0,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2160], "a": 1 }, + { "px": [32,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2162], "a": 1 }, + { "px": [64,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2164], "a": 1 }, + { "px": [96,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2166], "a": 1 }, + { "px": [112,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2167], "a": 1 }, + { "px": [128,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2168], "a": 1 }, + { "px": [144,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2169], "a": 1 }, + { "px": [160,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2170], "a": 1 }, + { "px": [192,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2172], "a": 1 }, + { "px": [224,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2174], "a": 1 }, + { "px": [256,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2176], "a": 1 }, + { "px": [272,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2177], "a": 1 }, + { "px": [288,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2178], "a": 1 }, + { "px": [304,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2179], "a": 1 }, + { "px": [320,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2180], "a": 1 }, + { "px": [352,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2182], "a": 1 }, + { "px": [384,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2184], "a": 1 }, + { "px": [400,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2185], "a": 1 }, + { "px": [416,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2186], "a": 1 }, + { "px": [432,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2187], "a": 1 }, + { "px": [448,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2188], "a": 1 }, + { "px": [464,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2189], "a": 1 }, + { "px": [480,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2190], "a": 1 }, + { "px": [512,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2192], "a": 1 }, + { "px": [544,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2194], "a": 1 }, + { "px": [576,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2196], "a": 1 }, + { "px": [592,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2197], "a": 1 }, + { "px": [608,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2198], "a": 1 }, + { "px": [640,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2200], "a": 1 }, + { "px": [656,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2201], "a": 1 }, + { "px": [672,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2202], "a": 1 }, + { "px": [688,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2203], "a": 1 }, + { "px": [704,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2204], "a": 1 }, + { "px": [736,720], "src": [32,32], "f": 0, "t": 48, "d": [127,2206], "a": 1 }, + { "px": [0,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2208], "a": 1 }, + { "px": [16,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2209], "a": 1 }, + { "px": [48,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2211], "a": 1 }, + { "px": [64,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2212], "a": 1 }, + { "px": [80,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2213], "a": 1 }, + { "px": [96,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2214], "a": 1 }, + { "px": [112,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2215], "a": 1 }, + { "px": [128,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2216], "a": 1 }, + { "px": [144,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2217], "a": 1 }, + { "px": [160,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2218], "a": 1 }, + { "px": [176,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2219], "a": 1 }, + { "px": [208,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2221], "a": 1 }, + { "px": [224,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2222], "a": 1 }, + { "px": [240,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2223], "a": 1 }, + { "px": [256,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2224], "a": 1 }, + { "px": [272,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2225], "a": 1 }, + { "px": [288,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2226], "a": 1 }, + { "px": [304,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2227], "a": 1 }, + { "px": [320,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2228], "a": 1 }, + { "px": [336,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2229], "a": 1 }, + { "px": [352,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2230], "a": 1 }, + { "px": [368,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2231], "a": 1 }, + { "px": [384,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2232], "a": 1 }, + { "px": [400,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2233], "a": 1 }, + { "px": [416,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2234], "a": 1 }, + { "px": [432,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2235], "a": 1 }, + { "px": [448,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2236], "a": 1 }, + { "px": [464,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2237], "a": 1 }, + { "px": [480,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2238], "a": 1 }, + { "px": [496,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2239], "a": 1 }, + { "px": [528,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2241], "a": 1 }, + { "px": [560,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2243], "a": 1 }, + { "px": [576,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2244], "a": 1 }, + { "px": [592,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2245], "a": 1 }, + { "px": [608,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2246], "a": 1 }, + { "px": [624,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2247], "a": 1 }, + { "px": [640,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2248], "a": 1 }, + { "px": [656,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2249], "a": 1 }, + { "px": [672,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2250], "a": 1 }, + { "px": [688,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2251], "a": 1 }, + { "px": [704,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2252], "a": 1 }, + { "px": [720,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2253], "a": 1 }, + { "px": [736,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2254], "a": 1 }, + { "px": [752,736], "src": [32,32], "f": 0, "t": 48, "d": [127,2255], "a": 1 }, + { "px": [0,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2256], "a": 1 }, + { "px": [16,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2257], "a": 1 }, + { "px": [32,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2258], "a": 1 }, + { "px": [48,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2259], "a": 1 }, + { "px": [64,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2260], "a": 1 }, + { "px": [80,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2261], "a": 1 }, + { "px": [96,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2262], "a": 1 }, + { "px": [112,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2263], "a": 1 }, + { "px": [128,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2264], "a": 1 }, + { "px": [144,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2265], "a": 1 }, + { "px": [160,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2266], "a": 1 }, + { "px": [176,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2267], "a": 1 }, + { "px": [192,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2268], "a": 1 }, + { "px": [208,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2269], "a": 1 }, + { "px": [224,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2270], "a": 1 }, + { "px": [240,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2271], "a": 1 }, + { "px": [256,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2272], "a": 1 }, + { "px": [272,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2273], "a": 1 }, + { "px": [288,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2274], "a": 1 }, + { "px": [304,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2275], "a": 1 }, + { "px": [320,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2276], "a": 1 }, + { "px": [336,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2277], "a": 1 }, + { "px": [352,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2278], "a": 1 }, + { "px": [368,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2279], "a": 1 }, + { "px": [384,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2280], "a": 1 }, + { "px": [400,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2281], "a": 1 }, + { "px": [416,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2282], "a": 1 }, + { "px": [432,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2283], "a": 1 }, + { "px": [448,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2284], "a": 1 }, + { "px": [464,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2285], "a": 1 }, + { "px": [480,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2286], "a": 1 }, + { "px": [512,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2288], "a": 1 }, + { "px": [544,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2290], "a": 1 }, + { "px": [576,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2292], "a": 1 }, + { "px": [608,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2294], "a": 1 }, + { "px": [624,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2295], "a": 1 }, + { "px": [640,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2296], "a": 1 }, + { "px": [656,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2297], "a": 1 }, + { "px": [672,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2298], "a": 1 }, + { "px": [704,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2300], "a": 1 }, + { "px": [736,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2302], "a": 1 }, + { "px": [752,752], "src": [32,32], "f": 0, "t": 48, "d": [127,2303], "a": 1 }, + { "px": [32,0], "src": [96,96], "f": 0, "t": 144, "d": [126,2], "a": 1 }, + { "px": [64,0], "src": [96,96], "f": 0, "t": 144, "d": [126,4], "a": 1 }, + { "px": [224,0], "src": [96,96], "f": 0, "t": 144, "d": [126,14], "a": 1 }, + { "px": [256,0], "src": [96,96], "f": 0, "t": 144, "d": [126,16], "a": 1 }, + { "px": [320,0], "src": [96,96], "f": 0, "t": 144, "d": [126,20], "a": 1 }, + { "px": [416,0], "src": [64,96], "f": 0, "t": 142, "d": [126,26], "a": 1 }, + { "px": [480,0], "src": [96,96], "f": 0, "t": 144, "d": [126,30], "a": 1 }, + { "px": [576,0], "src": [96,96], "f": 0, "t": 144, "d": [126,36], "a": 1 }, + { "px": [672,0], "src": [96,96], "f": 0, "t": 144, "d": [126,42], "a": 1 }, + { "px": [48,16], "src": [64,96], "f": 0, "t": 142, "d": [126,51], "a": 1 }, + { "px": [144,16], "src": [96,96], "f": 0, "t": 144, "d": [126,57], "a": 1 }, + { "px": [208,16], "src": [64,96], "f": 0, "t": 142, "d": [126,61], "a": 1 }, + { "px": [272,16], "src": [96,96], "f": 0, "t": 144, "d": [126,65], "a": 1 }, + { "px": [400,16], "src": [96,96], "f": 0, "t": 144, "d": [126,73], "a": 1 }, + { "px": [496,16], "src": [96,96], "f": 0, "t": 144, "d": [126,79], "a": 1 }, + { "px": [560,16], "src": [96,96], "f": 0, "t": 144, "d": [126,83], "a": 1 }, + { "px": [624,16], "src": [96,96], "f": 0, "t": 144, "d": [126,87], "a": 1 }, + { "px": [688,16], "src": [96,96], "f": 0, "t": 144, "d": [126,91], "a": 1 }, + { "px": [720,16], "src": [64,96], "f": 0, "t": 142, "d": [126,93], "a": 1 }, + { "px": [64,32], "src": [64,96], "f": 0, "t": 142, "d": [126,100], "a": 1 }, + { "px": [160,32], "src": [64,96], "f": 0, "t": 142, "d": [126,106], "a": 1 }, + { "px": [192,32], "src": [64,96], "f": 0, "t": 142, "d": [126,108], "a": 1 }, + { "px": [256,32], "src": [96,96], "f": 0, "t": 144, "d": [126,112], "a": 1 }, + { "px": [288,32], "src": [64,96], "f": 0, "t": 142, "d": [126,114], "a": 1 }, + { "px": [512,32], "src": [64,96], "f": 0, "t": 142, "d": [126,128], "a": 1 }, + { "px": [576,32], "src": [64,96], "f": 0, "t": 142, "d": [126,132], "a": 1 }, + { "px": [608,32], "src": [96,96], "f": 0, "t": 144, "d": [126,134], "a": 1 }, + { "px": [640,32], "src": [64,96], "f": 0, "t": 142, "d": [126,136], "a": 1 }, + { "px": [672,32], "src": [64,96], "f": 0, "t": 142, "d": [126,138], "a": 1 }, + { "px": [704,32], "src": [64,96], "f": 0, "t": 142, "d": [126,140], "a": 1 }, + { "px": [16,48], "src": [96,96], "f": 0, "t": 144, "d": [126,145], "a": 1 }, + { "px": [48,48], "src": [64,96], "f": 0, "t": 142, "d": [126,147], "a": 1 }, + { "px": [176,48], "src": [64,96], "f": 0, "t": 142, "d": [126,155], "a": 1 }, + { "px": [240,48], "src": [96,96], "f": 0, "t": 144, "d": [126,159], "a": 1 }, + { "px": [560,48], "src": [96,96], "f": 0, "t": 144, "d": [126,179], "a": 1 }, + { "px": [656,48], "src": [64,96], "f": 0, "t": 142, "d": [126,185], "a": 1 }, + { "px": [688,48], "src": [96,96], "f": 0, "t": 144, "d": [126,187], "a": 1 }, + { "px": [720,48], "src": [64,96], "f": 0, "t": 142, "d": [126,189], "a": 1 }, + { "px": [32,64], "src": [96,96], "f": 0, "t": 144, "d": [126,194], "a": 1 }, + { "px": [96,64], "src": [64,96], "f": 0, "t": 142, "d": [126,198], "a": 1 }, + { "px": [128,64], "src": [64,96], "f": 0, "t": 142, "d": [126,200], "a": 1 }, + { "px": [160,64], "src": [64,96], "f": 0, "t": 142, "d": [126,202], "a": 1 }, + { "px": [192,64], "src": [96,96], "f": 0, "t": 144, "d": [126,204], "a": 1 }, + { "px": [256,64], "src": [64,96], "f": 0, "t": 142, "d": [126,208], "a": 1 }, + { "px": [608,64], "src": [96,96], "f": 0, "t": 144, "d": [126,230], "a": 1 }, + { "px": [80,80], "src": [96,96], "f": 0, "t": 144, "d": [126,245], "a": 1 }, + { "px": [112,80], "src": [64,96], "f": 0, "t": 142, "d": [126,247], "a": 1 }, + { "px": [176,80], "src": [96,96], "f": 0, "t": 144, "d": [126,251], "a": 1 }, + { "px": [240,80], "src": [64,96], "f": 0, "t": 142, "d": [126,255], "a": 1 }, + { "px": [624,80], "src": [96,96], "f": 0, "t": 144, "d": [126,279], "a": 1 }, + { "px": [656,80], "src": [64,96], "f": 0, "t": 142, "d": [126,281], "a": 1 }, + { "px": [688,80], "src": [96,96], "f": 0, "t": 144, "d": [126,283], "a": 1 }, + { "px": [720,80], "src": [64,96], "f": 0, "t": 142, "d": [126,285], "a": 1 }, + { "px": [96,96], "src": [96,96], "f": 0, "t": 144, "d": [126,294], "a": 1 }, + { "px": [192,96], "src": [64,96], "f": 0, "t": 142, "d": [126,300], "a": 1 }, + { "px": [608,96], "src": [96,96], "f": 0, "t": 144, "d": [126,326], "a": 1 }, + { "px": [144,112], "src": [64,96], "f": 0, "t": 142, "d": [126,345], "a": 1 }, + { "px": [560,112], "src": [96,96], "f": 0, "t": 144, "d": [126,371], "a": 1 }, + { "px": [592,112], "src": [64,96], "f": 0, "t": 142, "d": [126,373], "a": 1 }, + { "px": [656,112], "src": [64,96], "f": 0, "t": 142, "d": [126,377], "a": 1 }, + { "px": [688,112], "src": [64,96], "f": 0, "t": 142, "d": [126,379], "a": 1 }, + { "px": [0,128], "src": [96,96], "f": 0, "t": 144, "d": [126,384], "a": 1 }, + { "px": [32,128], "src": [64,96], "f": 0, "t": 142, "d": [126,386], "a": 1 }, + { "px": [128,128], "src": [96,96], "f": 0, "t": 144, "d": [126,392], "a": 1 }, + { "px": [160,128], "src": [64,96], "f": 0, "t": 142, "d": [126,394], "a": 1 }, + { "px": [192,128], "src": [96,96], "f": 0, "t": 144, "d": [126,396], "a": 1 }, + { "px": [544,128], "src": [96,96], "f": 0, "t": 144, "d": [126,418], "a": 1 }, + { "px": [576,128], "src": [96,96], "f": 0, "t": 144, "d": [126,420], "a": 1 }, + { "px": [640,128], "src": [64,96], "f": 0, "t": 142, "d": [126,424], "a": 1 }, + { "px": [704,128], "src": [64,96], "f": 0, "t": 142, "d": [126,428], "a": 1 }, + { "px": [48,144], "src": [64,96], "f": 0, "t": 142, "d": [126,435], "a": 1 }, + { "px": [144,144], "src": [96,96], "f": 0, "t": 144, "d": [126,441], "a": 1 }, + { "px": [176,144], "src": [64,96], "f": 0, "t": 142, "d": [126,443], "a": 1 }, + { "px": [208,144], "src": [96,96], "f": 0, "t": 144, "d": [126,445], "a": 1 }, + { "px": [592,144], "src": [96,96], "f": 0, "t": 144, "d": [126,469], "a": 1 }, + { "px": [624,144], "src": [96,96], "f": 0, "t": 144, "d": [126,471], "a": 1 }, + { "px": [688,144], "src": [64,96], "f": 0, "t": 142, "d": [126,475], "a": 1 }, + { "px": [0,160], "src": [96,96], "f": 0, "t": 144, "d": [126,480], "a": 1 }, + { "px": [32,160], "src": [96,96], "f": 0, "t": 144, "d": [126,482], "a": 1 }, + { "px": [64,160], "src": [64,96], "f": 0, "t": 142, "d": [126,484], "a": 1 }, + { "px": [160,160], "src": [64,96], "f": 0, "t": 142, "d": [126,490], "a": 1 }, + { "px": [224,160], "src": [96,96], "f": 0, "t": 144, "d": [126,494], "a": 1 }, + { "px": [544,160], "src": [64,96], "f": 0, "t": 142, "d": [126,514], "a": 1 }, + { "px": [640,160], "src": [96,96], "f": 0, "t": 144, "d": [126,520], "a": 1 }, + { "px": [704,160], "src": [64,96], "f": 0, "t": 142, "d": [126,524], "a": 1 }, + { "px": [16,176], "src": [96,96], "f": 0, "t": 144, "d": [126,529], "a": 1 }, + { "px": [48,176], "src": [96,96], "f": 0, "t": 144, "d": [126,531], "a": 1 }, + { "px": [688,176], "src": [64,96], "f": 0, "t": 142, "d": [126,571], "a": 1 }, + { "px": [720,176], "src": [64,96], "f": 0, "t": 142, "d": [126,573], "a": 1 }, + { "px": [752,176], "src": [64,96], "f": 0, "t": 142, "d": [126,575], "a": 1 }, + { "px": [64,192], "src": [96,96], "f": 0, "t": 144, "d": [126,580], "a": 1 }, + { "px": [224,192], "src": [96,96], "f": 0, "t": 144, "d": [126,590], "a": 1 }, + { "px": [704,192], "src": [64,96], "f": 0, "t": 142, "d": [126,620], "a": 1 }, + { "px": [80,208], "src": [96,96], "f": 0, "t": 144, "d": [126,629], "a": 1 }, + { "px": [208,208], "src": [96,96], "f": 0, "t": 144, "d": [126,637], "a": 1 }, + { "px": [240,208], "src": [64,96], "f": 0, "t": 142, "d": [126,639], "a": 1 }, + { "px": [272,208], "src": [64,96], "f": 0, "t": 142, "d": [126,641], "a": 1 }, + { "px": [32,224], "src": [96,96], "f": 0, "t": 144, "d": [126,674], "a": 1 }, + { "px": [64,224], "src": [64,96], "f": 0, "t": 142, "d": [126,676], "a": 1 }, + { "px": [192,224], "src": [64,96], "f": 0, "t": 142, "d": [126,684], "a": 1 }, + { "px": [256,224], "src": [64,96], "f": 0, "t": 142, "d": [126,688], "a": 1 }, + { "px": [480,224], "src": [64,96], "f": 0, "t": 142, "d": [126,702], "a": 1 }, + { "px": [576,224], "src": [64,96], "f": 0, "t": 142, "d": [126,708], "a": 1 }, + { "px": [608,224], "src": [64,96], "f": 0, "t": 142, "d": [126,710], "a": 1 }, + { "px": [16,240], "src": [96,96], "f": 0, "t": 144, "d": [126,721], "a": 1 }, + { "px": [48,240], "src": [64,96], "f": 0, "t": 142, "d": [126,723], "a": 1 }, + { "px": [208,240], "src": [64,96], "f": 0, "t": 142, "d": [126,733], "a": 1 }, + { "px": [240,240], "src": [96,96], "f": 0, "t": 144, "d": [126,735], "a": 1 }, + { "px": [496,240], "src": [64,96], "f": 0, "t": 142, "d": [126,751], "a": 1 }, + { "px": [560,240], "src": [96,96], "f": 0, "t": 144, "d": [126,755], "a": 1 }, + { "px": [592,240], "src": [96,96], "f": 0, "t": 144, "d": [126,757], "a": 1 }, + { "px": [624,240], "src": [64,96], "f": 0, "t": 142, "d": [126,759], "a": 1 }, + { "px": [688,240], "src": [64,96], "f": 0, "t": 142, "d": [126,763], "a": 1 }, + { "px": [720,240], "src": [96,96], "f": 0, "t": 144, "d": [126,765], "a": 1 }, + { "px": [0,256], "src": [64,96], "f": 0, "t": 142, "d": [126,768], "a": 1 }, + { "px": [32,256], "src": [96,96], "f": 0, "t": 144, "d": [126,770], "a": 1 }, + { "px": [64,256], "src": [96,96], "f": 0, "t": 144, "d": [126,772], "a": 1 }, + { "px": [160,256], "src": [64,96], "f": 0, "t": 142, "d": [126,778], "a": 1 }, + { "px": [192,256], "src": [64,96], "f": 0, "t": 142, "d": [126,780], "a": 1 }, + { "px": [224,256], "src": [64,96], "f": 0, "t": 142, "d": [126,782], "a": 1 }, + { "px": [576,256], "src": [64,96], "f": 0, "t": 142, "d": [126,804], "a": 1 }, + { "px": [608,256], "src": [64,96], "f": 0, "t": 142, "d": [126,806], "a": 1 }, + { "px": [640,256], "src": [96,96], "f": 0, "t": 144, "d": [126,808], "a": 1 }, + { "px": [672,256], "src": [96,96], "f": 0, "t": 144, "d": [126,810], "a": 1 }, + { "px": [144,272], "src": [96,96], "f": 0, "t": 144, "d": [126,825], "a": 1 }, + { "px": [240,272], "src": [64,96], "f": 0, "t": 142, "d": [126,831], "a": 1 }, + { "px": [592,272], "src": [96,96], "f": 0, "t": 144, "d": [126,853], "a": 1 }, + { "px": [0,288], "src": [96,96], "f": 0, "t": 144, "d": [126,864], "a": 1 }, + { "px": [32,288], "src": [64,96], "f": 0, "t": 142, "d": [126,866], "a": 1 }, + { "px": [192,288], "src": [64,96], "f": 0, "t": 142, "d": [126,876], "a": 1 }, + { "px": [512,288], "src": [96,96], "f": 0, "t": 144, "d": [126,896], "a": 1 }, + { "px": [576,288], "src": [96,96], "f": 0, "t": 144, "d": [126,900], "a": 1 }, + { "px": [608,288], "src": [96,96], "f": 0, "t": 144, "d": [126,902], "a": 1 }, + { "px": [640,288], "src": [64,96], "f": 0, "t": 142, "d": [126,904], "a": 1 }, + { "px": [704,288], "src": [96,96], "f": 0, "t": 144, "d": [126,908], "a": 1 }, + { "px": [144,304], "src": [96,96], "f": 0, "t": 144, "d": [126,921], "a": 1 }, + { "px": [176,304], "src": [96,96], "f": 0, "t": 144, "d": [126,923], "a": 1 }, + { "px": [240,304], "src": [96,96], "f": 0, "t": 144, "d": [126,927], "a": 1 }, + { "px": [496,304], "src": [64,96], "f": 0, "t": 142, "d": [126,943], "a": 1 }, + { "px": [688,304], "src": [64,96], "f": 0, "t": 142, "d": [126,955], "a": 1 }, + { "px": [32,320], "src": [64,96], "f": 0, "t": 142, "d": [126,962], "a": 1 }, + { "px": [96,320], "src": [96,96], "f": 0, "t": 144, "d": [126,966], "a": 1 }, + { "px": [160,320], "src": [64,96], "f": 0, "t": 142, "d": [126,970], "a": 1 }, + { "px": [192,320], "src": [64,96], "f": 0, "t": 142, "d": [126,972], "a": 1 }, + { "px": [224,320], "src": [96,96], "f": 0, "t": 144, "d": [126,974], "a": 1 }, + { "px": [544,320], "src": [96,96], "f": 0, "t": 144, "d": [126,994], "a": 1 }, + { "px": [576,320], "src": [96,96], "f": 0, "t": 144, "d": [126,996], "a": 1 }, + { "px": [640,320], "src": [64,96], "f": 0, "t": 142, "d": [126,1000], "a": 1 }, + { "px": [672,320], "src": [96,96], "f": 0, "t": 144, "d": [126,1002], "a": 1 }, + { "px": [16,336], "src": [96,96], "f": 0, "t": 144, "d": [126,1009], "a": 1 }, + { "px": [48,336], "src": [64,96], "f": 0, "t": 142, "d": [126,1011], "a": 1 }, + { "px": [80,336], "src": [96,96], "f": 0, "t": 144, "d": [126,1013], "a": 1 }, + { "px": [144,336], "src": [96,96], "f": 0, "t": 144, "d": [126,1017], "a": 1 }, + { "px": [528,336], "src": [64,96], "f": 0, "t": 142, "d": [126,1041], "a": 1 }, + { "px": [592,336], "src": [64,96], "f": 0, "t": 142, "d": [126,1045], "a": 1 }, + { "px": [624,336], "src": [96,96], "f": 0, "t": 144, "d": [126,1047], "a": 1 }, + { "px": [688,336], "src": [96,96], "f": 0, "t": 144, "d": [126,1051], "a": 1 }, + { "px": [0,352], "src": [64,96], "f": 0, "t": 142, "d": [126,1056], "a": 1 }, + { "px": [32,352], "src": [96,96], "f": 0, "t": 144, "d": [126,1058], "a": 1 }, + { "px": [64,352], "src": [96,96], "f": 0, "t": 144, "d": [126,1060], "a": 1 }, + { "px": [96,352], "src": [96,96], "f": 0, "t": 144, "d": [126,1062], "a": 1 }, + { "px": [128,352], "src": [64,96], "f": 0, "t": 142, "d": [126,1064], "a": 1 }, + { "px": [224,352], "src": [96,96], "f": 0, "t": 144, "d": [126,1070], "a": 1 }, + { "px": [576,352], "src": [96,96], "f": 0, "t": 144, "d": [126,1092], "a": 1 }, + { "px": [608,352], "src": [96,96], "f": 0, "t": 144, "d": [126,1094], "a": 1 }, + { "px": [672,352], "src": [96,96], "f": 0, "t": 144, "d": [126,1098], "a": 1 }, + { "px": [80,368], "src": [64,96], "f": 0, "t": 142, "d": [126,1109], "a": 1 }, + { "px": [112,368], "src": [96,96], "f": 0, "t": 144, "d": [126,1111], "a": 1 }, + { "px": [208,368], "src": [64,96], "f": 0, "t": 142, "d": [126,1117], "a": 1 }, + { "px": [240,368], "src": [64,96], "f": 0, "t": 142, "d": [126,1119], "a": 1 }, + { "px": [528,368], "src": [96,96], "f": 0, "t": 144, "d": [126,1137], "a": 1 }, + { "px": [560,368], "src": [64,96], "f": 0, "t": 142, "d": [126,1139], "a": 1 }, + { "px": [624,368], "src": [96,96], "f": 0, "t": 144, "d": [126,1143], "a": 1 }, + { "px": [656,368], "src": [96,96], "f": 0, "t": 144, "d": [126,1145], "a": 1 }, + { "px": [688,368], "src": [64,96], "f": 0, "t": 142, "d": [126,1147], "a": 1 }, + { "px": [720,368], "src": [96,96], "f": 0, "t": 144, "d": [126,1149], "a": 1 }, + { "px": [32,384], "src": [96,96], "f": 0, "t": 144, "d": [126,1154], "a": 1 }, + { "px": [64,384], "src": [96,96], "f": 0, "t": 144, "d": [126,1156], "a": 1 }, + { "px": [96,384], "src": [64,96], "f": 0, "t": 142, "d": [126,1158], "a": 1 }, + { "px": [128,384], "src": [64,96], "f": 0, "t": 142, "d": [126,1160], "a": 1 }, + { "px": [544,384], "src": [96,96], "f": 0, "t": 144, "d": [126,1186], "a": 1 }, + { "px": [640,384], "src": [96,96], "f": 0, "t": 144, "d": [126,1192], "a": 1 }, + { "px": [672,384], "src": [96,96], "f": 0, "t": 144, "d": [126,1194], "a": 1 }, + { "px": [48,400], "src": [64,96], "f": 0, "t": 142, "d": [126,1203], "a": 1 }, + { "px": [80,400], "src": [96,96], "f": 0, "t": 144, "d": [126,1205], "a": 1 }, + { "px": [144,400], "src": [96,96], "f": 0, "t": 144, "d": [126,1209], "a": 1 }, + { "px": [240,400], "src": [96,96], "f": 0, "t": 144, "d": [126,1215], "a": 1 }, + { "px": [528,400], "src": [96,96], "f": 0, "t": 144, "d": [126,1233], "a": 1 }, + { "px": [560,400], "src": [64,96], "f": 0, "t": 142, "d": [126,1235], "a": 1 }, + { "px": [656,400], "src": [64,96], "f": 0, "t": 142, "d": [126,1241], "a": 1 }, + { "px": [688,400], "src": [96,96], "f": 0, "t": 144, "d": [126,1243], "a": 1 }, + { "px": [720,400], "src": [96,96], "f": 0, "t": 144, "d": [126,1245], "a": 1 }, + { "px": [752,400], "src": [64,96], "f": 0, "t": 142, "d": [126,1247], "a": 1 }, + { "px": [128,416], "src": [64,96], "f": 0, "t": 142, "d": [126,1256], "a": 1 }, + { "px": [160,416], "src": [64,96], "f": 0, "t": 142, "d": [126,1258], "a": 1 }, + { "px": [544,416], "src": [64,96], "f": 0, "t": 142, "d": [126,1282], "a": 1 }, + { "px": [672,416], "src": [96,96], "f": 0, "t": 144, "d": [126,1290], "a": 1 }, + { "px": [704,416], "src": [64,96], "f": 0, "t": 142, "d": [126,1292], "a": 1 }, + { "px": [144,432], "src": [64,96], "f": 0, "t": 142, "d": [126,1305], "a": 1 }, + { "px": [176,432], "src": [96,96], "f": 0, "t": 144, "d": [126,1307], "a": 1 }, + { "px": [528,432], "src": [96,96], "f": 0, "t": 144, "d": [126,1329], "a": 1 }, + { "px": [720,432], "src": [96,96], "f": 0, "t": 144, "d": [126,1341], "a": 1 }, + { "px": [32,448], "src": [96,96], "f": 0, "t": 144, "d": [126,1346], "a": 1 }, + { "px": [64,448], "src": [64,96], "f": 0, "t": 142, "d": [126,1348], "a": 1 }, + { "px": [96,448], "src": [96,96], "f": 0, "t": 144, "d": [126,1350], "a": 1 }, + { "px": [128,448], "src": [64,96], "f": 0, "t": 142, "d": [126,1352], "a": 1 }, + { "px": [544,448], "src": [64,96], "f": 0, "t": 142, "d": [126,1378], "a": 1 }, + { "px": [608,448], "src": [64,96], "f": 0, "t": 142, "d": [126,1382], "a": 1 }, + { "px": [704,448], "src": [96,96], "f": 0, "t": 144, "d": [126,1388], "a": 1 }, + { "px": [736,448], "src": [64,96], "f": 0, "t": 142, "d": [126,1390], "a": 1 }, + { "px": [48,464], "src": [96,96], "f": 0, "t": 144, "d": [126,1395], "a": 1 }, + { "px": [112,464], "src": [96,96], "f": 0, "t": 144, "d": [126,1399], "a": 1 }, + { "px": [144,464], "src": [64,96], "f": 0, "t": 142, "d": [126,1401], "a": 1 }, + { "px": [208,464], "src": [64,96], "f": 0, "t": 142, "d": [126,1405], "a": 1 }, + { "px": [528,464], "src": [96,96], "f": 0, "t": 144, "d": [126,1425], "a": 1 }, + { "px": [560,464], "src": [96,96], "f": 0, "t": 144, "d": [126,1427], "a": 1 }, + { "px": [592,464], "src": [96,96], "f": 0, "t": 144, "d": [126,1429], "a": 1 }, + { "px": [624,464], "src": [96,96], "f": 0, "t": 144, "d": [126,1431], "a": 1 }, + { "px": [656,464], "src": [64,96], "f": 0, "t": 142, "d": [126,1433], "a": 1 }, + { "px": [720,464], "src": [64,96], "f": 0, "t": 142, "d": [126,1437], "a": 1 }, + { "px": [752,464], "src": [64,96], "f": 0, "t": 142, "d": [126,1439], "a": 1 }, + { "px": [32,480], "src": [96,96], "f": 0, "t": 144, "d": [126,1442], "a": 1 }, + { "px": [96,480], "src": [64,96], "f": 0, "t": 142, "d": [126,1446], "a": 1 }, + { "px": [128,480], "src": [96,96], "f": 0, "t": 144, "d": [126,1448], "a": 1 }, + { "px": [160,480], "src": [96,96], "f": 0, "t": 144, "d": [126,1450], "a": 1 }, + { "px": [544,480], "src": [64,96], "f": 0, "t": 142, "d": [126,1474], "a": 1 }, + { "px": [608,480], "src": [64,96], "f": 0, "t": 142, "d": [126,1478], "a": 1 }, + { "px": [640,480], "src": [64,96], "f": 0, "t": 142, "d": [126,1480], "a": 1 }, + { "px": [736,480], "src": [64,96], "f": 0, "t": 142, "d": [126,1486], "a": 1 }, + { "px": [528,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1521], "a": 1 }, + { "px": [624,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1527], "a": 1 }, + { "px": [720,496], "src": [64,96], "f": 0, "t": 142, "d": [126,1533], "a": 1 }, + { "px": [32,512], "src": [64,96], "f": 0, "t": 142, "d": [126,1538], "a": 1 }, + { "px": [128,512], "src": [64,96], "f": 0, "t": 142, "d": [126,1544], "a": 1 }, + { "px": [608,512], "src": [96,96], "f": 0, "t": 144, "d": [126,1574], "a": 1 }, + { "px": [144,528], "src": [64,96], "f": 0, "t": 142, "d": [126,1593], "a": 1 }, + { "px": [176,528], "src": [64,96], "f": 0, "t": 142, "d": [126,1595], "a": 1 }, + { "px": [208,528], "src": [96,96], "f": 0, "t": 144, "d": [126,1597], "a": 1 }, + { "px": [624,528], "src": [64,96], "f": 0, "t": 142, "d": [126,1623], "a": 1 }, + { "px": [0,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1632], "a": 1 }, + { "px": [32,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1634], "a": 1 }, + { "px": [128,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1640], "a": 1 }, + { "px": [160,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1642], "a": 1 }, + { "px": [192,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1644], "a": 1 }, + { "px": [576,544], "src": [96,96], "f": 0, "t": 144, "d": [126,1668], "a": 1 }, + { "px": [736,544], "src": [64,96], "f": 0, "t": 142, "d": [126,1678], "a": 1 }, + { "px": [16,560], "src": [96,96], "f": 0, "t": 144, "d": [126,1681], "a": 1 }, + { "px": [80,560], "src": [96,96], "f": 0, "t": 144, "d": [126,1685], "a": 1 }, + { "px": [112,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1687], "a": 1 }, + { "px": [144,560], "src": [96,96], "f": 0, "t": 144, "d": [126,1689], "a": 1 }, + { "px": [176,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1691], "a": 1 }, + { "px": [208,560], "src": [96,96], "f": 0, "t": 144, "d": [126,1693], "a": 1 }, + { "px": [560,560], "src": [64,96], "f": 0, "t": 142, "d": [126,1715], "a": 1 }, + { "px": [128,576], "src": [64,96], "f": 0, "t": 142, "d": [126,1736], "a": 1 }, + { "px": [192,576], "src": [96,96], "f": 0, "t": 144, "d": [126,1740], "a": 1 }, + { "px": [224,576], "src": [96,96], "f": 0, "t": 144, "d": [126,1742], "a": 1 }, + { "px": [288,576], "src": [96,96], "f": 0, "t": 144, "d": [126,1746], "a": 1 }, + { "px": [320,576], "src": [64,96], "f": 0, "t": 142, "d": [126,1748], "a": 1 }, + { "px": [608,576], "src": [64,96], "f": 0, "t": 142, "d": [126,1766], "a": 1 }, + { "px": [16,592], "src": [64,96], "f": 0, "t": 142, "d": [126,1777], "a": 1 }, + { "px": [80,592], "src": [64,96], "f": 0, "t": 142, "d": [126,1781], "a": 1 }, + { "px": [208,592], "src": [64,96], "f": 0, "t": 142, "d": [126,1789], "a": 1 }, + { "px": [304,592], "src": [96,96], "f": 0, "t": 144, "d": [126,1795], "a": 1 }, + { "px": [336,592], "src": [64,96], "f": 0, "t": 142, "d": [126,1797], "a": 1 }, + { "px": [0,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1824], "a": 1 }, + { "px": [32,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1826], "a": 1 }, + { "px": [64,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1828], "a": 1 }, + { "px": [224,608], "src": [96,96], "f": 0, "t": 144, "d": [126,1838], "a": 1 }, + { "px": [256,608], "src": [96,96], "f": 0, "t": 144, "d": [126,1840], "a": 1 }, + { "px": [288,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1842], "a": 1 }, + { "px": [448,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1852], "a": 1 }, + { "px": [544,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1858], "a": 1 }, + { "px": [672,608], "src": [64,96], "f": 0, "t": 142, "d": [126,1866], "a": 1 }, + { "px": [704,608], "src": [96,96], "f": 0, "t": 144, "d": [126,1868], "a": 1 }, + { "px": [16,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1873], "a": 1 }, + { "px": [48,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1875], "a": 1 }, + { "px": [80,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1877], "a": 1 }, + { "px": [240,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1887], "a": 1 }, + { "px": [272,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1889], "a": 1 }, + { "px": [304,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1891], "a": 1 }, + { "px": [400,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1897], "a": 1 }, + { "px": [432,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1899], "a": 1 }, + { "px": [528,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1905], "a": 1 }, + { "px": [656,624], "src": [64,96], "f": 0, "t": 142, "d": [126,1913], "a": 1 }, + { "px": [688,624], "src": [96,96], "f": 0, "t": 144, "d": [126,1915], "a": 1 }, + { "px": [0,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1920], "a": 1 }, + { "px": [32,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1922], "a": 1 }, + { "px": [96,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1926], "a": 1 }, + { "px": [160,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1930], "a": 1 }, + { "px": [192,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1932], "a": 1 }, + { "px": [256,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1936], "a": 1 }, + { "px": [288,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1938], "a": 1 }, + { "px": [320,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1940], "a": 1 }, + { "px": [416,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1946], "a": 1 }, + { "px": [448,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1948], "a": 1 }, + { "px": [640,640], "src": [96,96], "f": 0, "t": 144, "d": [126,1960], "a": 1 }, + { "px": [704,640], "src": [64,96], "f": 0, "t": 142, "d": [126,1964], "a": 1 }, + { "px": [176,656], "src": [96,96], "f": 0, "t": 144, "d": [126,1979], "a": 1 }, + { "px": [208,656], "src": [64,96], "f": 0, "t": 142, "d": [126,1981], "a": 1 }, + { "px": [240,656], "src": [96,96], "f": 0, "t": 144, "d": [126,1983], "a": 1 }, + { "px": [304,656], "src": [96,96], "f": 0, "t": 144, "d": [126,1987], "a": 1 }, + { "px": [432,656], "src": [96,96], "f": 0, "t": 144, "d": [126,1995], "a": 1 }, + { "px": [656,656], "src": [64,96], "f": 0, "t": 142, "d": [126,2009], "a": 1 }, + { "px": [32,672], "src": [96,96], "f": 0, "t": 144, "d": [126,2018], "a": 1 }, + { "px": [224,672], "src": [96,96], "f": 0, "t": 144, "d": [126,2030], "a": 1 }, + { "px": [288,672], "src": [96,96], "f": 0, "t": 144, "d": [126,2034], "a": 1 }, + { "px": [384,672], "src": [64,96], "f": 0, "t": 142, "d": [126,2040], "a": 1 }, + { "px": [416,672], "src": [64,96], "f": 0, "t": 142, "d": [126,2042], "a": 1 }, + { "px": [544,672], "src": [64,96], "f": 0, "t": 142, "d": [126,2050], "a": 1 }, + { "px": [672,672], "src": [96,96], "f": 0, "t": 144, "d": [126,2058], "a": 1 }, + { "px": [80,688], "src": [64,96], "f": 0, "t": 142, "d": [126,2069], "a": 1 }, + { "px": [240,688], "src": [96,96], "f": 0, "t": 144, "d": [126,2079], "a": 1 }, + { "px": [272,688], "src": [96,96], "f": 0, "t": 144, "d": [126,2081], "a": 1 }, + { "px": [336,688], "src": [96,96], "f": 0, "t": 144, "d": [126,2085], "a": 1 }, + { "px": [368,688], "src": [96,96], "f": 0, "t": 144, "d": [126,2087], "a": 1 }, + { "px": [400,688], "src": [64,96], "f": 0, "t": 142, "d": [126,2089], "a": 1 }, + { "px": [464,688], "src": [96,96], "f": 0, "t": 144, "d": [126,2093], "a": 1 }, + { "px": [496,688], "src": [64,96], "f": 0, "t": 142, "d": [126,2095], "a": 1 }, + { "px": [528,688], "src": [64,96], "f": 0, "t": 142, "d": [126,2097], "a": 1 }, + { "px": [624,688], "src": [96,96], "f": 0, "t": 144, "d": [126,2103], "a": 1 }, + { "px": [752,688], "src": [96,96], "f": 0, "t": 144, "d": [126,2111], "a": 1 }, + { "px": [192,704], "src": [64,96], "f": 0, "t": 142, "d": [126,2124], "a": 1 }, + { "px": [224,704], "src": [96,96], "f": 0, "t": 144, "d": [126,2126], "a": 1 }, + { "px": [256,704], "src": [64,96], "f": 0, "t": 142, "d": [126,2128], "a": 1 }, + { "px": [288,704], "src": [96,96], "f": 0, "t": 144, "d": [126,2130], "a": 1 }, + { "px": [320,704], "src": [64,96], "f": 0, "t": 142, "d": [126,2132], "a": 1 }, + { "px": [352,704], "src": [96,96], "f": 0, "t": 144, "d": [126,2134], "a": 1 }, + { "px": [384,704], "src": [96,96], "f": 0, "t": 144, "d": [126,2136], "a": 1 }, + { "px": [416,704], "src": [96,96], "f": 0, "t": 144, "d": [126,2138], "a": 1 }, + { "px": [448,704], "src": [96,96], "f": 0, "t": 144, "d": [126,2140], "a": 1 }, + { "px": [16,720], "src": [96,96], "f": 0, "t": 144, "d": [126,2161], "a": 1 }, + { "px": [48,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2163], "a": 1 }, + { "px": [80,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2165], "a": 1 }, + { "px": [176,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2171], "a": 1 }, + { "px": [208,720], "src": [96,96], "f": 0, "t": 144, "d": [126,2173], "a": 1 }, + { "px": [240,720], "src": [96,96], "f": 0, "t": 144, "d": [126,2175], "a": 1 }, + { "px": [336,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2181], "a": 1 }, + { "px": [368,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2183], "a": 1 }, + { "px": [496,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2191], "a": 1 }, + { "px": [528,720], "src": [96,96], "f": 0, "t": 144, "d": [126,2193], "a": 1 }, + { "px": [560,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2195], "a": 1 }, + { "px": [624,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2199], "a": 1 }, + { "px": [720,720], "src": [64,96], "f": 0, "t": 142, "d": [126,2205], "a": 1 }, + { "px": [752,720], "src": [96,96], "f": 0, "t": 144, "d": [126,2207], "a": 1 }, + { "px": [32,736], "src": [64,96], "f": 0, "t": 142, "d": [126,2210], "a": 1 }, + { "px": [192,736], "src": [96,96], "f": 0, "t": 144, "d": [126,2220], "a": 1 }, + { "px": [512,736], "src": [64,96], "f": 0, "t": 142, "d": [126,2240], "a": 1 }, + { "px": [544,736], "src": [96,96], "f": 0, "t": 144, "d": [126,2242], "a": 1 }, + { "px": [496,752], "src": [96,96], "f": 0, "t": 144, "d": [126,2287], "a": 1 }, + { "px": [528,752], "src": [96,96], "f": 0, "t": 144, "d": [126,2289], "a": 1 }, + { "px": [560,752], "src": [96,96], "f": 0, "t": 144, "d": [126,2291], "a": 1 }, + { "px": [592,752], "src": [96,96], "f": 0, "t": 144, "d": [126,2293], "a": 1 }, + { "px": [688,752], "src": [64,96], "f": 0, "t": 142, "d": [126,2299], "a": 1 }, + { "px": [720,752], "src": [64,96], "f": 0, "t": 142, "d": [126,2301], "a": 1 }, + { "px": [336,80], "src": [256,160], "f": 0, "t": 246, "d": [12,261], "a": 1 }, + { "px": [368,80], "src": [256,160], "f": 0, "t": 246, "d": [12,263], "a": 1 }, + { "px": [400,80], "src": [256,160], "f": 0, "t": 246, "d": [12,265], "a": 1 }, + { "px": [416,80], "src": [256,160], "f": 0, "t": 246, "d": [12,266], "a": 1 }, + { "px": [432,80], "src": [256,160], "f": 0, "t": 246, "d": [12,267], "a": 1 }, + { "px": [448,80], "src": [256,160], "f": 0, "t": 246, "d": [12,268], "a": 1 }, + { "px": [464,80], "src": [256,160], "f": 0, "t": 246, "d": [12,269], "a": 1 }, + { "px": [304,272], "src": [256,160], "f": 0, "t": 246, "d": [12,835], "a": 1 }, + { "px": [320,272], "src": [256,160], "f": 0, "t": 246, "d": [12,836], "a": 1 }, + { "px": [368,352], "src": [256,160], "f": 0, "t": 246, "d": [12,1079], "a": 1 }, + { "px": [432,352], "src": [256,160], "f": 0, "t": 246, "d": [12,1083], "a": 1 }, + { "px": [448,352], "src": [256,160], "f": 0, "t": 246, "d": [12,1084], "a": 1 }, + { "px": [464,352], "src": [256,160], "f": 0, "t": 246, "d": [12,1085], "a": 1 }, + { "px": [272,464], "src": [256,160], "f": 0, "t": 246, "d": [12,1409], "a": 1 }, + { "px": [288,464], "src": [256,160], "f": 0, "t": 246, "d": [12,1410], "a": 1 }, + { "px": [304,464], "src": [256,160], "f": 0, "t": 246, "d": [12,1411], "a": 1 }, + { "px": [320,464], "src": [256,160], "f": 0, "t": 246, "d": [12,1412], "a": 1 }, + { "px": [336,464], "src": [256,160], "f": 0, "t": 246, "d": [12,1413], "a": 1 }, + { "px": [352,464], "src": [256,160], "f": 0, "t": 246, "d": [12,1414], "a": 1 }, + { "px": [384,464], "src": [256,160], "f": 0, "t": 246, "d": [12,1416], "a": 1 }, + { "px": [400,464], "src": [256,160], "f": 0, "t": 246, "d": [12,1417], "a": 1 }, + { "px": [304,416], "src": [256,96], "f": 0, "t": 154, "d": [9,1267], "a": 1 }, + { "px": [320,416], "src": [256,96], "f": 0, "t": 154, "d": [9,1268], "a": 1 }, + { "px": [336,416], "src": [256,96], "f": 0, "t": 154, "d": [9,1269], "a": 1 }, + { "px": [336,528], "src": [256,96], "f": 0, "t": 154, "d": [9,1605], "a": 1 }, + { "px": [352,528], "src": [256,96], "f": 0, "t": 154, "d": [9,1606], "a": 1 }, + { "px": [432,528], "src": [256,96], "f": 0, "t": 154, "d": [9,1611], "a": 1 }, + { "px": [320,96], "src": [224,128], "f": 1, "t": 198, "d": [10,308], "a": 1 }, + { "px": [480,96], "src": [224,128], "f": 0, "t": 198, "d": [10,318], "a": 1 }, + { "px": [320,112], "src": [224,128], "f": 1, "t": 198, "d": [10,356], "a": 1 }, + { "px": [480,112], "src": [224,128], "f": 0, "t": 198, "d": [10,366], "a": 1 }, + { "px": [320,128], "src": [224,128], "f": 1, "t": 198, "d": [10,404], "a": 1 }, + { "px": [480,128], "src": [224,128], "f": 0, "t": 198, "d": [10,414], "a": 1 }, + { "px": [320,144], "src": [224,128], "f": 1, "t": 198, "d": [10,452], "a": 1 }, + { "px": [480,144], "src": [224,128], "f": 0, "t": 198, "d": [10,462], "a": 1 }, + { "px": [320,160], "src": [224,128], "f": 1, "t": 198, "d": [10,500], "a": 1 }, + { "px": [480,160], "src": [224,128], "f": 0, "t": 198, "d": [10,510], "a": 1 }, + { "px": [368,192], "src": [224,128], "f": 1, "t": 198, "d": [10,599], "a": 1 }, + { "px": [432,192], "src": [224,128], "f": 0, "t": 198, "d": [10,603], "a": 1 }, + { "px": [368,208], "src": [224,128], "f": 1, "t": 198, "d": [10,647], "a": 1 }, + { "px": [432,208], "src": [224,128], "f": 0, "t": 198, "d": [10,651], "a": 1 }, + { "px": [368,224], "src": [224,128], "f": 1, "t": 198, "d": [10,695], "a": 1 }, + { "px": [432,224], "src": [224,128], "f": 0, "t": 198, "d": [10,699], "a": 1 }, + { "px": [368,240], "src": [224,128], "f": 1, "t": 198, "d": [10,743], "a": 1 }, + { "px": [432,240], "src": [224,128], "f": 0, "t": 198, "d": [10,747], "a": 1 }, + { "px": [368,256], "src": [224,128], "f": 1, "t": 198, "d": [10,791], "a": 1 }, + { "px": [432,256], "src": [224,128], "f": 0, "t": 198, "d": [10,795], "a": 1 }, + { "px": [432,272], "src": [224,128], "f": 0, "t": 198, "d": [10,843], "a": 1 }, + { "px": [288,288], "src": [224,128], "f": 1, "t": 198, "d": [10,882], "a": 1 }, + { "px": [432,288], "src": [224,128], "f": 0, "t": 198, "d": [10,891], "a": 1 }, + { "px": [288,304], "src": [224,128], "f": 1, "t": 198, "d": [10,930], "a": 1 }, + { "px": [432,304], "src": [224,128], "f": 0, "t": 198, "d": [10,939], "a": 1 }, + { "px": [288,320], "src": [224,128], "f": 1, "t": 198, "d": [10,978], "a": 1 }, + { "px": [432,320], "src": [224,128], "f": 0, "t": 198, "d": [10,987], "a": 1 }, + { "px": [288,336], "src": [224,128], "f": 1, "t": 198, "d": [10,1026], "a": 1 }, + { "px": [288,352], "src": [224,128], "f": 1, "t": 198, "d": [10,1074], "a": 1 }, + { "px": [288,368], "src": [224,128], "f": 1, "t": 198, "d": [10,1122], "a": 1 }, + { "px": [480,368], "src": [224,128], "f": 0, "t": 198, "d": [10,1134], "a": 1 }, + { "px": [288,384], "src": [224,128], "f": 1, "t": 198, "d": [10,1170], "a": 1 }, + { "px": [480,384], "src": [224,128], "f": 0, "t": 198, "d": [10,1182], "a": 1 }, + { "px": [288,400], "src": [224,128], "f": 1, "t": 198, "d": [10,1218], "a": 1 }, + { "px": [480,400], "src": [224,128], "f": 0, "t": 198, "d": [10,1230], "a": 1 }, + { "px": [480,416], "src": [224,128], "f": 0, "t": 198, "d": [10,1278], "a": 1 }, + { "px": [416,432], "src": [224,128], "f": 1, "t": 198, "d": [10,1322], "a": 1 }, + { "px": [480,432], "src": [224,128], "f": 0, "t": 198, "d": [10,1326], "a": 1 }, + { "px": [416,448], "src": [224,128], "f": 1, "t": 198, "d": [10,1370], "a": 1 }, + { "px": [480,448], "src": [224,128], "f": 0, "t": 198, "d": [10,1374], "a": 1 }, + { "px": [480,464], "src": [224,128], "f": 0, "t": 198, "d": [10,1422], "a": 1 }, + { "px": [256,480], "src": [224,128], "f": 1, "t": 198, "d": [10,1456], "a": 1 }, + { "px": [480,480], "src": [224,128], "f": 0, "t": 198, "d": [10,1470], "a": 1 }, + { "px": [256,496], "src": [224,128], "f": 1, "t": 198, "d": [10,1504], "a": 1 }, + { "px": [480,496], "src": [224,128], "f": 0, "t": 198, "d": [10,1518], "a": 1 }, + { "px": [256,512], "src": [224,128], "f": 1, "t": 198, "d": [10,1552], "a": 1 }, + { "px": [480,512], "src": [224,128], "f": 0, "t": 198, "d": [10,1566], "a": 1 }, + { "px": [368,272], "src": [224,96], "f": 3, "t": 152, "d": [11,839], "a": 1 }, + { "px": [352,336], "src": [224,96], "f": 0, "t": 152, "d": [11,1030], "a": 1 }, + { "px": [352,352], "src": [224,96], "f": 2, "t": 152, "d": [11,1078], "a": 1 }, + { "px": [320,80], "src": [224,96], "f": 0, "t": 152, "d": [14,260], "a": 1 }, + { "px": [480,80], "src": [224,96], "f": 1, "t": 152, "d": [14,270], "a": 1 }, + { "px": [320,176], "src": [224,96], "f": 2, "t": 152, "d": [14,548], "a": 1 }, + { "px": [480,176], "src": [224,96], "f": 3, "t": 152, "d": [14,558], "a": 1 }, + { "px": [288,272], "src": [224,96], "f": 0, "t": 152, "d": [14,834], "a": 1 }, + { "px": [432,336], "src": [224,96], "f": 3, "t": 152, "d": [14,1035], "a": 1 }, + { "px": [480,352], "src": [224,96], "f": 1, "t": 152, "d": [14,1086], "a": 1 }, + { "px": [288,416], "src": [224,96], "f": 2, "t": 152, "d": [14,1266], "a": 1 }, + { "px": [256,464], "src": [224,96], "f": 0, "t": 152, "d": [14,1408], "a": 1 }, + { "px": [256,528], "src": [224,96], "f": 2, "t": 152, "d": [14,1600], "a": 1 }, + { "px": [480,528], "src": [224,96], "f": 3, "t": 152, "d": [14,1614], "a": 1 }, + { "px": [352,80], "src": [192,192], "f": 0, "t": 288, "d": [78,262], "a": 1 }, + { "px": [384,80], "src": [160,192], "f": 0, "t": 286, "d": [78,264], "a": 1 }, + { "px": [336,272], "src": [160,192], "f": 0, "t": 286, "d": [78,837], "a": 1 }, + { "px": [352,272], "src": [192,192], "f": 0, "t": 288, "d": [78,838], "a": 1 }, + { "px": [384,352], "src": [160,192], "f": 0, "t": 286, "d": [78,1080], "a": 1 }, + { "px": [400,352], "src": [160,192], "f": 0, "t": 286, "d": [78,1081], "a": 1 }, + { "px": [416,352], "src": [192,192], "f": 0, "t": 288, "d": [78,1082], "a": 1 }, + { "px": [368,464], "src": [192,192], "f": 0, "t": 288, "d": [78,1415], "a": 1 }, + { "px": [416,464], "src": [192,192], "f": 0, "t": 288, "d": [78,1418], "a": 1 }, + { "px": [336,176], "src": [32,0], "f": 0, "t": 2, "d": [80,549], "a": 1 }, + { "px": [352,176], "src": [32,0], "f": 0, "t": 2, "d": [80,550], "a": 1 }, + { "px": [368,176], "src": [32,0], "f": 0, "t": 2, "d": [80,551], "a": 1 }, + { "px": [432,176], "src": [32,0], "f": 0, "t": 2, "d": [80,555], "a": 1 }, + { "px": [448,176], "src": [32,0], "f": 0, "t": 2, "d": [80,556], "a": 1 }, + { "px": [464,176], "src": [32,0], "f": 0, "t": 2, "d": [80,557], "a": 1 }, + { "px": [368,336], "src": [32,0], "f": 0, "t": 2, "d": [80,1031], "a": 1 }, + { "px": [384,336], "src": [32,0], "f": 0, "t": 2, "d": [80,1032], "a": 1 }, + { "px": [400,336], "src": [32,0], "f": 0, "t": 2, "d": [80,1033], "a": 1 }, + { "px": [416,336], "src": [32,0], "f": 0, "t": 2, "d": [80,1034], "a": 1 }, + { "px": [352,416], "src": [32,0], "f": 0, "t": 2, "d": [80,1270], "a": 1 }, + { "px": [368,416], "src": [32,0], "f": 0, "t": 2, "d": [80,1271], "a": 1 }, + { "px": [384,416], "src": [32,0], "f": 0, "t": 2, "d": [80,1272], "a": 1 }, + { "px": [400,416], "src": [32,0], "f": 0, "t": 2, "d": [80,1273], "a": 1 }, + { "px": [416,416], "src": [32,0], "f": 0, "t": 2, "d": [80,1274], "a": 1 }, + { "px": [272,528], "src": [32,0], "f": 0, "t": 2, "d": [80,1601], "a": 1 }, + { "px": [288,528], "src": [32,0], "f": 0, "t": 2, "d": [80,1602], "a": 1 }, + { "px": [304,528], "src": [32,0], "f": 0, "t": 2, "d": [80,1603], "a": 1 }, + { "px": [320,528], "src": [32,0], "f": 0, "t": 2, "d": [80,1604], "a": 1 }, + { "px": [368,528], "src": [32,0], "f": 0, "t": 2, "d": [80,1607], "a": 1 }, + { "px": [384,528], "src": [32,0], "f": 0, "t": 2, "d": [80,1608], "a": 1 }, + { "px": [400,528], "src": [32,0], "f": 0, "t": 2, "d": [80,1609], "a": 1 }, + { "px": [416,528], "src": [32,0], "f": 0, "t": 2, "d": [80,1610], "a": 1 }, + { "px": [448,528], "src": [32,0], "f": 0, "t": 2, "d": [80,1612], "a": 1 }, + { "px": [464,528], "src": [32,0], "f": 0, "t": 2, "d": [80,1613], "a": 1 }, + { "px": [352,160], "src": [32,96], "f": 0, "t": 140, "d": [110,502], "a": 1 }, + { "px": [432,160], "src": [32,96], "f": 0, "t": 140, "d": [110,507], "a": 1 }, + { "px": [448,160], "src": [0,96], "f": 0, "t": 138, "d": [110,508], "a": 1 }, + { "px": [464,160], "src": [32,96], "f": 0, "t": 140, "d": [110,509], "a": 1 }, + { "px": [384,320], "src": [0,96], "f": 0, "t": 138, "d": [110,984], "a": 1 }, + { "px": [400,320], "src": [0,96], "f": 0, "t": 138, "d": [110,985], "a": 1 }, + { "px": [416,320], "src": [32,96], "f": 0, "t": 140, "d": [110,986], "a": 1 }, + { "px": [304,400], "src": [0,96], "f": 0, "t": 138, "d": [110,1219], "a": 1 }, + { "px": [416,400], "src": [0,96], "f": 0, "t": 138, "d": [110,1226], "a": 1 }, + { "px": [272,512], "src": [32,96], "f": 0, "t": 140, "d": [110,1553], "a": 1 }, + { "px": [304,512], "src": [0,96], "f": 0, "t": 138, "d": [110,1555], "a": 1 }, + { "px": [320,512], "src": [0,96], "f": 0, "t": 138, "d": [110,1556], "a": 1 }, + { "px": [352,512], "src": [0,96], "f": 0, "t": 138, "d": [110,1558], "a": 1 }, + { "px": [368,512], "src": [32,96], "f": 0, "t": 140, "d": [110,1559], "a": 1 }, + { "px": [384,512], "src": [0,96], "f": 0, "t": 138, "d": [110,1560], "a": 1 }, + { "px": [448,512], "src": [32,96], "f": 0, "t": 140, "d": [110,1564], "a": 1 }, + { "px": [464,512], "src": [32,96], "f": 0, "t": 140, "d": [110,1565], "a": 1 } + ], + "seed": 7344650, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + }, + { + "__identifier": "Background", + "__type": "AutoLayer", + "__cWid": 48, + "__cHei": 48, + "__gridSize": 16, + "__opacity": 1, + "__pxTotalOffsetX": 0, + "__pxTotalOffsetY": 0, + "__tilesetDefUid": 6, + "__tilesetRelPath": "atlas/SunnyLand_by_Ansimuz-extended.png", + "iid": "9312a0d4-66b0-11ec-a595-8302bec1cac1", + "levelId": 132, + "layerDefUid": 103, + "pxOffsetX": 0, + "pxOffsetY": 0, + "visible": true, + "optionalRules": [], + "intGridCsv": [], + "autoLayerTiles": [ + { "px": [352,96], "src": [320,272], "f": 0, "t": 411, "d": [108,310], "a": 1 }, + { "px": [368,96], "src": [320,272], "f": 0, "t": 411, "d": [108,311], "a": 1 }, + { "px": [384,96], "src": [320,272], "f": 0, "t": 411, "d": [108,312], "a": 1 }, + { "px": [400,96], "src": [320,272], "f": 0, "t": 411, "d": [108,313], "a": 1 }, + { "px": [416,96], "src": [320,272], "f": 0, "t": 411, "d": [108,314], "a": 1 }, + { "px": [432,96], "src": [320,272], "f": 0, "t": 411, "d": [108,315], "a": 1 }, + { "px": [448,96], "src": [320,272], "f": 0, "t": 411, "d": [108,316], "a": 1 }, + { "px": [352,112], "src": [320,272], "f": 0, "t": 411, "d": [108,358], "a": 1 }, + { "px": [368,112], "src": [320,272], "f": 0, "t": 411, "d": [108,359], "a": 1 }, + { "px": [384,112], "src": [320,272], "f": 0, "t": 411, "d": [108,360], "a": 1 }, + { "px": [400,112], "src": [320,272], "f": 0, "t": 411, "d": [108,361], "a": 1 }, + { "px": [416,112], "src": [320,272], "f": 0, "t": 411, "d": [108,362], "a": 1 }, + { "px": [432,112], "src": [320,272], "f": 0, "t": 411, "d": [108,363], "a": 1 }, + { "px": [448,112], "src": [320,272], "f": 0, "t": 411, "d": [108,364], "a": 1 }, + { "px": [352,128], "src": [320,272], "f": 0, "t": 411, "d": [108,406], "a": 1 }, + { "px": [368,128], "src": [320,272], "f": 0, "t": 411, "d": [108,407], "a": 1 }, + { "px": [384,128], "src": [320,272], "f": 0, "t": 411, "d": [108,408], "a": 1 }, + { "px": [400,128], "src": [320,272], "f": 0, "t": 411, "d": [108,409], "a": 1 }, + { "px": [416,128], "src": [320,272], "f": 0, "t": 411, "d": [108,410], "a": 1 }, + { "px": [432,128], "src": [320,272], "f": 0, "t": 411, "d": [108,411], "a": 1 }, + { "px": [448,128], "src": [320,272], "f": 0, "t": 411, "d": [108,412], "a": 1 }, + { "px": [352,144], "src": [320,272], "f": 0, "t": 411, "d": [108,454], "a": 1 }, + { "px": [368,144], "src": [320,272], "f": 0, "t": 411, "d": [108,455], "a": 1 }, + { "px": [384,144], "src": [320,272], "f": 0, "t": 411, "d": [108,456], "a": 1 }, + { "px": [400,144], "src": [320,272], "f": 0, "t": 411, "d": [108,457], "a": 1 }, + { "px": [416,144], "src": [320,272], "f": 0, "t": 411, "d": [108,458], "a": 1 }, + { "px": [432,144], "src": [320,272], "f": 0, "t": 411, "d": [108,459], "a": 1 }, + { "px": [448,144], "src": [320,272], "f": 0, "t": 411, "d": [108,460], "a": 1 }, + { "px": [352,160], "src": [320,272], "f": 0, "t": 411, "d": [108,502], "a": 1 }, + { "px": [368,160], "src": [320,272], "f": 0, "t": 411, "d": [108,503], "a": 1 }, + { "px": [384,160], "src": [320,272], "f": 0, "t": 411, "d": [108,504], "a": 1 }, + { "px": [400,160], "src": [320,272], "f": 0, "t": 411, "d": [108,505], "a": 1 }, + { "px": [416,160], "src": [320,272], "f": 0, "t": 411, "d": [108,506], "a": 1 }, + { "px": [432,160], "src": [320,272], "f": 0, "t": 411, "d": [108,507], "a": 1 }, + { "px": [448,160], "src": [320,272], "f": 0, "t": 411, "d": [108,508], "a": 1 }, + { "px": [400,176], "src": [320,272], "f": 0, "t": 411, "d": [108,553], "a": 1 }, + { "px": [400,192], "src": [320,272], "f": 0, "t": 411, "d": [108,601], "a": 1 }, + { "px": [400,208], "src": [320,272], "f": 0, "t": 411, "d": [108,649], "a": 1 }, + { "px": [400,224], "src": [320,272], "f": 0, "t": 411, "d": [108,697], "a": 1 }, + { "px": [400,240], "src": [320,272], "f": 0, "t": 411, "d": [108,745], "a": 1 }, + { "px": [400,256], "src": [320,272], "f": 0, "t": 411, "d": [108,793], "a": 1 }, + { "px": [400,272], "src": [320,272], "f": 0, "t": 411, "d": [108,841], "a": 1 }, + { "px": [336,288], "src": [320,272], "f": 0, "t": 411, "d": [108,885], "a": 1 }, + { "px": [352,288], "src": [320,272], "f": 0, "t": 411, "d": [108,886], "a": 1 }, + { "px": [368,288], "src": [320,272], "f": 0, "t": 411, "d": [108,887], "a": 1 }, + { "px": [384,288], "src": [320,272], "f": 0, "t": 411, "d": [108,888], "a": 1 }, + { "px": [400,288], "src": [320,272], "f": 0, "t": 411, "d": [108,889], "a": 1 }, + { "px": [320,304], "src": [320,272], "f": 0, "t": 411, "d": [108,932], "a": 1 }, + { "px": [336,304], "src": [320,272], "f": 0, "t": 411, "d": [108,933], "a": 1 }, + { "px": [352,304], "src": [320,272], "f": 0, "t": 411, "d": [108,934], "a": 1 }, + { "px": [368,304], "src": [320,272], "f": 0, "t": 411, "d": [108,935], "a": 1 }, + { "px": [384,304], "src": [320,272], "f": 0, "t": 411, "d": [108,936], "a": 1 }, + { "px": [400,304], "src": [320,272], "f": 0, "t": 411, "d": [108,937], "a": 1 }, + { "px": [320,320], "src": [320,272], "f": 0, "t": 411, "d": [108,980], "a": 1 }, + { "px": [336,320], "src": [320,272], "f": 0, "t": 411, "d": [108,981], "a": 1 }, + { "px": [352,320], "src": [320,272], "f": 0, "t": 411, "d": [108,982], "a": 1 }, + { "px": [368,320], "src": [320,272], "f": 0, "t": 411, "d": [108,983], "a": 1 }, + { "px": [384,320], "src": [320,272], "f": 0, "t": 411, "d": [108,984], "a": 1 }, + { "px": [400,320], "src": [320,272], "f": 0, "t": 411, "d": [108,985], "a": 1 }, + { "px": [320,336], "src": [320,272], "f": 0, "t": 411, "d": [108,1028], "a": 1 }, + { "px": [320,352], "src": [320,272], "f": 0, "t": 411, "d": [108,1076], "a": 1 }, + { "px": [320,368], "src": [320,272], "f": 0, "t": 411, "d": [108,1124], "a": 1 }, + { "px": [336,368], "src": [320,272], "f": 0, "t": 411, "d": [108,1125], "a": 1 }, + { "px": [352,368], "src": [320,272], "f": 0, "t": 411, "d": [108,1126], "a": 1 }, + { "px": [368,368], "src": [320,272], "f": 0, "t": 411, "d": [108,1127], "a": 1 }, + { "px": [384,368], "src": [320,272], "f": 0, "t": 411, "d": [108,1128], "a": 1 }, + { "px": [400,368], "src": [320,272], "f": 0, "t": 411, "d": [108,1129], "a": 1 }, + { "px": [432,368], "src": [320,272], "f": 0, "t": 411, "d": [108,1131], "a": 1 }, + { "px": [320,384], "src": [320,272], "f": 0, "t": 411, "d": [108,1172], "a": 1 }, + { "px": [336,384], "src": [320,272], "f": 0, "t": 411, "d": [108,1173], "a": 1 }, + { "px": [352,384], "src": [320,272], "f": 0, "t": 411, "d": [108,1174], "a": 1 }, + { "px": [368,384], "src": [320,272], "f": 0, "t": 411, "d": [108,1175], "a": 1 }, + { "px": [384,384], "src": [320,272], "f": 0, "t": 411, "d": [108,1176], "a": 1 }, + { "px": [400,384], "src": [320,272], "f": 0, "t": 411, "d": [108,1177], "a": 1 }, + { "px": [416,384], "src": [320,272], "f": 0, "t": 411, "d": [108,1178], "a": 1 }, + { "px": [432,384], "src": [320,272], "f": 0, "t": 411, "d": [108,1179], "a": 1 }, + { "px": [448,384], "src": [320,272], "f": 0, "t": 411, "d": [108,1180], "a": 1 }, + { "px": [336,400], "src": [320,272], "f": 0, "t": 411, "d": [108,1221], "a": 1 }, + { "px": [352,400], "src": [320,272], "f": 0, "t": 411, "d": [108,1222], "a": 1 }, + { "px": [368,400], "src": [320,272], "f": 0, "t": 411, "d": [108,1223], "a": 1 }, + { "px": [384,400], "src": [320,272], "f": 0, "t": 411, "d": [108,1224], "a": 1 }, + { "px": [416,400], "src": [320,272], "f": 0, "t": 411, "d": [108,1226], "a": 1 }, + { "px": [432,400], "src": [320,272], "f": 0, "t": 411, "d": [108,1227], "a": 1 }, + { "px": [448,400], "src": [320,272], "f": 0, "t": 411, "d": [108,1228], "a": 1 }, + { "px": [448,416], "src": [320,272], "f": 0, "t": 411, "d": [108,1276], "a": 1 }, + { "px": [448,432], "src": [320,272], "f": 0, "t": 411, "d": [108,1324], "a": 1 }, + { "px": [448,448], "src": [320,272], "f": 0, "t": 411, "d": [108,1372], "a": 1 }, + { "px": [448,464], "src": [320,272], "f": 0, "t": 411, "d": [108,1420], "a": 1 }, + { "px": [288,480], "src": [320,272], "f": 0, "t": 411, "d": [108,1458], "a": 1 }, + { "px": [304,480], "src": [320,272], "f": 0, "t": 411, "d": [108,1459], "a": 1 }, + { "px": [320,480], "src": [320,272], "f": 0, "t": 411, "d": [108,1460], "a": 1 }, + { "px": [336,480], "src": [320,272], "f": 0, "t": 411, "d": [108,1461], "a": 1 }, + { "px": [368,480], "src": [320,272], "f": 0, "t": 411, "d": [108,1463], "a": 1 }, + { "px": [384,480], "src": [320,272], "f": 0, "t": 411, "d": [108,1464], "a": 1 }, + { "px": [400,480], "src": [320,272], "f": 0, "t": 411, "d": [108,1465], "a": 1 }, + { "px": [416,480], "src": [320,272], "f": 0, "t": 411, "d": [108,1466], "a": 1 }, + { "px": [432,480], "src": [320,272], "f": 0, "t": 411, "d": [108,1467], "a": 1 }, + { "px": [448,480], "src": [320,272], "f": 0, "t": 411, "d": [108,1468], "a": 1 }, + { "px": [288,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1506], "a": 1 }, + { "px": [304,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1507], "a": 1 }, + { "px": [320,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1508], "a": 1 }, + { "px": [336,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1509], "a": 1 }, + { "px": [352,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1510], "a": 1 }, + { "px": [368,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1511], "a": 1 }, + { "px": [384,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1512], "a": 1 }, + { "px": [400,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1513], "a": 1 }, + { "px": [416,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1514], "a": 1 }, + { "px": [432,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1515], "a": 1 }, + { "px": [448,496], "src": [320,272], "f": 0, "t": 411, "d": [108,1516], "a": 1 }, + { "px": [288,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1554], "a": 1 }, + { "px": [304,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1555], "a": 1 }, + { "px": [320,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1556], "a": 1 }, + { "px": [336,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1557], "a": 1 }, + { "px": [352,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1558], "a": 1 }, + { "px": [368,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1559], "a": 1 }, + { "px": [384,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1560], "a": 1 }, + { "px": [400,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1561], "a": 1 }, + { "px": [416,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1562], "a": 1 }, + { "px": [432,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1563], "a": 1 }, + { "px": [448,512], "src": [320,272], "f": 0, "t": 411, "d": [108,1564], "a": 1 }, + { "px": [352,96], "src": [256,240], "f": 1, "t": 361, "d": [107,309], "a": 1 }, + { "px": [336,96], "src": [272,240], "f": 1, "t": 362, "d": [107,309], "a": 1 }, + { "px": [448,96], "src": [256,240], "f": 0, "t": 361, "d": [107,317], "a": 1 }, + { "px": [464,96], "src": [272,240], "f": 0, "t": 362, "d": [107,317], "a": 1 }, + { "px": [352,112], "src": [256,240], "f": 1, "t": 361, "d": [107,357], "a": 1 }, + { "px": [336,112], "src": [272,240], "f": 1, "t": 362, "d": [107,357], "a": 1 }, + { "px": [448,112], "src": [256,240], "f": 0, "t": 361, "d": [107,365], "a": 1 }, + { "px": [464,112], "src": [272,240], "f": 0, "t": 362, "d": [107,365], "a": 1 }, + { "px": [352,128], "src": [256,240], "f": 1, "t": 361, "d": [107,405], "a": 1 }, + { "px": [336,128], "src": [272,240], "f": 1, "t": 362, "d": [107,405], "a": 1 }, + { "px": [448,128], "src": [256,240], "f": 0, "t": 361, "d": [107,413], "a": 1 }, + { "px": [464,128], "src": [272,240], "f": 0, "t": 362, "d": [107,413], "a": 1 }, + { "px": [352,144], "src": [256,240], "f": 1, "t": 361, "d": [107,453], "a": 1 }, + { "px": [336,144], "src": [272,240], "f": 1, "t": 362, "d": [107,453], "a": 1 }, + { "px": [448,144], "src": [256,240], "f": 0, "t": 361, "d": [107,461], "a": 1 }, + { "px": [464,144], "src": [272,240], "f": 0, "t": 362, "d": [107,461], "a": 1 }, + { "px": [352,160], "src": [256,240], "f": 1, "t": 361, "d": [107,501], "a": 1 }, + { "px": [336,160], "src": [272,240], "f": 1, "t": 362, "d": [107,501], "a": 1 }, + { "px": [400,176], "src": [256,240], "f": 1, "t": 361, "d": [107,552], "a": 1 }, + { "px": [384,176], "src": [272,240], "f": 1, "t": 362, "d": [107,552], "a": 1 }, + { "px": [400,176], "src": [256,240], "f": 0, "t": 361, "d": [107,554], "a": 1 }, + { "px": [416,176], "src": [272,240], "f": 0, "t": 362, "d": [107,554], "a": 1 }, + { "px": [400,192], "src": [256,240], "f": 1, "t": 361, "d": [107,600], "a": 1 }, + { "px": [384,192], "src": [272,240], "f": 1, "t": 362, "d": [107,600], "a": 1 }, + { "px": [400,192], "src": [256,240], "f": 0, "t": 361, "d": [107,602], "a": 1 }, + { "px": [416,192], "src": [272,240], "f": 0, "t": 362, "d": [107,602], "a": 1 }, + { "px": [400,208], "src": [256,240], "f": 1, "t": 361, "d": [107,648], "a": 1 }, + { "px": [384,208], "src": [272,240], "f": 1, "t": 362, "d": [107,648], "a": 1 }, + { "px": [400,208], "src": [256,240], "f": 0, "t": 361, "d": [107,650], "a": 1 }, + { "px": [416,208], "src": [272,240], "f": 0, "t": 362, "d": [107,650], "a": 1 }, + { "px": [400,224], "src": [256,240], "f": 1, "t": 361, "d": [107,696], "a": 1 }, + { "px": [384,224], "src": [272,240], "f": 1, "t": 362, "d": [107,696], "a": 1 }, + { "px": [400,224], "src": [256,240], "f": 0, "t": 361, "d": [107,698], "a": 1 }, + { "px": [416,224], "src": [272,240], "f": 0, "t": 362, "d": [107,698], "a": 1 }, + { "px": [400,240], "src": [256,240], "f": 1, "t": 361, "d": [107,744], "a": 1 }, + { "px": [384,240], "src": [272,240], "f": 1, "t": 362, "d": [107,744], "a": 1 }, + { "px": [400,240], "src": [256,240], "f": 0, "t": 361, "d": [107,746], "a": 1 }, + { "px": [416,240], "src": [272,240], "f": 0, "t": 362, "d": [107,746], "a": 1 }, + { "px": [400,256], "src": [256,240], "f": 1, "t": 361, "d": [107,792], "a": 1 }, + { "px": [384,256], "src": [272,240], "f": 1, "t": 362, "d": [107,792], "a": 1 }, + { "px": [400,256], "src": [256,240], "f": 0, "t": 361, "d": [107,794], "a": 1 }, + { "px": [416,256], "src": [272,240], "f": 0, "t": 362, "d": [107,794], "a": 1 }, + { "px": [400,272], "src": [256,240], "f": 1, "t": 361, "d": [107,840], "a": 1 }, + { "px": [384,272], "src": [272,240], "f": 1, "t": 362, "d": [107,840], "a": 1 }, + { "px": [400,272], "src": [256,240], "f": 0, "t": 361, "d": [107,842], "a": 1 }, + { "px": [416,272], "src": [272,240], "f": 0, "t": 362, "d": [107,842], "a": 1 }, + { "px": [400,288], "src": [256,240], "f": 0, "t": 361, "d": [107,890], "a": 1 }, + { "px": [416,288], "src": [272,240], "f": 0, "t": 362, "d": [107,890], "a": 1 }, + { "px": [320,304], "src": [256,240], "f": 1, "t": 361, "d": [107,931], "a": 1 }, + { "px": [304,304], "src": [272,240], "f": 1, "t": 362, "d": [107,931], "a": 1 }, + { "px": [400,304], "src": [256,240], "f": 0, "t": 361, "d": [107,938], "a": 1 }, + { "px": [416,304], "src": [272,240], "f": 0, "t": 362, "d": [107,938], "a": 1 }, + { "px": [320,320], "src": [256,240], "f": 1, "t": 361, "d": [107,979], "a": 1 }, + { "px": [304,320], "src": [272,240], "f": 1, "t": 362, "d": [107,979], "a": 1 }, + { "px": [320,336], "src": [256,240], "f": 1, "t": 361, "d": [107,1027], "a": 1 }, + { "px": [304,336], "src": [272,240], "f": 1, "t": 362, "d": [107,1027], "a": 1 }, + { "px": [320,336], "src": [256,240], "f": 0, "t": 361, "d": [107,1029], "a": 1 }, + { "px": [336,336], "src": [272,240], "f": 0, "t": 362, "d": [107,1029], "a": 1 }, + { "px": [320,352], "src": [256,240], "f": 1, "t": 361, "d": [107,1075], "a": 1 }, + { "px": [304,352], "src": [272,240], "f": 1, "t": 362, "d": [107,1075], "a": 1 }, + { "px": [320,352], "src": [256,240], "f": 0, "t": 361, "d": [107,1077], "a": 1 }, + { "px": [336,352], "src": [272,240], "f": 0, "t": 362, "d": [107,1077], "a": 1 }, + { "px": [320,368], "src": [256,240], "f": 1, "t": 361, "d": [107,1123], "a": 1 }, + { "px": [304,368], "src": [272,240], "f": 1, "t": 362, "d": [107,1123], "a": 1 }, + { "px": [448,368], "src": [256,240], "f": 0, "t": 361, "d": [107,1133], "a": 1 }, + { "px": [464,368], "src": [272,240], "f": 0, "t": 362, "d": [107,1133], "a": 1 }, + { "px": [320,384], "src": [256,240], "f": 1, "t": 361, "d": [107,1171], "a": 1 }, + { "px": [304,384], "src": [272,240], "f": 1, "t": 362, "d": [107,1171], "a": 1 }, + { "px": [448,384], "src": [256,240], "f": 0, "t": 361, "d": [107,1181], "a": 1 }, + { "px": [464,384], "src": [272,240], "f": 0, "t": 362, "d": [107,1181], "a": 1 }, + { "px": [448,400], "src": [256,240], "f": 0, "t": 361, "d": [107,1229], "a": 1 }, + { "px": [464,400], "src": [272,240], "f": 0, "t": 362, "d": [107,1229], "a": 1 }, + { "px": [448,416], "src": [256,240], "f": 1, "t": 361, "d": [107,1275], "a": 1 }, + { "px": [432,416], "src": [272,240], "f": 1, "t": 362, "d": [107,1275], "a": 1 }, + { "px": [448,416], "src": [256,240], "f": 0, "t": 361, "d": [107,1277], "a": 1 }, + { "px": [464,416], "src": [272,240], "f": 0, "t": 362, "d": [107,1277], "a": 1 }, + { "px": [448,432], "src": [256,240], "f": 1, "t": 361, "d": [107,1323], "a": 1 }, + { "px": [432,432], "src": [272,240], "f": 1, "t": 362, "d": [107,1323], "a": 1 }, + { "px": [448,432], "src": [256,240], "f": 0, "t": 361, "d": [107,1325], "a": 1 }, + { "px": [464,432], "src": [272,240], "f": 0, "t": 362, "d": [107,1325], "a": 1 }, + { "px": [448,448], "src": [256,240], "f": 1, "t": 361, "d": [107,1371], "a": 1 }, + { "px": [432,448], "src": [272,240], "f": 1, "t": 362, "d": [107,1371], "a": 1 }, + { "px": [448,448], "src": [256,240], "f": 0, "t": 361, "d": [107,1373], "a": 1 }, + { "px": [464,448], "src": [272,240], "f": 0, "t": 362, "d": [107,1373], "a": 1 }, + { "px": [448,464], "src": [256,240], "f": 1, "t": 361, "d": [107,1419], "a": 1 }, + { "px": [432,464], "src": [272,240], "f": 1, "t": 362, "d": [107,1419], "a": 1 }, + { "px": [448,464], "src": [256,240], "f": 0, "t": 361, "d": [107,1421], "a": 1 }, + { "px": [464,464], "src": [272,240], "f": 0, "t": 362, "d": [107,1421], "a": 1 }, + { "px": [448,480], "src": [256,240], "f": 0, "t": 361, "d": [107,1469], "a": 1 }, + { "px": [464,480], "src": [272,240], "f": 0, "t": 362, "d": [107,1469], "a": 1 }, + { "px": [288,496], "src": [256,240], "f": 1, "t": 361, "d": [107,1505], "a": 1 }, + { "px": [272,496], "src": [272,240], "f": 1, "t": 362, "d": [107,1505], "a": 1 }, + { "px": [448,496], "src": [256,240], "f": 0, "t": 361, "d": [107,1517], "a": 1 }, + { "px": [464,496], "src": [272,240], "f": 0, "t": 362, "d": [107,1517], "a": 1 }, + { "px": [304,368], "src": [144,240], "f": 0, "t": 354, "d": [112,1220], "a": 1 }, + { "px": [304,384], "src": [144,256], "f": 0, "t": 377, "d": [112,1220], "a": 1 }, + { "px": [304,400], "src": [144,272], "f": 0, "t": 400, "d": [112,1220], "a": 1 }, + { "px": [320,368], "src": [160,240], "f": 0, "t": 355, "d": [112,1220], "a": 1 }, + { "px": [320,384], "src": [160,256], "f": 0, "t": 378, "d": [112,1220], "a": 1 }, + { "px": [320,400], "src": [160,272], "f": 0, "t": 401, "d": [112,1220], "a": 1 }, + { "px": [336,368], "src": [176,240], "f": 0, "t": 356, "d": [112,1220], "a": 1 }, + { "px": [336,384], "src": [176,256], "f": 0, "t": 379, "d": [112,1220], "a": 1 }, + { "px": [336,400], "src": [176,272], "f": 0, "t": 402, "d": [112,1220], "a": 1 }, + { "px": [384,368], "src": [144,240], "f": 0, "t": 354, "d": [112,1225], "a": 1 }, + { "px": [384,384], "src": [144,256], "f": 0, "t": 377, "d": [112,1225], "a": 1 }, + { "px": [384,400], "src": [144,272], "f": 0, "t": 400, "d": [112,1225], "a": 1 }, + { "px": [400,368], "src": [160,240], "f": 0, "t": 355, "d": [112,1225], "a": 1 }, + { "px": [400,384], "src": [160,256], "f": 0, "t": 378, "d": [112,1225], "a": 1 }, + { "px": [400,400], "src": [160,272], "f": 0, "t": 401, "d": [112,1225], "a": 1 }, + { "px": [416,368], "src": [176,240], "f": 0, "t": 356, "d": [112,1225], "a": 1 }, + { "px": [416,384], "src": [176,256], "f": 0, "t": 379, "d": [112,1225], "a": 1 }, + { "px": [416,400], "src": [176,272], "f": 0, "t": 402, "d": [112,1225], "a": 1 }, + { "px": [464,144], "src": [192,304], "f": 1, "t": 449, "d": [113,509], "a": 1 }, + { "px": [464,160], "src": [192,320], "f": 1, "t": 472, "d": [113,509], "a": 1 }, + { "px": [448,144], "src": [208,304], "f": 1, "t": 450, "d": [113,509], "a": 1 }, + { "px": [448,160], "src": [208,320], "f": 1, "t": 473, "d": [113,509], "a": 1 }, + { "px": [432,144], "src": [224,304], "f": 1, "t": 451, "d": [113,509], "a": 1 }, + { "px": [432,160], "src": [224,320], "f": 1, "t": 474, "d": [113,509], "a": 1 }, + { "px": [304,304], "src": [192,304], "f": 2, "t": 449, "d": [113,883], "a": 1 }, + { "px": [304,288], "src": [192,320], "f": 2, "t": 472, "d": [113,883], "a": 1 }, + { "px": [320,304], "src": [208,304], "f": 2, "t": 450, "d": [113,883], "a": 1 }, + { "px": [320,288], "src": [208,320], "f": 2, "t": 473, "d": [113,883], "a": 1 }, + { "px": [336,304], "src": [224,304], "f": 2, "t": 451, "d": [113,883], "a": 1 }, + { "px": [336,288], "src": [224,320], "f": 2, "t": 474, "d": [113,883], "a": 1 }, + { "px": [416,304], "src": [192,304], "f": 1, "t": 449, "d": [113,986], "a": 1 }, + { "px": [416,320], "src": [192,320], "f": 1, "t": 472, "d": [113,986], "a": 1 }, + { "px": [400,304], "src": [208,304], "f": 1, "t": 450, "d": [113,986], "a": 1 }, + { "px": [400,320], "src": [208,320], "f": 1, "t": 473, "d": [113,986], "a": 1 }, + { "px": [384,304], "src": [224,304], "f": 1, "t": 451, "d": [113,986], "a": 1 }, + { "px": [384,320], "src": [224,320], "f": 1, "t": 474, "d": [113,986], "a": 1 }, + { "px": [304,384], "src": [192,304], "f": 0, "t": 449, "d": [113,1219], "a": 1 }, + { "px": [304,400], "src": [192,320], "f": 0, "t": 472, "d": [113,1219], "a": 1 }, + { "px": [320,384], "src": [208,304], "f": 0, "t": 450, "d": [113,1219], "a": 1 }, + { "px": [320,400], "src": [208,320], "f": 0, "t": 473, "d": [113,1219], "a": 1 }, + { "px": [336,384], "src": [224,304], "f": 0, "t": 451, "d": [113,1219], "a": 1 }, + { "px": [336,400], "src": [224,320], "f": 0, "t": 474, "d": [113,1219], "a": 1 }, + { "px": [272,496], "src": [192,304], "f": 2, "t": 449, "d": [113,1457], "a": 1 }, + { "px": [272,480], "src": [192,320], "f": 2, "t": 472, "d": [113,1457], "a": 1 }, + { "px": [288,496], "src": [208,304], "f": 2, "t": 450, "d": [113,1457], "a": 1 }, + { "px": [288,480], "src": [208,320], "f": 2, "t": 473, "d": [113,1457], "a": 1 }, + { "px": [304,496], "src": [224,304], "f": 2, "t": 451, "d": [113,1457], "a": 1 }, + { "px": [304,480], "src": [224,320], "f": 2, "t": 474, "d": [113,1457], "a": 1 }, + { "px": [272,496], "src": [192,304], "f": 0, "t": 449, "d": [113,1553], "a": 1 }, + { "px": [272,512], "src": [192,320], "f": 0, "t": 472, "d": [113,1553], "a": 1 }, + { "px": [288,496], "src": [208,304], "f": 0, "t": 450, "d": [113,1553], "a": 1 }, + { "px": [288,512], "src": [208,320], "f": 0, "t": 473, "d": [113,1553], "a": 1 }, + { "px": [304,496], "src": [224,304], "f": 0, "t": 451, "d": [113,1553], "a": 1 }, + { "px": [304,512], "src": [224,320], "f": 0, "t": 474, "d": [113,1553], "a": 1 }, + { "px": [464,496], "src": [192,304], "f": 1, "t": 449, "d": [113,1565], "a": 1 }, + { "px": [464,512], "src": [192,320], "f": 1, "t": 472, "d": [113,1565], "a": 1 }, + { "px": [448,496], "src": [208,304], "f": 1, "t": 450, "d": [113,1565], "a": 1 }, + { "px": [448,512], "src": [208,320], "f": 1, "t": 473, "d": [113,1565], "a": 1 }, + { "px": [432,496], "src": [224,304], "f": 1, "t": 451, "d": [113,1565], "a": 1 }, + { "px": [432,512], "src": [224,320], "f": 1, "t": 474, "d": [113,1565], "a": 1 }, + { "px": [416,368], "src": [128,224], "f": 0, "t": 330, "d": [114,1130], "a": 1 }, + { "px": [320,288], "src": [128,208], "f": 0, "t": 307, "d": [115,884], "a": 1 }, + { "px": [320,304], "src": [128,224], "f": 0, "t": 330, "d": [115,884], "a": 1 }, + { "px": [448,368], "src": [128,208], "f": 0, "t": 307, "d": [115,1132], "a": 1 }, + { "px": [448,384], "src": [128,224], "f": 0, "t": 330, "d": [115,1132], "a": 1 }, + { "px": [352,480], "src": [128,208], "f": 0, "t": 307, "d": [115,1462], "a": 1 }, + { "px": [352,496], "src": [128,224], "f": 0, "t": 330, "d": [115,1462], "a": 1 } + ], + "seed": 5654171, + "overrideTilesetUid": null, + "gridTiles": [], + "entityInstances": [] + } + ], + "__neighbours": [{ "levelIid": "a36f8be0-66b0-11ec-9cd7-a9c628ac47cf", "dir": "n" }] + } + ], + "worlds": [], + "dummyWorldIid": "ca3d7420-c640-11ed-ad34-5f1a115c4cf3" +} \ No newline at end of file diff --git a/dependencies/pocketpy/benchmarks/simple.py b/dependencies/pocketpy/benchmarks/simple.py new file mode 100644 index 0000000..ca0489b --- /dev/null +++ b/dependencies/pocketpy/benchmarks/simple.py @@ -0,0 +1,20 @@ +def is_prime(x): + if x<2: + return False + for i in range(2,x): + if x%i == 0: + return False + return True + +def test(n): + k = 0 + for i in range(n): + if is_prime(i): + k += 1 + return k + +# from dis import dis +# dis(test) +# dis(is_prime) + +assert test(10000) == 1229 \ No newline at end of file diff --git a/dependencies/pocketpy/benchmarks/sort.py b/dependencies/pocketpy/benchmarks/sort.py new file mode 100644 index 0000000..0a99396 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/sort.py @@ -0,0 +1,22 @@ +import random + +a = [random.randint(-100000, 100000) for i in range(100000)] + +def __qsort(a: list, L: int, R: int): + if L >= R: return; + mid = a[(R+L)//2]; + i, j = L, R + while i<=j: + while a[i]mid: j-=1 + if i<=j: + a[i], a[j] = a[j], a[i] + i+=1 + j-=1 + __qsort(a, L, j) + __qsort(a, i, R) + +from dis import dis +# dis(__qsort) + +__qsort(a, 0, len(a)-1) \ No newline at end of file diff --git a/dependencies/pocketpy/benchmarks/sum.py b/dependencies/pocketpy/benchmarks/sum.py new file mode 100644 index 0000000..a4382c0 --- /dev/null +++ b/dependencies/pocketpy/benchmarks/sum.py @@ -0,0 +1,6 @@ +def f(n): + if n == 0: + return 0 + return n + f(n-1) + +assert f(900) == 405450 \ No newline at end of file diff --git a/dependencies/pocketpy/build.sh b/dependencies/pocketpy/build.sh new file mode 100644 index 0000000..a474d17 --- /dev/null +++ b/dependencies/pocketpy/build.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# Check if clang++ is installed +if ! type -P clang++ >/dev/null 2>&1; then + echo "clang++ is required and not installed. Kindly install it." + echo "Run: sudo apt-get install libc++-dev libc++abi-dev clang" + exit 1 +fi + +echo "It takes a moment to finish building." +echo "" +echo "> Running prebuild.py... " + +python prebuild.py + +if [ $? -ne 0 ]; then + echo "prebuild.py failed." + exit 1 +fi + +SRC=$(find src/ -name "*.cpp") + +echo "> Compiling and linking source files... " + +FLAGS="-std=c++17 -O1 -stdlib=libc++ -frtti -Wfatal-errors -Iinclude" + +if [[ "$OSTYPE" == "darwin"* ]]; then + LIB_EXTENSION=".dylib" + FLAGS="$FLAGS -undefined dynamic_lookup" + LINK_FLAGS="" +else + LIB_EXTENSION=".so" + LINK_FLAGS="-Wl,-rpath=." +fi + +clang++ $FLAGS -o libpocketpy$LIB_EXTENSION $SRC -fPIC -shared + +# compile main.cpp and link to libpocketpy.so +echo "> Compiling main.cpp and linking to libpocketpy$LIB_EXTENSION..." + +clang++ $FLAGS -o main -O1 src2/main.cpp -L. -lpocketpy $LINK_FLAGS + +if [ $? -eq 0 ]; then + echo "Build completed. Type \"./main\" to enter REPL." +else + echo "Build failed." + exit 1 +fi diff --git a/dependencies/pocketpy/build_android.sh b/dependencies/pocketpy/build_android.sh new file mode 100644 index 0000000..9377356 --- /dev/null +++ b/dependencies/pocketpy/build_android.sh @@ -0,0 +1,18 @@ +# if no $1 default arm64-v8a +if [ -z $1 ]; then + $1=arm64-v8a +fi + +mkdir -p build/android/$1 +cd build/android/$1 + +cmake \ + -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \ + -DANDROID_ABI=$1 \ + -DANDROID_PLATFORM=android-22 \ + -DANDROID_STL=c++_shared \ + ../../.. \ + -DPK_BUILD_SHARED_LIB=ON -DPK_USE_CJSON=ON \ + -DCMAKE_BUILD_TYPE=Release + +cmake --build . --config Release diff --git a/dependencies/pocketpy/build_ios.sh b/dependencies/pocketpy/build_ios.sh new file mode 100644 index 0000000..7b63bba --- /dev/null +++ b/dependencies/pocketpy/build_ios.sh @@ -0,0 +1,18 @@ +rm -rf build +mkdir build +cd build + +FLAGS="-DCMAKE_TOOLCHAIN_FILE=3rd/ios.toolchain.cmake -DPK_BUILD_STATIC_LIB=ON -DDEPLOYMENT_TARGET=13.0" + +cmake -B os64 -G Xcode $FLAGS -DPLATFORM=OS64 .. +cmake --build os64 --config Release + +cmake -B simulatorarm64 -G Xcode $FLAGS -DPLATFORM=SIMULATORARM64 .. +cmake --build simulatorarm64 --config Release + +xcodebuild -create-xcframework \ + -library os64/Release-iphoneos/libpocketpy.a -headers ../include \ + -library simulatorarm64/Release-iphonesimulator/libpocketpy.a -headers ../include \ + -output pocketpy.xcframework + + diff --git a/dependencies/pocketpy/build_web.sh b/dependencies/pocketpy/build_web.sh new file mode 100644 index 0000000..8695f70 --- /dev/null +++ b/dependencies/pocketpy/build_web.sh @@ -0,0 +1,7 @@ +python prebuild.py + +rm -rf web/lib +mkdir web/lib + +SRC=$(find src/ -name "*.cpp") +em++ $SRC -Iinclude/ -fexceptions -frtti -s -Os -sEXPORTED_FUNCTIONS=_pkpy_new_repl,_pkpy_repl_input,_pkpy_new_vm -sEXPORTED_RUNTIME_METHODS=ccall -o web/lib/pocketpy.js diff --git a/dependencies/pocketpy/build_with_warnings.sh b/dependencies/pocketpy/build_with_warnings.sh new file mode 100644 index 0000000..f2d5022 --- /dev/null +++ b/dependencies/pocketpy/build_with_warnings.sh @@ -0,0 +1,5 @@ +SRC=$(find src/ -name "*.cpp") + +FLAGS="-std=c++17 -O1 -stdlib=libc++ -Iinclude -frtti -W -Wno-unused-parameter -Wno-sign-compare" + +clang++ $FLAGS -o main -O1 src2/main.cpp $SRC diff --git a/dependencies/pocketpy/c_bindings/CMakeLists.txt b/dependencies/pocketpy/c_bindings/CMakeLists.txt new file mode 100644 index 0000000..6c24878 --- /dev/null +++ b/dependencies/pocketpy/c_bindings/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.17) + +project(test_c_bindings) + +set(CMAKE_C_STANDARD 11) + +option(PK_BUILD_STATIC_LIB "Build static library" ON) + +add_subdirectory( + .. + ${CMAKE_CURRENT_LIST_DIR}/build/pocketpy/ +) + +include_directories( + ../include +) + +add_executable(${PROJECT_NAME} test.c) + +target_link_libraries( + ${PROJECT_NAME} + pocketpy +) \ No newline at end of file diff --git a/dependencies/pocketpy/c_bindings/test.c b/dependencies/pocketpy/c_bindings/test.c new file mode 100644 index 0000000..1800d87 --- /dev/null +++ b/dependencies/pocketpy/c_bindings/test.c @@ -0,0 +1,420 @@ +#include "pocketpy_c.h" +#include +#include + +//tests the c bindings for pocketpy + +void check_impl(pkpy_vm* vm, bool result, int lineno) { + if (!result) { + printf("ERROR: failed where it should have succeed at line %i\n", lineno); + char* message; + if (!pkpy_clear_error(vm, &message)) { + printf("clear error reported everything was fine\n"); + exit(1); + } + + printf("%s\n", message); + free(message); + exit(1); + } +} + +void fail_impl(pkpy_vm* vm, bool result, int lineno) { + if (result) { + printf("ERROR: succeeded where it should have failed line %i\n", lineno); + exit(1); + } else { + char* message; + if (pkpy_clear_error(vm, &message)) { + printf("actually errored! line %i\n", lineno); + free(message); + exit(1); + } + } +} + +void error_impl(pkpy_vm* vm, bool result, int lineno) { + if (result) { + printf("ERROR: succeeded where it should have failed line %i\n", lineno); + exit(1); + } else { + char* message; + if (!pkpy_clear_error(vm, &message)){ + printf("clear error reported everything was fine\n"); + exit(1); + } else { + printf("successfully errored with this message: \n"); + printf("%s\n", message); + free(message); + } + } +} + + +#define check(r) check_impl(vm, (r), __LINE__) +#define fail(r) fail_impl(vm, (r), __LINE__) +#define error(r) error_impl(vm, (r), __LINE__) + +int test_binding(pkpy_vm* vm) { + pkpy_push_int(vm, 12); + return 1; +} + +int test_multiple_return(pkpy_vm* vm) { + pkpy_push_int(vm, 12); + pkpy_push_int(vm, 13); + return 2; +} + +int test_minus(pkpy_vm* vm) { + int a, b; + pkpy_to_int(vm, 0, &a); + pkpy_to_int(vm, 1, &b); + pkpy_push_int(vm, a - b); + return 1; +} + +int test_fib(pkpy_vm* vm) { + int n; + pkpy_to_int(vm, 0, &n); + if (n == 1) { + pkpy_push_int(vm, n); + } else { + pkpy_getglobal(vm, pkpy_name("test_fib")); + pkpy_push_null(vm); + pkpy_push_int(vm, n-1); + pkpy_vectorcall(vm, 1); + int r_int; + pkpy_to_int(vm, -1, &r_int); + pkpy_pop_top(vm); + pkpy_push_int(vm, r_int + n); + } + return 1; +} + +int test_default_argument(pkpy_vm* vm){ + int x; + pkpy_to_int(vm, -1, &x); + bool ok = x == 5; + pkpy_push_bool(vm, ok); + return 1; +} + +int test_return_none(pkpy_vm* vm) { + return 0; +} + +int test_error_propagate(pkpy_vm* vm) { + pkpy_error(vm, "NameError", pkpy_string("catch me")); + return 1; +} + +int test_nested_error(pkpy_vm* vm) { + pkpy_getglobal(vm, pkpy_name("error_from_python")); + pkpy_push_null(vm); + pkpy_vectorcall(vm, 0); + return 0; +} + +#define PRINT_TITLE(x) printf("\n====== %s ======\n", x) + +int main(int argc, char** argv) { + pkpy_vm* vm = pkpy_new_vm(true); + + PRINT_TITLE("test basic exec"); + check(pkpy_exec(vm, "print('hello world!')")); + fail(pkpy_getglobal(vm, pkpy_name("nonexistatn"))); + + // test int methods + PRINT_TITLE("test int methods"); + int r_int; + check(pkpy_push_int(vm, 11)); + pkpy_CName m_eleven = pkpy_name("eleven"); + check(pkpy_setglobal(vm, m_eleven)); + check(pkpy_exec(vm, "print(eleven)")); + check(pkpy_getglobal(vm, m_eleven)); + check(pkpy_is_int(vm, -1)); + check(pkpy_to_int(vm, -1, &r_int)); + printf("%i\n", r_int); // 11 + printf("%i\n", pkpy_stack_size(vm)); // 1 + + fail(pkpy_is_float(vm, -1)); + fail(pkpy_is_bool(vm, -1)); + fail(pkpy_is_string(vm, -1)); + fail(pkpy_is_none(vm, -1)); + fail(pkpy_is_voidp(vm, -1)); + + PRINT_TITLE("test float methods"); + double r_float; + check(pkpy_push_float(vm, 11.125)); + pkpy_CName m_elevenf = pkpy_name("elevenf"); + check(pkpy_setglobal(vm, m_elevenf)); + check(pkpy_exec(vm, "print(elevenf)")); + check(pkpy_getglobal(vm, m_elevenf)); + check(pkpy_is_float(vm, -1)); + check(pkpy_to_float(vm, -1, &r_float)); + printf("%.3f\n", r_float); + fail(pkpy_is_int(vm, -1)); + fail(pkpy_is_bool(vm, -1)); + fail(pkpy_is_string(vm, -1)); + fail(pkpy_is_none(vm, -1)); + fail(pkpy_is_voidp(vm, -1)); + + PRINT_TITLE("test bool methods"); + bool r_bool; + check(pkpy_push_bool(vm, false)); + pkpy_CName m_false_test = pkpy_name("false_test"); + check(pkpy_setglobal(vm, m_false_test)); + check(pkpy_exec(vm, "print(false_test)")); + check(pkpy_getglobal(vm, m_false_test)); + check(pkpy_is_bool(vm, -1)); + check(pkpy_to_bool(vm, -1, &r_bool)); + printf("%i\n", r_bool); + fail(pkpy_is_int(vm, -1)); + fail(pkpy_is_float(vm, -1)); + fail(pkpy_is_string(vm, -1)); + fail(pkpy_is_none(vm, -1)); + fail(pkpy_is_voidp(vm, -1)); + + PRINT_TITLE("test string methods"); + pkpy_CString r_string; + check(pkpy_push_string(vm, pkpy_string("hello!"))); + check(pkpy_setglobal(vm, pkpy_name("hello1"))); + check(pkpy_exec(vm, "print(hello1)")); + check(pkpy_push_string(vm, pkpy_string("hello!"))); + check(pkpy_is_string(vm, -1)); + check(pkpy_to_string(vm, -1, &r_string)); + + puts(r_string); + + fail(pkpy_is_int(vm, -1)); + fail(pkpy_is_float(vm, -1)); + fail(pkpy_is_bool(vm, -1)); + fail(pkpy_is_none(vm, -1)); + fail(pkpy_is_voidp(vm, -1)); + + PRINT_TITLE("test none methods"); + check(pkpy_push_none(vm)); + pkpy_CName m_none = pkpy_name("none"); + check(pkpy_setglobal(vm, m_none)); + check(pkpy_exec(vm, "print(none)")); + check(pkpy_getglobal(vm, m_none)); + check(pkpy_is_none(vm, -1)); + fail(pkpy_is_int(vm, -1)); + fail(pkpy_is_float(vm, -1)); + fail(pkpy_is_bool(vm, -1)); + fail(pkpy_is_string(vm, -1)); + fail(pkpy_is_voidp(vm, -1)); + + PRINT_TITLE("test voidp methods"); + void* vp = (void*) 123; + check(pkpy_push_voidp(vm, vp)); + check(pkpy_setglobal(vm, pkpy_name("vp"))); + check(pkpy_exec(vm, "print(vp)")); + check(pkpy_getglobal(vm, pkpy_name("vp"))); + check(pkpy_is_voidp(vm, -1)); + vp = NULL; + check(pkpy_to_voidp(vm, -1, &vp)); + printf("%i\n", (int) (intptr_t) vp); + fail(pkpy_is_int(vm, -1)); + fail(pkpy_is_float(vm, -1)); + fail(pkpy_is_bool(vm, -1)); + fail(pkpy_is_string(vm, -1)); + fail(pkpy_is_none(vm, -1)); + + PRINT_TITLE("test sizing and indexing"); + int stack_size = pkpy_stack_size(vm); + printf("stack size %i\n", stack_size); + check(pkpy_is_int(vm, 0)); + check(pkpy_is_float(vm, 1)); + check(pkpy_is_bool(vm, 2)); + check(pkpy_is_string(vm, 3)); + check(pkpy_is_none(vm, 4)); + check(pkpy_is_voidp(vm, 5)); + check(pkpy_is_int(vm, -6)); + check(pkpy_is_float(vm, -5)); + check(pkpy_is_bool(vm, -4)); + check(pkpy_is_string(vm, -3)); + check(pkpy_is_none(vm, -2)); + check(pkpy_is_voidp(vm, -1)); + + PRINT_TITLE("test error catching"); + error(pkpy_exec(vm, "let's make sure syntax errors get caught")); + //stack should be cleared after error is resolved + check(pkpy_stack_size(vm) == 0); + + PRINT_TITLE("test simple call"); + check(pkpy_exec(vm, "def x(x, y) : return x - y")); + check(pkpy_getglobal(vm, pkpy_name("x"))); + check(pkpy_push_null(vm)); + check(pkpy_push_int(vm, 2)); + check(pkpy_push_int(vm, 3)); + check(pkpy_vectorcall(vm, 2)); + check(pkpy_to_int(vm, -1, &r_int)); + printf("x : %i\n", r_int); + + PRINT_TITLE("test vararg call"); + check(pkpy_exec(vm, "def vararg_x(*x) : return sum(x)")); + check(pkpy_getglobal(vm, pkpy_name("vararg_x"))); + check(pkpy_push_null(vm)); + check(pkpy_push_int(vm, 1)); + check(pkpy_push_int(vm, 2)); + check(pkpy_push_int(vm, 3)); + check(pkpy_push_int(vm, 4)); + check(pkpy_push_int(vm, 5)); + check(pkpy_push_int(vm, 6)); + check(pkpy_vectorcall(vm, 6)); + check(pkpy_to_int(vm, -1, &r_int)); + printf("vararg_x : %i\n", r_int); + + PRINT_TITLE("test keyword call"); + check(pkpy_exec(vm, "def keyword_x(x=1, y=1) : return x+y")); + check(pkpy_getglobal(vm, pkpy_name("keyword_x"))); + check(pkpy_push_null(vm)); + check(pkpy_push_int(vm, 3)); + check(pkpy_vectorcall(vm, 1)); + check(pkpy_to_int(vm, -1, &r_int)); + printf("keyword_x : %i\n", r_int); // 3+1 + + check(pkpy_getglobal(vm, pkpy_name("keyword_x"))); + check(pkpy_push_null(vm)); + check(pkpy_vectorcall(vm, 0)); + check(pkpy_to_int(vm, -1, &r_int)); + printf("keyword_x : %i\n", r_int); // 1+1 + check(pkpy_stack_size(vm) == 4); + check(pkpy_pop(vm, 4)); // clear stack + + PRINT_TITLE("test return many"); + check(pkpy_exec(vm, "def retmany_x() : return 1, 2, 3")); + check(pkpy_getglobal(vm, pkpy_name("retmany_x"))); + check(pkpy_push_null(vm)); + check(pkpy_vectorcall(vm, 0)); + + check(pkpy_stack_size(vm) == 1); + check(pkpy_unpack_sequence(vm, 3)); + check(pkpy_stack_size(vm) == 3); + + check(pkpy_to_int(vm, -3, &r_int)); + printf("retmany_x : %i\n", r_int); + check(pkpy_to_int(vm, -2, &r_int)); + printf("retmany_x : %i\n", r_int); + check(pkpy_to_int(vm, -1, &r_int)); + printf("retmany_x : %i\n", r_int); + + // test argument error + check(pkpy_getglobal(vm, pkpy_name("x"))); + check(pkpy_push_null(vm)); + error(pkpy_vectorcall(vm, 0)); + + check(pkpy_exec(vm, "l = []")); + check(pkpy_getglobal(vm, pkpy_name("l"))); + check(pkpy_get_unbound_method(vm, pkpy_name("append"))); + check(pkpy_push_string(vm, pkpy_string("hello"))); + check(pkpy_vectorcall(vm, 1)); + check(pkpy_pop_top(vm)); // pop None returned by append() + check(pkpy_exec(vm, "print(l)")); + + PRINT_TITLE("test bindings"); + check(pkpy_push_function(vm, "test_binding()", test_binding)); + check(pkpy_setglobal(vm, pkpy_name("test_binding"))); + check(pkpy_exec(vm, "print(test_binding())")); + check(pkpy_stack_size(vm) == 0); + + check(pkpy_push_function(vm, "test_multiple_return()", test_multiple_return)); + check(pkpy_setglobal(vm, pkpy_name("test_multiple_return"))); + check(pkpy_stack_size(vm) == 0); + + check(pkpy_push_function(vm, "test_default_argument(x=5)", test_default_argument)); + check(pkpy_push_null(vm)); + check(pkpy_vectorcall(vm, 0)); + check(pkpy_stack_size(vm) == 1); + check(pkpy_is_bool(vm, -1) == true); + check(pkpy_to_bool(vm, -1, &r_bool)); + check(r_bool == true); + check(pkpy_pop_top(vm)); + check(pkpy_stack_size(vm) == 0); + + PRINT_TITLE("test bindings 2"); + check(pkpy_push_function(vm, "test_minus(a, b)", test_minus)); + check(pkpy_setglobal(vm, pkpy_name("test_minus"))); + check(pkpy_exec(vm, "print(test_minus(5, 3))")); + check(pkpy_exec(vm, "for i in range(5): print(test_minus(5, i))")); + check(pkpy_stack_size(vm) == 0); + + PRINT_TITLE("test bindings fib"); + check(pkpy_push_function(vm, "test_fib(n: int) -> int", test_fib)); + check(pkpy_setglobal(vm, pkpy_name("test_fib"))); + check(pkpy_exec(vm, "print(test_fib(10))")); + check(pkpy_stack_size(vm) == 0); + + PRINT_TITLE("test error propagate"); + check(pkpy_push_function(vm, "test_error_propagate()", test_error_propagate)); + check(pkpy_setglobal(vm, pkpy_name("test_error_propagate"))); + error(pkpy_exec(vm, "test_error_propagate()")); + + check(pkpy_getglobal(vm, pkpy_name("test_multiple_return"))); + check(pkpy_push_null(vm)); + check(pkpy_vectorcall(vm, 0)); + check(pkpy_stack_size(vm) == 1); + check(pkpy_unpack_sequence(vm, 2)); + check(pkpy_stack_size(vm) == 2); + check(pkpy_pop(vm, 2)); + check(pkpy_stack_size(vm) == 0); + + PRINT_TITLE("test other errors"); + check(pkpy_getglobal(vm, pkpy_name("test_error_propagate"))); + check(pkpy_pop_top(vm)); + fail(pkpy_getglobal(vm, pkpy_name("nonexistant"))); + error(pkpy_exec(vm, "raise NameError('testing error throwing from python')")); + + PRINT_TITLE("test TypeError"); + check(pkpy_push_float(vm, 2.0)); + error(pkpy_to_int(vm, -1, &r_int)); + + PRINT_TITLE("test complicated errors"); + pkpy_exec(vm, "test_error_propagate()"); + check(pkpy_check_error(vm)); + pkpy_clear_error(vm, NULL); + + //this should be catchable + check(pkpy_exec(vm, "try : test_error_propagate(); except NameError : pass")); + error(pkpy_error(vm, "Exception", pkpy_string("test direct error mechanism"))); + + //more complicated error handling + check(pkpy_exec(vm, "def error_from_python() : raise NotImplementedError()")); + check(pkpy_push_function(vm, "test_nested_error()", test_nested_error)); + check(pkpy_setglobal(vm, pkpy_name("test_nested_error"))); + error(pkpy_exec(vm, "test_nested_error()")); + + PRINT_TITLE("test getattr/setattr"); + check(pkpy_stack_size(vm) == 0); + check(pkpy_exec(vm, "import math")); + check(pkpy_getglobal(vm, pkpy_name("math"))); + check(pkpy_getattr(vm, pkpy_name("pi"))); + check(pkpy_to_float(vm, -1, &r_float)); + printf("pi: %.2f\n", (float)r_float); + check(pkpy_pop(vm, 1)); + + // math.pi = 2 + check(pkpy_push_int(vm, 2)); + check(pkpy_eval(vm, "math")); + check(pkpy_setattr(vm, pkpy_name("pi"))); + check(pkpy_exec(vm, "print(math.pi)")); + + PRINT_TITLE("test eval"); + check(pkpy_eval(vm, "math.pi")); + check(pkpy_to_float(vm, -1, &r_float)); + printf("pi: %.2f\n", (float)r_float); + check(pkpy_pop(vm, 1)); + check(pkpy_stack_size(vm) == 0); + + PRINT_TITLE("test py_repr"); + check(pkpy_eval(vm, "['1', 2, (3, '4')]")); + check(pkpy_py_repr(vm)); + check(pkpy_to_string(vm, -1, &r_string)); + + puts(r_string); + check(pkpy_pop_top(vm)); + check(pkpy_stack_size(vm) == 0); + return 0; +} diff --git a/dependencies/pocketpy/c_bindings/test_answers.txt b/dependencies/pocketpy/c_bindings/test_answers.txt new file mode 100644 index 0000000..ee51443 --- /dev/null +++ b/dependencies/pocketpy/c_bindings/test_answers.txt @@ -0,0 +1,112 @@ + +====== test basic exec ====== +hello world! + +====== test int methods ====== +11 +11 +1 + +====== test float methods ====== +11.125 +11.125 + +====== test bool methods ====== +False +0 + +====== test string methods ====== +hello! +hello! + +====== test none methods ====== +None + +====== test voidp methods ====== + +123 + +====== test sizing and indexing ====== +stack size 6 + +====== test error catching ====== +successfully errored with this message: + File "main.py", line 1 + let's make sure syntax errors get caught +SyntaxError: EOL while scanning string literal + +====== test simple call ====== +x : -1 + +====== test vararg call ====== +vararg_x : 21 + +====== test keyword call ====== +keyword_x : 4 +keyword_x : 2 + +====== test return many ====== +retmany_x : 1 +retmany_x : 2 +retmany_x : 3 +successfully errored with this message: +TypeError: x() takes 2 positional arguments but 0 were given +['hello'] + +====== test bindings ====== +12 + +====== test bindings 2 ====== +2 +5 +4 +3 +2 +1 + +====== test bindings fib ====== +55 + +====== test error propagate ====== +successfully errored with this message: +Traceback (most recent call last): + File "main.py", line 1 + test_error_propagate() +NameError: catch me + +====== test other errors ====== +successfully errored with this message: +Traceback (most recent call last): + File "main.py", line 1 + raise NameError('testing error throwing from python') +NameError: testing error throwing from python + +====== test TypeError ====== +successfully errored with this message: +TypeError: expected 'int', got 'float' + +====== test complicated errors ====== +Traceback (most recent call last): + File "main.py", line 1 + test_error_propagate() +NameError: catch me +successfully errored with this message: +Traceback (most recent call last): +Exception: test direct error mechanism +successfully errored with this message: +Traceback (most recent call last): + File "main.py", line 1 + test_nested_error() + File "main.py", line 1, in error_from_python + def error_from_python() : raise NotImplementedError() +NotImplementedError + +====== test getattr/setattr ====== +pi: 3.14 +2 + +====== test eval ====== +pi: 2.00 + +====== test py_repr ====== +['1', 2, (3, '4')] diff --git a/dependencies/pocketpy/cmake_build.py b/dependencies/pocketpy/cmake_build.py new file mode 100644 index 0000000..8cb2b37 --- /dev/null +++ b/dependencies/pocketpy/cmake_build.py @@ -0,0 +1,25 @@ +import os +import sys +import shutil + +assert os.system("python prebuild.py") == 0 + +if not os.path.exists("build"): + os.mkdir("build") + +os.chdir("build") + +code = os.system("cmake .. -DPK_USE_CJSON=ON -DPK_ENABLE_OS=ON -DCMAKE_BUILD_TYPE=Release") +assert code == 0 +code = os.system("cmake --build . --config Release") +assert code == 0 + +if sys.platform == "win32": + shutil.copy("Release/main.exe", "../main.exe") + shutil.copy("Release/pocketpy.dll", "../pocketpy.dll") +elif sys.platform == "darwin": + shutil.copy("main", "../main") + shutil.copy("libpocketpy.dylib", "../libpocketpy.dylib") +else: + shutil.copy("main", "../main") + shutil.copy("libpocketpy.so", "../libpocketpy.so") diff --git a/dependencies/pocketpy/compile_flags.txt b/dependencies/pocketpy/compile_flags.txt new file mode 100644 index 0000000..6a6ce7e --- /dev/null +++ b/dependencies/pocketpy/compile_flags.txt @@ -0,0 +1,11 @@ +-xc++ + +-Wall +-W* + +-std=c++17 +-stdlib=libc++ + +-Iinclude/ +-I3rd/cjson/include/ +-I3rd/lua_bridge/include/ diff --git a/dependencies/pocketpy/docs/C-API/call.md b/dependencies/pocketpy/docs/C-API/call.md new file mode 100644 index 0000000..e52fe92 --- /dev/null +++ b/dependencies/pocketpy/docs/C-API/call.md @@ -0,0 +1,19 @@ +--- +title: Call +icon: dot +order: 6 +--- + +### `bool pkpy_vectorcall(pkpy_vm*, int argc)` + +Wraps `vm->vectorcall(argc)`. This function is used to call a function with a fixed number of arguments. The arguments are popped from the stack. The return value is pushed onto the stack. + +1. First push the function to call. +2. Push `self` argument if it is a method call. Otherwise, call `pkpy_push_null`. +3. Push arguments from left to right. + +!!! +Unlike lua, a python function always returns a value. +If the function returns `void`, it will push `None` onto the stack. +You can call `pkpy_pop_top` to discard the return value. +!!! \ No newline at end of file diff --git a/dependencies/pocketpy/docs/C-API/error.md b/dependencies/pocketpy/docs/C-API/error.md new file mode 100644 index 0000000..ca38a35 --- /dev/null +++ b/dependencies/pocketpy/docs/C-API/error.md @@ -0,0 +1,23 @@ +--- +title: Error Handling +icon: dot +order: 5 +--- + +#### `bool pkpy_clear_error(pkpy_vm*, char** message)` + ++ If a method returns false, call the `pkpy_clear_error` method to check the error and clear it ++ If `pkpy_clear_error` returns false, it means that no error was set, and it takes no action ++ If `pkpy_clear_error` returns true, it means there was an error and it was cleared. It will provide a string summary of the error in the message parameter if it is not `NULL`. + +!!! +You are responsible for freeing `message`. +!!! + +#### `bool pkpy_check_error(pkpy_vm*)` + +Return true if the vm is currently in an error state. + +#### `bool pkpy_error(pkpy_vm*, const char* name, pkpy_CString message)` + +Set the error state of the vm. It is almost equivalent to `raise` in python. diff --git a/dependencies/pocketpy/docs/C-API/index.yml b/dependencies/pocketpy/docs/C-API/index.yml new file mode 100644 index 0000000..15195ec --- /dev/null +++ b/dependencies/pocketpy/docs/C-API/index.yml @@ -0,0 +1,3 @@ +label: C-API +icon: code +order: 1 \ No newline at end of file diff --git a/dependencies/pocketpy/docs/C-API/introduction.md b/dependencies/pocketpy/docs/C-API/introduction.md new file mode 100644 index 0000000..397e874 --- /dev/null +++ b/dependencies/pocketpy/docs/C-API/introduction.md @@ -0,0 +1,42 @@ +--- +title: Introduction +icon: dot +order: 10 +--- + +### What C-API is for + +The C-APIs are designed for these purposes: + +1. Your target platform does not support C++17. You compile pkpy into a static library and use its exported C-APIs. +2. You want to write a native module that can be imported via `__import__` at runtime. By using C-APIs, the module is portable across different compilers without C++ ABI compatibility issues. + +Our C-APIs take a lot of inspiration from the lua C-APIs. +Methods return a `bool` indicating if the operation succeeded or not. +Special thanks for [@koltenpearson](https://github.com/koltenpearson)'s contribution. + +!!! +C-APIs are always stable and backward compatible. +!!! + +### Basic functions + ++ `pkpy_vm* pkpy_new_vm(bool enable_os)` + + Wraps `new VM(enable_os)` in C++. + ++ `void pkpy_delete_vm(pkpy_vm*)` + + Wraps `delete vm` in C++. + ++ `bool pkpy_exec(pkpy_vm*, const char* source)` + + Wraps `vm->exec`. Execute a string of source code. + ++ `bool pkpy_exec_2(pkpy_vm*, const char* source, const char* filename, int mode, const char* module)` + + Wraps `vm->exec_2`. Execute a string of source code with more options. + ++ `void pkpy_set_main_argv(pkpy_vm*, int argc, char** argv)` + + Wraps `vm->set_main_argv`. Set the `sys.argv` before executing scripts. diff --git a/dependencies/pocketpy/docs/C-API/specials.md b/dependencies/pocketpy/docs/C-API/specials.md new file mode 100644 index 0000000..ce6f3bf --- /dev/null +++ b/dependencies/pocketpy/docs/C-API/specials.md @@ -0,0 +1,21 @@ +--- +title: Specials +icon: dot +order: 6 +--- + ++ `void pkpy_free(void* p)` + + Wraps `free(p)` in C++. + ++ `pkpy_CString pkpy_string(const char*)` + + Construct a `pkpy_CString` from a null-terminated C string. + ++ `pkpy_CName pkpy_name(const char*)` + + Construct a `pkpy_CName` from a null-terminated C string. You should cache the result of this function if you are going to use it multiple times. + ++ `pkpy_CString pkpy_name_to_string(pkpy_CName)` + + Convert a `pkpy_CName` to a `pkpy_CString`. \ No newline at end of file diff --git a/dependencies/pocketpy/docs/C-API/stack.md b/dependencies/pocketpy/docs/C-API/stack.md new file mode 100644 index 0000000..f3c6636 --- /dev/null +++ b/dependencies/pocketpy/docs/C-API/stack.md @@ -0,0 +1,153 @@ +--- +title: Stack Manipulation +icon: dot +order: 8 +--- + +### Basic manipulation + ++ `bool pkpy_dup(pkpy_vm*, int)` + + Duplicate the value at the given index. + ++ `bool pkpy_pop(pkpy_vm*, int)` + + Pop `n` values from the stack. + ++ `bool pkpy_pop_top(pkpy_vm*)` + + Pop the top value from the stack. + ++ `bool pkpy_dup_top(pkpy_vm*)` + + Duplicate the top value on the stack. + ++ `bool pkpy_rot_two(pkpy_vm*)` + + Swap the top two values on the stack. + ++ `int pkpy_stack_size(pkpy_vm*)` + + Get the element count of the stack. + + +### Basic push, check and convert + ++ `pkpy_push_xxx` pushes a value onto the stack. ++ `pkpy_is_xxx` checks if the value at the given index is of the given type. ++ `pkpy_to_xxx` converts the value at the given index to the given type. + +Stack index is 0-based instead of 1-based. And it can be negative, which means the index is counted from the top of the stack. + +```c +// int +PK_EXPORT bool pkpy_push_int(pkpy_vm*, int); +PK_EXPORT bool pkpy_is_int(pkpy_vm*, int i); +PK_EXPORT bool pkpy_to_int(pkpy_vm*, int i, int* out); + +// float +PK_EXPORT bool pkpy_push_float(pkpy_vm*, double); +PK_EXPORT bool pkpy_is_float(pkpy_vm*, int i); +PK_EXPORT bool pkpy_to_float(pkpy_vm*, int i, double* out); + +// bool +PK_EXPORT bool pkpy_push_bool(pkpy_vm*, bool); +PK_EXPORT bool pkpy_is_bool(pkpy_vm*, int i); +PK_EXPORT bool pkpy_to_bool(pkpy_vm*, int i, bool* out); + +// string +PK_EXPORT bool pkpy_push_string(pkpy_vm*, pkpy_CString); +PK_EXPORT bool pkpy_is_string(pkpy_vm*, int i); +PK_EXPORT bool pkpy_to_string(pkpy_vm*, int i, pkpy_CString* out); + +// void_p +PK_EXPORT bool pkpy_push_voidp(pkpy_vm*, void*); +PK_EXPORT bool pkpy_is_voidp(pkpy_vm*, int i); +PK_EXPORT bool pkpy_to_voidp(pkpy_vm*, int i, void** out); + +// none +PK_EXPORT bool pkpy_push_none(pkpy_vm*); +PK_EXPORT bool pkpy_is_none(pkpy_vm*, int i); +``` + +### Special push + ++ `pkpy_push_null(pkpy_vm*)` + + Push a `PY_NULL` onto the stack. It is used for `pkpy_vectorcall`. + ++ `pkpy_push_function(pkpy_vm*, const char* sig, pkpy_CFunction f)` + + Push a function onto the stack. `sig` is the function signature, e.g. `add(a: int, b: int) -> int`. `f` is the function pointer. + ++ `pkpy_push_module(pkpy_vm*, const char* name)` + + Push a new module onto the stack. `name` is the module name. This is not `import`. It creates a new module object. + +### Variable access + ++ `bool pkpy_getattr(pkpy_vm*, pkpy_CName name)` + + Push `b.` onto the stack. Return false if the attribute is not found. + + ``` + [b] -> [b.] + ``` + ++ `bool pkpy_setattr(pkpy_vm*, pkpy_CName name)` + + Set `b.` to the value at the top of the stack. + First push the value, then push `b`. + + ``` + [value, b] -> [] + ``` + ++ `bool pkpy_getglobal(pkpy_vm*, pkpy_CName name)` + + Push a global/builtin variable onto the stack. Return false if the variable is not found. + + ``` + [] -> [value] + ``` + ++ `bool pkpy_setglobal(pkpy_vm*, pkpy_CName name)` + + Set a global variable to the value at the top of the stack. + + ``` + [value] -> [] + ``` + ++ `bool pkpy_eval(pkpy_vm*, const char* source)` + + Evaluate a string and push the result onto the stack. + + ``` + [] -> [result] + ``` + ++ `bool pkpy_unpack_sequence(pkpy_vm*, int size)` + + Unpack a sequence at the top of the stack. `size` is the element count of the sequence. + + ``` + [a] -> [a[0], a[1], ..., a[size - 1]] + ``` + ++ `bool pkpy_get_unbound_method(pkpy_vm*, pkpy_CName name)` + + It is used for method call. + Get an unbound method from the object at the top of the stack. `name` is the method name. + Also push the object as self. + + ``` + [obj] -> [obj. self] + ``` ++ `bool pkpy_py_repr(pkpy_vm*)` + + Get the repr of the value at the top of the stack. + + ``` + [value] -> [repr(value)] + ``` \ No newline at end of file diff --git a/dependencies/pocketpy/docs/bindings.md b/dependencies/pocketpy/docs/bindings.md new file mode 100644 index 0000000..b2912d1 --- /dev/null +++ b/dependencies/pocketpy/docs/bindings.md @@ -0,0 +1,267 @@ +--- +icon: cpu +title: Write Bindings +order: 18 +--- + +In order to use a C/C++ library in python, you need to write bindings for it. + +## Manual bindings + +pkpy uses an universal signature to wrap a function pointer as a python function or method that can be called in python code, i.e `NativeFuncC`. + +```cpp +typedef PyObject* (*NativeFuncC)(VM*, ArgsView); +``` ++ The first argument is the pointer of `VM` instance. ++ The second argument is an array-like object indicates the arguments list. You can use `[]` operator to get the element and call `size()` to get the length of the array. ++ The return value is a `PyObject*`, which should not be `nullptr`. If there is no return value, return `vm->None`. + +### Bind a function or method + +Use `vm->bind` to bind a function or method. + ++ `PyObject* bind(PyObject*, const char* sig, NativeFuncC)` ++ `PyObject* bind(PyObject*, const char* sig, const char* docstring, NativeFuncC)` + +```cpp + +vm->bind(obj, "add(a: int, b: int) -> int", [](VM* vm, ArgsView args){ + int a = py_cast(vm, args[0]); + int b = py_cast(vm, args[1]); + return py_var(vm, a + b); +}); + +// or you can provide a docstring +vm->bind(obj, + "add(a: int, b: int) -> int", + "add two integers", [](VM* vm, ArgsView args){ + int a = py_cast(vm, args[0]); + int b = py_cast(vm, args[1]); + return py_var(vm, a + b); +}); +``` + +#### How to capture something + +By default, the lambda being bound is a C function pointer, +you cannot capture anything! The following example does not compile. + +```cpp +int x = 1; +vm->bind(obj, "f() -> int", [x](VM* vm, ArgsView args){ + // error: cannot capture 'x' + return py_var(vm, x); +}); +``` + +I do not encourage you to capture something in a lambda being bound +because: +1. Captured lambda runs slower and causes "code-bloat". +2. Captured values are unsafe, especially for `PyObject*` as they could leak by accident. + +However, there are 3 ways to capture something when you really need to. +The most safe and elegant way is to subclass `VM` and add a member variable. + +```cpp +class YourVM : public VM{ +public: + int x; + YourVM() : VM() {} +}; + +int main(){ + YourVM* vm = new YourVM(); + vm->x = 1; + vm->bind(obj, "f() -> int", [](VM* _vm, ArgsView args){ + // do a static_cast and you can get any extra members of YourVM + YourVM* vm = static_cast(_vm); + return py_var(vm, vm->x); + }); + return 0; +} +``` + +The 2nd way is to use `vm->bind`'s last parameter `userdata`, you can store a POD type smaller than 8 bytes. +And use `lambda_get_userdata(args.begin())` to get it inside the lambda body. + +```cpp +int x = 1; +vm->bind(obj, "f() -> int", [](VM* vm, ArgsView args){ + // get the userdata + int x = lambda_get_userdata(args.begin()); + return py_var(vm, x); +}, x); // capture x +``` + +The 3rd way is to change the macro `PK_ENABLE_STD_FUNCTION` in `config.h`: +```cpp +#define PK_ENABLE_STD_FUNCTION 0 // => 1 +``` + +Then you can use standard capture list in lambda. + +### Bind a struct + +Assume you have a struct `Point` declared as follows. + +```cpp +struct Point{ + int x; + int y; +} +``` + +You can write a wrapper class `wrapped__Point`. Add `PY_CLASS` macro into your wrapper class and implement a static function `_register`. + +Inside the `_register` function, do bind methods and properties. + +```cpp +PY_CLASS(T, mod, name) + +// T is the struct type in cpp +// mod is the module name in python +// name is the class name in python +``` + +### Example + +```cpp +struct wrapped__Point{ + // special macro for wrapper class + PY_CLASS(wrapped__Point, builtins, Point) + // ^T ^module ^name + + // wrapped value + Point value; + + // special method _ returns a pointer of the wrapped value + Point* _() { return &value; } + + // define default constructors + wrapped__Point() = default; + wrapped__Point(const wrapped__Point&) = default; + + // define wrapped constructor + wrapped__Point(Point value){ + this->value = value; + } + + static void _register(VM* vm, PyObject* mod, PyObject* type){ + // enable default constructor and struct-like methods + // if you don't use this, you must bind a `__new__` method as constructor + PY_STRUCT_LIKE(wrapped__Point) + + // wrap field x + PY_FIELD(wrapped__Point, "x", _, x) + // wrap field y + PY_FIELD(wrapped__Point, "y", _, y) + + // __init__ method + vm->bind(type, "__init__(self, x, y)", [](VM* vm, ArgsView args){ + wrapped__Point& self = _py_cast(vm, args[0]); + self.value.x = py_cast(vm, args[1]); + self.value.y = py_cast(vm, args[2]); + return vm->None; + }); + + // other custom methods + // ... + } +} + +int main(){ + VM* vm = new VM(); + // register the wrapper class somewhere + wrapped__Point::register_class(vm, vm->builtins); + + // use the Point class + vm->exec("a = Point(1, 2)"); + vm->exec("print(a.x)"); // 1 + vm->exec("print(a.y)"); // 2 + + delete vm; + return 0; +} +``` + +#### Handle gc for container types + +If your custom type stores `PyObject*` in its fields, you need to handle gc for them. + +```cpp +struct Container{ + PY_CLASS(Container, builtins, Container) + + PyObject* a; + std::vector b; + // ... +} +``` + +Add a magic method `_gc_mark() const` to your custom type. + +```cpp +struct Container{ + PY_CLASS(Container, builtins, Container) + + PyObject* a; + std::vector b; + // ... + + void _gc_mark() const{ + // mark a + if(a) PK_OBJ_MARK(a); + + // mark elements in b + for(PyObject* obj : b){ + if(obj) PK_OBJ_MARK(obj); + } + } +} +``` + +For global objects, use the callback in `vm->heap`. +```cpp +void (*_gc_marker_ex)(VM*) = nullptr; +``` +It will be invoked before a GC starts. So you can mark objects inside the callback to keep them alive. + +### Others + +You may see somewhere in the code that `vm->bind_method<>` or `vm->bind_func<>` is used. +They are old style binding functions and are deprecated. +It is recommended to use `vm->bind`. + +For some magic methods, we provide specialized binding function. +They do not take universal function pointer as argument. +You need to provide the detailed `Type` object and the corresponding function pointer. + +```cpp +PyObject* f_add(VM* vm, PyObject* lhs, PyObject* rhs){ + int a = py_cast(vm, lhs); + int b = py_cast(vm, rhs); + return py_var(vm, a + b); +} + +vm->bind__add__(vm->tp_int, f_add); +``` + +This specialized binding function has optimizations and result in better performance when calling from python code. + +For example, `vm->bind__add__` is preferred over `vm->bind_method<1>(type, "__add__", ...)`. + + +## Automatic bindings + +pkpy supports automatic binding generation **only for C libraries**. +See [pkpy-bindings](https://github.com/blueloveTH/pkpy-bindings) for details. + +It takes a C header file and generates a python module stub (`*.pyi`) and a C++ binding file (`*.cpp`). + + +## Further reading + +See [random.cpp](https://github.com/pocketpy/pocketpy/blob/main/src/random.cpp) for an example used by `random` module. + +See [collections.cpp](https://github.com/pocketpy/pocketpy/blob/main/src/collections.cpp) for a modern implementation of `collections.deque`. \ No newline at end of file diff --git a/dependencies/pocketpy/docs/bindings_lua.md b/dependencies/pocketpy/docs/bindings_lua.md new file mode 100644 index 0000000..bbcad7d --- /dev/null +++ b/dependencies/pocketpy/docs/bindings_lua.md @@ -0,0 +1,104 @@ +--- +icon: cpu +title: Reuse Lua Bindings +order: 17 +--- + +!!! +This feature is available in `v1.4.0` or higher. +!!! + +pkpy provides a lua bridge to reuse lua bindings. +It allows you to run lua code and call lua functions in python +by embedding a lua virtual machine. + +Add `lua_bridge.hpp` and `lua_bridge.cpp` in [3rd/lua_bridge](https://github.com/pocketpy/pocketpy/tree/main/3rd/lua_bridge) to your project. +Make sure `lua.h`, `lualib.h` and `lauxlib.h` are in your include path +because `lua_bridge.hpp` needs them. + +The lua bridge is based on lua 5.1.5 for maximum compatibility. +lua 5.2 or higher should also work. + +### Setup + +Use `initialize_lua_bridge(VM*, lua_State*)` to initialize the lua bridge. +This creates a new module `lua` in your python virtual machine. + +You can use `lua.dostring` to execute lua code and get the result. +And use `lua.Table()` to create a lua table. +A `lua.Table` instance in python is a dict-like object which provides a bunch of +magic methods to access the underlying lua table. + +```python +class Table: + def keys(self) -> list: + """Return a list of keys in the table.""" + + def values(self) -> list: + """Return a list of values in the table.""" + + def items(self) -> list[tuple]: + """Return a list of (key, value) pairs in the table.""" + + def __len__(self) -> int: + """Return the length of the table.""" + + def __contains__(self, key) -> bool: + """Return True if the table contains the key.""" + + def __getitem__(self, key): ... + def __setitem__(self, key, value): ... + def __delitem__(self, key): ... + def __getattr__(self, key): ... + def __setattr__(self, key, value): ... + def __delattr__(self, key): ... +``` + +Only basic types can be passed between python and lua. +The following table shows the type mapping. +If you pass an unsupported type, an exception will be raised. + +| Python type | Lua type | Allow create in Python? | Reference? | +| ----------- | -------- | ---------------------- | --------- | +| `None` | `nil` | YES | NO | +| `bool` | `boolean` | YES | NO | +| `int` | `number` | YES | NO | +| `float` | `number` | YES | NO | +| `str` | `string` | YES | NO | +| `tuple` | `table` | YES | NO | +| `list` | `table` | YES | NO | +| `dict` | `table` | YES | NO | +| `lua.Table` | `table` | YES | YES | +| `lua.Function`| `function`| NO | YES | + +### Example +```cpp +#include "lua_bridge.hpp" + +using namespace pkpy; + +int main(){ + VM* vm = new VM(); + + // create lua state + lua_State* L = luaL_newstate(); + luaL_openlibs(L); + + // initialize lua bridge + initialize_lua_bridge(vm, L); + + // dostring to get _G + vm->exec("import lua"); + vm->exec("g = lua.dostring('return _G')"); + + // create a table + vm->exec("t = lua.Table()"); + vm->exec("t.a = 1"); + vm->exec("t.b = 2"); + + // call lua function + vm->exec("g.print(t.a + t.b)"); // 3 + + return 0; +} +``` \ No newline at end of file diff --git a/dependencies/pocketpy/docs/cheatsheet.md b/dependencies/pocketpy/docs/cheatsheet.md new file mode 100644 index 0000000..5d80e56 --- /dev/null +++ b/dependencies/pocketpy/docs/cheatsheet.md @@ -0,0 +1,342 @@ +--- +icon: log +title: 'Cheatsheet' +order: 22 +--- + +## Basics + +Setup pocketpy + +```cpp +#include "pocketpy.h" +using namespace pkpy; +``` + +Create a python virtual machine + +```cpp +VM* vm = new VM(); +``` + +Dispose a python virtual machine + +```cpp +delete vm; +``` + +Execute a source string + +```cpp +vm->exec("print('Hello!')"); +``` + +Evaluate a source string + +```cpp +PyObject* obj = vm->eval("123"); +std::cout << py_cast(vm, obj); // 123 +``` + +Compile a source string into a code object + +```cpp +CodeObject_ co = vm->compile("print('Hello!')", "main.py", EXEC_MODE); +``` + +Execute a compiled code object + +```cpp +try{ + vm->_exec(co); // may throw +}catch(Exception& e){ + std::cerr << e.summary() << std::endl; +} +``` + +## Interop with native types + +Create primitive objects + +```cpp +PyObject* obj; +obj = py_var(vm, 1); // create a int +obj = py_var(vm, 1.0); // create a float +obj = py_var(vm, "123"); // create a string +obj = py_var(vm, true); // create a bool +``` + +Create a tuple object + +```cpp +// obj = (1, 1.0, '123') +Tuple t(3); +t[0] = py_var(vm, 1); +t[1] = py_var(vm, 1.0); +t[2] = py_var(vm, "123"); +PyObject* obj = py_var(vm, std::move(t)); +``` + +Create a list object + +```cpp +// obj = [1, 1.0, '123'] +List t; +t.push_back(py_var(vm, 1)); +t.push_back(py_var(vm, 1.0)); +t.push_back(py_var(vm, "123")); +PyObject* obj = py_var(vm, std::move(t)); +``` + +Create a dict object + +```cpp +// obj = {'x': 1, 'y': '123'} +Dict d(vm); +d.set(py_var(vm, "x"), py_var(vm, 1)); +d.set(py_var(vm, "y"), py_var(vm, "123")); +PyObject* obj = py_var(vm, std::move(d)); +``` + +Get native types from python objects + +```cpp +PyObject* obj; +i64 a = py_cast(vm, obj); +f64 b = py_cast(vm, obj); +Str& c = py_cast(vm, obj); // reference cast +bool d = py_cast(vm, obj); + +Tuple& e = py_cast(vm, obj); // reference cast +List& f = py_cast(vm, obj); // reference cast +Dict& g = py_cast(vm, obj); // reference cast +``` + +Get native types without type checking + +```cpp +// unsafe version 1 (for int and float you must use `_py_cast`) +i64 a = _py_cast(vm, obj); +f64 b = _py_cast(vm, obj); +Tuple& c = _py_cast(vm, obj); +// unsafe version 2 (for others, you can use both versions) +Str& a_ = PK_OBJ_GET(Str, obj); +List& b_ = PK_OBJ_GET(List, obj); +Tuple& c_ = PK_OBJ_GET(Tuple, obj); +``` + +## Access python types + +Access built-in python types + +```cpp +PyObject* int_t = vm->_t(vm->tp_int); +PyObject* float_t = vm->_t(vm->tp_float); +PyObject* object_t = vm->_t(vm->tp_object); +PyObject* tuple_t = vm->_t(vm->tp_tuple); +PyObject* list_t = vm->_t(vm->tp_list); +``` + +Access extended python types + +```cpp +// VoidP was defined by `PY_CLASS` macro +PyObject* voidp_t = VoidP::_type(vm); +``` + +Check if an object is a python type + +```cpp +PyObject* obj; +bool ok = is_type(obj, vm->tp_int); // check if obj is an int +``` + +Get the type of a python object + +```cpp +PyObject* obj = py_var(vm, 1); +PyObject* t = vm->_t(obj); // +``` + +Convert a type object into a type index + +```cpp +PyObject* int_t = vm->_t(vm->tp_int); +Type t = PK_OBJ_GET(Type, int_t); +// t == vm->tp_int +``` + +## Access attributes + +Check an object supports attribute access + +```cpp +PyObject* obj; +bool ok = !is_tagged(obj) && obj->is_attr_valid(); +``` + +```python +class MyClass: + def __init__(self, x, y): + self.x = x + self.y = y + + def sum(self): + return self.x + self.y +``` + +Get and set attributes + +```cpp +PyObject* obj = vm->exec("MyClass(1, 2)"); +PyObject* x = vm->getattr(obj, "x"); // obj.x +vm->setattr(obj, "x", py_var(vm, 3)); // obj.x = 3 +``` + +## Call python functions + +```python +def add(a, b): + return a + b +``` + +Call a function + +```cpp +PyObject* f_add = vm->eval("add"); +PyObject* ret = vm->call(f_add, py_var(vm, 1), py_var(vm, 2)); +std::cout << py_cast(vm, ret); // 3 +``` + +Call a method + +```cpp +PyObject* obj = vm->exec("MyClass(1, 2)"); +PyObject* ret = vm->call_method(obj, "sum"); +std::cout << CAST(i64, ret); // 3 +``` + +Cache the name of a function or method to avoid string-based lookup + +```cpp +// cache the name "add" to avoid string-based lookup +const static StrName m_sum("sum"); +PyObject* ret = vm->call_method(obj, m_sum); +``` + +## Special operations + +Compare two python objects + +```cpp +PyObject* obj1 = py_var(vm, 1); +PyObject* obj2 = py_var(vm, 2); +bool ok = vm->py_eq(obj1, obj2); +``` + +Convert a python object to string + +```cpp +PyObject* obj = py_var(vm, 123); +PyObject* s = vm->py_str(obj); // 123 +``` + +Get the string representation of a python object + +```cpp +PyObject* obj = py_var(vm, "123"); +std::cout << vm->py_repr(obj); // '123' +``` + +Get the JSON representation of a python object + +```cpp +PyObject* obj = py_var(vm, 123); +std::cout << vm->py_json(obj); // "123" +``` + +Get the hash value of a python object + +```cpp +PyObject* obj = py_var(vm, 1); +i64 h = vm->py_hash(obj); // 1 +``` + +Get the iterator of a python object + +```cpp +PyObject* obj = vm->eval("range(3)"); +PyObject* iter = vm->py_iter(obj); +``` + +Get the next item of an iterator + +```cpp +PyObject* obj = vm->py_next(iter); +if(obj == vm->StopIteration){ + // end of iteration +} +``` + +Convert a python iterable to a list + +```cpp +PyObject* obj = vm->eval("range(3)"); +PyObject* list = vm->py_list(obj); +``` + +## Bindings + +Bind a native function + +```cpp +vm->bind(obj, "add(a: int, b: int) -> int", [](VM* vm, ArgsView args){ + int a = py_cast(vm, args[0]); + int b = py_cast(vm, args[1]); + return py_var(vm, a + b); +}); + +// Bind a native function with docstring + +vm->bind(obj, + "add(a: int, b: int) -> int", + "add two integers", [](VM* vm, ArgsView args){ + int a = py_cast(vm, args[0]); + int b = py_cast(vm, args[1]); + return py_var(vm, a + b); +}); +``` + +Bind a property + +```cpp + // getter and setter of property `x` + vm->bind_property(type, "x: int", + [](VM* vm, ArgsView args){ + Point& self = PK_OBJ_GET(Point, args[0]); + return VAR(self.x); + }, + [](VM* vm, ArgsView args){ + Point& self = PK_OBJ_GET(Point, args[0]); + self.x = py_cast(vm, args[1]); + return vm->None; + }); +``` + +## Modules + +Create a source module + +```cpp +vm->_lazy_modules["test"] = "pi = 3.14"; +// import test +// print(test.pi) # 3.14 +``` + +Create a native module + +```cpp +PyObject* mod = vm->new_module("test"); +vm->setattr(mod, "pi", py_var(vm, 3.14)); +``` + diff --git a/dependencies/pocketpy/docs/coding_style_guide.md b/dependencies/pocketpy/docs/coding_style_guide.md new file mode 100644 index 0000000..e5974ee --- /dev/null +++ b/dependencies/pocketpy/docs/coding_style_guide.md @@ -0,0 +1,106 @@ +--- +icon: book +order: -5 +label: Coding Style Guide +--- + +# Coding Style Guide + + +## For Python + +Use [PEP-8](https://www.python.org/dev/peps/pep-0008/) as the coding style guide. + +## For C++ + +### Naming rules + +For class names, always use **PascalCase** + +```cpp +// Correct +class FooBar {}; + +// Wrong +class fooBar {}; +class foo_bar {}; +``` + +For function and methods, use **snake_case** + +```cpp +// Correct +int test_func(int x) { return x+1; } + +// Wrong +int TestFunc(int x) { return x+1; } +int testFunc(int x) { return x+1; } +``` + +For special python objects, use the same name as in python. + +```cpp +auto x = vm->None; +vm->SyntaxError(...); +vm->TypeError(...); +vm->call(obj, __repr__); +``` + +For global constants, use **k** prefix with **PascalCase** + +```cpp +const int kMaxCount = 10; +const float kMinValue = 1.0; +``` + +For macros, use **SNAKE_CASE** + +```cpp +#define FOO_BAR 1 +#define TEST(x) x+1 +``` + +### Access control + +Please use python style access control. + +We do not recommend to use C++ keywords such as `private` or `public` to achieve access control. Also do not write any trivial setter/getter. + +Use a single `_` as prefix to indicate a function or variable is for internal use. + +```cpp +class FooBar { +public: + int _count; + int inc() { _count+=1; } + void _clear() { _count=0; } +} +``` + +`_` prefix is just a warning to remind you to use such members carefully. + +It does not forbid users to access internal members. + +### Use compact style + +Try to make the code compact if it does not affect readability. + +```cpp +// Correct +if(x == 1) break; + +// Wrong +if(x == 1){ + break; +} +``` + +### For `std::shared_ptr` + +Use a `_` suffix to indicate a type is a shared pointer. + +```cpp +using CodeObject_ = std::shared_ptr; +CodeObject_ co = std::make_shared(); +``` + diff --git a/dependencies/pocketpy/docs/features/basic.md b/dependencies/pocketpy/docs/features/basic.md new file mode 100644 index 0000000..a34a2e2 --- /dev/null +++ b/dependencies/pocketpy/docs/features/basic.md @@ -0,0 +1,92 @@ +--- +icon: dot +title: Basic Features +order: 100 +--- + +Check this [Cheatsheet](https://reference.pocketpy.dev/python.html) +for a quick overview of the supported features. + +The following table shows the basic features of pkpy with respect to [cpython](https://github.com/python/cpython). +The features marked with `YES` are supported, and the features marked with `NO` are not supported. + +| Name | Example | Supported | +| --------------- | ------------------------------- | --------- | +| If Else | `if..else..elif` | YES | +| Loop | `for/while/break/continue` | YES | +| Function | `def f(x,*args,y=1):` | YES | +| Subclass | `class A(B):` | YES | +| List | `[1, 2, 'a']` | YES | +| ListComp | `[i for i in range(5)]` | YES | +| Slice | `a[1:2], a[:2], a[1:]` | YES | +| Tuple | `(1, 2, 'a')` | YES | +| Dict | `{'a': 1, 'b': 2}` | YES | +| F-String | `f'value is {x}'` | YES | +| Unpacking | `a, b = 1, 2` | YES | +| Star Unpacking | `a, *b = [1, 2, 3]` | YES | +| Exception | `raise/try..catch..finally` | YES | +| Dynamic Code | `eval()/exec()` | YES | +| Reflection | `hasattr()/getattr()/setattr()` | YES | +| Import | `import/from..import` | YES | +| Context Block | `with as :` | YES | +| Type Annotation | `def f(a:int, b:float=1)` | YES | +| Generator | `yield i` | YES | +| Decorator | `@cache` | YES | + +## Supported magic methods + +#### Unary operators + ++ `__repr__` ++ `__str__` ++ `__hash__` ++ `__len__` ++ `__iter__` ++ `__next__` ++ `__neg__` + +#### Logical operators + ++ `__eq__` ++ `__lt__` ++ `__le__` ++ `__gt__` ++ `__ge__` ++ `__contains__` + +#### Binary operators + ++ `__add__` ++ `__radd__` ++ `__sub__` ++ `__rsub__` ++ `__mul__` ++ `__rmul__` ++ `__truediv__` ++ `__floordiv__` ++ `__mod__` ++ `__pow__` ++ `__matmul__` ++ `__lshift__` ++ `__rshift__` ++ `__and__` ++ `__or__` ++ `__xor__` ++ `__invert__` + +#### Indexer + ++ `__getitem__` ++ `__setitem__` ++ `__delitem__` + +#### Specials + ++ `__new__` ++ `__init__` ++ `__call__` ++ `__divmod__` ++ `__enter__` ++ `__exit__` ++ `__name__` ++ `__all__` diff --git a/dependencies/pocketpy/docs/features/debugging.md b/dependencies/pocketpy/docs/features/debugging.md new file mode 100644 index 0000000..aaae327 --- /dev/null +++ b/dependencies/pocketpy/docs/features/debugging.md @@ -0,0 +1,24 @@ +--- +icon: dot +title: Debugging +--- + +!!! +This feature is available in `v1.4.5` or higher. +!!! + +You can invoke `breakpoint()` in your python code to start a PDB-like session. + +The following commands are supported: + ++ `h, help`: show this help message ++ `q, quit`: exit the debugger ++ `n, next`: execute next line ++ `s, step`: step into ++ `w, where`: show current stack frame ++ `c, continue`: continue execution ++ `a, args`: show local variables ++ `l, list`: show lines around current line ++ `ll, longlist`: show all lines ++ `p, print `: evaluate expression ++ `!, execute statement`: execute statement diff --git a/dependencies/pocketpy/docs/features/differences.md b/dependencies/pocketpy/docs/features/differences.md new file mode 100644 index 0000000..069b873 --- /dev/null +++ b/dependencies/pocketpy/docs/features/differences.md @@ -0,0 +1,42 @@ +--- +icon: dot +title: Comparison with CPython +order: 99 +--- + +[cpython](https://github.com/python/cpython) is the reference implementation of the Python programming language. It is written in C and is the most widely used implementation of Python. + +## The design goal + +**pkpy aims to be an alternative to lua for +game scripting, not cpython for general purpose programming.** + ++ For syntax and semantics, pkpy is designed to be as close to cpython as possible. ++ For ecosystem and others, pkpy is not compatible with cpython. + +pkpy supports most of the syntax and semantics of python. +For performance and simplicity, some features are not implemented, or behave differently. +The easiest way to test a feature is to [try it on your browser](https://pocketpy.dev/static/web/). + +## Unimplemented features + +1. Descriptor protocol `__get__` and `__set__`. However, `@property` is implemented. +2. `__slots__` in class definition. +3. `else` clause in try..except. +4. Inplace methods like `__iadd__` and `__imul__`. +5. `__del__` in class definition. +6. Multiple inheritance. + +## Different behaviors + +1. positional and keyword arguments are strictly evaluated. +2. `++i` and `--j` is an increment/decrement statement, not an expression. +3. `int` does not derive from `bool`. +4. `int` is 64-bit. You can use `long` type explicitly for arbitrary sized integers. +5. `__ne__` is not required. Define `__eq__` is enough. +6. Raw string cannot have boundary quotes in it, even escaped. See [#55](https://github.com/pocketpy/pocketpy/issues/55). +7. In a starred unpacked assignment, e.g. `a, b, *c = x`, the starred variable can only be presented in the last position. `a, *b, c = x` is not supported. +8. A `Tab` is equivalent to 4 spaces. You can mix `Tab` and spaces in indentation, but it is not recommended. +9. `%`, `&`, `//`, `^` and `|` for `int` behave the same as C, not python. +10. `str.split` and `str.splitlines` will remove all empty entries. +11. `__getattr__`, `__setattr__` and `__delattr__` can only be set in cpp. diff --git a/dependencies/pocketpy/docs/features/goto.md b/dependencies/pocketpy/docs/features/goto.md new file mode 100644 index 0000000..e5c77fd --- /dev/null +++ b/dependencies/pocketpy/docs/features/goto.md @@ -0,0 +1,30 @@ +--- +icon: dot +title: Goto Statement +--- + +pkpy supports goto/label just like C. You are allowed to **change the control flow unconditionally**. + +## Define a label + +``` +== == +``` + +## Goto a label + +``` +-> +``` + +## Example + +```python +for i in range(10): + for j in range(10): + for k in range(10): + -> exit + +== exit == +print('exit') +``` diff --git a/dependencies/pocketpy/docs/features/incdec.md b/dependencies/pocketpy/docs/features/incdec.md new file mode 100644 index 0000000..672b92d --- /dev/null +++ b/dependencies/pocketpy/docs/features/incdec.md @@ -0,0 +1,23 @@ +--- +icon: dot +title: Increment Statement +--- + +pkpy provides `++i` and `--j` statements to operate a simple named `int` variable. + ++ `++i` is equivalent to `i+=1`, but much faster ++ `--j` is equivalent to `j-=1`, but much faster + +## Example + +```python +a = 1 +++a +assert a == 2 + +def f(a): + --a + return a + +assert f(3) == 2 +``` diff --git a/dependencies/pocketpy/docs/features/index.yml b/dependencies/pocketpy/docs/features/index.yml new file mode 100644 index 0000000..57da7e3 --- /dev/null +++ b/dependencies/pocketpy/docs/features/index.yml @@ -0,0 +1,3 @@ +icon: star +order: 16 +label: "Features" \ No newline at end of file diff --git a/dependencies/pocketpy/docs/features/long.md b/dependencies/pocketpy/docs/features/long.md new file mode 100644 index 0000000..90007f1 --- /dev/null +++ b/dependencies/pocketpy/docs/features/long.md @@ -0,0 +1,27 @@ +--- +icon: dot +title: Arbitrary Sized Integers +--- + +Unlike cpython, pkpy's `int` is of limited precision (64-bit). + +For arbitrary sized integers, we provide a builtin `long` type, just like python2's `long`. +`long` is implemented via pure python in [_long.py](https://github.com/pocketpy/pocketpy/blob/main/python/_long.py). + +### Create a long object + +You can use `L` suffix to create a `long` literal from a decimal literal. +Also, you can use `long()` function to create a `long` object from a `int` object or a `str` object. + +```python +a = 1000L +b = long(1000) +c = long('1000') +assert a == b == c +``` + +```python +a = 2L # use `L` suffix to create a `long` object +print(a ** 1000) +# 10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376L +``` diff --git a/dependencies/pocketpy/docs/features/precompile.md b/dependencies/pocketpy/docs/features/precompile.md new file mode 100644 index 0000000..46e5477 --- /dev/null +++ b/dependencies/pocketpy/docs/features/precompile.md @@ -0,0 +1,145 @@ +--- +icon: dot +title: Precompiling +--- + +pkpy allows you to precompile python code into two special forms, which can be executed later. + +### In-memory precompilation + +You can use `vm->compile` to compile your source code into a `CodeObject_` object. +This object can be executed later by `vm->_exec`. + +```cpp +CodeObject_ code = vm->compile("print('Hello, world!')", "", EXEC_MODE); +vm->_exec(code); // Hello, world! +``` + +This `CodeObject_` object is a very non-generic form of the compiled code, +which is an in-memory form. Very efficient, but not portable. +You are not able to save it to a file or load it from a file. + + +### String precompilation + +In order to save the compiled code to a file, you need to use `vm->precompile`. +It does some basic preprocessing and outputs the result as a human-readable string. + +```cpp +// precompile the source code into a string +Str source = vm->precompile("print('Hello, world!')", "", EXEC_MODE); + +CodeObject code = vm->compile(source, "", EXEC_MODE); +vm->_exec(code); // Hello, world! +``` + +You can also use python's `compile` function to achieve the same effect. + +```python +code = compile("print('Hello, world!')", "", "exec") +exec(code) # Hello, world! +``` + +Let's take a look at the precompiled string. +```python +print(code) +``` + +```txt +pkpy:1.4.5 +0 +=1 +print +=6 +5,1,0, +6,0,,, +42,,1, +8,,,S48656c6c6f2c20776f726c6421 +43,,0, +3,,, + +``` + +Comparing with **In-memory precompilation**, +**String precompilation** drops most of the information of the original source code. +It has an encryption effect, which can protect your source code from being stolen. +This also means there is no source line information when an error occurs. + +```python +src = """ +def f(a, b): + return g(a, b) + +def g(a, b): + c = f(a, b) + d = g(a, b) + return c + d +""" + +code = compile(src, "", "exec") +exec(code) +f(1, 2) +``` + +You will get this (without source line information): +```txt +Traceback (most recent call last): + File "", line 3, in f + File "", line 6, in g + File "", line 3, in f + File "", line 6, in g + File "", line 3, in f + File "", line 6, in g + File "", line 3, in f +StackOverflowError +``` + +instead of this (with source line information): + +```txt +Traceback (most recent call last): + File "", line 2, in f + return g(a, b) + File "", line 2, in g + c = f(a, b) + File "", line 2, in f + return g(a, b) + File "", line 2, in g + c = f(a, b) + File "", line 2, in f + return g(a, b) + File "", line 2, in g + c = f(a, b) + File "", line 2, in f + return g(a, b) +StackOverflowError +``` + +!!! +String compilation has no guarantee of compatibility between different versions of pkpy. +!!! + +You can use this snnipet to convert every python file in a directory into precompiled strings. + +```python +# precompile.py +import sys, os + +def precompile(filepath: str): + """Precompile a python file inplace""" + print(filepath) + with open(filepath, 'r') as f: + source = f.read() + source = compile(source, filepath, 'exec') + with open(filepath, 'w') as f: + f.write(source) + +def traverse(root: str): + """Traverse a directory and precompile every python file""" + for entry in os.listdir(root): + entrypath = os.path.join(root, entry) + if os.path.isdir(entrypath): + traverse(entrypath) + elif entrypath.endswith(".py"): + precompile(entrypath) +``` diff --git a/dependencies/pocketpy/docs/features/ub.md b/dependencies/pocketpy/docs/features/ub.md new file mode 100644 index 0000000..34744b0 --- /dev/null +++ b/dependencies/pocketpy/docs/features/ub.md @@ -0,0 +1,12 @@ +--- +icon: dot +title: Undefined Behaviour +--- + +These are the undefined behaviours of pkpy. The behaviour of pkpy is undefined if you do the following things. + +1. Delete a builtin object. For example, `del int.__add__`. +2. Call an unbound method with the wrong type of `self`. For example, `int.__add__('1', 2)`. +3. Type `T`'s `__new__` returns an object that is not an instance of `T`. +4. Call `__new__` with a type that is not a subclass of `type`. +5. `__eq__`, `__lt__` or `__contains__`, etc.. returns a value that is not a boolean. diff --git a/dependencies/pocketpy/docs/gsoc/guide.md b/dependencies/pocketpy/docs/gsoc/guide.md new file mode 100644 index 0000000..28b7d1d --- /dev/null +++ b/dependencies/pocketpy/docs/gsoc/guide.md @@ -0,0 +1,58 @@ +--- +icon: rocket +order: 10 +label: "Application Guide" +--- + +Before starting, please read the [Ideas](ideas.md) page and choose a project you are interested in. +Set up a C++ compiler, clone pocketpy sources from github and try to build. +This helps you confirm that your skills and experience match the requirements of the project. + +### Build guide for beginners + +First, you need to install these tools: + +1. Python(>= 3.8), I am sure you already have it. +2. A C++ compiler, such as GCC, Clang or MSVC. If you are on Linux, `gcc` and `g++` are already installed. If you are on Windows, you can install Visual Studio with C++ development tools. +3. CMake(>= 3.10), a cross-platform build tool. You can use `pip install cmake` to install it. + +Then, clone pocketpy sources from github and try to build: +```bash +git clone https://github.com/pocketpy/pocketpy +cd pocketpy + +python cmake_build.py +``` + +If everything goes well, you will get a `main` executable (`main.exe` on Windows) in the root directory of pocketpy. +Simply run it and you will enter pocketpy's REPL. +```txt +pocketpy 1.4.0 (Jan 24 2024, 12:39:13) [32 bit] on emscripten +https://github.com/pocketpy/pocketpy +Type "exit()" to exit. +>>> +>>> "Hello, world" +'Hello, world' +``` + +### Application guide + +**Your need to send an email to `blueloveth@foxmail.com` with the following information:** + +1. A brief introduction about yourself, including the most related open sourced project you have worked on before. It is highly recommended to attach your Github profile link. +2. A technical proposal for the project you are interested in working on, including: + + Your understanding of the project. + + The technical approach/architecture you will adopt. + + The challenges you might face and how you will overcome them. +3. A timeline for the project, including the milestones and deliverables. +4. Other information required by the Google Summer of Code program. + +### Coding style guide + +See [Coding Style Guide](../coding_style_guide.md). + +### Contact us + +If you have any questions, you can join our [Discord](https://discord.gg/WWaq72GzXv) +or contact me via email. +We are glad to help you with your application. diff --git a/dependencies/pocketpy/docs/gsoc/ideas.md b/dependencies/pocketpy/docs/gsoc/ideas.md new file mode 100644 index 0000000..391e6a9 --- /dev/null +++ b/dependencies/pocketpy/docs/gsoc/ideas.md @@ -0,0 +1,40 @@ +--- +icon: light-bulb +order: 0 +label: "Project Ideas" +--- + +### Implement pybind11 for bindings + ++ Difficulty Level: 5/5 (Hard) ++ Skill: Advanced C++ with metaprogramming; Python ++ Project Length: Medium (175 hours) + +pocketpy has provided a low-level API for creating bindings. It is fast, lightweight and easy to debug. +However, it still requires a lot of boilerplate code to create bindings for complex C++ classes. +The community has long expected a high-level API for creating bindings. + +[pybind11](https://github.com/pybind/pybind11) +is the most popular C++ library for creating Python bindings for CPython. A bunch of Python libraries are using it. pybind11 adopts a template metaprogramming approach to automatically generate bindings for C++ classes. + +Our goal is to introduce a pybind11 compatible solution to pocketpy as an alternative way to create bindings +for functions and classes. +You can use C\+\+17 features to implement it, instead of C++11 used in pybind11. + +See https://github.com/pocketpy/pocketpy/issues/216 for more details. + +### Add `numpy` module + ++ Difficulty Level: 4/5 (Intermediate) ++ Skill: Intermediate C++; Python; Linear Algebra ++ Project Length: Medium (175 hours) + +Though pocketpy is designed for game scripting, +some people are using it for scientific computing. +It would be nice to have a `numpy` module in pocketpy. + +`numpy` is a huge project. +Our goal is to implement a most commonly used subset of `numpy` in pocketpy. +You can mix C++ and Python code to simplify the overall workloads. + +See https://github.com/pocketpy/pocketpy/issues/202 for more details. diff --git a/dependencies/pocketpy/docs/gsoc/index.yml b/dependencies/pocketpy/docs/gsoc/index.yml new file mode 100644 index 0000000..0fd22c4 --- /dev/null +++ b/dependencies/pocketpy/docs/gsoc/index.yml @@ -0,0 +1,2 @@ +order: 19 +label: "GSoC" \ No newline at end of file diff --git a/dependencies/pocketpy/docs/index.md b/dependencies/pocketpy/docs/index.md new file mode 100644 index 0000000..bcd5984 --- /dev/null +++ b/dependencies/pocketpy/docs/index.md @@ -0,0 +1,55 @@ +--- +icon: home +label: Welcome +--- + +# Welcome to pocketpy + +pkpy is a lightweight(~15K LOC) Python interpreter for game scripting, built on C++17 with STL. + +It aims to be an alternative to lua for game scripting, with elegant syntax, powerful features and competitive performance. +pkpy is extremely easy to embed via a single header file `pocketpy.h`, without external dependencies. + +> **Caution**: pocketpy should not be your first C++ project. Please learn C++ programming, compiling, linking, and debugging before working with pocketpy. There are many resources for this on the net. + +## What it looks like + +```python +def is_prime(x): + if x < 2: + return False + for i in range(2, x): + if x % i == 0: + return False + return True + +primes = [i for i in range(2, 20) if is_prime(i)] +print(primes) +# [2, 3, 5, 7, 11, 13, 17, 19] +``` + +## Supported platforms + +pkpy should work on any platform with a C++17 compiler. +These platforms are officially tested. + ++ Windows 64-bit ++ Linux 64-bit / 32-bit ++ macOS 64-bit ++ Android 64-bit / 32-bit ++ iOS 64-bit ++ Emscripten 32-bit ++ Raspberry Pi OS 64-bit + +## Star the repo + +If you find pkpy useful, consider [star this repository](https://github.com/blueloveth/pocketpy) (●'◡'●) + +## Sponsor this project + +You can sponsor this project via these ways. + ++ [Github Sponsors](https://github.com/sponsors/blueloveTH) ++ [Buy me a coffee](https://www.buymeacoffee.com/blueloveth) + +Your sponsorship will help us develop pkpy continuously. diff --git a/dependencies/pocketpy/docs/license.md b/dependencies/pocketpy/docs/license.md new file mode 100644 index 0000000..b6e3a26 --- /dev/null +++ b/dependencies/pocketpy/docs/license.md @@ -0,0 +1,33 @@ +--- +icon: verified +order: -15 +label: License +--- + +# License + +pkpy is licensed under the [MIT License](http://opensource.org/licenses/MIT). + +``` +MIT License + +Copyright (c) 2024 blueloveTH + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/array2d.md b/dependencies/pocketpy/docs/modules/array2d.md new file mode 100644 index 0000000..eb78eaf --- /dev/null +++ b/dependencies/pocketpy/docs/modules/array2d.md @@ -0,0 +1,19 @@ +--- +icon: package +label: array2d +--- + +Efficient general-purpose 2D array. + +https://github.com/pocketpy/pocketpy/blob/main/include/typings/array2d.pyi + +## Example + +```python +from array2d import array2d + +a = array2d(3, 4, default=0) + +a[1, 2] = 5 +print(a[1, 2]) # 5 +``` \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/base64.md b/dependencies/pocketpy/docs/modules/base64.md new file mode 100644 index 0000000..7f0429d --- /dev/null +++ b/dependencies/pocketpy/docs/modules/base64.md @@ -0,0 +1,13 @@ +--- +icon: package +label: base64 +--- + +### `base64.b64encode(b: bytes) -> bytes` + +Encode bytes-like object `b` using the standard Base64 alphabet. + +### `base64.b64decode(b: bytes) -> bytes` + +Decode Base64 encoded bytes-like object `b`. + diff --git a/dependencies/pocketpy/docs/modules/bisect.md b/dependencies/pocketpy/docs/modules/bisect.md new file mode 100644 index 0000000..843583a --- /dev/null +++ b/dependencies/pocketpy/docs/modules/bisect.md @@ -0,0 +1,24 @@ +--- +icon: package +label: bisect +--- + +### `bisect.bisect_left(a, x)` + +Return the index where to insert item `x` in list `a`, assuming `a` is sorted. + +### `bisect.bisect_right(a, x)` + +Return the index where to insert item `x` in list `a`, assuming `a` is sorted. + +### `bisect.insort_left(a, x)` + +Insert item `x` in list `a`, and keep it sorted assuming `a` is sorted. + +If x is already in a, insert it to the left of the leftmost x. + +### `bisect.insort_right(a, x)` + +Insert item `x` in list `a`, and keep it sorted assuming `a` is sorted. + +If x is already in a, insert it to the right of the rightmost x. \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/c.md b/dependencies/pocketpy/docs/modules/c.md new file mode 100644 index 0000000..4f1909d --- /dev/null +++ b/dependencies/pocketpy/docs/modules/c.md @@ -0,0 +1,8 @@ +--- +icon: package +label: c +--- + +Interop with pointers and C structs. + +https://github.com/pocketpy/pocketpy/blob/main/include/typings/c.pyi \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/cmath.md b/dependencies/pocketpy/docs/modules/cmath.md new file mode 100644 index 0000000..ef241d7 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/cmath.md @@ -0,0 +1,12 @@ +--- +icon: package +label: cmath +--- + +!!! +This module is experimental and may have bugs or other issues. +!!! + +Mathematical functions for complex numbers. + +https://docs.python.org/3/library/cmath.html diff --git a/dependencies/pocketpy/docs/modules/collections.md b/dependencies/pocketpy/docs/modules/collections.md new file mode 100644 index 0000000..8273804 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/collections.md @@ -0,0 +1,17 @@ +--- +icon: package +label: collections +--- + + +### `collections.Counter(iterable)` + +Return a `dict` containing the counts of each element in `iterable`. + +### `collections.deque` + +A double-ended queue. + +### `collections.defaultdict` + +A dictionary that returns a default value when a key is not found. \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/colorsys.md b/dependencies/pocketpy/docs/modules/colorsys.md new file mode 100644 index 0000000..12b74be --- /dev/null +++ b/dependencies/pocketpy/docs/modules/colorsys.md @@ -0,0 +1,8 @@ +--- +icon: package +label: colorsys +--- + +The same as the standard library module `colorsys` in python 3.11. + +https://github.com/python/cpython/blob/3.11/Lib/colorsys.py \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/csv.md b/dependencies/pocketpy/docs/modules/csv.md new file mode 100644 index 0000000..4767945 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/csv.md @@ -0,0 +1,33 @@ +--- +icon: package +label: csv +--- + +### `csv.reader(csvfile: list[str]) -> list[list]` + +Parse a CSV file into a list of lists. + +### `csv.DictReader(csvfile: list[str]) -> list[dict]` + +Parse a CSV file into a list of dictionaries. + +## Example + +```python +import csv + +data = """a,b,c +1,2,3 +""" + +print(csv.reader(data.splitlines())) +# [ +# ['a', 'b', 'c'], +# ['1', '2', '3'] +# ] + +print(csv.DictReader(data.splitlines())) +# [ +# {'a': '1', 'b': '2', 'c': '3'} +# ] +``` \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/dataclasses.md b/dependencies/pocketpy/docs/modules/dataclasses.md new file mode 100644 index 0000000..c637223 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/dataclasses.md @@ -0,0 +1,14 @@ +--- +icon: package +label: dataclasses +--- + +### `dataclasses.dataclass` + +A decorator that is used to add generated special method to classes, including `__init__`, `__repr__` and `__eq__`. + +### `dataclasses.asdict(obj) -> dict` + +Convert a dataclass instance to a dictionary. + + diff --git a/dependencies/pocketpy/docs/modules/datetime.md b/dependencies/pocketpy/docs/modules/datetime.md new file mode 100644 index 0000000..fbe13cf --- /dev/null +++ b/dependencies/pocketpy/docs/modules/datetime.md @@ -0,0 +1,12 @@ +--- +icon: package +label: datetime +--- + +### `datetime.now()` + +Returns the current date and time as a `datetime` object. + +### `date.today()` + +Returns the current local date as a `date` object. \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/easing.md b/dependencies/pocketpy/docs/modules/easing.md new file mode 100644 index 0000000..8664776 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/easing.md @@ -0,0 +1,38 @@ +--- +icon: package +label: easing +--- + +Python wrapper for [easing functions](https://easings.net/). + ++ `easing.Linear(t: float) -> float` ++ `easing.InSine(t: float) -> float` ++ `easing.OutSine(t: float) -> float` ++ `easing.InOutSine(t: float) -> float` ++ `easing.InQuad(t: float) -> float` ++ `easing.OutQuad(t: float) -> float` ++ `easing.InOutQuad(t: float) -> float` ++ `easing.InCubic(t: float) -> float` ++ `easing.OutCubic(t: float) -> float` ++ `easing.InOutCubic(t: float) -> float` ++ `easing.InQuart(t: float) -> float` ++ `easing.OutQuart(t: float) -> float` ++ `easing.InOutQuart(t: float) -> float` ++ `easing.InQuint(t: float) -> float` ++ `easing.OutQuint(t: float) -> float` ++ `easing.InOutQuint(t: float) -> float` ++ `easing.InExpo(t: float) -> float` ++ `easing.OutExpo(t: float) -> float` ++ `easing.InOutExpo(t: float) -> float` ++ `easing.InCirc(t: float) -> float` ++ `easing.OutCirc(t: float) -> float` ++ `easing.InOutCirc(t: float) -> float` ++ `easing.InBack(t: float) -> float` ++ `easing.OutBack(t: float) -> float` ++ `easing.InOutBack(t: float) -> float` ++ `easing.InElastic(t: float) -> float` ++ `easing.OutElastic(t: float) -> float` ++ `easing.InOutElastic(t: float) -> float` ++ `easing.InBounce(t: float) -> float` ++ `easing.OutBounce(t: float) -> float` ++ `easing.InOutBounce(t: float) -> float` \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/enum.md b/dependencies/pocketpy/docs/modules/enum.md new file mode 100644 index 0000000..646bb17 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/enum.md @@ -0,0 +1,24 @@ +--- +icon: package +label: enum +--- + +### `enum.Enum` + +Base class for creating enumerated constants. + +Example: + +```python +from enum import Enum + +class Color(Enum): + RED = 1 + GREEN = 2 + BLUE = 3 + +print(Color.RED) # Color.RED +print(Color.RED.name) # 'RED' +print(Color.RED.value) # 1 +``` + diff --git a/dependencies/pocketpy/docs/modules/functools.md b/dependencies/pocketpy/docs/modules/functools.md new file mode 100644 index 0000000..b0d89da --- /dev/null +++ b/dependencies/pocketpy/docs/modules/functools.md @@ -0,0 +1,16 @@ +--- +icon: package +label: functools +--- + +### `functools.cache` + +A decorator that caches a function's return value each time it is called. If called later with the same arguments, the cached value is returned, and not re-evaluated. + +### `functools.reduce(function, sequence, initial=...)` + +Apply a function of two arguments cumulatively to the items of a sequence, from left to right, so as to reduce the sequence to a single value. For example, `functools.reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])` calculates `((((1+2)+3)+4)+5)`. The left argument, `x`, is the accumulated value and the right argument, `y`, is the update value from the sequence. If the optional `initial` is present, it is placed before the items of the sequence in the calculation, and serves as a default when the sequence is empty. + +### `functools.partial(f, *args, **kwargs)` + +Return a new partial object which when called will behave like `f` called with the positional arguments `args` and keyword arguments `kwargs`. If more arguments are supplied to the call, they are appended to `args`. If additional keyword arguments are supplied, they extend and override `kwargs`. diff --git a/dependencies/pocketpy/docs/modules/gc.md b/dependencies/pocketpy/docs/modules/gc.md new file mode 100644 index 0000000..8fe9646 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/gc.md @@ -0,0 +1,9 @@ +--- +icon: package +label: gc +--- + + +### `gc.collect()` + +Invoke the garbage collector. \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/heapq.md b/dependencies/pocketpy/docs/modules/heapq.md new file mode 100644 index 0000000..756ff00 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/heapq.md @@ -0,0 +1,24 @@ +--- +icon: package +label: heapq +--- + +### `heapq.heappush(heap, item)` + +Push the value `item` onto the heap, maintaining the heap invariant. + +### `heapq.heappop(heap)` + +Pop and return the smallest item from the heap, maintaining the heap invariant. If the heap is empty, IndexError is raised. To access the smallest item without popping it, use `heap[0]`. + +### `heapq.heapify(x)` + +Transform list `x` into a heap, in-place, in linear time. + +### `heapq.heappushpop(heap, item)` + +Push `item` on the heap, then pop and return the smallest item from the heap. The combined action runs more efficiently than `heappush()` followed by a separate `heappop()`. + +### `heapq.heapreplace(heap, item)` + +Pop and return the smallest item from the heap, and also push the new item. The heap size doesn’t change. If the heap is empty, IndexError is raised. \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/index.yml b/dependencies/pocketpy/docs/modules/index.yml new file mode 100644 index 0000000..c581ff9 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/index.yml @@ -0,0 +1,2 @@ +icon: package +order: 10 \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/io.md b/dependencies/pocketpy/docs/modules/io.md new file mode 100644 index 0000000..c73a69b --- /dev/null +++ b/dependencies/pocketpy/docs/modules/io.md @@ -0,0 +1,42 @@ +--- +icon: package-dependencies +label: io +--- + +!!! +This module is optional. Set `PK_ENABLE_OS` to `1` to enable it. +!!! + +### `io.FileIO.read(size=-1) -> bytes | str` + +Read up to `size` bytes from the file. If `size` is negative or omitted, read until EOF. + +### `io.FileIO.write(data: bytes | str)` + +Write the given data to the file. + +### `io.FileIO.seek(offset, whence=0) -> int` + +Change the file position to the given offset. The `whence` argument is optional and defaults to `0` (absolute file positioning); other values are `1` (seek relative to the current position) and `2` (seek relative to the file's end). + +### `io.FileIO.tell() -> int` + +Return the current file position. + +### `io.FileIO.close()` + +Close the file. + + +### `io.SEEK_SET` + +Seek from the beginning of the file. + +### `io.SEEK_CUR` + +Seek from the current position. + +### `io.SEEK_END` + +Seek from the end of the file. + diff --git a/dependencies/pocketpy/docs/modules/itertools.md b/dependencies/pocketpy/docs/modules/itertools.md new file mode 100644 index 0000000..cafa14a --- /dev/null +++ b/dependencies/pocketpy/docs/modules/itertools.md @@ -0,0 +1,8 @@ +--- +icon: package +label: itertools +--- + +### `itertools.zip_longest(a, b)` + +Returns an iterator that aggregates elements from the input iterables. If the input iterables are of different lengths, missing values are filled-in with `None`. diff --git a/dependencies/pocketpy/docs/modules/json.md b/dependencies/pocketpy/docs/modules/json.md new file mode 100644 index 0000000..4705d64 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/json.md @@ -0,0 +1,19 @@ +--- +icon: package +label: json +--- + +pkpy has two JSON modules. +1. The built-in JSON module is always available and can be imported via `import json`. +2. After `v1.2.7`, you can set `PK_USE_CJSON` to `ON` in CMakeLists.txt to enable an alternative JSON module `cjson`. + +**Their interfaces are the same.** `cjson` is faster while the built-in `json` is more stable since it was developed earlier. + +### `json.loads(data: str | bytes)` + +Decode a JSON string into a python object. + +### `json.dumps(obj) -> str` + +Encode a python object into a JSON string. + diff --git a/dependencies/pocketpy/docs/modules/linalg.md b/dependencies/pocketpy/docs/modules/linalg.md new file mode 100644 index 0000000..fc8c7a4 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/linalg.md @@ -0,0 +1,178 @@ +--- +icon: package +label: linalg +--- + +Provide `mat3x3`, `vec2`, `vec3` and `vec4` types. + +This classes adopt `torch`'s naming convention. Methods with `_` suffix will modify the instance itself. + +https://github.com/pocketpy/pocketpy/blob/main/include/typings/linalg.pyi + +```python +from typing import overload +from c import _StructLike, float_p + +class vec2(_StructLike['vec2']): + x: float + y: float + + def __init__(self, x: float, y: float) -> None: ... + def __add__(self, other: vec2) -> vec2: ... + def __sub__(self, other: vec2) -> vec2: ... + + @overload + def __mul__(self, other: float) -> vec2: ... + @overload + def __mul__(self, other: vec2) -> vec2: ... + + def __rmul__(self, other: float) -> vec2: ... + def __truediv__(self, other: float) -> vec2: ... + def dot(self, other: vec2) -> float: ... + def cross(self, other: vec2) -> float: ... + def length(self) -> float: ... + def length_squared(self) -> float: ... + def normalize(self) -> vec2: ... + def rotate(self, radians: float) -> vec2: ... + + def copy_(self, other: vec2) -> None: ... + def normalize_(self) -> None: ... + def rotate_(self, radians: float) -> None: ... + + @staticmethod + def angle(__from: vec2, __to: vec2) -> float: + """Returns the angle in radians between vectors `from` and `to`. + + The result range is `[-pi, pi]`. + + + if y axis is top to bottom, positive value means clockwise + + if y axis is bottom to top, positive value means counter-clockwise + """ + + @staticmethod + def smooth_damp(current: vec2, target: vec2, current_velocity_: vec2, smooth_time: float, max_speed: float, delta_time: float) -> vec2: + ... + +class vec3(_StructLike['vec3']): + x: float + y: float + z: float + + def __init__(self, x: float, y: float, z: float) -> None: ... + def __add__(self, other: vec3) -> vec3: ... + def __sub__(self, other: vec3) -> vec3: ... + + @overload + def __mul__(self, other: float) -> vec3: ... + @overload + def __mul__(self, other: vec3) -> vec3: ... + + def __rmul__(self, other: float) -> vec3: ... + def __truediv__(self, other: float) -> vec3: ... + def dot(self, other: vec3) -> float: ... + def cross(self, other: vec3) -> float: ... + def length(self) -> float: ... + def length_squared(self) -> float: ... + def normalize(self) -> vec3: ... + + def copy_(self, other: vec3) -> None: ... + def normalize_(self) -> None: ... + +class vec4(_StructLike['vec4']): + x: float + y: float + z: float + w: float + + def __init__(self, x: float, y: float, z: float, w: float) -> None: ... + def __add__(self, other: vec4) -> vec4: ... + def __sub__(self, other: vec4) -> vec4: ... + + @overload + def __mul__(self, other: float) -> vec4: ... + @overload + def __mul__(self, other: vec4) -> vec4: ... + + def __rmul__(self, other: float) -> vec4: ... + def __truediv__(self, other: float) -> vec4: ... + def dot(self, other: vec4) -> float: ... + def length(self) -> float: ... + def length_squared(self) -> float: ... + def normalize(self) -> vec4: ... + + def copy_(self, other: vec4) -> None: ... + def normalize_(self) -> None: ... + +class mat3x3(_StructLike['mat3x3']): + _11: float + _12: float + _13: float + _21: float + _22: float + _23: float + _31: float + _32: float + _33: float + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, _11, _12, _13, _21, _22, _23, _31, _32, _33) -> None: ... + @overload + def __init__(self, a: list[float]): ... + + def determinant(self) -> float: ... + def invert(self) -> mat3x3: ... + def transpose(self) -> mat3x3: ... + + def __getitem__(self, index: tuple[int, int]) -> float: ... + def __setitem__(self, index: tuple[int, int], value: float) -> None: ... + def __add__(self, other: mat3x3) -> mat3x3: ... + def __sub__(self, other: mat3x3) -> mat3x3: ... + def __mul__(self, other: float) -> mat3x3: ... + def __rmul__(self, other: float) -> mat3x3: ... + def __truediv__(self, other: float) -> mat3x3: ... + + def __invert__(self) -> mat3x3: ... + @overload + def __matmul__(self, other: mat3x3) -> mat3x3: ... + @overload + def __matmul__(self, other: vec3) -> vec3: ... + + def matmul(self, other: mat3x3, out: mat3x3 = None) -> mat3x3 | None: ... + + def copy_(self, other: mat3x3) -> None: ... + def invert_(self) -> None: ... + def transpose_(self) -> None: ... + + @staticmethod + def zeros() -> mat3x3: ... + @staticmethod + def ones() -> mat3x3: ... + @staticmethod + def identity() -> mat3x3: ... + + # affine transformations + @staticmethod + def trs(t: vec2, r: float, s: vec2) -> mat3x3: ... + + def copy_trs_(self, t: vec2, r: float, s: vec2) -> None: ... + def copy_t_(self, t: vec2) -> None: ... + def copy_r_(self, r: float) -> None: ... + def copy_s_(self, s: vec2) -> None: ... + + def _t(self) -> vec2: ... + def _r(self) -> float: ... + def _s(self) -> vec2: ... + + def is_affine(self) -> bool: ... + + def transform_point(self, p: vec2) -> vec2: ... + def transform_vector(self, v: vec2) -> vec2: ... + +vec2_p = float_p +vec3_p = float_p +vec4_p = float_p +mat3x3_p = float_p + +``` diff --git a/dependencies/pocketpy/docs/modules/line_profiler.md b/dependencies/pocketpy/docs/modules/line_profiler.md new file mode 100644 index 0000000..302456a --- /dev/null +++ b/dependencies/pocketpy/docs/modules/line_profiler.md @@ -0,0 +1,39 @@ +--- +icon: package +label: line_profiler +--- + +Line-by-line profiler for Python. + +## Example + +```python +from line_profiler import LineProfiler + +def my_func(): + a = 0 + for i in range(1000000): + a += i + return a + +lp = LineProfiler() + +lp.add_function(my_func) + +lp.runcall(my_func) + +lp.print_stats() +``` + +```txt +Total time: 0.243s +File: 84_line_profiler.py +Function: my_func at line 3 +Line # Hits Time Per Hit % Time Line Contents +============================================================== + 3 def my_func(): + 4 1 0 0 0.0 a = 0 + 5 1000001 69 0 28.4 for i in range(1000000): + 6 1000001 174 0 71.6 a += i + 7 1 0 0 0.0 return a +``` \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/math.md b/dependencies/pocketpy/docs/modules/math.md new file mode 100644 index 0000000..421edbe --- /dev/null +++ b/dependencies/pocketpy/docs/modules/math.md @@ -0,0 +1,133 @@ +--- +icon: package +label: math +--- + +### `math.pi` + +3.141592653589793 + +### `math.e` + +2.718281828459045 + +### `math.inf` + +The `inf`. + +### `math.nan` + +The `nan`. + +### `math.ceil(x)` + +Return the ceiling of `x` as a float, the smallest integer value greater than or equal to `x`. + +### `math.fabs(x)` + +Return the absolute value of `x`. + +### `math.floor(x)` + +Return the floor of `x` as a float, the largest integer value less than or equal to `x`. + +### `math.fsum(iterable)` + +Return an accurate floating point sum of values in the iterable. Avoids loss of precision by tracking multiple intermediate partial sums: + +``` +>>> sum([0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]) +0.9999999999999999 +>>> fsum([0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]) +1.0 +``` + +### `math.gcd(a, b)` + +Return the greatest common divisor of the integers `a` and `b`. + + +### `math.isfinite(x)` + +Return `True` if `x` is neither an infinity nor a NaN, and `False` otherwise. + +### `math.isinf(x)` + +Return `True` if `x` is a positive or negative infinity, and `False` otherwise. + +### `math.isnan(x)` + +Return `True` if `x` is a NaN (not a number), and `False` otherwise. + +### `math.isclose(a, b)` + +Return `True` if the values `a` and `b` are close to each other and `False` otherwise. + +### `math.exp(x)` + +Return `e` raised to the power of `x`. + +### `math.log(x)` + +Return the natural logarithm of `x` (to base `e`). + +### `math.log2(x)` + +Return the base-2 logarithm of `x`. This is usually more accurate than `log(x, 2)`. + +### `math.log10(x)` + +Return the base-10 logarithm of `x`. This is usually more accurate than `log(x, 10)`. + +### `math.pow(x, y)` + +Return `x` raised to the power `y`. + +### `math.sqrt(x)` + +Return the square root of `x`. + +### `math.acos(x)` + +Return the arc cosine of `x`, in radians. + +### `math.asin(x)` + +Return the arc sine of `x`, in radians. + +### `math.atan(x)` + +Return the arc tangent of `x`, in radians. + +### `math.atan2(y, x)` + +Return `atan(y / x)`, in radians. The result is between `-pi` and `pi`. The vector in the plane from the origin to point `(x, y)` makes this angle with the positive X axis. The point of `atan2()` is that the signs of both inputs are known to it, so it can compute the correct quadrant for the angle. For example, `atan(1)` and `atan2(1, 1)` are both `pi/4`, but `atan2(-1, -1)` is `-3*pi/4`. + +### `math.cos(x)` + +Return the cosine of `x` radians. + +### `math.sin(x)` + +Return the sine of `x` radians. + +### `math.tan(x)` + +Return the tangent of `x` radians. + +### `math.degrees(x)` + +Convert angle `x` from radians to degrees. + +### `math.radians(x)` + +Convert angle `x` from degrees to radians. + + +### `math.modf(x)` + +Return the fractional and integer parts of `x`. Both results carry the sign of `x` and are floats. + +### `math.factorial(x)` + +Return `x` factorial as an integer. \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/operator.md b/dependencies/pocketpy/docs/modules/operator.md new file mode 100644 index 0000000..02fabcc --- /dev/null +++ b/dependencies/pocketpy/docs/modules/operator.md @@ -0,0 +1,14 @@ +--- +icon: package +label: operator +--- + +The operator module exports a set of efficient functions corresponding to the intrinsic operators of Python. For example, `operator.add(x, y)` is equivalent to the expression `x+y`. +Many function names are those used for special methods, without the double underscores. + ++ `operator.lt(a, b)` ++ `operator.le(a, b)` ++ `operator.eq(a, b)` ++ `operator.ne(a, b)` ++ `operator.ge(a, b)` ++ `operator.gt(a, b)` \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/os.md b/dependencies/pocketpy/docs/modules/os.md new file mode 100644 index 0000000..e40464f --- /dev/null +++ b/dependencies/pocketpy/docs/modules/os.md @@ -0,0 +1,72 @@ +--- +icon: package-dependencies +label: os +--- + +!!! +This module is optional. Set `PK_ENABLE_OS` to `1` to enable it. +!!! + +### `os.getcwd()` + +Returns the current working directory. + +### `os.chdir(path: str)` + +Changes the current working directory to the given path. + +### `os.listdir(path: str)` + +Returns a list of files and directories in the given path. + +### `os.remove(path: str)` + +Removes the file at the given path. + +### `os.mkdir(path: str)` + +Creates a directory at the given path. + +### `os.rmdir(path: str)` + +Removes the directory at the given path. + +### `os.path.join(*paths: str)` + +Joins the given paths together. + +### `os.path.exists(path: str)` + +Check if the given path exists. + +### `os.path.basename(path: str)` + +Returns the basename of the given path. + +### `os.path.isdir(path: str)` + +Check if the given path is a directory. + +### `os.path.isfile(path: str)` + +Check if the given path is a file. + +### `os.path.abspath(path: str)` + +Returns the absolute path of the given path. + + +## Other functions + +You can add other functions to `os` module via normal binding if you need them. +For example, add `os.system`: + +```cpp +PyObject* mod = vm->_modules["os"]; + +vm->bind(mod, "system(cmd: str) -> int", [](VM* vm, ArgsView args){ + const char* cmd = py_cast(vm, args[0]); + int code = system(cmd); + return py_var(vm, code); +}); +``` diff --git a/dependencies/pocketpy/docs/modules/pickle.md b/dependencies/pocketpy/docs/modules/pickle.md new file mode 100644 index 0000000..e53b25f --- /dev/null +++ b/dependencies/pocketpy/docs/modules/pickle.md @@ -0,0 +1,33 @@ +--- +icon: package +label: pickle +--- + +### `pickle.dumps(obj) -> bytes` + +Return the pickled representation of an object as a bytes object. + +### `pickle.loads(b: bytes)` + +Return the unpickled object from a bytes object. + + +## What can be pickled and unpickled? + +The following types can be pickled: + +- [x] None, True, and False; +- [x] integers, floating-point numbers; +- [x] strings, bytes; +- [x] tuples, lists, sets, and dictionaries containing only picklable objects; +- [ ] functions (built-in and user-defined) accessible from the top level of a module (using def, not lambda); +- [x] classes accessible from the top level of a module; +- [x] instances of such classes +- [x] `PY_STRUCT_LIKE` objects + +The following magic methods are available: + +- [x] `__getnewargs__` +- [ ] `__getstate__` +- [ ] `__setstate__` +- [ ] `__reduce__` diff --git a/dependencies/pocketpy/docs/modules/random.md b/dependencies/pocketpy/docs/modules/random.md new file mode 100644 index 0000000..3a97311 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/random.md @@ -0,0 +1,32 @@ +--- +icon: package +label: random +--- + +### `random.seed(a)` + +Set the random seed. + +### `random.random()` + +Return a random float number in the range [0.0, 1.0). + +### `random.randint(a, b)` + +Return a random integer in the range [a, b]. + +### `random.uniform(a, b)` + +Return a random float number in the range [a, b). + +### `random.choice(seq)` + +Return a random element from a sequence. + +### `random.shuffle(seq)` + +Shuffle a sequence inplace. + +### `random.choices(population, weights=None, k=1)` + +Return a k sized list of elements chosen from the population with replacement. diff --git a/dependencies/pocketpy/docs/modules/sys.md b/dependencies/pocketpy/docs/modules/sys.md new file mode 100644 index 0000000..9cdf1ec --- /dev/null +++ b/dependencies/pocketpy/docs/modules/sys.md @@ -0,0 +1,22 @@ +--- +icon: package +label: sys +--- + +### `sys.version` + +The version of pkpy. + +### `sys.platform` + +May be one of: ++ `win32` ++ `linux` ++ `darwin` ++ `android` ++ `ios` ++ `emscripten` + +### `sys.argv` + +The command line arguments. Set by `vm->set_main_argv`. diff --git a/dependencies/pocketpy/docs/modules/time.md b/dependencies/pocketpy/docs/modules/time.md new file mode 100644 index 0000000..250b54f --- /dev/null +++ b/dependencies/pocketpy/docs/modules/time.md @@ -0,0 +1,16 @@ +--- +icon: package +label: time +--- + +### `time.time()` + +Returns the current time in seconds since the epoch as a floating point number. + +### `time.sleep(secs)` + +Suspend execution of the calling thread for the given number of seconds. + +### `time.localtime()` + +Returns the current struct time as a `struct_time` object. \ No newline at end of file diff --git a/dependencies/pocketpy/docs/modules/traceback.md b/dependencies/pocketpy/docs/modules/traceback.md new file mode 100644 index 0000000..0eebec5 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/traceback.md @@ -0,0 +1,12 @@ +--- +icon: package +label: traceback +--- + +### `traceback.print_exc() -> None` + +Print the last exception and its traceback. + +### `traceback.format_exc() -> str` + +Return the last exception and its traceback as a string. diff --git a/dependencies/pocketpy/docs/modules/typing.md b/dependencies/pocketpy/docs/modules/typing.md new file mode 100644 index 0000000..1cb7a05 --- /dev/null +++ b/dependencies/pocketpy/docs/modules/typing.md @@ -0,0 +1,6 @@ +--- +icon: package +label: typing +--- + +Placeholder module for type hints. diff --git a/dependencies/pocketpy/docs/performance.md b/dependencies/pocketpy/docs/performance.md new file mode 100644 index 0000000..1fb4d89 --- /dev/null +++ b/dependencies/pocketpy/docs/performance.md @@ -0,0 +1,158 @@ +--- +icon: zap +order: -10 +label: Performance +--- + +# Performance + +Currently, pkpy is as fast as cpython 3.9. +Performance results for cpython 3.9 are applicable to for pkpy. + +Here is a benchmark result of `v1.2.6`. +Files are located in `benchmarks/`. + +## win32 64-bit cpy39 +``` +CPython: 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)] +System: 64-bit +Testing directory: benchmarks/ +> benchmarks/fib.py + cpython: 0.986091s (100%) + pocketpy: 0.985427s (99.93%) +> benchmarks/loop_0.py + cpython: 0.515685s (100%) + pocketpy: 0.344132s (66.73%) +> benchmarks/loop_1.py + cpython: 0.938407s (100%) + pocketpy: 0.595634s (63.47%) +> benchmarks/loop_2.py + cpython: 1.188671s (100%) + pocketpy: 0.735259s (61.86%) +> benchmarks/loop_3.py + cpython: 4.957218s (100%) + pocketpy: 2.314210s (46.68%) +> benchmarks/primes.py + cpython: 9.146332s (100%) + pocketpy: 8.507227s (93.01%) +> benchmarks/recursive.py + cpython: 0.044789s (100%) + pocketpy: 0.031252s (69.78%) +> benchmarks/simple.py + cpython: 0.516624s (100%) + pocketpy: 0.453159s (87.72%) +> benchmarks/sort.py + cpython: 0.929597s (100%) + pocketpy: 0.406802s (43.76%) +> benchmarks/sum.py + cpython: 0.047151s (100%) + pocketpy: 0.031266s (66.31%) +ALL TESTS PASSED +``` + +## linux 64-bit cpy38 +``` +CPython: 3.8.10 (default, May 26 2023, 14:05:08) [GCC 9.4.0] +System: 64-bit +Testing directory: benchmarks/ +> benchmarks/fib.py + cpython: 0.739547s (100%) + pocketpy: 0.613591s (82.97%) +> benchmarks/loop_0.py + cpython: 0.356003s (100%) + pocketpy: 0.224396s (63.03%) +> benchmarks/loop_1.py + cpython: 0.661924s (100%) + pocketpy: 0.446577s (67.47%) +> benchmarks/loop_2.py + cpython: 0.937243s (100%) + pocketpy: 0.514324s (54.88%) +> benchmarks/loop_3.py + cpython: 3.671752s (100%) + pocketpy: 1.876151s (51.10%) +> benchmarks/primes.py + cpython: 7.293947s (100%) + pocketpy: 5.427518s (74.41%) +> benchmarks/recursive.py + cpython: 0.021559s (100%) + pocketpy: 0.010227s (47.44%) +> benchmarks/simple.py + cpython: 0.408654s (100%) + pocketpy: 0.265084s (64.87%) +> benchmarks/sort.py + cpython: 0.372539s (100%) + pocketpy: 0.243566s (65.38%) +> benchmarks/sum.py + cpython: 0.021242s (100%) + pocketpy: 0.010113s (47.61%) +ALL TESTS PASSED +``` + +## linux 32-bit cpy39 +``` +CPython: 3.9.18 (main, Aug 26 2023, 11:50:23) [GCC 10.3.1 20211027] +System: 32-bit +Testing directory: benchmarks/ +> benchmarks/fib.py + cpython: 1.967908s (100%) + pocketpy: 0.960947s (48.83%) +> benchmarks/loop_0.py + cpython: 1.063461s (100%) + pocketpy: 0.396626s (37.30%) +> benchmarks/loop_1.py + cpython: 1.563821s (100%) + pocketpy: 0.639663s (40.90%) +> benchmarks/loop_2.py + cpython: 2.626848s (100%) + pocketpy: 0.757444s (28.83%) +> benchmarks/loop_3.py + cpython: 13.428345s (100%) + pocketpy: 2.852351s (21.24%) +> benchmarks/primes.py + cpython: 18.174904s (100%) + pocketpy: 8.423515s (46.35%) +> benchmarks/recursive.py + cpython: 0.025673s (100%) + pocketpy: 0.012470s (48.57%) +> benchmarks/simple.py + cpython: 1.042090s (100%) + pocketpy: 0.480013s (46.06%) +> benchmarks/sort.py + cpython: 0.989279s (100%) + pocketpy: 0.379171s (38.33%) +> benchmarks/sum.py + cpython: 0.024227s (100%) + pocketpy: 0.012477s (51.50%) +ALL TESTS PASSED +``` + +See [actions/runs](https://github.com/pocketpy/pocketpy/actions/runs/6511071423/job/17686074263). + +## Primes benchmarks + +These are the results of the primes benchmark on Intel i5-12400F, WSL (Ubuntu 20.04 LTS). + +| name | version | time | file | +| ---- | ---- | ---- | ---- | +| c++ | gnu++11 | `0.104s ■□□□□□□□□□□□□□□□` | [benchmarks/primes.cpp](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.cpp) | +| lua | 5.3.3 | `1.576s ■■■■■■■■■□□□□□□□` | [benchmarks/primes.lua](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.lua) | +| pkpy | 1.2.7 | `2.385s ■■■■■■■■■■■■■□□□` | [benchmarks/primes.py](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.py) | +| cpython | 3.8.10 | `2.871s ■■■■■■■■■■■■■■■■` | [benchmarks/primes.py](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.py) | + +```sh +$ time lua benchmarks/primes.lua + +real 0m1.576s +user 0m1.514s +sys 0m0.060s +$ time ./main benchmarks/primes.py + +real 0m2.385s +user 0m2.247s +sys 0m0.100s +$ time python benchmarks/primes.py + +real 0m2.871s +user 0m2.798s +sys 0m0.060s +``` \ No newline at end of file diff --git a/dependencies/pocketpy/docs/quick-start/attr.md b/dependencies/pocketpy/docs/quick-start/attr.md new file mode 100644 index 0000000..202edf3 --- /dev/null +++ b/dependencies/pocketpy/docs/quick-start/attr.md @@ -0,0 +1,72 @@ +--- +icon: dot +label: 'Access Attributes' +order: 80 +--- + +### Direct access + +Some python objects have an instance dict, a.k.a, `__dict__` in cpython. +You can use `obj->attr()` to manipulate the instance dict of an object. + +```cpp +VM* vm = new VM(); + +// get the `builtin` module +PyObject* builtins = vm->builtins; +// get `dict` type +PyObject* dict = builtins->attr("dict"); +// set `pi = 3.14` +builtins->attr().set("pi", py_var(vm, 3.14)); +``` + +However, you cannot call `attr` on an object which does not have an instance dict. +For example, the `int` object. + +```cpp +// create a `int` object +PyObject* obj = py_var(vm, 1); +// THIS IS WRONG!! WILL LEAD TO A SEGFAULT!! +PyObject* add = obj->attr("__add__"); +``` + +To determine whether an object has instance dict or not, you can use this snippet. + +```cpp +// 1. call `is_tagged` to check the object supports `->` operator +// 2. call `is_attr_valid` to check the existence of instance dict +PyObject* obj = py_var(vm, 1); +bool ok = !is_tagged(obj) && obj->is_attr_valid(); // false +``` + +### General access + +As you can see, direct access does not take care of derived attributes or methods. +In most cases, what you need is `getattr` and `setattr`. +These two methods handle all possible cases. + +#### `PyObject* getattr(PyObject* obj, StrName name, bool throw_err=true)` + +This method is equivalent to `getattr` in python. +If the attribute is not found, it will return `nullptr` +or throw an `AttributeError` depending on the value of `throw_err`. + +```cpp +// create a `int` object +PyObject* obj = py_var(vm, 1); + +// get its `__add__` method, which is a `bound_method` object +PyObject* add = vm->getattr(obj, "__add__"); + +// call it (equivalent to `1 + 2`) +PyObject* ret = vm->call(add, py_var(vm, 2);); + +// get the result +int result = py_cast(vm, ret); +std::cout << result << std::endl; // 3 +``` + +#### `void setattr(PyObject*, StrName, PyObject*)` + +This method is equivalent to `setattr` in python. +It raises `TypeError` if the object does not support attribute assignment. diff --git a/dependencies/pocketpy/docs/quick-start/call.md b/dependencies/pocketpy/docs/quick-start/call.md new file mode 100644 index 0000000..4899a5d --- /dev/null +++ b/dependencies/pocketpy/docs/quick-start/call.md @@ -0,0 +1,71 @@ +--- +icon: dot +label: 'Call Python Function' +order: 70 +--- + +pkpy uses a variant of the [Vectorcall](https://peps.python.org/pep-0590/) protocol (PEP 590). + +You can use `call` to invoke any python callable object, +including functions, methods, classes, etc. +For methods, `call_method` can be used. + ++ `PyObject* call(PyObject* obj, ...)` ++ `PyObject* call_method(PyObject* obj, StrName name, ...)` + +### Example + +Let's create a `dict` object and set a key-value pair, +which equals to the following python snippet. + +```python +obj = {} # declare a `dict` +obj["a"] = 5 # set a key-value pair +print(obj["a"]) # print the value +``` + +First, create an empty dict object, + +```cpp +PyObject* tp = vm->builtins->attr("dict"); +PyObject* obj = vm->call(tp); // this is a `dict` +``` + +And set a key-value pair, + +```cpp +PyObject* _0 = py_var(vm, "a"); +PyObject* _1 = py_var(vm, 5); +vm->call_method(obj, "__setitem__", _0, _1); +``` + +And get the value, + +```cpp +PyObject* ret = vm->call_method(obj, "__getitem__", _0); +std::cout << py_cast(vm, i64); +``` + +If you want to call with dynamic number of arguments, +you should use `vm->vectorcall`. This is a low-level, stack-based API. + +1. First push the callable object to the stack. +2. Push the `self` object to the stack. If there is no `self`, push `PY_NULL`. +3. Push the arguments to the stack. +4. Call `vm->vectorcall` with the number of arguments. + +```cpp +PyObject* f_sum = vm->builtins->attr("sum"); + +List args(N); // a list of N arguments + +vm->s_data.push_back(f_print); +vm->s_data.push_back(PY_NULL); // self + +for(PyObject* arg : args) { + vm->s_data.push_back(arg); +} + +PyObject* ret = vm->vectorcall(args.size()); +``` + diff --git a/dependencies/pocketpy/docs/quick-start/config.md b/dependencies/pocketpy/docs/quick-start/config.md new file mode 100644 index 0000000..f7c34d0 --- /dev/null +++ b/dependencies/pocketpy/docs/quick-start/config.md @@ -0,0 +1,30 @@ +--- +icon: dot +label: 'Advanced Config' +order: -2 +--- + +### Enable os-related features + +If you want to enable os-related features, you can do this before including `pocketpy.h`. + +```cpp +#define PK_ENABLE_OS 1 +#include +``` + +### Working with multiple threads + +pkpy does not support multi-threading. But you can create multiple `VM` instances and run them in different threads. +You can do the following to ensure thread safety for `VM` instances: + +```cpp +#define PK_ENABLE_THREAD 1 +#include +``` + +### Full config + +You can take a look at `include/pocketpy/config.h` to see all the available configuration macros. + + diff --git a/dependencies/pocketpy/docs/quick-start/exec.md b/dependencies/pocketpy/docs/quick-start/exec.md new file mode 100644 index 0000000..2af6a71 --- /dev/null +++ b/dependencies/pocketpy/docs/quick-start/exec.md @@ -0,0 +1,59 @@ +--- +icon: dot +label: 'Execute Python Code' +order: 93 +--- + +### Simple execution + +Once you have a `VM` instance, you can execute python code by calling `exec` method. + +#### `PyObject* exec(Str source, Str filename, CompileMode mode, PyObject* _module=nullptr)` + ++ `source`, the python source code to be executed ++ `filename`, the filename of the source code. This is used for error reporting ++ `mode`, the compile mode. See below for details ++ `module`, the module where the code will be executed. If `nullptr`, the code will be executed in the `__main__` module + +`exec` handles possible exceptions and returns a `PyObject*`. +If the execution is not successful, e.g. a syntax error or a runtime exception, +the return value will be `nullptr`. + +There are also overloaded versions of `exec` and `eval`, which is useful for simple execution: ++ `PyObject* exec(Str source)` ++ `PyObject* eval(Str source)` + +### Compile mode + +The `mode` parameter controls how the source code is compiled. There are 5 possible values: ++ `EXEC_MODE`, this is the default mode. Just do normal execution. ++ `EVAL_MODE`, this mode is used for evaluating a single expression. The `source` should be a single expression. It cannot contain any statements. ++ `REPL_MODE`, this mode is used for REPL. It is similar to `EXEC_MODE`, but generates `PRINT_EXPR` opcode when necessary. ++ `CELL_MODE`, this mode is designed for Jupyter like execution. It is similar to `EXEC_MODE`, but generates `PRINT_EXPR` opcode when necessary. ++ `JSON_MODE`, this mode is used for JSON parsing. It is similar to `EVAL_MODE`, but uses a lexing rule designed for JSON. + + +### Fine-grained execution + +In some cases, you may want to execute python code in a more fine-grained way. +These two methods are provided for this purpose: + ++ `CodeObject_ compile(Str source, Str filename, CompileMode mode, bool unknown_global_scope)` ++ `PyObject* _exec(CodeObject_ co, PyObject* _module)` + +1. `compile` compiles the source code into a `CodeObject_` instance. Leave `unknown_global_scope` to `false` if you don't know what it means. +2. `_exec` executes the `CodeObject_` instance. + +!!! +`_exec` does not handle exceptions, you need to use `try..catch` manually. +!!! + +```cpp +try{ + CodeObject_ code = vm->compile("a[0]", "main.py", EXEC_MODE, false); + vm->_exec(code, vm->_main); +}catch(Exception& e){ + // use e.summary() to get a summary of the exception + std::cerr << e.summary() << std::endl; +} +``` diff --git a/dependencies/pocketpy/docs/quick-start/index.yml b/dependencies/pocketpy/docs/quick-start/index.yml new file mode 100644 index 0000000..6a0facf --- /dev/null +++ b/dependencies/pocketpy/docs/quick-start/index.yml @@ -0,0 +1,3 @@ +icon: rocket +order: 20 +label: Quick Start diff --git a/dependencies/pocketpy/docs/quick-start/installation.md b/dependencies/pocketpy/docs/quick-start/installation.md new file mode 100644 index 0000000..f92e48a --- /dev/null +++ b/dependencies/pocketpy/docs/quick-start/installation.md @@ -0,0 +1,167 @@ +--- +icon: dot +label: 'Installation' +order: 100 +--- + +You have two options to integrate pkpy into your project. + +#### Use the single header file + +Download the `pocketpy.h` on our [GitHub Release](https://github.com/pocketpy/pocketpy/releases) page. +And `#include` it in your project. The header can only be included once. + +#### Use CMake + +Clone the whole repository as a submodule into your project, +In your CMakelists.txt, add the following lines: + +```cmake +add_subdirectory(pocketpy) +target_link_libraries( pocketpy) + +if(EMSCRIPTEN) + # exceptions must be enabled for emscripten + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fexceptions") +endif() +``` + +See [CMakeLists.txt](https://github.com/pocketpy/pocketpy/blob/main/CMakeLists.txt) for details. + +It is safe to use `main` branch in production if CI badge is green. + +### Compile flags + +To compile it with your project, these flags must be set: + ++ `--std=c++17` flag must be set ++ RTTI must be enabled ++ Exception must be enabled ++ For MSVC, `/utf-8` flag must be set + +For emscripten, you must enable exceptions to make pocketpy work properly. +See https://emscripten.org/docs/porting/exceptions.html. + +### Get prebuilt binaries + +We have prebuilt binaries, +check them out on our [GitHub Actions](https://github.com/pocketpy/pocketpy/actions/workflows/main.yml). + +You can download an artifact there which contains the following files. + +``` +├── android +│   ├── arm64-v8a +│   │   └── libpocketpy.so +│   ├── armeabi-v7a +│   │   └── libpocketpy.so +│   └── x86_64 +│   └── libpocketpy.so +├── ios +│   └── libpocketpy.a +├── linux +│   └── x86_64 +│   ├── libpocketpy.so +│   └── main +├── macos +│   └── pocketpy.bundle +│   └── Contents +│   ├── Info.plist +│   └── MacOS +│   └── pocketpy +└── windows + └── x86_64 + ├── main.exe + └── pocketpy.dll +``` + +### Example + +```cpp +#include "pocketpy.h" + +using namespace pkpy; + +int main(){ + // Create a virtual machine + VM* vm = new VM(); + + // Hello world! + vm->exec("print('Hello world!')"); + + // Create a list + vm->exec("a = [1, 2, 3]"); + + // Eval the sum of the list + PyObject* result = vm->eval("sum(a)"); + std::cout << "Sum of the list: "<< py_cast(vm, result) << std::endl; // 6 + + // Bindings + vm->bind(vm->_main, "add(a: int, b: int)", + [](VM* vm, ArgsView args){ + int a = py_cast(vm, args[0]); + int b = py_cast(vm, args[1]); + return py_var(vm, a + b); + }); + + // Call the function + PyObject* f_add = vm->_main->attr("add"); + result = vm->call(f_add, py_var(vm, 3), py_var(vm, 7)); + std::cout << "Sum of 2 variables: "<< py_cast(vm, result) << std::endl; // 10 + + // Dispose the virtual machine + delete vm; + return 0; +``` + +### Overview + +pkpy's C++ interfaces are organized in an object-oriented way. +All classes are located in `pkpy` namespace. + +The most important class is the `VM` class. A `VM` instance is a python virtual machine which holds all necessary runtime states, including callstack, modules, variables, etc. + +A process can have multiple `VM` instances. Each `VM` instance is independent from each other. + +!!! +Always use C++ `new` operator to create a `VM` instance. +DO NOT declare it on the stack. It may cause stack overflow. +!!! + +```cpp +VM* vm = new VM(); +``` + +The constructor can take 1 extra parameters. + +#### `VM(bool enable_os=true)` + ++ `enable_os`, whether to enable OS-related features or not. This setting controls the availability of privileged modules such os `io` and `os` as well as builtin function `open`. **It is designed for sandboxing.** + +When you are done with the `VM` instance, use `delete` operator to dispose it. + +```cpp +delete vm; +``` + +### Hook standard buffer + +By default, pkpy outputs all messages and errors to `stdout` and `stderr`. +You can redirect them to your own buffer by setting `vm->_stdout` and `vm->_stderr`. + +These two fields are C function pointers `PrintFunc` with the following signature: + +```cpp +typedef void(*PrintFunc)(const char*, int) +``` + +Or you can override these two virtual functions: +```cpp + virtual void stdout_write(const Str& s){ + _stdout(s.data, s.size); + } + + virtual void stderr_write(const Str& s){ + _stderr(s.data, s.size); + } +``` \ No newline at end of file diff --git a/dependencies/pocketpy/docs/quick-start/interop.md b/dependencies/pocketpy/docs/quick-start/interop.md new file mode 100644 index 0000000..c4deeba --- /dev/null +++ b/dependencies/pocketpy/docs/quick-start/interop.md @@ -0,0 +1,117 @@ +--- +icon: dot +label: 'Interop with PyObject' +order: 90 +--- + +In pkpy, any python object is represented by a `PyObject*`. + + +### Create `PyObject*` from C type + +A set of overloaded function `PyObject* py_var(VM* vm, ...)` were implemented to +create a `PyObject*` from a supported C type. + +Assume we have a `VM* vm` instance. +You can create a python `int` object from a C `i64` type: + +```cpp +i64 i = 2; +PyObject* obj = py_var(vm, i); +``` + +Each python type has a corresponding C type, for example, `int` in python is `i64` in C. +python's `list` corresponds to `List`, `str` corresponds to `Str`, etc. +For strings, we have defined +a set of overloaded version including `const char*`, `std::string`, `std::string_view`, `Str`, etc. + +```cpp +PyObject* obj = py_var(vm, "abc"); // create a python str object +``` + +A more complex example is to create a python `list`. +In the following code, we create a `list` equals to `[0, 1, 2, 3]`. + +```cpp +List list; +for (i64 i = 0; i < 4; i++) { + list.push_back(py_var(vm, i)); +} + +obj = py_var(vm, std::move(list)); // create a python list object +``` + +Please note that `std::move` is used here to avoid unnecessary copy. +Most types have both a rvalue and a lvalue version of `py_var` function. + +### Access internal C type of `PyObject*` + +A set of template function `T py_cast(VM* vm, PyObject* obj)` were implemented. + +```cpp +i64 i = 2; +PyObject* obj = py_var(vm, i); + +// cast a PyObject* to C i64 +i64 j = py_cast(vm, obj); +``` + +The `py_cast` function will check the type of `obj` before casting. +If the type is not matched, a `TypeError` will be thrown. + +However, this type check has a cost. If you are sure about the type of `obj`, +you can use the underscore version `_py_cast` to skip the type check. + +```cpp +// cast a PyObject* to C i64 (unsafe but faster) +i64 j = _py_cast(vm, obj); +``` + +For complex objects like `list`, we can use reference cast to avoid unnecessary copy. + +```cpp +PyObject* obj = py_var(vm, List()); +// reference cast (no copy) +List& list = py_cast(vm, obj); +``` + +### Check type of `PyObject*` + +Each `PyObject*` has a `Type type` field to indicate its type. +`Type` is just an integer which is the global index in `vm->_all_types`. + +`VM` class has a set of predefined `Type` constants for quick access. +They are prefixed by `tp_`. For example, `tp_object`(object), +`tp_int`(int), `tp_str`(str), `tp_list`(list), etc. + +Types are divided into **tagged type** and **non-tagged type**. ++ small `int` objects are tagged. ++ Other types are non-tagged type. + +To determine whether a `PyObject*` is of a specific type, +you can use the following functions: + ++ `bool is_type(PyObject* obj, Type type)` ++ `bool is_int(PyObject* obj)` ++ `bool is_float(PyObject* obj)` ++ `bool is_tagged(PyObject* obj)` + +```cpp +PyObject* obj = py_var(vm, 1); + +bool ok = is_type(obj, vm->tp_int); // true +ok = is_int(obj); // true +ok = is_tagged(obj); // true + +ok = is_type(obj, vm->tp_float); // false +ok = is_float(obj); // false +``` + +Simply put, `is_type` is the most general function and can check any types. +Other variants are designed for specific types and are faster. + +You can also use `check_` prefix functions assert the type of a `PyObject*`, +which will throw `TypeError` on failure. + ++ `void check_type(PyObject* obj, Type type)` + diff --git a/dependencies/pocketpy/docs/quick-start/misc.md b/dependencies/pocketpy/docs/quick-start/misc.md new file mode 100644 index 0000000..2afa491 --- /dev/null +++ b/dependencies/pocketpy/docs/quick-start/misc.md @@ -0,0 +1,39 @@ +--- +icon: dot +label: 'Miscellaneous' +order: 0 +--- + +## The scope lock of gc + +Sometimes you need to use the following code to prevent the gc from collecting objects. + +```cpp +auto _lock = vm->heap.gc_scope_lock(); +``` + +The scope lock is required if you create a PyObject and then try to run python-level bytecodes. + +For example, you create a temporary object on the stack and then call `vm->py_str`. + +```cpp +void some_func(VM* vm){ + PyObject* obj = VAR(List(5)); + // unsafe + PyObject obj_string = vm->py_str(obj); +} +``` + +Because users can have an overload of `__str__`, this call is unsafe. +When the vm is running python-level bytecodes, gc may start and delete your temporary object. + +The scope lock prevents this from happening. + +```cpp +void some_func(VM* vm){ + PyObject* obj = VAR(List(5)); + // safe + auto _lock = vm->heap.gc_scope_lock(); + PyObject obj_string = vm->py_str(obj); +} +``` diff --git a/dependencies/pocketpy/docs/quick-start/modules.md b/dependencies/pocketpy/docs/quick-start/modules.md new file mode 100644 index 0000000..241c0a4 --- /dev/null +++ b/dependencies/pocketpy/docs/quick-start/modules.md @@ -0,0 +1,67 @@ +--- +icon: dot +label: 'Create Modules' +order: 50 +--- + +Modules are stored in `vm->_modules` and `vm->_lazy_modules`. +They are both dict-like objects. + +### Lazy modules + +A lazy module is a python source file. +It is compiled and executed when it is imported. +Use `[]` operator to add a lazy module. + +```cpp +vm->_lazy_modules["test"] = "pi = 3.14"; +``` + +```python +import test +print(test.pi) # 3.14 +``` + +### Native modules + +A native module is a module written in c++ or mixed c++/python. +Native modules are always compiled and executed when the VM is created. + +To creata a native module, use `vm->new_module(Str name)`. + +```cpp +PyObject* mod = vm->new_module("test"); +mod->attr().set("pi", py_var(vm, 3.14)); + +vm->bind(mod, "add(a: int, b: int)", + [](VM* vm, ArgsView args){ + int a = py_cast(vm, args[0]); + int b = py_cast(vm, args[1]); + return py_var(vm, a + b); + }); +``` + +```python +import test +print(test.pi) # 3.14 +print(test.add(1, 2)) # 3 +``` + +### Module resolution order + +When you do `import` a module, the VM will try to find it in the following order: + +1. Search `vm->_modules`, if found, return it. +2. Search `vm->_lazy_modules`, if found, compile and execute it, then return it. +3. Try `vm->_import_handler`. + + +### Customized import handler + +You can use `vm->_import_handler` to provide a custom import handler for the 3rd step. + +### Import module via cpp + +You can use `vm->py_import` to import a module. +This is equivalent to `import` in python. +Return the module object if success. diff --git a/dependencies/pocketpy/docs/retype.yml b/dependencies/pocketpy/docs/retype.yml new file mode 100644 index 0000000..0f49226 --- /dev/null +++ b/dependencies/pocketpy/docs/retype.yml @@ -0,0 +1,32 @@ +input: . +output: .retype +url: https://pocketpy.dev +branding: + title: pocketpy + label: v1.4.6 + logo: "./static/logo.png" +favicon: "./static/logo.png" +meta: + title: " | Open Source Python interpreter in 1 file" +links: + - text: "Home" + icon: home + link: "" + - text: "Live Demo" + icon: play + link: "https://pocketpy.dev/static/web/" + target: blank + - text: "Github" + icon: mark-github + link: https://github.com/blueloveth/pocketpy + target: blank + - text: Issues + link: https://github.com/blueloveth/pocketpy/issues + icon: issue-opened + target: blank + - text: Discord + link: https://discord.gg/WWaq72GzXv + icon: comment-discussion + target: blank +footer: + copyright: "© Copyright {{ year }} - [blueloveTH](https://github.com/blueloveTH) - All rights reserved." \ No newline at end of file diff --git a/dependencies/pocketpy/docs/static/logo.png b/dependencies/pocketpy/docs/static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f9d471194ff724693b35cbb5aca5f7e013867729 GIT binary patch literal 25653 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 literal 0 HcmV?d00001 diff --git a/dependencies/pocketpy/docs/unity/bindings.md b/dependencies/pocketpy/docs/unity/bindings.md new file mode 100644 index 0000000..c09d96d --- /dev/null +++ b/dependencies/pocketpy/docs/unity/bindings.md @@ -0,0 +1,185 @@ +--- +label: Bindings +icon: dot +order: 10 +--- + +Bindings are methods and variables that are defined in C# and can be accessed from Python. +We provide two types of bindings: static bindings and dynamic bindings. + +## Static Bindings + +Static bindings wrap a C# class or struct and expose its methods and variables to Python. +This is the most common way to define bindings. +Static bindings are initialized at compile time. + +### Manual Static Bindings + +Manual static bindings directly create a Python equivalent of `def f(a, b, *args)` in C#. +To use it, you need to create a class that inherits from `PyTypeObject`. +And implement some abstract methods to specify the name and type of the Python type. +For example, to make `UnityEngine.Vector2` available in Python, you can write a `PyVector2Type` +class like the following. + +```csharp +public class PyVector2Type: PyTypeObject{ + // The name of the type in Python + public override string Name => "Vector2"; + + // The corresponding C# type + public override System.Type CSType => typeof(Vector2); +} +``` + +Next, you need to define each method and variable to be exposed to Python, +by using `[PythonBinding]` attribute. + +!!! +We assume that you have necessary knowledge about +[Python's data model](https://docs.python.org/3/reference/datamodel.html). +Such as magic methods, `__new__`, `__init__`, `__add__` and so on. +Otherwise, you may have trouble understanding the following code. +!!! + +Let's define a magic method `__add__`, it is used to implement the `+` operator in Python. +With `__add__`, `Vector2` object in Python can be added with another `Vector2` object. + +```csharp +public class PyVector2Type: PyTypeObject{ + public override string Name => "Vector2"; + public override System.Type CSType => typeof(Vector2); + + [PythonBinding] + public object __add__(Vector2 self, object other){ + // If the other object is not a Vector2, return NotImplemented + if(!(other is Vector2)) return VM.NotImplemented; + // Otherwise, return the result of addition + return self + (Vector2)other; + } +} +``` + +This is easy to understand. +Let's see another example, `__mul__`, it is used to implement the `*` operator in Python. +`Vector2` object in C# can be multiplied with a `float` object in Python. +The following code shows this usage. + +```csharp +Vector2 a = new Vector2(1, 2); +Vector2 b = a * 2.0f; +Vector2 c = 2.0f * a; +``` + +As you can see, things are slightly different from `__add__`. +Because the `float` operand can be on the left or right side of the `*` operator. +In this case, you need to define `__mul__` and `__rmul__` at the same time. + +```csharp +public class PyVector2Type: PyTypeObject{ + public override string Name => "Vector2"; + public override System.Type CSType => typeof(Vector2); + + // ... + + [PythonBinding] + public object __mul__(Vector2 self, object other){ + if(!(other is float)) return VM.NotImplemented; + return self * (float)other; + } + + [PythonBinding] + public object __rmul__(Vector2 self, object other){ + if(!(other is float)) return VM.NotImplemented; + return self * (float)other; + } +} +``` + +Finally, let's implement the constructor of `Vector2`. +`__new__` magic method must be defined. + +```csharp +public class PyVector2Type: PyTypeObject{ + public override string Name => "Vector2"; + public override System.Type CSType => typeof(Vector2); + + [PythonBinding] + public object __new__(PyTypeObject cls, params object[] args){ + if(args.Length == 0) return new Vector2(); + if(args.Length == 2){ + float x = vm.PyCast(args[0]); + float y = vm.PyCast(args[1]); + return new Vector2(x, y); + } + vm.TypeError("Vector2.__new__ takes 0 or 2 arguments"); + return null; + } +} +``` + +Here we use `params object[] args` to tell the bindings that the constructor can take any number of arguments. +It is equivalent to `def __new__(cls, *args)` in Python. +Note that Python does not support method overloading. +So we manually check the number of arguments and their types to determine which constructor to call. + +For fields, we can form a Python property by defining a getter and a setter. +By using `[PythonBinding(BindingType.Getter)]` and `[PythonBinding(BindingType.Setter)]` attributes. + +!!! +However, this has certain limitations for value types. Because `Vector2` is a struct, it is passed by value. +So our setter will not be able to modify the original `Vector2` object. +!!! + +```csharp +public class PyVector2Type: PyTypeObject{ + public override string Name => "Vector2"; + public override System.Type CSType => typeof(Vector2); + + [PythonBinding(BindingType.Getter)] + public object x(Vector2 self) => self.x; + + [PythonBinding(BindingType.Setter)] + public void x(Vector2 self, object value) => self.x = vm.PyCast(value); + + [PythonBinding(BindingType.Getter)] + public object y(Vector2 self) => self.y; + + [PythonBinding(BindingType.Setter)] + public void y(Vector2 self, object value) => self.y = vm.PyCast(value); +} +``` + +Once you have done all the above, you must register the type to the VM. +Here we set it into `builtins` module, so that it can be accessed from anywhere. + +```csharp +vm.RegisterType(new PyVector2Type(), vm.builtins); +``` + +To summarize, manual static bindings provide detailed control for exposing a C# class to Python. +You decide which methods and variables to expose, and how to expose them. +This is our recommended way to define bindings. Also it is the most performant way. + +### Automatic Static Bindings + +Automatic static bindings use C# reflection to automatically generate bindings for a C# class. +It is convenient for testing and prototyping, but it is slow and unsafe since the user can access any member of the class. + +```csharp +vm.RegisterAutoType(vm.builtins); +``` + +That's all you need to do. The `RegisterAutoType` method will automatically generate bindings for `Vector2`. + + +## Dynamic Bindings + +Dynamic bindings allow you to add a single C# lambda function to an object at runtime. + +```csharp +delegate object NativeFuncC(VM vm, object[] args); +``` + ++ `CSharpLambda BindFunc(PyObject obj, string name, int argc, NativeFuncC f)` + +It is similar to `bind_func` in [C++ API](../bindings/). diff --git a/dependencies/pocketpy/docs/unity/console.md b/dependencies/pocketpy/docs/unity/console.md new file mode 100644 index 0000000..362747c --- /dev/null +++ b/dependencies/pocketpy/docs/unity/console.md @@ -0,0 +1,32 @@ +--- +label: Python console +icon: dot +order: 5 +--- + +You can open the Python console in Unity by clicking the `Window/Python Console` menu item. + +By default, the console creates a unmodified `VM` instance to execute your code. +You may want to provide an enhanced `VM` instance for the console in Unity Editor. +For example, adding some class bindings in `UnityEngine` namespace. + +To do this, you need to create a class derived from `VM` and put it in `Assets/Editor/` folder. +By adding `[EditorVM]` attribute to the class, +the console will use it instead of the default `VM` instance. + + +```csharp +using UnityEngine; +using PocketPython; + +[EditorVM] // this attribute is required +public class EnhancedVM: VM{ + public EnhancedVM() { + RegisterAutoType(builtins); + RegisterAutoType(builtins); + RegisterAutoType(builtins); + RegisterAutoType(builtins); + // ... + } +} +``` \ No newline at end of file diff --git a/dependencies/pocketpy/docs/unity/examples.md b/dependencies/pocketpy/docs/unity/examples.md new file mode 100644 index 0000000..1e0a131 --- /dev/null +++ b/dependencies/pocketpy/docs/unity/examples.md @@ -0,0 +1,166 @@ +--- +label: Examples +icon: dot +order: 4 +--- + +See `Assets/PocketPython/Examples` after you import the plugin. + + +### Primes Example + +```csharp +using UnityEngine; + +namespace PocketPython +{ + + /// + /// Example of using PocketPython to find prime numbers. + /// + public class PrimesExample : MonoBehaviour + { + // Start is called before the first frame update + void Start() + { + var vm = new VM(); + const string source = @" +def is_prime(x): + if x < 2: + return False + for i in range(2, x): + if x % i == 0: + return False + return True + +primes = [i for i in range(2, 20) if is_prime(i)] +print(primes) +"; + CodeObject code = vm.Compile(source, "main.py", CompileMode.EXEC_MODE); + vm.Exec(code); // [2, 3, 5, 7, 11, 13, 17, 19] + } + } + +} +``` + + + +### Vector2 Example + +```csharp +using UnityEngine; + +namespace PocketPython +{ + + /// + /// Example of making UnityEngine.Vector2 available to Python. + /// + public class Vector2Example : MonoBehaviour + { + // Start is called before the first frame update + void Start() + { + var vm = new VM(); + // register UnityEngine.Vector2 type into the builtins module + vm.RegisterAutoType(vm.builtins); + + vm.Exec("print(Vector2)", "main.py"); // + vm.Exec("v = Vector2(1, 2)", "main.py"); + vm.Exec("print(v)", "main.py"); // (1.0, 2.0) + vm.Exec("print(v.x)", "main.py"); // 1.0 + vm.Exec("print(v.y)", "main.py"); // 2.0 + vm.Exec("print(v.magnitude)", "main.py"); // 2.236068 + vm.Exec("print(v.normalized)", "main.py"); // (0.4472136, 0.8944272) + vm.Exec("print(Vector2.Dot(v, v))", "main.py"); // 5.0 + vm.Exec("print(Vector2.get_up())", "main.py"); // (0.0, 1.0) + + Vector2 v = (Vector2)vm.Eval("Vector2(3, 4) + v"); + Debug.Log(v); // (4.0, 6.0) + } + } + +} +``` + + + +### MyClass Example + +```csharp +using UnityEngine; +using System; + +namespace PocketPython +{ + + public class MyClass + { + public string title; + public string msg; + + public void Print() + { + Debug.Log(title + ": " + msg); + } + } + + public class PyMyclassType : PyTypeObject + { + public override string Name => "my_class"; + public override Type CSType => typeof(MyClass); + + [PythonBinding] + public object __new__(PyTypeObject cls) + { + return new MyClass(); + } + + [PythonBinding(BindingType.Getter)] + public string title(MyClass value) => value.title; + + [PythonBinding(BindingType.Getter)] + public string msg(MyClass value) => value.msg; + + [PythonBinding(BindingType.Setter)] + public void title(MyClass value, string title) => value.title = title; + + [PythonBinding(BindingType.Setter)] + public void msg(MyClass value, string msg) => value.msg = msg; + + [PythonBinding] + public void print(MyClass value) => value.Print(); + } + + + /// + /// Example of binding a custom C# class to Python. + /// + public class MyClassExample : MonoBehaviour + { + // Start is called before the first frame update + void Start() + { + var vm = new VM(); + + // register MyClass type into the builtins module + vm.RegisterType(new PyMyclassType(), vm.builtins); + + vm.Exec("print(my_class)", "main.py"); // + vm.Exec("c = my_class()", "main.py"); + vm.Exec("c.title = 'Greeting'", "main.py"); + vm.Exec("c.msg = 'Hello, world!'", "main.py"); + + string title = vm.Eval("c.title").ToString(); + string msg = vm.Eval("c.msg").ToString(); + + Debug.Log(title + ": " + msg); // Greeting: Hello, world! + + vm.Exec("c.print()", "main.py"); // Greeting: Hello, world! + } + } + +} +``` + diff --git a/dependencies/pocketpy/docs/unity/index.yml b/dependencies/pocketpy/docs/unity/index.yml new file mode 100644 index 0000000..a0024f8 --- /dev/null +++ b/dependencies/pocketpy/docs/unity/index.yml @@ -0,0 +1,3 @@ +label: Unity Plugin +icon: code +order: 0 \ No newline at end of file diff --git a/dependencies/pocketpy/docs/unity/introduction.md b/dependencies/pocketpy/docs/unity/introduction.md new file mode 100644 index 0000000..b76117f --- /dev/null +++ b/dependencies/pocketpy/docs/unity/introduction.md @@ -0,0 +1,82 @@ +--- +label: Introduction +icon: dot +order: 30 +--- + +# Welcome to PocketPython + +PocketPython is a C# plugin that allows you to do Python scripting in Unity. It provides a sandboxed Python environment, which adds dynamic capabilities to your game, which can be used for dynamic game logic, modding, hot fixing, and more. + +The virtual machine is written in pure C#, which means you can fully control the internal state of the Python interpreter. + +!!! +PocketPython is designed for game scripting, not for scientific computing. +You cannot use it to run NumPy, OpenCV, or any other CPython extension modules. +!!! + + +## Features + +### Python 3.x Syntax + +PocketPython uses [pocketpy](https://github.com/pocketpy/pocketpy) +as frontend to parse and compile Python source code. +It supports most of the Python 3.x syntax. + +The following table shows a feature comparison of PocketPython +with respect to the original [pocketpy](https://github.com/pocketpy/pocketpy). +The features marked with `YES` are supported, and the features marked with `NO` are not supported. + +| Name | Example | Cpp | Unity | +| --------------- | ------------------------------- | --------- | --- | +| If Else | `if..else..elif` | YES | YES | +| Loop | `for/while/break/continue` | YES | YES | +| Function | `def f(x,*args,y=1):` | YES | YES | +| Subclass | `class A(B):` | YES | YES | +| List | `[1, 2, 'a']` | YES | YES | +| ListComp | `[i for i in range(5)]` | YES | YES | +| Slice | `a[1:2], a[:2], a[1:]` | YES | YES | +| Tuple | `(1, 2, 'a')` | YES | YES | +| Dict | `{'a': 1, 'b': 2}` | YES | YES | +| F-String | `f'value is {x}'` | YES | YES | +| Unpacking | `a, b = 1, 2` | YES | YES | +| Star Unpacking | `a, *b = [1, 2, 3]` | YES | YES | +| Exception | `raise/try..catch` | YES | NO | +| Dynamic Code | `eval()/exec()` | YES | YES | +| Reflection | `hasattr()/getattr()/setattr()` | YES | YES | +| Import | `import/from..import` | YES | YES | +| Context Block | `with as :` | YES | NO | +| Type Annotation | `def f(a:int, b:float=1)` | YES | YES | +| Generator | `yield i` | YES | NO | +| Decorator | `@cache` | YES | YES | + +### Sandboxed Python Environment + +PocketPython provides a sandboxed Python environment. +All python code is executed in a C# virtual machine. +The user cannot access the file system, network, or any other resources of the host machine. + +### Seamless Interop with C# + +PocketPython uses `object` in C# to represent dynamic typed Python objects. +Most of the basic Python types correspond to a C# type, +which means passing arguments between C# and Python is extremely easy and intuitive. + +| Python Type | C# Type | +| ----------- | ------- | +| `None` | `NoneType` | +| `object` | `System.Object` | +| `bool` | `System.Boolean` | +| `int` | `System.Int32` | +| `float` | `System.Single` | +| `str` | `System.String` | +| `tuple` | `System.Object[]` | +| `list` | `System.Collections.Generic.List` | +| `dict` | `System.Collections.Generic.Dictionary` | +| ... | ... | + +### Python Console in Editor + +PocketPython provides a Python console in Unity editor, +which allows you to do quick debugging and testing. \ No newline at end of file diff --git a/dependencies/pocketpy/docs/unity/vm.md b/dependencies/pocketpy/docs/unity/vm.md new file mode 100644 index 0000000..2564c56 --- /dev/null +++ b/dependencies/pocketpy/docs/unity/vm.md @@ -0,0 +1,153 @@ +--- +label: Virtual machine +icon: dot +order: 20 +--- + +The `VM` class provides a sandboxed Python environment and a set of APIs for interacting with it. +Using the namespace `PocketPython` before any operations. + +```csharp +using PocketPython; +``` + +### Construction + ++ `VM()` + + Create a new Python virtual machine. + +### Code Execution + ++ `CodeObject Compile(string source, string filename, CompileMode mode)` + + Compile Python source code into a `CodeObject` that can be executed later. + The `filename` parameter is used for error reporting, you can set it to `main.py` if you don't need it. + The `mode` parameter specifies the compile mode, see [CompileMode](../quick-start/exec/#compile-mode) for details. + ++ `object Exec(CodeObject co, PyModule mod = null)` + + Execute a `CodeObject` in the given module. + The `mod` parameter specifies the module in which the code will be executed. + If it is `null`, the code will be executed in the main module. + ++ `object Exec(string source, string filename, CompileMode mode = CompileMode.EXEC_MODE, PyModule mod = null)` + + Compile and execute Python source code in the given module. It is equivalent to `Exec(Compile(source, filename, mode), mod)`. + ++ `object Eval(string source, PyModule mod = null)` + + Evaluate an expression in the given module. + ++ `object Call(object callable, object[] args, Dictionary kwargs)` + + Call a Python callable object with the given arguments and keyword arguments. It is equivalent to `callable(*args, **kwargs)` in Python. + ++ `object CallMethod(object obj, string name, params object[] args)` + + Call a method of a Python object with the given arguments. It is equivalent to `obj.name(*args)` in Python. + + +### Attribute Access + ++ `object GetAttr(object obj, string name, bool throwErr = true)` + + Get an attribute of a Python object. It is equivalent to `obj.name` in Python. + If `throwErr` is `true`, it will throw an exception if the attribute does not exist. + Otherwise, it will return `null`. + ++ `NoneType SetAttr(object obj, string name, object value)` + + Set an attribute of a Python object. It is equivalent to `obj.name = value` in Python. + ++ `bool HasAttr(object obj, string name)` + + Check if a Python object has the given attribute. It is equivalent to `hasattr(obj, name)` in Python. + +### Module Access + ++ `Dictionary modules` + + A dictionary that maps module names to `PyModule` objects. + You can use it to access the modules that have been imported. + ++ `Dictionary lazyModules` + + A dictionary stores all unimported modules. You can add Python source into this dictionary. + It will be initialized and moved to `modules` when it is first imported. + ++ `PyModule NewModule(string name)` + + Create a new module with the given name at runtime. The module will be added to `modules` automatically. + ++ `PyModule PyImport(string name)` + + Import a Python module. It is equivalent to `import name` in Python. It first checks if the module has been imported, if not, it will try to load the module from `lazyModules`. + + +### Type Conversion + ++ `T PyCast(object obj)` + + Convert a Python object to a C# object. It is equivalent to `obj as T` in C#. + Raise `TypeError` if the conversion fails. + ++ `bool IsInstance(object obj, PyTypeObject type)` + + Check if a Python object is an instance of the given type. It is equivalent to `isinstance(obj, type)` in Python. + ++ `void CheckType(object t)` + + Check if `t is T`. Raise `TypeError` if the check fails. + ++ `bool PyEquals(object lhs, object rhs)` + + Check if two Python objects are equal. It is equivalent to `lhs == rhs` in Python. This is different from `==` or `object.ReferenceEquals` in C#. You should always use this method to compare Python objects. + ++ `object PyIter(object obj)` + + Get an iterator of a Python object. It is equivalent to `iter(obj)` in Python. + ++ `object PyNext(object obj)` + + Get the next element of a Python iterator. It is equivalent to `next(obj)` in Python. + ++ `bool PyBool(object obj)` + + Convert a Python object to a boolean value. It is equivalent to `bool(obj)` in Python. + ++ `string PyStr(object obj)` + + Convert a Python object to a string. It is equivalent to `str(obj)` in Python. + ++ `string PyRepr(object obj)` + + Convert a Python object to a string representation. It is equivalent to `repr(obj)` in Python. + ++ `int PyHash(object obj)` + + Get the hash value of a Python object. It is equivalent to `hash(obj)` in Python. + ++ `List PyList(object obj)` + + Convert an `Iterable` Python object to a list. It is equivalent to `list(obj)` in Python. + +### Callbacks + ++ `System.Action stdout = Debug.Log` + + A callback that will be called when the Python code invokes `print` function. + By default, it will print the message to Unity console. + ++ `System.Action stderr = null` + + A callback that will be called when the Python code emits an error message. + By default, an Exception will be raised. + You can set it to `Debug.LogError` for printing to the Unity Console. + +### Debug Flag + ++ `bool debug = false` + + A flag that controls whether to print debug messages to Unity console. + You can set it to `true` to enable debug messages, or `false` to disable them. diff --git a/dependencies/pocketpy/include/pocketpy.h b/dependencies/pocketpy/include/pocketpy.h new file mode 100644 index 0000000..18ce704 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy.h @@ -0,0 +1,3 @@ +#pragma once + +#include "pocketpy/pocketpy.h" \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/_generated.h b/dependencies/pocketpy/include/pocketpy/_generated.h new file mode 100644 index 0000000..b87eaae --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/_generated.h @@ -0,0 +1,20 @@ +#pragma once +// generated by prebuild.py + +namespace pkpy{ + extern const char kPythonLibs__enum[]; + extern const char kPythonLibs__long[]; + extern const char kPythonLibs__set[]; + extern const char kPythonLibs_bisect[]; + extern const char kPythonLibs_builtins[]; + extern const char kPythonLibs_cmath[]; + extern const char kPythonLibs_collections[]; + extern const char kPythonLibs_colorsys[]; + extern const char kPythonLibs_datetime[]; + extern const char kPythonLibs_functools[]; + extern const char kPythonLibs_heapq[]; + extern const char kPythonLibs_itertools[]; + extern const char kPythonLibs_pickle[]; + extern const char kPythonLibs_this[]; + extern const char kPythonLibs_typing[]; +} // namespace pkpy diff --git a/dependencies/pocketpy/include/pocketpy/array2d.h b/dependencies/pocketpy/include/pocketpy/array2d.h new file mode 100644 index 0000000..f79cbc4 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/array2d.h @@ -0,0 +1,9 @@ +#pragma once + +#include "bindings.h" + +namespace pkpy { + +void add_module_array2d(VM* vm); + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/base64.h b/dependencies/pocketpy/include/pocketpy/base64.h new file mode 100644 index 0000000..0bbf6b1 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/base64.h @@ -0,0 +1,9 @@ +#pragma once + +#include "bindings.h" + +namespace pkpy { + +void add_module_base64(VM* vm); + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/bindings.h b/dependencies/pocketpy/include/pocketpy/bindings.h new file mode 100644 index 0000000..a760f00 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/bindings.h @@ -0,0 +1,185 @@ +#pragma once + +#include "cffi.h" + +namespace pkpy{ + +struct NativeProxyFuncCBase { + virtual PyObject* operator()(VM* vm, ArgsView args) = 0; +}; + +template +struct NativeProxyFuncC final: NativeProxyFuncCBase { + static constexpr int N = sizeof...(Params); + using _Fp = Ret(*)(Params...); + _Fp func; + NativeProxyFuncC(_Fp func) : func(func) {} + + PyObject* operator()(VM* vm, ArgsView args) override { + PK_DEBUG_ASSERT(args.size() == N); + return call(vm, args, std::make_index_sequence()); + } + + template + PyObject* call(VM* vm, ArgsView args, std::index_sequence){ + if constexpr(std::is_void_v<__Ret>){ + func(py_cast(vm, args[Is])...); + return vm->None; + }else{ + __Ret ret = func(py_cast(vm, args[Is])...); + return VAR(std::move(ret)); + } + } +}; + +template +struct NativeProxyMethodC final: NativeProxyFuncCBase { + static constexpr int N = sizeof...(Params); + using _Fp = Ret(T::*)(Params...); + _Fp func; + NativeProxyMethodC(_Fp func) : func(func) {} + + PyObject* operator()(VM* vm, ArgsView args) override { + PK_DEBUG_ASSERT(args.size() == N+1); + return call(vm, args, std::make_index_sequence()); + } + + template + PyObject* call(VM* vm, ArgsView args, std::index_sequence){ + T& self = py_cast(vm, args[0]); + if constexpr(std::is_void_v<__Ret>){ + (self.*func)(py_cast(vm, args[Is+1])...); + return vm->None; + }else{ + __Ret ret = (self.*func)(py_cast(vm, args[Is+1])...); + return VAR(std::move(ret)); + } + } +}; + +inline PyObject* proxy_wrapper(VM* vm, ArgsView args){ + NativeProxyFuncCBase* pf = lambda_get_userdata(args.begin()); + return (*pf)(vm, args); +} + +template +void _bind(VM* vm, PyObject* obj, const char* sig, Ret(*func)(Params...)){ + auto proxy = new NativeProxyFuncC(func); + vm->bind(obj, sig, proxy_wrapper, proxy); +} + +template +void _bind(VM* vm, PyObject* obj, const char* sig, Ret(T::*func)(Params...)){ + auto proxy = new NativeProxyMethodC(func); + vm->bind(obj, sig, proxy_wrapper, proxy); +} +/*****************************************************************/ +#define PY_FIELD(T, NAME, REF, EXPR) \ + vm->bind_property(type, NAME, \ + [](VM* vm, ArgsView args){ \ + T& self = PK_OBJ_GET(T, args[0]); \ + return VAR(self.REF()->EXPR); \ + }, \ + [](VM* vm, ArgsView args){ \ + T& self = PK_OBJ_GET(T, args[0]); \ + self.REF()->EXPR = CAST(decltype(self.REF()->EXPR), args[1]); \ + return vm->None; \ + }); + +#define PY_FIELD_P(T, NAME, EXPR) \ + vm->bind_property(type, NAME, \ + [](VM* vm, ArgsView args){ \ + VoidP& self = PK_OBJ_GET(VoidP, args[0]); \ + T* tgt = reinterpret_cast(self.ptr); \ + return VAR(tgt->EXPR); \ + }, \ + [](VM* vm, ArgsView args){ \ + VoidP& self = PK_OBJ_GET(VoidP, args[0]); \ + T* tgt = reinterpret_cast(self.ptr); \ + tgt->EXPR = CAST(decltype(tgt->EXPR), args[1]); \ + return vm->None; \ + }); + +#define PY_READONLY_FIELD(T, NAME, REF, EXPR) \ + vm->bind_property(type, NAME, \ + [](VM* vm, ArgsView args){ \ + T& self = PK_OBJ_GET(T, args[0]); \ + return VAR(self.REF()->EXPR); \ + }); + +#define PY_READONLY_FIELD_P(T, NAME, EXPR) \ + vm->bind_property(type, NAME, \ + [](VM* vm, ArgsView args){ \ + VoidP& self = PK_OBJ_GET(VoidP, args[0]); \ + T* tgt = reinterpret_cast(self.ptr); \ + return VAR(tgt->EXPR); \ + }); + +#define PY_PROPERTY(T, NAME, REF, FGET, FSET) \ + vm->bind_property(type, NAME, \ + [](VM* vm, ArgsView args){ \ + T& self = PK_OBJ_GET(T, args[0]); \ + return VAR(self.REF()->FGET()); \ + }, \ + [](VM* vm, ArgsView args){ \ + T& self = _CAST(T&, args[0]); \ + using __NT = decltype(self.REF()->FGET()); \ + self.REF()->FSET(CAST(__NT, args[1])); \ + return vm->None; \ + }); + +#define PY_READONLY_PROPERTY(T, NAME, REF, FGET) \ + vm->bind_property(type, NAME, \ + [](VM* vm, ArgsView args){ \ + T& self = PK_OBJ_GET(T, args[0]); \ + return VAR(self.REF()->FGET()); \ + }); + +#define PY_STRUCT_LIKE(wT) \ + using vT = std::remove_pointer_t()._())>; \ + static_assert(std::is_trivially_copyable::value); \ + type->attr().set("__struct__", vm->True); \ + vm->bind_func<1>(type, "from_struct", [](VM* vm, ArgsView args){ \ + C99Struct& s = CAST(C99Struct&, args[0]); \ + if(s.size != sizeof(vT)) vm->ValueError("size mismatch"); \ + PyObject* obj = vm->heap.gcnew(wT::_type(vm)); \ + memcpy(_CAST(wT&, obj)._(), s.p, sizeof(vT)); \ + return obj; \ + }, {}, BindType::STATICMETHOD); \ + vm->bind_method<0>(type, "to_struct", [](VM* vm, ArgsView args){ \ + wT& self = _CAST(wT&, args[0]); \ + return VAR_T(C99Struct, self._(), sizeof(vT)); \ + }); \ + vm->bind_method<0>(type, "addr", [](VM* vm, ArgsView args){ \ + wT& self = _CAST(wT&, args[0]); \ + return VAR_T(VoidP, self._()); \ + }); \ + vm->bind_method<0>(type, "copy", [](VM* vm, ArgsView args){ \ + wT& self = _CAST(wT&, args[0]); \ + return VAR_T(wT, *self._()); \ + }); \ + vm->bind_method<0>(type, "sizeof", [](VM* vm, ArgsView args){ \ + return VAR(sizeof(vT)); \ + }); \ + vm->bind__eq__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ \ + wT& self = _CAST(wT&, _0); \ + if(!vm->isinstance(_1, wT::_type(vm))) return vm->NotImplemented; \ + wT& other = _CAST(wT&, _1); \ + return VAR(self == other); \ + }); \ + +#define PY_POINTER_SETGETITEM(T) \ + vm->bind__getitem__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ \ + VoidP& self = PK_OBJ_GET(VoidP, _0); \ + i64 i = CAST(i64, _1); \ + T* tgt = reinterpret_cast(self.ptr); \ + return VAR(tgt[i]); \ + }); \ + vm->bind__setitem__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1, PyObject* _2){ \ + VoidP& self = PK_OBJ_GET(VoidP, _0); \ + i64 i = CAST(i64, _1); \ + T* tgt = reinterpret_cast(self.ptr); \ + tgt[i] = CAST(T, _2); \ + }); \ + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/ceval.h b/dependencies/pocketpy/include/pocketpy/ceval.h new file mode 100644 index 0000000..d7a10dc --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/ceval.h @@ -0,0 +1,4 @@ +#pragma once + +#include "vm.h" +// dummy header for ceval.cpp \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/cffi.h b/dependencies/pocketpy/include/pocketpy/cffi.h new file mode 100644 index 0000000..9d9893d --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/cffi.h @@ -0,0 +1,116 @@ +#pragma once + +#include "common.h" +#include "vm.h" + +namespace pkpy { + +#define PY_CLASS(T, mod, name) \ + static Type _type(VM* vm) { return vm->_cxx_typeid_map[typeid(T)]; } \ + static PyObject* register_class(VM* vm, PyObject* mod, Type base=0) { \ + std::string_view mod_name = PK_OBJ_GET(Str, mod->attr("__name__")).sv(); \ + if(mod_name != #mod) throw std::runtime_error(_S("register_class() failed: ", mod_name, " != ", #mod).str()); \ + PyObject* type = vm->new_type_object(mod, #name, base); \ + mod->attr().set(#name, type); \ + vm->_cxx_typeid_map[typeid(T)] = PK_OBJ_GET(Type, type); \ + T::_register(vm, mod, type); \ + return type; \ + } + +#define VAR_T(T, ...) vm->heap.gcnew(T::_type(vm), __VA_ARGS__) + +struct VoidP{ + PY_CLASS(VoidP, c, void_p) + + void* ptr; + VoidP(const void* ptr): ptr(const_cast(ptr)){} + + bool operator==(const VoidP& other) const { + return ptr == other.ptr; + } + bool operator!=(const VoidP& other) const { + return ptr != other.ptr; + } + bool operator<(const VoidP& other) const { return ptr < other.ptr; } + bool operator<=(const VoidP& other) const { return ptr <= other.ptr; } + bool operator>(const VoidP& other) const { return ptr > other.ptr; } + bool operator>=(const VoidP& other) const { return ptr >= other.ptr; } + + Str hex() const{ + SStream ss; + ss.write_hex(ptr); + return ss.str(); + } + + static void _register(VM* vm, PyObject* mod, PyObject* type); +}; + +#define POINTER_VAR(Tp, NAME) \ + inline PyObject* py_var(VM* vm, Tp val){ \ + const static std::pair P("c", NAME); \ + PyObject* type = vm->_modules[P.first]->attr(P.second); \ + return vm->heap.gcnew(PK_OBJ_GET(Type, type), val); \ + } + +POINTER_VAR(char*, "char_p") +// const char* is special, need to rethink about it +POINTER_VAR(const unsigned char*, "uchar_p") +POINTER_VAR(const short*, "short_p") +POINTER_VAR(const unsigned short*, "ushort_p") +POINTER_VAR(const int*, "int_p") +POINTER_VAR(const unsigned int*, "uint_p") +POINTER_VAR(const long*, "long_p") +POINTER_VAR(const unsigned long*, "ulong_p") +POINTER_VAR(const long long*, "longlong_p") +POINTER_VAR(const unsigned long long*, "ulonglong_p") +POINTER_VAR(const float*, "float_p") +POINTER_VAR(const double*, "double_p") +POINTER_VAR(const bool*, "bool_p") + +#undef POINTER_VAR + + +struct C99Struct{ + PY_CLASS(C99Struct, c, struct) + + static constexpr int INLINE_SIZE = 24; + + char _inlined[INLINE_SIZE]; + char* p; + int size; + + C99Struct(int new_size, bool zero_init=true){ + this->size = new_size; + if(size <= INLINE_SIZE){ + p = _inlined; + }else{ + p = (char*)malloc(size); + } + if(zero_init) memset(p, 0, size); + } + + C99Struct(void* p, int size): C99Struct(size, false){ + if(p != nullptr) memcpy(this->p, p, size); + } + + C99Struct(const C99Struct& other): C99Struct(other.p, other.size){} + ~C99Struct(){ if(p!=_inlined) free(p); } + + static void _register(VM* vm, PyObject* mod, PyObject* type); +}; + +static_assert(sizeof(Py_) <= 64); +static_assert(sizeof(Py_) <= 64); + +/***********************************************/ +template +Tp to_void_p(VM* vm, PyObject* var){ + static_assert(std::is_pointer_v); + if(var == vm->None) return nullptr; // None can be casted to any pointer implicitly + VoidP& p = CAST(VoidP&, var); + return reinterpret_cast(p.ptr); +} +/*****************************************************************/ +void add_module_c(VM* vm); + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/codeobject.h b/dependencies/pocketpy/include/pocketpy/codeobject.h new file mode 100644 index 0000000..6136438 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/codeobject.h @@ -0,0 +1,213 @@ +#pragma once + +#include "obj.h" +#include "error.h" + +namespace pkpy{ + +enum NameScope { NAME_LOCAL, NAME_GLOBAL, NAME_GLOBAL_UNKNOWN }; + +enum Opcode: uint8_t { + #define OPCODE(name) OP_##name, + #include "opcodes.h" + #undef OPCODE +}; + +struct Bytecode{ + uint8_t op; + uint16_t arg; +}; + +enum class CodeBlockType { + NO_BLOCK, + FOR_LOOP, + WHILE_LOOP, + CONTEXT_MANAGER, + TRY_EXCEPT, +}; + +inline const uint8_t BC_NOARG = 0; +inline const int BC_KEEPLINE = -1; + +struct CodeBlock { + CodeBlockType type; + int parent; // parent index in blocks + int base_stack_size; // this is used for exception handling + int start; // start index of this block in codes, inclusive + int end; // end index of this block in codes, exclusive + int end2; // ... + + CodeBlock(CodeBlockType type, int parent, int base_stack_size, int start): + type(type), parent(parent), base_stack_size(base_stack_size), start(start), end(-1), end2(-1) {} + + int get_break_end() const{ + if(end2 != -1) return end2; + return end; + } +}; + +struct CodeObject; +struct FuncDecl; +using CodeObject_ = std::shared_ptr; +using FuncDecl_ = std::shared_ptr; + +struct CodeObject { + struct LineInfo{ + int lineno; // line number for each bytecode + bool is_virtual; // whether this bytecode is virtual (not in source code) + }; + + std::shared_ptr src; + Str name; + + std::vector codes; + std::vector iblocks; // block index for each bytecode + std::vector lines; + + small_vector_no_copy_and_move consts; // constants + small_vector_no_copy_and_move varnames; // local variables + + NameDictInt varnames_inv; + std::vector blocks; + NameDictInt labels; + std::vector func_decls; + + int start_line; + int end_line; + + const CodeBlock& _get_block_codei(int codei) const{ + return blocks[iblocks[codei]]; + } + + CodeObject(std::shared_ptr src, const Str& name); + void _gc_mark() const; +}; + +enum class FuncType{ + UNSET, + NORMAL, + SIMPLE, + EMPTY, + GENERATOR, +}; + +struct FuncDecl { + struct KwArg { + int index; // index in co->varnames + StrName key; // name of this argument + PyObject* value; // default value + }; + CodeObject_ code; // code object of this function + + small_vector_no_copy_and_move args; // indices in co->varnames + small_vector_no_copy_and_move kwargs; // indices in co->varnames + + int starred_arg = -1; // index in co->varnames, -1 if no *arg + int starred_kwarg = -1; // index in co->varnames, -1 if no **kwarg + bool nested = false; // whether this function is nested + + const char* docstring; // docstring of this function (weak ref) + + FuncType type = FuncType::UNSET; + + NameDictInt kw_to_index; + + void add_kwarg(int index, StrName key, PyObject* value){ + kw_to_index.set(key, index); + kwargs.push_back(KwArg{index, key, value}); + } + + void _gc_mark() const; +}; + +struct UserData{ + char data[12]; + bool empty; + + UserData(): empty(true) {} + template + UserData(T t): empty(false){ + static_assert(std::is_trivially_copyable_v); + static_assert(sizeof(T) <= sizeof(data)); + memcpy(data, &t, sizeof(T)); + } + + template + T get() const{ + static_assert(std::is_trivially_copyable_v); + static_assert(sizeof(T) <= sizeof(data)); + PK_DEBUG_ASSERT(!empty); + return reinterpret_cast(data); + } +}; + +struct NativeFunc { + NativeFuncC f; + + // old style argc-based call + int argc; + + // new style decl-based call + FuncDecl_ decl; + + UserData _userdata; + + void set_userdata(UserData data) { + if(!_userdata.empty && !data.empty){ + // override is not supported + throw std::runtime_error("userdata already set"); + } + _userdata = data; + } + + NativeFunc(NativeFuncC f, int argc, bool method); + NativeFunc(NativeFuncC f, FuncDecl_ decl); + + void check_size(VM* vm, ArgsView args) const; + PyObject* call(VM* vm, ArgsView args) const { return f(vm, args); } +}; + +struct Function{ + FuncDecl_ decl; + PyObject* _module; // weak ref + PyObject* _class; // weak ref + NameDict_ _closure; + + explicit Function(FuncDecl_ decl, PyObject* _module, PyObject* _class, NameDict_ _closure): + decl(decl), _module(_module), _class(_class), _closure(_closure) {} +}; + +template<> +struct Py_ final: PyObject { + Function _value; + template + Py_(Type type, Args&&... args): PyObject(type), _value(std::forward(args)...) { + // _enable_instance_dict(); + } + void _obj_gc_mark() override { + _value.decl->_gc_mark(); + if(_value._closure != nullptr) gc_mark_namedict(*_value._closure); + } +}; + +template<> +struct Py_ final: PyObject { + NativeFunc _value; + template + Py_(Type type, Args&&... args): PyObject(type), _value(std::forward(args)...) { + // _enable_instance_dict(); + } + void _obj_gc_mark() override { + if(_value.decl != nullptr){ + _value.decl->_gc_mark(); + } + } +}; + +template +T lambda_get_userdata(PyObject** p){ + if(p[-1] != PY_NULL) return PK_OBJ_GET(NativeFunc, p[-1])._userdata.get(); + else return PK_OBJ_GET(NativeFunc, p[-2])._userdata.get(); +} + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/collections.h b/dependencies/pocketpy/include/pocketpy/collections.h new file mode 100644 index 0000000..35f856f --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/collections.h @@ -0,0 +1,8 @@ +#pragma once + +#include "bindings.h" + +namespace pkpy +{ + void add_module_collections(VM *vm); +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/common.h b/dependencies/pocketpy/include/pocketpy/common.h new file mode 100644 index 0000000..7f66131 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/common.h @@ -0,0 +1,172 @@ +#pragma once + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PK_VERSION "1.4.6" + +#include "config.h" +#include "export.h" + +#include "_generated.h" + +#ifdef min +#undef min +#endif + +#ifdef max +#undef max +#endif + +/*******************************************************************************/ +#if PK_ENABLE_STD_FUNCTION +#include +#endif +/*******************************************************************************/ + +#if PK_ENABLE_THREAD +#define PK_THREAD_LOCAL thread_local +#include + +struct GIL { + inline static std::mutex _mutex; + explicit GIL() { _mutex.lock(); } + ~GIL() { _mutex.unlock(); } +}; +#define PK_GLOBAL_SCOPE_LOCK() GIL _lock; + +#else +#define PK_THREAD_LOCAL +#define PK_GLOBAL_SCOPE_LOCK() +#endif + +/*******************************************************************************/ + +#define PK_UNUSED(x) (void)(x) + +#define PK_LOCAL_STATIC static + +namespace pkpy{ + +namespace std = ::std; + +template +struct NumberTraits; + +template <> +struct NumberTraits<4> { + using int_t = int32_t; + static constexpr int_t kMaxSmallInt = (1 << 28) - 1; + static constexpr int_t kMinSmallInt = 0; +}; + +template <> +struct NumberTraits<8> { + using int_t = int64_t; + static constexpr int_t kMaxSmallInt = (1ll << 60) - 1; + static constexpr int_t kMinSmallInt = 0; +}; + +using Number = NumberTraits; +using i64 = int64_t; // always 64-bit +using f64 = double; // always 64-bit + +static_assert(sizeof(i64) == 8); + +struct Dummy { }; // for special objects: True, False, None, Ellipsis, etc. +struct DummyInstance { }; +struct DummyModule { }; +struct NoReturn { }; +struct Discarded { }; + +struct Type { + int index; + constexpr Type(): index(-1) {} + constexpr Type(int index): index(index) {} + bool operator==(Type other) const { return this->index == other.index; } + bool operator!=(Type other) const { return this->index != other.index; } + operator int() const { return this->index; } +}; + +#define PK_LAMBDA(x) ([](VM* vm, ArgsView args) { return x; }) +#define PK_VAR_LAMBDA(x) ([](VM* vm, ArgsView args) { return VAR(x); }) +#define PK_ACTION(x) ([](VM* vm, ArgsView args) { x; return vm->None; }) + +#ifdef POCKETPY_H +#define PK_FATAL_ERROR() throw std::runtime_error( "L" + std::to_string(__LINE__) + " FATAL_ERROR()!"); +#else +#define PK_FATAL_ERROR() throw std::runtime_error( __FILE__ + std::string(":") + std::to_string(__LINE__) + " FATAL_ERROR()!"); +#endif + +#define PK_ASSERT(x) if(!(x)) PK_FATAL_ERROR(); + +#if PK_DEBUG_EXTRA_CHECK +#define PK_DEBUG_ASSERT(x) if(!(x)) PK_FATAL_ERROR(); +#else +#define PK_DEBUG_ASSERT(x) +#endif + +struct PyObject; +#define PK_BITS(p) (reinterpret_cast(p)) +#define PK_SMALL_INT(val) (reinterpret_cast(val << 2 | 0b10)) + +// is_pod<> for c++17 and c++20 +template +struct is_pod { + static constexpr bool value = std::is_trivially_copyable_v && std::is_standard_layout_v; +}; + +#define PK_ALWAYS_PASS_BY_POINTER(T) \ + T(const T&) = delete; \ + T& operator=(const T&) = delete; \ + T(T&&) = delete; \ + T& operator=(T&&) = delete; + +inline const char* kPlatformStrings[] = { + "win32", // 0 + "emscripten", // 1 + "ios", // 2 + "darwin", // 3 + "android", // 4 + "linux", // 5 + "unknown" // 6 +}; + +#define PK_SLICE_LOOP(i, start, stop, step) for(int i=start; step>0?istop; i+=step) + +template +inline constexpr bool is_integral_v = std::is_same_v + || std::is_same_v + || std::is_same_v + || std::is_same_v + || std::is_same_v + || std::is_same_v + || std::is_same_v + || std::is_same_v + || std::is_same_v + || std::is_same_v + || std::is_same_v; // for imgui + +template +inline constexpr bool is_floating_point_v = std::is_same_v || std::is_same_v; + +inline const char* PK_HEX_TABLE = "0123456789abcdef"; + +} // namespace pkpy diff --git a/dependencies/pocketpy/include/pocketpy/compiler.h b/dependencies/pocketpy/include/pocketpy/compiler.h new file mode 100644 index 0000000..3087bcc --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/compiler.h @@ -0,0 +1,144 @@ +#pragma once + +#include "codeobject.h" +#include "common.h" +#include "expr.h" +#include "obj.h" + +namespace pkpy{ + +class Compiler; +typedef void (Compiler::*PrattCallback)(); + +struct PrattRule{ + PrattCallback prefix; + PrattCallback infix; + Precedence precedence; +}; + +class Compiler { + PK_ALWAYS_PASS_BY_POINTER(Compiler) + + static PrattRule rules[kTokenCount]; + + Lexer lexer; + stack_no_copy contexts; + VM* vm; + bool unknown_global_scope; // for eval/exec() call + // for parsing token stream + int i = 0; + std::vector tokens; + + const Token& prev() const{ return tokens.at(i-1); } + const Token& curr() const{ return tokens.at(i); } + const Token& next() const{ return tokens.at(i+1); } + const Token& err() const{ + if(i >= tokens.size()) return prev(); + return curr(); + } + void advance(int delta=1) { i += delta; } + + CodeEmitContext* ctx() { return &contexts.top(); } + CompileMode mode() const{ return lexer.src->mode; } + NameScope name_scope() const; + CodeObject_ push_global_context(); + FuncDecl_ push_f_context(Str name); + void pop_context(); + + static void init_pratt_rules(); + + bool match(TokenIndex expected); + void consume(TokenIndex expected); + bool match_newlines_repl(); + + bool match_newlines(bool repl_throw=false); + bool match_end_stmt(); + void consume_end_stmt(); + + /*************************************************/ + void EXPR(); + void EXPR_TUPLE(bool allow_slice=false); + Expr_ EXPR_VARS(); // special case for `for loop` and `comp` + + template + unique_ptr_128 make_expr(Args&&... args) { + void* p = pool128_alloc(sizeof(T)); + unique_ptr_128 expr(new (p) T(std::forward(args)...)); + expr->line = prev().line; + return expr; + } + + void consume_comp(unique_ptr_128 ce, Expr_ expr); + + void exprLiteral(); + void exprLong(); + void exprImag(); + void exprBytes(); + void exprFString(); + void exprLambda(); + void exprOr(); + void exprAnd(); + void exprTernary(); + void exprBinaryOp(); + void exprNot(); + void exprUnaryOp(); + void exprGroup(); + void exprList(); + void exprMap(); + void exprCall(); + void exprName(); + void exprAttrib(); + void exprSlice0(); + void exprSlice1(); + void exprSubscr(); + void exprLiteral0(); + + void compile_block_body(void (Compiler::*callback)()=nullptr); + void compile_normal_import(); + void compile_from_import(); + bool is_expression(bool allow_slice=false); + void parse_expression(int precedence, bool allow_slice=false); + void compile_if_stmt(); + void compile_while_loop(); + void compile_for_loop(); + void compile_try_except(); + void compile_decorated(); + + bool try_compile_assignment(); + void compile_stmt(); + void consume_type_hints(); + void _add_decorators(const Expr_vector& decorators); + void compile_class(const Expr_vector& decorators={}); + void _compile_f_args(FuncDecl_ decl, bool enable_type_hints); + void compile_function(const Expr_vector& decorators={}); + + PyObject* to_object(const TokenValue& value); + PyObject* read_literal(); + + void SyntaxError(Str msg){ lexer.throw_err("SyntaxError", msg, err().line, err().start); } + void SyntaxError(){ lexer.throw_err("SyntaxError", "invalid syntax", err().line, err().start); } + void IndentationError(Str msg){ lexer.throw_err("IndentationError", msg, err().line, err().start); } + +public: + Compiler(VM* vm, std::string_view source, const Str& filename, CompileMode mode, bool unknown_global_scope=false); + Str precompile(); + void from_precompiled(const char* source); + CodeObject_ compile(); +}; + +struct TokenDeserializer{ + const char* curr; + const char* source; + + TokenDeserializer(const char* source): curr(source), source(source) {} + char read_char(){ return *curr++; } + bool match_char(char c){ if(*curr == c) { curr++; return true; } return false; } + + std::string_view read_string(char c); + Str read_string_from_hex(char c); + int read_count(); + i64 read_uint(char c); + f64 read_float(char c); +}; + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/config.h b/dependencies/pocketpy/include/pocketpy/config.h new file mode 100644 index 0000000..58596c2 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/config.h @@ -0,0 +1,80 @@ +#pragma once + +/*************** feature settings ***************/ + +// Whether to compile os-related modules or not +#ifndef PK_ENABLE_OS // can be overridden by cmake +#define PK_ENABLE_OS 0 +#endif + +// Enable this if you are working with multi-threading (experimental) +// This triggers necessary locks to make the VM thread-safe +#ifndef PK_ENABLE_THREAD // can be overridden by cmake +#define PK_ENABLE_THREAD 0 +#endif + +// GC min threshold +#ifndef PK_GC_MIN_THRESHOLD // can be overridden by cmake +#define PK_GC_MIN_THRESHOLD 32768 +#endif + +// Whether to use `std::function` to do bindings or not +// By default, functions to be binded must be a C function pointer without capture +// However, someone thinks it's not convenient. +// By setting this to 1, capturing lambdas can be binded, +// but it's slower and may cause severe "code bloat", also needs more time to compile. +#define PK_ENABLE_STD_FUNCTION 1 + +/*************** debug settings ***************/ + +// Enable this may help you find bugs +#define PK_DEBUG_EXTRA_CHECK 0 + +// Do not edit the following settings unless you know what you are doing +#define PK_DEBUG_NO_BUILTINS 0 +#define PK_DEBUG_DIS_EXEC 0 +#define PK_DEBUG_CEVAL_STEP 0 +#define PK_DEBUG_FULL_EXCEPTION 0 +#define PK_DEBUG_MEMORY_POOL 0 +#define PK_DEBUG_NO_MEMORY_POOL 0 +#define PK_DEBUG_NO_AUTO_GC 0 +#define PK_DEBUG_GC_STATS 0 + +#ifndef PK_DEBUG_PRECOMPILED_EXEC +#define PK_DEBUG_PRECOMPILED_EXEC 0 +#endif + +/*************** internal settings ***************/ + +// This is the maximum size of the value stack in void* units +// The actual size in bytes equals `sizeof(void*) * PK_VM_STACK_SIZE` +#define PK_VM_STACK_SIZE 32768 + +// This is the maximum number of local variables in a function +// (not recommended to change this / it should be less than 200) +#define PK_MAX_CO_VARNAMES 64 + +// Hash table load factor (smaller ones mean less collision but more memory) +// For class instance +#define PK_INST_ATTR_LOAD_FACTOR 0.67 +// For class itself +#define PK_TYPE_ATTR_LOAD_FACTOR 0.5 + +#ifdef _WIN32 + #define PK_PLATFORM_SEP '\\' +#else + #define PK_PLATFORM_SEP '/' +#endif + +#ifdef _MSC_VER +#pragma warning (disable:4267) +#pragma warning (disable:4100) +#pragma warning (disable:4244) +#pragma warning (disable:4996) +#endif + +#ifdef _MSC_VER +#define PK_UNREACHABLE() __assume(0); +#else +#define PK_UNREACHABLE() __builtin_unreachable(); +#endif diff --git a/dependencies/pocketpy/include/pocketpy/csv.h b/dependencies/pocketpy/include/pocketpy/csv.h new file mode 100644 index 0000000..87d816c --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/csv.h @@ -0,0 +1,9 @@ +#pragma once + +#include "bindings.h" + +namespace pkpy { + +void add_module_csv(VM* vm); + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/dataclasses.h b/dependencies/pocketpy/include/pocketpy/dataclasses.h new file mode 100644 index 0000000..fe3fcb5 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/dataclasses.h @@ -0,0 +1,9 @@ +#pragma once + +#include "bindings.h" + +namespace pkpy{ + +void add_module_dataclasses(VM* vm); + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/dict.h b/dependencies/pocketpy/include/pocketpy/dict.h new file mode 100644 index 0000000..dadc119 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/dict.h @@ -0,0 +1,73 @@ +#pragma once + +#include "obj.h" +#include "common.h" +#include "memory.h" +#include "str.h" + +namespace pkpy{ + +struct Dict{ + struct Item{ + PyObject* first; + PyObject* second; + }; + + struct ItemNode{ + int prev; + int next; + }; + + static constexpr int __Capacity = 8; + static constexpr float __LoadFactor = 0.67f; + static_assert(sizeof(Item) * __Capacity <= 128); + static_assert(sizeof(ItemNode) * __Capacity <= 64); + + VM* vm; + int _capacity; + int _mask; + int _size; + int _critical_size; + int _head_idx; // for order preserving + int _tail_idx; // for order preserving + Item* _items; + ItemNode* _nodes; // for order preserving + + Dict(VM* vm); + Dict(Dict&& other); + Dict(const Dict& other); + Dict& operator=(const Dict&) = delete; + Dict& operator=(Dict&&) = delete; + + int size() const { return _size; } + + void _probe_0(PyObject* key, bool& ok, int& i) const; + void _probe_1(PyObject* key, bool& ok, int& i) const; + + void set(PyObject* key, PyObject* val); + void _rehash(); + + PyObject* try_get(PyObject* key) const; + + bool contains(PyObject* key) const; + bool erase(PyObject* key); + void update(const Dict& other); + + template + void apply(__Func f) const { + int i = _head_idx; + while(i != -1){ + f(_items[i].first, _items[i].second); + i = _nodes[i].next; + } + } + + Tuple keys() const; + Tuple values() const; + void clear(); + ~Dict(); + + void _gc_mark() const; +}; + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/easing.h b/dependencies/pocketpy/include/pocketpy/easing.h new file mode 100644 index 0000000..1c69f8a --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/easing.h @@ -0,0 +1,9 @@ +#pragma once + +#include "bindings.h" + +namespace pkpy{ + +void add_module_easing(VM* vm); + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/error.h b/dependencies/pocketpy/include/pocketpy/error.h new file mode 100644 index 0000000..26878fc --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/error.h @@ -0,0 +1,84 @@ +#pragma once + +#include "namedict.h" +#include "str.h" +#include "tuplelist.h" + +namespace pkpy{ + +struct NeedMoreLines { + NeedMoreLines(bool is_compiling_class) : is_compiling_class(is_compiling_class) {} + bool is_compiling_class; +}; + +struct HandledException {}; +struct UnhandledException {}; +struct ToBeRaisedException {}; + +enum CompileMode { + EXEC_MODE, + EVAL_MODE, + REPL_MODE, + JSON_MODE, + CELL_MODE +}; + +struct SourceData { + PK_ALWAYS_PASS_BY_POINTER(SourceData) + + Str filename; + CompileMode mode; + + Str source; + pod_vector line_starts; + + bool is_precompiled; + std::vector _precompiled_tokens; + + SourceData(std::string_view source, const Str& filename, CompileMode mode); + SourceData(const Str& filename, CompileMode mode); + std::pair _get_line(int lineno) const; + std::string_view get_line(int lineno) const; + Str snapshot(int lineno, const char* cursor, std::string_view name) const; +}; + +struct ExceptionLine{ + std::shared_ptr src; + int lineno; + const char* cursor; + std::string name; + + Str snapshot() const { return src->snapshot(lineno, cursor, name); } + + ExceptionLine(std::shared_ptr src, int lineno, const char* cursor, std::string_view name): + src(src), lineno(lineno), cursor(cursor), name(name) {} +}; + +struct Exception { + StrName type; + Str msg; + bool is_re; + + int _ip_on_error; + void* _code_on_error; + + PyObject* _self; // weak reference + + stack stacktrace; + Exception(StrName type): type(type), is_re(true), _ip_on_error(-1), _code_on_error(nullptr), _self(nullptr) {} + + PyObject* self() const{ + PK_ASSERT(_self != nullptr); + return _self; + } + + template + void st_push(Args&&... args){ + if(stacktrace.size() >= 7) return; + stacktrace.emplace(std::forward(args)...); + } + + Str summary() const; +}; + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/export.h b/dependencies/pocketpy/include/pocketpy/export.h new file mode 100644 index 0000000..a2beb3d --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/export.h @@ -0,0 +1,39 @@ +#pragma once + +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) + //define something for Windows (32-bit and 64-bit, this part is common) + #define PK_EXPORT __declspec(dllexport) + #define PK_SYS_PLATFORM 0 +#elif __EMSCRIPTEN__ + #define PK_EXPORT + #define PK_SYS_PLATFORM 1 +#elif __APPLE__ + #include + #if TARGET_IPHONE_SIMULATOR + // iOS, tvOS, or watchOS Simulator + #define PK_SYS_PLATFORM 2 + #elif TARGET_OS_IPHONE + // iOS, tvOS, or watchOS device + #define PK_SYS_PLATFORM 2 + #elif TARGET_OS_MAC + #define PK_SYS_PLATFORM 3 + #else + # error "Unknown Apple platform" + #endif + #define PK_EXPORT __attribute__((visibility("default"))) +#elif __ANDROID__ + #define PK_EXPORT __attribute__((visibility("default"))) + #define PK_SYS_PLATFORM 4 +#elif __linux__ + #define PK_EXPORT __attribute__((visibility("default"))) + #define PK_SYS_PLATFORM 5 +#else + #define PK_EXPORT + #define PK_SYS_PLATFORM 6 +#endif + +#if PK_SYS_PLATFORM == 0 || PK_SYS_PLATFORM == 3 || PK_SYS_PLATFORM == 5 + #define PK_IS_DESKTOP_PLATFORM 1 +#else + #define PK_IS_DESKTOP_PLATFORM 0 +#endif diff --git a/dependencies/pocketpy/include/pocketpy/expr.h b/dependencies/pocketpy/include/pocketpy/expr.h new file mode 100644 index 0000000..b5df6f5 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/expr.h @@ -0,0 +1,379 @@ +#pragma once + +#include "codeobject.h" +#include "common.h" +#include "lexer.h" +#include "error.h" +#include "vm.h" + +namespace pkpy{ + +struct CodeEmitContext; +struct Expr; + +#define PK_POOL128_DELETE(ptr) if(ptr != nullptr) { ptr->~T(); pool128_dealloc(ptr); ptr = nullptr; } + +template +class unique_ptr_128{ + T* ptr; +public: + unique_ptr_128(): ptr(nullptr) {} + unique_ptr_128(T* ptr): ptr(ptr) {} + T* operator->() const { return ptr; } + T* get() const { return ptr; } + T* detach() { T* p = ptr; ptr = nullptr; return p; } + + unique_ptr_128(const unique_ptr_128&) = delete; + unique_ptr_128& operator=(const unique_ptr_128&) = delete; + + bool operator==(std::nullptr_t) const { return ptr == nullptr; } + bool operator!=(std::nullptr_t) const { return ptr != nullptr; } + + ~unique_ptr_128(){ PK_POOL128_DELETE(ptr) } + + template + unique_ptr_128(unique_ptr_128&& other): ptr(other.detach()) {} + + operator bool() const { return ptr != nullptr; } + + template + unique_ptr_128& operator=(unique_ptr_128&& other) { + PK_POOL128_DELETE(ptr) + ptr = other.detach(); + return *this; + } + + unique_ptr_128& operator=(std::nullptr_t) { + PK_POOL128_DELETE(ptr) + ptr = nullptr; + return *this; + } +}; + +typedef unique_ptr_128 Expr_; +typedef small_vector Expr_vector; + +template<> +struct TriviallyRelocatable{ + constexpr static bool value = true; +}; + +struct Expr{ + int line = 0; + virtual ~Expr() = default; + virtual void emit_(CodeEmitContext* ctx) = 0; + virtual bool is_literal() const { return false; } + virtual bool is_json_object() const { return false; } + virtual bool is_attrib() const { return false; } + virtual bool is_compare() const { return false; } + virtual int star_level() const { return 0; } + virtual bool is_tuple() const { return false; } + virtual bool is_name() const { return false; } + bool is_starred() const { return star_level() > 0; } + + // for OP_DELETE_XXX + [[nodiscard]] virtual bool emit_del(CodeEmitContext* ctx) { + return false; + } + + // for OP_STORE_XXX + [[nodiscard]] virtual bool emit_store(CodeEmitContext* ctx) { + return false; + } +}; + +struct CodeEmitContext{ + VM* vm; + FuncDecl_ func; // optional + CodeObject_ co; // 1 CodeEmitContext <=> 1 CodeObject_ + // some bugs on MSVC (error C2280) when using Expr_vector + // so we use stack_no_copy instead + stack_no_copy s_expr; + int level; + std::set global_names; + CodeEmitContext(VM* vm, CodeObject_ co, int level): vm(vm), co(co), level(level) {} + + int curr_block_i = 0; + bool is_compiling_class = false; + int base_stack_size = 0; + + std::map _co_consts_nonstring_dedup_map; + std::map> _co_consts_string_dedup_map; + + int get_loop() const; + CodeBlock* enter_block(CodeBlockType type); + void exit_block(); + void emit_expr(); // clear the expression stack and generate bytecode + int emit_(Opcode opcode, uint16_t arg, int line, bool is_virtual=false); + void revert_last_emit_(); + int emit_int(i64 value, int line); + void patch_jump(int index); + bool add_label(StrName name); + int add_varname(StrName name); + int add_const(PyObject*); + int add_const_string(std::string_view); + int add_func_decl(FuncDecl_ decl); + void emit_store_name(NameScope scope, StrName name, int line); + void try_merge_for_iter_store(int); +}; + +struct NameExpr: Expr{ + StrName name; + NameScope scope; + NameExpr(StrName name, NameScope scope): name(name), scope(scope) {} + void emit_(CodeEmitContext* ctx) override; + bool emit_del(CodeEmitContext* ctx) override; + bool emit_store(CodeEmitContext* ctx) override; + bool is_name() const override { return true; } +}; + +struct InvertExpr: Expr{ + Expr_ child; + InvertExpr(Expr_&& child): child(std::move(child)) {} + void emit_(CodeEmitContext* ctx) override; +}; + +struct StarredExpr: Expr{ + int level; + Expr_ child; + StarredExpr(int level, Expr_&& child): level(level), child(std::move(child)) {} + int star_level() const override { return level; } + void emit_(CodeEmitContext* ctx) override; + bool emit_store(CodeEmitContext* ctx) override; +}; + +struct NotExpr: Expr{ + Expr_ child; + NotExpr(Expr_&& child): child(std::move(child)) {} + void emit_(CodeEmitContext* ctx) override; +}; + +struct AndExpr: Expr{ + Expr_ lhs; + Expr_ rhs; + void emit_(CodeEmitContext* ctx) override; +}; + +struct OrExpr: Expr{ + Expr_ lhs; + Expr_ rhs; + void emit_(CodeEmitContext* ctx) override; +}; + +// [None, True, False, ...] +struct Literal0Expr: Expr{ + TokenIndex token; + Literal0Expr(TokenIndex token): token(token) {} + bool is_json_object() const override { return true; } + + void emit_(CodeEmitContext* ctx) override; +}; + +struct LongExpr: Expr{ + Str s; + LongExpr(const Str& s): s(s) {} + void emit_(CodeEmitContext* ctx) override; +}; + +struct BytesExpr: Expr{ + Str s; + BytesExpr(const Str& s): s(s) {} + void emit_(CodeEmitContext* ctx) override; +}; + +struct ImagExpr: Expr{ + f64 value; + ImagExpr(f64 value): value(value) {} + void emit_(CodeEmitContext* ctx) override; +}; + +// @num, @str which needs to invoke OP_LOAD_CONST +struct LiteralExpr: Expr{ + TokenValue value; + LiteralExpr(TokenValue value): value(value) {} + void emit_(CodeEmitContext* ctx) override; + bool is_literal() const override { return true; } + bool is_json_object() const override { return true; } +}; + +struct NegatedExpr: Expr{ + Expr_ child; + NegatedExpr(Expr_&& child): child(std::move(child)) {} + void emit_(CodeEmitContext* ctx) override; + bool is_json_object() const override { return child->is_literal(); } +}; + +struct SliceExpr: Expr{ + Expr_ start; + Expr_ stop; + Expr_ step; + void emit_(CodeEmitContext* ctx) override; +}; + +struct DictItemExpr: Expr{ + Expr_ key; // maybe nullptr if it is **kwargs + Expr_ value; + int star_level() const override { return value->star_level(); } + void emit_(CodeEmitContext* ctx) override; +}; + +struct SequenceExpr: Expr{ + Expr_vector items; + SequenceExpr(Expr_vector&& items): items(std::move(items)) {} + virtual Opcode opcode() const = 0; + + void emit_(CodeEmitContext* ctx) override { + for(auto& item: items) item->emit_(ctx); + ctx->emit_(opcode(), items.size(), line); + } +}; + +struct ListExpr: SequenceExpr{ + using SequenceExpr::SequenceExpr; + Opcode opcode() const override { + for(auto& e: items) if(e->is_starred()) return OP_BUILD_LIST_UNPACK; + return OP_BUILD_LIST; + } + + bool is_json_object() const override { return true; } +}; + +struct DictExpr: SequenceExpr{ + using SequenceExpr::SequenceExpr; + Opcode opcode() const override { + for(auto& e: items) if(e->is_starred()) return OP_BUILD_DICT_UNPACK; + return OP_BUILD_DICT; + } + + bool is_json_object() const override { return true; } +}; + +struct SetExpr: SequenceExpr{ + using SequenceExpr::SequenceExpr; + Opcode opcode() const override { + for(auto& e: items) if(e->is_starred()) return OP_BUILD_SET_UNPACK; + return OP_BUILD_SET; + } +}; + +struct TupleExpr: SequenceExpr{ + using SequenceExpr::SequenceExpr; + bool is_tuple() const override { return true; } + Opcode opcode() const override { + for(auto& e: items) if(e->is_starred()) return OP_BUILD_TUPLE_UNPACK; + return OP_BUILD_TUPLE; + } + + bool emit_store(CodeEmitContext* ctx) override; + bool emit_del(CodeEmitContext* ctx) override; +}; + +struct CompExpr: Expr{ + Expr_ expr; // loop expr + Expr_ vars; // loop vars + Expr_ iter; // loop iter + Expr_ cond; // optional if condition + + virtual Opcode op0() = 0; + virtual Opcode op1() = 0; + + void emit_(CodeEmitContext* ctx) override; +}; + +struct ListCompExpr: CompExpr{ + Opcode op0() override { return OP_BUILD_LIST; } + Opcode op1() override { return OP_LIST_APPEND; } +}; + +struct DictCompExpr: CompExpr{ + Opcode op0() override { return OP_BUILD_DICT; } + Opcode op1() override { return OP_DICT_ADD; } +}; + +struct SetCompExpr: CompExpr{ + Opcode op0() override { return OP_BUILD_SET; } + Opcode op1() override { return OP_SET_ADD; } +}; + +struct LambdaExpr: Expr{ + FuncDecl_ decl; + + LambdaExpr(FuncDecl_ decl): decl(decl) {} + + void emit_(CodeEmitContext* ctx) override { + int index = ctx->add_func_decl(decl); + ctx->emit_(OP_LOAD_FUNCTION, index, line); + } +}; + +struct FStringExpr: Expr{ + Str src; + FStringExpr(const Str& src): src(src) {} + void _load_simple_expr(CodeEmitContext* ctx, Str expr); + void emit_(CodeEmitContext* ctx) override; +}; + +struct SubscrExpr: Expr{ + Expr_ a; + Expr_ b; + void emit_(CodeEmitContext* ctx) override; + bool emit_del(CodeEmitContext* ctx) override; + bool emit_store(CodeEmitContext* ctx) override; +}; + +struct AttribExpr: Expr{ + Expr_ a; + StrName b; + AttribExpr(Expr_ a, StrName b): a(std::move(a)), b(b) {} + + void emit_(CodeEmitContext* ctx) override; + bool emit_del(CodeEmitContext* ctx) override; + bool emit_store(CodeEmitContext* ctx) override; + void emit_method(CodeEmitContext* ctx); + bool is_attrib() const override { return true; } +}; + +struct CallExpr: Expr{ + Expr_ callable; + Expr_vector args; + // **a will be interpreted as a special keyword argument: {"**": a} + std::vector> kwargs; + void emit_(CodeEmitContext* ctx) override; +}; + +struct GroupedExpr: Expr{ + Expr_ a; + GroupedExpr(Expr_&& a): a(std::move(a)) {} + + void emit_(CodeEmitContext* ctx) override{ + a->emit_(ctx); + } + + bool emit_del(CodeEmitContext* ctx) override { + return a->emit_del(ctx); + } + + bool emit_store(CodeEmitContext* ctx) override { + return a->emit_store(ctx); + } +}; + +struct BinaryExpr: Expr{ + TokenIndex op; + Expr_ lhs; + Expr_ rhs; + bool is_compare() const override; + void _emit_compare(CodeEmitContext* ctx, pod_vector& jmps); + void emit_(CodeEmitContext* ctx) override; +}; + + +struct TernaryExpr: Expr{ + Expr_ cond; + Expr_ true_expr; + Expr_ false_expr; + void emit_(CodeEmitContext* ctx) override; +}; + + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/frame.h b/dependencies/pocketpy/include/pocketpy/frame.h new file mode 100644 index 0000000..3bc608e --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/frame.h @@ -0,0 +1,166 @@ +#pragma once + +#include "codeobject.h" +#include "common.h" +#include "memory.h" +#include "obj.h" +#include "vector.h" + +namespace pkpy{ + +// weak reference fast locals +struct FastLocals{ + // this is a weak reference + const CodeObject* co; + PyObject** a; + + int size() const{ return co->varnames.size();} + + PyObject*& operator[](int i){ return a[i]; } + PyObject* operator[](int i) const { return a[i]; } + + FastLocals(const CodeObject* co, PyObject** a): co(co), a(a) {} + + PyObject** try_get_name(StrName name); + NameDict_ to_namedict(); + + PyObject** begin() const { return a; } + PyObject** end() const { return a + size(); } +}; + +struct ValueStack { + // We allocate extra PK_VM_STACK_SIZE/128 places to keep `_sp` valid when `is_overflow() == true`. + PyObject* _begin[PK_VM_STACK_SIZE + PK_VM_STACK_SIZE/128]; + PyObject** _sp; + PyObject** _max_end; + + static constexpr size_t max_size() { return PK_VM_STACK_SIZE; } + + ValueStack(): _sp(_begin), _max_end(_begin + PK_VM_STACK_SIZE) {} + + PyObject*& top(){ return _sp[-1]; } + PyObject* top() const { return _sp[-1]; } + PyObject*& second(){ return _sp[-2]; } + PyObject* second() const { return _sp[-2]; } + PyObject*& third(){ return _sp[-3]; } + PyObject* third() const { return _sp[-3]; } + PyObject*& peek(int n){ return _sp[-n]; } + PyObject* peek(int n) const { return _sp[-n]; } + void push(PyObject* v){ *_sp++ = v; } + void pop(){ --_sp; } + PyObject* popx(){ return *--_sp; } + ArgsView view(int n){ return ArgsView(_sp-n, _sp); } + void shrink(int n){ _sp -= n; } + int size() const { return _sp - _begin; } + bool empty() const { return _sp == _begin; } + PyObject** begin() { return _begin; } + PyObject** end() { return _sp; } + void reset(PyObject** sp) { _sp = sp; } + void clear() { _sp = _begin; } + bool is_overflow() const { return _sp >= _max_end; } + + PyObject* operator[](int i) const { return _begin[i]; } + PyObject*& operator[](int i) { return _begin[i]; } + + ValueStack(const ValueStack&) = delete; + ValueStack(ValueStack&&) = delete; + ValueStack& operator=(const ValueStack&) = delete; + ValueStack& operator=(ValueStack&&) = delete; +}; + +struct Frame { + int _ip; + int _next_ip; + // This is for unwinding only, use `actual_sp_base()` for value stack access + PyObject** _sp_base; + + const CodeObject* co; + PyObject* _module; + PyObject* _callable; // a function object or nullptr (global scope) + FastLocals _locals; + + NameDict& f_globals() { return _module->attr(); } + PyObject* f_closure_try_get(StrName name); + + // function scope + Frame(PyObject** p0, const CodeObject* co, PyObject* _module, PyObject* _callable, PyObject** _locals_base) + : _ip(-1), _next_ip(0), _sp_base(p0), co(co), _module(_module), _callable(_callable), _locals(co, _locals_base) { } + + // exec/eval + Frame(PyObject** p0, const CodeObject* co, PyObject* _module, PyObject* _callable, FastLocals _locals) + : _ip(-1), _next_ip(0), _sp_base(p0), co(co), _module(_module), _callable(_callable), _locals(_locals) { } + + // global scope + Frame(PyObject** p0, const CodeObject_& co, PyObject* _module) + : _ip(-1), _next_ip(0), _sp_base(p0), co(co.get()), _module(_module), _callable(nullptr), _locals(co.get(), p0) {} + + int next_bytecode() { + _ip = _next_ip++; + PK_DEBUG_ASSERT(_ip >= 0 && _ip < co->codes.size()); + return _ip; + } + + PyObject** actual_sp_base() const { return _locals.a; } + + int stack_size(ValueStack* _s) const { return _s->_sp - actual_sp_base(); } + ArgsView stack_view(ValueStack* _s) const { return ArgsView(actual_sp_base(), _s->_sp); } + + void jump_abs(int i){ _next_ip = i; } + bool jump_to_exception_handler(ValueStack*); + int _exit_block(ValueStack*, int); + void jump_abs_break(ValueStack*, int); + + int curr_lineno() const { return co->lines[_ip].lineno; } + + void _gc_mark() const { + PK_OBJ_MARK(_module); + co->_gc_mark(); + // Frame could be stored in a generator, so mark _callable for safety + if(_callable != nullptr) PK_OBJ_MARK(_callable); + } +}; + +struct LinkedFrame{ + LinkedFrame* f_back; + Frame frame; + template + LinkedFrame(LinkedFrame* f_back, Args&&... args) : f_back(f_back), frame(std::forward(args)...) {} +}; + +struct CallStack{ + static_assert(sizeof(LinkedFrame) <= 64 && std::is_trivially_destructible_v); + + LinkedFrame* _tail; + int _size; + CallStack(): _tail(nullptr), _size(0) {} + + int size() const { return _size; } + bool empty() const { return _size == 0; } + void clear(){ while(!empty()) pop(); } + + template + void emplace(Args&&... args){ + _tail = new(pool64_alloc()) LinkedFrame(_tail, std::forward(args)...); + ++_size; + } + + void pop(){ + PK_DEBUG_ASSERT(!empty()) + LinkedFrame* p = _tail; + _tail = p->f_back; + pool64_dealloc(p); + --_size; + } + + Frame& top() const { + PK_DEBUG_ASSERT(!empty()) + return _tail->frame; + } + + template + void apply(Func&& f){ + for(LinkedFrame* p = _tail; p != nullptr; p = p->f_back) f(p->frame); + } +}; + +}; // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/gc.h b/dependencies/pocketpy/include/pocketpy/gc.h new file mode 100644 index 0000000..27fd3c5 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/gc.h @@ -0,0 +1,73 @@ +#pragma once + +#include "common.h" +#include "memory.h" +#include "obj.h" +#include "codeobject.h" +#include "namedict.h" + +namespace pkpy { +struct ManagedHeap{ + std::vector _no_gc; + std::vector gen; + VM* vm; + void (*_gc_on_delete)(VM*, PyObject*) = nullptr; + void (*_gc_marker_ex)(VM*) = nullptr; + + ManagedHeap(VM* vm): vm(vm) {} + + int gc_threshold = PK_GC_MIN_THRESHOLD; + int gc_counter = 0; + + /********************/ + int _gc_lock_counter = 0; + struct ScopeLock{ + PK_ALWAYS_PASS_BY_POINTER(ScopeLock) + + ManagedHeap* heap; + ScopeLock(ManagedHeap* heap): heap(heap){ + heap->_gc_lock_counter++; + } + ~ScopeLock(){ + heap->_gc_lock_counter--; + } + }; + + ScopeLock gc_scope_lock(){ + return ScopeLock(this); + } + /********************/ + + template + PyObject* gcnew(Type type, Args&&... args){ + using __T = Py_>; + // https://github.com/pocketpy/pocketpy/issues/94#issuecomment-1594784476 + PyObject* obj = new(pool64_alloc<__T>()) Py_>(type, std::forward(args)...); + gen.push_back(obj); + gc_counter++; + return obj; + } + + template + PyObject* _new(Type type, Args&&... args){ + using __T = Py_>; + // https://github.com/pocketpy/pocketpy/issues/94#issuecomment-1594784476 + PyObject* obj = new(pool64_alloc<__T>()) Py_>(type, std::forward(args)...); + obj->gc_enabled = false; + _no_gc.push_back(obj); + return obj; + } + +#if PK_DEBUG_GC_STATS + inline static std::map deleted; +#endif + + int sweep(); + void _auto_collect(); + bool _should_auto_collect() const { return gc_counter >= gc_threshold; } + int collect(); + void mark(); + ~ManagedHeap(); +}; + +} // namespace pkpy diff --git a/dependencies/pocketpy/include/pocketpy/io.h b/dependencies/pocketpy/include/pocketpy/io.h new file mode 100644 index 0000000..2ef3d74 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/io.h @@ -0,0 +1,9 @@ +#pragma once + +#include "bindings.h" + +namespace pkpy{ + unsigned char* _default_import_handler(const char*, int, int*); + void add_module_os(VM* vm); + void add_module_io(VM* vm); +} diff --git a/dependencies/pocketpy/include/pocketpy/iter.h b/dependencies/pocketpy/include/pocketpy/iter.h new file mode 100644 index 0000000..116d2a9 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/iter.h @@ -0,0 +1,64 @@ +#pragma once + +#include "cffi.h" +#include "common.h" +#include "frame.h" + +namespace pkpy{ + +struct RangeIter{ + PY_CLASS(RangeIter, builtins, _range_iterator) + Range r; + i64 current; + RangeIter(Range r) : r(r), current(r.start) {} + + static void _register(VM* vm, PyObject* mod, PyObject* type); +}; + +struct ArrayIter{ + PY_CLASS(ArrayIter, builtins, _array_iterator) + PyObject* ref; + PyObject** begin; + PyObject** end; + PyObject** current; + + ArrayIter(PyObject* ref, PyObject** begin, PyObject** end) + : ref(ref), begin(begin), end(end), current(begin) {} + + void _gc_mark() const{ PK_OBJ_MARK(ref); } + static void _register(VM* vm, PyObject* mod, PyObject* type); +}; + +struct StringIter{ + PY_CLASS(StringIter, builtins, _string_iterator) + PyObject* ref; + Str* str; + int index; // byte index + + StringIter(PyObject* ref) : ref(ref), str(&PK_OBJ_GET(Str, ref)), index(0) {} + + void _gc_mark() const{ PK_OBJ_MARK(ref); } + + static void _register(VM* vm, PyObject* mod, PyObject* type); +}; + +struct Generator{ + PY_CLASS(Generator, builtins, generator) + Frame frame; + int state; // 0,1,2 + List s_backup; + + Generator(Frame&& frame, ArgsView buffer): frame(std::move(frame)), state(0) { + for(PyObject* obj: buffer) s_backup.push_back(obj); + } + + void _gc_mark() const{ + frame._gc_mark(); + for(PyObject* obj: s_backup) PK_OBJ_MARK(obj); + } + + PyObject* next(VM* vm); + static void _register(VM* vm, PyObject* mod, PyObject* type); +}; + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/lexer.h b/dependencies/pocketpy/include/pocketpy/lexer.h new file mode 100644 index 0000000..ff26845 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/lexer.h @@ -0,0 +1,144 @@ +#pragma once + +#include "common.h" +#include "error.h" +#include "str.h" +#include "obj.h" + +namespace pkpy{ + +typedef uint8_t TokenIndex; + +constexpr const char* kTokens[] = { + "is not", "not in", "yield from", + "@eof", "@eol", "@sof", + "@id", "@num", "@str", "@fstr", "@long", "@bytes", "@imag", + "@indent", "@dedent", + /*****************************************/ + "+", "+=", "-", "-=", // (INPLACE_OP - 1) can get '=' removed + "*", "*=", "/", "/=", "//", "//=", "%", "%=", + "&", "&=", "|", "|=", "^", "^=", + "<<", "<<=", ">>", ">>=", + /*****************************************/ + ".", ",", ":", ";", "#", "(", ")", "[", "]", "{", "}", + "**", "=", ">", "<", "..", "...", "->", "@", "==", "!=", ">=", "<=", + "++", "--", "~", + /** KW_BEGIN **/ + "class", "import", "as", "def", "lambda", "pass", "del", "from", "with", "yield", + "None", "in", "is", "and", "or", "not", "True", "False", "global", "try", "except", "finally", + "while", "for", "if", "elif", "else", "break", "continue", "return", "assert", "raise" +}; + +using TokenValue = std::variant; +const TokenIndex kTokenCount = sizeof(kTokens) / sizeof(kTokens[0]); + +constexpr TokenIndex TK(const char token[]) { + for(int k=0; k kTokenKwMap = [](){ + std::map map; + for(int k=TK("class"); k <= >= != ==, in / is / is not / not in + PREC_BITWISE_OR, // | + PREC_BITWISE_XOR, // ^ + PREC_BITWISE_AND, // & + PREC_BITWISE_SHIFT, // << >> + PREC_TERM, // + - + PREC_FACTOR, // * / % // @ + PREC_UNARY, // - not ~ + PREC_EXPONENT, // ** + PREC_PRIMARY, // f() x[] a.b 1:2 + PREC_HIGHEST, +}; + +enum StringType { NORMAL_STRING, RAW_STRING, F_STRING, NORMAL_BYTES }; + +struct Lexer { + VM* vm; + std::shared_ptr src; + const char* token_start; + const char* curr_char; + int current_line = 1; + std::vector nexts; + stack_no_copy> indents; + int brackets_level = 0; + + char peekchar() const{ return *curr_char; } + bool match_n_chars(int n, char c0); + bool match_string(const char* s); + int eat_spaces(); + + bool eat_indentation(); + char eatchar(); + char eatchar_include_newline(); + int eat_name(); + void skip_line_comment(); + bool matchchar(char c); + void add_token(TokenIndex type, TokenValue value={}); + void add_token_2(char c, TokenIndex one, TokenIndex two); + Str eat_string_until(char quote, bool raw); + void eat_string(char quote, StringType type); + + void eat_number(); + bool lex_one_token(); + + /***** Error Reporter *****/ + void throw_err(StrName type, Str msg); + void throw_err(StrName type, Str msg, int lineno, const char* cursor); + void SyntaxError(Str msg){ throw_err("SyntaxError", msg); } + void SyntaxError(){ throw_err("SyntaxError", "invalid syntax"); } + void IndentationError(Str msg){ throw_err("IndentationError", msg); } + Lexer(VM* vm, std::shared_ptr src); + std::vector run(); +}; + + +enum class IntParsingResult{ + Success, + Failure, + Overflow, +}; + +IntParsingResult parse_uint(std::string_view text, i64* out, int base); + +} // namespace pkpy diff --git a/dependencies/pocketpy/include/pocketpy/linalg.h b/dependencies/pocketpy/include/pocketpy/linalg.h new file mode 100644 index 0000000..7b400fc --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/linalg.h @@ -0,0 +1,144 @@ +#pragma once + +#include "bindings.h" + +namespace pkpy{ + +inline bool isclose(float a, float b){ return std::fabs(a - b) < 1e-4; } + +struct Vec2{ + PY_CLASS(Vec2, linalg, vec2) + + Vec2* _() { return this; } + static void _register(VM* vm, PyObject* mod, PyObject* type); + + float x, y; + Vec2() : x(0.0f), y(0.0f) {} + Vec2(float x, float y) : x(x), y(y) {} + + Vec2 operator+(const Vec2& v) const { return Vec2(x + v.x, y + v.y); } + Vec2 operator-(const Vec2& v) const { return Vec2(x - v.x, y - v.y); } + Vec2 operator*(float s) const { return Vec2(x * s, y * s); } + Vec2 operator*(const Vec2& v) const { return Vec2(x * v.x, y * v.y); } + Vec2 operator/(float s) const { return Vec2(x / s, y / s); } + Vec2 operator-() const { return Vec2(-x, -y); } + bool operator==(const Vec2& v) const { return isclose(x, v.x) && isclose(y, v.y); } + bool operator!=(const Vec2& v) const { return !isclose(x, v.x) || !isclose(y, v.y); } + float dot(const Vec2& v) const { return x * v.x + y * v.y; } + float cross(const Vec2& v) const { return x * v.y - y * v.x; } + float length() const { return sqrtf(x * x + y * y); } + float length_squared() const { return x * x + y * y; } + Vec2 normalize() const { float l = length(); return Vec2(x / l, y / l); } + Vec2 rotate(float radian) const { float cr = cosf(radian), sr = sinf(radian); return Vec2(x * cr - y * sr, x * sr + y * cr); } + NoReturn normalize_() { float l = length(); x /= l; y /= l; return {}; } + NoReturn copy_(const Vec2& v) { x = v.x; y = v.y; return {}; } +}; + +struct Vec3{ + PY_CLASS(Vec3, linalg, vec3) + + Vec3* _() { return this; } + static void _register(VM* vm, PyObject* mod, PyObject* type); + + float x, y, z; + Vec3() : x(0.0f), y(0.0f), z(0.0f) {} + Vec3(float x, float y, float z) : x(x), y(y), z(z) {} + + Vec3 operator+(const Vec3& v) const { return Vec3(x + v.x, y + v.y, z + v.z); } + Vec3 operator-(const Vec3& v) const { return Vec3(x - v.x, y - v.y, z - v.z); } + Vec3 operator*(float s) const { return Vec3(x * s, y * s, z * s); } + Vec3 operator*(const Vec3& v) const { return Vec3(x * v.x, y * v.y, z * v.z); } + Vec3 operator/(float s) const { return Vec3(x / s, y / s, z / s); } + Vec3 operator-() const { return Vec3(-x, -y, -z); } + bool operator==(const Vec3& v) const { return isclose(x, v.x) && isclose(y, v.y) && isclose(z, v.z); } + bool operator!=(const Vec3& v) const { return !isclose(x, v.x) || !isclose(y, v.y) || !isclose(z, v.z); } + float dot(const Vec3& v) const { return x * v.x + y * v.y + z * v.z; } + Vec3 cross(const Vec3& v) const { return Vec3(y * v.z - z * v.y, z * v.x - x * v.z, x * v.y - y * v.x); } + float length() const { return sqrtf(x * x + y * y + z * z); } + float length_squared() const { return x * x + y * y + z * z; } + Vec3 normalize() const { float l = length(); return Vec3(x / l, y / l, z / l); } + NoReturn normalize_() { float l = length(); x /= l; y /= l; z /= l; return {}; } + NoReturn copy_(const Vec3& v) { x = v.x; y = v.y; z = v.z; return {}; } +}; + +struct Vec4{ + PY_CLASS(Vec4, linalg, vec4) + + Vec4* _() { return this; } + static void _register(VM* vm, PyObject* mod, PyObject* type); + + float x, y, z, w; + Vec4() : x(0.0f), y(0.0f), z(0.0f), w(0.0f) {} + Vec4(float x, float y, float z, float w) : x(x), y(y), z(z), w(w) {} + + Vec4 operator+(const Vec4& v) const { return Vec4(x + v.x, y + v.y, z + v.z, w + v.w); } + Vec4 operator-(const Vec4& v) const { return Vec4(x - v.x, y - v.y, z - v.z, w - v.w); } + Vec4 operator*(float s) const { return Vec4(x * s, y * s, z * s, w * s); } + Vec4 operator*(const Vec4& v) const { return Vec4(x * v.x, y * v.y, z * v.z, w * v.w); } + Vec4 operator/(float s) const { return Vec4(x / s, y / s, z / s, w / s); } + Vec4 operator-() const { return Vec4(-x, -y, -z, -w); } + bool operator==(const Vec4& v) const { return isclose(x, v.x) && isclose(y, v.y) && isclose(z, v.z) && isclose(w, v.w); } + bool operator!=(const Vec4& v) const { return !isclose(x, v.x) || !isclose(y, v.y) || !isclose(z, v.z) || !isclose(w, v.w); } + float dot(const Vec4& v) const { return x * v.x + y * v.y + z * v.z + w * v.w; } + float length() const { return sqrtf(x * x + y * y + z * z + w * w); } + float length_squared() const { return x * x + y * y + z * z + w * w; } + Vec4 normalize() const { float l = length(); return Vec4(x / l, y / l, z / l, w / l); } + NoReturn normalize_() { float l = length(); x /= l; y /= l; z /= l; w /= l; return {}; } + NoReturn copy_(const Vec4& v) { x = v.x; y = v.y; z = v.z; w = v.w; return {}; } +}; + +struct Mat3x3{ + PY_CLASS(Mat3x3, linalg, mat3x3) + + Mat3x3* _(){ return this; } + static void _register(VM* vm, PyObject* mod, PyObject* type); + + union { + struct { + float _11, _12, _13; + float _21, _22, _23; + float _31, _32, _33; + }; + float m[3][3]; + float v[9]; + }; + + Mat3x3(); + Mat3x3(float, float, float, float, float, float, float, float, float); + + static Mat3x3 zeros(); + static Mat3x3 ones(); + static Mat3x3 identity(); + + Mat3x3 operator+(const Mat3x3& other) const; + Mat3x3 operator-(const Mat3x3& other) const; + Mat3x3 operator*(float scalar) const; + Mat3x3 operator/(float scalar) const; + + bool operator==(const Mat3x3& other) const; + bool operator!=(const Mat3x3& other) const; + + Mat3x3 matmul(const Mat3x3& other) const; + Vec3 matmul(const Vec3& other) const; + + float determinant() const; + Mat3x3 transpose() const; + bool inverse(Mat3x3& out) const; + + /*************** affine transformations ***************/ + static Mat3x3 trs(Vec2 t, float radian, Vec2 s); + bool is_affine() const; + Vec2 _t() const; + float _r() const; + Vec2 _s() const; +}; + +void add_module_linalg(VM* vm); + +static_assert(sizeof(Py_) <= 64); +static_assert(std::is_trivially_copyable::value); +static_assert(std::is_trivially_copyable::value); +static_assert(std::is_trivially_copyable::value); +static_assert(std::is_trivially_copyable::value); + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/memory.h b/dependencies/pocketpy/include/pocketpy/memory.h new file mode 100644 index 0000000..14327ae --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/memory.h @@ -0,0 +1,28 @@ +#pragma once + +#include "common.h" + +namespace pkpy{ + +void* pool64_alloc(size_t) noexcept; +void pool64_dealloc(void*) noexcept; + +void* pool128_alloc(size_t) noexcept; +void pool128_dealloc(void*) noexcept; + +template +void* pool64_alloc() noexcept{ + return pool64_alloc(sizeof(T)); +} + +template +void* pool128_alloc() noexcept{ + return pool128_alloc(sizeof(T)); +} + +void pools_shrink_to_fit() noexcept; + +std::string pool64_info() noexcept; +std::string pool128_info() noexcept; + +}; // namespace pkpy diff --git a/dependencies/pocketpy/include/pocketpy/modules.h b/dependencies/pocketpy/include/pocketpy/modules.h new file mode 100644 index 0000000..9975bf5 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/modules.h @@ -0,0 +1,19 @@ +#pragma once + +#include "bindings.h" + +namespace pkpy{ + +void add_module_operator(VM* vm); +void add_module_time(VM* vm); +void add_module_sys(VM* vm); +void add_module_json(VM* vm); +void add_module_math(VM* vm); +void add_module_traceback(VM* vm); +void add_module_dis(VM* vm); +void add_module_gc(VM* vm); +void add_module_line_profiler(VM* vm); +void add_module_enum(VM* vm); +void add_module___builtins(VM* vm); + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/namedict.h b/dependencies/pocketpy/include/pocketpy/namedict.h new file mode 100644 index 0000000..b97cb50 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/namedict.h @@ -0,0 +1,343 @@ +#pragma once + +#include "common.h" +#include "memory.h" +#include "str.h" + +namespace pkpy{ + +template +constexpr T default_invalid_value(){ + if constexpr(std::is_pointer_v) return nullptr; + else if constexpr(std::is_same_v) return -1; + else return Discarded(); +} + +#define PK_SMALL_NAME_DICT_CAPACITY 8 +#define PK_SMALL_NAME_DICT_LOOP(B) for(int i=0; i +struct SmallNameDict{ + using K = StrName; + static_assert(is_pod::value); + + bool _is_small; + uint16_t _size; + K _keys[PK_SMALL_NAME_DICT_CAPACITY]; + V _values[PK_SMALL_NAME_DICT_CAPACITY]; + + SmallNameDict(): _is_small(true), _size(0) {} + + bool try_set(K key, V val){ + PK_SMALL_NAME_DICT_LOOP( + if(_keys[i] == key){ _values[i] = val; return true; } + ) + + if(_size == PK_SMALL_NAME_DICT_CAPACITY) return false; + if(_keys[_size].empty()){ + _keys[_size] = key; + _values[_size] = val; + _size++; + return true; + } + + PK_SMALL_NAME_DICT_LOOP( + if(_keys[i].empty()){ + _keys[i] = key; + _values[i] = val; + _size++; + return true; + } + ) + PK_UNREACHABLE() + } + + V try_get(K key) const { + PK_SMALL_NAME_DICT_LOOP( + if(_keys[i] == key) return _values[i]; + ) + return default_invalid_value(); + } + + V* try_get_2(K key) { + PK_SMALL_NAME_DICT_LOOP( + if(_keys[i] == key) return &_values[i]; + ) + return nullptr; + } + + bool del(K key){ + PK_SMALL_NAME_DICT_LOOP( + if(_keys[i] == key){ _keys[i] = StrName(); _size--; return true; } + ) + return false; + } + + template + void apply(Func func) const { + PK_SMALL_NAME_DICT_LOOP( + if(!_keys[i].empty()) func(_keys[i], _values[i]); + ) + } + + void clear(){ + PK_SMALL_NAME_DICT_LOOP( + _keys[i] = StrName(); + ) + _size = 0; + } + + uint16_t size() const { return _size; } + uint16_t capacity() const { return PK_SMALL_NAME_DICT_CAPACITY; } +}; + +template +struct NameDictItem{ + StrName first; + T second; +}; + +template +struct LargeNameDict { + PK_ALWAYS_PASS_BY_POINTER(LargeNameDict) + + using Item = NameDictItem; + static constexpr uint16_t kInitialCapacity = 32; + static_assert(is_pod::value); + + bool _is_small; + float _load_factor; + uint16_t _size; + + uint16_t _capacity; + uint16_t _critical_size; + uint16_t _mask; + + Item* _items; + +#define HASH_PROBE_1(key, ok, i) \ +ok = false; \ +i = key.index & _mask; \ +while(!_items[i].first.empty()) { \ + if(_items[i].first == (key)) { ok = true; break; } \ + i = (i + 1) & _mask; \ +} + +#define HASH_PROBE_0 HASH_PROBE_1 + + LargeNameDict(float load_factor=PK_INST_ATTR_LOAD_FACTOR): _is_small(false), _load_factor(load_factor), _size(0) { + _set_capacity_and_alloc_items(kInitialCapacity); + } + + ~LargeNameDict(){ free(_items); } + + uint16_t size() const { return _size; } + uint16_t capacity() const { return _capacity; } + + void _set_capacity_and_alloc_items(uint16_t val){ + _capacity = val; + _critical_size = val * _load_factor; + _mask = val - 1; + + _items = (Item*)malloc(_capacity * sizeof(Item)); + memset(_items, 0, _capacity * sizeof(Item)); + } + + void set(StrName key, T val){ + bool ok; uint16_t i; + HASH_PROBE_1(key, ok, i); + if(!ok) { + _size++; + if(_size > _critical_size){ + _rehash_2x(); + HASH_PROBE_1(key, ok, i); + } + _items[i].first = key; + } + _items[i].second = val; + } + + void _rehash_2x(){ + Item* old_items = _items; + uint16_t old_capacity = _capacity; + _set_capacity_and_alloc_items(_capacity * 2); + for(uint16_t i=0; i(); + return _items[i].second; + } + + T* try_get_2(StrName key) { + bool ok; uint16_t i; + HASH_PROBE_0(key, ok, i); + if(!ok) return nullptr; + return &_items[i].second; + } + + T try_get_likely_found(StrName key) const{ + uint16_t i = key.index & _mask; + if(_items[i].first == key) return _items[i].second; + i = (i + 1) & _mask; + if(_items[i].first == key) return _items[i].second; + return try_get(key); + } + + T* try_get_2_likely_found(StrName key) { + uint16_t i = key.index & _mask; + if(_items[i].first == key) return &_items[i].second; + i = (i + 1) & _mask; + if(_items[i].first == key) return &_items[i].second; + return try_get_2(key); + } + + bool del(StrName key){ + bool ok; uint16_t i; + HASH_PROBE_0(key, ok, i); + if(!ok) return false; + _items[i].first = StrName(); + _items[i].second = nullptr; + _size--; + // tidy + uint16_t pre_z = i; + uint16_t z = (i + 1) & _mask; + while(!_items[z].first.empty()){ + uint16_t h = _items[z].first.index & _mask; + if(h != i) break; + std::swap(_items[pre_z], _items[z]); + pre_z = z; + z = (z + 1) & _mask; + } + return true; + } + + template + void apply(__Func func) const { + for(uint16_t i=0; i<_capacity; i++){ + if(_items[i].first.empty()) continue; + func(_items[i].first, _items[i].second); + } + } + + pod_vector keys() const { + pod_vector v; + for(uint16_t i=0; i<_capacity; i++){ + if(_items[i].first.empty()) continue; + v.push_back(_items[i].first); + } + return v; + } + + void clear(){ + for(uint16_t i=0; i<_capacity; i++){ + _items[i].first = StrName(); + _items[i].second = nullptr; + } + _size = 0; + } +#undef HASH_PROBE_0 +#undef HASH_PROBE_1 +}; + +template +struct NameDictImpl{ + PK_ALWAYS_PASS_BY_POINTER(NameDictImpl) + + union{ + SmallNameDict _small; + LargeNameDict _large; + }; + + NameDictImpl(): _small() {} + NameDictImpl(float load_factor): _large(load_factor) {} + + bool is_small() const{ + const bool* p = reinterpret_cast(this); + return *p; + } + + void set(StrName key, V val){ + if(is_small()){ + bool ok = _small.try_set(key, val); + if(!ok){ + SmallNameDict copied(_small); + // move to large name dict + new (&_large) LargeNameDict(); + copied.apply([&](StrName key, V val){ + _large.set(key, val); + }); + _large.set(key, val); + } + }else{ + _large.set(key, val); + } + } + + uint16_t size() const{ return is_small() ?_small.size() : _large.size(); } + uint16_t capacity() const{ return is_small() ?_small.capacity() : _large.capacity(); } + V try_get(StrName key) const { return is_small() ?_small.try_get(key) : _large.try_get(key); } + V* try_get_2(StrName key) { return is_small() ?_small.try_get_2(key) : _large.try_get_2(key); } + bool del(StrName key){ return is_small() ?_small.del(key) : _large.del(key); } + + V try_get_likely_found(StrName key) const { return is_small() ?_small.try_get(key) : _large.try_get_likely_found(key); } + V* try_get_2_likely_found(StrName key) { return is_small() ?_small.try_get_2(key) : _large.try_get_2_likely_found(key); } + + bool contains(StrName key) const { return try_get(key) != default_invalid_value(); } + + V operator[](StrName key) const { + V val = try_get_likely_found(key); + if(val == default_invalid_value()){ + throw std::runtime_error(_S("NameDict key not found: ", key.escape()).str()); + } + return val; + } + + void clear(){ + if(is_small()) _small.clear(); + else _large.clear(); + } + + template + void apply(Func func) const { + if(is_small()) _small.apply(func); + else _large.apply(func); + } + + pod_vector keys() const{ + pod_vector v; + apply([&](StrName key, V val){ + v.push_back(key); + }); + return v; + } + + pod_vector> items() const{ + pod_vector> v; + apply([&](StrName key, V val){ + v.push_back(NameDictItem{key, val}); + }); + return v; + } + + ~NameDictImpl(){ + if(!is_small()) _large.~LargeNameDict(); + } +}; + +using NameDict = NameDictImpl; +using NameDict_ = std::shared_ptr; +using NameDictInt = NameDictImpl; + +static_assert(sizeof(NameDict) <= 128); + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/obj.h b/dependencies/pocketpy/include/pocketpy/obj.h new file mode 100644 index 0000000..57e75f9 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/obj.h @@ -0,0 +1,351 @@ +#pragma once + +#include "common.h" +#include "namedict.h" +#include "tuplelist.h" + +namespace pkpy { + +struct Frame; +class VM; + +#if PK_ENABLE_STD_FUNCTION +using NativeFuncC = std::function; +#else +typedef PyObject* (*NativeFuncC)(VM*, ArgsView); +#endif + +enum class BindType{ + DEFAULT, + STATICMETHOD, + CLASSMETHOD, +}; + +struct BoundMethod { + PyObject* self; + PyObject* func; + BoundMethod(PyObject* self, PyObject* func) : self(self), func(func) {} +}; + +struct StaticMethod{ + PyObject* func; + StaticMethod(PyObject* func) : func(func) {} +}; + +struct ClassMethod{ + PyObject* func; + ClassMethod(PyObject* func) : func(func) {} +}; + +struct Property{ + PyObject* getter; + PyObject* setter; + Property(PyObject* getter, PyObject* setter) : getter(getter), setter(setter) {} +}; + +struct Range { + i64 start = 0; + i64 stop = -1; + i64 step = 1; +}; + +struct StarWrapper{ + int level; // either 1 or 2 + PyObject* obj; + StarWrapper(int level, PyObject* obj) : level(level), obj(obj) {} +}; + +struct Bytes{ + unsigned char* _data; + int _size; + + int size() const noexcept { return _size; } + int operator[](int i) const noexcept { return (int)_data[i]; } + const unsigned char* data() const noexcept { return _data; } + + bool operator==(const Bytes& rhs) const; + bool operator!=(const Bytes& rhs) const; + + Str str() const noexcept { return Str((char*)_data, _size); } + std::string_view sv() const noexcept { return std::string_view((char*)_data, _size); } + + Bytes() : _data(nullptr), _size(0) {} + Bytes(unsigned char* p, int size): _data(p), _size(size) {} + Bytes(const Str& str): Bytes(str.sv()) {} + operator bool() const noexcept { return _data != nullptr; } + + Bytes(std::string_view sv); + Bytes(const Bytes& rhs); + Bytes(Bytes&& rhs) noexcept; + Bytes& operator=(Bytes&& rhs) noexcept; + Bytes& operator=(const Bytes& rhs) = delete; + std::pair detach() noexcept; + + ~Bytes(){ delete[] _data;} +}; + +using Super = std::pair; + +struct Slice { + PyObject* start; + PyObject* stop; + PyObject* step; + Slice(PyObject* start, PyObject* stop, PyObject* step) : start(start), stop(stop), step(step) {} +}; + +struct PyObject{ + bool gc_enabled; // whether this object is managed by GC + bool gc_marked; // whether this object is marked + Type type; + NameDict* _attr; + + bool is_attr_valid() const noexcept { return _attr != nullptr; } + + NameDict& attr() { + PK_DEBUG_ASSERT(is_attr_valid()) + return *_attr; + } + + PyObject* attr(StrName name) const { + PK_DEBUG_ASSERT(is_attr_valid()) + return (*_attr)[name]; + } + + virtual void _obj_gc_mark() = 0; + + PyObject(Type type) : gc_enabled(true), gc_marked(false), type(type), _attr(nullptr) {} + + virtual ~PyObject(){ + if(_attr == nullptr) return; + _attr->~NameDict(); + pool128_dealloc(_attr); + } + + void _enable_instance_dict() { + _attr = new(pool128_alloc()) NameDict(); + } + + void _enable_instance_dict(float lf){ + _attr = new(pool128_alloc()) NameDict(lf); + } +}; + +const int kTpIntIndex = 2; +const int kTpFloatIndex = 3; + +inline bool is_tagged(PyObject* p) noexcept { return (PK_BITS(p) & 0b11) != 0b00; } +inline bool is_small_int(PyObject* p) noexcept { return (PK_BITS(p) & 0b11) == 0b10; } +inline bool is_heap_int(PyObject* p) noexcept { return !is_tagged(p) && p->type.index == kTpIntIndex; } +inline bool is_float(PyObject* p) noexcept { return !is_tagged(p) && p->type.index == kTpFloatIndex; } +inline bool is_int(PyObject* p) noexcept { return is_small_int(p) || is_heap_int(p); } + +inline bool is_type(PyObject* obj, Type type) { + PK_DEBUG_ASSERT(obj != nullptr) + return is_small_int(obj) ? type.index == kTpIntIndex : obj->type == type; +} + +[[deprecated("use is_type() instead")]] +inline bool is_non_tagged_type(PyObject* obj, Type type) { + return is_type(obj, type); +} + +template struct has_gc_marker : std::false_type {}; +template struct has_gc_marker> : std::true_type {}; + +template +struct Py_ final: PyObject { + static_assert(!std::is_reference_v, "T must not be a reference type. Are you using `PK_OBJ_GET(T&, ...)`?"); + + T _value; + void _obj_gc_mark() override { + if constexpr (has_gc_marker::value) { + _value._gc_mark(); + } + } + + template + Py_(Type type, Args&&... args) : PyObject(type), _value(std::forward(args)...) { } +}; + +struct MappingProxy{ + PyObject* obj; + MappingProxy(PyObject* obj) : obj(obj) {} + NameDict& attr() { return obj->attr(); } +}; + +#define PK_OBJ_GET(T, obj) (((Py_*)(obj))->_value) + +#define PK_OBJ_MARK(obj) \ + if(!is_tagged(obj) && !(obj)->gc_marked) { \ + (obj)->gc_marked = true; \ + (obj)->_obj_gc_mark(); \ + if((obj)->is_attr_valid()) gc_mark_namedict((obj)->attr()); \ + } + +inline void gc_mark_namedict(NameDict& t){ + if(t.size() == 0) return; + t.apply([](StrName name, PyObject* obj){ + PK_OBJ_MARK(obj); + }); +} + +StrName _type_name(VM* vm, Type type); +template T to_void_p(VM*, PyObject*); +PyObject* from_void_p(VM*, void*); + +#define VAR(x) py_var(vm, x) +#define CAST(T, x) py_cast(vm, x) +#define _CAST(T, x) _py_cast(vm, x) + +#define CAST_F(x) py_cast(vm, x) +#define CAST_DEFAULT(T, x, default_value) (x != vm->None) ? py_cast(vm, x) : (default_value) + +/*****************************************************************/ +template<> +struct Py_ final: PyObject { + i64 _value; + Py_(Type type, i64 val): PyObject(type), _value(val) {} + void _obj_gc_mark() override {} +}; + +inline bool try_cast_int(PyObject* obj, i64* val) noexcept { + if(is_small_int(obj)){ + *val = PK_BITS(obj) >> 2; + return true; + }else if(is_heap_int(obj)){ + *val = PK_OBJ_GET(i64, obj); + return true; + }else{ + return false; + } +} + +template<> +struct Py_ final: PyObject { + List _value; + Py_(Type type, List&& val): PyObject(type), _value(std::move(val)) {} + Py_(Type type, const List& val): PyObject(type), _value(val) {} + + void _obj_gc_mark() override { + for(PyObject* obj: _value) PK_OBJ_MARK(obj); + } +}; + +template<> +struct Py_ final: PyObject { + Tuple _value; + Py_(Type type, Tuple&& val): PyObject(type), _value(std::move(val)) {} + Py_(Type type, const Tuple& val): PyObject(type), _value(val) {} + + void _obj_gc_mark() override { + for(PyObject* obj: _value) PK_OBJ_MARK(obj); + } +}; + +template<> +struct Py_ final: PyObject { + MappingProxy _value; + Py_(Type type, MappingProxy val): PyObject(type), _value(val) {} + void _obj_gc_mark() override { + PK_OBJ_MARK(_value.obj); + } +}; + +template<> +struct Py_ final: PyObject { + BoundMethod _value; + Py_(Type type, BoundMethod val): PyObject(type), _value(val) {} + void _obj_gc_mark() override { + PK_OBJ_MARK(_value.self); + PK_OBJ_MARK(_value.func); + } +}; + +template<> +struct Py_ final: PyObject { + StarWrapper _value; + Py_(Type type, StarWrapper val): PyObject(type), _value(val) {} + void _obj_gc_mark() override { + PK_OBJ_MARK(_value.obj); + } +}; + +template<> +struct Py_ final: PyObject { + StaticMethod _value; + Py_(Type type, StaticMethod val): PyObject(type), _value(val) {} + void _obj_gc_mark() override { + PK_OBJ_MARK(_value.func); + } +}; + +template<> +struct Py_ final: PyObject { + ClassMethod _value; + Py_(Type type, ClassMethod val): PyObject(type), _value(val) {} + void _obj_gc_mark() override { + PK_OBJ_MARK(_value.func); + } +}; + +template<> +struct Py_ final: PyObject { + Property _value; + Py_(Type type, Property val): PyObject(type), _value(val) {} + void _obj_gc_mark() override { + PK_OBJ_MARK(_value.getter); + PK_OBJ_MARK(_value.setter); + } +}; + +template<> +struct Py_ final: PyObject { + Slice _value; + Py_(Type type, Slice val): PyObject(type), _value(val) {} + void _obj_gc_mark() override { + PK_OBJ_MARK(_value.start); + PK_OBJ_MARK(_value.stop); + PK_OBJ_MARK(_value.step); + } +}; + +template<> +struct Py_ final: PyObject { + Super _value; + template + Py_(Type type, Args&&... args): PyObject(type), _value(std::forward(args)...) {} + void _obj_gc_mark() override { + PK_OBJ_MARK(_value.first); + } +}; + +template<> +struct Py_ final: PyObject { + Py_(Type type): PyObject(type) { + _enable_instance_dict(); + } + void _obj_gc_mark() override {} +}; + +template<> +struct Py_ final: PyObject { + Type _value; + Py_(Type type, Type val): PyObject(type), _value(val) { + _enable_instance_dict(PK_TYPE_ATTR_LOAD_FACTOR); + } + void _obj_gc_mark() override {} +}; + +template<> +struct Py_ final: PyObject { + Py_(Type type): PyObject(type) { + _enable_instance_dict(PK_TYPE_ATTR_LOAD_FACTOR); + } + void _obj_gc_mark() override {} +}; + +extern PyObject* const PY_NULL; +extern PyObject* const PY_OP_CALL; +extern PyObject* const PY_OP_YIELD; + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/opcodes.h b/dependencies/pocketpy/include/pocketpy/opcodes.h new file mode 100644 index 0000000..8236855 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/opcodes.h @@ -0,0 +1,163 @@ +#ifdef OPCODE + +/**************************/ +OPCODE(NO_OP) +/**************************/ +OPCODE(POP_TOP) +OPCODE(DUP_TOP) +OPCODE(ROT_TWO) +OPCODE(ROT_THREE) +OPCODE(PRINT_EXPR) +/**************************/ +OPCODE(LOAD_CONST) +OPCODE(LOAD_NONE) +OPCODE(LOAD_TRUE) +OPCODE(LOAD_FALSE) +/**************************/ +OPCODE(LOAD_INT_0) +OPCODE(LOAD_INT_1) +OPCODE(LOAD_INT_2) +OPCODE(LOAD_INT_3) +OPCODE(LOAD_INT_4) +OPCODE(LOAD_INT_5) +OPCODE(LOAD_INT_6) +OPCODE(LOAD_INT_7) +OPCODE(LOAD_INT_8) +OPCODE(LOAD_INT_9) +OPCODE(LOAD_INT_10) +OPCODE(LOAD_INT_11) +OPCODE(LOAD_INT_12) +OPCODE(LOAD_INT_13) +OPCODE(LOAD_INT_14) +OPCODE(LOAD_INT_15) +OPCODE(LOAD_INT_16) +/**************************/ +OPCODE(LOAD_ELLIPSIS) +OPCODE(LOAD_FUNCTION) +OPCODE(LOAD_NULL) +/**************************/ +OPCODE(LOAD_FAST) +OPCODE(LOAD_NAME) +OPCODE(LOAD_NONLOCAL) +OPCODE(LOAD_GLOBAL) +OPCODE(LOAD_ATTR) +OPCODE(LOAD_CLASS_GLOBAL) +OPCODE(LOAD_METHOD) +OPCODE(LOAD_SUBSCR) + +OPCODE(STORE_FAST) +OPCODE(STORE_NAME) +OPCODE(STORE_GLOBAL) +OPCODE(STORE_ATTR) +OPCODE(STORE_SUBSCR) + +OPCODE(DELETE_FAST) +OPCODE(DELETE_NAME) +OPCODE(DELETE_GLOBAL) +OPCODE(DELETE_ATTR) +OPCODE(DELETE_SUBSCR) +/**************************/ +OPCODE(BUILD_LONG) +OPCODE(BUILD_IMAG) +OPCODE(BUILD_BYTES) +OPCODE(BUILD_TUPLE) +OPCODE(BUILD_LIST) +OPCODE(BUILD_DICT) +OPCODE(BUILD_SET) +OPCODE(BUILD_SLICE) +OPCODE(BUILD_STRING) +/**************************/ +OPCODE(BUILD_TUPLE_UNPACK) +OPCODE(BUILD_LIST_UNPACK) +OPCODE(BUILD_DICT_UNPACK) +OPCODE(BUILD_SET_UNPACK) +/**************************/ +OPCODE(BINARY_TRUEDIV) +OPCODE(BINARY_POW) + +OPCODE(BINARY_ADD) +OPCODE(BINARY_SUB) +OPCODE(BINARY_MUL) +OPCODE(BINARY_FLOORDIV) +OPCODE(BINARY_MOD) + +OPCODE(COMPARE_LT) +OPCODE(COMPARE_LE) +OPCODE(COMPARE_EQ) +OPCODE(COMPARE_NE) +OPCODE(COMPARE_GT) +OPCODE(COMPARE_GE) + +OPCODE(BITWISE_LSHIFT) +OPCODE(BITWISE_RSHIFT) +OPCODE(BITWISE_AND) +OPCODE(BITWISE_OR) +OPCODE(BITWISE_XOR) + +OPCODE(BINARY_MATMUL) + +OPCODE(IS_OP) +OPCODE(CONTAINS_OP) +/**************************/ +OPCODE(JUMP_ABSOLUTE) +OPCODE(JUMP_ABSOLUTE_TOP) +OPCODE(POP_JUMP_IF_FALSE) +OPCODE(POP_JUMP_IF_TRUE) +OPCODE(JUMP_IF_TRUE_OR_POP) +OPCODE(JUMP_IF_FALSE_OR_POP) +OPCODE(SHORTCUT_IF_FALSE_OR_POP) +OPCODE(LOOP_CONTINUE) +OPCODE(LOOP_BREAK) +OPCODE(GOTO) +/**************************/ +OPCODE(FSTRING_EVAL) +OPCODE(REPR) +OPCODE(CALL) +OPCODE(CALL_TP) +OPCODE(RETURN_VALUE) +OPCODE(YIELD_VALUE) +/**************************/ +OPCODE(LIST_APPEND) +OPCODE(DICT_ADD) +OPCODE(SET_ADD) +/**************************/ +OPCODE(UNARY_NEGATIVE) +OPCODE(UNARY_NOT) +OPCODE(UNARY_STAR) +OPCODE(UNARY_INVERT) +/**************************/ +OPCODE(GET_ITER) +OPCODE(FOR_ITER) +OPCODE(FOR_ITER_STORE_FAST) +OPCODE(FOR_ITER_STORE_GLOBAL) +OPCODE(FOR_ITER_YIELD_VALUE) +/**************************/ +OPCODE(IMPORT_PATH) +OPCODE(POP_IMPORT_STAR) +/**************************/ +OPCODE(UNPACK_SEQUENCE) +OPCODE(UNPACK_EX) +/**************************/ +OPCODE(BEGIN_CLASS) +OPCODE(END_CLASS) +OPCODE(STORE_CLASS_ATTR) +OPCODE(BEGIN_CLASS_DECORATION) +OPCODE(END_CLASS_DECORATION) +OPCODE(ADD_CLASS_ANNOTATION) +/**************************/ +OPCODE(WITH_ENTER) +OPCODE(WITH_EXIT) +/**************************/ +OPCODE(EXCEPTION_MATCH) +OPCODE(RAISE) +OPCODE(RAISE_ASSERT) +OPCODE(RE_RAISE) +OPCODE(POP_EXCEPTION) +/**************************/ +OPCODE(FORMAT_STRING) +/**************************/ +OPCODE(INC_FAST) +OPCODE(DEC_FAST) +OPCODE(INC_GLOBAL) +OPCODE(DEC_GLOBAL) +#endif \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/pocketpy.h b/dependencies/pocketpy/include/pocketpy/pocketpy.h new file mode 100644 index 0000000..89e11d0 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/pocketpy.h @@ -0,0 +1,19 @@ +#pragma once + +#include "compiler.h" +#include "obj.h" +#include "repl.h" +#include "iter.h" +#include "base64.h" +#include "cffi.h" +#include "linalg.h" +#include "easing.h" +#include "io.h" +#include "vm.h" +#include "random.h" +#include "bindings.h" +#include "collections.h" +#include "csv.h" +#include "dataclasses.h" +#include "array2d.h" +#include "modules.h" diff --git a/dependencies/pocketpy/include/pocketpy/pocketpy_c.h b/dependencies/pocketpy/include/pocketpy/pocketpy_c.h new file mode 100644 index 0000000..f5c8a00 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/pocketpy_c.h @@ -0,0 +1,106 @@ +#ifndef POCKETPY_C_H +#define POCKETPY_C_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#include "export.h" + +typedef struct pkpy_vm_handle pkpy_vm; +typedef int (*pkpy_CFunction)(pkpy_vm*); +typedef void (*pkpy_COutputHandler)(const char*, int); +typedef unsigned char* (*pkpy_CImportHandler)(const char*, int, int*); +typedef int pkpy_CName; +typedef int pkpy_CType; +typedef const char* pkpy_CString; + +/* Basic Functions */ +PK_EXPORT pkpy_vm* pkpy_new_vm(bool enable_os); +PK_EXPORT void pkpy_delete_vm(pkpy_vm*); +PK_EXPORT bool pkpy_exec(pkpy_vm*, const char* source); +PK_EXPORT bool pkpy_exec_2(pkpy_vm*, const char* source, const char* filename, int mode, const char* module); +PK_EXPORT void pkpy_set_main_argv(pkpy_vm*, int argc, char** argv); + +/* Stack Manipulation */ +PK_EXPORT bool pkpy_dup(pkpy_vm*, int i); +PK_EXPORT bool pkpy_pop(pkpy_vm*, int n); +PK_EXPORT bool pkpy_pop_top(pkpy_vm*); +PK_EXPORT bool pkpy_dup_top(pkpy_vm*); +PK_EXPORT bool pkpy_rot_two(pkpy_vm*); +PK_EXPORT int pkpy_stack_size(pkpy_vm*); + +// int +PK_EXPORT bool pkpy_push_int(pkpy_vm*, int val); +PK_EXPORT bool pkpy_is_int(pkpy_vm*, int i); +PK_EXPORT bool pkpy_to_int(pkpy_vm*, int i, int* out); + +// float +PK_EXPORT bool pkpy_push_float(pkpy_vm*, double val); +PK_EXPORT bool pkpy_is_float(pkpy_vm*, int i); +PK_EXPORT bool pkpy_to_float(pkpy_vm*, int i, double* out); + +// bool +PK_EXPORT bool pkpy_push_bool(pkpy_vm*, bool val); +PK_EXPORT bool pkpy_is_bool(pkpy_vm*, int i); +PK_EXPORT bool pkpy_to_bool(pkpy_vm*, int i, bool* out); + +// string +PK_EXPORT bool pkpy_push_string(pkpy_vm*, pkpy_CString val); +PK_EXPORT bool pkpy_is_string(pkpy_vm*, int i); +PK_EXPORT bool pkpy_to_string(pkpy_vm*, int i, pkpy_CString* out); + +// void_p +PK_EXPORT bool pkpy_push_voidp(pkpy_vm*, void* val); +PK_EXPORT bool pkpy_is_voidp(pkpy_vm*, int i); +PK_EXPORT bool pkpy_to_voidp(pkpy_vm*, int i, void** out); + +// none +PK_EXPORT bool pkpy_push_none(pkpy_vm*); +PK_EXPORT bool pkpy_is_none(pkpy_vm*, int i); + +// special push +PK_EXPORT bool pkpy_push_null(pkpy_vm*); +PK_EXPORT bool pkpy_push_function(pkpy_vm*, const char* sig, pkpy_CFunction val); +PK_EXPORT bool pkpy_push_module(pkpy_vm*, const char* name); + +// some opt +PK_EXPORT bool pkpy_getattr(pkpy_vm*, pkpy_CName name); +PK_EXPORT bool pkpy_setattr(pkpy_vm*, pkpy_CName name); +PK_EXPORT bool pkpy_getglobal(pkpy_vm*, pkpy_CName name); +PK_EXPORT bool pkpy_setglobal(pkpy_vm*, pkpy_CName name); +PK_EXPORT bool pkpy_eval(pkpy_vm*, const char* source); +PK_EXPORT bool pkpy_unpack_sequence(pkpy_vm*, int size); +PK_EXPORT bool pkpy_get_unbound_method(pkpy_vm*, pkpy_CName name); +PK_EXPORT bool pkpy_py_repr(pkpy_vm*); +PK_EXPORT bool pkpy_py_str(pkpy_vm*); + +/* Error Handling */ +PK_EXPORT bool pkpy_error(pkpy_vm*, const char* name, pkpy_CString msg); +PK_EXPORT bool pkpy_check_error(pkpy_vm*); +PK_EXPORT bool pkpy_clear_error(pkpy_vm*, char** message); + +/* Callables */ +PK_EXPORT bool pkpy_vectorcall(pkpy_vm*, int argc); + +/* Special APIs */ +PK_EXPORT void pkpy_free(void* p); +#define pkpy_string(__s) (__s) +PK_EXPORT pkpy_CName pkpy_name(const char* s); +PK_EXPORT pkpy_CString pkpy_name_to_string(pkpy_CName name); +PK_EXPORT void pkpy_set_output_handler(pkpy_vm*, pkpy_COutputHandler handler); +PK_EXPORT void pkpy_set_import_handler(pkpy_vm*, pkpy_CImportHandler handler); + +/* REPL */ +PK_EXPORT void* pkpy_new_repl(pkpy_vm*); +PK_EXPORT bool pkpy_repl_input(void* r, const char* line); +PK_EXPORT void pkpy_delete_repl(void* repl); +#ifdef __cplusplus +} +#endif + + +#endif diff --git a/dependencies/pocketpy/include/pocketpy/profiler.h b/dependencies/pocketpy/include/pocketpy/profiler.h new file mode 100644 index 0000000..b102a5f --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/profiler.h @@ -0,0 +1,36 @@ +#pragma once + +#include "frame.h" + +namespace pkpy { + +struct _LineRecord{ + int line; + i64 hits; + clock_t time; + + _LineRecord(): line(-1), hits(0), time(0) {} + bool is_valid() const { return line != -1; } +}; + +struct _FrameRecord{ + int callstack_size; + Frame* frame; + clock_t prev_time; + _LineRecord* prev_record; +}; + +struct LineProfiler{ + // filename -> records + std::map> records; + stack_no_copy<_FrameRecord> frames; + std::set functions; + + void begin(); + void _step(int, Frame*); + void _step_end(int, Frame*, int); + void end(); + Str stats(); +}; + +} // namespace pkpy diff --git a/dependencies/pocketpy/include/pocketpy/random.h b/dependencies/pocketpy/include/pocketpy/random.h new file mode 100644 index 0000000..4d16f39 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/random.h @@ -0,0 +1,9 @@ +#pragma once + +#include "bindings.h" + +namespace pkpy{ + +void add_module_random(VM* vm); + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/repl.h b/dependencies/pocketpy/include/pocketpy/repl.h new file mode 100644 index 0000000..5118d01 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/repl.h @@ -0,0 +1,17 @@ +#pragma once + +#include "vm.h" + +namespace pkpy{ + +class REPL { +protected: + int need_more_lines = 0; + std::string buffer; + VM* vm; +public: + REPL(VM* vm); + bool input(std::string line); +}; + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/str.h b/dependencies/pocketpy/include/pocketpy/str.h new file mode 100644 index 0000000..063035d --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/str.h @@ -0,0 +1,235 @@ +#pragma once + +#include "common.h" +#include "memory.h" +#include "vector.h" + +namespace pkpy { + +int utf8len(unsigned char c, bool suppress=false); +struct SStream; + +struct Str{ + int size; + bool is_ascii; + char* data; + char _inlined[16]; + + bool is_inlined() const { return data == _inlined; } + + Str(); + Str(int size, bool is_ascii); + Str(const std::string& s); + Str(std::string_view s); + Str(const char* s); + Str(const char* s, int len); + Str(std::pair); + Str(const Str& other); + Str(Str&& other); + + operator std::string_view() const { return sv(); } + + const char* begin() const { return data; } + const char* end() const { return data + size; } + char operator[](int idx) const { return data[idx]; } + int length() const { return size; } + bool empty() const { return size == 0; } + size_t hash() const{ return std::hash()(sv()); } + + Str& operator=(const Str&); + Str operator+(const Str&) const; + Str operator+(const char*) const; + friend Str operator+(const char*, const Str&); + + bool operator==(const std::string_view other) const; + bool operator!=(const std::string_view other) const; + bool operator<(const std::string_view other) const; + friend bool operator<(const std::string_view other, const Str& str); + + bool operator==(const char* p) const; + bool operator!=(const char* p) const; + + bool operator==(const Str& other) const; + bool operator!=(const Str& other) const; + bool operator<(const Str& other) const; + bool operator>(const Str& other) const; + bool operator<=(const Str& other) const; + bool operator>=(const Str& other) const; + + ~Str(); + + friend std::ostream& operator<<(std::ostream& os, const Str& str); + + const char* c_str() const { return data; } + std::string_view sv() const { return std::string_view(data, size); } + std::string str() const { return std::string(data, size); } + + Str substr(int start, int len) const; + Str substr(int start) const; + Str strip(bool left, bool right, const Str& chars) const; + Str strip(bool left=true, bool right=true) const; + Str lstrip() const { return strip(true, false); } + Str rstrip() const { return strip(false, true); } + Str lower() const; + Str upper() const; + Str escape(bool single_quote=true) const; + void escape_(SStream& ss, bool single_quote=true) const; + int index(const Str& sub, int start=0) const; + Str replace(char old, char new_) const; + Str replace(const Str& old, const Str& new_, int count=-1) const; + pod_vector split(const Str& sep) const; + pod_vector split(char sep) const; + int count(const Str& sub) const; + + /*************unicode*************/ + int _unicode_index_to_byte(int i) const; + int _byte_index_to_unicode(int n) const; + Str u8_getitem(int i) const; + Str u8_slice(int start, int stop, int step) const; + int u8_length() const; +}; + +struct StrName { + uint16_t index; + + StrName(): index(0) {} + explicit StrName(uint16_t index): index(index) {} + StrName(const char* s): index(get(s).index) {} + StrName(const Str& s): index(get(s.sv()).index) {} + + std::string_view sv() const { return _r_interned()[index];} + const char* c_str() const { return _r_interned()[index].c_str(); } + + bool empty() const { return index == 0; } + Str escape() const { return Str(sv()).escape(); } + + bool operator==(const StrName& other) const noexcept { + return this->index == other.index; + } + + bool operator!=(const StrName& other) const noexcept { + return this->index != other.index; + } + + bool operator<(const StrName& other) const noexcept { + return sv() < other.sv(); + } + + bool operator>(const StrName& other) const noexcept { + return sv() > other.sv(); + } + + static bool is_valid(int index); + static StrName get(std::string_view s); + static std::map>& _interned(); + static std::map& _r_interned(); + static uint32_t _pesudo_random_index; +}; + +struct SStream{ + PK_ALWAYS_PASS_BY_POINTER(SStream) + // pod_vector is allocated by pool64 so the buffer can be moved into Str without a copy + pod_vector buffer; + int _precision = -1; + + bool empty() const { return buffer.empty(); } + void setprecision(int precision) { _precision = precision; } + + SStream(){} + SStream(int guess_size){ buffer.reserve(guess_size); } + + Str str(); + + SStream& operator<<(const Str&); + SStream& operator<<(const char*); + SStream& operator<<(int); + SStream& operator<<(size_t); + SStream& operator<<(i64); + SStream& operator<<(f64); + SStream& operator<<(const std::string&); + SStream& operator<<(std::string_view); + SStream& operator<<(char); + SStream& operator<<(StrName); + + void write_hex(unsigned char, bool non_zero=false); + void write_hex(void*); + void write_hex(i64); +}; + +#ifdef _S +#undef _S +#endif + +template +Str _S(Args&&... args) { + SStream ss; + (ss << ... << args); + return ss.str(); +} + +struct CString{ + const char* ptr; + CString(const char* ptr): ptr(ptr) {} + operator const char*() const { return ptr; } +}; + +// unary operators +extern const StrName __repr__; +extern const StrName __str__; +extern const StrName __hash__; +extern const StrName __len__; +extern const StrName __iter__; +extern const StrName __next__; +extern const StrName __neg__; +// logical operators +extern const StrName __eq__; +extern const StrName __lt__; +extern const StrName __le__; +extern const StrName __gt__; +extern const StrName __ge__; +extern const StrName __contains__; +// binary operators +extern const StrName __add__; +extern const StrName __radd__; +extern const StrName __sub__; +extern const StrName __rsub__; +extern const StrName __mul__; +extern const StrName __rmul__; +extern const StrName __truediv__; +extern const StrName __floordiv__; +extern const StrName __mod__; +extern const StrName __pow__; +extern const StrName __matmul__; +extern const StrName __lshift__; +extern const StrName __rshift__; +extern const StrName __and__; +extern const StrName __or__; +extern const StrName __xor__; +extern const StrName __invert__; +// indexer +extern const StrName __getitem__; +extern const StrName __setitem__; +extern const StrName __delitem__; + +// specials +extern const StrName __new__; +extern const StrName __init__; +extern const StrName __call__; +extern const StrName __divmod__; +extern const StrName __enter__; +extern const StrName __exit__; +extern const StrName __name__; +extern const StrName __all__; +extern const StrName __package__; +extern const StrName __path__; +extern const StrName __class__; +extern const StrName __missing__; + +extern const StrName pk_id_add; +extern const StrName pk_id_set; +extern const StrName pk_id_long; +extern const StrName pk_id_complex; + +#define DEF_SNAME(name) const static StrName name(#name) + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/tuplelist.h b/dependencies/pocketpy/include/pocketpy/tuplelist.h new file mode 100644 index 0000000..fedd543 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/tuplelist.h @@ -0,0 +1,56 @@ +#pragma once + +#include "common.h" +#include "memory.h" +#include "str.h" +#include "vector.h" + +namespace pkpy { + +using List = pod_vector; + +struct Tuple { + PyObject** _args; + PyObject* _inlined[3]; + int _size; + + Tuple(int n); + Tuple(const Tuple& other); + Tuple(Tuple&& other) noexcept; + Tuple(List&& other) noexcept; + ~Tuple(); + + Tuple(PyObject*, PyObject*); + Tuple(PyObject*, PyObject*, PyObject*); + Tuple(PyObject*, PyObject*, PyObject*, PyObject*); + + bool is_inlined() const { return _args == _inlined; } + PyObject*& operator[](int i){ return _args[i]; } + PyObject* operator[](int i) const { return _args[i]; } + + int size() const { return _size; } + + PyObject** begin() const { return _args; } + PyObject** end() const { return _args + _size; } + PyObject** data() const { return _args; } +}; + +// a lightweight view for function args, it does not own the memory +struct ArgsView{ + PyObject** _begin; + PyObject** _end; + + ArgsView(PyObject** begin, PyObject** end) : _begin(begin), _end(end) {} + ArgsView(const Tuple& t) : _begin(t.begin()), _end(t.end()) {} + + PyObject** begin() const { return _begin; } + PyObject** end() const { return _end; } + int size() const { return _end - _begin; } + bool empty() const { return _begin == _end; } + PyObject* operator[](int i) const { return _begin[i]; } + + List to_list() const; + Tuple to_tuple() const; +}; + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/vector.h b/dependencies/pocketpy/include/pocketpy/vector.h new file mode 100644 index 0000000..fefb645 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/vector.h @@ -0,0 +1,409 @@ +#pragma once + +#include "common.h" +#include "memory.h" + +namespace pkpy{ + +template +struct pod_vector{ + static constexpr int SizeT = sizeof(T); + static constexpr int N = 64 / SizeT; + + // static_assert(64 % SizeT == 0); + static_assert(is_pod::value); + static_assert(N >= 4); + + int _size; + int _capacity; + T* _data; + + using size_type = int; + + pod_vector(): _size(0), _capacity(N) { + _data = (T*)pool64_alloc(_capacity * SizeT); + } + + // support initializer list + pod_vector(std::initializer_list il): _size(il.size()), _capacity(std::max(N, _size)) { + _data = (T*)pool64_alloc(_capacity * SizeT); + for(int i=0; i<_size; i++) _data[i] = *(il.begin() + i); + } + + pod_vector(int size): _size(size), _capacity(std::max(N, size)) { + _data = (T*)pool64_alloc(_capacity * SizeT); + } + + pod_vector(const pod_vector& other): _size(other._size), _capacity(other._capacity) { + _data = (T*)pool64_alloc(_capacity * SizeT); + memcpy(_data, other._data, SizeT * _size); + } + + pod_vector(pod_vector&& other) noexcept { + _size = other._size; + _capacity = other._capacity; + _data = other._data; + other._data = nullptr; + } + + pod_vector& operator=(pod_vector&& other) noexcept { + if(_data!=nullptr) pool64_dealloc(_data); + _size = other._size; + _capacity = other._capacity; + _data = other._data; + other._data = nullptr; + return *this; + } + + // remove copy assignment + pod_vector& operator=(const pod_vector& other) = delete; + + template + void push_back(__ValueT&& t) { + if (_size == _capacity) reserve(_capacity*2); + _data[_size++] = std::forward<__ValueT>(t); + } + + template + void emplace_back(Args&&... args) { + if (_size == _capacity) reserve(_capacity*2); + new (&_data[_size++]) T(std::forward(args)...); + } + + void reserve(int cap){ + if(cap <= _capacity) return; + _capacity = cap; + T* old_data = _data; + _data = (T*)pool64_alloc(_capacity * SizeT); + if(old_data != nullptr){ + memcpy(_data, old_data, SizeT * _size); + pool64_dealloc(old_data); + } + } + + void pop_back() { _size--; } + T popx_back() { T t = std::move(_data[_size-1]); _size--; return t; } + + void extend(const pod_vector& other){ + for(int i=0; i + void insert(int i, __ValueT&& val){ + if (_size == _capacity) reserve(_capacity*2); + for(int j=_size; j>i; j--) _data[j] = _data[j-1]; + _data[i] = std::forward<__ValueT>(val); + _size++; + } + + void erase(int i){ + for(int j=i; j<_size-1; j++) _data[j] = _data[j+1]; + _size--; + } + + void reverse(){ + std::reverse(_data, _data+_size); + } + + void resize(int size){ + if(size > _capacity) reserve(size); + _size = size; + } + + std::pair detach() noexcept { + T* p = _data; + int size = _size; + _data = nullptr; + _size = 0; + return {p, size}; + } + + ~pod_vector() { + if(_data != nullptr) pool64_dealloc(_data); + } +}; + + +template > +class stack{ + Container vec; +public: + void push(const T& t){ vec.push_back(t); } + void push(T&& t){ vec.push_back(std::move(t)); } + template + void emplace(Args&&... args){ + vec.emplace_back(std::forward(args)...); + } + void pop(){ vec.pop_back(); } + void clear(){ vec.clear(); } + bool empty() const { return vec.empty(); } + typename Container::size_type size() const { return vec.size(); } + T& top(){ return vec.back(); } + const T& top() const { return vec.back(); } + T popx(){ T t = std::move(vec.back()); vec.pop_back(); return t; } + void reserve(int n){ vec.reserve(n); } + Container& container() { return vec; } + const Container& container() const { return vec; } +}; + +template > +class stack_no_copy: public stack{ +public: + stack_no_copy() = default; + stack_no_copy(const stack_no_copy& other) = delete; + stack_no_copy& operator=(const stack_no_copy& other) = delete; + stack_no_copy(stack_no_copy&& other) noexcept = default; + stack_no_copy& operator=(stack_no_copy&& other) noexcept = default; +}; + +} // namespace pkpy + + +namespace pkpy +{ + +// explicitly mark a type as trivially relocatable for better performance + template + struct TriviallyRelocatable + { + constexpr static bool value = + std::is_trivially_copyable_v && std::is_trivially_destructible_v; + }; + + template + constexpr inline bool is_trivially_relocatable_v = + TriviallyRelocatable::value; + + template + struct TriviallyRelocatable> + { + constexpr static bool value = true; + }; + + +// the implementation of small_vector + template + class small_vector + { + alignas(T) char m_buffer[sizeof(T) * N]; + T* m_begin; + T* m_end; + T* m_max; + + public: + using value_type = T; + using size_type = int; + using difference_type = int; + using reference = T&; + using const_reference = const T&; + using pointer = T*; + using const_pointer = const T*; + using iterator = T*; + using const_iterator = const T*; + using reverse_iterator = std::reverse_iterator; + using const_reverse_iterator = std::reverse_iterator; + + [[nodiscard]] bool is_small() const { return m_begin == reinterpret_cast(m_buffer); } + [[nodiscard]] size_type size() const { return m_end - m_begin; } + [[nodiscard]] size_type capacity() const { return m_max - m_begin; } + [[nodiscard]] bool empty() const { return m_begin == m_end; } + + pointer data() { return m_begin; } + const_pointer data() const { return m_begin; } + reference operator[](size_type index) { return m_begin[index]; } + const_reference operator[](size_type index) const { return m_begin[index]; } + iterator begin() { return m_begin; } + const_iterator begin() const { return m_begin; } + iterator end() { return m_end; } + const_iterator end() const { return m_end; } + reference front() { return *begin(); } + const_reference front() const { return *begin(); } + reference back() { return *(end() - 1); } + const_reference back() const { return *(end() - 1); } + reverse_iterator rbegin() { return reverse_iterator(end()); } + const_reverse_iterator rbegin() const + { + return const_reverse_iterator(end()); + } + reverse_iterator rend() { return reverse_iterator(begin()); } + const_reverse_iterator rend() const + { + return const_reverse_iterator(begin()); + } + private: + static void uninitialized_copy_n(const void* src, size_type n, void* dest) + { + if constexpr (std::is_trivially_copyable_v) + { + std::memcpy(dest, src, sizeof(T) * n); + } + else + { + for (size_type i = 0; i < n; i++) + { + ::new((T*) dest + i) T(*((const T*) src + i)); + } + } + } + + static void uninitialized_relocate_n(void* src, size_type n, void* dest) + { + if constexpr (is_trivially_relocatable_v) + { + std::memcpy(dest, src, sizeof(T) * n); + } + else + { + for (size_type i = 0; i < n; i++) + { + ::new((T*) dest + i) T(std::move(*((T*) src + i))); + ((T*) src + i)->~T(); + } + } + } + + public: + small_vector() : m_begin(reinterpret_cast(m_buffer)), m_end(m_begin), m_max(m_begin + N) {} + + small_vector(const small_vector& other) noexcept + { + const auto size = other.size(); + const auto capacity = other.capacity(); + m_begin = reinterpret_cast(other.is_small() ? m_buffer : std::malloc(sizeof(T) * capacity)); + uninitialized_copy_n(other.begin, size, this->m_begin); + m_end = m_begin + size; + m_max = m_begin + capacity; + } + + small_vector(small_vector&& other) noexcept + { + if(other.is_small()) + { + m_begin = reinterpret_cast(m_buffer); + uninitialized_relocate_n(other.m_buffer, other.size(), m_buffer); + m_end = m_begin + other.size(); + m_max = m_begin + N; + } + else + { + m_begin = other.m_begin; + m_end = other.m_end; + m_max = other.m_max; + } + other.m_begin = reinterpret_cast(other.m_buffer); + other.m_end = other.m_begin; + other.m_max = other.m_begin + N; + } + + small_vector& operator=(const small_vector& other) noexcept + { + if (this != &other) + { + ~small_vector(); + ::new (this) small_vector(other); + } + return *this; + } + + small_vector& operator=(small_vector&& other) noexcept + { + if (this != &other) + { + ~small_vector(); + :: new (this) small_vector(std::move(other)); + } + return *this; + } + + ~small_vector() + { + std::destroy(m_begin, m_end); + if (!is_small()) std::free(m_begin); + } + + template + void emplace_back(Args&& ...args) noexcept + { + if (m_end == m_max) + { + const auto new_capacity = capacity() * 2; + const auto size = this->size(); + if (!is_small()) + { + if constexpr (is_trivially_relocatable_v) + { + m_begin = (pointer)std::realloc(m_begin, sizeof(T) * new_capacity); + } + else + { + auto new_data = (pointer) std::malloc(sizeof(T) * new_capacity); + uninitialized_relocate_n(m_begin, size, new_data); + std::free(m_begin); + m_begin = new_data; + } + } + else + { + auto new_data = (pointer) std::malloc(sizeof(T) * new_capacity); + uninitialized_relocate_n(m_buffer, size, new_data); + m_begin = new_data; + } + m_end = m_begin + size; + m_max = m_begin + new_capacity; + } + ::new(m_end) T(std::forward(args)...); + m_end++; + } + + void push_back(const T& value) { emplace_back(value); } + void push_back(T&& value) { emplace_back(std::move(value)); } + + void pop_back() + { + m_end--; + if constexpr (!std::is_trivially_destructible_v) + { + m_end->~T(); + } + } + + void clear() + { + std::destroy(m_begin, m_end); + m_end = m_begin; + } + }; + +// small_vector_no_copy_and_move + + template + class small_vector_no_copy_and_move: public small_vector + { + public: + small_vector_no_copy_and_move() = default; + small_vector_no_copy_and_move(const small_vector_no_copy_and_move& other) = delete; + small_vector_no_copy_and_move& operator=(const small_vector_no_copy_and_move& other) = delete; + small_vector_no_copy_and_move(small_vector_no_copy_and_move&& other) = delete; + small_vector_no_copy_and_move& operator=(small_vector_no_copy_and_move&& other) = delete; + }; +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy/vm.h b/dependencies/pocketpy/include/pocketpy/vm.h new file mode 100644 index 0000000..ab04baa --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy/vm.h @@ -0,0 +1,601 @@ +#pragma once + +#include "codeobject.h" +#include "common.h" +#include "frame.h" +#include "error.h" +#include "gc.h" +#include "memory.h" +#include "obj.h" +#include "str.h" +#include "tuplelist.h" +#include "dict.h" +#include "profiler.h" + + +namespace pkpy{ + +/* Stack manipulation macros */ +// https://github.com/python/cpython/blob/3.9/Python/ceval.c#L1123 +#define TOP() (s_data.top()) +#define SECOND() (s_data.second()) +#define THIRD() (s_data.third()) +#define PEEK(n) (s_data.peek(n)) +#define STACK_SHRINK(n) (s_data.shrink(n)) +#define PUSH(v) (s_data.push(v)) +#define POP() (s_data.pop()) +#define POPX() (s_data.popx()) +#define STACK_VIEW(n) (s_data.view(n)) + +typedef PyObject* (*BinaryFuncC)(VM*, PyObject*, PyObject*); + +struct NextBreakpoint{ + int callstack_size; + int lineno; + bool should_step_into; + NextBreakpoint(): callstack_size(0) {} + NextBreakpoint(int callstack_size, int lineno, bool should_step_into): callstack_size(callstack_size), lineno(lineno), should_step_into(should_step_into) {} + void _step(VM* vm); + bool empty() const { return callstack_size == 0; } +}; + +struct PyTypeInfo{ + PyObject* obj; // never be garbage collected + Type base; + PyObject* mod; // never be garbage collected + StrName name; + bool subclass_enabled; + + pod_vector annotated_fields = {}; + + // cached special methods + // unary operators + PyObject* (*m__repr__)(VM* vm, PyObject*) = nullptr; + PyObject* (*m__str__)(VM* vm, PyObject*) = nullptr; + i64 (*m__hash__)(VM* vm, PyObject*) = nullptr; + i64 (*m__len__)(VM* vm, PyObject*) = nullptr; + PyObject* (*m__iter__)(VM* vm, PyObject*) = nullptr; + PyObject* (*m__next__)(VM* vm, PyObject*) = nullptr; + PyObject* (*m__neg__)(VM* vm, PyObject*) = nullptr; + PyObject* (*m__invert__)(VM* vm, PyObject*) = nullptr; + + BinaryFuncC m__eq__ = nullptr; + BinaryFuncC m__lt__ = nullptr; + BinaryFuncC m__le__ = nullptr; + BinaryFuncC m__gt__ = nullptr; + BinaryFuncC m__ge__ = nullptr; + BinaryFuncC m__contains__ = nullptr; + + // binary operators + BinaryFuncC m__add__ = nullptr; + BinaryFuncC m__sub__ = nullptr; + BinaryFuncC m__mul__ = nullptr; + BinaryFuncC m__truediv__ = nullptr; + BinaryFuncC m__floordiv__ = nullptr; + BinaryFuncC m__mod__ = nullptr; + BinaryFuncC m__pow__ = nullptr; + BinaryFuncC m__matmul__ = nullptr; + + BinaryFuncC m__lshift__ = nullptr; + BinaryFuncC m__rshift__ = nullptr; + BinaryFuncC m__and__ = nullptr; + BinaryFuncC m__or__ = nullptr; + BinaryFuncC m__xor__ = nullptr; + + // indexer + PyObject* (*m__getitem__)(VM* vm, PyObject*, PyObject*) = nullptr; + void (*m__setitem__)(VM* vm, PyObject*, PyObject*, PyObject*) = nullptr; + void (*m__delitem__)(VM* vm, PyObject*, PyObject*) = nullptr; + + // attributes + void (*m__setattr__)(VM* vm, PyObject*, StrName, PyObject*) = nullptr; + PyObject* (*m__getattr__)(VM* vm, PyObject*, StrName) = nullptr; + bool (*m__delattr__)(VM* vm, PyObject*, StrName) = nullptr; + + // backdoors + void (*on_end_subclass)(VM* vm, PyTypeInfo*) = nullptr; +}; + +typedef void(*PrintFunc)(const char*, int); + +class VM { + PK_ALWAYS_PASS_BY_POINTER(VM) + + VM* vm; // self reference for simplify code +public: + ManagedHeap heap; + ValueStack s_data; + CallStack callstack; + std::vector _all_types; + + NameDict _modules; // loaded modules + std::map _lazy_modules; // lazy loaded modules + + struct{ + PyObject* error; + stack_no_copy s_view; + } _c; + + PyObject* None; + PyObject* True; + PyObject* False; + PyObject* NotImplemented; // unused + PyObject* Ellipsis; + PyObject* builtins; // builtins module + PyObject* StopIteration; + PyObject* _main; // __main__ module + + PyObject* _last_exception; // last exception + PyObject* _curr_class; // current class being defined + + // this is for repr() recursion detection (no need to mark) + std::set _repr_recursion_set; + + // cached code objects for FSTRING_EVAL + std::map _cached_codes; + + // typeid -> Type + std::map _cxx_typeid_map; + + void (*_ceval_on_step)(VM*, Frame*, Bytecode bc) = nullptr; + + LineProfiler* _profiler = nullptr; + NextBreakpoint _next_breakpoint; + + PrintFunc _stdout; + PrintFunc _stderr; + unsigned char* (*_import_handler)(const char*, int, int*); + + // for quick access + static constexpr Type tp_object=0, tp_type=1; + static constexpr Type tp_int=kTpIntIndex, tp_float=kTpFloatIndex, tp_bool=4, tp_str=5; + static constexpr Type tp_list=6, tp_tuple=7; + static constexpr Type tp_slice=8, tp_range=9, tp_module=10; + static constexpr Type tp_function=11, tp_native_func=12, tp_bound_method=13; + + static constexpr Type tp_super=14, tp_exception=15, tp_bytes=16, tp_mappingproxy=17; + static constexpr Type tp_dict=18, tp_property=19, tp_star_wrapper=20; + static constexpr Type tp_staticmethod=21, tp_classmethod=22; + + PyObject* cached_object__new__; + + const bool enable_os; + + VM(bool enable_os=true); + + void set_main_argv(int argc, char** argv); + void _breakpoint(); + + Frame* top_frame(){ + return &callstack.top(); + } + + void _pop_frame(){ + s_data.reset(callstack.top()._sp_base); + callstack.pop(); + + if(!_next_breakpoint.empty() && callstack.size()<_next_breakpoint.callstack_size){ + _next_breakpoint = NextBreakpoint(); + } + } + + PyObject* py_str(PyObject* obj); + PyObject* py_repr(PyObject* obj); + PyObject* py_json(PyObject* obj); + PyObject* py_iter(PyObject* obj); + + std::pair _cast_array(PyObject* obj); + + PyObject* find_name_in_mro(Type cls, StrName name); + bool isinstance(PyObject* obj, Type base); + bool issubclass(Type cls, Type base); + + CodeObject_ compile(std::string_view source, const Str& filename, CompileMode mode, bool unknown_global_scope=false); + Str precompile(std::string_view source, const Str& filename, CompileMode mode); + + PyObject* exec(std::string_view source, Str filename, CompileMode mode, PyObject* _module=nullptr); + PyObject* exec(std::string_view source); + PyObject* eval(std::string_view source); + + template + PyObject* _exec(Args&&... args){ + callstack.emplace(s_data._sp, std::forward(args)...); + return _run_top_frame(); + } + + void _push_varargs(){} + void _push_varargs(PyObject* _0){ PUSH(_0); } + void _push_varargs(PyObject* _0, PyObject* _1){ PUSH(_0); PUSH(_1); } + void _push_varargs(PyObject* _0, PyObject* _1, PyObject* _2){ PUSH(_0); PUSH(_1); PUSH(_2); } + void _push_varargs(PyObject* _0, PyObject* _1, PyObject* _2, PyObject* _3){ PUSH(_0); PUSH(_1); PUSH(_2); PUSH(_3); } + + virtual void stdout_write(const Str& s){ + _stdout(s.data, s.size); + } + + virtual void stderr_write(const Str& s){ + _stderr(s.data, s.size); + } + + template + PyObject* call(PyObject* callable, Args&&... args){ + PUSH(callable); + PUSH(PY_NULL); + _push_varargs(args...); + return vectorcall(sizeof...(args)); + } + + template + PyObject* call_method(PyObject* self, PyObject* callable, Args&&... args){ + PUSH(callable); + PUSH(self); + _push_varargs(args...); + return vectorcall(sizeof...(args)); + } + + template + PyObject* call_method(PyObject* self, StrName name, Args&&... args){ + PyObject* callable = get_unbound_method(self, name, &self); + return call_method(self, callable, args...); + } + + PyObject* new_type_object(PyObject* mod, StrName name, Type base, bool subclass_enabled=true); + Type _new_type_object(StrName name, Type base=0, bool subclass_enabled=false); + const PyTypeInfo* _inst_type_info(PyObject* obj); + + void bind__repr__(Type type, PyObject* (*f)(VM*, PyObject*)); + void bind__str__(Type type, PyObject* (*f)(VM*, PyObject*)); + void bind__iter__(Type type, PyObject* (*f)(VM*, PyObject*)); + void bind__next__(Type type, PyObject* (*f)(VM*, PyObject*)); + void bind__neg__(Type type, PyObject* (*f)(VM*, PyObject*)); + void bind__invert__(Type type, PyObject* (*f)(VM*, PyObject*)); + void bind__hash__(Type type, i64 (*f)(VM* vm, PyObject*)); + void bind__len__(Type type, i64 (*f)(VM* vm, PyObject*)); + + + void bind__eq__(Type type, BinaryFuncC f); + void bind__lt__(Type type, BinaryFuncC f); + void bind__le__(Type type, BinaryFuncC f); + void bind__gt__(Type type, BinaryFuncC f); + void bind__ge__(Type type, BinaryFuncC f); + void bind__contains__(Type type, BinaryFuncC f); + + void bind__add__(Type type, BinaryFuncC f); + void bind__sub__(Type type, BinaryFuncC f); + void bind__mul__(Type type, BinaryFuncC f); + void bind__truediv__(Type type, BinaryFuncC f); + void bind__floordiv__(Type type, BinaryFuncC f); + void bind__mod__(Type type, BinaryFuncC f); + void bind__pow__(Type type, BinaryFuncC f); + void bind__matmul__(Type type, BinaryFuncC f); + + void bind__lshift__(Type type, BinaryFuncC f); + void bind__rshift__(Type type, BinaryFuncC f); + void bind__and__(Type type, BinaryFuncC f); + void bind__or__(Type type, BinaryFuncC f); + void bind__xor__(Type type, BinaryFuncC f); + + void bind__getitem__(Type type, PyObject* (*f)(VM*, PyObject*, PyObject*)); + void bind__setitem__(Type type, void (*f)(VM*, PyObject*, PyObject*, PyObject*)); + void bind__delitem__(Type type, void (*f)(VM*, PyObject*, PyObject*)); + + bool py_eq(PyObject* lhs, PyObject* rhs); + // new in v1.2.9 + bool py_lt(PyObject* lhs, PyObject* rhs); + bool py_le(PyObject* lhs, PyObject* rhs); + bool py_gt(PyObject* lhs, PyObject* rhs); + bool py_ge(PyObject* lhs, PyObject* rhs); + bool py_ne(PyObject* lhs, PyObject* rhs) { return !py_eq(lhs, rhs); } + + template + PyObject* bind_constructor(__T&& type, NativeFuncC fn) { + static_assert(ARGC==-1 || ARGC>=1); + return bind_func(std::forward<__T>(type), __new__, fn); + } + + template + PyObject* bind_notimplemented_constructor(__T&& type) { + return bind_func<-1>(std::forward<__T>(type), __new__, [](VM* vm, ArgsView args){ + vm->NotImplementedError(); + return vm->None; + }); + } + + i64 normalized_index(i64 index, int size); + PyObject* py_next(PyObject* obj); + bool py_callable(PyObject* obj); + + /***** Error Reporter *****/ + void _raise(bool re_raise=false); + + void _builtin_error(StrName type); + void _builtin_error(StrName type, PyObject* arg); + void _builtin_error(StrName type, const Str& msg); + + void StackOverflowError() { _builtin_error("StackOverflowError"); } + void IOError(const Str& msg) { _builtin_error("IOError", msg); } + void NotImplementedError(){ _builtin_error("NotImplementedError"); } + void TypeError(const Str& msg){ _builtin_error("TypeError", msg); } + void IndexError(const Str& msg){ _builtin_error("IndexError", msg); } + void ValueError(const Str& msg){ _builtin_error("ValueError", msg); } + void RuntimeError(const Str& msg){ _builtin_error("RuntimeError", msg); } + void ZeroDivisionError(const Str& msg){ _builtin_error("ZeroDivisionError", msg); } + void ZeroDivisionError(){ _builtin_error("ZeroDivisionError", "division by zero"); } + void NameError(StrName name){ _builtin_error("NameError", _S("name ", name.escape() + " is not defined")); } + void UnboundLocalError(StrName name){ _builtin_error("UnboundLocalError", _S("local variable ", name.escape() + " referenced before assignment")); } + void KeyError(PyObject* obj){ _builtin_error("KeyError", obj); } + void ImportError(const Str& msg){ _builtin_error("ImportError", msg); } + + void BinaryOptError(const char* op, PyObject* _0, PyObject* _1); + void AttributeError(PyObject* obj, StrName name); + void AttributeError(const Str& msg){ _builtin_error("AttributeError", msg); } + + void check_type(PyObject* obj, Type type){ + if(is_type(obj, type)) return; + TypeError("expected " + _type_name(vm, type).escape() + ", got " + _type_name(vm, _tp(obj)).escape()); + } + + [[deprecated("use check_type() instead")]] + void check_non_tagged_type(PyObject* obj, Type type){ + return check_type(obj, type); + } + + void check_compatible_type(PyObject* obj, Type type){ + if(isinstance(obj, type)) return; + TypeError("expected " + _type_name(vm, type).escape() + ", got " + _type_name(vm, _tp(obj)).escape()); + } + + PyObject* _t(Type t){ + return _all_types[t.index].obj; + } + + Type _tp(PyObject* obj){ + if(!is_tagged(obj)) return obj->type; + return tp_int; + } + + PyObject* _t(PyObject* obj){ + return _all_types[_tp(obj).index].obj; + } + + struct ImportContext{ + std::vector pending; + pod_vector pending_is_init; // a.k.a __init__.py + + struct Temp{ + PK_ALWAYS_PASS_BY_POINTER(Temp) + + ImportContext* ctx; + Temp(ImportContext* ctx, Str name, bool is_init) : ctx(ctx){ + ctx->pending.push_back(name); + ctx->pending_is_init.push_back(is_init); + } + ~Temp(){ + ctx->pending.pop_back(); + ctx->pending_is_init.pop_back(); + } + }; + + Temp scope(Str name, bool is_init){ + return {this, name, is_init}; + } + }; + + ImportContext _import_context; + PyObject* py_import(Str path, bool throw_err=true); + virtual ~VM(); + +#if PK_DEBUG_CEVAL_STEP + void _log_s_data(const char* title = nullptr); +#endif + void _unpack_as_list(ArgsView args, List& list); + void _unpack_as_dict(ArgsView args, Dict& dict); + PyObject* vectorcall(int ARGC, int KWARGC=0, bool op_call=false); + PyObject* py_negate(PyObject* obj); + bool py_bool(PyObject* obj); + i64 py_hash(PyObject* obj); + PyObject* py_list(PyObject*); + PyObject* new_module(Str name, Str package=""); + Str disassemble(CodeObject_ co); + void init_builtin_types(); + PyObject* getattr(PyObject* obj, StrName name, bool throw_err=true); + void delattr(PyObject* obj, StrName name); + PyObject* get_unbound_method(PyObject* obj, StrName name, PyObject** self, bool throw_err=true, bool fallback=false); + void parse_int_slice(const Slice& s, int length, int& start, int& stop, int& step); + PyObject* _format_string(Str, PyObject*); + void setattr(PyObject* obj, StrName name, PyObject* value); + template + PyObject* bind_method(Type, StrName, NativeFuncC); + template + PyObject* bind_method(PyObject*, StrName, NativeFuncC); + template + PyObject* bind_func(PyObject*, StrName, NativeFuncC, UserData userdata={}, BindType bt=BindType::DEFAULT); + void _error(PyObject*); + PyObject* _run_top_frame(); + void post_init(); + PyObject* _py_generator(Frame&& frame, ArgsView buffer); + void _prepare_py_call(PyObject**, ArgsView, ArgsView, const FuncDecl_&); + // new style binding api + PyObject* bind(PyObject*, const char*, const char*, NativeFuncC, UserData userdata={}, BindType bt=BindType::DEFAULT); + PyObject* bind(PyObject*, const char*, NativeFuncC, UserData userdata={}, BindType bt=BindType::DEFAULT); + PyObject* bind_property(PyObject*, const char*, NativeFuncC fget, NativeFuncC fset=nullptr); + + template + Type _find_type_in_cxx_typeid_map(){ + auto it = _cxx_typeid_map.find(typeid(T)); + if(it == _cxx_typeid_map.end()){ + #if __GNUC__ || __clang__ + throw std::runtime_error(__PRETTY_FUNCTION__ + std::string(" failed: T not found")); + #elif _MSC_VER + throw std::runtime_error(__FUNCSIG__ + std::string(" failed: T not found")); + #else + throw std::runtime_error("_find_type_in_cxx_typeid_map() failed: T not found"); + #endif + } + return it->second; + } +}; + + +template +inline constexpr bool is_immutable_v = is_integral_v || is_floating_point_v + || std::is_same_v || std::is_same_v || std::is_same_v || std::is_same_v + || std::is_same_v || std::is_same_v + || std::is_pointer_v || std::is_enum_v; + +template constexpr Type _find_type_in_const_cxx_typeid_map(){ return -1; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_str; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_list; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_tuple; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_function; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_native_func; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_bound_method; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_range; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_slice; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_exception; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_bytes; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_mappingproxy; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_dict; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_property; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_star_wrapper; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_staticmethod; } +template<> constexpr Type _find_type_in_const_cxx_typeid_map(){ return VM::tp_classmethod; } + +template +PyObject* py_var(VM* vm, __T&& value){ + using T = std::decay_t<__T>; + + static_assert(!std::is_same_v, "py_var(VM*, PyObject*) is not allowed"); + + if constexpr(std::is_same_v || std::is_same_v || std::is_same_v){ + // str (shortcuts) + return VAR(Str(std::forward<__T>(value))); + }else if constexpr(std::is_same_v){ + // NoneType + return vm->None; + }else if constexpr(std::is_same_v){ + // bool + return value ? vm->True : vm->False; + }else if constexpr(is_integral_v){ + // int + i64 val = static_cast(std::forward<__T>(value)); + if(val >= Number::kMinSmallInt && val <= Number::kMaxSmallInt){ + val = (val << 2) | 0b10; + return reinterpret_cast(val); + }else{ + return vm->heap.gcnew(vm->tp_int, val); + } + }else if constexpr(is_floating_point_v){ + // float + f64 val = static_cast(std::forward<__T>(value)); + return vm->heap.gcnew(vm->tp_float, val); + }else if constexpr(std::is_pointer_v){ + return from_void_p(vm, (void*)value); + }else{ + constexpr Type const_type = _find_type_in_const_cxx_typeid_map(); + if constexpr(const_type.index >= 0){ + return vm->heap.gcnew(const_type, std::forward<__T>(value)); + } + } + Type type = vm->_find_type_in_cxx_typeid_map(); + return vm->heap.gcnew(type, std::forward<__T>(value)); +} + +template +__T _py_cast__internal(VM* vm, PyObject* obj) { + static_assert(!std::is_rvalue_reference_v<__T>, "rvalue reference is not allowed"); + + using T = std::decay_t<__T>; + + if constexpr(std::is_same_v || std::is_same_v){ + static_assert(!std::is_reference_v<__T>); + // str (shortcuts) + if(obj == vm->None) return nullptr; + if constexpr(with_check) vm->check_type(obj, vm->tp_str); + return PK_OBJ_GET(Str, obj).c_str(); + }else if constexpr(std::is_same_v){ + static_assert(!std::is_reference_v<__T>); + // bool + if constexpr(with_check){ + if(obj == vm->True) return true; + if(obj == vm->False) return false; + vm->TypeError("expected 'bool', got " + _type_name(vm, vm->_tp(obj)).escape()); + }else{ + return obj == vm->True; + } + }else if constexpr(is_integral_v){ + static_assert(!std::is_reference_v<__T>); + // int + if constexpr(with_check){ + if(is_small_int(obj)) return (T)(PK_BITS(obj) >> 2); + if(is_heap_int(obj)) return (T)PK_OBJ_GET(i64, obj); + vm->TypeError("expected 'int', got " + _type_name(vm, vm->_tp(obj)).escape()); + }else{ + if(is_small_int(obj)) return (T)(PK_BITS(obj) >> 2); + return (T)PK_OBJ_GET(i64, obj); + } + }else if constexpr(is_floating_point_v){ + static_assert(!std::is_reference_v<__T>); + // float + if(is_float(obj)) return PK_OBJ_GET(f64, obj); + i64 bits; + if(try_cast_int(obj, &bits)) return (float)bits; + vm->TypeError("expected 'int' or 'float', got " + _type_name(vm, vm->_tp(obj)).escape()); + }else if constexpr(std::is_enum_v){ + static_assert(!std::is_reference_v<__T>); + return (__T)_py_cast__internal(vm, obj); + }else if constexpr(std::is_pointer_v){ + static_assert(!std::is_reference_v<__T>); + return to_void_p(vm, obj); + }else{ + constexpr Type const_type = _find_type_in_const_cxx_typeid_map(); + if constexpr(const_type.index >= 0){ + if constexpr(with_check){ + if constexpr(std::is_same_v){ + // Exception is `subclass_enabled` + vm->check_compatible_type(obj, const_type); + }else{ + vm->check_type(obj, const_type); + } + } + return PK_OBJ_GET(T, obj); + } + } + Type type = vm->_find_type_in_cxx_typeid_map(); + if constexpr(with_check) vm->check_compatible_type(obj, type); + return PK_OBJ_GET(T, obj); +} + +template +__T py_cast(VM* vm, PyObject* obj) { return _py_cast__internal<__T, true>(vm, obj); } +template +__T _py_cast(VM* vm, PyObject* obj) { return _py_cast__internal<__T, false>(vm, obj); } + + +template +PyObject* VM::bind_method(Type type, StrName name, NativeFuncC fn) { + PyObject* nf = VAR(NativeFunc(fn, ARGC, true)); + _t(type)->attr().set(name, nf); + return nf; +} + +template +PyObject* VM::bind_method(PyObject* obj, StrName name, NativeFuncC fn) { + check_type(obj, tp_type); + return bind_method(PK_OBJ_GET(Type, obj), name, fn); +} + +template +PyObject* VM::bind_func(PyObject* obj, StrName name, NativeFuncC fn, UserData userdata, BindType bt) { + PyObject* nf = VAR(NativeFunc(fn, ARGC, false)); + PK_OBJ_GET(NativeFunc, nf).set_userdata(userdata); + switch(bt){ + case BindType::DEFAULT: break; + case BindType::STATICMETHOD: nf = VAR(StaticMethod(nf)); break; + case BindType::CLASSMETHOD: nf = VAR(ClassMethod(nf)); break; + } + obj->attr().set(name, nf); + return nf; +} + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/include/pocketpy_c.h b/dependencies/pocketpy/include/pocketpy_c.h new file mode 100644 index 0000000..9e662f8 --- /dev/null +++ b/dependencies/pocketpy/include/pocketpy_c.h @@ -0,0 +1,3 @@ +#pragma once + +#include "pocketpy/pocketpy_c.h" \ No newline at end of file diff --git a/dependencies/pocketpy/include/typings/__builtins.pyi b/dependencies/pocketpy/include/typings/__builtins.pyi new file mode 100644 index 0000000..c33a3f4 --- /dev/null +++ b/dependencies/pocketpy/include/typings/__builtins.pyi @@ -0,0 +1,7 @@ +from typing import Any + +def next(iter) -> Any | StopIteration: + ... + +def _enable_instance_dict(obj) -> None: + ... diff --git a/dependencies/pocketpy/include/typings/array2d.pyi b/dependencies/pocketpy/include/typings/array2d.pyi new file mode 100644 index 0000000..4c37a09 --- /dev/null +++ b/dependencies/pocketpy/include/typings/array2d.pyi @@ -0,0 +1,54 @@ +from typing import Callable, Any, Generic, TypeVar, Literal, overload + +T = TypeVar('T') + +Neighborhood = Literal['Moore', 'von Neumann'] + +class array2d(Generic[T]): + def __init__(self, n_cols: int, n_rows: int, default=None): ... + @property + def width(self) -> int: ... + @property + def height(self) -> int: ... + @property + def numel(self) -> int: ... + + def is_valid(self, col: int, row: int) -> bool: ... + + def get(self, col: int, row: int, default=None): ... + + @overload + def __getitem__(self, index: tuple[int, int]): ... + @overload + def __getitem__(self, index: tuple[slice, slice]) -> 'array2d[T]': ... + @overload + def __setitem__(self, index: tuple[int, int], value: T): ... + @overload + def __setitem__(self, index: tuple[slice, slice], value: int | float | str | bool | None | 'array2d[T]'): ... + + def __len__(self) -> int: ... + def __eq__(self, other: 'array2d') -> bool: ... + def __ne__(self, other: 'array2d') -> bool: ... + def __repr__(self): ... + + def tolist(self) -> list[list[T]]: ... + + def map(self, f: Callable[[T], Any]) -> 'array2d': ... + def copy(self) -> 'array2d[T]': ... + + def fill_(self, value: T) -> None: ... + def apply_(self, f: Callable[[T], T]) -> None: ... + def copy_(self, other: 'array2d[T] | list[T]') -> None: ... + + # algorithms + def count(self, value: T) -> int: + """Counts the number of cells with the given value.""" + + def count_neighbors(self, value: T, neighborhood: Neighborhood = 'Moore') -> 'array2d[int]': + """Counts the number of neighbors with the given value for each cell.""" + + def find_bounding_rect(self, value: T) -> tuple[int, int, int, int] | None: + """Finds the bounding rectangle of the given value. + + Returns a tuple `(x, y, width, height)` or `None` if the value is not found. + """ diff --git a/dependencies/pocketpy/include/typings/c.pyi b/dependencies/pocketpy/include/typings/c.pyi new file mode 100644 index 0000000..1676da8 --- /dev/null +++ b/dependencies/pocketpy/include/typings/c.pyi @@ -0,0 +1,117 @@ +from typing import Generic, TypeVar + +def malloc(size: int) -> 'void_p': ... +def free(ptr: 'void_p') -> None: ... +def memset(ptr: 'void_p', value: int, size: int) -> None: ... +def memcpy(dst: 'void_p', src: 'void_p', size: int) -> None: ... + +T = TypeVar('T') +Tp = TypeVar('Tp', bound='void_p') + +def p_cast(ptr: 'void_p', cls: type[T]) -> T: + """Cast a pointer to a specific type.""" +def p_value(ptr: 'void_p') -> int: + """Get the value of a pointer.""" +def pp_deref(ptr: Tp) -> Tp: + """Dereference a double pointer.""" + +class void_p: + def __init__(self, addr: int): ... + def __eq__(self, other: 'void_p') -> bool: ... + def __ne__(self, other: 'void_p') -> bool: ... + def __lt__(self, other: 'void_p') -> bool: ... + def __le__(self, other: 'void_p') -> bool: ... + def __gt__(self, other: 'void_p') -> bool: ... + def __ge__(self, other: 'void_p') -> bool: ... + def __hash__(self) -> int: ... + def __repr__(self) -> str: ... + +class Pointer(Generic[T], void_p): + def read(self) -> T: ... + def write(self, value: T) -> None: ... + def __getitem__(self, index: int) -> T: ... + def __setitem__(self, index: int, value: T) -> None: ... + +class char_p(Pointer[int]): + def read_string(self) -> str: ... + def write_string(self, value: str) -> None: ... + +class uchar_p(Pointer[int]): pass +class short_p(Pointer[int]): pass +class ushort_p(Pointer[int]): pass +class int_p(Pointer[int]): pass +class uint_p(Pointer[int]): pass +class long_p(Pointer[int]): pass +class ulong_p(Pointer[int]): pass +class longlong_p(Pointer[int]): pass +class ulonglong_p(Pointer[int]): pass +class float_p(Pointer[float]): pass +class double_p(Pointer[float]): pass +class bool_p(Pointer[bool]): pass + +class struct: + def __init__(self, size: int): ... + def addr(self) -> 'void_p': ... + def copy(self) -> 'struct': ... + def sizeof(self) -> int: ... + def __eq__(self, other: 'struct') -> bool: ... + def __ne__(self, other: 'struct') -> bool: ... + + def hex(self) -> str: ... + @staticmethod + def fromhex(s: str) -> 'struct': ... + + def read_char(self, offset=0) -> int: ... + def read_uchar(self, offset=0) -> int: ... + def read_short(self, offset=0) -> int: ... + def read_ushort(self, offset=0) -> int: ... + def read_int(self, offset=0) -> int: ... + def read_uint(self, offset=0) -> int: ... + def read_long(self, offset=0) -> int: ... + def read_ulong(self, offset=0) -> int: ... + def read_longlong(self, offset=0) -> int: ... + def read_ulonglong(self, offset=0) -> int: ... + def read_float(self, offset=0) -> float: ... + def read_double(self, offset=0) -> float: ... + def read_bool(self, offset=0) -> bool: ... + def read_void_p(self, offset=0) -> 'void_p': ... + def write_char(self, value: int, offset=0) -> None: ... + def write_uchar(self, value: int, offset=0) -> None: ... + def write_short(self, value: int, offset=0) -> None: ... + def write_ushort(self, value: int, offset=0) -> None: ... + def write_int(self, value: int, offset=0) -> None: ... + def write_uint(self, value: int, offset=0) -> None: ... + def write_long(self, value: int, offset=0) -> None: ... + def write_ulong(self, value: int, offset=0) -> None: ... + def write_longlong(self, value: int, offset=0) -> None: ... + def write_ulonglong(self, value: int, offset=0) -> None: ... + def write_float(self, value: float, offset=0) -> None: ... + def write_double(self, value: float, offset=0) -> None: ... + def write_bool(self, value: bool, offset=0) -> None: ... + def write_void_p(self, value: 'void_p', offset=0) -> None: ... + +def char_(val: int) -> struct: ... +def uchar_(val: int) -> struct: ... +def short_(val: int) -> struct: ... +def ushort_(val: int) -> struct: ... +def int_(val: int) -> struct: ... +def uint_(val: int) -> struct: ... +def long_(val: int) -> struct: ... +def ulong_(val: int) -> struct: ... +def longlong_(val: int) -> struct: ... +def ulonglong_(val: int) -> struct: ... +def float_(val: float) -> struct: ... +def double_(val: float) -> struct: ... +def bool_(val: bool) -> struct: ... + +class _StructLike(Generic[T]): + def to_struct(self) -> struct: ... + @classmethod + def from_struct(cls, s: struct) -> T: ... + + def addr(self) -> 'Pointer[T]': ... + def copy(self) -> T: ... + def sizeof(self) -> int: ... + def __eq__(self, other: T) -> bool: ... + def __ne__(self, other: T) -> bool: ... + diff --git a/dependencies/pocketpy/include/typings/cjson.pyi b/dependencies/pocketpy/include/typings/cjson.pyi new file mode 100644 index 0000000..1861d4b --- /dev/null +++ b/dependencies/pocketpy/include/typings/cjson.pyi @@ -0,0 +1,2 @@ +def loads(data: str | bytes) -> object: ... +def dumps(obj: object) -> str: ... diff --git a/dependencies/pocketpy/include/typings/easing.pyi b/dependencies/pocketpy/include/typings/easing.pyi new file mode 100644 index 0000000..9306e0c --- /dev/null +++ b/dependencies/pocketpy/include/typings/easing.pyi @@ -0,0 +1,31 @@ +def Linear(t: float) -> float: ... +def InSine(t: float) -> float: ... +def OutSine(t: float) -> float: ... +def InOutSine(t: float) -> float: ... +def InQuad(t: float) -> float: ... +def OutQuad(t: float) -> float: ... +def InOutQuad(t: float) -> float: ... +def InCubic(t: float) -> float: ... +def OutCubic(t: float) -> float: ... +def InOutCubic(t: float) -> float: ... +def InQuart(t: float) -> float: ... +def OutQuart(t: float) -> float: ... +def InOutQuart(t: float) -> float: ... +def InQuint(t: float) -> float: ... +def OutQuint(t: float) -> float: ... +def InOutQuint(t: float) -> float: ... +def InExpo(t: float) -> float: ... +def OutExpo(t: float) -> float: ... +def InOutExpo(t: float) -> float: ... +def InCirc(t: float) -> float: ... +def OutCirc(t: float) -> float: ... +def InOutCirc(t: float) -> float: ... +def InBack(t: float) -> float: ... +def OutBack(t: float) -> float: ... +def InOutBack(t: float) -> float: ... +def InElastic(t: float) -> float: ... +def OutElastic(t: float) -> float: ... +def InOutElastic(t: float) -> float: ... +def InBounce(t: float) -> float: ... +def OutBounce(t: float) -> float: ... +def InOutBounce(t: float) -> float: ... diff --git a/dependencies/pocketpy/include/typings/linalg.pyi b/dependencies/pocketpy/include/typings/linalg.pyi new file mode 100644 index 0000000..dc7f20c --- /dev/null +++ b/dependencies/pocketpy/include/typings/linalg.pyi @@ -0,0 +1,167 @@ +from typing import overload +from c import _StructLike, float_p + +class vec2(_StructLike['vec2']): + x: float + y: float + + def __init__(self, x: float, y: float) -> None: ... + def __add__(self, other: vec2) -> vec2: ... + def __sub__(self, other: vec2) -> vec2: ... + def __getitem__(self, index: int) -> float: ... + + @overload + def __mul__(self, other: float) -> vec2: ... + @overload + def __mul__(self, other: vec2) -> vec2: ... + + def __rmul__(self, other: float) -> vec2: ... + def __truediv__(self, other: float) -> vec2: ... + def dot(self, other: vec2) -> float: ... + def cross(self, other: vec2) -> float: ... + def length(self) -> float: ... + def length_squared(self) -> float: ... + def normalize(self) -> vec2: ... + def rotate(self, radians: float) -> vec2: ... + + def copy_(self, other: vec2) -> None: ... + def normalize_(self) -> None: ... + def rotate_(self, radians: float) -> None: ... + + @staticmethod + def angle(__from: vec2, __to: vec2) -> float: + """Returns the angle in radians between vectors `from` and `to`. + + The result range is `[-pi, pi]`. + + + if y axis is top to bottom, positive value means clockwise + + if y axis is bottom to top, positive value means counter-clockwise + """ + + @staticmethod + def smooth_damp(current: vec2, target: vec2, current_velocity_: vec2, smooth_time: float, max_speed: float, delta_time: float) -> vec2: + ... + +class vec3(_StructLike['vec3']): + x: float + y: float + z: float + + def __init__(self, x: float, y: float, z: float) -> None: ... + def __add__(self, other: vec3) -> vec3: ... + def __sub__(self, other: vec3) -> vec3: ... + def __getitem__(self, index: int) -> float: ... + + @overload + def __mul__(self, other: float) -> vec3: ... + @overload + def __mul__(self, other: vec3) -> vec3: ... + + def __rmul__(self, other: float) -> vec3: ... + def __truediv__(self, other: float) -> vec3: ... + def dot(self, other: vec3) -> float: ... + def cross(self, other: vec3) -> float: ... + def length(self) -> float: ... + def length_squared(self) -> float: ... + def normalize(self) -> vec3: ... + + def copy_(self, other: vec3) -> None: ... + def normalize_(self) -> None: ... + +class vec4(_StructLike['vec4']): + x: float + y: float + z: float + w: float + + def __init__(self, x: float, y: float, z: float, w: float) -> None: ... + def __add__(self, other: vec4) -> vec4: ... + def __sub__(self, other: vec4) -> vec4: ... + def __getitem__(self, index: int) -> float: ... + + @overload + def __mul__(self, other: float) -> vec4: ... + @overload + def __mul__(self, other: vec4) -> vec4: ... + + def __rmul__(self, other: float) -> vec4: ... + def __truediv__(self, other: float) -> vec4: ... + def dot(self, other: vec4) -> float: ... + def length(self) -> float: ... + def length_squared(self) -> float: ... + def normalize(self) -> vec4: ... + + def copy_(self, other: vec4) -> None: ... + def normalize_(self) -> None: ... + +class mat3x3(_StructLike['mat3x3']): + _11: float + _12: float + _13: float + _21: float + _22: float + _23: float + _31: float + _32: float + _33: float + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, _11, _12, _13, _21, _22, _23, _31, _32, _33) -> None: ... + @overload + def __init__(self, a: list[float]): ... + + def determinant(self) -> float: ... + def invert(self) -> mat3x3: ... + def transpose(self) -> mat3x3: ... + + def __getitem__(self, index: tuple[int, int]) -> float: ... + def __setitem__(self, index: tuple[int, int], value: float) -> None: ... + def __add__(self, other: mat3x3) -> mat3x3: ... + def __sub__(self, other: mat3x3) -> mat3x3: ... + def __mul__(self, other: float) -> mat3x3: ... + def __rmul__(self, other: float) -> mat3x3: ... + def __truediv__(self, other: float) -> mat3x3: ... + + def __invert__(self) -> mat3x3: ... + @overload + def __matmul__(self, other: mat3x3) -> mat3x3: ... + @overload + def __matmul__(self, other: vec3) -> vec3: ... + + def matmul(self, other: mat3x3, out: mat3x3 = None) -> mat3x3 | None: ... + + def copy_(self, other: mat3x3) -> None: ... + def invert_(self) -> None: ... + def transpose_(self) -> None: ... + + @staticmethod + def zeros() -> mat3x3: ... + @staticmethod + def ones() -> mat3x3: ... + @staticmethod + def identity() -> mat3x3: ... + + # affine transformations + @staticmethod + def trs(t: vec2, r: float, s: vec2) -> mat3x3: ... + + def copy_trs_(self, t: vec2, r: float, s: vec2) -> None: ... + def copy_t_(self, t: vec2) -> None: ... + def copy_r_(self, r: float) -> None: ... + def copy_s_(self, s: vec2) -> None: ... + + def _t(self) -> vec2: ... + def _r(self) -> float: ... + def _s(self) -> vec2: ... + + def is_affine(self) -> bool: ... + + def transform_point(self, p: vec2) -> vec2: ... + def transform_vector(self, v: vec2) -> vec2: ... + +vec2_p = float_p +vec3_p = float_p +vec4_p = float_p +mat3x3_p = float_p diff --git a/dependencies/pocketpy/include/typings/line_profiler.pyi b/dependencies/pocketpy/include/typings/line_profiler.pyi new file mode 100644 index 0000000..c35066f --- /dev/null +++ b/dependencies/pocketpy/include/typings/line_profiler.pyi @@ -0,0 +1,10 @@ +from typing import Callable + +class LineProfiler: + def __init__(self): ... + + def add_function(self, func: Callable) -> None: ... + + def runcall(self, func: Callable, *args) -> None: ... + + def print_stats(self) -> None: ... diff --git a/dependencies/pocketpy/plugins/macos/.gitignore b/dependencies/pocketpy/plugins/macos/.gitignore new file mode 100644 index 0000000..d163863 --- /dev/null +++ b/dependencies/pocketpy/plugins/macos/.gitignore @@ -0,0 +1 @@ +build/ \ No newline at end of file diff --git a/dependencies/pocketpy/prebuild.py b/dependencies/pocketpy/prebuild.py new file mode 100644 index 0000000..8d11e24 --- /dev/null +++ b/dependencies/pocketpy/prebuild.py @@ -0,0 +1,47 @@ +import os + +def get_sources(): + sources = {} + for file in sorted(os.listdir("python")): + if not file.endswith(".py"): + continue + key = file.split(".")[0] + const_char_array = [] + with open("python/" + file) as f: + # convert to char array (signed) + for c in f.read().encode('utf-8'): + if c < 128: + const_char_array.append(str(c)) + else: + const_char_array.append(str(c - 256)) + const_char_array.append('0') + const_char_array = ','.join(const_char_array) + sources[key] = '{' + const_char_array + '}' + return sources + +sources = get_sources() + +# use LF line endings instead of CRLF +with open("include/pocketpy/_generated.h", "wt", encoding='utf-8', newline='\n') as f: + data = '''#pragma once +// generated by prebuild.py + +namespace pkpy{ +''' + for key in sorted(sources.keys()): + value = sources[key] + data += f' extern const char kPythonLibs_{key}[];\n' + data += '} // namespace pkpy\n' + f.write(data) + +with open("src/_generated.cpp", "wt", encoding='utf-8', newline='\n') as f: + data = '''// generated by prebuild.py +#include "pocketpy/_generated.h" + +namespace pkpy{ +''' + for key in sorted(sources.keys()): + value = sources[key] + data += f' const char kPythonLibs_{key}[] = {value};\n' + data += '} // namespace pkpy\n' + f.write(data) diff --git a/dependencies/pocketpy/pyrightconfig.json b/dependencies/pocketpy/pyrightconfig.json new file mode 100644 index 0000000..ff7a4d6 --- /dev/null +++ b/dependencies/pocketpy/pyrightconfig.json @@ -0,0 +1,5 @@ +{ + "stubPath": "include/typings", + "reportMissingModuleSource": "none", + "pythonVersion": "3.10" +} diff --git a/dependencies/pocketpy/python/__init__.py b/dependencies/pocketpy/python/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/pocketpy/python/_enum.py b/dependencies/pocketpy/python/_enum.py new file mode 100644 index 0000000..c887977 --- /dev/null +++ b/dependencies/pocketpy/python/_enum.py @@ -0,0 +1,11 @@ +class Enum: + def __init__(self, name, value): + self.name = name + self.value = value + + def __str__(self): + return f'{type(self).__name__}.{self.name}' + + def __repr__(self): + return f'<{str(self)}: {self.value!r}>' + diff --git a/dependencies/pocketpy/python/_long.py b/dependencies/pocketpy/python/_long.py new file mode 100644 index 0000000..0e5aa3d --- /dev/null +++ b/dependencies/pocketpy/python/_long.py @@ -0,0 +1,352 @@ +# after v1.2.2, int is always 64-bit +PyLong_SHIFT = 60//2 - 1 + +PyLong_BASE = 2 ** PyLong_SHIFT +PyLong_MASK = PyLong_BASE - 1 +PyLong_DECIMAL_SHIFT = 4 +PyLong_DECIMAL_BASE = 10 ** PyLong_DECIMAL_SHIFT + +############################################################## + +def ulong_fromint(x: int): + # return a list of digits and sign + if x == 0: return [0], 1 + sign = 1 if x > 0 else -1 + if sign < 0: x = -x + res = [] + while x: + res.append(x & PyLong_MASK) + x >>= PyLong_SHIFT + return res, sign + +def ulong_cmp(a: list, b: list) -> int: + # return 1 if a>b, -1 if a len(b): return 1 + if len(a) < len(b): return -1 + for i in range(len(a)-1, -1, -1): + if a[i] > b[i]: return 1 + if a[i] < b[i]: return -1 + return 0 + +def ulong_pad_(a: list, size: int): + # pad leading zeros to have `size` digits + delta = size - len(a) + if delta > 0: + a.extend([0] * delta) + +def ulong_unpad_(a: list): + # remove leading zeros + while len(a)>1 and a[-1]==0: + a.pop() + +def ulong_add(a: list, b: list) -> list: + res = [0] * max(len(a), len(b)) + ulong_pad_(a, len(res)) + ulong_pad_(b, len(res)) + carry = 0 + for i in range(len(res)): + carry += a[i] + b[i] + res[i] = carry & PyLong_MASK + carry >>= PyLong_SHIFT + if carry > 0: + res.append(carry) + return res + +def ulong_inc_(a: list): + a[0] += 1 + for i in range(len(a)): + if a[i] < PyLong_BASE: break + a[i] -= PyLong_BASE + if i+1 == len(a): + a.append(1) + else: + a[i+1] += 1 + + +def ulong_sub(a: list, b: list) -> list: + # a >= b + res = [] + borrow = 0 + for i in range(len(b)): + tmp = a[i] - b[i] - borrow + if tmp < 0: + tmp += PyLong_BASE + borrow = 1 + else: + borrow = 0 + res.append(tmp) + for i in range(len(b), len(a)): + tmp = a[i] - borrow + if tmp < 0: + tmp += PyLong_BASE + borrow = 1 + else: + borrow = 0 + res.append(tmp) + ulong_unpad_(res) + return res + +def ulong_divmodi(a: list, b: int): + # b > 0 + res = [] + carry = 0 + for i in range(len(a)-1, -1, -1): + carry <<= PyLong_SHIFT + carry += a[i] + res.append(carry // b) + carry %= b + res.reverse() + ulong_unpad_(res) + return res, carry + + +def ulong_divmod(a: list, b: list): + + if ulong_cmp(a, b) < 0: + return [0], a + + if len(b) == 1: + q, r = ulong_divmodi(a, b[0]) + r, _ = ulong_fromint(r) + return q, r + + max = (len(a) - len(b)) * PyLong_SHIFT + \ + (a[-1].bit_length() - b[-1].bit_length()) + + low = [0] + + high = (max // PyLong_SHIFT) * [0] + \ + [(2**(max % PyLong_SHIFT)) & PyLong_MASK] + + while ulong_cmp(low, high) < 0: + ulong_inc_(high) + mid, r = ulong_divmodi(ulong_add(low, high), 2) + if ulong_cmp(a, ulong_mul(b, mid)) >= 0: + low = mid + else: + high = ulong_sub(mid, [1]) + + q = [0] * (len(a) - len(b) + 1) + while ulong_cmp(a, ulong_mul(b, low)) >= 0: + q = ulong_add(q, low) + a = ulong_sub(a, ulong_mul(b, low)) + ulong_unpad_(q) + return q, a + +def ulong_floordivi(a: list, b: int): + # b > 0 + return ulong_divmodi(a, b)[0] + +def ulong_muli(a: list, b: int): + # b >= 0 + res = [0] * len(a) + carry = 0 + for i in range(len(a)): + carry += a[i] * b + res[i] = carry & PyLong_MASK + carry >>= PyLong_SHIFT + if carry > 0: + res.append(carry) + return res + +def ulong_mul(a: list, b: list): + N = len(a) + len(b) + # use grade-school multiplication + res = [0] * N + for i in range(len(a)): + carry = 0 + for j in range(len(b)): + carry += res[i+j] + a[i] * b[j] + res[i+j] = carry & PyLong_MASK + carry >>= PyLong_SHIFT + res[i+len(b)] = carry + ulong_unpad_(res) + return res + +def ulong_powi(a: list, b: int): + # b >= 0 + if b == 0: return [1] + res = [1] + while b: + if b & 1: + res = ulong_mul(res, a) + a = ulong_mul(a, a) + b >>= 1 + return res + +def ulong_repr(x: list) -> str: + res = [] + while len(x)>1 or x[0]>0: # non-zero + x, r = ulong_divmodi(x, PyLong_DECIMAL_BASE) + res.append(str(r).zfill(PyLong_DECIMAL_SHIFT)) + res.reverse() + s = ''.join(res) + if len(s) == 0: return '0' + if len(s) > 1: s = s.lstrip('0') + return s + +def ulong_fromstr(s: str): + if s[-1] == 'L': + s = s[:-1] + res, base = [0], [1] + if s[0] == '-': + sign = -1 + s = s[1:] + else: + sign = 1 + s = s[::-1] + for c in s: + c = ord(c) - 48 + assert 0 <= c <= 9 + res = ulong_add(res, ulong_muli(base, c)) + base = ulong_muli(base, 10) + return res, sign + +class long: + def __init__(self, x): + if type(x) is tuple: + self.digits, self.sign = x + elif type(x) is int: + self.digits, self.sign = ulong_fromint(x) + elif type(x) is float: + self.digits, self.sign = ulong_fromint(int(x)) + elif type(x) is str: + self.digits, self.sign = ulong_fromstr(x) + elif type(x) is long: + self.digits, self.sign = x.digits.copy(), x.sign + else: + raise TypeError('expected int or str') + + def __len__(self): + return len(self.digits) + + def __add__(self, other): + if type(other) is int: + other = long(other) + elif type(other) is not long: + return NotImplemented + if self.sign == other.sign: + return long((ulong_add(self.digits, other.digits), self.sign)) + else: + cmp = ulong_cmp(self.digits, other.digits) + if cmp == 0: + return long(0) + if cmp > 0: + return long((ulong_sub(self.digits, other.digits), self.sign)) + else: + return long((ulong_sub(other.digits, self.digits), other.sign)) + + def __radd__(self, other): + return self.__add__(other) + + def __sub__(self, other): + if type(other) is int: + other = long(other) + elif type(other) is not long: + return NotImplemented + if self.sign != other.sign: + return long((ulong_add(self.digits, other.digits), self.sign)) + cmp = ulong_cmp(self.digits, other.digits) + if cmp == 0: + return long(0) + if cmp > 0: + return long((ulong_sub(self.digits, other.digits), self.sign)) + else: + return long((ulong_sub(other.digits, self.digits), -other.sign)) + + def __rsub__(self, other): + if type(other) is int: + other = long(other) + elif type(other) is not long: + return NotImplemented + return other.__sub__(self) + + def __mul__(self, other): + if type(other) is int: + return long(( + ulong_muli(self.digits, abs(other)), + self.sign * (1 if other >= 0 else -1) + )) + elif type(other) is long: + return long(( + ulong_mul(self.digits, other.digits), + self.sign * other.sign + )) + return NotImplemented + + def __rmul__(self, other): + return self.__mul__(other) + + ####################################################### + def __divmod__(self, other): + if type(other) is int: + assert self.sign == 1 and other > 0 + q, r = ulong_divmodi(self.digits, other) + return long((q, 1)), r + if type(other) is long: + assert self.sign == 1 and other.sign == 1 + q, r = ulong_divmod(self.digits, other.digits) + assert len(other)>1 or other.digits[0]>0 + return long((q, 1)), long((r, 1)) + raise NotImplementedError + + def __floordiv__(self, other): + return self.__divmod__(other)[0] + + def __mod__(self, other): + return self.__divmod__(other)[1] + + def __pow__(self, other: int): + assert type(other) is int and other >= 0 + if self.sign == -1 and other & 1: + sign = -1 + else: + sign = 1 + return long((ulong_powi(self.digits, other), sign)) + + def __lshift__(self, other: int): + assert type(other) is int and other >= 0 + x = self.digits.copy() + q, r = divmod(other, PyLong_SHIFT) + x = [0]*q + x + for _ in range(r): x = ulong_muli(x, 2) + return long((x, self.sign)) + + def __rshift__(self, other: int): + assert type(other) is int and other >= 0 + x = self.digits.copy() + q, r = divmod(other, PyLong_SHIFT) + x = x[q:] + if not x: return long(0) + for _ in range(r): x = ulong_floordivi(x, 2) + return long((x, self.sign)) + + def __neg__(self): + return long((self.digits, -self.sign)) + + def __cmp__(self, other): + if type(other) is int: + other = long(other) + elif type(other) is not long: + return NotImplemented + if self.sign > other.sign: + return 1 + elif self.sign < other.sign: + return -1 + else: + return ulong_cmp(self.digits, other.digits) + + def __eq__(self, other): + return self.__cmp__(other) == 0 + def __lt__(self, other): + return self.__cmp__(other) < 0 + def __le__(self, other): + return self.__cmp__(other) <= 0 + def __gt__(self, other): + return self.__cmp__(other) > 0 + def __ge__(self, other): + return self.__cmp__(other) >= 0 + + def __repr__(self): + prefix = '-' if self.sign < 0 else '' + return prefix + ulong_repr(self.digits) + 'L' diff --git a/dependencies/pocketpy/python/_set.py b/dependencies/pocketpy/python/_set.py new file mode 100644 index 0000000..fc3bf33 --- /dev/null +++ b/dependencies/pocketpy/python/_set.py @@ -0,0 +1,80 @@ +class set: + def __init__(self, iterable=None): + iterable = iterable or [] + self._a = {} + self.update(iterable) + + def add(self, elem): + self._a[elem] = None + + def discard(self, elem): + self._a.pop(elem, None) + + def remove(self, elem): + del self._a[elem] + + def clear(self): + self._a.clear() + + def update(self, other): + for elem in other: + self.add(elem) + + def __len__(self): + return len(self._a) + + def copy(self): + return set(self._a.keys()) + + def __and__(self, other): + return {elem for elem in self if elem in other} + + def __sub__(self, other): + return {elem for elem in self if elem not in other} + + def __or__(self, other): + ret = self.copy() + ret.update(other) + return ret + + def __xor__(self, other): + _0 = self - other + _1 = other - self + return _0 | _1 + + def union(self, other): + return self | other + + def intersection(self, other): + return self & other + + def difference(self, other): + return self - other + + def symmetric_difference(self, other): + return self ^ other + + def __eq__(self, other): + if not isinstance(other, set): + return NotImplemented + return len(self ^ other) == 0 + + def isdisjoint(self, other): + return len(self & other) == 0 + + def issubset(self, other): + return len(self - other) == 0 + + def issuperset(self, other): + return len(other - self) == 0 + + def __contains__(self, elem): + return elem in self._a + + def __repr__(self): + if len(self) == 0: + return 'set()' + return '{'+ ', '.join([repr(i) for i in self._a.keys()]) + '}' + + def __iter__(self): + return iter(self._a.keys()) \ No newline at end of file diff --git a/dependencies/pocketpy/python/bisect.py b/dependencies/pocketpy/python/bisect.py new file mode 100644 index 0000000..a0df9bc --- /dev/null +++ b/dependencies/pocketpy/python/bisect.py @@ -0,0 +1,72 @@ +"""Bisection algorithms.""" + +def insort_right(a, x, lo=0, hi=None): + """Insert item x in list a, and keep it sorted assuming a is sorted. + + If x is already in a, insert it to the right of the rightmost x. + + Optional args lo (default 0) and hi (default len(a)) bound the + slice of a to be searched. + """ + + lo = bisect_right(a, x, lo, hi) + a.insert(lo, x) + +def bisect_right(a, x, lo=0, hi=None): + """Return the index where to insert item x in list a, assuming a is sorted. + + The return value i is such that all e in a[:i] have e <= x, and all e in + a[i:] have e > x. So if x already appears in the list, a.insert(x) will + insert just after the rightmost x already there. + + Optional args lo (default 0) and hi (default len(a)) bound the + slice of a to be searched. + """ + + if lo < 0: + raise ValueError('lo must be non-negative') + if hi is None: + hi = len(a) + while lo < hi: + mid = (lo+hi)//2 + if x < a[mid]: hi = mid + else: lo = mid+1 + return lo + +def insort_left(a, x, lo=0, hi=None): + """Insert item x in list a, and keep it sorted assuming a is sorted. + + If x is already in a, insert it to the left of the leftmost x. + + Optional args lo (default 0) and hi (default len(a)) bound the + slice of a to be searched. + """ + + lo = bisect_left(a, x, lo, hi) + a.insert(lo, x) + + +def bisect_left(a, x, lo=0, hi=None): + """Return the index where to insert item x in list a, assuming a is sorted. + + The return value i is such that all e in a[:i] have e < x, and all e in + a[i:] have e >= x. So if x already appears in the list, a.insert(x) will + insert just before the leftmost x already there. + + Optional args lo (default 0) and hi (default len(a)) bound the + slice of a to be searched. + """ + + if lo < 0: + raise ValueError('lo must be non-negative') + if hi is None: + hi = len(a) + while lo < hi: + mid = (lo+hi)//2 + if a[mid] < x: lo = mid+1 + else: hi = mid + return lo + +# Create aliases +bisect = bisect_right +insort = insort_right diff --git a/dependencies/pocketpy/python/builtins.py b/dependencies/pocketpy/python/builtins.py new file mode 100644 index 0000000..7fa440a --- /dev/null +++ b/dependencies/pocketpy/python/builtins.py @@ -0,0 +1,248 @@ +from operator import lt as __operator_lt +from operator import gt as __operator_gt +from __builtins import next as __builtins_next + +def __minmax_reduce(op, args, key): + if key is None: + if len(args) == 2: + return args[0] if op(args[0], args[1]) else args[1] + if len(args) == 0: + raise TypeError('expected 1 arguments, got 0') + if len(args) == 1: + args = args[0] + args = iter(args) + res = __builtins_next(args) + if res is StopIteration: + raise ValueError('args is an empty sequence') + while True: + i = __builtins_next(args) + if i is StopIteration: + break + if key is None: + if op(i, res): + res = i + else: + if op(key(i), key(res)): + res = i + return res + +def min(*args, key=None): + return __minmax_reduce(__operator_lt, args, key) + +def max(*args, key=None): + return __minmax_reduce(__operator_gt, args, key) + +def all(iterable): + for i in iterable: + if not i: + return False + return True + +def any(iterable): + for i in iterable: + if i: + return True + return False + +def enumerate(iterable, start=0): + n = start + for elem in iterable: + yield n, elem + ++n + +def sum(iterable): + res = 0 + for i in iterable: + res += i + return res + +def map(f, iterable): + for i in iterable: + yield f(i) + +def filter(f, iterable): + for i in iterable: + if f(i): + yield i + +def zip(a, b): + a = iter(a) + b = iter(b) + while True: + ai = __builtins_next(a) + bi = __builtins_next(b) + if ai is StopIteration or bi is StopIteration: + break + yield ai, bi + +def reversed(iterable): + a = list(iterable) + a.reverse() + return a + +def sorted(iterable, key=None, reverse=False): + a = list(iterable) + a.sort(key=key, reverse=reverse) + return a + +##### str ##### +def __format_string(self: str, *args, **kwargs) -> str: + def tokenizeString(s: str): + tokens = [] + L, R = 0,0 + + mode = None + curArg = 0 + # lookingForKword = False + + while(R float: + return math.sqrt(self.real ** 2 + self.imag ** 2) + + def __neg__(self): + return complex(-self.real, -self.imag) + + def __hash__(self): + return hash((self.real, self.imag)) + + +# Conversions to and from polar coordinates + +def phase(z: complex): + return math.atan2(z.imag, z.real) + +def polar(z: complex): + return z.__abs__(), phase(z) + +def rect(r: float, phi: float): + return r * math.cos(phi) + r * math.sin(phi) * 1j + +# Power and logarithmic functions + +def exp(z: complex): + return math.exp(z.real) * rect(1, z.imag) + +def log(z: complex, base=2.718281828459045): + return math.log(z.__abs__(), base) + phase(z) * 1j + +def log10(z: complex): + return log(z, 10) + +def sqrt(z: complex): + return z ** 0.5 + +# Trigonometric functions + +def acos(z: complex): + return -1j * log(z + sqrt(z * z - 1)) + +def asin(z: complex): + return -1j * log(1j * z + sqrt(1 - z * z)) + +def atan(z: complex): + return 1j / 2 * log((1 - 1j * z) / (1 + 1j * z)) + +def cos(z: complex): + return (exp(z) + exp(-z)) / 2 + +def sin(z: complex): + return (exp(z) - exp(-z)) / (2 * 1j) + +def tan(z: complex): + return sin(z) / cos(z) + +# Hyperbolic functions + +def acosh(z: complex): + return log(z + sqrt(z * z - 1)) + +def asinh(z: complex): + return log(z + sqrt(z * z + 1)) + +def atanh(z: complex): + return 1 / 2 * log((1 + z) / (1 - z)) + +def cosh(z: complex): + return (exp(z) + exp(-z)) / 2 + +def sinh(z: complex): + return (exp(z) - exp(-z)) / 2 + +def tanh(z: complex): + return sinh(z) / cosh(z) + +# Classification functions + +def isfinite(z: complex): + return math.isfinite(z.real) and math.isfinite(z.imag) + +def isinf(z: complex): + return math.isinf(z.real) or math.isinf(z.imag) + +def isnan(z: complex): + return math.isnan(z.real) or math.isnan(z.imag) + +def isclose(a: complex, b: complex): + return math.isclose(a.real, b.real) and math.isclose(a.imag, b.imag) + +# Constants + +pi = math.pi +e = math.e +tau = 2 * pi +inf = math.inf +infj = complex(0, inf) +nan = math.nan +nanj = complex(0, nan) diff --git a/dependencies/pocketpy/python/collections.py b/dependencies/pocketpy/python/collections.py new file mode 100644 index 0000000..15d3acf --- /dev/null +++ b/dependencies/pocketpy/python/collections.py @@ -0,0 +1,27 @@ +def Counter(iterable): + a = {} + for x in iterable: + if x in a: + a[x] += 1 + else: + a[x] = 1 + return a + +from __builtins import _enable_instance_dict + +class defaultdict(dict): + def __init__(self, default_factory, *args): + super().__init__(*args) + _enable_instance_dict(self) + self.default_factory = default_factory + + def __missing__(self, key): + self[key] = self.default_factory() + return self[key] + + def __repr__(self) -> str: + return f"defaultdict({self.default_factory}, {super().__repr__()})" + + def copy(self): + return defaultdict(self.default_factory, self) + diff --git a/dependencies/pocketpy/python/colorsys.py b/dependencies/pocketpy/python/colorsys.py new file mode 100644 index 0000000..aea51f1 --- /dev/null +++ b/dependencies/pocketpy/python/colorsys.py @@ -0,0 +1,171 @@ +"""Conversion functions between RGB and other color systems. + +This modules provides two functions for each color system ABC: + + rgb_to_abc(r, g, b) --> a, b, c + abc_to_rgb(a, b, c) --> r, g, b + +All inputs and outputs are triples of floats in the range [0.0...1.0] +(with the exception of I and Q, which covers a slightly larger range). +Inputs outside the valid range may cause exceptions or invalid outputs. + +Supported color systems: +RGB: Red, Green, Blue components +YIQ: Luminance, Chrominance (used by composite video signals) +HLS: Hue, Luminance, Saturation +HSV: Hue, Saturation, Value +""" + +# References: +# http://en.wikipedia.org/wiki/YIQ +# http://en.wikipedia.org/wiki/HLS_color_space +# http://en.wikipedia.org/wiki/HSV_color_space + +__all__ = ["rgb_to_yiq","yiq_to_rgb","rgb_to_hls","hls_to_rgb", + "rgb_to_hsv","hsv_to_rgb"] + +# Some floating point constants + +ONE_THIRD = 1.0/3.0 +ONE_SIXTH = 1.0/6.0 +TWO_THIRD = 2.0/3.0 + +# YIQ: used by composite video signals (linear combinations of RGB) +# Y: perceived grey level (0.0 == black, 1.0 == white) +# I, Q: color components +# +# There are a great many versions of the constants used in these formulae. +# The ones in this library uses constants from the FCC version of NTSC. + +def rgb_to_yiq(r, g, b): + y = 0.30*r + 0.59*g + 0.11*b + i = 0.74*(r-y) - 0.27*(b-y) + q = 0.48*(r-y) + 0.41*(b-y) + return (y, i, q) + +def yiq_to_rgb(y, i, q): + # r = y + (0.27*q + 0.41*i) / (0.74*0.41 + 0.27*0.48) + # b = y + (0.74*q - 0.48*i) / (0.74*0.41 + 0.27*0.48) + # g = y - (0.30*(r-y) + 0.11*(b-y)) / 0.59 + + r = y + 0.9468822170900693*i + 0.6235565819861433*q + g = y - 0.27478764629897834*i - 0.6356910791873801*q + b = y - 1.1085450346420322*i + 1.7090069284064666*q + + if r < 0.0: + r = 0.0 + if g < 0.0: + g = 0.0 + if b < 0.0: + b = 0.0 + if r > 1.0: + r = 1.0 + if g > 1.0: + g = 1.0 + if b > 1.0: + b = 1.0 + return (r, g, b) + + +# HLS: Hue, Luminance, Saturation +# H: position in the spectrum +# L: color lightness +# S: color saturation + +def rgb_to_hls(r, g, b): + maxc = max(r, g, b) + minc = min(r, g, b) + sumc = (maxc+minc) + rangec = (maxc-minc) + l = sumc/2.0 + if minc == maxc: + return 0.0, l, 0.0 + if l <= 0.5: + s = rangec / sumc + else: + s = rangec / (2.0-maxc-minc) # Not always 2.0-sumc: gh-106498. + rc = (maxc-r) / rangec + gc = (maxc-g) / rangec + bc = (maxc-b) / rangec + if r == maxc: + h = bc-gc + elif g == maxc: + h = 2.0+rc-bc + else: + h = 4.0+gc-rc + # h = (h/6.0) % 1.0 + h = h / 6.0 + h = h - int(h) + return h, l, s + +def hls_to_rgb(h, l, s): + if s == 0.0: + return l, l, l + if l <= 0.5: + m2 = l * (1.0+s) + else: + m2 = l+s-(l*s) + m1 = 2.0*l - m2 + return (_v(m1, m2, h+ONE_THIRD), _v(m1, m2, h), _v(m1, m2, h-ONE_THIRD)) + +def _v(m1, m2, hue): + # hue = hue % 1.0 + hue = hue - int(hue) + if hue < ONE_SIXTH: + return m1 + (m2-m1)*hue*6.0 + if hue < 0.5: + return m2 + if hue < TWO_THIRD: + return m1 + (m2-m1)*(TWO_THIRD-hue)*6.0 + return m1 + + +# HSV: Hue, Saturation, Value +# H: position in the spectrum +# S: color saturation ("purity") +# V: color brightness + +def rgb_to_hsv(r, g, b): + maxc = max(r, g, b) + minc = min(r, g, b) + rangec = (maxc-minc) + v = maxc + if minc == maxc: + return 0.0, 0.0, v + s = rangec / maxc + rc = (maxc-r) / rangec + gc = (maxc-g) / rangec + bc = (maxc-b) / rangec + if r == maxc: + h = bc-gc + elif g == maxc: + h = 2.0+rc-bc + else: + h = 4.0+gc-rc + # h = (h/6.0) % 1.0 + h = h / 6.0 + h = h - int(h) + return h, s, v + +def hsv_to_rgb(h, s, v): + if s == 0.0: + return v, v, v + i = int(h*6.0) # XXX assume int() truncates! + f = (h*6.0) - i + p = v*(1.0 - s) + q = v*(1.0 - s*f) + t = v*(1.0 - s*(1.0-f)) + i = i%6 + if i == 0: + return v, t, p + if i == 1: + return q, v, p + if i == 2: + return p, v, t + if i == 3: + return p, q, v + if i == 4: + return t, p, v + if i == 5: + return v, p, q + # Cannot get here \ No newline at end of file diff --git a/dependencies/pocketpy/python/datetime.py b/dependencies/pocketpy/python/datetime.py new file mode 100644 index 0000000..62b286b --- /dev/null +++ b/dependencies/pocketpy/python/datetime.py @@ -0,0 +1,148 @@ +from time import localtime + +class timedelta: + def __init__(self, days=0, seconds=0): + self.days = days + self.seconds = seconds + + def __repr__(self): + return f"datetime.timedelta(days={self.days}, seconds={self.seconds})" + + def __eq__(self, other: 'timedelta') -> bool: + if type(other) is not timedelta: + return NotImplemented + return (self.days, self.seconds) == (other.days, other.seconds) + + def __lt__(self, other: 'timedelta') -> bool: + if type(other) is not timedelta: + return NotImplemented + return (self.days, self.seconds) < (other.days, other.seconds) + + def __le__(self, other: 'timedelta') -> bool: + if type(other) is not timedelta: + return NotImplemented + return (self.days, self.seconds) <= (other.days, other.seconds) + + def __gt__(self, other: 'timedelta') -> bool: + if type(other) is not timedelta: + return NotImplemented + return (self.days, self.seconds) > (other.days, other.seconds) + + def __ge__(self, other: 'timedelta') -> bool: + if type(other) is not timedelta: + return NotImplemented + return (self.days, self.seconds) >= (other.days, other.seconds) + + +class date: + def __init__(self, year: int, month: int, day: int): + self.year = year + self.month = month + self.day = day + + @staticmethod + def today(): + t = localtime() + return date(t.tm_year, t.tm_mon, t.tm_mday) + + def __eq__(self, other: 'date') -> bool: + if type(other) is not date: + return NotImplemented + return (self.year, self.month, self.day) == (other.year, other.month, other.day) + + def __lt__(self, other: 'date') -> bool: + if type(other) is not date: + return NotImplemented + return (self.year, self.month, self.day) < (other.year, other.month, other.day) + + def __le__(self, other: 'date') -> bool: + if type(other) is not date: + return NotImplemented + return (self.year, self.month, self.day) <= (other.year, other.month, other.day) + + def __gt__(self, other: 'date') -> bool: + if type(other) is not date: + return NotImplemented + return (self.year, self.month, self.day) > (other.year, other.month, other.day) + + def __ge__(self, other: 'date') -> bool: + if type(other) is not date: + return NotImplemented + return (self.year, self.month, self.day) >= (other.year, other.month, other.day) + + def __str__(self): + return f"{self.year}-{self.month:02}-{self.day:02}" + + def __repr__(self): + return f"datetime.date({self.year}, {self.month}, {self.day})" + + +class datetime(date): + def __init__(self, year: int, month: int, day: int, hour: int, minute: int, second: int): + super().__init__(year, month, day) + # Validate and set hour, minute, and second + if not 0 <= hour <= 23: + raise ValueError("Hour must be between 0 and 23") + self.hour = hour + if not 0 <= minute <= 59: + raise ValueError("Minute must be between 0 and 59") + self.minute = minute + if not 0 <= second <= 59: + raise ValueError("Second must be between 0 and 59") + self.second = second + + def date(self) -> date: + return date(self.year, self.month, self.day) + + @staticmethod + def now(): + t = localtime() + tm_sec = t.tm_sec + if tm_sec == 60: + tm_sec = 59 + return datetime(t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, tm_sec) + + def __str__(self): + return f"{self.year}-{self.month:02}-{self.day:02} {self.hour:02}:{self.minute:02}:{self.second:02}" + + def __repr__(self): + return f"datetime.datetime({self.year}, {self.month}, {self.day}, {self.hour}, {self.minute}, {self.second})" + + def __eq__(self, other) -> bool: + if type(other) is not datetime: + return NotImplemented + return (self.year, self.month, self.day, self.hour, self.minute, self.second) ==\ + (other.year, other.month, other.day, + other.hour, other.minute, other.second) + + def __lt__(self, other) -> bool: + if type(other) is not datetime: + return NotImplemented + return (self.year, self.month, self.day, self.hour, self.minute, self.second) <\ + (other.year, other.month, other.day, + other.hour, other.minute, other.second) + + def __le__(self, other) -> bool: + if type(other) is not datetime: + return NotImplemented + return (self.year, self.month, self.day, self.hour, self.minute, self.second) <=\ + (other.year, other.month, other.day, + other.hour, other.minute, other.second) + + def __gt__(self, other) -> bool: + if type(other) is not datetime: + return NotImplemented + return (self.year, self.month, self.day, self.hour, self.minute, self.second) >\ + (other.year, other.month, other.day, + other.hour, other.minute, other.second) + + def __ge__(self, other) -> bool: + if type(other) is not datetime: + return NotImplemented + return (self.year, self.month, self.day, self.hour, self.minute, self.second) >=\ + (other.year, other.month, other.day, + other.hour, other.minute, other.second) + + def timestamp(self) -> float: + raise NotImplementedError + diff --git a/dependencies/pocketpy/python/functools.py b/dependencies/pocketpy/python/functools.py new file mode 100644 index 0000000..e8351c0 --- /dev/null +++ b/dependencies/pocketpy/python/functools.py @@ -0,0 +1,36 @@ +from __builtins import next + +class cache: + def __init__(self, f): + self.f = f + self.cache = {} + + def __call__(self, *args): + if args not in self.cache: + self.cache[args] = self.f(*args) + return self.cache[args] + +def reduce(function, sequence, initial=...): + it = iter(sequence) + if initial is ...: + value = next(it) + if value is StopIteration: + raise TypeError("reduce() of empty iterable with no initial value") + else: + value = initial + for element in it: + value = function(value, element) + return value + +class partial: + def __init__(self, f, *args, **kwargs): + self.f = f + if not callable(f): + raise TypeError("the first argument must be callable") + self.args = args + self.kwargs = kwargs + + def __call__(self, *args, **kwargs): + kwargs.update(self.kwargs) + return self.f(*self.args, *args, **kwargs) + diff --git a/dependencies/pocketpy/python/heapq.py b/dependencies/pocketpy/python/heapq.py new file mode 100644 index 0000000..855ae53 --- /dev/null +++ b/dependencies/pocketpy/python/heapq.py @@ -0,0 +1,86 @@ +# Heap queue algorithm (a.k.a. priority queue) +def heappush(heap, item): + """Push item onto heap, maintaining the heap invariant.""" + heap.append(item) + _siftdown(heap, 0, len(heap)-1) + +def heappop(heap): + """Pop the smallest item off the heap, maintaining the heap invariant.""" + lastelt = heap.pop() # raises appropriate IndexError if heap is empty + if heap: + returnitem = heap[0] + heap[0] = lastelt + _siftup(heap, 0) + return returnitem + return lastelt + +def heapreplace(heap, item): + """Pop and return the current smallest value, and add the new item. + + This is more efficient than heappop() followed by heappush(), and can be + more appropriate when using a fixed-size heap. Note that the value + returned may be larger than item! That constrains reasonable uses of + this routine unless written as part of a conditional replacement: + + if item > heap[0]: + item = heapreplace(heap, item) + """ + returnitem = heap[0] # raises appropriate IndexError if heap is empty + heap[0] = item + _siftup(heap, 0) + return returnitem + +def heappushpop(heap, item): + """Fast version of a heappush followed by a heappop.""" + if heap and heap[0] < item: + item, heap[0] = heap[0], item + _siftup(heap, 0) + return item + +def heapify(x): + """Transform list into a heap, in-place, in O(len(x)) time.""" + n = len(x) + # Transform bottom-up. The largest index there's any point to looking at + # is the largest with a child index in-range, so must have 2*i + 1 < n, + # or i < (n-1)/2. If n is even = 2*j, this is (2*j-1)/2 = j-1/2 so + # j-1 is the largest, which is n//2 - 1. If n is odd = 2*j+1, this is + # (2*j+1-1)/2 = j so j-1 is the largest, and that's again n//2-1. + for i in reversed(range(n//2)): + _siftup(x, i) + +# 'heap' is a heap at all indices >= startpos, except possibly for pos. pos +# is the index of a leaf with a possibly out-of-order value. Restore the +# heap invariant. +def _siftdown(heap, startpos, pos): + newitem = heap[pos] + # Follow the path to the root, moving parents down until finding a place + # newitem fits. + while pos > startpos: + parentpos = (pos - 1) >> 1 + parent = heap[parentpos] + if newitem < parent: + heap[pos] = parent + pos = parentpos + continue + break + heap[pos] = newitem + +def _siftup(heap, pos): + endpos = len(heap) + startpos = pos + newitem = heap[pos] + # Bubble up the smaller child until hitting a leaf. + childpos = 2*pos + 1 # leftmost child position + while childpos < endpos: + # Set childpos to index of smaller child. + rightpos = childpos + 1 + if rightpos < endpos and not heap[childpos] < heap[rightpos]: + childpos = rightpos + # Move the smaller child up. + heap[pos] = heap[childpos] + pos = childpos + childpos = 2*pos + 1 + # The leaf at pos is empty now. Put newitem there, and bubble it up + # to its final resting place (by sifting its parents down). + heap[pos] = newitem + _siftdown(heap, startpos, pos) \ No newline at end of file diff --git a/dependencies/pocketpy/python/itertools.py b/dependencies/pocketpy/python/itertools.py new file mode 100644 index 0000000..3a44864 --- /dev/null +++ b/dependencies/pocketpy/python/itertools.py @@ -0,0 +1,15 @@ +from __builtins import next + +def zip_longest(a, b): + a = iter(a) + b = iter(b) + while True: + ai = next(a) + bi = next(b) + if ai is StopIteration and bi is StopIteration: + break + if ai is StopIteration: + ai = None + if bi is StopIteration: + bi = None + yield ai, bi diff --git a/dependencies/pocketpy/python/pickle.py b/dependencies/pocketpy/python/pickle.py new file mode 100644 index 0000000..8eb63b0 --- /dev/null +++ b/dependencies/pocketpy/python/pickle.py @@ -0,0 +1,182 @@ +import json +from c import struct +import builtins + +_BASIC_TYPES = [int, float, str, bool, type(None)] +_MOD_T_SEP = "@" + +def _find_class(path: str): + if _MOD_T_SEP not in path: + return builtins.__dict__[path] + modpath, name = path.split(_MOD_T_SEP) + return __import__(modpath).__dict__[name] + +class _Pickler: + def __init__(self, obj) -> None: + self.obj = obj + self.raw_memo = {} # id -> int + self.memo = [] # int -> object + + @staticmethod + def _type_id(t: type): + assert type(t) is type + name = t.__name__ + mod = t.__module__ + if mod is not None: + name = mod.__path__ + _MOD_T_SEP + name + return name + + def wrap(self, o): + o_t = type(o) + if o_t in _BASIC_TYPES: + return o + if o_t is type: + return ["type", self._type_id(o)] + + index = self.raw_memo.get(id(o), None) + if index is not None: + return [index] + + ret = [] + index = len(self.memo) + self.memo.append(ret) + self.raw_memo[id(o)] = index + + if o_t is tuple: + ret.append("tuple") + ret.append([self.wrap(i) for i in o]) + return [index] + if o_t is bytes: + ret.append("bytes") + ret.append([o[j] for j in range(len(o))]) + return [index] + if o_t is list: + ret.append("list") + ret.append([self.wrap(i) for i in o]) + return [index] + if o_t is dict: + ret.append("dict") + ret.append([[self.wrap(k), self.wrap(v)] for k,v in o.items()]) + return [index] + + _0 = self._type_id(o_t) + + if getattr(o_t, '__struct__', False): + ret.append(_0) + ret.append(o.to_struct().hex()) + return [index] + + if hasattr(o, "__getnewargs__"): + _1 = o.__getnewargs__() # an iterable + _1 = [self.wrap(i) for i in _1] + else: + _1 = None + + if o.__dict__ is None: + _2 = None + else: + _2 = {k: self.wrap(v) for k,v in o.__dict__.items()} + + ret.append(_0) # type id + ret.append(_1) # newargs + ret.append(_2) # state + return [index] + + def run_pipe(self): + o = self.wrap(self.obj) + return [o, self.memo] + + + +class _Unpickler: + def __init__(self, obj, memo: list) -> None: + self.obj = obj + self.memo = memo + self._unwrapped = [None] * len(memo) + + def tag(self, index, o): + assert self._unwrapped[index] is None + self._unwrapped[index] = o + + def unwrap(self, o, index=None): + if type(o) in _BASIC_TYPES: + return o + assert type(o) is list + + if o[0] == "type": + return _find_class(o[1]) + + # reference + if type(o[0]) is int: + assert index is None # index should be None + index = o[0] + if self._unwrapped[index] is None: + o = self.memo[index] + assert type(o) is list + assert type(o[0]) is str + self.unwrap(o, index) + assert self._unwrapped[index] is not None + return self._unwrapped[index] + + # concrete reference type + if o[0] == "tuple": + ret = tuple([self.unwrap(i) for i in o[1]]) + self.tag(index, ret) + return ret + if o[0] == "bytes": + ret = bytes(o[1]) + self.tag(index, ret) + return ret + if o[0] == "list": + ret = [] + self.tag(index, ret) + for i in o[1]: + ret.append(self.unwrap(i)) + return ret + if o[0] == "dict": + ret = {} + self.tag(index, ret) + for k,v in o[1]: + ret[self.unwrap(k)] = self.unwrap(v) + return ret + + # generic object + cls = _find_class(o[0]) + if getattr(cls, '__struct__', False): + inst = cls.from_struct(struct.fromhex(o[1])) + self.tag(index, inst) + return inst + else: + _, newargs, state = o + # create uninitialized instance + new_f = getattr(cls, "__new__") + if newargs is not None: + newargs = [self.unwrap(i) for i in newargs] + inst = new_f(cls, *newargs) + else: + inst = new_f(cls) + self.tag(index, inst) + # restore state + if state is not None: + for k,v in state.items(): + setattr(inst, k, self.unwrap(v)) + return inst + + def run_pipe(self): + return self.unwrap(self.obj) + + +def _wrap(o): + return _Pickler(o).run_pipe() + +def _unwrap(packed: list): + return _Unpickler(*packed).run_pipe() + +def dumps(o) -> bytes: + o = _wrap(o) + return json.dumps(o).encode() + +def loads(b) -> object: + assert type(b) is bytes + o = json.loads(b.decode()) + return _unwrap(o) \ No newline at end of file diff --git a/dependencies/pocketpy/python/this.py b/dependencies/pocketpy/python/this.py new file mode 100644 index 0000000..2734199 --- /dev/null +++ b/dependencies/pocketpy/python/this.py @@ -0,0 +1,21 @@ +print("""The Zen of Python, by Tim Peters + +Beautiful is better than ugly. +Explicit is better than implicit. +Simple is better than complex. +Complex is better than complicated. +Flat is better than nested. +Sparse is better than dense. +Readability counts. +Special cases aren't special enough to break the rules. +Although practicality beats purity. +Errors should never pass silently. +Unless explicitly silenced. +In the face of ambiguity, refuse the temptation to guess. +There should be one-- and preferably only one --obvious way to do it. +Although that way may not be obvious at first unless you're Dutch. +Now is better than never. +Although never is often better than *right* now. +If the implementation is hard to explain, it's a bad idea. +If the implementation is easy to explain, it may be a good idea. +Namespaces are one honking great idea -- let's do more of those!""") \ No newline at end of file diff --git a/dependencies/pocketpy/python/typing.py b/dependencies/pocketpy/python/typing.py new file mode 100644 index 0000000..32f2436 --- /dev/null +++ b/dependencies/pocketpy/python/typing.py @@ -0,0 +1,47 @@ +class _Placeholder: + def __init__(self, *args, **kwargs): + pass + def __getitem__(self, *args): + return self + def __call__(self, *args, **kwargs): + return self + def __and__(self, other): + return self + def __or__(self, other): + return self + def __xor__(self, other): + return self + + +_PLACEHOLDER = _Placeholder() + +List = _PLACEHOLDER +Dict = _PLACEHOLDER +Tuple = _PLACEHOLDER +Set = _PLACEHOLDER +Any = _PLACEHOLDER +Union = _PLACEHOLDER +Optional = _PLACEHOLDER +Callable = _PLACEHOLDER +Type = _PLACEHOLDER +Protocol = _PLACEHOLDER + +Literal = _PLACEHOLDER +LiteralString = _PLACEHOLDER + +Iterable = _PLACEHOLDER +Generator = _PLACEHOLDER + +Hashable = _PLACEHOLDER + +TypeVar = _PLACEHOLDER +Self = _PLACEHOLDER + +class Generic: + pass + +TYPE_CHECKING = False + +# decorators +overload = lambda x: x +final = lambda x: x diff --git a/dependencies/pocketpy/run_c_binding_test.sh b/dependencies/pocketpy/run_c_binding_test.sh new file mode 100644 index 0000000..0f90d15 --- /dev/null +++ b/dependencies/pocketpy/run_c_binding_test.sh @@ -0,0 +1,17 @@ +cd c_bindings +rm -rf build +mkdir build +cd build +cmake .. +cmake --build . --config Release + +./test_c_bindings > binding_test_scratch + +echo "checking results (they should be identical)" +diff -q -s binding_test_scratch ../test_answers.txt + +if [ $? -eq 1 ] +then + echo "ERROR: c binding test failed" + exit 1 +fi \ No newline at end of file diff --git a/dependencies/pocketpy/run_cmake_install_test.sh b/dependencies/pocketpy/run_cmake_install_test.sh new file mode 100644 index 0000000..1d12b54 --- /dev/null +++ b/dependencies/pocketpy/run_cmake_install_test.sh @@ -0,0 +1,28 @@ +rm -rf install +mkdir -p install/build +cd install/build +cmake ../../ -DCMAKE_INSTALL_PREFIX=../pocketpy -DPK_USE_CJSON=ON -DPK_ENABLE_OS=ON +cmake --build . --target install --config Release -j 8 + +if [ -e "../pocketpy/lib/libpocketpy.so" ]; then + echo "Library installed successfully." +else + echo "Library installation failed." + exit 1 +fi + +if [ -e "../pocketpy/include/pocketpy.h" ]; then + echo "Header files installed successfully." +else + echo "Header files installation failed." + exit 1 +fi + +if [ -e "../pocketpy/share/pocketpy/pocketpy-config.cmake" ]; then + echo "Config file installed successfully." +else + echo "Config file installation failed." + exit 1 +fi + +echo "CMake install verified successfully." diff --git a/dependencies/pocketpy/run_profile.sh b/dependencies/pocketpy/run_profile.sh new file mode 100644 index 0000000..f0ba16b --- /dev/null +++ b/dependencies/pocketpy/run_profile.sh @@ -0,0 +1,7 @@ +python prebuild.py +SRC=$(find src/ -name "*.cpp") +clang++ -pg -O1 -std=c++17 -stdlib=libc++ -frtti -Wfatal-errors -o main $SRC src2/main.cpp -Iinclude +time ./main benchmarks/fib.py +mv benchmarks/gmon.out . +gprof main gmon.out > gprof.txt +rm gmon.out diff --git a/dependencies/pocketpy/run_tests.sh b/dependencies/pocketpy/run_tests.sh new file mode 100644 index 0000000..6cba924 --- /dev/null +++ b/dependencies/pocketpy/run_tests.sh @@ -0,0 +1,21 @@ +python prebuild.py +SRC=$(find src/ -name "*.cpp") +clang++ -std=c++17 --coverage -O1 -stdlib=libc++ -frtti -Wfatal-errors -o main src2/main.cpp $SRC -Iinclude -DPK_ENABLE_OS=1 -DPK_DEBUG_PRECOMPILED_EXEC=1 + +python scripts/run_tests.py + +# if prev error exit +if [ $? -ne 0 ]; then + exit 1 +fi + +rm -rf .coverage +mkdir .coverage +rm pocketpy_c.gcno + +UNITS=$(find ./ -name "*.gcno") +llvm-cov-15 gcov ${UNITS} -r -s include/ -r -s src/ >> .coverage/coverage.txt + +mv *.gcov .coverage +rm *.gcda +rm *.gcno diff --git a/dependencies/pocketpy/scripts/__init__.py b/dependencies/pocketpy/scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/pocketpy/scripts/genstub.py b/dependencies/pocketpy/scripts/genstub.py new file mode 100644 index 0000000..39237b4 --- /dev/null +++ b/dependencies/pocketpy/scripts/genstub.py @@ -0,0 +1,38 @@ +import os + +with open('include/pocketpy/pocketpy_c.h') as f: + lines = f.readlines() + +a = [] +for line in lines: + if line.startswith("PK_EXPORT"): + _, ret, *body = line.split() + else: + continue + body = ' '.join(body) + assert body.endswith(";") + body = body[:-1] + + if '(pkpy_vm*' in body: + body = body.replace('(pkpy_vm*', '(pkpy_vm* vm') + + if ret == 'void': + mock_string = '' + else: + mock_string = ' '*4 + ret + ' returnValue;\n return returnValue;' + + a.append( + ret + ' ' + body + ' {\n' + mock_string + '\n}\n' + ) + +# use LF line endings instead of CRLF +with open('src2/pocketpy_c.c', 'wt', encoding='utf-8', newline='\n') as f: + f.write(''' +#include "pocketpy_c.h" + +#ifdef _WIN32 +#pragma warning(disable: 4700) +#endif + +''') + f.write('\n'.join(a)) diff --git a/dependencies/pocketpy/scripts/loc.py b/dependencies/pocketpy/scripts/loc.py new file mode 100644 index 0000000..e66f761 --- /dev/null +++ b/dependencies/pocketpy/scripts/loc.py @@ -0,0 +1,26 @@ +import os + +def get_loc(path): + loc = 0 + with open(path, "rt", encoding='utf-8') as f: + loc += len(f.readlines()) + return loc + +def get_loc_for_dir(path): + loc = 0 + loc_ex = 0 + for root, dirs, files in os.walk(path): + for file in files: + if file.endswith('.h') or file.endswith('.cpp'): + _i = get_loc(os.path.join(root, file)) + print(f"{file}: {_i}") + if file.startswith('_'): + loc_ex += _i + else: + loc += _i + return f'{path}: {loc} (+{loc_ex})' + + +print(get_loc_for_dir('include/pocketpy')) +print() +print(get_loc_for_dir('src')) diff --git a/dependencies/pocketpy/scripts/run_tests.py b/dependencies/pocketpy/scripts/run_tests.py new file mode 100644 index 0000000..da9649f --- /dev/null +++ b/dependencies/pocketpy/scripts/run_tests.py @@ -0,0 +1,76 @@ +import os +import sys +import time +import subprocess + + +def test_file(filepath, cpython=False): + if cpython: + return os.system("python " + filepath) == 0 + if sys.platform == 'win32': + return os.system("main.exe " + filepath) == 0 + else: + return os.system("./main " + filepath) == 0 + +def test_dir(path): + print("Testing directory:", path) + for filename in sorted(os.listdir(path)): + if not filename.endswith('.py'): + continue + filepath = os.path.join(path, filename) + print("> " + filepath, flush=True) + + if path == 'benchmarks/': + _0 = time.time() + if not test_file(filepath, cpython=True): + print('cpython run failed') + continue + _1 = time.time() + if not test_file(filepath): exit(1) + _2 = time.time() + print(f' cpython: {_1 - _0:.6f}s (100%)') + print(f' pocketpy: {_2 - _1:.6f}s ({(_2 - _1) / (_1 - _0) * 100:.2f}%)') + else: + if not test_file(filepath): + print('-' * 50) + print("TEST FAILED! Press any key to continue...") + input() + +print('CPython:', str(sys.version).replace('\n', '')) +print('System:', '64-bit' if sys.maxsize > 2**32 else '32-bit') + +if len(sys.argv) == 2: + assert 'benchmark' in sys.argv[1] + test_dir('benchmarks/') +else: + test_dir('tests/') + + # test interactive mode + print("[REPL Test Enabled]") + if sys.platform in ['linux', 'darwin']: + cmd = './main' + else: + cmd = None + + if cmd is not None: + res = subprocess.run([cmd], encoding='utf-8', input=r''' +def add(a, b): + return a + b + +class A: + def __init__(self, x): + self.x = x + + def get(self): + return self.x + + + print('ans_1:', add(1, 2)) + print('ans_2:', A('abc').get()) + exit() +''', capture_output=True, check=True) + res.check_returncode() + assert 'ans_1: 3' in res.stdout, res.stdout + assert 'ans_2: abc' in res.stdout, res.stdout + +print("ALL TESTS PASSED") diff --git a/dependencies/pocketpy/src/_generated.cpp b/dependencies/pocketpy/src/_generated.cpp new file mode 100644 index 0000000..b776536 --- /dev/null +++ b/dependencies/pocketpy/src/_generated.cpp @@ -0,0 +1,20 @@ +// generated by prebuild.py +#include "pocketpy/_generated.h" + +namespace pkpy{ + const char kPythonLibs__enum[] = {99,108,97,115,115,32,69,110,117,109,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,110,97,109,101,44,32,118,97,108,117,101,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,110,97,109,101,32,61,32,110,97,109,101,10,32,32,32,32,32,32,32,32,115,101,108,102,46,118,97,108,117,101,32,61,32,118,97,108,117,101,10,10,32,32,32,32,100,101,102,32,95,95,115,116,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,39,123,116,121,112,101,40,115,101,108,102,41,46,95,95,110,97,109,101,95,95,125,46,123,115,101,108,102,46,110,97,109,101,125,39,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,39,60,123,115,116,114,40,115,101,108,102,41,125,58,32,123,115,101,108,102,46,118,97,108,117,101,33,114,125,62,39,10,32,32,32,32,10,0}; + const char kPythonLibs__long[] = {35,32,97,102,116,101,114,32,118,49,46,50,46,50,44,32,105,110,116,32,105,115,32,97,108,119,97,121,115,32,54,52,45,98,105,116,10,80,121,76,111,110,103,95,83,72,73,70,84,32,61,32,54,48,47,47,50,32,45,32,49,10,10,80,121,76,111,110,103,95,66,65,83,69,32,61,32,50,32,42,42,32,80,121,76,111,110,103,95,83,72,73,70,84,10,80,121,76,111,110,103,95,77,65,83,75,32,61,32,80,121,76,111,110,103,95,66,65,83,69,32,45,32,49,10,80,121,76,111,110,103,95,68,69,67,73,77,65,76,95,83,72,73,70,84,32,61,32,52,10,80,121,76,111,110,103,95,68,69,67,73,77,65,76,95,66,65,83,69,32,61,32,49,48,32,42,42,32,80,121,76,111,110,103,95,68,69,67,73,77,65,76,95,83,72,73,70,84,10,10,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,10,10,100,101,102,32,117,108,111,110,103,95,102,114,111,109,105,110,116,40,120,58,32,105,110,116,41,58,10,32,32,32,32,35,32,114,101,116,117,114,110,32,97,32,108,105,115,116,32,111,102,32,100,105,103,105,116,115,32,97,110,100,32,115,105,103,110,10,32,32,32,32,105,102,32,120,32,61,61,32,48,58,32,114,101,116,117,114,110,32,91,48,93,44,32,49,10,32,32,32,32,115,105,103,110,32,61,32,49,32,105,102,32,120,32,62,32,48,32,101,108,115,101,32,45,49,10,32,32,32,32,105,102,32,115,105,103,110,32,60,32,48,58,32,120,32,61,32,45,120,10,32,32,32,32,114,101,115,32,61,32,91,93,10,32,32,32,32,119,104,105,108,101,32,120,58,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,120,32,38,32,80,121,76,111,110,103,95,77,65,83,75,41,10,32,32,32,32,32,32,32,32,120,32,62,62,61,32,80,121,76,111,110,103,95,83,72,73,70,84,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,44,32,115,105,103,110,10,10,100,101,102,32,117,108,111,110,103,95,99,109,112,40,97,58,32,108,105,115,116,44,32,98,58,32,108,105,115,116,41,32,45,62,32,105,110,116,58,10,32,32,32,32,35,32,114,101,116,117,114,110,32,49,32,105,102,32,97,62,98,44,32,45,49,32,105,102,32,97,60,98,44,32,48,32,105,102,32,97,61,61,98,10,32,32,32,32,105,102,32,108,101,110,40,97,41,32,62,32,108,101,110,40,98,41,58,32,114,101,116,117,114,110,32,49,10,32,32,32,32,105,102,32,108,101,110,40,97,41,32,60,32,108,101,110,40,98,41,58,32,114,101,116,117,114,110,32,45,49,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,97,41,45,49,44,32,45,49,44,32,45,49,41,58,10,32,32,32,32,32,32,32,32,105,102,32,97,91,105,93,32,62,32,98,91,105,93,58,32,114,101,116,117,114,110,32,49,10,32,32,32,32,32,32,32,32,105,102,32,97,91,105,93,32,60,32,98,91,105,93,58,32,114,101,116,117,114,110,32,45,49,10,32,32,32,32,114,101,116,117,114,110,32,48,10,10,100,101,102,32,117,108,111,110,103,95,112,97,100,95,40,97,58,32,108,105,115,116,44,32,115,105,122,101,58,32,105,110,116,41,58,10,32,32,32,32,35,32,112,97,100,32,108,101,97,100,105,110,103,32,122,101,114,111,115,32,116,111,32,104,97,118,101,32,96,115,105,122,101,96,32,100,105,103,105,116,115,10,32,32,32,32,100,101,108,116,97,32,61,32,115,105,122,101,32,45,32,108,101,110,40,97,41,10,32,32,32,32,105,102,32,100,101,108,116,97,32,62,32,48,58,10,32,32,32,32,32,32,32,32,97,46,101,120,116,101,110,100,40,91,48,93,32,42,32,100,101,108,116,97,41,10,10,100,101,102,32,117,108,111,110,103,95,117,110,112,97,100,95,40,97,58,32,108,105,115,116,41,58,10,32,32,32,32,35,32,114,101,109,111,118,101,32,108,101,97,100,105,110,103,32,122,101,114,111,115,10,32,32,32,32,119,104,105,108,101,32,108,101,110,40,97,41,62,49,32,97,110,100,32,97,91,45,49,93,61,61,48,58,10,32,32,32,32,32,32,32,32,97,46,112,111,112,40,41,10,10,100,101,102,32,117,108,111,110,103,95,97,100,100,40,97,58,32,108,105,115,116,44,32,98,58,32,108,105,115,116,41,32,45,62,32,108,105,115,116,58,10,32,32,32,32,114,101,115,32,61,32,91,48,93,32,42,32,109,97,120,40,108,101,110,40,97,41,44,32,108,101,110,40,98,41,41,10,32,32,32,32,117,108,111,110,103,95,112,97,100,95,40,97,44,32,108,101,110,40,114,101,115,41,41,10,32,32,32,32,117,108,111,110,103,95,112,97,100,95,40,98,44,32,108,101,110,40,114,101,115,41,41,10,32,32,32,32,99,97,114,114,121,32,61,32,48,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,114,101,115,41,41,58,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,43,61,32,97,91,105,93,32,43,32,98,91,105,93,10,32,32,32,32,32,32,32,32,114,101,115,91,105,93,32,61,32,99,97,114,114,121,32,38,32,80,121,76,111,110,103,95,77,65,83,75,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,62,62,61,32,80,121,76,111,110,103,95,83,72,73,70,84,10,32,32,32,32,105,102,32,99,97,114,114,121,32,62,32,48,58,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,99,97,114,114,121,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,117,108,111,110,103,95,105,110,99,95,40,97,58,32,108,105,115,116,41,58,10,32,32,32,32,97,91,48,93,32,43,61,32,49,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,97,41,41,58,10,32,32,32,32,32,32,32,32,105,102,32,97,91,105,93,32,60,32,80,121,76,111,110,103,95,66,65,83,69,58,32,98,114,101,97,107,10,32,32,32,32,32,32,32,32,97,91,105,93,32,45,61,32,80,121,76,111,110,103,95,66,65,83,69,10,32,32,32,32,32,32,32,32,105,102,32,105,43,49,32,61,61,32,108,101,110,40,97,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,46,97,112,112,101,110,100,40,49,41,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,91,105,43,49,93,32,43,61,32,49,10,32,32,32,32,10,10,100,101,102,32,117,108,111,110,103,95,115,117,98,40,97,58,32,108,105,115,116,44,32,98,58,32,108,105,115,116,41,32,45,62,32,108,105,115,116,58,10,32,32,32,32,35,32,97,32,62,61,32,98,10,32,32,32,32,114,101,115,32,61,32,91,93,10,32,32,32,32,98,111,114,114,111,119,32,61,32,48,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,98,41,41,58,10,32,32,32,32,32,32,32,32,116,109,112,32,61,32,97,91,105,93,32,45,32,98,91,105,93,32,45,32,98,111,114,114,111,119,10,32,32,32,32,32,32,32,32,105,102,32,116,109,112,32,60,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,109,112,32,43,61,32,80,121,76,111,110,103,95,66,65,83,69,10,32,32,32,32,32,32,32,32,32,32,32,32,98,111,114,114,111,119,32,61,32,49,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,98,111,114,114,111,119,32,61,32,48,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,116,109,112,41,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,98,41,44,32,108,101,110,40,97,41,41,58,10,32,32,32,32,32,32,32,32,116,109,112,32,61,32,97,91,105,93,32,45,32,98,111,114,114,111,119,10,32,32,32,32,32,32,32,32,105,102,32,116,109,112,32,60,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,109,112,32,43,61,32,80,121,76,111,110,103,95,66,65,83,69,10,32,32,32,32,32,32,32,32,32,32,32,32,98,111,114,114,111,119,32,61,32,49,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,98,111,114,114,111,119,32,61,32,48,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,116,109,112,41,10,32,32,32,32,117,108,111,110,103,95,117,110,112,97,100,95,40,114,101,115,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,117,108,111,110,103,95,100,105,118,109,111,100,105,40,97,58,32,108,105,115,116,44,32,98,58,32,105,110,116,41,58,10,32,32,32,32,35,32,98,32,62,32,48,10,32,32,32,32,114,101,115,32,61,32,91,93,10,32,32,32,32,99,97,114,114,121,32,61,32,48,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,97,41,45,49,44,32,45,49,44,32,45,49,41,58,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,60,60,61,32,80,121,76,111,110,103,95,83,72,73,70,84,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,43,61,32,97,91,105,93,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,99,97,114,114,121,32,47,47,32,98,41,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,37,61,32,98,10,32,32,32,32,114,101,115,46,114,101,118,101,114,115,101,40,41,10,32,32,32,32,117,108,111,110,103,95,117,110,112,97,100,95,40,114,101,115,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,44,32,99,97,114,114,121,10,10,10,100,101,102,32,117,108,111,110,103,95,100,105,118,109,111,100,40,97,58,32,108,105,115,116,44,32,98,58,32,108,105,115,116,41,58,10,10,32,32,32,32,105,102,32,117,108,111,110,103,95,99,109,112,40,97,44,32,98,41,32,60,32,48,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,48,93,44,32,97,10,10,32,32,32,32,105,102,32,108,101,110,40,98,41,32,61,61,32,49,58,10,32,32,32,32,32,32,32,32,113,44,32,114,32,61,32,117,108,111,110,103,95,100,105,118,109,111,100,105,40,97,44,32,98,91,48,93,41,10,32,32,32,32,32,32,32,32,114,44,32,95,32,61,32,117,108,111,110,103,95,102,114,111,109,105,110,116,40,114,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,113,44,32,114,10,10,32,32,32,32,109,97,120,32,61,32,40,108,101,110,40,97,41,32,45,32,108,101,110,40,98,41,41,32,42,32,80,121,76,111,110,103,95,83,72,73,70,84,32,43,32,92,10,32,32,32,32,32,32,32,32,40,97,91,45,49,93,46,98,105,116,95,108,101,110,103,116,104,40,41,32,45,32,98,91,45,49,93,46,98,105,116,95,108,101,110,103,116,104,40,41,41,10,10,32,32,32,32,108,111,119,32,61,32,91,48,93,10,10,32,32,32,32,104,105,103,104,32,61,32,40,109,97,120,32,47,47,32,80,121,76,111,110,103,95,83,72,73,70,84,41,32,42,32,91,48,93,32,43,32,92,10,32,32,32,32,32,32,32,32,91,40,50,42,42,40,109,97,120,32,37,32,80,121,76,111,110,103,95,83,72,73,70,84,41,41,32,38,32,80,121,76,111,110,103,95,77,65,83,75,93,10,10,32,32,32,32,119,104,105,108,101,32,117,108,111,110,103,95,99,109,112,40,108,111,119,44,32,104,105,103,104,41,32,60,32,48,58,10,32,32,32,32,32,32,32,32,117,108,111,110,103,95,105,110,99,95,40,104,105,103,104,41,10,32,32,32,32,32,32,32,32,109,105,100,44,32,114,32,61,32,117,108,111,110,103,95,100,105,118,109,111,100,105,40,117,108,111,110,103,95,97,100,100,40,108,111,119,44,32,104,105,103,104,41,44,32,50,41,10,32,32,32,32,32,32,32,32,105,102,32,117,108,111,110,103,95,99,109,112,40,97,44,32,117,108,111,110,103,95,109,117,108,40,98,44,32,109,105,100,41,41,32,62,61,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,108,111,119,32,61,32,109,105,100,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,104,105,103,104,32,61,32,117,108,111,110,103,95,115,117,98,40,109,105,100,44,32,91,49,93,41,10,10,32,32,32,32,113,32,61,32,91,48,93,32,42,32,40,108,101,110,40,97,41,32,45,32,108,101,110,40,98,41,32,43,32,49,41,10,32,32,32,32,119,104,105,108,101,32,117,108,111,110,103,95,99,109,112,40,97,44,32,117,108,111,110,103,95,109,117,108,40,98,44,32,108,111,119,41,41,32,62,61,32,48,58,10,32,32,32,32,32,32,32,32,113,32,61,32,117,108,111,110,103,95,97,100,100,40,113,44,32,108,111,119,41,10,32,32,32,32,32,32,32,32,97,32,61,32,117,108,111,110,103,95,115,117,98,40,97,44,32,117,108,111,110,103,95,109,117,108,40,98,44,32,108,111,119,41,41,10,32,32,32,32,117,108,111,110,103,95,117,110,112,97,100,95,40,113,41,10,32,32,32,32,114,101,116,117,114,110,32,113,44,32,97,10,10,100,101,102,32,117,108,111,110,103,95,102,108,111,111,114,100,105,118,105,40,97,58,32,108,105,115,116,44,32,98,58,32,105,110,116,41,58,10,32,32,32,32,35,32,98,32,62,32,48,10,32,32,32,32,114,101,116,117,114,110,32,117,108,111,110,103,95,100,105,118,109,111,100,105,40,97,44,32,98,41,91,48,93,10,10,100,101,102,32,117,108,111,110,103,95,109,117,108,105,40,97,58,32,108,105,115,116,44,32,98,58,32,105,110,116,41,58,10,32,32,32,32,35,32,98,32,62,61,32,48,10,32,32,32,32,114,101,115,32,61,32,91,48,93,32,42,32,108,101,110,40,97,41,10,32,32,32,32,99,97,114,114,121,32,61,32,48,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,97,41,41,58,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,43,61,32,97,91,105,93,32,42,32,98,10,32,32,32,32,32,32,32,32,114,101,115,91,105,93,32,61,32,99,97,114,114,121,32,38,32,80,121,76,111,110,103,95,77,65,83,75,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,62,62,61,32,80,121,76,111,110,103,95,83,72,73,70,84,10,32,32,32,32,105,102,32,99,97,114,114,121,32,62,32,48,58,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,99,97,114,114,121,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,117,108,111,110,103,95,109,117,108,40,97,58,32,108,105,115,116,44,32,98,58,32,108,105,115,116,41,58,10,32,32,32,32,78,32,61,32,108,101,110,40,97,41,32,43,32,108,101,110,40,98,41,10,32,32,32,32,35,32,117,115,101,32,103,114,97,100,101,45,115,99,104,111,111,108,32,109,117,108,116,105,112,108,105,99,97,116,105,111,110,10,32,32,32,32,114,101,115,32,61,32,91,48,93,32,42,32,78,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,97,110,103,101,40,108,101,110,40,97,41,41,58,10,32,32,32,32,32,32,32,32,99,97,114,114,121,32,61,32,48,10,32,32,32,32,32,32,32,32,102,111,114,32,106,32,105,110,32,114,97,110,103,101,40,108,101,110,40,98,41,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,114,114,121,32,43,61,32,114,101,115,91,105,43,106,93,32,43,32,97,91,105,93,32,42,32,98,91,106,93,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,115,91,105,43,106,93,32,61,32,99,97,114,114,121,32,38,32,80,121,76,111,110,103,95,77,65,83,75,10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,114,114,121,32,62,62,61,32,80,121,76,111,110,103,95,83,72,73,70,84,10,32,32,32,32,32,32,32,32,114,101,115,91,105,43,108,101,110,40,98,41,93,32,61,32,99,97,114,114,121,10,32,32,32,32,117,108,111,110,103,95,117,110,112,97,100,95,40,114,101,115,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,117,108,111,110,103,95,112,111,119,105,40,97,58,32,108,105,115,116,44,32,98,58,32,105,110,116,41,58,10,32,32,32,32,35,32,98,32,62,61,32,48,10,32,32,32,32,105,102,32,98,32,61,61,32,48,58,32,114,101,116,117,114,110,32,91,49,93,10,32,32,32,32,114,101,115,32,61,32,91,49,93,10,32,32,32,32,119,104,105,108,101,32,98,58,10,32,32,32,32,32,32,32,32,105,102,32,98,32,38,32,49,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,115,32,61,32,117,108,111,110,103,95,109,117,108,40,114,101,115,44,32,97,41,10,32,32,32,32,32,32,32,32,97,32,61,32,117,108,111,110,103,95,109,117,108,40,97,44,32,97,41,10,32,32,32,32,32,32,32,32,98,32,62,62,61,32,49,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,117,108,111,110,103,95,114,101,112,114,40,120,58,32,108,105,115,116,41,32,45,62,32,115,116,114,58,10,32,32,32,32,114,101,115,32,61,32,91,93,10,32,32,32,32,119,104,105,108,101,32,108,101,110,40,120,41,62,49,32,111,114,32,120,91,48,93,62,48,58,32,32,32,35,32,110,111,110,45,122,101,114,111,10,32,32,32,32,32,32,32,32,120,44,32,114,32,61,32,117,108,111,110,103,95,100,105,118,109,111,100,105,40,120,44,32,80,121,76,111,110,103,95,68,69,67,73,77,65,76,95,66,65,83,69,41,10,32,32,32,32,32,32,32,32,114,101,115,46,97,112,112,101,110,100,40,115,116,114,40,114,41,46,122,102,105,108,108,40,80,121,76,111,110,103,95,68,69,67,73,77,65,76,95,83,72,73,70,84,41,41,10,32,32,32,32,114,101,115,46,114,101,118,101,114,115,101,40,41,10,32,32,32,32,115,32,61,32,39,39,46,106,111,105,110,40,114,101,115,41,10,32,32,32,32,105,102,32,108,101,110,40,115,41,32,61,61,32,48,58,32,114,101,116,117,114,110,32,39,48,39,10,32,32,32,32,105,102,32,108,101,110,40,115,41,32,62,32,49,58,32,115,32,61,32,115,46,108,115,116,114,105,112,40,39,48,39,41,10,32,32,32,32,114,101,116,117,114,110,32,115,10,10,100,101,102,32,117,108,111,110,103,95,102,114,111,109,115,116,114,40,115,58,32,115,116,114,41,58,10,32,32,32,32,105,102,32,115,91,45,49,93,32,61,61,32,39,76,39,58,10,32,32,32,32,32,32,32,32,115,32,61,32,115,91,58,45,49,93,10,32,32,32,32,114,101,115,44,32,98,97,115,101,32,61,32,91,48,93,44,32,91,49,93,10,32,32,32,32,105,102,32,115,91,48,93,32,61,61,32,39,45,39,58,10,32,32,32,32,32,32,32,32,115,105,103,110,32,61,32,45,49,10,32,32,32,32,32,32,32,32,115,32,61,32,115,91,49,58,93,10,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,115,105,103,110,32,61,32,49,10,32,32,32,32,115,32,61,32,115,91,58,58,45,49,93,10,32,32,32,32,102,111,114,32,99,32,105,110,32,115,58,10,32,32,32,32,32,32,32,32,99,32,61,32,111,114,100,40,99,41,32,45,32,52,56,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,48,32,60,61,32,99,32,60,61,32,57,10,32,32,32,32,32,32,32,32,114,101,115,32,61,32,117,108,111,110,103,95,97,100,100,40,114,101,115,44,32,117,108,111,110,103,95,109,117,108,105,40,98,97,115,101,44,32,99,41,41,10,32,32,32,32,32,32,32,32,98,97,115,101,32,61,32,117,108,111,110,103,95,109,117,108,105,40,98,97,115,101,44,32,49,48,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,44,32,115,105,103,110,10,10,99,108,97,115,115,32,108,111,110,103,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,120,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,120,41,32,105,115,32,116,117,112,108,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,100,105,103,105,116,115,44,32,115,101,108,102,46,115,105,103,110,32,61,32,120,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,120,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,100,105,103,105,116,115,44,32,115,101,108,102,46,115,105,103,110,32,61,32,117,108,111,110,103,95,102,114,111,109,105,110,116,40,120,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,120,41,32,105,115,32,102,108,111,97,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,100,105,103,105,116,115,44,32,115,101,108,102,46,115,105,103,110,32,61,32,117,108,111,110,103,95,102,114,111,109,105,110,116,40,105,110,116,40,120,41,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,120,41,32,105,115,32,115,116,114,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,100,105,103,105,116,115,44,32,115,101,108,102,46,115,105,103,110,32,61,32,117,108,111,110,103,95,102,114,111,109,115,116,114,40,120,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,120,41,32,105,115,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,100,105,103,105,116,115,44,32,115,101,108,102,46,115,105,103,110,32,61,32,120,46,100,105,103,105,116,115,46,99,111,112,121,40,41,44,32,120,46,115,105,103,110,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,84,121,112,101,69,114,114,111,114,40,39,101,120,112,101,99,116,101,100,32,105,110,116,32,111,114,32,115,116,114,39,41,10,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,108,101,110,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,101,110,40,115,101,108,102,46,100,105,103,105,116,115,41,10,10,32,32,32,32,100,101,102,32,95,95,97,100,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,32,61,32,108,111,110,103,40,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,115,105,103,110,32,61,61,32,111,116,104,101,114,46,115,105,103,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,97,100,100,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,44,32,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,99,109,112,32,61,32,117,108,111,110,103,95,99,109,112,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,99,109,112,32,61,61,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,48,41,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,99,109,112,32,62,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,115,117,98,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,44,32,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,115,117,98,40,111,116,104,101,114,46,100,105,103,105,116,115,44,32,115,101,108,102,46,100,105,103,105,116,115,41,44,32,111,116,104,101,114,46,115,105,103,110,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,97,100,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,97,100,100,95,95,40,111,116,104,101,114,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,115,117,98,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,32,61,32,108,111,110,103,40,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,115,105,103,110,32,33,61,32,111,116,104,101,114,46,115,105,103,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,97,100,100,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,44,32,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,32,32,32,32,99,109,112,32,61,32,117,108,111,110,103,95,99,109,112,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,10,32,32,32,32,32,32,32,32,105,102,32,99,109,112,32,61,61,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,48,41,10,32,32,32,32,32,32,32,32,105,102,32,99,109,112,32,62,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,115,117,98,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,44,32,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,115,117,98,40,111,116,104,101,114,46,100,105,103,105,116,115,44,32,115,101,108,102,46,100,105,103,105,116,115,41,44,32,45,111,116,104,101,114,46,115,105,103,110,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,115,117,98,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,32,61,32,108,111,110,103,40,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,111,116,104,101,114,46,95,95,115,117,98,95,95,40,115,101,108,102,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,109,117,108,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,117,108,111,110,103,95,109,117,108,105,40,115,101,108,102,46,100,105,103,105,116,115,44,32,97,98,115,40,111,116,104,101,114,41,41,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,115,105,103,110,32,42,32,40,49,32,105,102,32,111,116,104,101,114,32,62,61,32,48,32,101,108,115,101,32,45,49,41,10,32,32,32,32,32,32,32,32,32,32,32,32,41,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,117,108,111,110,103,95,109,117,108,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,115,105,103,110,32,42,32,111,116,104,101,114,46,115,105,103,110,10,32,32,32,32,32,32,32,32,32,32,32,32,41,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,109,117,108,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,109,117,108,95,95,40,111,116,104,101,114,41,10,32,32,32,32,10,32,32,32,32,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,10,32,32,32,32,100,101,102,32,95,95,100,105,118,109,111,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,115,101,108,102,46,115,105,103,110,32,61,61,32,49,32,97,110,100,32,111,116,104,101,114,32,62,32,48,10,32,32,32,32,32,32,32,32,32,32,32,32,113,44,32,114,32,61,32,117,108,111,110,103,95,100,105,118,109,111,100,105,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,113,44,32,49,41,41,44,32,114,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,115,101,108,102,46,115,105,103,110,32,61,61,32,49,32,97,110,100,32,111,116,104,101,114,46,115,105,103,110,32,61,61,32,49,10,32,32,32,32,32,32,32,32,32,32,32,32,113,44,32,114,32,61,32,117,108,111,110,103,95,100,105,118,109,111,100,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,10,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,108,101,110,40,111,116,104,101,114,41,62,49,32,111,114,32,111,116,104,101,114,46,100,105,103,105,116,115,91,48,93,62,48,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,113,44,32,49,41,41,44,32,108,111,110,103,40,40,114,44,32,49,41,41,10,32,32,32,32,32,32,32,32,114,97,105,115,101,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,10,10,32,32,32,32,100,101,102,32,95,95,102,108,111,111,114,100,105,118,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,100,105,118,109,111,100,95,95,40,111,116,104,101,114,41,91,48,93,10,10,32,32,32,32,100,101,102,32,95,95,109,111,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,100,105,118,109,111,100,95,95,40,111,116,104,101,114,41,91,49,93,10,10,32,32,32,32,100,101,102,32,95,95,112,111,119,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,105,110,116,41,58,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,32,97,110,100,32,111,116,104,101,114,32,62,61,32,48,10,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,115,105,103,110,32,61,61,32,45,49,32,97,110,100,32,111,116,104,101,114,32,38,32,49,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,105,103,110,32,61,32,45,49,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,105,103,110,32,61,32,49,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,117,108,111,110,103,95,112,111,119,105,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,41,44,32,115,105,103,110,41,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,108,115,104,105,102,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,105,110,116,41,58,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,32,97,110,100,32,111,116,104,101,114,32,62,61,32,48,10,32,32,32,32,32,32,32,32,120,32,61,32,115,101,108,102,46,100,105,103,105,116,115,46,99,111,112,121,40,41,10,32,32,32,32,32,32,32,32,113,44,32,114,32,61,32,100,105,118,109,111,100,40,111,116,104,101,114,44,32,80,121,76,111,110,103,95,83,72,73,70,84,41,10,32,32,32,32,32,32,32,32,120,32,61,32,91,48,93,42,113,32,43,32,120,10,32,32,32,32,32,32,32,32,102,111,114,32,95,32,105,110,32,114,97,110,103,101,40,114,41,58,32,120,32,61,32,117,108,111,110,103,95,109,117,108,105,40,120,44,32,50,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,120,44,32,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,115,104,105,102,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,105,110,116,41,58,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,32,97,110,100,32,111,116,104,101,114,32,62,61,32,48,10,32,32,32,32,32,32,32,32,120,32,61,32,115,101,108,102,46,100,105,103,105,116,115,46,99,111,112,121,40,41,10,32,32,32,32,32,32,32,32,113,44,32,114,32,61,32,100,105,118,109,111,100,40,111,116,104,101,114,44,32,80,121,76,111,110,103,95,83,72,73,70,84,41,10,32,32,32,32,32,32,32,32,120,32,61,32,120,91,113,58,93,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,120,58,32,114,101,116,117,114,110,32,108,111,110,103,40,48,41,10,32,32,32,32,32,32,32,32,102,111,114,32,95,32,105,110,32,114,97,110,103,101,40,114,41,58,32,120,32,61,32,117,108,111,110,103,95,102,108,111,111,114,100,105,118,105,40,120,44,32,50,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,120,44,32,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,110,101,103,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,110,103,40,40,115,101,108,102,46,100,105,103,105,116,115,44,32,45,115,101,108,102,46,115,105,103,110,41,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,99,109,112,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,32,61,32,108,111,110,103,40,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,101,108,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,108,111,110,103,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,115,105,103,110,32,62,32,111,116,104,101,114,46,115,105,103,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,49,10,32,32,32,32,32,32,32,32,101,108,105,102,32,115,101,108,102,46,115,105,103,110,32,60,32,111,116,104,101,114,46,115,105,103,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,45,49,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,117,108,111,110,103,95,99,109,112,40,115,101,108,102,46,100,105,103,105,116,115,44,32,111,116,104,101,114,46,100,105,103,105,116,115,41,10,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,101,113,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,99,109,112,95,95,40,111,116,104,101,114,41,32,61,61,32,48,10,32,32,32,32,100,101,102,32,95,95,108,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,99,109,112,95,95,40,111,116,104,101,114,41,32,60,32,48,10,32,32,32,32,100,101,102,32,95,95,108,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,99,109,112,95,95,40,111,116,104,101,114,41,32,60,61,32,48,10,32,32,32,32,100,101,102,32,95,95,103,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,99,109,112,95,95,40,111,116,104,101,114,41,32,62,32,48,10,32,32,32,32,100,101,102,32,95,95,103,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,99,109,112,95,95,40,111,116,104,101,114,41,32,62,61,32,48,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,112,114,101,102,105,120,32,61,32,39,45,39,32,105,102,32,115,101,108,102,46,115,105,103,110,32,60,32,48,32,101,108,115,101,32,39,39,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,112,114,101,102,105,120,32,43,32,117,108,111,110,103,95,114,101,112,114,40,115,101,108,102,46,100,105,103,105,116,115,41,32,43,32,39,76,39,10,0}; + const char kPythonLibs__set[] = {99,108,97,115,115,32,115,101,116,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,105,116,101,114,97,98,108,101,61,78,111,110,101,41,58,10,32,32,32,32,32,32,32,32,105,116,101,114,97,98,108,101,32,61,32,105,116,101,114,97,98,108,101,32,111,114,32,91,93,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,97,32,61,32,123,125,10,32,32,32,32,32,32,32,32,115,101,108,102,46,117,112,100,97,116,101,40,105,116,101,114,97,98,108,101,41,10,10,32,32,32,32,100,101,102,32,97,100,100,40,115,101,108,102,44,32,101,108,101,109,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,97,91,101,108,101,109,93,32,61,32,78,111,110,101,10,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,100,105,115,99,97,114,100,40,115,101,108,102,44,32,101,108,101,109,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,97,46,112,111,112,40,101,108,101,109,44,32,78,111,110,101,41,10,10,32,32,32,32,100,101,102,32,114,101,109,111,118,101,40,115,101,108,102,44,32,101,108,101,109,41,58,10,32,32,32,32,32,32,32,32,100,101,108,32,115,101,108,102,46,95,97,91,101,108,101,109,93,10,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,99,108,101,97,114,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,97,46,99,108,101,97,114,40,41,10,10,32,32,32,32,100,101,102,32,117,112,100,97,116,101,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,102,111,114,32,101,108,101,109,32,105,110,32,111,116,104,101,114,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,97,100,100,40,101,108,101,109,41,10,10,32,32,32,32,100,101,102,32,95,95,108,101,110,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,101,110,40,115,101,108,102,46,95,97,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,99,111,112,121,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,116,40,115,101,108,102,46,95,97,46,107,101,121,115,40,41,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,97,110,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,123,101,108,101,109,32,102,111,114,32,101,108,101,109,32,105,110,32,115,101,108,102,32,105,102,32,101,108,101,109,32,105,110,32,111,116,104,101,114,125,10,10,32,32,32,32,100,101,102,32,95,95,115,117,98,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,123,101,108,101,109,32,102,111,114,32,101,108,101,109,32,105,110,32,115,101,108,102,32,105,102,32,101,108,101,109,32,110,111,116,32,105,110,32,111,116,104,101,114,125,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,111,114,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,32,61,32,115,101,108,102,46,99,111,112,121,40,41,10,32,32,32,32,32,32,32,32,114,101,116,46,117,112,100,97,116,101,40,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,116,10,10,32,32,32,32,100,101,102,32,95,95,120,111,114,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,32,10,32,32,32,32,32,32,32,32,95,48,32,61,32,115,101,108,102,32,45,32,111,116,104,101,114,10,32,32,32,32,32,32,32,32,95,49,32,61,32,111,116,104,101,114,32,45,32,115,101,108,102,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,95,48,32,124,32,95,49,10,10,32,32,32,32,100,101,102,32,117,110,105,111,110,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,32,124,32,111,116,104,101,114,10,10,32,32,32,32,100,101,102,32,105,110,116,101,114,115,101,99,116,105,111,110,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,32,38,32,111,116,104,101,114,10,10,32,32,32,32,100,101,102,32,100,105,102,102,101,114,101,110,99,101,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,32,45,32,111,116,104,101,114,10,10,32,32,32,32,100,101,102,32,115,121,109,109,101,116,114,105,99,95,100,105,102,102,101,114,101,110,99,101,40,115,101,108,102,44,32,111,116,104,101,114,41,58,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,32,94,32,111,116,104,101,114,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,101,113,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,105,115,105,110,115,116,97,110,99,101,40,111,116,104,101,114,44,32,115,101,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,101,110,40,115,101,108,102,32,94,32,111,116,104,101,114,41,32,61,61,32,48,10,10,32,32,32,32,100,101,102,32,105,115,100,105,115,106,111,105,110,116,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,101,110,40,115,101,108,102,32,38,32,111,116,104,101,114,41,32,61,61,32,48,10,32,32,32,32,10,32,32,32,32,100,101,102,32,105,115,115,117,98,115,101,116,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,101,110,40,115,101,108,102,32,45,32,111,116,104,101,114,41,32,61,61,32,48,10,32,32,32,32,10,32,32,32,32,100,101,102,32,105,115,115,117,112,101,114,115,101,116,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,101,110,40,111,116,104,101,114,32,45,32,115,101,108,102,41,32,61,61,32,48,10,10,32,32,32,32,100,101,102,32,95,95,99,111,110,116,97,105,110,115,95,95,40,115,101,108,102,44,32,101,108,101,109,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,101,108,101,109,32,105,110,32,115,101,108,102,46,95,97,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,105,102,32,108,101,110,40,115,101,108,102,41,32,61,61,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,115,101,116,40,41,39,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,123,39,43,32,39,44,32,39,46,106,111,105,110,40,91,114,101,112,114,40,105,41,32,102,111,114,32,105,32,105,110,32,115,101,108,102,46,95,97,46,107,101,121,115,40,41,93,41,32,43,32,39,125,39,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,105,116,101,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,105,116,101,114,40,115,101,108,102,46,95,97,46,107,101,121,115,40,41,41,0}; + const char kPythonLibs_bisect[] = {34,34,34,66,105,115,101,99,116,105,111,110,32,97,108,103,111,114,105,116,104,109,115,46,34,34,34,10,10,100,101,102,32,105,110,115,111,114,116,95,114,105,103,104,116,40,97,44,32,120,44,32,108,111,61,48,44,32,104,105,61,78,111,110,101,41,58,10,32,32,32,32,34,34,34,73,110,115,101,114,116,32,105,116,101,109,32,120,32,105,110,32,108,105,115,116,32,97,44,32,97,110,100,32,107,101,101,112,32,105,116,32,115,111,114,116,101,100,32,97,115,115,117,109,105,110,103,32,97,32,105,115,32,115,111,114,116,101,100,46,10,10,32,32,32,32,73,102,32,120,32,105,115,32,97,108,114,101,97,100,121,32,105,110,32,97,44,32,105,110,115,101,114,116,32,105,116,32,116,111,32,116,104,101,32,114,105,103,104,116,32,111,102,32,116,104,101,32,114,105,103,104,116,109,111,115,116,32,120,46,10,10,32,32,32,32,79,112,116,105,111,110,97,108,32,97,114,103,115,32,108,111,32,40,100,101,102,97,117,108,116,32,48,41,32,97,110,100,32,104,105,32,40,100,101,102,97,117,108,116,32,108,101,110,40,97,41,41,32,98,111,117,110,100,32,116,104,101,10,32,32,32,32,115,108,105,99,101,32,111,102,32,97,32,116,111,32,98,101,32,115,101,97,114,99,104,101,100,46,10,32,32,32,32,34,34,34,10,10,32,32,32,32,108,111,32,61,32,98,105,115,101,99,116,95,114,105,103,104,116,40,97,44,32,120,44,32,108,111,44,32,104,105,41,10,32,32,32,32,97,46,105,110,115,101,114,116,40,108,111,44,32,120,41,10,10,100,101,102,32,98,105,115,101,99,116,95,114,105,103,104,116,40,97,44,32,120,44,32,108,111,61,48,44,32,104,105,61,78,111,110,101,41,58,10,32,32,32,32,34,34,34,82,101,116,117,114,110,32,116,104,101,32,105,110,100,101,120,32,119,104,101,114,101,32,116,111,32,105,110,115,101,114,116,32,105,116,101,109,32,120,32,105,110,32,108,105,115,116,32,97,44,32,97,115,115,117,109,105,110,103,32,97,32,105,115,32,115,111,114,116,101,100,46,10,10,32,32,32,32,84,104,101,32,114,101,116,117,114,110,32,118,97,108,117,101,32,105,32,105,115,32,115,117,99,104,32,116,104,97,116,32,97,108,108,32,101,32,105,110,32,97,91,58,105,93,32,104,97,118,101,32,101,32,60,61,32,120,44,32,97,110,100,32,97,108,108,32,101,32,105,110,10,32,32,32,32,97,91,105,58,93,32,104,97,118,101,32,101,32,62,32,120,46,32,32,83,111,32,105,102,32,120,32,97,108,114,101,97,100,121,32,97,112,112,101,97,114,115,32,105,110,32,116,104,101,32,108,105,115,116,44,32,97,46,105,110,115,101,114,116,40,120,41,32,119,105,108,108,10,32,32,32,32,105,110,115,101,114,116,32,106,117,115,116,32,97,102,116,101,114,32,116,104,101,32,114,105,103,104,116,109,111,115,116,32,120,32,97,108,114,101,97,100,121,32,116,104,101,114,101,46,10,10,32,32,32,32,79,112,116,105,111,110,97,108,32,97,114,103,115,32,108,111,32,40,100,101,102,97,117,108,116,32,48,41,32,97,110,100,32,104,105,32,40,100,101,102,97,117,108,116,32,108,101,110,40,97,41,41,32,98,111,117,110,100,32,116,104,101,10,32,32,32,32,115,108,105,99,101,32,111,102,32,97,32,116,111,32,98,101,32,115,101,97,114,99,104,101,100,46,10,32,32,32,32,34,34,34,10,10,32,32,32,32,105,102,32,108,111,32,60,32,48,58,10,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,39,108,111,32,109,117,115,116,32,98,101,32,110,111,110,45,110,101,103,97,116,105,118,101,39,41,10,32,32,32,32,105,102,32,104,105,32,105,115,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,104,105,32,61,32,108,101,110,40,97,41,10,32,32,32,32,119,104,105,108,101,32,108,111,32,60,32,104,105,58,10,32,32,32,32,32,32,32,32,109,105,100,32,61,32,40,108,111,43,104,105,41,47,47,50,10,32,32,32,32,32,32,32,32,105,102,32,120,32,60,32,97,91,109,105,100,93,58,32,104,105,32,61,32,109,105,100,10,32,32,32,32,32,32,32,32,101,108,115,101,58,32,108,111,32,61,32,109,105,100,43,49,10,32,32,32,32,114,101,116,117,114,110,32,108,111,10,10,100,101,102,32,105,110,115,111,114,116,95,108,101,102,116,40,97,44,32,120,44,32,108,111,61,48,44,32,104,105,61,78,111,110,101,41,58,10,32,32,32,32,34,34,34,73,110,115,101,114,116,32,105,116,101,109,32,120,32,105,110,32,108,105,115,116,32,97,44,32,97,110,100,32,107,101,101,112,32,105,116,32,115,111,114,116,101,100,32,97,115,115,117,109,105,110,103,32,97,32,105,115,32,115,111,114,116,101,100,46,10,10,32,32,32,32,73,102,32,120,32,105,115,32,97,108,114,101,97,100,121,32,105,110,32,97,44,32,105,110,115,101,114,116,32,105,116,32,116,111,32,116,104,101,32,108,101,102,116,32,111,102,32,116,104,101,32,108,101,102,116,109,111,115,116,32,120,46,10,10,32,32,32,32,79,112,116,105,111,110,97,108,32,97,114,103,115,32,108,111,32,40,100,101,102,97,117,108,116,32,48,41,32,97,110,100,32,104,105,32,40,100,101,102,97,117,108,116,32,108,101,110,40,97,41,41,32,98,111,117,110,100,32,116,104,101,10,32,32,32,32,115,108,105,99,101,32,111,102,32,97,32,116,111,32,98,101,32,115,101,97,114,99,104,101,100,46,10,32,32,32,32,34,34,34,10,10,32,32,32,32,108,111,32,61,32,98,105,115,101,99,116,95,108,101,102,116,40,97,44,32,120,44,32,108,111,44,32,104,105,41,10,32,32,32,32,97,46,105,110,115,101,114,116,40,108,111,44,32,120,41,10,10,10,100,101,102,32,98,105,115,101,99,116,95,108,101,102,116,40,97,44,32,120,44,32,108,111,61,48,44,32,104,105,61,78,111,110,101,41,58,10,32,32,32,32,34,34,34,82,101,116,117,114,110,32,116,104,101,32,105,110,100,101,120,32,119,104,101,114,101,32,116,111,32,105,110,115,101,114,116,32,105,116,101,109,32,120,32,105,110,32,108,105,115,116,32,97,44,32,97,115,115,117,109,105,110,103,32,97,32,105,115,32,115,111,114,116,101,100,46,10,10,32,32,32,32,84,104,101,32,114,101,116,117,114,110,32,118,97,108,117,101,32,105,32,105,115,32,115,117,99,104,32,116,104,97,116,32,97,108,108,32,101,32,105,110,32,97,91,58,105,93,32,104,97,118,101,32,101,32,60,32,120,44,32,97,110,100,32,97,108,108,32,101,32,105,110,10,32,32,32,32,97,91,105,58,93,32,104,97,118,101,32,101,32,62,61,32,120,46,32,32,83,111,32,105,102,32,120,32,97,108,114,101,97,100,121,32,97,112,112,101,97,114,115,32,105,110,32,116,104,101,32,108,105,115,116,44,32,97,46,105,110,115,101,114,116,40,120,41,32,119,105,108,108,10,32,32,32,32,105,110,115,101,114,116,32,106,117,115,116,32,98,101,102,111,114,101,32,116,104,101,32,108,101,102,116,109,111,115,116,32,120,32,97,108,114,101,97,100,121,32,116,104,101,114,101,46,10,10,32,32,32,32,79,112,116,105,111,110,97,108,32,97,114,103,115,32,108,111,32,40,100,101,102,97,117,108,116,32,48,41,32,97,110,100,32,104,105,32,40,100,101,102,97,117,108,116,32,108,101,110,40,97,41,41,32,98,111,117,110,100,32,116,104,101,10,32,32,32,32,115,108,105,99,101,32,111,102,32,97,32,116,111,32,98,101,32,115,101,97,114,99,104,101,100,46,10,32,32,32,32,34,34,34,10,10,32,32,32,32,105,102,32,108,111,32,60,32,48,58,10,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,39,108,111,32,109,117,115,116,32,98,101,32,110,111,110,45,110,101,103,97,116,105,118,101,39,41,10,32,32,32,32,105,102,32,104,105,32,105,115,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,104,105,32,61,32,108,101,110,40,97,41,10,32,32,32,32,119,104,105,108,101,32,108,111,32,60,32,104,105,58,10,32,32,32,32,32,32,32,32,109,105,100,32,61,32,40,108,111,43,104,105,41,47,47,50,10,32,32,32,32,32,32,32,32,105,102,32,97,91,109,105,100,93,32,60,32,120,58,32,108,111,32,61,32,109,105,100,43,49,10,32,32,32,32,32,32,32,32,101,108,115,101,58,32,104,105,32,61,32,109,105,100,10,32,32,32,32,114,101,116,117,114,110,32,108,111,10,10,35,32,67,114,101,97,116,101,32,97,108,105,97,115,101,115,10,98,105,115,101,99,116,32,61,32,98,105,115,101,99,116,95,114,105,103,104,116,10,105,110,115,111,114,116,32,61,32,105,110,115,111,114,116,95,114,105,103,104,116,10,0}; + const char kPythonLibs_builtins[] = {102,114,111,109,32,111,112,101,114,97,116,111,114,32,105,109,112,111,114,116,32,108,116,32,97,115,32,95,95,111,112,101,114,97,116,111,114,95,108,116,10,102,114,111,109,32,111,112,101,114,97,116,111,114,32,105,109,112,111,114,116,32,103,116,32,97,115,32,95,95,111,112,101,114,97,116,111,114,95,103,116,10,102,114,111,109,32,95,95,98,117,105,108,116,105,110,115,32,105,109,112,111,114,116,32,110,101,120,116,32,97,115,32,95,95,98,117,105,108,116,105,110,115,95,110,101,120,116,10,10,100,101,102,32,95,95,109,105,110,109,97,120,95,114,101,100,117,99,101,40,111,112,44,32,97,114,103,115,44,32,107,101,121,41,58,10,32,32,32,32,105,102,32,107,101,121,32,105,115,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,105,102,32,108,101,110,40,97,114,103,115,41,32,61,61,32,50,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,114,103,115,91,48,93,32,105,102,32,111,112,40,97,114,103,115,91,48,93,44,32,97,114,103,115,91,49,93,41,32,101,108,115,101,32,97,114,103,115,91,49,93,10,32,32,32,32,105,102,32,108,101,110,40,97,114,103,115,41,32,61,61,32,48,58,10,32,32,32,32,32,32,32,32,114,97,105,115,101,32,84,121,112,101,69,114,114,111,114,40,39,101,120,112,101,99,116,101,100,32,49,32,97,114,103,117,109,101,110,116,115,44,32,103,111,116,32,48,39,41,10,32,32,32,32,105,102,32,108,101,110,40,97,114,103,115,41,32,61,61,32,49,58,10,32,32,32,32,32,32,32,32,97,114,103,115,32,61,32,97,114,103,115,91,48,93,10,32,32,32,32,97,114,103,115,32,61,32,105,116,101,114,40,97,114,103,115,41,10,32,32,32,32,114,101,115,32,61,32,95,95,98,117,105,108,116,105,110,115,95,110,101,120,116,40,97,114,103,115,41,10,32,32,32,32,105,102,32,114,101,115,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,58,10,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,39,97,114,103,115,32,105,115,32,97,110,32,101,109,112,116,121,32,115,101,113,117,101,110,99,101,39,41,10,32,32,32,32,119,104,105,108,101,32,84,114,117,101,58,10,32,32,32,32,32,32,32,32,105,32,61,32,95,95,98,117,105,108,116,105,110,115,95,110,101,120,116,40,97,114,103,115,41,10,32,32,32,32,32,32,32,32,105,102,32,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,10,32,32,32,32,32,32,32,32,105,102,32,107,101,121,32,105,115,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,111,112,40,105,44,32,114,101,115,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,115,32,61,32,105,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,111,112,40,107,101,121,40,105,41,44,32,107,101,121,40,114,101,115,41,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,115,32,61,32,105,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,109,105,110,40,42,97,114,103,115,44,32,107,101,121,61,78,111,110,101,41,58,10,32,32,32,32,114,101,116,117,114,110,32,95,95,109,105,110,109,97,120,95,114,101,100,117,99,101,40,95,95,111,112,101,114,97,116,111,114,95,108,116,44,32,97,114,103,115,44,32,107,101,121,41,10,10,100,101,102,32,109,97,120,40,42,97,114,103,115,44,32,107,101,121,61,78,111,110,101,41,58,10,32,32,32,32,114,101,116,117,114,110,32,95,95,109,105,110,109,97,120,95,114,101,100,117,99,101,40,95,95,111,112,101,114,97,116,111,114,95,103,116,44,32,97,114,103,115,44,32,107,101,121,41,10,10,100,101,102,32,97,108,108,40,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,102,111,114,32,105,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,105,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,70,97,108,115,101,10,32,32,32,32,114,101,116,117,114,110,32,84,114,117,101,10,10,100,101,102,32,97,110,121,40,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,102,111,114,32,105,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,105,102,32,105,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,84,114,117,101,10,32,32,32,32,114,101,116,117,114,110,32,70,97,108,115,101,10,10,100,101,102,32,101,110,117,109,101,114,97,116,101,40,105,116,101,114,97,98,108,101,44,32,115,116,97,114,116,61,48,41,58,10,32,32,32,32,110,32,61,32,115,116,97,114,116,10,32,32,32,32,102,111,114,32,101,108,101,109,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,121,105,101,108,100,32,110,44,32,101,108,101,109,10,32,32,32,32,32,32,32,32,43,43,110,10,10,100,101,102,32,115,117,109,40,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,114,101,115,32,61,32,48,10,32,32,32,32,102,111,114,32,105,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,114,101,115,32,43,61,32,105,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,10,10,100,101,102,32,109,97,112,40,102,44,32,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,102,111,114,32,105,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,121,105,101,108,100,32,102,40,105,41,10,10,100,101,102,32,102,105,108,116,101,114,40,102,44,32,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,102,111,114,32,105,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,105,102,32,102,40,105,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,121,105,101,108,100,32,105,10,10,100,101,102,32,122,105,112,40,97,44,32,98,41,58,10,32,32,32,32,97,32,61,32,105,116,101,114,40,97,41,10,32,32,32,32,98,32,61,32,105,116,101,114,40,98,41,10,32,32,32,32,119,104,105,108,101,32,84,114,117,101,58,10,32,32,32,32,32,32,32,32,97,105,32,61,32,95,95,98,117,105,108,116,105,110,115,95,110,101,120,116,40,97,41,10,32,32,32,32,32,32,32,32,98,105,32,61,32,95,95,98,117,105,108,116,105,110,115,95,110,101,120,116,40,98,41,10,32,32,32,32,32,32,32,32,105,102,32,97,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,32,111,114,32,98,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,10,32,32,32,32,32,32,32,32,121,105,101,108,100,32,97,105,44,32,98,105,10,10,100,101,102,32,114,101,118,101,114,115,101,100,40,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,97,32,61,32,108,105,115,116,40,105,116,101,114,97,98,108,101,41,10,32,32,32,32,97,46,114,101,118,101,114,115,101,40,41,10,32,32,32,32,114,101,116,117,114,110,32,97,10,10,100,101,102,32,115,111,114,116,101,100,40,105,116,101,114,97,98,108,101,44,32,107,101,121,61,78,111,110,101,44,32,114,101,118,101,114,115,101,61,70,97,108,115,101,41,58,10,32,32,32,32,97,32,61,32,108,105,115,116,40,105,116,101,114,97,98,108,101,41,10,32,32,32,32,97,46,115,111,114,116,40,107,101,121,61,107,101,121,44,32,114,101,118,101,114,115,101,61,114,101,118,101,114,115,101,41,10,32,32,32,32,114,101,116,117,114,110,32,97,10,10,35,35,35,35,35,32,115,116,114,32,35,35,35,35,35,10,100,101,102,32,95,95,102,111,114,109,97,116,95,115,116,114,105,110,103,40,115,101,108,102,58,32,115,116,114,44,32,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,32,45,62,32,115,116,114,58,10,32,32,32,32,100,101,102,32,116,111,107,101,110,105,122,101,83,116,114,105,110,103,40,115,58,32,115,116,114,41,58,10,32,32,32,32,32,32,32,32,116,111,107,101,110,115,32,61,32,91,93,10,32,32,32,32,32,32,32,32,76,44,32,82,32,61,32,48,44,48,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,109,111,100,101,32,61,32,78,111,110,101,10,32,32,32,32,32,32,32,32,99,117,114,65,114,103,32,61,32,48,10,32,32,32,32,32,32,32,32,35,32,108,111,111,107,105,110,103,70,111,114,75,119,111,114,100,32,61,32,70,97,108,115,101,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,119,104,105,108,101,40,82,60,108,101,110,40,115,41,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,99,117,114,67,104,97,114,32,61,32,115,91,82,93,10,32,32,32,32,32,32,32,32,32,32,32,32,110,101,120,116,67,104,97,114,32,61,32,115,91,82,43,49,93,32,105,102,32,82,43,49,60,108,101,110,40,115,41,32,101,108,115,101,32,39,39,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,35,32,73,110,118,97,108,105,100,32,99,97,115,101,32,49,58,32,115,116,114,97,121,32,39,125,39,32,101,110,99,111,117,110,116,101,114,101,100,44,32,101,120,97,109,112,108,101,58,32,34,65,66,67,68,32,69,70,71,72,32,123,110,97,109,101,125,32,73,74,75,76,125,34,44,32,34,72,101,108,108,111,32,123,118,118,125,125,34,44,32,34,72,69,76,76,79,32,123,48,125,32,87,79,82,76,68,125,34,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,99,117,114,67,104,97,114,32,61,61,32,39,125,39,32,97,110,100,32,110,101,120,116,67,104,97,114,32,33,61,32,39,125,39,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,83,105,110,103,108,101,32,39,125,39,32,101,110,99,111,117,110,116,101,114,101,100,32,105,110,32,102,111,114,109,97,116,32,115,116,114,105,110,103,34,41,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,35,32,86,97,108,105,100,32,67,97,115,101,32,49,58,32,69,115,99,97,112,105,110,103,32,99,97,115,101,44,32,119,101,32,101,115,99,97,112,101,32,34,123,123,32,111,114,32,34,125,125,34,32,116,111,32,98,101,32,34,123,34,32,111,114,32,34,125,34,44,32,101,120,97,109,112,108,101,58,32,34,123,123,125,125,34,44,32,34,123,123,77,121,32,78,97,109,101,32,105,115,32,123,48,125,125,125,34,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,99,117,114,67,104,97,114,32,61,61,32,39,123,39,32,97,110,100,32,110,101,120,116,67,104,97,114,32,61,61,32,39,123,39,41,32,111,114,32,40,99,117,114,67,104,97,114,32,61,61,32,39,125,39,32,97,110,100,32,110,101,120,116,67,104,97,114,32,61,61,32,39,125,39,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,76,60,82,41,58,32,35,32,86,97,108,105,100,32,67,97,115,101,32,49,46,49,58,32,109,97,107,101,32,115,117,114,101,32,119,101,32,97,114,101,32,110,111,116,32,97,100,100,105,110,103,32,101,109,112,116,121,32,115,116,114,105,110,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,91,76,58,82,93,41,32,35,32,97,100,100,32,116,104,101,32,115,116,114,105,110,103,32,98,101,102,111,114,101,32,116,104,101,32,101,115,99,97,112,101,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,99,117,114,67,104,97,114,41,32,35,32,86,97,108,105,100,32,67,97,115,101,32,49,46,50,58,32,97,100,100,32,116,104,101,32,101,115,99,97,112,101,32,99,104,97,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,76,32,61,32,82,43,50,32,35,32,109,111,118,101,32,116,104,101,32,108,101,102,116,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,110,101,120,116,32,99,104,97,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,82,32,61,32,82,43,50,32,35,32,109,111,118,101,32,116,104,101,32,114,105,103,104,116,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,110,101,120,116,32,99,104,97,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,116,105,110,117,101,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,35,32,86,97,108,105,100,32,67,97,115,101,32,50,58,32,82,101,103,117,108,97,114,32,99,111,109,109,97,110,100,32,108,105,110,101,32,97,114,103,32,99,97,115,101,58,32,101,120,97,109,112,108,101,58,32,32,34,65,66,67,68,32,69,70,71,72,32,123,125,32,73,74,75,76,34,44,32,34,123,125,34,44,32,34,72,69,76,76,79,32,123,125,32,87,79,82,76,68,34,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,105,102,32,99,117,114,67,104,97,114,32,61,61,32,39,123,39,32,97,110,100,32,110,101,120,116,67,104,97,114,32,61,61,32,39,125,39,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,109,111,100,101,32,105,115,32,110,111,116,32,78,111,110,101,32,97,110,100,32,109,111,100,101,32,33,61,32,39,97,117,116,111,39,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,32,73,110,118,97,108,105,100,32,99,97,115,101,32,50,58,32,109,105,120,105,110,103,32,97,117,116,111,109,97,116,105,99,32,97,110,100,32,109,97,110,117,97,108,32,102,105,101,108,100,32,115,112,101,99,105,102,105,99,97,116,105,111,110,115,32,45,45,32,101,120,97,109,112,108,101,58,32,34,65,66,67,68,32,69,70,71,72,32,123,110,97,109,101,125,32,73,74,75,76,32,123,125,34,44,32,34,72,101,108,108,111,32,123,118,118,125,32,123,125,34,44,32,34,72,69,76,76,79,32,123,48,125,32,87,79,82,76,68,32,123,125,34,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,67,97,110,110,111,116,32,115,119,105,116,99,104,32,102,114,111,109,32,109,97,110,117,97,108,32,102,105,101,108,100,32,110,117,109,98,101,114,105,110,103,32,116,111,32,97,117,116,111,109,97,116,105,99,32,102,105,101,108,100,32,115,112,101,99,105,102,105,99,97,116,105,111,110,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,109,111,100,101,32,61,32,39,97,117,116,111,39,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,40,76,60,82,41,58,32,35,32,86,97,108,105,100,32,67,97,115,101,32,50,46,49,58,32,109,97,107,101,32,115,117,114,101,32,119,101,32,97,114,101,32,110,111,116,32,97,100,100,105,110,103,32,101,109,112,116,121,32,115,116,114,105,110,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,91,76,58,82,93,41,32,35,32,97,100,100,32,116,104,101,32,115,116,114,105,110,103,32,98,101,102,111,114,101,32,116,104,101,32,115,112,101,99,105,97,108,32,109,97,114,107,101,114,32,102,111,114,32,116,104,101,32,97,114,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,34,123,34,43,115,116,114,40,99,117,114,65,114,103,41,43,34,125,34,41,32,35,32,86,97,108,105,100,32,67,97,115,101,32,50,46,50,58,32,97,100,100,32,116,104,101,32,115,112,101,99,105,97,108,32,109,97,114,107,101,114,32,102,111,114,32,116,104,101,32,97,114,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,117,114,65,114,103,43,61,49,32,35,32,105,110,99,114,101,109,101,110,116,32,116,104,101,32,97,114,103,32,112,111,115,105,116,105,111,110,44,32,116,104,105,115,32,119,105,108,108,32,98,101,32,117,115,101,100,32,102,111,114,32,114,101,102,101,114,101,110,99,105,110,103,32,116,104,101,32,97,114,103,32,108,97,116,101,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,76,32,61,32,82,43,50,32,35,32,109,111,118,101,32,116,104,101,32,108,101,102,116,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,110,101,120,116,32,99,104,97,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,82,32,61,32,82,43,50,32,35,32,109,111,118,101,32,116,104,101,32,114,105,103,104,116,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,110,101,120,116,32,99,104,97,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,116,105,110,117,101,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,35,32,86,97,108,105,100,32,67,97,115,101,32,51,58,32,75,101,121,45,119,111,114,100,32,97,114,103,32,99,97,115,101,58,32,101,120,97,109,112,108,101,58,32,34,65,66,67,68,32,69,70,71,72,32,123,110,97,109,101,125,32,73,74,75,76,34,44,32,34,72,101,108,108,111,32,123,118,118,125,34,44,32,34,72,69,76,76,79,32,123,110,97,109,101,125,32,87,79,82,76,68,34,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,105,102,32,40,99,117,114,67,104,97,114,32,61,61,32,39,123,39,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,109,111,100,101,32,105,115,32,110,111,116,32,78,111,110,101,32,97,110,100,32,109,111,100,101,32,33,61,32,39,109,97,110,117,97,108,39,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,32,35,32,73,110,118,97,108,105,100,32,99,97,115,101,32,50,58,32,109,105,120,105,110,103,32,97,117,116,111,109,97,116,105,99,32,97,110,100,32,109,97,110,117,97,108,32,102,105,101,108,100,32,115,112,101,99,105,102,105,99,97,116,105,111,110,115,32,45,45,32,101,120,97,109,112,108,101,58,32,34,65,66,67,68,32,69,70,71,72,32,123,125,32,73,74,75,76,32,123,110,97,109,101,125,34,44,32,34,72,101,108,108,111,32,123,125,32,123,49,125,34,44,32,34,72,69,76,76,79,32,123,125,32,87,79,82,76,68,32,123,110,97,109,101,125,34,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,67,97,110,110,111,116,32,115,119,105,116,99,104,32,102,114,111,109,32,97,117,116,111,109,97,116,105,99,32,102,105,101,108,100,32,115,112,101,99,105,102,105,99,97,116,105,111,110,32,116,111,32,109,97,110,117,97,108,32,102,105,101,108,100,32,110,117,109,98,101,114,105,110,103,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,109,111,100,101,32,61,32,39,109,97,110,117,97,108,39,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,40,76,60,82,41,58,32,35,32,86,97,108,105,100,32,99,97,115,101,32,51,46,49,58,32,109,97,107,101,32,115,117,114,101,32,119,101,32,97,114,101,32,110,111,116,32,97,100,100,105,110,103,32,101,109,112,116,121,32,115,116,114,105,110,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,91,76,58,82,93,41,32,35,32,97,100,100,32,116,104,101,32,115,116,114,105,110,103,32,98,101,102,111,114,101,32,116,104,101,32,115,112,101,99,105,97,108,32,109,97,114,107,101,114,32,102,111,114,32,116,104,101,32,97,114,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,32,87,101,32,108,111,111,107,32,102,111,114,32,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,107,101,121,119,111,114,100,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,119,76,32,61,32,82,32,35,32,75,101,121,119,111,114,100,32,108,101,102,116,32,112,111,105,110,116,101,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,119,82,32,61,32,82,43,49,32,35,32,75,101,121,119,111,114,100,32,114,105,103,104,116,32,112,111,105,110,116,101,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,119,104,105,108,101,40,107,119,82,60,108,101,110,40,115,41,32,97,110,100,32,115,91,107,119,82,93,33,61,39,125,39,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,115,91,107,119,82,93,32,61,61,32,39,123,39,58,32,35,32,73,110,118,97,108,105,100,32,99,97,115,101,32,51,58,32,115,116,114,97,121,32,39,123,39,32,101,110,99,111,117,110,116,101,114,101,100,44,32,101,120,97,109,112,108,101,58,32,34,65,66,67,68,32,69,70,71,72,32,123,110,123,97,109,101,125,32,73,74,75,76,32,123,34,44,32,34,72,101,108,108,111,32,123,118,118,123,125,125,34,44,32,34,72,69,76,76,79,32,123,48,125,32,87,79,82,123,76,68,125,34,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,85,110,101,120,112,101,99,116,101,100,32,39,123,39,32,105,110,32,102,105,101,108,100,32,110,97,109,101,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,119,82,32,43,61,32,49,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,32,86,97,108,105,100,32,99,97,115,101,32,51,46,50,58,32,87,101,32,104,97,118,101,32,115,117,99,99,101,115,115,102,117,108,108,121,32,102,111,117,110,100,32,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,107,101,121,119,111,114,100,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,107,119,82,60,108,101,110,40,115,41,32,97,110,100,32,115,91,107,119,82,93,32,61,61,32,39,125,39,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,91,107,119,76,58,107,119,82,43,49,93,41,32,35,32,97,100,100,32,116,104,101,32,115,112,101,99,105,97,108,32,109,97,114,107,101,114,32,102,111,114,32,116,104,101,32,97,114,103,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,76,32,61,32,107,119,82,43,49,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,82,32,61,32,107,119,82,43,49,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,32,73,110,118,97,108,105,100,32,99,97,115,101,32,52,58,32,87,101,32,100,105,100,110,39,116,32,102,105,110,100,32,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,107,101,121,119,111,114,100,44,32,116,104,114,111,119,32,101,114,114,111,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,69,120,112,101,99,116,101,100,32,39,125,39,32,98,101,102,111,114,101,32,101,110,100,32,111,102,32,115,116,114,105,110,103,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,116,105,110,117,101,10,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,82,32,61,32,82,43,49,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,35,32,86,97,108,105,100,32,99,97,115,101,32,52,58,32,87,101,32,104,97,118,101,32,114,101,97,99,104,101,100,32,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,115,116,114,105,110,103,44,32,97,100,100,32,116,104,101,32,114,101,109,97,105,110,105,110,103,32,115,116,114,105,110,103,32,116,111,32,116,104,101,32,116,111,107,101,110,115,32,10,32,32,32,32,32,32,32,32,105,102,32,76,60,82,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,91,76,58,82,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,35,32,112,114,105,110,116,40,116,111,107,101,110,115,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,111,107,101,110,115,10,10,32,32,32,32,116,111,107,101,110,115,32,61,32,116,111,107,101,110,105,122,101,83,116,114,105,110,103,40,115,101,108,102,41,10,32,32,32,32,97,114,103,77,97,112,32,61,32,123,125,10,32,32,32,32,102,111,114,32,105,44,32,97,32,105,110,32,101,110,117,109,101,114,97,116,101,40,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,97,114,103,77,97,112,91,115,116,114,40,105,41,93,32,61,32,97,10,32,32,32,32,102,105,110,97,108,95,116,111,107,101,110,115,32,61,32,91,93,10,32,32,32,32,102,111,114,32,116,32,105,110,32,116,111,107,101,110,115,58,10,32,32,32,32,32,32,32,32,105,102,32,116,91,48,93,32,61,61,32,39,123,39,32,97,110,100,32,116,91,45,49,93,32,61,61,32,39,125,39,58,10,32,32,32,32,32,32,32,32,32,32,32,32,107,101,121,32,61,32,116,91,49,58,45,49,93,10,32,32,32,32,32,32,32,32,32,32,32,32,97,114,103,77,97,112,86,97,108,32,61,32,97,114,103,77,97,112,46,103,101,116,40,107,101,121,44,32,78,111,110,101,41,10,32,32,32,32,32,32,32,32,32,32,32,32,107,119,97,114,103,115,86,97,108,32,61,32,107,119,97,114,103,115,46,103,101,116,40,107,101,121,44,32,78,111,110,101,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,97,114,103,77,97,112,86,97,108,32,105,115,32,78,111,110,101,32,97,110,100,32,107,119,97,114,103,115,86,97,108,32,105,115,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,78,111,32,97,114,103,32,102,111,117,110,100,32,102,111,114,32,116,111,107,101,110,58,32,34,43,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,105,102,32,97,114,103,77,97,112,86,97,108,32,105,115,32,110,111,116,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,105,110,97,108,95,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,116,114,40,97,114,103,77,97,112,86,97,108,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,105,110,97,108,95,116,111,107,101,110,115,46,97,112,112,101,110,100,40,115,116,114,40,107,119,97,114,103,115,86,97,108,41,41,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,102,105,110,97,108,95,116,111,107,101,110,115,46,97,112,112,101,110,100,40,116,41,10,32,32,32,32,10,32,32,32,32,114,101,116,117,114,110,32,39,39,46,106,111,105,110,40,102,105,110,97,108,95,116,111,107,101,110,115,41,10,10,115,116,114,46,102,111,114,109,97,116,32,61,32,95,95,102,111,114,109,97,116,95,115,116,114,105,110,103,10,100,101,108,32,95,95,102,111,114,109,97,116,95,115,116,114,105,110,103,10,10,10,100,101,102,32,104,101,108,112,40,111,98,106,41,58,10,32,32,32,32,105,102,32,104,97,115,97,116,116,114,40,111,98,106,44,32,39,95,95,102,117,110,99,95,95,39,41,58,10,32,32,32,32,32,32,32,32,111,98,106,32,61,32,111,98,106,46,95,95,102,117,110,99,95,95,10,32,32,32,32,112,114,105,110,116,40,111,98,106,46,95,95,115,105,103,110,97,116,117,114,101,95,95,41,10,32,32,32,32,112,114,105,110,116,40,111,98,106,46,95,95,100,111,99,95,95,41,10,10,100,101,102,32,99,111,109,112,108,101,120,40,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,58,10,32,32,32,32,105,109,112,111,114,116,32,99,109,97,116,104,10,32,32,32,32,114,101,116,117,114,110,32,99,109,97,116,104,46,99,111,109,112,108,101,120,40,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,10,10,100,101,102,32,108,111,110,103,40,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,58,10,32,32,32,32,105,109,112,111,114,116,32,95,108,111,110,103,10,32,32,32,32,114,101,116,117,114,110,32,95,108,111,110,103,46,108,111,110,103,40,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,10,10,10,35,32,98,117,105,108,116,105,110,32,101,120,99,101,112,116,105,111,110,115,10,99,108,97,115,115,32,83,116,97,99,107,79,118,101,114,102,108,111,119,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,73,79,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,84,121,112,101,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,73,110,100,101,120,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,86,97,108,117,101,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,82,117,110,116,105,109,101,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,90,101,114,111,68,105,118,105,115,105,111,110,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,78,97,109,101,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,85,110,98,111,117,110,100,76,111,99,97,108,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,65,116,116,114,105,98,117,116,101,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,73,109,112,111,114,116,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,99,108,97,115,115,32,65,115,115,101,114,116,105,111,110,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,32,112,97,115,115,10,10,99,108,97,115,115,32,75,101,121,69,114,114,111,114,40,69,120,99,101,112,116,105,111,110,41,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,107,101,121,61,46,46,46,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,107,101,121,32,61,32,107,101,121,10,32,32,32,32,32,32,32,32,105,102,32,107,101,121,32,105,115,32,46,46,46,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,117,112,101,114,40,41,46,95,95,105,110,105,116,95,95,40,41,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,117,112,101,114,40,41,46,95,95,105,110,105,116,95,95,40,114,101,112,114,40,107,101,121,41,41,10,10,32,32,32,32,100,101,102,32,95,95,115,116,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,107,101,121,32,105,115,32,46,46,46,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,39,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,116,114,40,115,101,108,102,46,107,101,121,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,107,101,121,32,105,115,32,46,46,46,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,75,101,121,69,114,114,111,114,40,41,39,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,39,75,101,121,69,114,114,111,114,40,123,115,101,108,102,46,107,101,121,33,114,125,41,39,10,0}; + const char kPythonLibs_cmath[] = {105,109,112,111,114,116,32,109,97,116,104,10,10,99,108,97,115,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,114,101,97,108,44,32,105,109,97,103,61,48,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,114,101,97,108,32,61,32,102,108,111,97,116,40,114,101,97,108,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,105,109,97,103,32,61,32,102,108,111,97,116,40,105,109,97,103,41,10,10,32,32,32,32,64,112,114,111,112,101,114,116,121,10,32,32,32,32,100,101,102,32,114,101,97,108,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,114,101,97,108,10,32,32,32,32,10,32,32,32,32,64,112,114,111,112,101,114,116,121,10,32,32,32,32,100,101,102,32,105,109,97,103,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,105,109,97,103,10,10,32,32,32,32,100,101,102,32,99,111,110,106,117,103,97,116,101,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,44,32,45,115,101,108,102,46,105,109,97,103,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,115,32,61,32,91,39,40,39,44,32,115,116,114,40,115,101,108,102,46,114,101,97,108,41,93,10,32,32,32,32,32,32,32,32,115,46,97,112,112,101,110,100,40,39,45,39,32,105,102,32,115,101,108,102,46,105,109,97,103,32,60,32,48,32,101,108,115,101,32,39,43,39,41,10,32,32,32,32,32,32,32,32,115,46,97,112,112,101,110,100,40,115,116,114,40,97,98,115,40,115,101,108,102,46,105,109,97,103,41,41,41,10,32,32,32,32,32,32,32,32,115,46,97,112,112,101,110,100,40,39,106,41,39,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,39,46,106,111,105,110,40,115,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,101,113,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,114,101,97,108,32,61,61,32,111,116,104,101,114,46,114,101,97,108,32,97,110,100,32,115,101,108,102,46,105,109,97,103,32,61,61,32,111,116,104,101,114,46,105,109,97,103,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,114,101,97,108,32,61,61,32,111,116,104,101,114,32,97,110,100,32,115,101,108,102,46,105,109,97,103,32,61,61,32,48,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,97,100,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,43,32,111,116,104,101,114,46,114,101,97,108,44,32,115,101,108,102,46,105,109,97,103,32,43,32,111,116,104,101,114,46,105,109,97,103,41,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,43,32,111,116,104,101,114,44,32,115,101,108,102,46,105,109,97,103,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,97,100,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,97,100,100,95,95,40,111,116,104,101,114,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,115,117,98,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,45,32,111,116,104,101,114,46,114,101,97,108,44,32,115,101,108,102,46,105,109,97,103,32,45,32,111,116,104,101,114,46,105,109,97,103,41,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,45,32,111,116,104,101,114,44,32,115,101,108,102,46,105,109,97,103,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,115,117,98,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,111,116,104,101,114,46,114,101,97,108,32,45,32,115,101,108,102,46,114,101,97,108,44,32,111,116,104,101,114,46,105,109,97,103,32,45,32,115,101,108,102,46,105,109,97,103,41,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,111,116,104,101,114,32,45,32,115,101,108,102,46,114,101,97,108,44,32,45,115,101,108,102,46,105,109,97,103,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,109,117,108,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,42,32,111,116,104,101,114,46,114,101,97,108,32,45,32,115,101,108,102,46,105,109,97,103,32,42,32,111,116,104,101,114,46,105,109,97,103,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,114,101,97,108,32,42,32,111,116,104,101,114,46,105,109,97,103,32,43,32,115,101,108,102,46,105,109,97,103,32,42,32,111,116,104,101,114,46,114,101,97,108,41,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,42,32,111,116,104,101,114,44,32,115,101,108,102,46,105,109,97,103,32,42,32,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,114,109,117,108,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,95,109,117,108,95,95,40,111,116,104,101,114,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,116,114,117,101,100,105,118,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,99,111,109,112,108,101,120,58,10,32,32,32,32,32,32,32,32,32,32,32,32,100,101,110,111,109,105,110,97,116,111,114,32,61,32,111,116,104,101,114,46,114,101,97,108,32,42,42,32,50,32,43,32,111,116,104,101,114,46,105,109,97,103,32,42,42,32,50,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,108,95,112,97,114,116,32,61,32,40,115,101,108,102,46,114,101,97,108,32,42,32,111,116,104,101,114,46,114,101,97,108,32,43,32,115,101,108,102,46,105,109,97,103,32,42,32,111,116,104,101,114,46,105,109,97,103,41,32,47,32,100,101,110,111,109,105,110,97,116,111,114,10,32,32,32,32,32,32,32,32,32,32,32,32,105,109,97,103,95,112,97,114,116,32,61,32,40,115,101,108,102,46,105,109,97,103,32,42,32,111,116,104,101,114,46,114,101,97,108,32,45,32,115,101,108,102,46,114,101,97,108,32,42,32,111,116,104,101,114,46,105,109,97,103,41,32,47,32,100,101,110,111,109,105,110,97,116,111,114,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,114,101,97,108,95,112,97,114,116,44,32,105,109,97,103,95,112,97,114,116,41,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,114,101,97,108,32,47,32,111,116,104,101,114,44,32,115,101,108,102,46,105,109,97,103,32,47,32,111,116,104,101,114,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,112,111,119,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,105,110,116,32,124,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,110,32,40,105,110,116,44,32,102,108,111,97,116,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,115,101,108,102,46,95,95,97,98,115,95,95,40,41,32,42,42,32,111,116,104,101,114,32,42,32,109,97,116,104,46,99,111,115,40,111,116,104,101,114,32,42,32,112,104,97,115,101,40,115,101,108,102,41,41,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,95,95,97,98,115,95,95,40,41,32,42,42,32,111,116,104,101,114,32,42,32,109,97,116,104,46,115,105,110,40,111,116,104,101,114,32,42,32,112,104,97,115,101,40,115,101,108,102,41,41,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,97,98,115,95,95,40,115,101,108,102,41,32,45,62,32,102,108,111,97,116,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,115,113,114,116,40,115,101,108,102,46,114,101,97,108,32,42,42,32,50,32,43,32,115,101,108,102,46,105,109,97,103,32,42,42,32,50,41,10,10,32,32,32,32,100,101,102,32,95,95,110,101,103,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,112,108,101,120,40,45,115,101,108,102,46,114,101,97,108,44,32,45,115,101,108,102,46,105,109,97,103,41,10,32,32,32,32,10,32,32,32,32,100,101,102,32,95,95,104,97,115,104,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,104,97,115,104,40,40,115,101,108,102,46,114,101,97,108,44,32,115,101,108,102,46,105,109,97,103,41,41,10,10,10,35,32,67,111,110,118,101,114,115,105,111,110,115,32,116,111,32,97,110,100,32,102,114,111,109,32,112,111,108,97,114,32,99,111,111,114,100,105,110,97,116,101,115,10,10,100,101,102,32,112,104,97,115,101,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,97,116,97,110,50,40,122,46,105,109,97,103,44,32,122,46,114,101,97,108,41,10,10,100,101,102,32,112,111,108,97,114,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,122,46,95,95,97,98,115,95,95,40,41,44,32,112,104,97,115,101,40,122,41,10,10,100,101,102,32,114,101,99,116,40,114,58,32,102,108,111,97,116,44,32,112,104,105,58,32,102,108,111,97,116,41,58,10,32,32,32,32,114,101,116,117,114,110,32,114,32,42,32,109,97,116,104,46,99,111,115,40,112,104,105,41,32,43,32,114,32,42,32,109,97,116,104,46,115,105,110,40,112,104,105,41,32,42,32,49,106,10,10,35,32,80,111,119,101,114,32,97,110,100,32,108,111,103,97,114,105,116,104,109,105,99,32,102,117,110,99,116,105,111,110,115,10,10,100,101,102,32,101,120,112,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,101,120,112,40,122,46,114,101,97,108,41,32,42,32,114,101,99,116,40,49,44,32,122,46,105,109,97,103,41,10,10,100,101,102,32,108,111,103,40,122,58,32,99,111,109,112,108,101,120,44,32,98,97,115,101,61,50,46,55,49,56,50,56,49,56,50,56,52,53,57,48,52,53,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,108,111,103,40,122,46,95,95,97,98,115,95,95,40,41,44,32,98,97,115,101,41,32,43,32,112,104,97,115,101,40,122,41,32,42,32,49,106,10,10,100,101,102,32,108,111,103,49,48,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,108,111,103,40,122,44,32,49,48,41,10,10,100,101,102,32,115,113,114,116,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,122,32,42,42,32,48,46,53,10,10,35,32,84,114,105,103,111,110,111,109,101,116,114,105,99,32,102,117,110,99,116,105,111,110,115,10,10,100,101,102,32,97,99,111,115,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,45,49,106,32,42,32,108,111,103,40,122,32,43,32,115,113,114,116,40,122,32,42,32,122,32,45,32,49,41,41,10,10,100,101,102,32,97,115,105,110,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,45,49,106,32,42,32,108,111,103,40,49,106,32,42,32,122,32,43,32,115,113,114,116,40,49,32,45,32,122,32,42,32,122,41,41,10,10,100,101,102,32,97,116,97,110,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,49,106,32,47,32,50,32,42,32,108,111,103,40,40,49,32,45,32,49,106,32,42,32,122,41,32,47,32,40,49,32,43,32,49,106,32,42,32,122,41,41,10,10,100,101,102,32,99,111,115,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,40,101,120,112,40,122,41,32,43,32,101,120,112,40,45,122,41,41,32,47,32,50,10,10,100,101,102,32,115,105,110,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,40,101,120,112,40,122,41,32,45,32,101,120,112,40,45,122,41,41,32,47,32,40,50,32,42,32,49,106,41,10,10,100,101,102,32,116,97,110,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,115,105,110,40,122,41,32,47,32,99,111,115,40,122,41,10,10,35,32,72,121,112,101,114,98,111,108,105,99,32,102,117,110,99,116,105,111,110,115,10,10,100,101,102,32,97,99,111,115,104,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,108,111,103,40,122,32,43,32,115,113,114,116,40,122,32,42,32,122,32,45,32,49,41,41,10,10,100,101,102,32,97,115,105,110,104,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,108,111,103,40,122,32,43,32,115,113,114,116,40,122,32,42,32,122,32,43,32,49,41,41,10,10,100,101,102,32,97,116,97,110,104,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,49,32,47,32,50,32,42,32,108,111,103,40,40,49,32,43,32,122,41,32,47,32,40,49,32,45,32,122,41,41,10,10,100,101,102,32,99,111,115,104,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,40,101,120,112,40,122,41,32,43,32,101,120,112,40,45,122,41,41,32,47,32,50,10,10,100,101,102,32,115,105,110,104,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,40,101,120,112,40,122,41,32,45,32,101,120,112,40,45,122,41,41,32,47,32,50,10,10,100,101,102,32,116,97,110,104,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,115,105,110,104,40,122,41,32,47,32,99,111,115,104,40,122,41,10,10,35,32,67,108,97,115,115,105,102,105,99,97,116,105,111,110,32,102,117,110,99,116,105,111,110,115,10,10,100,101,102,32,105,115,102,105,110,105,116,101,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,105,115,102,105,110,105,116,101,40,122,46,114,101,97,108,41,32,97,110,100,32,109,97,116,104,46,105,115,102,105,110,105,116,101,40,122,46,105,109,97,103,41,10,10,100,101,102,32,105,115,105,110,102,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,105,115,105,110,102,40,122,46,114,101,97,108,41,32,111,114,32,109,97,116,104,46,105,115,105,110,102,40,122,46,105,109,97,103,41,10,10,100,101,102,32,105,115,110,97,110,40,122,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,105,115,110,97,110,40,122,46,114,101,97,108,41,32,111,114,32,109,97,116,104,46,105,115,110,97,110,40,122,46,105,109,97,103,41,10,10,100,101,102,32,105,115,99,108,111,115,101,40,97,58,32,99,111,109,112,108,101,120,44,32,98,58,32,99,111,109,112,108,101,120,41,58,10,32,32,32,32,114,101,116,117,114,110,32,109,97,116,104,46,105,115,99,108,111,115,101,40,97,46,114,101,97,108,44,32,98,46,114,101,97,108,41,32,97,110,100,32,109,97,116,104,46,105,115,99,108,111,115,101,40,97,46,105,109,97,103,44,32,98,46,105,109,97,103,41,10,10,35,32,67,111,110,115,116,97,110,116,115,10,10,112,105,32,61,32,109,97,116,104,46,112,105,10,101,32,61,32,109,97,116,104,46,101,10,116,97,117,32,61,32,50,32,42,32,112,105,10,105,110,102,32,61,32,109,97,116,104,46,105,110,102,10,105,110,102,106,32,61,32,99,111,109,112,108,101,120,40,48,44,32,105,110,102,41,10,110,97,110,32,61,32,109,97,116,104,46,110,97,110,10,110,97,110,106,32,61,32,99,111,109,112,108,101,120,40,48,44,32,110,97,110,41,10,0}; + const char kPythonLibs_collections[] = {100,101,102,32,67,111,117,110,116,101,114,40,105,116,101,114,97,98,108,101,41,58,10,32,32,32,32,97,32,61,32,123,125,10,32,32,32,32,102,111,114,32,120,32,105,110,32,105,116,101,114,97,98,108,101,58,10,32,32,32,32,32,32,32,32,105,102,32,120,32,105,110,32,97,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,91,120,93,32,43,61,32,49,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,91,120,93,32,61,32,49,10,32,32,32,32,114,101,116,117,114,110,32,97,10,10,102,114,111,109,32,95,95,98,117,105,108,116,105,110,115,32,105,109,112,111,114,116,32,95,101,110,97,98,108,101,95,105,110,115,116,97,110,99,101,95,100,105,99,116,10,10,99,108,97,115,115,32,100,101,102,97,117,108,116,100,105,99,116,40,100,105,99,116,41,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,100,101,102,97,117,108,116,95,102,97,99,116,111,114,121,44,32,42,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,115,117,112,101,114,40,41,46,95,95,105,110,105,116,95,95,40,42,97,114,103,115,41,10,32,32,32,32,32,32,32,32,95,101,110,97,98,108,101,95,105,110,115,116,97,110,99,101,95,100,105,99,116,40,115,101,108,102,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,100,101,102,97,117,108,116,95,102,97,99,116,111,114,121,32,61,32,100,101,102,97,117,108,116,95,102,97,99,116,111,114,121,10,10,32,32,32,32,100,101,102,32,95,95,109,105,115,115,105,110,103,95,95,40,115,101,108,102,44,32,107,101,121,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,91,107,101,121,93,32,61,32,115,101,108,102,46,100,101,102,97,117,108,116,95,102,97,99,116,111,114,121,40,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,91,107,101,121,93,10,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,32,45,62,32,115,116,114,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,34,100,101,102,97,117,108,116,100,105,99,116,40,123,115,101,108,102,46,100,101,102,97,117,108,116,95,102,97,99,116,111,114,121,125,44,32,123,115,117,112,101,114,40,41,46,95,95,114,101,112,114,95,95,40,41,125,41,34,10,10,32,32,32,32,100,101,102,32,99,111,112,121,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,101,102,97,117,108,116,100,105,99,116,40,115,101,108,102,46,100,101,102,97,117,108,116,95,102,97,99,116,111,114,121,44,32,115,101,108,102,41,10,10,0}; + const char kPythonLibs_colorsys[] = {34,34,34,67,111,110,118,101,114,115,105,111,110,32,102,117,110,99,116,105,111,110,115,32,98,101,116,119,101,101,110,32,82,71,66,32,97,110,100,32,111,116,104,101,114,32,99,111,108,111,114,32,115,121,115,116,101,109,115,46,10,10,84,104,105,115,32,109,111,100,117,108,101,115,32,112,114,111,118,105,100,101,115,32,116,119,111,32,102,117,110,99,116,105,111,110,115,32,102,111,114,32,101,97,99,104,32,99,111,108,111,114,32,115,121,115,116,101,109,32,65,66,67,58,10,10,32,32,114,103,98,95,116,111,95,97,98,99,40,114,44,32,103,44,32,98,41,32,45,45,62,32,97,44,32,98,44,32,99,10,32,32,97,98,99,95,116,111,95,114,103,98,40,97,44,32,98,44,32,99,41,32,45,45,62,32,114,44,32,103,44,32,98,10,10,65,108,108,32,105,110,112,117,116,115,32,97,110,100,32,111,117,116,112,117,116,115,32,97,114,101,32,116,114,105,112,108,101,115,32,111,102,32,102,108,111,97,116,115,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,48,46,48,46,46,46,49,46,48,93,10,40,119,105,116,104,32,116,104,101,32,101,120,99,101,112,116,105,111,110,32,111,102,32,73,32,97,110,100,32,81,44,32,119,104,105,99,104,32,99,111,118,101,114,115,32,97,32,115,108,105,103,104,116,108,121,32,108,97,114,103,101,114,32,114,97,110,103,101,41,46,10,73,110,112,117,116,115,32,111,117,116,115,105,100,101,32,116,104,101,32,118,97,108,105,100,32,114,97,110,103,101,32,109,97,121,32,99,97,117,115,101,32,101,120,99,101,112,116,105,111,110,115,32,111,114,32,105,110,118,97,108,105,100,32,111,117,116,112,117,116,115,46,10,10,83,117,112,112,111,114,116,101,100,32,99,111,108,111,114,32,115,121,115,116,101,109,115,58,10,82,71,66,58,32,82,101,100,44,32,71,114,101,101,110,44,32,66,108,117,101,32,99,111,109,112,111,110,101,110,116,115,10,89,73,81,58,32,76,117,109,105,110,97,110,99,101,44,32,67,104,114,111,109,105,110,97,110,99,101,32,40,117,115,101,100,32,98,121,32,99,111,109,112,111,115,105,116,101,32,118,105,100,101,111,32,115,105,103,110,97,108,115,41,10,72,76,83,58,32,72,117,101,44,32,76,117,109,105,110,97,110,99,101,44,32,83,97,116,117,114,97,116,105,111,110,10,72,83,86,58,32,72,117,101,44,32,83,97,116,117,114,97,116,105,111,110,44,32,86,97,108,117,101,10,34,34,34,10,10,35,32,82,101,102,101,114,101,110,99,101,115,58,10,35,32,104,116,116,112,58,47,47,101,110,46,119,105,107,105,112,101,100,105,97,46,111,114,103,47,119,105,107,105,47,89,73,81,10,35,32,104,116,116,112,58,47,47,101,110,46,119,105,107,105,112,101,100,105,97,46,111,114,103,47,119,105,107,105,47,72,76,83,95,99,111,108,111,114,95,115,112,97,99,101,10,35,32,104,116,116,112,58,47,47,101,110,46,119,105,107,105,112,101,100,105,97,46,111,114,103,47,119,105,107,105,47,72,83,86,95,99,111,108,111,114,95,115,112,97,99,101,10,10,95,95,97,108,108,95,95,32,61,32,91,34,114,103,98,95,116,111,95,121,105,113,34,44,34,121,105,113,95,116,111,95,114,103,98,34,44,34,114,103,98,95,116,111,95,104,108,115,34,44,34,104,108,115,95,116,111,95,114,103,98,34,44,10,32,32,32,32,32,32,32,32,32,32,32,34,114,103,98,95,116,111,95,104,115,118,34,44,34,104,115,118,95,116,111,95,114,103,98,34,93,10,10,35,32,83,111,109,101,32,102,108,111,97,116,105,110,103,32,112,111,105,110,116,32,99,111,110,115,116,97,110,116,115,10,10,79,78,69,95,84,72,73,82,68,32,61,32,49,46,48,47,51,46,48,10,79,78,69,95,83,73,88,84,72,32,61,32,49,46,48,47,54,46,48,10,84,87,79,95,84,72,73,82,68,32,61,32,50,46,48,47,51,46,48,10,10,35,32,89,73,81,58,32,117,115,101,100,32,98,121,32,99,111,109,112,111,115,105,116,101,32,118,105,100,101,111,32,115,105,103,110,97,108,115,32,40,108,105,110,101,97,114,32,99,111,109,98,105,110,97,116,105,111,110,115,32,111,102,32,82,71,66,41,10,35,32,89,58,32,112,101,114,99,101,105,118,101,100,32,103,114,101,121,32,108,101,118,101,108,32,40,48,46,48,32,61,61,32,98,108,97,99,107,44,32,49,46,48,32,61,61,32,119,104,105,116,101,41,10,35,32,73,44,32,81,58,32,99,111,108,111,114,32,99,111,109,112,111,110,101,110,116,115,10,35,10,35,32,84,104,101,114,101,32,97,114,101,32,97,32,103,114,101,97,116,32,109,97,110,121,32,118,101,114,115,105,111,110,115,32,111,102,32,116,104,101,32,99,111,110,115,116,97,110,116,115,32,117,115,101,100,32,105,110,32,116,104,101,115,101,32,102,111,114,109,117,108,97,101,46,10,35,32,84,104,101,32,111,110,101,115,32,105,110,32,116,104,105,115,32,108,105,98,114,97,114,121,32,117,115,101,115,32,99,111,110,115,116,97,110,116,115,32,102,114,111,109,32,116,104,101,32,70,67,67,32,118,101,114,115,105,111,110,32,111,102,32,78,84,83,67,46,10,10,100,101,102,32,114,103,98,95,116,111,95,121,105,113,40,114,44,32,103,44,32,98,41,58,10,32,32,32,32,121,32,61,32,48,46,51,48,42,114,32,43,32,48,46,53,57,42,103,32,43,32,48,46,49,49,42,98,10,32,32,32,32,105,32,61,32,48,46,55,52,42,40,114,45,121,41,32,45,32,48,46,50,55,42,40,98,45,121,41,10,32,32,32,32,113,32,61,32,48,46,52,56,42,40,114,45,121,41,32,43,32,48,46,52,49,42,40,98,45,121,41,10,32,32,32,32,114,101,116,117,114,110,32,40,121,44,32,105,44,32,113,41,10,10,100,101,102,32,121,105,113,95,116,111,95,114,103,98,40,121,44,32,105,44,32,113,41,58,10,32,32,32,32,35,32,114,32,61,32,121,32,43,32,40,48,46,50,55,42,113,32,43,32,48,46,52,49,42,105,41,32,47,32,40,48,46,55,52,42,48,46,52,49,32,43,32,48,46,50,55,42,48,46,52,56,41,10,32,32,32,32,35,32,98,32,61,32,121,32,43,32,40,48,46,55,52,42,113,32,45,32,48,46,52,56,42,105,41,32,47,32,40,48,46,55,52,42,48,46,52,49,32,43,32,48,46,50,55,42,48,46,52,56,41,10,32,32,32,32,35,32,103,32,61,32,121,32,45,32,40,48,46,51,48,42,40,114,45,121,41,32,43,32,48,46,49,49,42,40,98,45,121,41,41,32,47,32,48,46,53,57,10,10,32,32,32,32,114,32,61,32,121,32,43,32,48,46,57,52,54,56,56,50,50,49,55,48,57,48,48,54,57,51,42,105,32,43,32,48,46,54,50,51,53,53,54,53,56,49,57,56,54,49,52,51,51,42,113,10,32,32,32,32,103,32,61,32,121,32,45,32,48,46,50,55,52,55,56,55,54,52,54,50,57,56,57,55,56,51,52,42,105,32,45,32,48,46,54,51,53,54,57,49,48,55,57,49,56,55,51,56,48,49,42,113,10,32,32,32,32,98,32,61,32,121,32,45,32,49,46,49,48,56,53,52,53,48,51,52,54,52,50,48,51,50,50,42,105,32,43,32,49,46,55,48,57,48,48,54,57,50,56,52,48,54,52,54,54,54,42,113,10,10,32,32,32,32,105,102,32,114,32,60,32,48,46,48,58,10,32,32,32,32,32,32,32,32,114,32,61,32,48,46,48,10,32,32,32,32,105,102,32,103,32,60,32,48,46,48,58,10,32,32,32,32,32,32,32,32,103,32,61,32,48,46,48,10,32,32,32,32,105,102,32,98,32,60,32,48,46,48,58,10,32,32,32,32,32,32,32,32,98,32,61,32,48,46,48,10,32,32,32,32,105,102,32,114,32,62,32,49,46,48,58,10,32,32,32,32,32,32,32,32,114,32,61,32,49,46,48,10,32,32,32,32,105,102,32,103,32,62,32,49,46,48,58,10,32,32,32,32,32,32,32,32,103,32,61,32,49,46,48,10,32,32,32,32,105,102,32,98,32,62,32,49,46,48,58,10,32,32,32,32,32,32,32,32,98,32,61,32,49,46,48,10,32,32,32,32,114,101,116,117,114,110,32,40,114,44,32,103,44,32,98,41,10,10,10,35,32,72,76,83,58,32,72,117,101,44,32,76,117,109,105,110,97,110,99,101,44,32,83,97,116,117,114,97,116,105,111,110,10,35,32,72,58,32,112,111,115,105,116,105,111,110,32,105,110,32,116,104,101,32,115,112,101,99,116,114,117,109,10,35,32,76,58,32,99,111,108,111,114,32,108,105,103,104,116,110,101,115,115,10,35,32,83,58,32,99,111,108,111,114,32,115,97,116,117,114,97,116,105,111,110,10,10,100,101,102,32,114,103,98,95,116,111,95,104,108,115,40,114,44,32,103,44,32,98,41,58,10,32,32,32,32,109,97,120,99,32,61,32,109,97,120,40,114,44,32,103,44,32,98,41,10,32,32,32,32,109,105,110,99,32,61,32,109,105,110,40,114,44,32,103,44,32,98,41,10,32,32,32,32,115,117,109,99,32,61,32,40,109,97,120,99,43,109,105,110,99,41,10,32,32,32,32,114,97,110,103,101,99,32,61,32,40,109,97,120,99,45,109,105,110,99,41,10,32,32,32,32,108,32,61,32,115,117,109,99,47,50,46,48,10,32,32,32,32,105,102,32,109,105,110,99,32,61,61,32,109,97,120,99,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,46,48,44,32,108,44,32,48,46,48,10,32,32,32,32,105,102,32,108,32,60,61,32,48,46,53,58,10,32,32,32,32,32,32,32,32,115,32,61,32,114,97,110,103,101,99,32,47,32,115,117,109,99,10,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,115,32,61,32,114,97,110,103,101,99,32,47,32,40,50,46,48,45,109,97,120,99,45,109,105,110,99,41,32,32,35,32,78,111,116,32,97,108,119,97,121,115,32,50,46,48,45,115,117,109,99,58,32,103,104,45,49,48,54,52,57,56,46,10,32,32,32,32,114,99,32,61,32,40,109,97,120,99,45,114,41,32,47,32,114,97,110,103,101,99,10,32,32,32,32,103,99,32,61,32,40,109,97,120,99,45,103,41,32,47,32,114,97,110,103,101,99,10,32,32,32,32,98,99,32,61,32,40,109,97,120,99,45,98,41,32,47,32,114,97,110,103,101,99,10,32,32,32,32,105,102,32,114,32,61,61,32,109,97,120,99,58,10,32,32,32,32,32,32,32,32,104,32,61,32,98,99,45,103,99,10,32,32,32,32,101,108,105,102,32,103,32,61,61,32,109,97,120,99,58,10,32,32,32,32,32,32,32,32,104,32,61,32,50,46,48,43,114,99,45,98,99,10,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,104,32,61,32,52,46,48,43,103,99,45,114,99,10,32,32,32,32,35,32,104,32,61,32,40,104,47,54,46,48,41,32,37,32,49,46,48,10,32,32,32,32,104,32,61,32,104,32,47,32,54,46,48,10,32,32,32,32,104,32,61,32,104,32,45,32,105,110,116,40,104,41,10,32,32,32,32,114,101,116,117,114,110,32,104,44,32,108,44,32,115,10,10,100,101,102,32,104,108,115,95,116,111,95,114,103,98,40,104,44,32,108,44,32,115,41,58,10,32,32,32,32,105,102,32,115,32,61,61,32,48,46,48,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,44,32,108,44,32,108,10,32,32,32,32,105,102,32,108,32,60,61,32,48,46,53,58,10,32,32,32,32,32,32,32,32,109,50,32,61,32,108,32,42,32,40,49,46,48,43,115,41,10,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,109,50,32,61,32,108,43,115,45,40,108,42,115,41,10,32,32,32,32,109,49,32,61,32,50,46,48,42,108,32,45,32,109,50,10,32,32,32,32,114,101,116,117,114,110,32,40,95,118,40,109,49,44,32,109,50,44,32,104,43,79,78,69,95,84,72,73,82,68,41,44,32,95,118,40,109,49,44,32,109,50,44,32,104,41,44,32,95,118,40,109,49,44,32,109,50,44,32,104,45,79,78,69,95,84,72,73,82,68,41,41,10,10,100,101,102,32,95,118,40,109,49,44,32,109,50,44,32,104,117,101,41,58,10,32,32,32,32,35,32,104,117,101,32,61,32,104,117,101,32,37,32,49,46,48,10,32,32,32,32,104,117,101,32,61,32,104,117,101,32,45,32,105,110,116,40,104,117,101,41,10,32,32,32,32,105,102,32,104,117,101,32,60,32,79,78,69,95,83,73,88,84,72,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,109,49,32,43,32,40,109,50,45,109,49,41,42,104,117,101,42,54,46,48,10,32,32,32,32,105,102,32,104,117,101,32,60,32,48,46,53,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,109,50,10,32,32,32,32,105,102,32,104,117,101,32,60,32,84,87,79,95,84,72,73,82,68,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,109,49,32,43,32,40,109,50,45,109,49,41,42,40,84,87,79,95,84,72,73,82,68,45,104,117,101,41,42,54,46,48,10,32,32,32,32,114,101,116,117,114,110,32,109,49,10,10,10,35,32,72,83,86,58,32,72,117,101,44,32,83,97,116,117,114,97,116,105,111,110,44,32,86,97,108,117,101,10,35,32,72,58,32,112,111,115,105,116,105,111,110,32,105,110,32,116,104,101,32,115,112,101,99,116,114,117,109,10,35,32,83,58,32,99,111,108,111,114,32,115,97,116,117,114,97,116,105,111,110,32,40,34,112,117,114,105,116,121,34,41,10,35,32,86,58,32,99,111,108,111,114,32,98,114,105,103,104,116,110,101,115,115,10,10,100,101,102,32,114,103,98,95,116,111,95,104,115,118,40,114,44,32,103,44,32,98,41,58,10,32,32,32,32,109,97,120,99,32,61,32,109,97,120,40,114,44,32,103,44,32,98,41,10,32,32,32,32,109,105,110,99,32,61,32,109,105,110,40,114,44,32,103,44,32,98,41,10,32,32,32,32,114,97,110,103,101,99,32,61,32,40,109,97,120,99,45,109,105,110,99,41,10,32,32,32,32,118,32,61,32,109,97,120,99,10,32,32,32,32,105,102,32,109,105,110,99,32,61,61,32,109,97,120,99,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,46,48,44,32,48,46,48,44,32,118,10,32,32,32,32,115,32,61,32,114,97,110,103,101,99,32,47,32,109,97,120,99,10,32,32,32,32,114,99,32,61,32,40,109,97,120,99,45,114,41,32,47,32,114,97,110,103,101,99,10,32,32,32,32,103,99,32,61,32,40,109,97,120,99,45,103,41,32,47,32,114,97,110,103,101,99,10,32,32,32,32,98,99,32,61,32,40,109,97,120,99,45,98,41,32,47,32,114,97,110,103,101,99,10,32,32,32,32,105,102,32,114,32,61,61,32,109,97,120,99,58,10,32,32,32,32,32,32,32,32,104,32,61,32,98,99,45,103,99,10,32,32,32,32,101,108,105,102,32,103,32,61,61,32,109,97,120,99,58,10,32,32,32,32,32,32,32,32,104,32,61,32,50,46,48,43,114,99,45,98,99,10,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,104,32,61,32,52,46,48,43,103,99,45,114,99,10,32,32,32,32,35,32,104,32,61,32,40,104,47,54,46,48,41,32,37,32,49,46,48,10,32,32,32,32,104,32,61,32,104,32,47,32,54,46,48,10,32,32,32,32,104,32,61,32,104,32,45,32,105,110,116,40,104,41,10,32,32,32,32,114,101,116,117,114,110,32,104,44,32,115,44,32,118,10,10,100,101,102,32,104,115,118,95,116,111,95,114,103,98,40,104,44,32,115,44,32,118,41,58,10,32,32,32,32,105,102,32,115,32,61,61,32,48,46,48,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,118,44,32,118,44,32,118,10,32,32,32,32,105,32,61,32,105,110,116,40,104,42,54,46,48,41,32,35,32,88,88,88,32,97,115,115,117,109,101,32,105,110,116,40,41,32,116,114,117,110,99,97,116,101,115,33,10,32,32,32,32,102,32,61,32,40,104,42,54,46,48,41,32,45,32,105,10,32,32,32,32,112,32,61,32,118,42,40,49,46,48,32,45,32,115,41,10,32,32,32,32,113,32,61,32,118,42,40,49,46,48,32,45,32,115,42,102,41,10,32,32,32,32,116,32,61,32,118,42,40,49,46,48,32,45,32,115,42,40,49,46,48,45,102,41,41,10,32,32,32,32,105,32,61,32,105,37,54,10,32,32,32,32,105,102,32,105,32,61,61,32,48,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,118,44,32,116,44,32,112,10,32,32,32,32,105,102,32,105,32,61,61,32,49,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,113,44,32,118,44,32,112,10,32,32,32,32,105,102,32,105,32,61,61,32,50,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,112,44,32,118,44,32,116,10,32,32,32,32,105,102,32,105,32,61,61,32,51,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,112,44,32,113,44,32,118,10,32,32,32,32,105,102,32,105,32,61,61,32,52,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,44,32,112,44,32,118,10,32,32,32,32,105,102,32,105,32,61,61,32,53,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,118,44,32,112,44,32,113,10,32,32,32,32,35,32,67,97,110,110,111,116,32,103,101,116,32,104,101,114,101,0}; + const char kPythonLibs_datetime[] = {102,114,111,109,32,116,105,109,101,32,105,109,112,111,114,116,32,108,111,99,97,108,116,105,109,101,10,10,99,108,97,115,115,32,116,105,109,101,100,101,108,116,97,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,100,97,121,115,61,48,44,32,115,101,99,111,110,100,115,61,48,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,100,97,121,115,32,61,32,100,97,121,115,10,32,32,32,32,32,32,32,32,115,101,108,102,46,115,101,99,111,110,100,115,32,61,32,115,101,99,111,110,100,115,10,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,34,100,97,116,101,116,105,109,101,46,116,105,109,101,100,101,108,116,97,40,100,97,121,115,61,123,115,101,108,102,46,100,97,121,115,125,44,32,115,101,99,111,110,100,115,61,123,115,101,108,102,46,115,101,99,111,110,100,115,125,41,34,10,10,32,32,32,32,100,101,102,32,95,95,101,113,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,116,105,109,101,100,101,108,116,97,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,116,105,109,101,100,101,108,116,97,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,100,97,121,115,44,32,115,101,108,102,46,115,101,99,111,110,100,115,41,32,61,61,32,40,111,116,104,101,114,46,100,97,121,115,44,32,111,116,104,101,114,46,115,101,99,111,110,100,115,41,10,10,32,32,32,32,100,101,102,32,95,95,108,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,116,105,109,101,100,101,108,116,97,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,116,105,109,101,100,101,108,116,97,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,100,97,121,115,44,32,115,101,108,102,46,115,101,99,111,110,100,115,41,32,60,32,40,111,116,104,101,114,46,100,97,121,115,44,32,111,116,104,101,114,46,115,101,99,111,110,100,115,41,10,10,32,32,32,32,100,101,102,32,95,95,108,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,116,105,109,101,100,101,108,116,97,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,116,105,109,101,100,101,108,116,97,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,100,97,121,115,44,32,115,101,108,102,46,115,101,99,111,110,100,115,41,32,60,61,32,40,111,116,104,101,114,46,100,97,121,115,44,32,111,116,104,101,114,46,115,101,99,111,110,100,115,41,10,10,32,32,32,32,100,101,102,32,95,95,103,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,116,105,109,101,100,101,108,116,97,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,116,105,109,101,100,101,108,116,97,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,100,97,121,115,44,32,115,101,108,102,46,115,101,99,111,110,100,115,41,32,62,32,40,111,116,104,101,114,46,100,97,121,115,44,32,111,116,104,101,114,46,115,101,99,111,110,100,115,41,10,10,32,32,32,32,100,101,102,32,95,95,103,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,116,105,109,101,100,101,108,116,97,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,116,105,109,101,100,101,108,116,97,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,100,97,121,115,44,32,115,101,108,102,46,115,101,99,111,110,100,115,41,32,62,61,32,40,111,116,104,101,114,46,100,97,121,115,44,32,111,116,104,101,114,46,115,101,99,111,110,100,115,41,10,10,10,99,108,97,115,115,32,100,97,116,101,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,121,101,97,114,58,32,105,110,116,44,32,109,111,110,116,104,58,32,105,110,116,44,32,100,97,121,58,32,105,110,116,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,121,101,97,114,32,61,32,121,101,97,114,10,32,32,32,32,32,32,32,32,115,101,108,102,46,109,111,110,116,104,32,61,32,109,111,110,116,104,10,32,32,32,32,32,32,32,32,115,101,108,102,46,100,97,121,32,61,32,100,97,121,10,10,32,32,32,32,64,115,116,97,116,105,99,109,101,116,104,111,100,10,32,32,32,32,100,101,102,32,116,111,100,97,121,40,41,58,10,32,32,32,32,32,32,32,32,116,32,61,32,108,111,99,97,108,116,105,109,101,40,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,97,116,101,40,116,46,116,109,95,121,101,97,114,44,32,116,46,116,109,95,109,111,110,44,32,116,46,116,109,95,109,100,97,121,41,10,10,32,32,32,32,100,101,102,32,95,95,101,113,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,100,97,116,101,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,41,32,61,61,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,41,10,10,32,32,32,32,100,101,102,32,95,95,108,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,100,97,116,101,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,41,32,60,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,41,10,10,32,32,32,32,100,101,102,32,95,95,108,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,100,97,116,101,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,41,32,60,61,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,41,10,10,32,32,32,32,100,101,102,32,95,95,103,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,100,97,116,101,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,41,32,62,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,41,10,10,32,32,32,32,100,101,102,32,95,95,103,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,58,32,39,100,97,116,101,39,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,41,32,62,61,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,41,10,10,32,32,32,32,100,101,102,32,95,95,115,116,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,34,123,115,101,108,102,46,121,101,97,114,125,45,123,115,101,108,102,46,109,111,110,116,104,58,48,50,125,45,123,115,101,108,102,46,100,97,121,58,48,50,125,34,10,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,34,100,97,116,101,116,105,109,101,46,100,97,116,101,40,123,115,101,108,102,46,121,101,97,114,125,44,32,123,115,101,108,102,46,109,111,110,116,104,125,44,32,123,115,101,108,102,46,100,97,121,125,41,34,10,10,10,99,108,97,115,115,32,100,97,116,101,116,105,109,101,40,100,97,116,101,41,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,121,101,97,114,58,32,105,110,116,44,32,109,111,110,116,104,58,32,105,110,116,44,32,100,97,121,58,32,105,110,116,44,32,104,111,117,114,58,32,105,110,116,44,32,109,105,110,117,116,101,58,32,105,110,116,44,32,115,101,99,111,110,100,58,32,105,110,116,41,58,10,32,32,32,32,32,32,32,32,115,117,112,101,114,40,41,46,95,95,105,110,105,116,95,95,40,121,101,97,114,44,32,109,111,110,116,104,44,32,100,97,121,41,10,32,32,32,32,32,32,32,32,35,32,86,97,108,105,100,97,116,101,32,97,110,100,32,115,101,116,32,104,111,117,114,44,32,109,105,110,117,116,101,44,32,97,110,100,32,115,101,99,111,110,100,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,48,32,60,61,32,104,111,117,114,32,60,61,32,50,51,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,72,111,117,114,32,109,117,115,116,32,98,101,32,98,101,116,119,101,101,110,32,48,32,97,110,100,32,50,51,34,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,104,111,117,114,32,61,32,104,111,117,114,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,48,32,60,61,32,109,105,110,117,116,101,32,60,61,32,53,57,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,77,105,110,117,116,101,32,109,117,115,116,32,98,101,32,98,101,116,119,101,101,110,32,48,32,97,110,100,32,53,57,34,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,109,105,110,117,116,101,32,61,32,109,105,110,117,116,101,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,48,32,60,61,32,115,101,99,111,110,100,32,60,61,32,53,57,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,86,97,108,117,101,69,114,114,111,114,40,34,83,101,99,111,110,100,32,109,117,115,116,32,98,101,32,98,101,116,119,101,101,110,32,48,32,97,110,100,32,53,57,34,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,115,101,99,111,110,100,32,61,32,115,101,99,111,110,100,10,10,32,32,32,32,100,101,102,32,100,97,116,101,40,115,101,108,102,41,32,45,62,32,100,97,116,101,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,97,116,101,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,41,10,10,32,32,32,32,64,115,116,97,116,105,99,109,101,116,104,111,100,10,32,32,32,32,100,101,102,32,110,111,119,40,41,58,10,32,32,32,32,32,32,32,32,116,32,61,32,108,111,99,97,108,116,105,109,101,40,41,10,32,32,32,32,32,32,32,32,116,109,95,115,101,99,32,61,32,116,46,116,109,95,115,101,99,10,32,32,32,32,32,32,32,32,105,102,32,116,109,95,115,101,99,32,61,61,32,54,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,109,95,115,101,99,32,61,32,53,57,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,97,116,101,116,105,109,101,40,116,46,116,109,95,121,101,97,114,44,32,116,46,116,109,95,109,111,110,44,32,116,46,116,109,95,109,100,97,121,44,32,116,46,116,109,95,104,111,117,114,44,32,116,46,116,109,95,109,105,110,44,32,116,109,95,115,101,99,41,10,10,32,32,32,32,100,101,102,32,95,95,115,116,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,34,123,115,101,108,102,46,121,101,97,114,125,45,123,115,101,108,102,46,109,111,110,116,104,58,48,50,125,45,123,115,101,108,102,46,100,97,121,58,48,50,125,32,123,115,101,108,102,46,104,111,117,114,58,48,50,125,58,123,115,101,108,102,46,109,105,110,117,116,101,58,48,50,125,58,123,115,101,108,102,46,115,101,99,111,110,100,58,48,50,125,34,10,10,32,32,32,32,100,101,102,32,95,95,114,101,112,114,95,95,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,34,100,97,116,101,116,105,109,101,46,100,97,116,101,116,105,109,101,40,123,115,101,108,102,46,121,101,97,114,125,44,32,123,115,101,108,102,46,109,111,110,116,104,125,44,32,123,115,101,108,102,46,100,97,121,125,44,32,123,115,101,108,102,46,104,111,117,114,125,44,32,123,115,101,108,102,46,109,105,110,117,116,101,125,44,32,123,115,101,108,102,46,115,101,99,111,110,100,125,41,34,10,10,32,32,32,32,100,101,102,32,95,95,101,113,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,116,105,109,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,44,32,115,101,108,102,46,104,111,117,114,44,32,115,101,108,102,46,109,105,110,117,116,101,44,32,115,101,108,102,46,115,101,99,111,110,100,41,32,61,61,92,10,32,32,32,32,32,32,32,32,32,32,32,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,46,104,111,117,114,44,32,111,116,104,101,114,46,109,105,110,117,116,101,44,32,111,116,104,101,114,46,115,101,99,111,110,100,41,10,10,32,32,32,32,100,101,102,32,95,95,108,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,116,105,109,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,44,32,115,101,108,102,46,104,111,117,114,44,32,115,101,108,102,46,109,105,110,117,116,101,44,32,115,101,108,102,46,115,101,99,111,110,100,41,32,60,92,10,32,32,32,32,32,32,32,32,32,32,32,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,46,104,111,117,114,44,32,111,116,104,101,114,46,109,105,110,117,116,101,44,32,111,116,104,101,114,46,115,101,99,111,110,100,41,10,10,32,32,32,32,100,101,102,32,95,95,108,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,116,105,109,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,44,32,115,101,108,102,46,104,111,117,114,44,32,115,101,108,102,46,109,105,110,117,116,101,44,32,115,101,108,102,46,115,101,99,111,110,100,41,32,60,61,92,10,32,32,32,32,32,32,32,32,32,32,32,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,46,104,111,117,114,44,32,111,116,104,101,114,46,109,105,110,117,116,101,44,32,111,116,104,101,114,46,115,101,99,111,110,100,41,10,10,32,32,32,32,100,101,102,32,95,95,103,116,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,116,105,109,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,44,32,115,101,108,102,46,104,111,117,114,44,32,115,101,108,102,46,109,105,110,117,116,101,44,32,115,101,108,102,46,115,101,99,111,110,100,41,32,62,92,10,32,32,32,32,32,32,32,32,32,32,32,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,46,104,111,117,114,44,32,111,116,104,101,114,46,109,105,110,117,116,101,44,32,111,116,104,101,114,46,115,101,99,111,110,100,41,10,10,32,32,32,32,100,101,102,32,95,95,103,101,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,32,45,62,32,98,111,111,108,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,116,104,101,114,41,32,105,115,32,110,111,116,32,100,97,116,101,116,105,109,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,115,101,108,102,46,121,101,97,114,44,32,115,101,108,102,46,109,111,110,116,104,44,32,115,101,108,102,46,100,97,121,44,32,115,101,108,102,46,104,111,117,114,44,32,115,101,108,102,46,109,105,110,117,116,101,44,32,115,101,108,102,46,115,101,99,111,110,100,41,32,62,61,92,10,32,32,32,32,32,32,32,32,32,32,32,32,40,111,116,104,101,114,46,121,101,97,114,44,32,111,116,104,101,114,46,109,111,110,116,104,44,32,111,116,104,101,114,46,100,97,121,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,111,116,104,101,114,46,104,111,117,114,44,32,111,116,104,101,114,46,109,105,110,117,116,101,44,32,111,116,104,101,114,46,115,101,99,111,110,100,41,10,10,32,32,32,32,100,101,102,32,116,105,109,101,115,116,97,109,112,40,115,101,108,102,41,32,45,62,32,102,108,111,97,116,58,10,32,32,32,32,32,32,32,32,114,97,105,115,101,32,78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,10,10,0}; + const char kPythonLibs_functools[] = {102,114,111,109,32,95,95,98,117,105,108,116,105,110,115,32,105,109,112,111,114,116,32,110,101,120,116,10,10,99,108,97,115,115,32,99,97,99,104,101,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,102,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,102,32,61,32,102,10,32,32,32,32,32,32,32,32,115,101,108,102,46,99,97,99,104,101,32,61,32,123,125,10,10,32,32,32,32,100,101,102,32,95,95,99,97,108,108,95,95,40,115,101,108,102,44,32,42,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,105,102,32,97,114,103,115,32,110,111,116,32,105,110,32,115,101,108,102,46,99,97,99,104,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,99,97,99,104,101,91,97,114,103,115,93,32,61,32,115,101,108,102,46,102,40,42,97,114,103,115,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,99,97,99,104,101,91,97,114,103,115,93,10,32,32,32,32,10,100,101,102,32,114,101,100,117,99,101,40,102,117,110,99,116,105,111,110,44,32,115,101,113,117,101,110,99,101,44,32,105,110,105,116,105,97,108,61,46,46,46,41,58,10,32,32,32,32,105,116,32,61,32,105,116,101,114,40,115,101,113,117,101,110,99,101,41,10,32,32,32,32,105,102,32,105,110,105,116,105,97,108,32,105,115,32,46,46,46,58,10,32,32,32,32,32,32,32,32,118,97,108,117,101,32,61,32,110,101,120,116,40,105,116,41,10,32,32,32,32,32,32,32,32,105,102,32,118,97,108,117,101,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,84,121,112,101,69,114,114,111,114,40,34,114,101,100,117,99,101,40,41,32,111,102,32,101,109,112,116,121,32,105,116,101,114,97,98,108,101,32,119,105,116,104,32,110,111,32,105,110,105,116,105,97,108,32,118,97,108,117,101,34,41,10,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,118,97,108,117,101,32,61,32,105,110,105,116,105,97,108,10,32,32,32,32,102,111,114,32,101,108,101,109,101,110,116,32,105,110,32,105,116,58,10,32,32,32,32,32,32,32,32,118,97,108,117,101,32,61,32,102,117,110,99,116,105,111,110,40,118,97,108,117,101,44,32,101,108,101,109,101,110,116,41,10,32,32,32,32,114,101,116,117,114,110,32,118,97,108,117,101,10,10,99,108,97,115,115,32,112,97,114,116,105,97,108,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,102,44,32,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,102,32,61,32,102,10,32,32,32,32,32,32,32,32,105,102,32,110,111,116,32,99,97,108,108,97,98,108,101,40,102,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,97,105,115,101,32,84,121,112,101,69,114,114,111,114,40,34,116,104,101,32,102,105,114,115,116,32,97,114,103,117,109,101,110,116,32,109,117,115,116,32,98,101,32,99,97,108,108,97,98,108,101,34,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,97,114,103,115,32,61,32,97,114,103,115,10,32,32,32,32,32,32,32,32,115,101,108,102,46,107,119,97,114,103,115,32,61,32,107,119,97,114,103,115,10,10,32,32,32,32,100,101,102,32,95,95,99,97,108,108,95,95,40,115,101,108,102,44,32,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,107,119,97,114,103,115,46,117,112,100,97,116,101,40,115,101,108,102,46,107,119,97,114,103,115,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,102,40,42,115,101,108,102,46,97,114,103,115,44,32,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,10,10,0}; + const char kPythonLibs_heapq[] = {35,32,72,101,97,112,32,113,117,101,117,101,32,97,108,103,111,114,105,116,104,109,32,40,97,46,107,46,97,46,32,112,114,105,111,114,105,116,121,32,113,117,101,117,101,41,10,100,101,102,32,104,101,97,112,112,117,115,104,40,104,101,97,112,44,32,105,116,101,109,41,58,10,32,32,32,32,34,34,34,80,117,115,104,32,105,116,101,109,32,111,110,116,111,32,104,101,97,112,44,32,109,97,105,110,116,97,105,110,105,110,103,32,116,104,101,32,104,101,97,112,32,105,110,118,97,114,105,97,110,116,46,34,34,34,10,32,32,32,32,104,101,97,112,46,97,112,112,101,110,100,40,105,116,101,109,41,10,32,32,32,32,95,115,105,102,116,100,111,119,110,40,104,101,97,112,44,32,48,44,32,108,101,110,40,104,101,97,112,41,45,49,41,10,10,100,101,102,32,104,101,97,112,112,111,112,40,104,101,97,112,41,58,10,32,32,32,32,34,34,34,80,111,112,32,116,104,101,32,115,109,97,108,108,101,115,116,32,105,116,101,109,32,111,102,102,32,116,104,101,32,104,101,97,112,44,32,109,97,105,110,116,97,105,110,105,110,103,32,116,104,101,32,104,101,97,112,32,105,110,118,97,114,105,97,110,116,46,34,34,34,10,32,32,32,32,108,97,115,116,101,108,116,32,61,32,104,101,97,112,46,112,111,112,40,41,32,32,32,32,35,32,114,97,105,115,101,115,32,97,112,112,114,111,112,114,105,97,116,101,32,73,110,100,101,120,69,114,114,111,114,32,105,102,32,104,101,97,112,32,105,115,32,101,109,112,116,121,10,32,32,32,32,105,102,32,104,101,97,112,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,105,116,101,109,32,61,32,104,101,97,112,91,48,93,10,32,32,32,32,32,32,32,32,104,101,97,112,91,48,93,32,61,32,108,97,115,116,101,108,116,10,32,32,32,32,32,32,32,32,95,115,105,102,116,117,112,40,104,101,97,112,44,32,48,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,116,117,114,110,105,116,101,109,10,32,32,32,32,114,101,116,117,114,110,32,108,97,115,116,101,108,116,10,10,100,101,102,32,104,101,97,112,114,101,112,108,97,99,101,40,104,101,97,112,44,32,105,116,101,109,41,58,10,32,32,32,32,34,34,34,80,111,112,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,99,117,114,114,101,110,116,32,115,109,97,108,108,101,115,116,32,118,97,108,117,101,44,32,97,110,100,32,97,100,100,32,116,104,101,32,110,101,119,32,105,116,101,109,46,10,10,32,32,32,32,84,104,105,115,32,105,115,32,109,111,114,101,32,101,102,102,105,99,105,101,110,116,32,116,104,97,110,32,104,101,97,112,112,111,112,40,41,32,102,111,108,108,111,119,101,100,32,98,121,32,104,101,97,112,112,117,115,104,40,41,44,32,97,110,100,32,99,97,110,32,98,101,10,32,32,32,32,109,111,114,101,32,97,112,112,114,111,112,114,105,97,116,101,32,119,104,101,110,32,117,115,105,110,103,32,97,32,102,105,120,101,100,45,115,105,122,101,32,104,101,97,112,46,32,32,78,111,116,101,32,116,104,97,116,32,116,104,101,32,118,97,108,117,101,10,32,32,32,32,114,101,116,117,114,110,101,100,32,109,97,121,32,98,101,32,108,97,114,103,101,114,32,116,104,97,110,32,105,116,101,109,33,32,32,84,104,97,116,32,99,111,110,115,116,114,97,105,110,115,32,114,101,97,115,111,110,97,98,108,101,32,117,115,101,115,32,111,102,10,32,32,32,32,116,104,105,115,32,114,111,117,116,105,110,101,32,117,110,108,101,115,115,32,119,114,105,116,116,101,110,32,97,115,32,112,97,114,116,32,111,102,32,97,32,99,111,110,100,105,116,105,111,110,97,108,32,114,101,112,108,97,99,101,109,101,110,116,58,10,10,32,32,32,32,32,32,32,32,105,102,32,105,116,101,109,32,62,32,104,101,97,112,91,48,93,58,10,32,32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,32,61,32,104,101,97,112,114,101,112,108,97,99,101,40,104,101,97,112,44,32,105,116,101,109,41,10,32,32,32,32,34,34,34,10,32,32,32,32,114,101,116,117,114,110,105,116,101,109,32,61,32,104,101,97,112,91,48,93,32,32,32,32,35,32,114,97,105,115,101,115,32,97,112,112,114,111,112,114,105,97,116,101,32,73,110,100,101,120,69,114,114,111,114,32,105,102,32,104,101,97,112,32,105,115,32,101,109,112,116,121,10,32,32,32,32,104,101,97,112,91,48,93,32,61,32,105,116,101,109,10,32,32,32,32,95,115,105,102,116,117,112,40,104,101,97,112,44,32,48,41,10,32,32,32,32,114,101,116,117,114,110,32,114,101,116,117,114,110,105,116,101,109,10,10,100,101,102,32,104,101,97,112,112,117,115,104,112,111,112,40,104,101,97,112,44,32,105,116,101,109,41,58,10,32,32,32,32,34,34,34,70,97,115,116,32,118,101,114,115,105,111,110,32,111,102,32,97,32,104,101,97,112,112,117,115,104,32,102,111,108,108,111,119,101,100,32,98,121,32,97,32,104,101,97,112,112,111,112,46,34,34,34,10,32,32,32,32,105,102,32,104,101,97,112,32,97,110,100,32,104,101,97,112,91,48,93,32,60,32,105,116,101,109,58,10,32,32,32,32,32,32,32,32,105,116,101,109,44,32,104,101,97,112,91,48,93,32,61,32,104,101,97,112,91,48,93,44,32,105,116,101,109,10,32,32,32,32,32,32,32,32,95,115,105,102,116,117,112,40,104,101,97,112,44,32,48,41,10,32,32,32,32,114,101,116,117,114,110,32,105,116,101,109,10,10,100,101,102,32,104,101,97,112,105,102,121,40,120,41,58,10,32,32,32,32,34,34,34,84,114,97,110,115,102,111,114,109,32,108,105,115,116,32,105,110,116,111,32,97,32,104,101,97,112,44,32,105,110,45,112,108,97,99,101,44,32,105,110,32,79,40,108,101,110,40,120,41,41,32,116,105,109,101,46,34,34,34,10,32,32,32,32,110,32,61,32,108,101,110,40,120,41,10,32,32,32,32,35,32,84,114,97,110,115,102,111,114,109,32,98,111,116,116,111,109,45,117,112,46,32,32,84,104,101,32,108,97,114,103,101,115,116,32,105,110,100,101,120,32,116,104,101,114,101,39,115,32,97,110,121,32,112,111,105,110,116,32,116,111,32,108,111,111,107,105,110,103,32,97,116,10,32,32,32,32,35,32,105,115,32,116,104,101,32,108,97,114,103,101,115,116,32,119,105,116,104,32,97,32,99,104,105,108,100,32,105,110,100,101,120,32,105,110,45,114,97,110,103,101,44,32,115,111,32,109,117,115,116,32,104,97,118,101,32,50,42,105,32,43,32,49,32,60,32,110,44,10,32,32,32,32,35,32,111,114,32,105,32,60,32,40,110,45,49,41,47,50,46,32,32,73,102,32,110,32,105,115,32,101,118,101,110,32,61,32,50,42,106,44,32,116,104,105,115,32,105,115,32,40,50,42,106,45,49,41,47,50,32,61,32,106,45,49,47,50,32,115,111,10,32,32,32,32,35,32,106,45,49,32,105,115,32,116,104,101,32,108,97,114,103,101,115,116,44,32,119,104,105,99,104,32,105,115,32,110,47,47,50,32,45,32,49,46,32,32,73,102,32,110,32,105,115,32,111,100,100,32,61,32,50,42,106,43,49,44,32,116,104,105,115,32,105,115,10,32,32,32,32,35,32,40,50,42,106,43,49,45,49,41,47,50,32,61,32,106,32,115,111,32,106,45,49,32,105,115,32,116,104,101,32,108,97,114,103,101,115,116,44,32,97,110,100,32,116,104,97,116,39,115,32,97,103,97,105,110,32,110,47,47,50,45,49,46,10,32,32,32,32,102,111,114,32,105,32,105,110,32,114,101,118,101,114,115,101,100,40,114,97,110,103,101,40,110,47,47,50,41,41,58,10,32,32,32,32,32,32,32,32,95,115,105,102,116,117,112,40,120,44,32,105,41,10,10,35,32,39,104,101,97,112,39,32,105,115,32,97,32,104,101,97,112,32,97,116,32,97,108,108,32,105,110,100,105,99,101,115,32,62,61,32,115,116,97,114,116,112,111,115,44,32,101,120,99,101,112,116,32,112,111,115,115,105,98,108,121,32,102,111,114,32,112,111,115,46,32,32,112,111,115,10,35,32,105,115,32,116,104,101,32,105,110,100,101,120,32,111,102,32,97,32,108,101,97,102,32,119,105,116,104,32,97,32,112,111,115,115,105,98,108,121,32,111,117,116,45,111,102,45,111,114,100,101,114,32,118,97,108,117,101,46,32,32,82,101,115,116,111,114,101,32,116,104,101,10,35,32,104,101,97,112,32,105,110,118,97,114,105,97,110,116,46,10,100,101,102,32,95,115,105,102,116,100,111,119,110,40,104,101,97,112,44,32,115,116,97,114,116,112,111,115,44,32,112,111,115,41,58,10,32,32,32,32,110,101,119,105,116,101,109,32,61,32,104,101,97,112,91,112,111,115,93,10,32,32,32,32,35,32,70,111,108,108,111,119,32,116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,114,111,111,116,44,32,109,111,118,105,110,103,32,112,97,114,101,110,116,115,32,100,111,119,110,32,117,110,116,105,108,32,102,105,110,100,105,110,103,32,97,32,112,108,97,99,101,10,32,32,32,32,35,32,110,101,119,105,116,101,109,32,102,105,116,115,46,10,32,32,32,32,119,104,105,108,101,32,112,111,115,32,62,32,115,116,97,114,116,112,111,115,58,10,32,32,32,32,32,32,32,32,112,97,114,101,110,116,112,111,115,32,61,32,40,112,111,115,32,45,32,49,41,32,62,62,32,49,10,32,32,32,32,32,32,32,32,112,97,114,101,110,116,32,61,32,104,101,97,112,91,112,97,114,101,110,116,112,111,115,93,10,32,32,32,32,32,32,32,32,105,102,32,110,101,119,105,116,101,109,32,60,32,112,97,114,101,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,104,101,97,112,91,112,111,115,93,32,61,32,112,97,114,101,110,116,10,32,32,32,32,32,32,32,32,32,32,32,32,112,111,115,32,61,32,112,97,114,101,110,116,112,111,115,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,116,105,110,117,101,10,32,32,32,32,32,32,32,32,98,114,101,97,107,10,32,32,32,32,104,101,97,112,91,112,111,115,93,32,61,32,110,101,119,105,116,101,109,10,10,100,101,102,32,95,115,105,102,116,117,112,40,104,101,97,112,44,32,112,111,115,41,58,10,32,32,32,32,101,110,100,112,111,115,32,61,32,108,101,110,40,104,101,97,112,41,10,32,32,32,32,115,116,97,114,116,112,111,115,32,61,32,112,111,115,10,32,32,32,32,110,101,119,105,116,101,109,32,61,32,104,101,97,112,91,112,111,115,93,10,32,32,32,32,35,32,66,117,98,98,108,101,32,117,112,32,116,104,101,32,115,109,97,108,108,101,114,32,99,104,105,108,100,32,117,110,116,105,108,32,104,105,116,116,105,110,103,32,97,32,108,101,97,102,46,10,32,32,32,32,99,104,105,108,100,112,111,115,32,61,32,50,42,112,111,115,32,43,32,49,32,32,32,32,35,32,108,101,102,116,109,111,115,116,32,99,104,105,108,100,32,112,111,115,105,116,105,111,110,10,32,32,32,32,119,104,105,108,101,32,99,104,105,108,100,112,111,115,32,60,32,101,110,100,112,111,115,58,10,32,32,32,32,32,32,32,32,35,32,83,101,116,32,99,104,105,108,100,112,111,115,32,116,111,32,105,110,100,101,120,32,111,102,32,115,109,97,108,108,101,114,32,99,104,105,108,100,46,10,32,32,32,32,32,32,32,32,114,105,103,104,116,112,111,115,32,61,32,99,104,105,108,100,112,111,115,32,43,32,49,10,32,32,32,32,32,32,32,32,105,102,32,114,105,103,104,116,112,111,115,32,60,32,101,110,100,112,111,115,32,97,110,100,32,110,111,116,32,104,101,97,112,91,99,104,105,108,100,112,111,115,93,32,60,32,104,101,97,112,91,114,105,103,104,116,112,111,115,93,58,10,32,32,32,32,32,32,32,32,32,32,32,32,99,104,105,108,100,112,111,115,32,61,32,114,105,103,104,116,112,111,115,10,32,32,32,32,32,32,32,32,35,32,77,111,118,101,32,116,104,101,32,115,109,97,108,108,101,114,32,99,104,105,108,100,32,117,112,46,10,32,32,32,32,32,32,32,32,104,101,97,112,91,112,111,115,93,32,61,32,104,101,97,112,91,99,104,105,108,100,112,111,115,93,10,32,32,32,32,32,32,32,32,112,111,115,32,61,32,99,104,105,108,100,112,111,115,10,32,32,32,32,32,32,32,32,99,104,105,108,100,112,111,115,32,61,32,50,42,112,111,115,32,43,32,49,10,32,32,32,32,35,32,84,104,101,32,108,101,97,102,32,97,116,32,112,111,115,32,105,115,32,101,109,112,116,121,32,110,111,119,46,32,32,80,117,116,32,110,101,119,105,116,101,109,32,116,104,101,114,101,44,32,97,110,100,32,98,117,98,98,108,101,32,105,116,32,117,112,10,32,32,32,32,35,32,116,111,32,105,116,115,32,102,105,110,97,108,32,114,101,115,116,105,110,103,32,112,108,97,99,101,32,40,98,121,32,115,105,102,116,105,110,103,32,105,116,115,32,112,97,114,101,110,116,115,32,100,111,119,110,41,46,10,32,32,32,32,104,101,97,112,91,112,111,115,93,32,61,32,110,101,119,105,116,101,109,10,32,32,32,32,95,115,105,102,116,100,111,119,110,40,104,101,97,112,44,32,115,116,97,114,116,112,111,115,44,32,112,111,115,41,0}; + const char kPythonLibs_itertools[] = {102,114,111,109,32,95,95,98,117,105,108,116,105,110,115,32,105,109,112,111,114,116,32,110,101,120,116,10,10,100,101,102,32,122,105,112,95,108,111,110,103,101,115,116,40,97,44,32,98,41,58,10,32,32,32,32,97,32,61,32,105,116,101,114,40,97,41,10,32,32,32,32,98,32,61,32,105,116,101,114,40,98,41,10,32,32,32,32,119,104,105,108,101,32,84,114,117,101,58,10,32,32,32,32,32,32,32,32,97,105,32,61,32,110,101,120,116,40,97,41,10,32,32,32,32,32,32,32,32,98,105,32,61,32,110,101,120,116,40,98,41,10,32,32,32,32,32,32,32,32,105,102,32,97,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,32,97,110,100,32,98,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,10,32,32,32,32,32,32,32,32,105,102,32,97,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,105,32,61,32,78,111,110,101,10,32,32,32,32,32,32,32,32,105,102,32,98,105,32,105,115,32,83,116,111,112,73,116,101,114,97,116,105,111,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,98,105,32,61,32,78,111,110,101,10,32,32,32,32,32,32,32,32,121,105,101,108,100,32,97,105,44,32,98,105,10,0}; + const char kPythonLibs_pickle[] = {105,109,112,111,114,116,32,106,115,111,110,10,102,114,111,109,32,99,32,105,109,112,111,114,116,32,115,116,114,117,99,116,10,105,109,112,111,114,116,32,98,117,105,108,116,105,110,115,10,10,95,66,65,83,73,67,95,84,89,80,69,83,32,61,32,91,105,110,116,44,32,102,108,111,97,116,44,32,115,116,114,44,32,98,111,111,108,44,32,116,121,112,101,40,78,111,110,101,41,93,10,95,77,79,68,95,84,95,83,69,80,32,61,32,34,64,34,10,10,100,101,102,32,95,102,105,110,100,95,99,108,97,115,115,40,112,97,116,104,58,32,115,116,114,41,58,10,32,32,32,32,105,102,32,95,77,79,68,95,84,95,83,69,80,32,110,111,116,32,105,110,32,112,97,116,104,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,117,105,108,116,105,110,115,46,95,95,100,105,99,116,95,95,91,112,97,116,104,93,10,32,32,32,32,109,111,100,112,97,116,104,44,32,110,97,109,101,32,61,32,112,97,116,104,46,115,112,108,105,116,40,95,77,79,68,95,84,95,83,69,80,41,10,32,32,32,32,114,101,116,117,114,110,32,95,95,105,109,112,111,114,116,95,95,40,109,111,100,112,97,116,104,41,46,95,95,100,105,99,116,95,95,91,110,97,109,101,93,10,10,99,108,97,115,115,32,95,80,105,99,107,108,101,114,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,111,98,106,41,32,45,62,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,111,98,106,32,61,32,111,98,106,10,32,32,32,32,32,32,32,32,115,101,108,102,46,114,97,119,95,109,101,109,111,32,61,32,123,125,32,32,35,32,105,100,32,45,62,32,105,110,116,10,32,32,32,32,32,32,32,32,115,101,108,102,46,109,101,109,111,32,61,32,91,93,32,32,32,32,32,32,35,32,105,110,116,32,45,62,32,111,98,106,101,99,116,10,10,32,32,32,32,64,115,116,97,116,105,99,109,101,116,104,111,100,10,32,32,32,32,100,101,102,32,95,116,121,112,101,95,105,100,40,116,58,32,116,121,112,101,41,58,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,116,41,32,105,115,32,116,121,112,101,10,32,32,32,32,32,32,32,32,110,97,109,101,32,61,32,116,46,95,95,110,97,109,101,95,95,10,32,32,32,32,32,32,32,32,109,111,100,32,61,32,116,46,95,95,109,111,100,117,108,101,95,95,10,32,32,32,32,32,32,32,32,105,102,32,109,111,100,32,105,115,32,110,111,116,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,32,61,32,109,111,100,46,95,95,112,97,116,104,95,95,32,43,32,95,77,79,68,95,84,95,83,69,80,32,43,32,110,97,109,101,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,97,109,101,10,10,32,32,32,32,100,101,102,32,119,114,97,112,40,115,101,108,102,44,32,111,41,58,10,32,32,32,32,32,32,32,32,111,95,116,32,61,32,116,121,112,101,40,111,41,10,32,32,32,32,32,32,32,32,105,102,32,111,95,116,32,105,110,32,95,66,65,83,73,67,95,84,89,80,69,83,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,111,10,32,32,32,32,32,32,32,32,105,102,32,111,95,116,32,105,115,32,116,121,112,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,34,116,121,112,101,34,44,32,115,101,108,102,46,95,116,121,112,101,95,105,100,40,111,41,93,10,10,32,32,32,32,32,32,32,32,105,110,100,101,120,32,61,32,115,101,108,102,46,114,97,119,95,109,101,109,111,46,103,101,116,40,105,100,40,111,41,44,32,78,111,110,101,41,10,32,32,32,32,32,32,32,32,105,102,32,105,110,100,101,120,32,105,115,32,110,111,116,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,114,101,116,32,61,32,91,93,10,32,32,32,32,32,32,32,32,105,110,100,101,120,32,61,32,108,101,110,40,115,101,108,102,46,109,101,109,111,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,109,101,109,111,46,97,112,112,101,110,100,40,114,101,116,41,10,32,32,32,32,32,32,32,32,115,101,108,102,46,114,97,119,95,109,101,109,111,91,105,100,40,111,41,93,32,61,32,105,110,100,101,120,10,10,32,32,32,32,32,32,32,32,105,102,32,111,95,116,32,105,115,32,116,117,112,108,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,34,116,117,112,108,101,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,91,115,101,108,102,46,119,114,97,112,40,105,41,32,102,111,114,32,105,32,105,110,32,111,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,105,102,32,111,95,116,32,105,115,32,98,121,116,101,115,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,34,98,121,116,101,115,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,91,111,91,106,93,32,102,111,114,32,106,32,105,110,32,114,97,110,103,101,40,108,101,110,40,111,41,41,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,105,102,32,111,95,116,32,105,115,32,108,105,115,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,34,108,105,115,116,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,91,115,101,108,102,46,119,114,97,112,40,105,41,32,102,111,114,32,105,32,105,110,32,111,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,105,102,32,111,95,116,32,105,115,32,100,105,99,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,34,100,105,99,116,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,91,91,115,101,108,102,46,119,114,97,112,40,107,41,44,32,115,101,108,102,46,119,114,97,112,40,118,41,93,32,102,111,114,32,107,44,118,32,105,110,32,111,46,105,116,101,109,115,40,41,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,95,48,32,61,32,115,101,108,102,46,95,116,121,112,101,95,105,100,40,111,95,116,41,10,10,32,32,32,32,32,32,32,32,105,102,32,103,101,116,97,116,116,114,40,111,95,116,44,32,39,95,95,115,116,114,117,99,116,95,95,39,44,32,70,97,108,115,101,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,95,48,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,111,46,116,111,95,115,116,114,117,99,116,40,41,46,104,101,120,40,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,10,32,32,32,32,32,32,32,32,105,102,32,104,97,115,97,116,116,114,40,111,44,32,34,95,95,103,101,116,110,101,119,97,114,103,115,95,95,34,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,95,49,32,61,32,111,46,95,95,103,101,116,110,101,119,97,114,103,115,95,95,40,41,32,32,32,32,32,35,32,97,110,32,105,116,101,114,97,98,108,101,10,32,32,32,32,32,32,32,32,32,32,32,32,95,49,32,61,32,91,115,101,108,102,46,119,114,97,112,40,105,41,32,102,111,114,32,105,32,105,110,32,95,49,93,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,95,49,32,61,32,78,111,110,101,10,10,32,32,32,32,32,32,32,32,105,102,32,111,46,95,95,100,105,99,116,95,95,32,105,115,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,95,50,32,61,32,78,111,110,101,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,95,50,32,61,32,123,107,58,32,115,101,108,102,46,119,114,97,112,40,118,41,32,102,111,114,32,107,44,118,32,105,110,32,111,46,95,95,100,105,99,116,95,95,46,105,116,101,109,115,40,41,125,10,10,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,95,48,41,32,32,35,32,116,121,112,101,32,105,100,10,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,95,49,41,32,32,35,32,110,101,119,97,114,103,115,10,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,95,50,41,32,32,35,32,115,116,97,116,101,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,105,110,100,101,120,93,10,32,32,32,32,10,32,32,32,32,100,101,102,32,114,117,110,95,112,105,112,101,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,111,32,61,32,115,101,108,102,46,119,114,97,112,40,115,101,108,102,46,111,98,106,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,111,44,32,115,101,108,102,46,109,101,109,111,93,10,10,10,10,99,108,97,115,115,32,95,85,110,112,105,99,107,108,101,114,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,111,98,106,44,32,109,101,109,111,58,32,108,105,115,116,41,32,45,62,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,115,101,108,102,46,111,98,106,32,61,32,111,98,106,10,32,32,32,32,32,32,32,32,115,101,108,102,46,109,101,109,111,32,61,32,109,101,109,111,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,117,110,119,114,97,112,112,101,100,32,61,32,91,78,111,110,101,93,32,42,32,108,101,110,40,109,101,109,111,41,10,10,32,32,32,32,100,101,102,32,116,97,103,40,115,101,108,102,44,32,105,110,100,101,120,44,32,111,41,58,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,115,101,108,102,46,95,117,110,119,114,97,112,112,101,100,91,105,110,100,101,120,93,32,105,115,32,78,111,110,101,10,32,32,32,32,32,32,32,32,115,101,108,102,46,95,117,110,119,114,97,112,112,101,100,91,105,110,100,101,120,93,32,61,32,111,10,10,32,32,32,32,100,101,102,32,117,110,119,114,97,112,40,115,101,108,102,44,32,111,44,32,105,110,100,101,120,61,78,111,110,101,41,58,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,41,32,105,110,32,95,66,65,83,73,67,95,84,89,80,69,83,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,111,10,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,111,41,32,105,115,32,108,105,115,116,10,10,32,32,32,32,32,32,32,32,105,102,32,111,91,48,93,32,61,61,32,34,116,121,112,101,34,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,95,102,105,110,100,95,99,108,97,115,115,40,111,91,49,93,41,10,10,32,32,32,32,32,32,32,32,35,32,114,101,102,101,114,101,110,99,101,10,32,32,32,32,32,32,32,32,105,102,32,116,121,112,101,40,111,91,48,93,41,32,105,115,32,105,110,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,105,110,100,101,120,32,105,115,32,78,111,110,101,32,32,32,32,35,32,105,110,100,101,120,32,115,104,111,117,108,100,32,98,101,32,78,111,110,101,10,32,32,32,32,32,32,32,32,32,32,32,32,105,110,100,101,120,32,61,32,111,91,48,93,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,115,101,108,102,46,95,117,110,119,114,97,112,112,101,100,91,105,110,100,101,120,93,32,105,115,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,111,32,61,32,115,101,108,102,46,109,101,109,111,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,111,41,32,105,115,32,108,105,115,116,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,111,91,48,93,41,32,105,115,32,115,116,114,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,117,110,119,114,97,112,40,111,44,32,105,110,100,101,120,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,115,115,101,114,116,32,115,101,108,102,46,95,117,110,119,114,97,112,112,101,100,91,105,110,100,101,120,93,32,105,115,32,110,111,116,32,78,111,110,101,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,95,117,110,119,114,97,112,112,101,100,91,105,110,100,101,120,93,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,35,32,99,111,110,99,114,101,116,101,32,114,101,102,101,114,101,110,99,101,32,116,121,112,101,10,32,32,32,32,32,32,32,32,105,102,32,111,91,48,93,32,61,61,32,34,116,117,112,108,101,34,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,32,61,32,116,117,112,108,101,40,91,115,101,108,102,46,117,110,119,114,97,112,40,105,41,32,102,111,114,32,105,32,105,110,32,111,91,49,93,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,116,97,103,40,105,110,100,101,120,44,32,114,101,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,116,10,32,32,32,32,32,32,32,32,105,102,32,111,91,48,93,32,61,61,32,34,98,121,116,101,115,34,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,32,61,32,98,121,116,101,115,40,111,91,49,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,116,97,103,40,105,110,100,101,120,44,32,114,101,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,116,10,32,32,32,32,32,32,32,32,105,102,32,111,91,48,93,32,61,61,32,34,108,105,115,116,34,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,32,61,32,91,93,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,116,97,103,40,105,110,100,101,120,44,32,114,101,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,105,32,105,110,32,111,91,49,93,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,46,97,112,112,101,110,100,40,115,101,108,102,46,117,110,119,114,97,112,40,105,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,116,10,32,32,32,32,32,32,32,32,105,102,32,111,91,48,93,32,61,61,32,34,100,105,99,116,34,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,32,61,32,123,125,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,116,97,103,40,105,110,100,101,120,44,32,114,101,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,107,44,118,32,105,110,32,111,91,49,93,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,91,115,101,108,102,46,117,110,119,114,97,112,40,107,41,93,32,61,32,115,101,108,102,46,117,110,119,114,97,112,40,118,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,116,10,32,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32,35,32,103,101,110,101,114,105,99,32,111,98,106,101,99,116,10,32,32,32,32,32,32,32,32,99,108,115,32,61,32,95,102,105,110,100,95,99,108,97,115,115,40,111,91,48,93,41,10,32,32,32,32,32,32,32,32,105,102,32,103,101,116,97,116,116,114,40,99,108,115,44,32,39,95,95,115,116,114,117,99,116,95,95,39,44,32,70,97,108,115,101,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,105,110,115,116,32,61,32,99,108,115,46,102,114,111,109,95,115,116,114,117,99,116,40,115,116,114,117,99,116,46,102,114,111,109,104,101,120,40,111,91,49,93,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,116,97,103,40,105,110,100,101,120,44,32,105,110,115,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,10,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,95,44,32,110,101,119,97,114,103,115,44,32,115,116,97,116,101,32,61,32,111,10,32,32,32,32,32,32,32,32,32,32,32,32,35,32,99,114,101,97,116,101,32,117,110,105,110,105,116,105,97,108,105,122,101,100,32,105,110,115,116,97,110,99,101,10,32,32,32,32,32,32,32,32,32,32,32,32,110,101,119,95,102,32,61,32,103,101,116,97,116,116,114,40,99,108,115,44,32,34,95,95,110,101,119,95,95,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,110,101,119,97,114,103,115,32,105,115,32,110,111,116,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,101,119,97,114,103,115,32,61,32,91,115,101,108,102,46,117,110,119,114,97,112,40,105,41,32,102,111,114,32,105,32,105,110,32,110,101,119,97,114,103,115,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,110,115,116,32,61,32,110,101,119,95,102,40,99,108,115,44,32,42,110,101,119,97,114,103,115,41,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,110,115,116,32,61,32,110,101,119,95,102,40,99,108,115,41,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,108,102,46,116,97,103,40,105,110,100,101,120,44,32,105,110,115,116,41,10,32,32,32,32,32,32,32,32,32,32,32,32,35,32,114,101,115,116,111,114,101,32,115,116,97,116,101,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,115,116,97,116,101,32,105,115,32,110,111,116,32,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,107,44,118,32,105,110,32,115,116,97,116,101,46,105,116,101,109,115,40,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,116,97,116,116,114,40,105,110,115,116,44,32,107,44,32,115,101,108,102,46,117,110,119,114,97,112,40,118,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,10,10,32,32,32,32,100,101,102,32,114,117,110,95,112,105,112,101,40,115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,46,117,110,119,114,97,112,40,115,101,108,102,46,111,98,106,41,10,10,10,100,101,102,32,95,119,114,97,112,40,111,41,58,10,32,32,32,32,114,101,116,117,114,110,32,95,80,105,99,107,108,101,114,40,111,41,46,114,117,110,95,112,105,112,101,40,41,10,10,100,101,102,32,95,117,110,119,114,97,112,40,112,97,99,107,101,100,58,32,108,105,115,116,41,58,10,32,32,32,32,114,101,116,117,114,110,32,95,85,110,112,105,99,107,108,101,114,40,42,112,97,99,107,101,100,41,46,114,117,110,95,112,105,112,101,40,41,10,10,100,101,102,32,100,117,109,112,115,40,111,41,32,45,62,32,98,121,116,101,115,58,10,32,32,32,32,111,32,61,32,95,119,114,97,112,40,111,41,10,32,32,32,32,114,101,116,117,114,110,32,106,115,111,110,46,100,117,109,112,115,40,111,41,46,101,110,99,111,100,101,40,41,10,10,100,101,102,32,108,111,97,100,115,40,98,41,32,45,62,32,111,98,106,101,99,116,58,10,32,32,32,32,97,115,115,101,114,116,32,116,121,112,101,40,98,41,32,105,115,32,98,121,116,101,115,10,32,32,32,32,111,32,61,32,106,115,111,110,46,108,111,97,100,115,40,98,46,100,101,99,111,100,101,40,41,41,10,32,32,32,32,114,101,116,117,114,110,32,95,117,110,119,114,97,112,40,111,41,0}; + const char kPythonLibs_this[] = {112,114,105,110,116,40,34,34,34,84,104,101,32,90,101,110,32,111,102,32,80,121,116,104,111,110,44,32,98,121,32,84,105,109,32,80,101,116,101,114,115,10,10,66,101,97,117,116,105,102,117,108,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,117,103,108,121,46,10,69,120,112,108,105,99,105,116,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,105,109,112,108,105,99,105,116,46,10,83,105,109,112,108,101,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,99,111,109,112,108,101,120,46,10,67,111,109,112,108,101,120,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,99,111,109,112,108,105,99,97,116,101,100,46,10,70,108,97,116,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,110,101,115,116,101,100,46,10,83,112,97,114,115,101,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,100,101,110,115,101,46,10,82,101,97,100,97,98,105,108,105,116,121,32,99,111,117,110,116,115,46,10,83,112,101,99,105,97,108,32,99,97,115,101,115,32,97,114,101,110,39,116,32,115,112,101,99,105,97,108,32,101,110,111,117,103,104,32,116,111,32,98,114,101,97,107,32,116,104,101,32,114,117,108,101,115,46,10,65,108,116,104,111,117,103,104,32,112,114,97,99,116,105,99,97,108,105,116,121,32,98,101,97,116,115,32,112,117,114,105,116,121,46,10,69,114,114,111,114,115,32,115,104,111,117,108,100,32,110,101,118,101,114,32,112,97,115,115,32,115,105,108,101,110,116,108,121,46,10,85,110,108,101,115,115,32,101,120,112,108,105,99,105,116,108,121,32,115,105,108,101,110,99,101,100,46,10,73,110,32,116,104,101,32,102,97,99,101,32,111,102,32,97,109,98,105,103,117,105,116,121,44,32,114,101,102,117,115,101,32,116,104,101,32,116,101,109,112,116,97,116,105,111,110,32,116,111,32,103,117,101,115,115,46,10,84,104,101,114,101,32,115,104,111,117,108,100,32,98,101,32,111,110,101,45,45,32,97,110,100,32,112,114,101,102,101,114,97,98,108,121,32,111,110,108,121,32,111,110,101,32,45,45,111,98,118,105,111,117,115,32,119,97,121,32,116,111,32,100,111,32,105,116,46,10,65,108,116,104,111,117,103,104,32,116,104,97,116,32,119,97,121,32,109,97,121,32,110,111,116,32,98,101,32,111,98,118,105,111,117,115,32,97,116,32,102,105,114,115,116,32,117,110,108,101,115,115,32,121,111,117,39,114,101,32,68,117,116,99,104,46,10,78,111,119,32,105,115,32,98,101,116,116,101,114,32,116,104,97,110,32,110,101,118,101,114,46,10,65,108,116,104,111,117,103,104,32,110,101,118,101,114,32,105,115,32,111,102,116,101,110,32,98,101,116,116,101,114,32,116,104,97,110,32,42,114,105,103,104,116,42,32,110,111,119,46,10,73,102,32,116,104,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,105,115,32,104,97,114,100,32,116,111,32,101,120,112,108,97,105,110,44,32,105,116,39,115,32,97,32,98,97,100,32,105,100,101,97,46,10,73,102,32,116,104,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,105,115,32,101,97,115,121,32,116,111,32,101,120,112,108,97,105,110,44,32,105,116,32,109,97,121,32,98,101,32,97,32,103,111,111,100,32,105,100,101,97,46,10,78,97,109,101,115,112,97,99,101,115,32,97,114,101,32,111,110,101,32,104,111,110,107,105,110,103,32,103,114,101,97,116,32,105,100,101,97,32,45,45,32,108,101,116,39,115,32,100,111,32,109,111,114,101,32,111,102,32,116,104,111,115,101,33,34,34,34,41,0}; + const char kPythonLibs_typing[] = {99,108,97,115,115,32,95,80,108,97,99,101,104,111,108,100,101,114,58,10,32,32,32,32,100,101,102,32,95,95,105,110,105,116,95,95,40,115,101,108,102,44,32,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,112,97,115,115,10,32,32,32,32,100,101,102,32,95,95,103,101,116,105,116,101,109,95,95,40,115,101,108,102,44,32,42,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,10,32,32,32,32,100,101,102,32,95,95,99,97,108,108,95,95,40,115,101,108,102,44,32,42,97,114,103,115,44,32,42,42,107,119,97,114,103,115,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,10,32,32,32,32,100,101,102,32,95,95,97,110,100,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,10,32,32,32,32,100,101,102,32,95,95,111,114,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,10,32,32,32,32,100,101,102,32,95,95,120,111,114,95,95,40,115,101,108,102,44,32,111,116,104,101,114,41,58,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,101,108,102,10,10,10,95,80,76,65,67,69,72,79,76,68,69,82,32,61,32,95,80,108,97,99,101,104,111,108,100,101,114,40,41,10,10,76,105,115,116,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,68,105,99,116,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,84,117,112,108,101,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,83,101,116,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,65,110,121,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,85,110,105,111,110,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,79,112,116,105,111,110,97,108,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,67,97,108,108,97,98,108,101,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,84,121,112,101,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,80,114,111,116,111,99,111,108,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,10,76,105,116,101,114,97,108,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,76,105,116,101,114,97,108,83,116,114,105,110,103,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,10,73,116,101,114,97,98,108,101,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,71,101,110,101,114,97,116,111,114,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,10,72,97,115,104,97,98,108,101,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,10,84,121,112,101,86,97,114,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,83,101,108,102,32,61,32,95,80,76,65,67,69,72,79,76,68,69,82,10,10,99,108,97,115,115,32,71,101,110,101,114,105,99,58,10,32,32,32,32,112,97,115,115,10,10,84,89,80,69,95,67,72,69,67,75,73,78,71,32,61,32,70,97,108,115,101,10,10,35,32,100,101,99,111,114,97,116,111,114,115,10,111,118,101,114,108,111,97,100,32,61,32,108,97,109,98,100,97,32,120,58,32,120,10,102,105,110,97,108,32,61,32,108,97,109,98,100,97,32,120,58,32,120,10,0}; +} // namespace pkpy diff --git a/dependencies/pocketpy/src/array2d.cpp b/dependencies/pocketpy/src/array2d.cpp new file mode 100644 index 0000000..73dc784 --- /dev/null +++ b/dependencies/pocketpy/src/array2d.cpp @@ -0,0 +1,354 @@ +#include "pocketpy/array2d.h" + +namespace pkpy{ + +struct Array2d{ + PK_ALWAYS_PASS_BY_POINTER(Array2d) + PY_CLASS(Array2d, array2d, array2d) + + PyObject** data; + int n_cols; + int n_rows; + int numel; + + Array2d(){ + data = nullptr; + n_cols = 0; + n_rows = 0; + numel = 0; + } + + Array2d* _() { return this; } + + void init(int n_cols, int n_rows){ + this->n_cols = n_cols; + this->n_rows = n_rows; + this->numel = n_cols * n_rows; + this->data = new PyObject*[numel]; + } + + bool is_valid(int col, int row) const{ + return 0 <= col && col < n_cols && 0 <= row && row < n_rows; + } + + PyObject* _get(int col, int row){ + return data[row * n_cols + col]; + } + + void _set(int col, int row, PyObject* value){ + data[row * n_cols + col] = value; + } + + static void _register(VM* vm, PyObject* mod, PyObject* type){ + vm->bind(type, "__new__(cls, *args, **kwargs)", [](VM* vm, ArgsView args){ + Type cls = PK_OBJ_GET(Type, args[0]); + return vm->heap.gcnew(cls); + }); + + vm->bind(type, "__init__(self, n_cols: int, n_rows: int, default=None)", [](VM* vm, ArgsView args){ + Array2d& self = PK_OBJ_GET(Array2d, args[0]); + int n_cols = CAST(int, args[1]); + int n_rows = CAST(int, args[2]); + if(n_cols <= 0 || n_rows <= 0){ + vm->ValueError("n_cols and n_rows must be positive integers"); + } + self.init(n_cols, n_rows); + if(vm->py_callable(args[3])){ + for(int i = 0; i < self.numel; i++) self.data[i] = vm->call(args[3]); + }else{ + for(int i = 0; i < self.numel; i++) self.data[i] = args[3]; + } + return vm->None; + }); + + PY_READONLY_FIELD(Array2d, "n_cols", _, n_cols); + PY_READONLY_FIELD(Array2d, "n_rows", _, n_rows); + PY_READONLY_FIELD(Array2d, "width", _, n_cols); + PY_READONLY_FIELD(Array2d, "height", _, n_rows); + PY_READONLY_FIELD(Array2d, "numel", _, numel); + + vm->bind(type, "is_valid(self, col: int, row: int)", [](VM* vm, ArgsView args){ + Array2d& self = PK_OBJ_GET(Array2d, args[0]); + int col = CAST(int, args[1]); + int row = CAST(int, args[2]); + return VAR(self.is_valid(col, row)); + }); + + vm->bind(type, "get(self, col: int, row: int, default=None)", [](VM* vm, ArgsView args){ + Array2d& self = PK_OBJ_GET(Array2d, args[0]); + int col = CAST(int, args[1]); + int row = CAST(int, args[2]); + if(!self.is_valid(col, row)) return args[3]; + return self._get(col, row); + }); + + #define HANDLE_SLICE() \ + int start_col, stop_col, step_col; \ + int start_row, stop_row, step_row; \ + vm->parse_int_slice(PK_OBJ_GET(Slice, xy[0]), self.n_cols, start_col, stop_col, step_col); \ + vm->parse_int_slice(PK_OBJ_GET(Slice, xy[1]), self.n_rows, start_row, stop_row, step_row); \ + if(step_col != 1 || step_row != 1) vm->ValueError("slice step must be 1"); \ + int slice_width = stop_col - start_col; \ + int slice_height = stop_row - start_row; \ + if(slice_width <= 0 || slice_height <= 0) vm->ValueError("slice width and height must be positive"); + + vm->bind__getitem__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ + Array2d& self = PK_OBJ_GET(Array2d, _0); + const Tuple& xy = CAST(Tuple&, _1); + i64 col, row; + if(try_cast_int(xy[0], &col) && try_cast_int(xy[1], &row)){ + if(!self.is_valid(col, row)){ + vm->IndexError(_S('(', col, ", ", row, ')', " is not a valid index for array2d(", self.n_cols, ", ", self.n_rows, ')')); + } + return self._get(col, row); + } + + if(is_type(xy[0], VM::tp_slice) && is_type(xy[1], VM::tp_slice)){ + HANDLE_SLICE(); + PyObject* new_array_obj = vm->heap.gcnew(Array2d::_type(vm)); + Array2d& new_array = PK_OBJ_GET(Array2d, new_array_obj); + new_array.init(stop_col - start_col, stop_row - start_row); + for(int j = start_row; j < stop_row; j++){ + for(int i = start_col; i < stop_col; i++){ + new_array._set(i - start_col, j - start_row, self._get(i, j)); + } + } + return new_array_obj; + } + vm->TypeError("expected `tuple[int, int]` or `tuple[slice, slice]` as index"); + PK_UNREACHABLE(); + }); + + vm->bind__setitem__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1, PyObject* _2){ + Array2d& self = PK_OBJ_GET(Array2d, _0); + const Tuple& xy = CAST(Tuple&, _1); + i64 col, row; + if(try_cast_int(xy[0], &col) && try_cast_int(xy[1], &row)){ + if(!self.is_valid(col, row)){ + vm->IndexError(_S('(', col, ", ", row, ')', " is not a valid index for array2d(", self.n_cols, ", ", self.n_rows, ')')); + } + self._set(col, row, _2); + return; + } + + if(is_type(xy[0], VM::tp_slice) && is_type(xy[1], VM::tp_slice)){ + HANDLE_SLICE(); + + bool is_basic_type = false; + switch(vm->_tp(_2).index){ + case VM::tp_int.index: is_basic_type = true; break; + case VM::tp_float.index: is_basic_type = true; break; + case VM::tp_str.index: is_basic_type = true; break; + case VM::tp_bool.index: is_basic_type = true; break; + default: is_basic_type = _2 == vm->None; + } + + if(is_basic_type){ + for(int j = 0; j < slice_height; j++) + for(int i = 0; i < slice_width; i++) + self._set(i + start_col, j + start_row, _2); + return; + } + + if(!is_type(_2, Array2d::_type(vm))){ + vm->TypeError(_S("expected int/float/str/bool/None or an array2d instance")); + } + + Array2d& other = PK_OBJ_GET(Array2d, _2); + if(slice_width != other.n_cols || slice_height != other.n_rows){ + vm->ValueError("array2d size does not match the slice size"); + } + for(int j = 0; j < slice_height; j++) + for(int i = 0; i < slice_width; i++) + self._set(i + start_col, j + start_row, other._get(i, j)); + return; + } + vm->TypeError("expected `tuple[int, int]` or `tuple[slice, slice]` as index"); + }); + + #undef HANDLE_SLICE + + vm->bind(type, "tolist(self)", [](VM* vm, ArgsView args){ + Array2d& self = PK_OBJ_GET(Array2d, args[0]); + List t(self.n_rows); + for(int j = 0; j < self.n_rows; j++){ + List row(self.n_cols); + for(int i = 0; i < self.n_cols; i++) row[i] = self._get(i, j); + t[j] = VAR(std::move(row)); + } + return VAR(std::move(t)); + }); + + vm->bind__len__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0){ + Array2d& self = PK_OBJ_GET(Array2d, _0); + return (i64)self.n_rows; + }); + + vm->bind__repr__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0){ + Array2d& self = PK_OBJ_GET(Array2d, _0); + return VAR(_S("array2d(", self.n_cols, ", ", self.n_rows, ')')); + }); + + vm->bind(type, "map(self, f)", [](VM* vm, ArgsView args){ + Array2d& self = PK_OBJ_GET(Array2d, args[0]); + PyObject* f = args[1]; + PyObject* new_array_obj = vm->heap.gcnew(Array2d::_type(vm)); + Array2d& new_array = PK_OBJ_GET(Array2d, new_array_obj); + new_array.init(self.n_cols, self.n_rows); + for(int i = 0; i < new_array.numel; i++){ + new_array.data[i] = vm->call(f, self.data[i]); + } + return new_array_obj; + }); + + vm->bind(type, "copy(self)", [](VM* vm, ArgsView args){ + Array2d& self = PK_OBJ_GET(Array2d, args[0]); + PyObject* new_array_obj = vm->heap.gcnew(Array2d::_type(vm)); + Array2d& new_array = PK_OBJ_GET(Array2d, new_array_obj); + new_array.init(self.n_cols, self.n_rows); + for(int i = 0; i < new_array.numel; i++){ + new_array.data[i] = self.data[i]; + } + return new_array_obj; + }); + + vm->bind(type, "fill_(self, value)", [](VM* vm, ArgsView args){ + Array2d& self = PK_OBJ_GET(Array2d, args[0]); + for(int i = 0; i < self.numel; i++){ + self.data[i] = args[1]; + } + return vm->None; + }); + + vm->bind(type, "apply_(self, f)", [](VM* vm, ArgsView args){ + Array2d& self = PK_OBJ_GET(Array2d, args[0]); + PyObject* f = args[1]; + for(int i = 0; i < self.numel; i++){ + self.data[i] = vm->call(f, self.data[i]); + } + return vm->None; + }); + + vm->bind(type, "copy_(self, other)", [](VM* vm, ArgsView args){ + Array2d& self = PK_OBJ_GET(Array2d, args[0]); + if(is_type(args[1], VM::tp_list)){ + const List& list = PK_OBJ_GET(List, args[1]); + if(list.size() != self.numel){ + vm->ValueError("list size must be equal to the number of elements in the array2d"); + } + for(int i = 0; i < self.numel; i++){ + self.data[i] = list[i]; + } + return vm->None; + } + Array2d& other = CAST(Array2d&, args[1]); + // if self and other have different sizes, re-initialize self + if(self.n_cols != other.n_cols || self.n_rows != other.n_rows){ + delete self.data; + self.init(other.n_cols, other.n_rows); + } + for(int i = 0; i < self.numel; i++){ + self.data[i] = other.data[i]; + } + return vm->None; + }); + + vm->bind__eq__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ + Array2d& self = PK_OBJ_GET(Array2d, _0); + if(!is_type(_1, Array2d::_type(vm))) return vm->NotImplemented; + Array2d& other = PK_OBJ_GET(Array2d, _1); + if(self.n_cols != other.n_cols || self.n_rows != other.n_rows) return vm->False; + for(int i = 0; i < self.numel; i++){ + if(vm->py_ne(self.data[i], other.data[i])) return vm->False; + } + return vm->True; + }); + + vm->bind(type, "count_neighbors(self, value, neighborhood='Moore') -> array2d[int]", [](VM* vm, ArgsView args){ + Array2d& self = PK_OBJ_GET(Array2d, args[0]); + PyObject* new_array_obj = vm->heap.gcnew(Array2d::_type(vm)); + Array2d& new_array = PK_OBJ_GET(Array2d, new_array_obj); + new_array.init(self.n_cols, self.n_rows); + PyObject* value = args[1]; + const Str& neighborhood = CAST(Str&, args[2]); + if(neighborhood == "Moore"){ + for(int j = 0; j < new_array.n_rows; j++){ + for(int i = 0; i < new_array.n_cols; i++){ + int count = 0; + count += self.is_valid(i-1, j-1) && vm->py_eq(self._get(i-1, j-1), value); + count += self.is_valid(i, j-1) && vm->py_eq(self._get(i, j-1), value); + count += self.is_valid(i+1, j-1) && vm->py_eq(self._get(i+1, j-1), value); + count += self.is_valid(i-1, j) && vm->py_eq(self._get(i-1, j), value); + count += self.is_valid(i+1, j) && vm->py_eq(self._get(i+1, j), value); + count += self.is_valid(i-1, j+1) && vm->py_eq(self._get(i-1, j+1), value); + count += self.is_valid(i, j+1) && vm->py_eq(self._get(i, j+1), value); + count += self.is_valid(i+1, j+1) && vm->py_eq(self._get(i+1, j+1), value); + new_array._set(i, j, VAR(count)); + } + } + }else if(neighborhood == "von Neumann"){ + for(int j = 0; j < new_array.n_rows; j++){ + for(int i = 0; i < new_array.n_cols; i++){ + int count = 0; + count += self.is_valid(i, j-1) && vm->py_eq(self._get(i, j-1), value); + count += self.is_valid(i-1, j) && vm->py_eq(self._get(i-1, j), value); + count += self.is_valid(i+1, j) && vm->py_eq(self._get(i+1, j), value); + count += self.is_valid(i, j+1) && vm->py_eq(self._get(i, j+1), value); + new_array._set(i, j, VAR(count)); + } + } + }else{ + vm->ValueError("neighborhood must be 'Moore' or 'von Neumann'"); + } + return new_array_obj; + }); + + vm->bind(type, "count(self, value) -> int", [](VM* vm, ArgsView args){ + Array2d& self = PK_OBJ_GET(Array2d, args[0]); + PyObject* value = args[1]; + int count = 0; + for(int i = 0; i < self.numel; i++) count += vm->py_eq(self.data[i], value); + return VAR(count); + }); + + vm->bind(type, "find_bounding_rect(self, value)", [](VM* vm, ArgsView args){ + Array2d& self = PK_OBJ_GET(Array2d, args[0]); + PyObject* value = args[1]; + int left = self.n_cols; + int top = self.n_rows; + int right = 0; + int bottom = 0; + for(int j = 0; j < self.n_rows; j++){ + for(int i = 0; i < self.n_cols; i++){ + if(vm->py_eq(self._get(i, j), value)){ + left = std::min(left, i); + top = std::min(top, j); + right = std::max(right, i); + bottom = std::max(bottom, j); + } + } + } + int width = right - left + 1; + int height = bottom - top + 1; + if(width <= 0 || height <= 0) return vm->None; + return VAR(Tuple(VAR(left), VAR(top), VAR(width), VAR(height))); + }); + } + + void _gc_mark() const{ + for(int i = 0; i < numel; i++) PK_OBJ_MARK(data[i]); + } + + ~Array2d(){ + delete[] data; + } +}; + +void add_module_array2d(VM* vm){ + PyObject* mod = vm->new_module("array2d"); + + Array2d::register_class(vm, mod); +} + + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/base64.cpp b/dependencies/pocketpy/src/base64.cpp new file mode 100644 index 0000000..5dc83ca --- /dev/null +++ b/dependencies/pocketpy/src/base64.cpp @@ -0,0 +1,188 @@ +#include "pocketpy/base64.h" + +namespace pkpy{ + +// https://github.com/zhicheng/base64/blob/master/base64.c + +const char BASE64_PAD = '='; +const char BASE64DE_FIRST = '+'; +const char BASE64DE_LAST = 'z'; + +/* BASE 64 encode table */ +const char base64en[] = { + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', + 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', + 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', + 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', + 'w', 'x', 'y', 'z', '0', '1', '2', '3', + '4', '5', '6', '7', '8', '9', '+', '/', +}; + +/* ASCII order for BASE 64 decode, 255 in unused character */ +const unsigned char base64de[] = { + /* nul, soh, stx, etx, eot, enq, ack, bel, */ + 255, 255, 255, 255, 255, 255, 255, 255, + + /* bs, ht, nl, vt, np, cr, so, si, */ + 255, 255, 255, 255, 255, 255, 255, 255, + + /* dle, dc1, dc2, dc3, dc4, nak, syn, etb, */ + 255, 255, 255, 255, 255, 255, 255, 255, + + /* can, em, sub, esc, fs, gs, rs, us, */ + 255, 255, 255, 255, 255, 255, 255, 255, + + /* sp, '!', '"', '#', '$', '%', '&', ''', */ + 255, 255, 255, 255, 255, 255, 255, 255, + + /* '(', ')', '*', '+', ',', '-', '.', '/', */ + 255, 255, 255, 62, 255, 255, 255, 63, + + /* '0', '1', '2', '3', '4', '5', '6', '7', */ + 52, 53, 54, 55, 56, 57, 58, 59, + + /* '8', '9', ':', ';', '<', '=', '>', '?', */ + 60, 61, 255, 255, 255, 255, 255, 255, + + /* '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', */ + 255, 0, 1, 2, 3, 4, 5, 6, + + /* 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', */ + 7, 8, 9, 10, 11, 12, 13, 14, + + /* 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', */ + 15, 16, 17, 18, 19, 20, 21, 22, + + /* 'X', 'Y', 'Z', '[', '\', ']', '^', '_', */ + 23, 24, 25, 255, 255, 255, 255, 255, + + /* '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', */ + 255, 26, 27, 28, 29, 30, 31, 32, + + /* 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', */ + 33, 34, 35, 36, 37, 38, 39, 40, + + /* 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', */ + 41, 42, 43, 44, 45, 46, 47, 48, + + /* 'x', 'y', 'z', '{', '|', '}', '~', del, */ + 49, 50, 51, 255, 255, 255, 255, 255 +}; + +static unsigned int +base64_encode(const unsigned char *in, unsigned int inlen, char *out) +{ + int s; + unsigned int i; + unsigned int j; + unsigned char c; + unsigned char l; + + s = 0; + l = 0; + for (i = j = 0; i < inlen; i++) { + c = in[i]; + + switch (s) { + case 0: + s = 1; + out[j++] = base64en[(c >> 2) & 0x3F]; + break; + case 1: + s = 2; + out[j++] = base64en[((l & 0x3) << 4) | ((c >> 4) & 0xF)]; + break; + case 2: + s = 0; + out[j++] = base64en[((l & 0xF) << 2) | ((c >> 6) & 0x3)]; + out[j++] = base64en[c & 0x3F]; + break; + } + l = c; + } + + switch (s) { + case 1: + out[j++] = base64en[(l & 0x3) << 4]; + out[j++] = BASE64_PAD; + out[j++] = BASE64_PAD; + break; + case 2: + out[j++] = base64en[(l & 0xF) << 2]; + out[j++] = BASE64_PAD; + break; + } + + out[j] = 0; + + return j; +} + +static unsigned int +base64_decode(const char *in, unsigned int inlen, unsigned char *out) +{ + unsigned int i; + unsigned int j; + unsigned char c; + + if (inlen & 0x3) { + return 0; + } + + for (i = j = 0; i < inlen; i++) { + if (in[i] == BASE64_PAD) { + break; + } + if (in[i] < BASE64DE_FIRST || in[i] > BASE64DE_LAST) { + return 0; + } + + c = base64de[(unsigned char)in[i]]; + if (c == 255) { + return 0; + } + + switch (i & 0x3) { + case 0: + out[j] = (c << 2) & 0xFF; + break; + case 1: + out[j++] |= (c >> 4) & 0x3; + out[j] = (c & 0xF) << 4; + break; + case 2: + out[j++] |= (c >> 2) & 0xF; + out[j] = (c & 0x3) << 6; + break; + case 3: + out[j++] |= c; + break; + } + } + + return j; +} + +void add_module_base64(VM* vm){ + PyObject* mod = vm->new_module("base64"); + + // b64encode + vm->bind_func<1>(mod, "b64encode", [](VM* vm, ArgsView args){ + Bytes& b = CAST(Bytes&, args[0]); + unsigned char* p = new unsigned char[b.size() * 2]; + int size = base64_encode((const unsigned char*)b.data(), b.size(), (char*)p); + return VAR(Bytes(p, size)); + }); + + // b64decode + vm->bind_func<1>(mod, "b64decode", [](VM* vm, ArgsView args){ + Bytes& b = CAST(Bytes&, args[0]); + unsigned char* p = new unsigned char[b.size()]; + int size = base64_decode((const char*)b.data(), b.size(), p); + return VAR(Bytes(p, size)); + }); +} + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/ceval.cpp b/dependencies/pocketpy/src/ceval.cpp new file mode 100644 index 0000000..2a45c16 --- /dev/null +++ b/dependencies/pocketpy/src/ceval.cpp @@ -0,0 +1,949 @@ +#include "pocketpy/ceval.h" + +namespace pkpy{ + +#define PREDICT_INT_OP(op) \ + if(is_small_int(_0) && is_small_int(_1)){ \ + TOP() = VAR((PK_BITS(_0)>>2) op (PK_BITS(_1)>>2)); \ + DISPATCH() \ + } + +#define PREDICT_INT_DIV_OP(op) \ + if(is_small_int(_0) && is_small_int(_1)){ \ + if(_1 == PK_SMALL_INT(0)) ZeroDivisionError(); \ + TOP() = VAR((PK_BITS(_0)>>2) op (PK_BITS(_1)>>2)); \ + DISPATCH() \ + } + +#define BINARY_F_COMPARE(func, op, rfunc) \ + PyObject* ret; \ + const PyTypeInfo* _ti = _inst_type_info(_0); \ + if(_ti->m##func){ \ + ret = _ti->m##func(this, _0, _1); \ + }else{ \ + PyObject* self; \ + PyObject* _2 = get_unbound_method(_0, func, &self, false); \ + if(_2 != nullptr) ret = call_method(self, _2, _1); \ + else ret = NotImplemented; \ + } \ + if(ret == NotImplemented){ \ + PyObject* self; \ + PyObject* _2 = get_unbound_method(_1, rfunc, &self, false); \ + if(_2 != nullptr) ret = call_method(self, _2, _0); \ + else BinaryOptError(op, _0, _1); \ + if(ret == NotImplemented) BinaryOptError(op, _0, _1); \ + } + + +bool VM::py_lt(PyObject* _0, PyObject* _1){ + BINARY_F_COMPARE(__lt__, "<", __gt__); + return ret == True; +} + +bool VM::py_le(PyObject* _0, PyObject* _1){ + BINARY_F_COMPARE(__le__, "<=", __ge__); + return ret == True; +} + +bool VM::py_gt(PyObject* _0, PyObject* _1){ + BINARY_F_COMPARE(__gt__, ">", __lt__); + return ret == True; +} + +bool VM::py_ge(PyObject* _0, PyObject* _1){ + BINARY_F_COMPARE(__ge__, ">=", __le__); + return ret == True; +} + +#undef BINARY_F_COMPARE + +PyObject* VM::_run_top_frame(){ + Frame* frame = top_frame(); + const Frame* base_frame = frame; + bool need_raise = false; + + while(true){ + try{ + if(need_raise){ need_raise = false; _raise(); } +/**********************************************************************/ +/* NOTE: + * Be aware of accidental gc! + * DO NOT leave any strong reference of PyObject* in the C stack + */ +{ + +#define CEVAL_STEP_CALLBACK() \ + if(_ceval_on_step) _ceval_on_step(this, frame, byte); \ + if(_profiler) _profiler->_step(callstack.size(), frame); \ + if(!_next_breakpoint.empty()) { _next_breakpoint._step(this); } + +#define DISPATCH_OP_CALL() { frame = top_frame(); goto __NEXT_FRAME; } +__NEXT_FRAME: + // cache + const CodeObject* co = frame->co; + const Bytecode* co_codes = co->codes.data(); + + Bytecode byte = co_codes[frame->next_bytecode()]; + CEVAL_STEP_CALLBACK(); + +#define TARGET(op) case OP_##op: +#define DISPATCH() { byte = co_codes[frame->next_bytecode()]; CEVAL_STEP_CALLBACK(); goto __NEXT_STEP;} + +__NEXT_STEP:; +#if PK_DEBUG_CEVAL_STEP + _log_s_data(); +#endif + switch ((Opcode)byte.op) + { + TARGET(NO_OP) DISPATCH(); + /*****************************************/ + TARGET(POP_TOP) POP(); DISPATCH(); + TARGET(DUP_TOP) PUSH(TOP()); DISPATCH(); + TARGET(ROT_TWO) std::swap(TOP(), SECOND()); DISPATCH(); + TARGET(ROT_THREE){ + PyObject* _0 = TOP(); + TOP() = SECOND(); + SECOND() = THIRD(); + THIRD() = _0; + } DISPATCH(); + TARGET(PRINT_EXPR){ + if(TOP() != None) stdout_write(CAST(Str&, py_repr(TOP())) + "\n"); + POP(); + } DISPATCH(); + /*****************************************/ + TARGET(LOAD_CONST) + if(heap._should_auto_collect()) heap._auto_collect(); + PUSH(co->consts[byte.arg]); + DISPATCH(); + TARGET(LOAD_NONE) PUSH(None); DISPATCH(); + TARGET(LOAD_TRUE) PUSH(True); DISPATCH(); + TARGET(LOAD_FALSE) PUSH(False); DISPATCH(); + /*****************************************/ + TARGET(LOAD_INT_0) PUSH(PK_SMALL_INT(0)); DISPATCH(); + TARGET(LOAD_INT_1) PUSH(PK_SMALL_INT(1)); DISPATCH(); + TARGET(LOAD_INT_2) PUSH(PK_SMALL_INT(2)); DISPATCH(); + TARGET(LOAD_INT_3) PUSH(PK_SMALL_INT(3)); DISPATCH(); + TARGET(LOAD_INT_4) PUSH(PK_SMALL_INT(4)); DISPATCH(); + TARGET(LOAD_INT_5) PUSH(PK_SMALL_INT(5)); DISPATCH(); + TARGET(LOAD_INT_6) PUSH(PK_SMALL_INT(6)); DISPATCH(); + TARGET(LOAD_INT_7) PUSH(PK_SMALL_INT(7)); DISPATCH(); + TARGET(LOAD_INT_8) PUSH(PK_SMALL_INT(8)); DISPATCH(); + TARGET(LOAD_INT_9) PUSH(PK_SMALL_INT(9)); DISPATCH(); + TARGET(LOAD_INT_10) PUSH(PK_SMALL_INT(10)); DISPATCH(); + TARGET(LOAD_INT_11) PUSH(PK_SMALL_INT(11)); DISPATCH(); + TARGET(LOAD_INT_12) PUSH(PK_SMALL_INT(12)); DISPATCH(); + TARGET(LOAD_INT_13) PUSH(PK_SMALL_INT(13)); DISPATCH(); + TARGET(LOAD_INT_14) PUSH(PK_SMALL_INT(14)); DISPATCH(); + TARGET(LOAD_INT_15) PUSH(PK_SMALL_INT(15)); DISPATCH(); + TARGET(LOAD_INT_16) PUSH(PK_SMALL_INT(16)); DISPATCH(); + /*****************************************/ + TARGET(LOAD_ELLIPSIS) PUSH(Ellipsis); DISPATCH(); + TARGET(LOAD_FUNCTION) { + const FuncDecl_& decl = co->func_decls[byte.arg]; + PyObject* obj; + if(decl->nested){ + NameDict_ captured = frame->_locals.to_namedict(); + obj = VAR(Function(decl, frame->_module, nullptr, captured)); + captured->set(decl->code->name, obj); + }else{ + obj = VAR(Function(decl, frame->_module, nullptr, nullptr)); + } + PUSH(obj); + } DISPATCH(); + TARGET(LOAD_NULL) PUSH(PY_NULL); DISPATCH(); + /*****************************************/ + TARGET(LOAD_FAST) { + if(heap._should_auto_collect()) heap._auto_collect(); + PyObject* _0 = frame->_locals[byte.arg]; + if(_0 == PY_NULL) vm->UnboundLocalError(co->varnames[byte.arg]); + PUSH(_0); + } DISPATCH(); + TARGET(LOAD_NAME) { + StrName _name(byte.arg); + PyObject** slot = frame->_locals.try_get_name(_name); + if(slot != nullptr) { + if(*slot == PY_NULL) vm->UnboundLocalError(_name); + PUSH(*slot); + DISPATCH(); + } + PyObject* _0 = frame->f_closure_try_get(_name); + if(_0 != nullptr) { PUSH(_0); DISPATCH(); } + _0 = frame->f_globals().try_get_likely_found(_name); + if(_0 != nullptr) { PUSH(_0); DISPATCH(); } + _0 = vm->builtins->attr().try_get_likely_found(_name); + if(_0 != nullptr) { PUSH(_0); DISPATCH(); } + vm->NameError(_name); + } DISPATCH(); + TARGET(LOAD_NONLOCAL) { + if(heap._should_auto_collect()) heap._auto_collect(); + StrName _name(byte.arg); + PyObject* _0 = frame->f_closure_try_get(_name); + if(_0 != nullptr) { PUSH(_0); DISPATCH(); } + _0 = frame->f_globals().try_get_likely_found(_name); + if(_0 != nullptr) { PUSH(_0); DISPATCH(); } + _0 = vm->builtins->attr().try_get_likely_found(_name); + if(_0 != nullptr) { PUSH(_0); DISPATCH(); } + vm->NameError(_name); + } DISPATCH(); + TARGET(LOAD_GLOBAL){ + if(heap._should_auto_collect()) heap._auto_collect(); + StrName _name(byte.arg); + PyObject* _0 = frame->f_globals().try_get_likely_found(_name); + if(_0 != nullptr) { PUSH(_0); DISPATCH(); } + _0 = vm->builtins->attr().try_get_likely_found(_name); + if(_0 != nullptr) { PUSH(_0); DISPATCH(); } + vm->NameError(_name); + } DISPATCH(); + TARGET(LOAD_ATTR){ + TOP() = getattr(TOP(), StrName(byte.arg)); + } DISPATCH(); + TARGET(LOAD_CLASS_GLOBAL){ + PK_ASSERT(_curr_class != nullptr); + StrName _name(byte.arg); + PyObject* _0 = getattr(_curr_class, _name, false); + if(_0 != nullptr) { PUSH(_0); DISPATCH(); } + // load global if attribute not found + _0 = frame->f_globals().try_get_likely_found(_name); + if(_0 != nullptr) { PUSH(_0); DISPATCH(); } + _0 = vm->builtins->attr().try_get_likely_found(_name); + if(_0 != nullptr) { PUSH(_0); DISPATCH(); } + vm->NameError(_name); + } DISPATCH(); + TARGET(LOAD_METHOD){ + PyObject* _0; + TOP() = get_unbound_method(TOP(), StrName(byte.arg), &_0, true, true); + PUSH(_0); + }DISPATCH(); + TARGET(LOAD_SUBSCR){ + PyObject* _1 = POPX(); // b + PyObject* _0 = TOP(); // a + auto _ti = _inst_type_info(_0); + if(_ti->m__getitem__){ + TOP() = _ti->m__getitem__(this, _0, _1); + }else{ + TOP() = call_method(_0, __getitem__, _1); + } + } DISPATCH(); + TARGET(STORE_FAST) + frame->_locals[byte.arg] = POPX(); + DISPATCH(); + TARGET(STORE_NAME){ + StrName _name(byte.arg); + PyObject* _0 = POPX(); + if(frame->_callable != nullptr){ + PyObject** slot = frame->_locals.try_get_name(_name); + if(slot == nullptr) vm->UnboundLocalError(_name); + *slot = _0; + }else{ + frame->f_globals().set(_name, _0); + } + } DISPATCH(); + TARGET(STORE_GLOBAL) + frame->f_globals().set(StrName(byte.arg), POPX()); + DISPATCH(); + TARGET(STORE_ATTR) { + PyObject* _0 = TOP(); // a + PyObject* _1 = SECOND(); // val + setattr(_0, StrName(byte.arg), _1); + STACK_SHRINK(2); + } DISPATCH(); + TARGET(STORE_SUBSCR){ + PyObject* _2 = POPX(); // b + PyObject* _1 = POPX(); // a + PyObject* _0 = POPX(); // val + auto _ti = _inst_type_info(_1); + if(_ti->m__setitem__){ + _ti->m__setitem__(this, _1, _2, _0); + }else{ + call_method(_1, __setitem__, _2, _0); + } + }DISPATCH(); + TARGET(DELETE_FAST){ + PyObject* _0 = frame->_locals[byte.arg]; + if(_0 == PY_NULL) vm->UnboundLocalError(co->varnames[byte.arg]); + frame->_locals[byte.arg] = PY_NULL; + }DISPATCH(); + TARGET(DELETE_NAME){ + StrName _name(byte.arg); + if(frame->_callable != nullptr){ + PyObject** slot = frame->_locals.try_get_name(_name); + if(slot == nullptr) vm->UnboundLocalError(_name); + *slot = PY_NULL; + }else{ + if(!frame->f_globals().del(_name)) vm->NameError(_name); + } + } DISPATCH(); + TARGET(DELETE_GLOBAL){ + StrName _name(byte.arg); + if(!frame->f_globals().del(_name)) vm->NameError(_name); + }DISPATCH(); + TARGET(DELETE_ATTR){ + PyObject* _0 = POPX(); + delattr(_0, StrName(byte.arg)); + } DISPATCH(); + TARGET(DELETE_SUBSCR){ + PyObject* _1 = POPX(); + PyObject* _0 = POPX(); + auto _ti = _inst_type_info(_0); + if(_ti->m__delitem__){ + _ti->m__delitem__(this, _0, _1); + }else{ + call_method(_0, __delitem__, _1); + } + }DISPATCH(); + /*****************************************/ + TARGET(BUILD_LONG) { + PyObject* _0 = builtins->attr().try_get_likely_found(pk_id_long); + if(_0 == nullptr) AttributeError(builtins, pk_id_long); + TOP() = call(_0, TOP()); + } DISPATCH(); + TARGET(BUILD_IMAG) { + PyObject* _0 = builtins->attr().try_get_likely_found(pk_id_complex); + if(_0 == nullptr) AttributeError(builtins, pk_id_long); + TOP() = call(_0, VAR(0), TOP()); + } DISPATCH(); + TARGET(BUILD_BYTES) { + const Str& s = CAST(Str&, TOP()); + unsigned char* p = new unsigned char[s.size]; + memcpy(p, s.data, s.size); + TOP() = VAR(Bytes(p, s.size)); + } DISPATCH(); + TARGET(BUILD_TUPLE){ + PyObject* _0 = VAR(STACK_VIEW(byte.arg).to_tuple()); + STACK_SHRINK(byte.arg); + PUSH(_0); + } DISPATCH(); + TARGET(BUILD_LIST){ + PyObject* _0 = VAR(STACK_VIEW(byte.arg).to_list()); + STACK_SHRINK(byte.arg); + PUSH(_0); + } DISPATCH(); + TARGET(BUILD_DICT){ + if(byte.arg == 0){ + PUSH(VAR(Dict(this))); + DISPATCH(); + } + PyObject* _0 = VAR(STACK_VIEW(byte.arg).to_list()); + _0 = call(_t(tp_dict), _0); + STACK_SHRINK(byte.arg); + PUSH(_0); + } DISPATCH(); + TARGET(BUILD_SET){ + PyObject* _0 = VAR(STACK_VIEW(byte.arg).to_list()); + _0 = call(builtins->attr(pk_id_set), _0); + STACK_SHRINK(byte.arg); + PUSH(_0); + } DISPATCH(); + TARGET(BUILD_SLICE){ + PyObject* _2 = POPX(); // step + PyObject* _1 = POPX(); // stop + PyObject* _0 = POPX(); // start + PUSH(VAR(Slice(_0, _1, _2))); + } DISPATCH(); + TARGET(BUILD_STRING) { + SStream ss; + ArgsView view = STACK_VIEW(byte.arg); + for(PyObject* obj : view) ss << CAST(Str&, py_str(obj)); + STACK_SHRINK(byte.arg); + PUSH(VAR(ss.str())); + } DISPATCH(); + /*****************************************/ + TARGET(BUILD_TUPLE_UNPACK) { + auto _lock = heap.gc_scope_lock(); + List list; + _unpack_as_list(STACK_VIEW(byte.arg), list); + STACK_SHRINK(byte.arg); + PyObject* _0 = VAR(Tuple(std::move(list))); + PUSH(_0); + } DISPATCH(); + TARGET(BUILD_LIST_UNPACK) { + auto _lock = heap.gc_scope_lock(); + List list; + _unpack_as_list(STACK_VIEW(byte.arg), list); + STACK_SHRINK(byte.arg); + PyObject* _0 = VAR(std::move(list)); + PUSH(_0); + } DISPATCH(); + TARGET(BUILD_DICT_UNPACK) { + auto _lock = heap.gc_scope_lock(); + Dict dict(this); + _unpack_as_dict(STACK_VIEW(byte.arg), dict); + STACK_SHRINK(byte.arg); + PyObject* _0 = VAR(std::move(dict)); + PUSH(_0); + } DISPATCH(); + TARGET(BUILD_SET_UNPACK) { + auto _lock = heap.gc_scope_lock(); + List list; + _unpack_as_list(STACK_VIEW(byte.arg), list); + STACK_SHRINK(byte.arg); + PyObject* _0 = VAR(std::move(list)); + _0 = call(builtins->attr(pk_id_set), _0); + PUSH(_0); + } DISPATCH(); + /*****************************************/ +#define BINARY_OP_SPECIAL(func) \ + _ti = _inst_type_info(_0); \ + if(_ti->m##func){ \ + TOP() = _ti->m##func(this, _0, _1); \ + }else{ \ + PyObject* self; \ + PyObject* _2 = get_unbound_method(_0, func, &self, false); \ + if(_2 != nullptr) TOP() = call_method(self, _2, _1); \ + else TOP() = NotImplemented; \ + } + +#define BINARY_OP_RSPECIAL(op, func) \ + if(TOP() == NotImplemented){ \ + PyObject* self; \ + PyObject* _2 = get_unbound_method(_1, func, &self, false); \ + if(_2 != nullptr) TOP() = call_method(self, _2, _0); \ + else BinaryOptError(op, _0, _1); \ + if(TOP() == NotImplemented) BinaryOptError(op, _0, _1); \ + } + + TARGET(BINARY_TRUEDIV){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__truediv__); + if(TOP() == NotImplemented) BinaryOptError("/", _0, _1); + } DISPATCH(); + TARGET(BINARY_POW){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__pow__); + if(TOP() == NotImplemented) BinaryOptError("**", _0, _1); + } DISPATCH(); + TARGET(BINARY_ADD){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_OP(+) + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__add__); + BINARY_OP_RSPECIAL("+", __radd__); + } DISPATCH() + TARGET(BINARY_SUB){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_OP(-) + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__sub__); + BINARY_OP_RSPECIAL("-", __rsub__); + } DISPATCH() + TARGET(BINARY_MUL){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_OP(*) + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__mul__); + BINARY_OP_RSPECIAL("*", __rmul__); + } DISPATCH() + TARGET(BINARY_FLOORDIV){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_DIV_OP(/) + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__floordiv__); + if(TOP() == NotImplemented) BinaryOptError("//", _0, _1); + } DISPATCH() + TARGET(BINARY_MOD){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_DIV_OP(%) + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__mod__); + if(TOP() == NotImplemented) BinaryOptError("%", _0, _1); + } DISPATCH() + TARGET(COMPARE_LT){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_OP(<) + TOP() = VAR(py_lt(_0, _1)); + } DISPATCH() + TARGET(COMPARE_LE){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_OP(<=) + TOP() = VAR(py_le(_0, _1)); + } DISPATCH() + TARGET(COMPARE_EQ){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + TOP() = VAR(py_eq(_0, _1)); + } DISPATCH() + TARGET(COMPARE_NE){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + TOP() = VAR(py_ne(_0, _1)); + } DISPATCH() + TARGET(COMPARE_GT){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_OP(>) + TOP() = VAR(py_gt(_0, _1)); + } DISPATCH() + TARGET(COMPARE_GE){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_OP(>=) + TOP() = VAR(py_ge(_0, _1)); + } DISPATCH() + TARGET(BITWISE_LSHIFT){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_OP(<<) + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__lshift__); + if(TOP() == NotImplemented) BinaryOptError("<<", _0, _1); + } DISPATCH() + TARGET(BITWISE_RSHIFT){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_OP(>>) + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__rshift__); + if(TOP() == NotImplemented) BinaryOptError(">>", _0, _1); + } DISPATCH() + TARGET(BITWISE_AND){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_OP(&) + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__and__); + if(TOP() == NotImplemented) BinaryOptError("&", _0, _1); + } DISPATCH() + TARGET(BITWISE_OR){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_OP(|) + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__or__); + if(TOP() == NotImplemented) BinaryOptError("|", _0, _1); + } DISPATCH() + TARGET(BITWISE_XOR){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + PREDICT_INT_OP(^) + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__xor__); + if(TOP() == NotImplemented) BinaryOptError("^", _0, _1); + } DISPATCH() + TARGET(BINARY_MATMUL){ + PyObject* _1 = POPX(); + PyObject* _0 = TOP(); + const PyTypeInfo* _ti; + BINARY_OP_SPECIAL(__matmul__); + if(TOP() == NotImplemented) BinaryOptError("@", _0, _1); + } DISPATCH(); + +#undef BINARY_OP_SPECIAL +#undef BINARY_OP_RSPECIAL +#undef PREDICT_INT_OP + + TARGET(IS_OP){ + PyObject* _1 = POPX(); // rhs + PyObject* _0 = TOP(); // lhs + TOP() = VAR(static_cast((_0==_1) ^ byte.arg)); + } DISPATCH(); + TARGET(CONTAINS_OP){ + // a in b -> b __contains__ a + auto _ti = _inst_type_info(TOP()); + PyObject* _0; + if(_ti->m__contains__){ + _0 = _ti->m__contains__(this, TOP(), SECOND()); + }else{ + _0 = call_method(TOP(), __contains__, SECOND()); + } + POP(); + TOP() = VAR(static_cast((int)CAST(bool, _0) ^ byte.arg)); + } DISPATCH(); + /*****************************************/ + TARGET(JUMP_ABSOLUTE) + frame->jump_abs(byte.arg); + DISPATCH(); + TARGET(JUMP_ABSOLUTE_TOP) + frame->jump_abs(_CAST(int, POPX())); + DISPATCH(); + TARGET(POP_JUMP_IF_FALSE){ + if(!py_bool(TOP())) frame->jump_abs(byte.arg); + POP(); + } DISPATCH(); + TARGET(POP_JUMP_IF_TRUE){ + if(py_bool(TOP())) frame->jump_abs(byte.arg); + POP(); + } DISPATCH(); + TARGET(JUMP_IF_TRUE_OR_POP){ + if(py_bool(TOP())) frame->jump_abs(byte.arg); + else POP(); + } DISPATCH(); + TARGET(JUMP_IF_FALSE_OR_POP){ + if(!py_bool(TOP())) frame->jump_abs(byte.arg); + else POP(); + } DISPATCH(); + TARGET(SHORTCUT_IF_FALSE_OR_POP){ + if(!py_bool(TOP())){ // [b, False] + STACK_SHRINK(2); // [] + PUSH(vm->False); // [False] + frame->jump_abs(byte.arg); + } else POP(); // [b] + } DISPATCH(); + TARGET(LOOP_CONTINUE) + frame->jump_abs(byte.arg); + DISPATCH(); + TARGET(LOOP_BREAK) + frame->jump_abs_break(&s_data, byte.arg); + DISPATCH(); + TARGET(GOTO) { + StrName _name(byte.arg); + int index = co->labels.try_get_likely_found(_name); + if(index < 0) RuntimeError(_S("label ", _name.escape(), " not found")); + frame->jump_abs_break(&s_data, index); + } DISPATCH(); + /*****************************************/ + TARGET(FSTRING_EVAL){ + PyObject* _0 = co->consts[byte.arg]; + std::string_view string = CAST(Str&, _0).sv(); + auto it = _cached_codes.find(string); + CodeObject_ code; + if(it == _cached_codes.end()){ + code = vm->compile(string, "", EVAL_MODE, true); + _cached_codes[string] = code; + }else{ + code = it->second; + } + _0 = vm->_exec(code.get(), frame->_module, frame->_callable, frame->_locals); + PUSH(_0); + } DISPATCH(); + TARGET(REPR) + TOP() = py_repr(TOP()); + DISPATCH(); + TARGET(CALL){ + PyObject* _0 = vectorcall( + byte.arg & 0xFF, // ARGC + (byte.arg>>8) & 0xFF, // KWARGC + true + ); + if(_0 == PY_OP_CALL) DISPATCH_OP_CALL(); + PUSH(_0); + } DISPATCH(); + TARGET(CALL_TP){ + PyObject* _0; + PyObject* _1; + PyObject* _2; + // [callable, , args: tuple, kwargs: dict | NULL] + if(byte.arg){ + _2 = POPX(); + _1 = POPX(); + for(PyObject* obj: _CAST(Tuple&, _1)) PUSH(obj); + _CAST(Dict&, _2).apply([this](PyObject* k, PyObject* v){ + PUSH(VAR(StrName(CAST(Str&, k)).index)); + PUSH(v); + }); + _0 = vectorcall( + _CAST(Tuple&, _1).size(), // ARGC + _CAST(Dict&, _2).size(), // KWARGC + true + ); + }else{ + // no **kwargs + _1 = POPX(); + for(PyObject* obj: _CAST(Tuple&, _1)) PUSH(obj); + _0 = vectorcall( + _CAST(Tuple&, _1).size(), // ARGC + 0, // KWARGC + true + ); + } + if(_0 == PY_OP_CALL) DISPATCH_OP_CALL(); + PUSH(_0); + } DISPATCH(); + TARGET(RETURN_VALUE){ + PyObject* _0 = byte.arg == BC_NOARG ? POPX() : None; + _pop_frame(); + if(frame == base_frame){ // [ frameBase<- ] + return _0; + }else{ + frame = top_frame(); + PUSH(_0); + goto __NEXT_FRAME; + } + } DISPATCH(); + TARGET(YIELD_VALUE) + return PY_OP_YIELD; + /*****************************************/ + TARGET(LIST_APPEND){ + PyObject* _0 = POPX(); + CAST(List&, SECOND()).push_back(_0); + } DISPATCH(); + TARGET(DICT_ADD) { + PyObject* _0 = POPX(); + Tuple& t = CAST(Tuple&, _0); + call_method(SECOND(), __setitem__, t[0], t[1]); + } DISPATCH(); + TARGET(SET_ADD){ + PyObject* _0 = POPX(); + call_method(SECOND(), pk_id_add, _0); + } DISPATCH(); + /*****************************************/ + TARGET(UNARY_NEGATIVE) + TOP() = py_negate(TOP()); + DISPATCH(); + TARGET(UNARY_NOT){ + PyObject* _0 = TOP(); + if(_0==True) TOP()=False; + else if(_0==False) TOP()=True; + else TOP() = VAR(!py_bool(_0)); + } DISPATCH(); + TARGET(UNARY_STAR) + TOP() = VAR(StarWrapper(byte.arg, TOP())); + DISPATCH(); + TARGET(UNARY_INVERT){ + PyObject* _0; + auto _ti = _inst_type_info(TOP()); + if(_ti->m__invert__) _0 = _ti->m__invert__(this, TOP()); + else _0 = call_method(TOP(), __invert__); + TOP() = _0; + } DISPATCH(); + /*****************************************/ + TARGET(GET_ITER) + TOP() = py_iter(TOP()); + DISPATCH(); + TARGET(FOR_ITER){ + PyObject* _0 = py_next(TOP()); + if(_0 != StopIteration){ + PUSH(_0); + }else{ + frame->jump_abs_break(&s_data, co->_get_block_codei(frame->_ip).end); + } + } DISPATCH(); + TARGET(FOR_ITER_STORE_FAST){ + PyObject* _0 = py_next(TOP()); + if(_0 != StopIteration){ + frame->_locals[byte.arg] = _0; + }else{ + frame->jump_abs_break(&s_data, co->_get_block_codei(frame->_ip).end); + } + } DISPATCH() + TARGET(FOR_ITER_STORE_GLOBAL){ + PyObject* _0 = py_next(TOP()); + if(_0 != StopIteration){ + frame->f_globals().set(StrName(byte.arg), _0); + }else{ + frame->jump_abs_break(&s_data, co->_get_block_codei(frame->_ip).end); + } + } DISPATCH() + TARGET(FOR_ITER_YIELD_VALUE){ + PyObject* _0 = py_next(TOP()); + if(_0 != StopIteration){ + PUSH(_0); + return PY_OP_YIELD; + }else{ + frame->jump_abs_break(&s_data, co->_get_block_codei(frame->_ip).end); + } + } DISPATCH() + /*****************************************/ + TARGET(IMPORT_PATH){ + PyObject* _0 = co->consts[byte.arg]; + PUSH(py_import(CAST(Str&, _0))); + } DISPATCH(); + TARGET(POP_IMPORT_STAR) { + PyObject* _0 = POPX(); // pop the module + PyObject* _1 = _0->attr().try_get(__all__); + StrName _name; + if(_1 != nullptr){ + for(PyObject* key: CAST(List&, _1)){ + _name = StrName::get(CAST(Str&, key).sv()); + PyObject* value = _0->attr().try_get_likely_found(_name); + if(value == nullptr){ + ImportError(_S("cannot import name ", _name.escape())); + }else{ + frame->f_globals().set(_name, value); + } + } + }else{ + for(auto& [name, value]: _0->attr().items()){ + std::string_view s = name.sv(); + if(s.empty() || s[0] == '_') continue; + frame->f_globals().set(name, value); + } + } + } DISPATCH(); + /*****************************************/ + TARGET(UNPACK_SEQUENCE){ + auto _lock = heap.gc_scope_lock(); // lock the gc via RAII!! + PyObject* _0 = py_iter(POPX()); + for(int i=0; i_module, _name, PK_OBJ_GET(Type, _0)); + } DISPATCH(); + TARGET(END_CLASS) { + PK_ASSERT(_curr_class != nullptr); + StrName _name(byte.arg); + frame->_module->attr().set(_name, _curr_class); + // call on_end_subclass + PyTypeInfo* ti = &_all_types[PK_OBJ_GET(Type, _curr_class)]; + if(ti->base != tp_object){ + PyTypeInfo* base_ti = &_all_types[ti->base]; + if(base_ti->on_end_subclass) base_ti->on_end_subclass(this, ti); + } + _curr_class = nullptr; + } DISPATCH(); + TARGET(STORE_CLASS_ATTR){ + PK_ASSERT(_curr_class != nullptr); + StrName _name(byte.arg); + PyObject* _0 = POPX(); + if(is_type(_0, tp_function)){ + PK_OBJ_GET(Function, _0)._class = _curr_class; + } + _curr_class->attr().set(_name, _0); + } DISPATCH(); + TARGET(BEGIN_CLASS_DECORATION){ + PUSH(_curr_class); + } DISPATCH(); + TARGET(END_CLASS_DECORATION){ + _curr_class = POPX(); + } DISPATCH(); + TARGET(ADD_CLASS_ANNOTATION) { + PK_ASSERT(_curr_class != nullptr); + StrName _name(byte.arg); + Type type = PK_OBJ_GET(Type, _curr_class); + _all_types[type].annotated_fields.push_back(_name); + } DISPATCH(); + /*****************************************/ + TARGET(WITH_ENTER) + PUSH(call_method(TOP(), __enter__)); + DISPATCH(); + TARGET(WITH_EXIT) + call_method(TOP(), __exit__); + POP(); + DISPATCH(); + /*****************************************/ + TARGET(EXCEPTION_MATCH) { + PyObject* assumed_type = POPX(); + check_type(assumed_type, tp_type); + PyObject* e_obj = TOP(); + bool ok = isinstance(e_obj, PK_OBJ_GET(Type, assumed_type)); + PUSH(VAR(ok)); + } DISPATCH(); + TARGET(RAISE) { + if(is_type(TOP(), tp_type)){ + TOP() = call(TOP()); + } + if(!isinstance(TOP(), tp_exception)){ + _builtin_error("TypeError", "exceptions must derive from Exception"); + } + _error(POPX()); + } DISPATCH(); + TARGET(RAISE_ASSERT) + if(byte.arg){ + PyObject* _0 = py_str(POPX()); + _builtin_error("AssertionError", CAST(Str, _0)); + }else{ + _builtin_error("AssertionError"); + } + DISPATCH(); + TARGET(RE_RAISE) _raise(true); DISPATCH(); + TARGET(POP_EXCEPTION) _last_exception = POPX(); DISPATCH(); + /*****************************************/ + TARGET(FORMAT_STRING) { + PyObject* _0 = POPX(); + const Str& spec = CAST(Str&, co->consts[byte.arg]); + PUSH(_format_string(spec, _0)); + } DISPATCH(); + /*****************************************/ + TARGET(INC_FAST){ + PyObject** p = &frame->_locals[byte.arg]; + if(*p == PY_NULL) vm->NameError(co->varnames[byte.arg]); + *p = VAR(CAST(i64, *p) + 1); + } DISPATCH(); + TARGET(DEC_FAST){ + PyObject** p = &frame->_locals[byte.arg]; + if(*p == PY_NULL) vm->NameError(co->varnames[byte.arg]); + *p = VAR(CAST(i64, *p) - 1); + } DISPATCH(); + TARGET(INC_GLOBAL){ + StrName _name(byte.arg); + PyObject** p = frame->f_globals().try_get_2_likely_found(_name); + if(p == nullptr) vm->NameError(_name); + *p = VAR(CAST(i64, *p) + 1); + } DISPATCH(); + TARGET(DEC_GLOBAL){ + StrName _name(byte.arg); + PyObject** p = frame->f_globals().try_get_2_likely_found(_name); + if(p == nullptr) vm->NameError(_name); + *p = VAR(CAST(i64, *p) - 1); + } DISPATCH(); + /*****************************************/ + } + +} + +#undef DISPATCH +#undef TARGET +#undef DISPATCH_OP_CALL +#undef CEVAL_STEP_CALLBACK +/**********************************************************************/ + PK_UNREACHABLE() + }catch(HandledException){ + continue; + }catch(UnhandledException){ + PyObject* e_obj = POPX(); + Exception& _e = PK_OBJ_GET(Exception, e_obj); + bool is_base_frame_to_be_popped = frame == base_frame; + _pop_frame(); + if(callstack.empty()) throw _e; // propagate to the top level + frame = top_frame(); + PUSH(e_obj); + if(is_base_frame_to_be_popped) throw ToBeRaisedException(); + need_raise = true; + }catch(ToBeRaisedException){ + need_raise = true; + } + } +} + +#undef TOP +#undef SECOND +#undef THIRD +#undef PEEK +#undef STACK_SHRINK +#undef PUSH +#undef POP +#undef POPX +#undef STACK_VIEW + +#undef DISPATCH +#undef TARGET +#undef DISPATCH_OP_CALL + +} // namespace pkpy diff --git a/dependencies/pocketpy/src/cffi.cpp b/dependencies/pocketpy/src/cffi.cpp new file mode 100644 index 0000000..21156ab --- /dev/null +++ b/dependencies/pocketpy/src/cffi.cpp @@ -0,0 +1,278 @@ +#include "pocketpy/cffi.h" + +namespace pkpy{ + + void VoidP::_register(VM* vm, PyObject* mod, PyObject* type){ + vm->bind_func<2>(type, __new__, [](VM* vm, ArgsView args){ + Type cls = PK_OBJ_GET(Type, args[0]); + i64 addr = CAST(i64, args[1]); + return vm->heap.gcnew(cls, reinterpret_cast(addr)); + }); + + vm->bind__hash__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ + VoidP& self = PK_OBJ_GET(VoidP, obj); + return reinterpret_cast(self.ptr); + }); + + vm->bind__repr__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ + VoidP& self = PK_OBJ_GET(VoidP, obj); + return VAR(_S("")); + }); + +#define BIND_CMP(name, op) \ + vm->bind##name(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* lhs, PyObject* rhs){ \ + if(!vm->isinstance(rhs, VoidP::_type(vm))) return vm->NotImplemented; \ + void* _0 = PK_OBJ_GET(VoidP, lhs).ptr; \ + void* _1 = PK_OBJ_GET(VoidP, rhs).ptr; \ + return VAR(_0 op _1); \ + }); + + BIND_CMP(__eq__, ==) + BIND_CMP(__lt__, <) + BIND_CMP(__le__, <=) + BIND_CMP(__gt__, >) + BIND_CMP(__ge__, >=) + +#undef BIND_CMP + } + + + void C99Struct::_register(VM* vm, PyObject* mod, PyObject* type){ + vm->bind_constructor<2>(type, [](VM* vm, ArgsView args){ + Type cls = PK_OBJ_GET(Type, args[0]); + int size = CAST(int, args[1]); + return vm->heap.gcnew(cls, size); + }); + + vm->bind_method<0>(type, "hex", [](VM* vm, ArgsView args){ + const C99Struct& self = _CAST(C99Struct&, args[0]); + SStream ss; + for(int i=0; ibind_func<1>(type, "fromhex", [](VM* vm, ArgsView args){ + const Str& s = CAST(Str&, args[0]); + if(s.size<2 || s.size%2!=0) vm->ValueError("invalid hex string"); + C99Struct buffer(s.size/2, false); + for(int i=0; i='0' && s[i]<='9') c += s[i]-'0'; + else if(s[i]>='A' && s[i]<='F') c += s[i]-'A'+10; + else if(s[i]>='a' && s[i]<='f') c += s[i]-'a'+10; + else vm->ValueError(_S("invalid hex char: '", s[i], "'")); + c <<= 4; + if(s[i+1]>='0' && s[i+1]<='9') c += s[i+1]-'0'; + else if(s[i+1]>='A' && s[i+1]<='F') c += s[i+1]-'A'+10; + else if(s[i+1]>='a' && s[i+1]<='f') c += s[i+1]-'a'+10; + else vm->ValueError(_S("invalid hex char: '", s[i+1], "'")); + buffer.p[i/2] = c; + } + return VAR_T(C99Struct, std::move(buffer)); + }, {}, BindType::STATICMETHOD); + + vm->bind__repr__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ + C99Struct& self = _CAST(C99Struct&, obj); + SStream ss; + ss << ""; + return VAR(ss.str()); + }); + + vm->bind_method<0>(type, "addr", [](VM* vm, ArgsView args){ + C99Struct& self = _CAST(C99Struct&, args[0]); + return VAR_T(VoidP, self.p); + }); + + vm->bind_method<0>(type, "sizeof", [](VM* vm, ArgsView args){ + C99Struct& self = _CAST(C99Struct&, args[0]); + return VAR(self.size); + }); + + vm->bind_method<0>(type, "copy", [](VM* vm, ArgsView args){ + const C99Struct& self = _CAST(C99Struct&, args[0]); + return vm->heap.gcnew(vm->_tp(args[0]), self); + }); + + vm->bind__eq__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* lhs, PyObject* rhs){ + C99Struct& self = _CAST(C99Struct&, lhs); + if(!is_type(rhs, C99Struct::_type(vm))) return vm->NotImplemented; + C99Struct& other = _CAST(C99Struct&, rhs); + bool ok = self.size == other.size && memcmp(self.p, other.p, self.size) == 0; + return VAR(ok); + }); + +#define BIND_SETGET(T, name) \ + vm->bind(type, "read_" name "(self, offset=0)", [](VM* vm, ArgsView args){ \ + C99Struct& self = _CAST(C99Struct&, args[0]); \ + i64 offset = CAST(i64, args[1]); \ + void* ptr = self.p + offset; \ + return VAR(*(T*)ptr); \ + }); \ + vm->bind(type, "write_" name "(self, value, offset=0)", [](VM* vm, ArgsView args){ \ + C99Struct& self = _CAST(C99Struct&, args[0]); \ + i64 offset = CAST(i64, args[2]); \ + void* ptr = self.p + offset; \ + *(T*)ptr = CAST(T, args[1]); \ + return vm->None; \ + }); + BIND_SETGET(char, "char") + BIND_SETGET(unsigned char, "uchar") + BIND_SETGET(short, "short") + BIND_SETGET(unsigned short, "ushort") + BIND_SETGET(int, "int") + BIND_SETGET(unsigned int, "uint") + BIND_SETGET(long, "long") + BIND_SETGET(unsigned long, "ulong") + BIND_SETGET(long long, "longlong") + BIND_SETGET(unsigned long long, "ulonglong") + BIND_SETGET(float, "float") + BIND_SETGET(double, "double") + BIND_SETGET(bool, "bool") + BIND_SETGET(void*, "void_p") +#undef BIND_SETGET + } + +void add_module_c(VM* vm){ + PyObject* mod = vm->new_module("c"); + + vm->bind_func<1>(mod, "malloc", [](VM* vm, ArgsView args){ + i64 size = CAST(i64, args[0]); + return VAR(malloc(size)); + }); + + vm->bind_func<1>(mod, "free", [](VM* vm, ArgsView args){ + void* p = CAST(void*, args[0]); + free(p); + return vm->None; + }); + + vm->bind_func<3>(mod, "memset", [](VM* vm, ArgsView args){ + void* p = CAST(void*, args[0]); + memset(p, CAST(int, args[1]), CAST(size_t, args[2])); + return vm->None; + }); + + vm->bind_func<3>(mod, "memcpy", [](VM* vm, ArgsView args){ + void* dst = CAST(void*, args[0]); + void* src = CAST(void*, args[1]); + i64 size = CAST(i64, args[2]); + memcpy(dst, src, size); + return vm->None; + }); + + VoidP::register_class(vm, mod); + C99Struct::register_class(vm, mod); + mod->attr().set("NULL", VAR_T(VoidP, nullptr)); + + vm->bind(mod, "p_cast(ptr: 'void_p', cls: type[T]) -> T", [](VM* vm, ArgsView args){ + VoidP& ptr = CAST(VoidP&, args[0]); + vm->check_type(args[1], vm->tp_type); + Type cls = PK_OBJ_GET(Type, args[1]); + if(!vm->issubclass(cls, VoidP::_type(vm))){ + vm->ValueError("expected a subclass of void_p"); + } + return vm->heap.gcnew(cls, ptr.ptr); + }); + + vm->bind(mod, "p_value(ptr: 'void_p') -> int", [](VM* vm, ArgsView args){ + VoidP& ptr = CAST(VoidP&, args[0]); + return VAR(reinterpret_cast(ptr.ptr)); + }); + + vm->bind(mod, "pp_deref(ptr: Tp) -> Tp", [](VM* vm, ArgsView args){ + VoidP& ptr = CAST(VoidP&, args[0]); + void* value = *reinterpret_cast(ptr.ptr); + return vm->heap.gcnew(args[0]->type, value); + }); + + PyObject* type; + Type type_t = -1; + +#define BIND_PRIMITIVE(T, CNAME) \ + vm->bind_func<1>(mod, CNAME "_", [](VM* vm, ArgsView args){ \ + T val = CAST(T, args[0]); \ + return VAR_T(C99Struct, &val, sizeof(T)); \ + }); \ + type = vm->new_type_object(mod, CNAME "_p", VoidP::_type(vm)); \ + mod->attr().set(CNAME "_p", type); \ + type_t = PK_OBJ_GET(Type, type); \ + vm->bind_method<0>(type, "read", [](VM* vm, ArgsView args){ \ + VoidP& voidp = PK_OBJ_GET(VoidP, args[0]); \ + T* target = (T*)voidp.ptr; \ + return VAR(*target); \ + }); \ + vm->bind_method<1>(type, "write", [](VM* vm, ArgsView args){ \ + VoidP& voidp = PK_OBJ_GET(VoidP, args[0]); \ + T val = CAST(T, args[1]); \ + T* target = (T*)voidp.ptr; \ + *target = val; \ + return vm->None; \ + }); \ + vm->bind__getitem__(type_t, [](VM* vm, PyObject* obj, PyObject* index){ \ + VoidP& voidp = PK_OBJ_GET(VoidP, obj); \ + i64 offset = CAST(i64, index); \ + T* target = (T*)voidp.ptr; \ + return VAR(target[offset]); \ + }); \ + vm->bind__setitem__(type_t, [](VM* vm, PyObject* obj, PyObject* index, PyObject* value){ \ + VoidP& voidp = PK_OBJ_GET(VoidP, obj); \ + i64 offset = CAST(i64, index); \ + T* target = (T*)voidp.ptr; \ + target[offset] = CAST(T, value); \ + }); \ + vm->bind__add__(type_t, [](VM* vm, PyObject* lhs, PyObject* rhs){ \ + VoidP& voidp = PK_OBJ_GET(VoidP, lhs); \ + i64 offset = CAST(i64, rhs); \ + T* target = (T*)voidp.ptr; \ + return vm->heap.gcnew(lhs->type, target + offset); \ + }); \ + vm->bind__sub__(type_t, [](VM* vm, PyObject* lhs, PyObject* rhs){ \ + VoidP& voidp = PK_OBJ_GET(VoidP, lhs); \ + i64 offset = CAST(i64, rhs); \ + T* target = (T*)voidp.ptr; \ + return vm->heap.gcnew(lhs->type, target - offset); \ + }); \ + vm->bind__repr__(type_t, [](VM* vm, PyObject* obj){ \ + VoidP& self = _CAST(VoidP&, obj); \ + return VAR(_S("<", CNAME, "* at ", self.hex(), ">")); \ + }); \ + + BIND_PRIMITIVE(char, "char") + BIND_PRIMITIVE(unsigned char, "uchar") + BIND_PRIMITIVE(short, "short") + BIND_PRIMITIVE(unsigned short, "ushort") + BIND_PRIMITIVE(int, "int") + BIND_PRIMITIVE(unsigned int, "uint") + BIND_PRIMITIVE(long, "long") + BIND_PRIMITIVE(unsigned long, "ulong") + BIND_PRIMITIVE(long long, "longlong") + BIND_PRIMITIVE(unsigned long long, "ulonglong") + BIND_PRIMITIVE(float, "float") + BIND_PRIMITIVE(double, "double") + BIND_PRIMITIVE(bool, "bool") + +#undef BIND_PRIMITIVE + + PyObject* char_p_t = mod->attr("char_p"); + vm->bind(char_p_t, "read_string(self) -> str", [](VM* vm, ArgsView args){ + VoidP& voidp = PK_OBJ_GET(VoidP, args[0]); + const char* target = (const char*)voidp.ptr; + return VAR(target); + }); + + vm->bind(char_p_t, "write_string(self, value: str)", [](VM* vm, ArgsView args){ + VoidP& voidp = PK_OBJ_GET(VoidP, args[0]); + std::string_view sv = CAST(Str&, args[1]).sv(); + char* target = (char*)voidp.ptr; + memcpy(target, sv.data(), sv.size()); + target[sv.size()] = '\0'; + return vm->None; + }); +} + +PyObject* from_void_p(VM* vm, void* p){ + return VAR_T(VoidP, p); +} + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/codeobject.cpp b/dependencies/pocketpy/src/codeobject.cpp new file mode 100644 index 0000000..c4e738a --- /dev/null +++ b/dependencies/pocketpy/src/codeobject.cpp @@ -0,0 +1,35 @@ +#include "pocketpy/codeobject.h" + +namespace pkpy{ + + CodeObject::CodeObject(std::shared_ptr src, const Str& name): + src(src), name(name), start_line(-1), end_line(-1) { + blocks.push_back(CodeBlock(CodeBlockType::NO_BLOCK, -1, 0, 0)); + } + + void CodeObject::_gc_mark() const { + for(PyObject* v : consts) PK_OBJ_MARK(v); + for(auto& decl: func_decls) decl->_gc_mark(); + } + + NativeFunc::NativeFunc(NativeFuncC f, int argc, bool method){ + this->f = f; + this->argc = argc; + if(argc != -1) this->argc += (int)method; + } + + NativeFunc::NativeFunc(NativeFuncC f, FuncDecl_ decl){ + this->f = f; + this->argc = -1; + this->decl = decl; + } + + struct PySignalObject: PyObject { + PySignalObject() : PyObject(0) { gc_enabled = false; } + void _obj_gc_mark() override {} + }; + + PyObject* const PY_NULL = new PySignalObject(); + PyObject* const PY_OP_CALL = new PySignalObject(); + PyObject* const PY_OP_YIELD = new PySignalObject(); +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/collections.cpp b/dependencies/pocketpy/src/collections.cpp new file mode 100644 index 0000000..8376fb8 --- /dev/null +++ b/dependencies/pocketpy/src/collections.cpp @@ -0,0 +1,558 @@ +#include "pocketpy/collections.h" + +namespace pkpy +{ + struct PyDequeIter // Iterator for the deque type + { + PY_CLASS(PyDequeIter, collections, _deque_iterator) + PyObject *ref; + bool is_reversed; + std::deque::iterator begin, end, current; + std::deque::reverse_iterator rbegin, rend, rcurrent; + PyDequeIter(PyObject *ref, std::deque::iterator begin, std::deque::iterator end) + : ref(ref), begin(begin), end(end), current(begin) + { + this->is_reversed = false; + } + PyDequeIter(PyObject *ref, std::deque::reverse_iterator rbegin, std::deque::reverse_iterator rend) + : ref(ref), rbegin(rbegin), rend(rend), rcurrent(rbegin) + { + this->is_reversed = true; + } + void _gc_mark() const { PK_OBJ_MARK(ref); } + static void _register(VM *vm, PyObject *mod, PyObject *type); + }; + void PyDequeIter::_register(VM *vm, PyObject *mod, PyObject *type) + { + // Iterator for the deque type + vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false; + vm->bind_notimplemented_constructor(type); + + vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM *vm, PyObject *obj) + { return obj; }); + vm->bind__next__(PK_OBJ_GET(Type, type), [](VM *vm, PyObject *obj) + { + PyDequeIter& self = _CAST(PyDequeIter&, obj); + if(self.is_reversed){ + if(self.rcurrent == self.rend) return vm->StopIteration; + PyObject* ret = *self.rcurrent; + ++self.rcurrent; + return ret; + } + else{ + if(self.current == self.end) return vm->StopIteration; + PyObject* ret = *self.current; + ++self.current; + return ret; + } }); + } + struct PyDeque + { + PY_CLASS(PyDeque, collections, deque); + PyDeque(VM *vm, PyObject *iterable, PyObject *maxlen); // constructor + // PyDeque members + std::deque dequeItems; + int maxlen = -1; // -1 means unbounded + bool bounded = false; // if true, maxlen is not -1 + void insertObj(bool front, bool back, int index, PyObject *item); // insert at index, used purely for internal purposes: append, appendleft, insert methods + PyObject *popObj(bool front, bool back, PyObject *item, VM *vm); // pop at index, used purely for internal purposes: pop, popleft, remove methods + int findIndex(VM *vm, PyObject *obj, int start, int stop); // find the index of the given object in the deque + // Special methods + static void _register(VM *vm, PyObject *mod, PyObject *type); // register the type + void _gc_mark() const; // needed for container types, mark all objects in the deque for gc + }; + void PyDeque::_register(VM *vm, PyObject *mod, PyObject *type) + { + vm->bind(type, "__new__(cls, iterable=None, maxlen=None)", + [](VM *vm, ArgsView args) + { + Type cls_t = PK_OBJ_GET(Type, args[0]); + PyObject *iterable = args[1]; + PyObject *maxlen = args[2]; + return vm->heap.gcnew(cls_t, vm, iterable, maxlen); + }); + // gets the item at the given index, if index is negative, it will be treated as index + len(deque) + // if the index is out of range, IndexError will be thrown --> required for [] operator + vm->bind__getitem__(PK_OBJ_GET(Type, type), [](VM *vm, PyObject* _0, PyObject* _1) + { + PyDeque &self = _CAST(PyDeque &, _0); + i64 index = CAST(i64, _1); + index = vm->normalized_index(index, self.dequeItems.size()); // error is handled by the vm->normalized_index + return self.dequeItems[index]; + }); + // sets the item at the given index, if index is negative, it will be treated as index + len(deque) + // if the index is out of range, IndexError will be thrown --> required for [] operator + vm->bind__setitem__(PK_OBJ_GET(Type, type), [](VM *vm, PyObject* _0, PyObject* _1, PyObject* _2) + { + PyDeque &self = _CAST(PyDeque&, _0); + i64 index = CAST(i64, _1); + index = vm->normalized_index(index, self.dequeItems.size()); // error is handled by the vm->normalized_index + self.dequeItems[index] = _2; + }); + // erases the item at the given index, if index is negative, it will be treated as index + len(deque) + // if the index is out of range, IndexError will be thrown --> required for [] operator + vm->bind__delitem__(PK_OBJ_GET(Type, type), [](VM *vm, PyObject* _0, PyObject* _1) + { + PyDeque &self = _CAST(PyDeque&, _0); + i64 index = CAST(i64, _1); + index = vm->normalized_index(index, self.dequeItems.size()); // error is handled by the vm->normalized_index + self.dequeItems.erase(self.dequeItems.begin() + index); + }); + + vm->bind__len__(PK_OBJ_GET(Type, type), [](VM *vm, PyObject* _0) + { + PyDeque &self = _CAST(PyDeque&, _0); + return (i64)self.dequeItems.size(); + }); + + vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM *vm, PyObject* _0) + { + PyDeque &self = _CAST(PyDeque &, _0); + return vm->heap.gcnew( + PyDequeIter::_type(vm), _0, + self.dequeItems.begin(), self.dequeItems.end()); + }); + + vm->bind__repr__(PK_OBJ_GET(Type, type), [](VM *vm, PyObject* _0) + { + if(vm->_repr_recursion_set.count(_0)) return VAR("[...]"); + const PyDeque &self = _CAST(PyDeque&, _0); + SStream ss; + ss << "deque(["; + vm->_repr_recursion_set.insert(_0); + for (auto it = self.dequeItems.begin(); it != self.dequeItems.end(); ++it) + { + ss << CAST(Str&, vm->py_repr(*it)); + if (it != self.dequeItems.end() - 1) ss << ", "; + } + vm->_repr_recursion_set.erase(_0); + self.bounded ? ss << "], maxlen=" << self.maxlen << ")" : ss << "])"; + return VAR(ss.str()); + }); + + // enables comparison between two deques, == and != are supported + vm->bind__eq__(PK_OBJ_GET(Type, type), [](VM *vm, PyObject* _0, PyObject* _1) + { + const PyDeque &self = _CAST(PyDeque&, _0); + if(!is_type(_0, PyDeque::_type(vm))) return vm->NotImplemented; + const PyDeque &other = _CAST(PyDeque&, _1); + if (self.dequeItems.size() != other.dequeItems.size()) return vm->False; + for (int i = 0; i < self.dequeItems.size(); i++){ + if (vm->py_ne(self.dequeItems[i], other.dequeItems[i])) return vm->False; + } + return vm->True; + }); + + // clear the deque + vm->bind(type, "clear(self) -> None", + [](VM *vm, ArgsView args) + { + PyDeque &self = _CAST(PyDeque &, args[0]); + self.dequeItems.clear(); + return vm->None; + }); + // extend the deque with the given iterable + vm->bind(type, "extend(self, iterable) -> None", + [](VM *vm, ArgsView args) + { + auto _lock = vm->heap.gc_scope_lock(); // locking the heap + PyDeque &self = _CAST(PyDeque &, args[0]); + PyObject *it = vm->py_iter(args[1]); // strong ref + PyObject *obj = vm->py_next(it); + while (obj != vm->StopIteration) + { + self.insertObj(false, true, -1, obj); + obj = vm->py_next(it); + } + return vm->None; + }); + // append at the end of the deque + vm->bind(type, "append(self, item) -> None", + [](VM *vm, ArgsView args) + { + PyDeque &self = _CAST(PyDeque &, args[0]); + PyObject *item = args[1]; + self.insertObj(false, true, -1, item); + return vm->None; + }); + // append at the beginning of the deque + vm->bind(type, "appendleft(self, item) -> None", + [](VM *vm, ArgsView args) + { + PyDeque &self = _CAST(PyDeque &, args[0]); + PyObject *item = args[1]; + self.insertObj(true, false, -1, item); + return vm->None; + }); + // pop from the end of the deque + vm->bind(type, "pop(self) -> PyObject", + [](VM *vm, ArgsView args) + { + PyDeque &self = _CAST(PyDeque &, args[0]); + if (self.dequeItems.empty()) + { + vm->IndexError("pop from an empty deque"); + return vm->None; + } + return self.popObj(false, true, nullptr, vm); + }); + // pop from the beginning of the deque + vm->bind(type, "popleft(self) -> PyObject", + [](VM *vm, ArgsView args) + { + PyDeque &self = _CAST(PyDeque &, args[0]); + if (self.dequeItems.empty()) + { + vm->IndexError("pop from an empty deque"); + return vm->None; + } + return self.popObj(true, false, nullptr, vm); + }); + // shallow copy of the deque + vm->bind(type, "copy(self) -> deque", + [](VM *vm, ArgsView args) + { + auto _lock = vm->heap.gc_scope_lock(); // locking the heap + PyDeque &self = _CAST(PyDeque &, args[0]); + PyObject *newDequeObj = vm->heap.gcnew(PyDeque::_type(vm), vm, vm->None, vm->None); // create the empty deque + PyDeque &newDeque = _CAST(PyDeque &, newDequeObj); // cast it to PyDeque so we can use its methods + for (auto it = self.dequeItems.begin(); it != self.dequeItems.end(); ++it) + newDeque.insertObj(false, true, -1, *it); + return newDequeObj; + }); + // NEW: counts the number of occurrences of the given object in the deque + vm->bind(type, "count(self, obj) -> int", + [](VM *vm, ArgsView args) + { + PyDeque &self = _CAST(PyDeque &, args[0]); + PyObject *obj = args[1]; + int cnt = 0, sz = self.dequeItems.size(); + for (auto it = self.dequeItems.begin(); it != self.dequeItems.end(); ++it) + { + if (vm->py_eq((*it), obj)) + cnt++; + if (sz != self.dequeItems.size())// mutating the deque during iteration is not allowed + vm->RuntimeError("deque mutated during iteration"); + } + return VAR(cnt); + }); + // NEW: extends the deque from the left + vm->bind(type, "extendleft(self, iterable) -> None", + [](VM *vm, ArgsView args) + { + auto _lock = vm->heap.gc_scope_lock(); + PyDeque &self = _CAST(PyDeque &, args[0]); + PyObject *it = vm->py_iter(args[1]); // strong ref + PyObject *obj = vm->py_next(it); + while (obj != vm->StopIteration) + { + self.insertObj(true, false, -1, obj); + obj = vm->py_next(it); + } + return vm->None; + }); + // NEW: returns the index of the given object in the deque + vm->bind(type, "index(self, obj, start=None, stop=None) -> int", + [](VM *vm, ArgsView args) + { + // Return the position of x in the deque (at or after index start and before index stop). Returns the first match or raises ValueError if not found. + PyDeque &self = _CAST(PyDeque &, args[0]); + PyObject *obj = args[1]; + int start = CAST_DEFAULT(int, args[2], 0); + int stop = CAST_DEFAULT(int, args[3], self.dequeItems.size()); + int index = self.findIndex(vm, obj, start, stop); + if (index < 0) vm->ValueError(_CAST(Str &, vm->py_repr(obj)) + " is not in deque"); + return VAR(index); + }); + // NEW: returns the index of the given object in the deque + vm->bind(type, "__contains__(self, obj) -> bool", + [](VM *vm, ArgsView args) + { + // Return the position of x in the deque (at or after index start and before index stop). Returns the first match or raises ValueError if not found. + PyDeque &self = _CAST(PyDeque &, args[0]); + PyObject *obj = args[1]; + int start = 0, stop = self.dequeItems.size(); // default values + int index = self.findIndex(vm, obj, start, stop); + if (index != -1) + return VAR(true); + return VAR(false); + }); + // NEW: inserts the given object at the given index + vm->bind(type, "insert(self, index, obj) -> None", + [](VM *vm, ArgsView args) + { + PyDeque &self = _CAST(PyDeque &, args[0]); + int index = CAST(int, args[1]); + PyObject *obj = args[2]; + if (self.bounded && self.dequeItems.size() == self.maxlen) + vm->IndexError("deque already at its maximum size"); + else + self.insertObj(false, false, index, obj); // this index shouldn't be fixed using vm->normalized_index, pass as is + return vm->None; + }); + // NEW: removes the first occurrence of the given object from the deque + vm->bind(type, "remove(self, obj) -> None", + [](VM *vm, ArgsView args) + { + PyDeque &self = _CAST(PyDeque &, args[0]); + PyObject *obj = args[1]; + PyObject *removed = self.popObj(false, false, obj, vm); + if (removed == nullptr) + vm->ValueError(_CAST(Str &, vm->py_repr(obj)) + " is not in list"); + return vm->None; + }); + // NEW: reverses the deque + vm->bind(type, "reverse(self) -> None", + [](VM *vm, ArgsView args) + { + PyDeque &self = _CAST(PyDeque &, args[0]); + if (self.dequeItems.empty() || self.dequeItems.size() == 1) + return vm->None; // handle trivial cases + int sz = self.dequeItems.size(); + for (int i = 0; i < sz / 2; i++) + { + PyObject *tmp = self.dequeItems[i]; + self.dequeItems[i] = self.dequeItems[sz - i - 1]; // swapping + self.dequeItems[sz - i - 1] = tmp; + } + return vm->None; + }); + // NEW: rotates the deque by n steps + vm->bind(type, "rotate(self, n=1) -> None", + [](VM *vm, ArgsView args) + { + PyDeque &self = _CAST(PyDeque &, args[0]); + int n = CAST(int, args[1]); + + if (n != 0 && !self.dequeItems.empty()) // trivial case + { + PyObject *tmp; // holds the object to be rotated + int direction = n > 0 ? 1 : -1; + n = abs(n); + n = n % self.dequeItems.size(); // make sure n is in range + while (n--) + { + if (direction == 1) + { + tmp = self.dequeItems.back(); + self.dequeItems.pop_back(); + self.dequeItems.push_front(tmp); + } + else + { + tmp = self.dequeItems.front(); + self.dequeItems.pop_front(); + self.dequeItems.push_back(tmp); + } + } + } + return vm->None; + }); + // NEW: getter and setter of property `maxlen` + vm->bind_property( + type, "maxlen: int", + [](VM *vm, ArgsView args) + { + PyDeque &self = _CAST(PyDeque &, args[0]); + if (self.bounded) + return VAR(self.maxlen); + return vm->None; + }, + [](VM *vm, ArgsView args) + { + vm->AttributeError("attribute 'maxlen' of 'collections.deque' objects is not writable"); + return vm->None; + }); + // NEW: support pickle + vm->bind(type, "__getnewargs__(self) -> tuple[list, int]", + [](VM *vm, ArgsView args) + { + PyDeque &self = _CAST(PyDeque &, args[0]); + Tuple ret(2); + List list; + for (PyObject *obj : self.dequeItems) + { + list.push_back(obj); + } + ret[0] = VAR(std::move(list)); + if (self.bounded) + ret[1] = VAR(self.maxlen); + else + ret[1] = vm->None; + return VAR(ret); + }); + } + /// @brief initializes a new PyDeque object, actual initialization is done in __init__ + PyDeque::PyDeque(VM *vm, PyObject *iterable, PyObject *maxlen) + { + + if (!vm->py_eq(maxlen, vm->None)) // fix the maxlen first + { + int tmp = CAST(int, maxlen); + if (tmp < 0) + vm->ValueError("maxlen must be non-negative"); + else + { + this->maxlen = tmp; + this->bounded = true; + } + } + else + { + this->bounded = false; + this->maxlen = -1; + } + if (!vm->py_eq(iterable, vm->None)) + { + this->dequeItems.clear(); // clear the deque + auto _lock = vm->heap.gc_scope_lock(); // locking the heap + PyObject *it = vm->py_iter(iterable); // strong ref + PyObject *obj = vm->py_next(it); + while (obj != vm->StopIteration) + { + this->insertObj(false, true, -1, obj); + obj = vm->py_next(it); + } + } + } + int PyDeque::findIndex(VM *vm, PyObject *obj, int start, int stop) + { + // the following code is special purpose normalization for this method, taken from CPython: _collectionsmodule.c file + if (start < 0) + { + start = this->dequeItems.size() + start; // try to fix for negative indices + if (start < 0) + start = 0; + } + if (stop < 0) + { + stop = this->dequeItems.size() + stop; // try to fix for negative indices + if (stop < 0) + stop = 0; + } + if (stop > this->dequeItems.size()) + stop = this->dequeItems.size(); + if (start > stop) + start = stop; // end of normalization + PK_ASSERT(start >= 0 && start <= this->dequeItems.size() && stop >= 0 && stop <= this->dequeItems.size() && start <= stop); // sanity check + int loopSize = std::min((int)(this->dequeItems.size()), stop); + int sz = this->dequeItems.size(); + for (int i = start; i < loopSize; i++) + { + if (vm->py_eq(this->dequeItems[i], obj)) + return i; + if (sz != this->dequeItems.size())// mutating the deque during iteration is not allowed + vm->RuntimeError("deque mutated during iteration"); + } + return -1; + } + + /// @brief pops or removes an item from the deque + /// @param front if true, pop from the front of the deque + /// @param back if true, pop from the back of the deque + /// @param item if front and back is not set, remove the first occurrence of item from the deque + /// @param vm is needed for the py_eq + /// @return PyObject* if front or back is set, this is a pop operation and we return a PyObject*, if front and back are not set, this is a remove operation and we return the removed item or nullptr + PyObject *PyDeque::popObj(bool front, bool back, PyObject *item, VM *vm) + { + // error handling + if (front && back) + throw std::runtime_error("both front and back are set"); // this should never happen + if (front || back) + { + // front or back is set, we don't care about item, this is a pop operation and we return a PyObject* + if (this->dequeItems.empty()) + throw std::runtime_error("pop from an empty deque"); // shouldn't happen + PyObject *obj; + if (front) + { + obj = this->dequeItems.front(); + this->dequeItems.pop_front(); + } + else + { + obj = this->dequeItems.back(); + this->dequeItems.pop_back(); + } + return obj; + } + else + { + // front and back are not set, we care about item, this is a remove operation and we return the removed item or nullptr + int sz = this->dequeItems.size(); + for (auto it = this->dequeItems.begin(); it != this->dequeItems.end(); ++it) + { + bool found = vm->py_eq((*it), item); + if (sz != this->dequeItems.size()) // mutating the deque during iteration is not allowed + vm->IndexError("deque mutated during iteration"); + if (found) + { + PyObject *obj = *it; // keep a reference to the object for returning + this->dequeItems.erase(it); + return obj; + } + } + return nullptr; // not found + } + } + /// @brief inserts an item into the deque + /// @param front if true, insert at the front of the deque + /// @param back if true, insert at the back of the deque + /// @param index if front and back are not set, insert at the given index + /// @param item the item to insert + /// @return true if the item was inserted successfully, false if the deque is bounded and is already at its maximum size + void PyDeque::insertObj(bool front, bool back, int index, PyObject *item) // assume index is not fixed using the vm->normalized_index + { + // error handling + if (front && back) + throw std::runtime_error("both front and back are set"); // this should never happen + if (front || back) + { + // front or back is set, we don't care about index + if (this->bounded) + { + if (this->maxlen == 0) + return; // bounded and maxlen is 0, so we can't append + else if (this->dequeItems.size() == this->maxlen) + { + if (front) + this->dequeItems.pop_back(); // remove the last item + else if (back) + this->dequeItems.pop_front(); // remove the first item + } + } + if (front) + this->dequeItems.emplace_front(item); + else if (back) + this->dequeItems.emplace_back(item); + } + else + { + // front and back are not set, we care about index + if (index < 0) + index = this->dequeItems.size() + index; // try fixing for negative indices + if (index < 0) // still negative means insert at the beginning + this->dequeItems.push_front(item); + else if (index >= this->dequeItems.size()) // still out of range means insert at the end + this->dequeItems.push_back(item); + else + this->dequeItems.insert((this->dequeItems.begin() + index), item); // insert at the given index + } + } + /// @brief marks the deque items for garbage collection + void PyDeque::_gc_mark() const + { + for (PyObject *obj : this->dequeItems) + PK_OBJ_MARK(obj); + } + /// @brief registers the PyDeque class + /// @param vm is needed for the new_module and register_class + void add_module_collections(VM *vm) + { + PyObject *mod = vm->new_module("collections"); + PyDeque::register_class(vm, mod); + PyDequeIter::register_class(vm, mod); + CodeObject_ code = vm->compile(kPythonLibs_collections, "collections.py", EXEC_MODE); + vm->_exec(code, mod); + } +} // namespace pkpypkpy diff --git a/dependencies/pocketpy/src/compiler.cpp b/dependencies/pocketpy/src/compiler.cpp new file mode 100644 index 0000000..ee9a4d1 --- /dev/null +++ b/dependencies/pocketpy/src/compiler.cpp @@ -0,0 +1,1422 @@ +#include "pocketpy/compiler.h" + +namespace pkpy{ + PrattRule Compiler::rules[kTokenCount]; + + NameScope Compiler::name_scope() const { + auto s = contexts.size()>1 ? NAME_LOCAL : NAME_GLOBAL; + if(unknown_global_scope && s == NAME_GLOBAL) s = NAME_GLOBAL_UNKNOWN; + return s; + } + + CodeObject_ Compiler::push_global_context(){ + CodeObject_ co = std::make_shared(lexer.src, lexer.src->filename); + co->start_line = i==0 ? 1 : prev().line; + contexts.push(CodeEmitContext(vm, co, contexts.size())); + return co; + } + + FuncDecl_ Compiler::push_f_context(Str name){ + FuncDecl_ decl = std::make_shared(); + decl->code = std::make_shared(lexer.src, name); + decl->code->start_line = i==0 ? 1 : prev().line; + decl->nested = name_scope() == NAME_LOCAL; + contexts.push(CodeEmitContext(vm, decl->code, contexts.size())); + contexts.top().func = decl; + return decl; + } + + void Compiler::pop_context(){ + if(!ctx()->s_expr.empty()){ + throw std::runtime_error("!ctx()->s_expr.empty()"); + } + // add a `return None` in the end as a guard + // previously, we only do this if the last opcode is not a return + // however, this is buggy...since there may be a jump to the end (out of bound) even if the last opcode is a return + ctx()->emit_(OP_RETURN_VALUE, 1, BC_KEEPLINE, true); + // find the last valid token + int j = i-1; + while(tokens[j].type == TK("@eol") || tokens[j].type == TK("@dedent") || tokens[j].type == TK("@eof")) j--; + ctx()->co->end_line = tokens[j].line; + + // some check here + auto& codes = ctx()->co->codes; + if(ctx()->co->varnames.size() > PK_MAX_CO_VARNAMES){ + SyntaxError("maximum number of local variables exceeded"); + } + if(ctx()->co->consts.size() > 65530){ + SyntaxError("maximum number of constants exceeded"); + } + if(codes.size() > 65530 && ctx()->co->src->mode != JSON_MODE){ + // json mode does not contain jump instructions, so it is safe to ignore this check + SyntaxError("maximum number of opcodes exceeded"); + } + // pre-compute LOOP_BREAK and LOOP_CONTINUE + for(int i=0; ico->blocks[bc.arg].start; + }else if(bc.op == OP_LOOP_BREAK){ + bc.arg = ctx()->co->blocks[bc.arg].get_break_end(); + } + } + // pre-compute func->is_simple + FuncDecl_ func = contexts.top().func; + if(func){ + // check generator + for(Bytecode bc: func->code->codes){ + if(bc.op == OP_YIELD_VALUE || bc.op == OP_FOR_ITER_YIELD_VALUE){ + func->type = FuncType::GENERATOR; + for(Bytecode bc: func->code->codes){ + if(bc.op == OP_RETURN_VALUE && bc.arg == BC_NOARG){ + SyntaxError("'return' with argument inside generator function"); + } + } + break; + } + } + if(func->type == FuncType::UNSET){ + bool is_simple = true; + if(func->kwargs.size() > 0) is_simple = false; + if(func->starred_arg >= 0) is_simple = false; + if(func->starred_kwarg >= 0) is_simple = false; + + if(is_simple){ + func->type = FuncType::SIMPLE; + + bool is_empty = false; + if(func->code->codes.size() == 1){ + Bytecode bc = func->code->codes[0]; + if(bc.op == OP_RETURN_VALUE && bc.arg == 1){ + is_empty = true; + } + } + if(is_empty) func->type = FuncType::EMPTY; + } + else func->type = FuncType::NORMAL; + } + + PK_ASSERT(func->type != FuncType::UNSET); + } + contexts.pop(); + } + + void Compiler::init_pratt_rules(){ + PK_LOCAL_STATIC bool initialized = false; + if(initialized) return; + initialized = true; + +// http://journal.stuffwithstuff.com/2011/03/19/pratt-parsers-expression-parsing-made-easy/ +#define PK_METHOD(name) &Compiler::name +#define PK_NO_INFIX nullptr, PREC_LOWEST + for(TokenIndex i=0; i")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_COMPARISION }; + rules[TK("<")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_COMPARISION }; + rules[TK("==")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_COMPARISION }; + rules[TK("!=")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_COMPARISION }; + rules[TK(">=")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_COMPARISION }; + rules[TK("<=")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_COMPARISION }; + rules[TK("in")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_COMPARISION }; + rules[TK("is")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_COMPARISION }; + rules[TK("<<")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_BITWISE_SHIFT }; + rules[TK(">>")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_BITWISE_SHIFT }; + rules[TK("&")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_BITWISE_AND }; + rules[TK("|")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_BITWISE_OR }; + rules[TK("^")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_BITWISE_XOR }; + rules[TK("@")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_FACTOR }; + rules[TK("if")] = { nullptr, PK_METHOD(exprTernary), PREC_TERNARY }; + rules[TK("not in")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_COMPARISION }; + rules[TK("is not")] = { nullptr, PK_METHOD(exprBinaryOp), PREC_COMPARISION }; + rules[TK("and") ] = { nullptr, PK_METHOD(exprAnd), PREC_LOGICAL_AND }; + rules[TK("or")] = { nullptr, PK_METHOD(exprOr), PREC_LOGICAL_OR }; + rules[TK("not")] = { PK_METHOD(exprNot), nullptr, PREC_LOGICAL_NOT }; + rules[TK("True")] = { PK_METHOD(exprLiteral0), PK_NO_INFIX }; + rules[TK("False")] = { PK_METHOD(exprLiteral0), PK_NO_INFIX }; + rules[TK("None")] = { PK_METHOD(exprLiteral0), PK_NO_INFIX }; + rules[TK("...")] = { PK_METHOD(exprLiteral0), PK_NO_INFIX }; + rules[TK("lambda")] = { PK_METHOD(exprLambda), PK_NO_INFIX }; + rules[TK("@id")] = { PK_METHOD(exprName), PK_NO_INFIX }; + rules[TK("@num")] = { PK_METHOD(exprLiteral), PK_NO_INFIX }; + rules[TK("@str")] = { PK_METHOD(exprLiteral), PK_NO_INFIX }; + rules[TK("@fstr")] = { PK_METHOD(exprFString), PK_NO_INFIX }; + rules[TK("@long")] = { PK_METHOD(exprLong), PK_NO_INFIX }; + rules[TK("@imag")] = { PK_METHOD(exprImag), PK_NO_INFIX }; + rules[TK("@bytes")] = { PK_METHOD(exprBytes), PK_NO_INFIX }; + rules[TK(":")] = { PK_METHOD(exprSlice0), PK_METHOD(exprSlice1), PREC_PRIMARY }; + +#undef PK_METHOD +#undef PK_NO_INFIX + } + + bool Compiler::match(TokenIndex expected) { + if (curr().type != expected) return false; + advance(); + return true; + } + + void Compiler::consume(TokenIndex expected) { + if (!match(expected)){ + SyntaxError( + _S("expected '", TK_STR(expected), "', got '", TK_STR(curr().type), "'") + ); + } + } + + bool Compiler::match_newlines_repl(){ + return match_newlines(mode()==REPL_MODE); + } + + bool Compiler::match_newlines(bool repl_throw) { + bool consumed = false; + if (curr().type == TK("@eol")) { + while (curr().type == TK("@eol")) advance(); + consumed = true; + } + if (repl_throw && curr().type == TK("@eof")){ + throw NeedMoreLines(ctx()->is_compiling_class); + } + return consumed; + } + + bool Compiler::match_end_stmt() { + if (match(TK(";"))) { match_newlines(); return true; } + if (match_newlines() || curr().type == TK("@eof")) return true; + if (curr().type == TK("@dedent")) return true; + return false; + } + + void Compiler::consume_end_stmt() { + if (!match_end_stmt()) SyntaxError("expected statement end"); + } + + void Compiler::EXPR() { + parse_expression(PREC_LOWEST+1); + } + + void Compiler::EXPR_TUPLE(bool allow_slice) { + parse_expression(PREC_LOWEST+1, allow_slice); + if(!match(TK(","))) return; + // tuple expression + Expr_vector items; + items.push_back(ctx()->s_expr.popx()); + do { + if(curr().brackets_level) match_newlines_repl(); + if(!is_expression(allow_slice)) break; + parse_expression(PREC_LOWEST+1, allow_slice); + items.push_back(ctx()->s_expr.popx()); + if(curr().brackets_level) match_newlines_repl(); + } while(match(TK(","))); + ctx()->s_expr.push(make_expr(std::move(items))); + } + + // special case for `for loop` and `comp` + Expr_ Compiler::EXPR_VARS(){ + Expr_vector items; + do { + consume(TK("@id")); + items.push_back(make_expr(prev().str(), name_scope())); + } while(match(TK(","))); + if(items.size()==1) return std::move(items[0]); + return make_expr(std::move(items)); + } + + void Compiler::exprLiteral(){ + ctx()->s_expr.push(make_expr(prev().value)); + } + + void Compiler::exprLong(){ + ctx()->s_expr.push(make_expr(prev().str())); + } + + void Compiler::exprImag(){ + ctx()->s_expr.push(make_expr(std::get(prev().value))); + } + + void Compiler::exprBytes(){ + ctx()->s_expr.push(make_expr(std::get(prev().value))); + } + + void Compiler::exprFString(){ + ctx()->s_expr.push(make_expr(std::get(prev().value))); + } + + void Compiler::exprLambda(){ + FuncDecl_ decl = push_f_context(""); + auto e = make_expr(decl); + if(!match(TK(":"))){ + _compile_f_args(e->decl, false); + consume(TK(":")); + } + // https://github.com/pocketpy/pocketpy/issues/37 + parse_expression(PREC_LAMBDA + 1); + ctx()->emit_expr(); + ctx()->emit_(OP_RETURN_VALUE, BC_NOARG, BC_KEEPLINE); + pop_context(); + ctx()->s_expr.push(std::move(e)); + } + + void Compiler::exprOr(){ + auto e = make_expr(); + e->lhs = ctx()->s_expr.popx(); + parse_expression(PREC_LOGICAL_OR + 1); + e->rhs = ctx()->s_expr.popx(); + ctx()->s_expr.push(std::move(e)); + } + + void Compiler::exprAnd(){ + auto e = make_expr(); + e->lhs = ctx()->s_expr.popx(); + parse_expression(PREC_LOGICAL_AND + 1); + e->rhs = ctx()->s_expr.popx(); + ctx()->s_expr.push(std::move(e)); + } + + void Compiler::exprTernary(){ + auto e = make_expr(); + e->true_expr = ctx()->s_expr.popx(); + // cond + parse_expression(PREC_TERNARY + 1); + e->cond = ctx()->s_expr.popx(); + consume(TK("else")); + // if false + parse_expression(PREC_TERNARY + 1); + e->false_expr = ctx()->s_expr.popx(); + ctx()->s_expr.push(std::move(e)); + } + + void Compiler::exprBinaryOp(){ + auto e = make_expr(); + e->op = prev().type; + e->lhs = ctx()->s_expr.popx(); + parse_expression(rules[e->op].precedence + 1); + e->rhs = ctx()->s_expr.popx(); + ctx()->s_expr.push(std::move(e)); + } + + void Compiler::exprNot() { + parse_expression(PREC_LOGICAL_NOT + 1); + ctx()->s_expr.push(make_expr(ctx()->s_expr.popx())); + } + + void Compiler::exprUnaryOp(){ + TokenIndex op = prev().type; + parse_expression(PREC_UNARY + 1); + switch(op){ + case TK("-"): + ctx()->s_expr.push(make_expr(ctx()->s_expr.popx())); + break; + case TK("~"): + ctx()->s_expr.push(make_expr(ctx()->s_expr.popx())); + break; + case TK("*"): + ctx()->s_expr.push(make_expr(1, ctx()->s_expr.popx())); + break; + case TK("**"): + ctx()->s_expr.push(make_expr(2, ctx()->s_expr.popx())); + break; + default: PK_FATAL_ERROR(); + } + } + + void Compiler::exprGroup(){ + match_newlines_repl(); + EXPR_TUPLE(); // () is just for change precedence + match_newlines_repl(); + consume(TK(")")); + if(ctx()->s_expr.top()->is_tuple()) return; + Expr_ g = make_expr(ctx()->s_expr.popx()); + ctx()->s_expr.push(std::move(g)); + } + + void Compiler::consume_comp(unique_ptr_128 ce, Expr_ expr){ + ce->expr = std::move(expr); + ce->vars = EXPR_VARS(); + consume(TK("in")); + parse_expression(PREC_TERNARY + 1); + ce->iter = ctx()->s_expr.popx(); + match_newlines_repl(); + if(match(TK("if"))){ + parse_expression(PREC_TERNARY + 1); + ce->cond = ctx()->s_expr.popx(); + } + ctx()->s_expr.push(std::move(ce)); + match_newlines_repl(); + } + + void Compiler::exprList() { + int line = prev().line; + Expr_vector items; + do { + match_newlines_repl(); + if (curr().type == TK("]")) break; + EXPR(); + items.push_back(ctx()->s_expr.popx()); + match_newlines_repl(); + if(items.size()==1 && match(TK("for"))){ + consume_comp(make_expr(), std::move(items[0])); + consume(TK("]")); + return; + } + match_newlines_repl(); + } while (match(TK(","))); + consume(TK("]")); + auto e = make_expr(std::move(items)); + e->line = line; // override line + ctx()->s_expr.push(std::move(e)); + } + + void Compiler::exprMap() { + bool parsing_dict = false; // {...} may be dict or set + Expr_vector items; + do { + match_newlines_repl(); + if (curr().type == TK("}")) break; + EXPR(); + int star_level = ctx()->s_expr.top()->star_level(); + if(star_level==2 || curr().type == TK(":")){ + parsing_dict = true; + } + if(parsing_dict){ + auto dict_item = make_expr(); + if(star_level == 2){ + dict_item->key = nullptr; + dict_item->value = ctx()->s_expr.popx(); + }else{ + consume(TK(":")); + EXPR(); + dict_item->key = ctx()->s_expr.popx(); + dict_item->value = ctx()->s_expr.popx(); + } + items.push_back(std::move(dict_item)); + }else{ + items.push_back(ctx()->s_expr.popx()); + } + match_newlines_repl(); + if(items.size()==1 && match(TK("for"))){ + if(parsing_dict) consume_comp(make_expr(), std::move(items[0])); + else consume_comp(make_expr(), std::move(items[0])); + consume(TK("}")); + return; + } + match_newlines_repl(); + } while (match(TK(","))); + consume(TK("}")); + if(items.size()==0 || parsing_dict){ + auto e = make_expr(std::move(items)); + ctx()->s_expr.push(std::move(e)); + }else{ + auto e = make_expr(std::move(items)); + ctx()->s_expr.push(std::move(e)); + } + } + + void Compiler::exprCall() { + auto e = make_expr(); + e->callable = ctx()->s_expr.popx(); + do { + match_newlines_repl(); + if (curr().type==TK(")")) break; + if(curr().type==TK("@id") && next().type==TK("=")) { + consume(TK("@id")); + Str key = prev().str(); + consume(TK("=")); + EXPR(); + e->kwargs.push_back({key, ctx()->s_expr.popx()}); + } else{ + EXPR(); + if(ctx()->s_expr.top()->star_level() == 2){ + // **kwargs + e->kwargs.push_back({"**", ctx()->s_expr.popx()}); + }else{ + // positional argument + if(!e->kwargs.empty()) SyntaxError("positional argument follows keyword argument"); + e->args.push_back(ctx()->s_expr.popx()); + } + } + match_newlines_repl(); + } while (match(TK(","))); + consume(TK(")")); + if(e->args.size() > 32767) SyntaxError("too many positional arguments"); + if(e->kwargs.size() > 32767) SyntaxError("too many keyword arguments"); + ctx()->s_expr.push(std::move(e)); + } + + void Compiler::exprName(){ + Str name = prev().str(); + NameScope scope = name_scope(); + if(ctx()->global_names.count(name)){ + scope = NAME_GLOBAL; + } + ctx()->s_expr.push(make_expr(name, scope)); + } + + void Compiler::exprAttrib() { + consume(TK("@id")); + ctx()->s_expr.push( + make_expr(ctx()->s_expr.popx(), StrName::get(prev().sv())) + ); + } + + void Compiler::exprSlice0() { + auto slice = make_expr(); + if(is_expression()){ // : + EXPR(); + slice->stop = ctx()->s_expr.popx(); + // try optional step + if(match(TK(":"))){ // :: + EXPR(); + slice->step = ctx()->s_expr.popx(); + } + }else if(match(TK(":"))){ + if(is_expression()){ // :: + EXPR(); + slice->step = ctx()->s_expr.popx(); + } // else :: + } // else : + ctx()->s_expr.push(std::move(slice)); + } + + void Compiler::exprSlice1() { + auto slice = make_expr(); + slice->start = ctx()->s_expr.popx(); + if(is_expression()){ // : + EXPR(); + slice->stop = ctx()->s_expr.popx(); + // try optional step + if(match(TK(":"))){ // :: + EXPR(); + slice->step = ctx()->s_expr.popx(); + } + }else if(match(TK(":"))){ // :: + EXPR(); + slice->step = ctx()->s_expr.popx(); + } // else : + ctx()->s_expr.push(std::move(slice)); + } + + void Compiler::exprSubscr() { + auto e = make_expr(); + match_newlines_repl(); + e->a = ctx()->s_expr.popx(); // a + EXPR_TUPLE(true); + e->b = ctx()->s_expr.popx(); // a[] + match_newlines_repl(); + consume(TK("]")); + ctx()->s_expr.push(std::move(e)); + } + + void Compiler::exprLiteral0() { + ctx()->s_expr.push(make_expr(prev().type)); + } + + void Compiler::compile_block_body(void (Compiler::*callback)()) { + if(callback == nullptr) callback = &Compiler::compile_stmt; + consume(TK(":")); + if(curr().type!=TK("@eol") && curr().type!=TK("@eof")){ + compile_stmt(); // inline block + return; + } + if(!match_newlines(mode()==REPL_MODE)){ + SyntaxError("expected a new line after ':'"); + } + consume(TK("@indent")); + while (curr().type != TK("@dedent")) { + match_newlines(); + (this->*callback)(); + match_newlines(); + } + consume(TK("@dedent")); + } + + // import a [as b] + // import a [as b], c [as d] + void Compiler::compile_normal_import() { + do { + consume(TK("@id")); + Str name = prev().str(); + ctx()->emit_(OP_IMPORT_PATH, ctx()->add_const_string(name.sv()), prev().line); + if (match(TK("as"))) { + consume(TK("@id")); + name = prev().str(); + } + ctx()->emit_store_name(name_scope(), StrName(name), prev().line); + } while (match(TK(","))); + consume_end_stmt(); + } + + // from a import b [as c], d [as e] + // from a.b import c [as d] + // from . import a [as b] + // from .a import b [as c] + // from ..a import b [as c] + // from .a.b import c [as d] + // from xxx import * + void Compiler::compile_from_import() { + int dots = 0; + + while(true){ + switch(curr().type){ + case TK("."): dots+=1; break; + case TK(".."): dots+=2; break; + case TK("..."): dots+=3; break; + default: goto __EAT_DOTS_END; + } + advance(); + } +__EAT_DOTS_END: + SStream ss; + for(int i=0; i 0){ + // @id is optional if dots > 0 + if(match(TK("@id"))){ + ss << prev().sv(); + while (match(TK("."))) { + consume(TK("@id")); + ss << "." << prev().sv(); + } + } + }else{ + // @id is required if dots == 0 + consume(TK("@id")); + ss << prev().sv(); + while (match(TK("."))) { + consume(TK("@id")); + ss << "." << prev().sv(); + } + } + + ctx()->emit_(OP_IMPORT_PATH, ctx()->add_const_string(ss.str().sv()), prev().line); + consume(TK("import")); + + if (match(TK("*"))) { + if(name_scope() != NAME_GLOBAL) SyntaxError("from import * can only be used in global scope"); + // pop the module and import __all__ + ctx()->emit_(OP_POP_IMPORT_STAR, BC_NOARG, prev().line); + consume_end_stmt(); + return; + } + + do { + ctx()->emit_(OP_DUP_TOP, BC_NOARG, BC_KEEPLINE); + consume(TK("@id")); + Str name = prev().str(); + ctx()->emit_(OP_LOAD_ATTR, StrName(name).index, prev().line); + if (match(TK("as"))) { + consume(TK("@id")); + name = prev().str(); + } + ctx()->emit_store_name(name_scope(), StrName(name), prev().line); + } while (match(TK(","))); + ctx()->emit_(OP_POP_TOP, BC_NOARG, BC_KEEPLINE); + consume_end_stmt(); + } + + bool Compiler::is_expression(bool allow_slice){ + PrattCallback prefix = rules[curr().type].prefix; + return prefix != nullptr && (allow_slice || curr().type!=TK(":")); + } + + void Compiler::parse_expression(int precedence, bool allow_slice) { + PrattCallback prefix = rules[curr().type].prefix; + if (prefix==nullptr || (curr().type==TK(":") && !allow_slice)){ + SyntaxError(Str("expected an expression, got ") + TK_STR(curr().type)); + } + advance(); + (this->*prefix)(); + while (rules[curr().type].precedence >= precedence && (allow_slice || curr().type!=TK(":"))) { + TokenIndex op = curr().type; + advance(); + PrattCallback infix = rules[op].infix; + PK_ASSERT(infix != nullptr); + (this->*infix)(); + } + } + + void Compiler::compile_if_stmt() { + EXPR(); // condition + ctx()->emit_expr(); + int patch = ctx()->emit_(OP_POP_JUMP_IF_FALSE, BC_NOARG, prev().line); + compile_block_body(); + if (match(TK("elif"))) { + int exit_patch = ctx()->emit_(OP_JUMP_ABSOLUTE, BC_NOARG, prev().line); + ctx()->patch_jump(patch); + compile_if_stmt(); + ctx()->patch_jump(exit_patch); + } else if (match(TK("else"))) { + int exit_patch = ctx()->emit_(OP_JUMP_ABSOLUTE, BC_NOARG, prev().line); + ctx()->patch_jump(patch); + compile_block_body(); + ctx()->patch_jump(exit_patch); + } else { + ctx()->patch_jump(patch); + } + } + + void Compiler::compile_while_loop() { + CodeBlock* block = ctx()->enter_block(CodeBlockType::WHILE_LOOP); + EXPR(); // condition + ctx()->emit_expr(); + int patch = ctx()->emit_(OP_POP_JUMP_IF_FALSE, BC_NOARG, prev().line); + compile_block_body(); + ctx()->emit_(OP_LOOP_CONTINUE, ctx()->get_loop(), BC_KEEPLINE, true); + ctx()->patch_jump(patch); + ctx()->exit_block(); + // optional else clause + if (match(TK("else"))) { + compile_block_body(); + block->end2 = ctx()->co->codes.size(); + } + } + + void Compiler::compile_for_loop() { + Expr_ vars = EXPR_VARS(); + consume(TK("in")); + EXPR_TUPLE(); ctx()->emit_expr(); + ctx()->emit_(OP_GET_ITER, BC_NOARG, BC_KEEPLINE); + CodeBlock* block = ctx()->enter_block(CodeBlockType::FOR_LOOP); + int for_codei = ctx()->emit_(OP_FOR_ITER, BC_NOARG, BC_KEEPLINE); + bool ok = vars->emit_store(ctx()); + if(!ok) SyntaxError(); // this error occurs in `vars` instead of this line, but...nevermind + ctx()->try_merge_for_iter_store(for_codei); + compile_block_body(); + ctx()->emit_(OP_LOOP_CONTINUE, ctx()->get_loop(), BC_KEEPLINE, true); + ctx()->exit_block(); + // optional else clause + if (match(TK("else"))) { + compile_block_body(); + block->end2 = ctx()->co->codes.size(); + } + } + + void Compiler::compile_try_except() { + ctx()->enter_block(CodeBlockType::TRY_EXCEPT); + compile_block_body(); + pod_vector patches = { + ctx()->emit_(OP_JUMP_ABSOLUTE, BC_NOARG, BC_KEEPLINE) + }; + ctx()->exit_block(); + + int finally_entry = -1; + if(curr().type != TK("finally")){ + do { + StrName as_name; + consume(TK("except")); + if(is_expression()){ + EXPR(); // push assumed type on to the stack + ctx()->emit_expr(); + ctx()->emit_(OP_EXCEPTION_MATCH, BC_NOARG, prev().line); + if(match(TK("as"))){ + consume(TK("@id")); + as_name = StrName(prev().sv()); + } + }else{ + ctx()->emit_(OP_LOAD_TRUE, BC_NOARG, BC_KEEPLINE); + } + int patch = ctx()->emit_(OP_POP_JUMP_IF_FALSE, BC_NOARG, BC_KEEPLINE); + // on match + if(!as_name.empty()){ + ctx()->emit_(OP_DUP_TOP, BC_NOARG, BC_KEEPLINE); + ctx()->emit_store_name(name_scope(), as_name, BC_KEEPLINE); + } + // pop the exception + ctx()->emit_(OP_POP_EXCEPTION, BC_NOARG, BC_KEEPLINE); + compile_block_body(); + patches.push_back(ctx()->emit_(OP_JUMP_ABSOLUTE, BC_NOARG, BC_KEEPLINE)); + ctx()->patch_jump(patch); + }while(curr().type == TK("except")); + } + + if(match(TK("finally"))){ + int patch = ctx()->emit_(OP_JUMP_ABSOLUTE, BC_NOARG, BC_KEEPLINE); + finally_entry = ctx()->co->codes.size(); + compile_block_body(); + ctx()->emit_(OP_JUMP_ABSOLUTE_TOP, BC_NOARG, BC_KEEPLINE); + ctx()->patch_jump(patch); + } + // no match, re-raise + if(finally_entry != -1){ + i64 target = ctx()->co->codes.size()+2; + ctx()->emit_(OP_LOAD_CONST, ctx()->add_const(VAR(target)), BC_KEEPLINE); + ctx()->emit_(OP_JUMP_ABSOLUTE, finally_entry, BC_KEEPLINE); + } + ctx()->emit_(OP_RE_RAISE, BC_NOARG, BC_KEEPLINE); + + // no exception or no match, jump to the end + for (int patch : patches) ctx()->patch_jump(patch); + if(finally_entry != -1){ + i64 target = ctx()->co->codes.size()+2; + ctx()->emit_(OP_LOAD_CONST, ctx()->add_const(VAR(target)), BC_KEEPLINE); + ctx()->emit_(OP_JUMP_ABSOLUTE, finally_entry, BC_KEEPLINE); + } + } + + void Compiler::compile_decorated(){ + Expr_vector decorators; + do{ + EXPR(); + decorators.push_back(ctx()->s_expr.popx()); + if(!match_newlines_repl()) SyntaxError(); + }while(match(TK("@"))); + + if(match(TK("class"))){ + compile_class(decorators); + }else{ + consume(TK("def")); + compile_function(decorators); + } + } + + bool Compiler::try_compile_assignment(){ + switch (curr().type) { + case TK("+="): case TK("-="): case TK("*="): case TK("/="): case TK("//="): case TK("%="): + case TK("<<="): case TK(">>="): case TK("&="): case TK("|="): case TK("^="): { + Expr* lhs_p = ctx()->s_expr.top().get(); + if(lhs_p->is_starred()) SyntaxError(); + if(ctx()->is_compiling_class) SyntaxError("can't use inplace operator in class definition"); + advance(); + auto e = make_expr(); + e->op = prev().type - 1; // -1 to remove = + e->lhs = ctx()->s_expr.popx(); + EXPR_TUPLE(); + e->rhs = ctx()->s_expr.popx(); + if(e->is_starred()) SyntaxError(); + e->emit_(ctx()); + bool ok = lhs_p->emit_store(ctx()); + if(!ok) SyntaxError(); + } return true; + case TK("="): { + int n = 0; + while(match(TK("="))){ + EXPR_TUPLE(); + n += 1; + } + // stack size is n+1 + Expr_ val = ctx()->s_expr.popx(); + val->emit_(ctx()); + for(int j=1; jemit_(OP_DUP_TOP, BC_NOARG, BC_KEEPLINE); + for(int j=0; js_expr.popx(); + if(e->is_starred()) SyntaxError(); + bool ok = e->emit_store(ctx()); + if(!ok) SyntaxError(); + } + } return true; + default: return false; + } + } + + void Compiler::compile_stmt() { + if(match(TK("class"))){ + compile_class(); + return; + } + advance(); + int kw_line = prev().line; // backup line number + int curr_loop_block = ctx()->get_loop(); + switch(prev().type){ + case TK("break"): + if (curr_loop_block < 0) SyntaxError("'break' outside loop"); + ctx()->emit_(OP_LOOP_BREAK, curr_loop_block, kw_line); + consume_end_stmt(); + break; + case TK("continue"): + if (curr_loop_block < 0) SyntaxError("'continue' not properly in loop"); + ctx()->emit_(OP_LOOP_CONTINUE, curr_loop_block, kw_line); + consume_end_stmt(); + break; + case TK("yield"): + if (contexts.size() <= 1) SyntaxError("'yield' outside function"); + EXPR_TUPLE(); ctx()->emit_expr(); + ctx()->emit_(OP_YIELD_VALUE, BC_NOARG, kw_line); + consume_end_stmt(); + break; + case TK("yield from"): + if (contexts.size() <= 1) SyntaxError("'yield from' outside function"); + EXPR_TUPLE(); ctx()->emit_expr(); + + ctx()->emit_(OP_GET_ITER, BC_NOARG, kw_line); + ctx()->enter_block(CodeBlockType::FOR_LOOP); + ctx()->emit_(OP_FOR_ITER_YIELD_VALUE, BC_NOARG, kw_line); + ctx()->emit_(OP_LOOP_CONTINUE, ctx()->get_loop(), kw_line); + ctx()->exit_block(); + consume_end_stmt(); + break; + case TK("return"): + if (contexts.size() <= 1) SyntaxError("'return' outside function"); + if(match_end_stmt()){ + ctx()->emit_(OP_RETURN_VALUE, 1, kw_line); + }else{ + EXPR_TUPLE(); ctx()->emit_expr(); + consume_end_stmt(); + ctx()->emit_(OP_RETURN_VALUE, BC_NOARG, kw_line); + } + break; + /*************************************************/ + case TK("if"): compile_if_stmt(); break; + case TK("while"): compile_while_loop(); break; + case TK("for"): compile_for_loop(); break; + case TK("import"): compile_normal_import(); break; + case TK("from"): compile_from_import(); break; + case TK("def"): compile_function(); break; + case TK("@"): compile_decorated(); break; + case TK("try"): compile_try_except(); break; + case TK("pass"): consume_end_stmt(); break; + /*************************************************/ + case TK("++"):{ + consume(TK("@id")); + StrName name(prev().sv()); + NameScope scope = name_scope(); + bool is_global = ctx()->global_names.count(name.sv()); + if(is_global) scope = NAME_GLOBAL; + switch(scope){ + case NAME_LOCAL: + ctx()->emit_(OP_INC_FAST, ctx()->add_varname(name), prev().line); + break; + case NAME_GLOBAL: + ctx()->emit_(OP_INC_GLOBAL, name.index, prev().line); + break; + default: SyntaxError(); break; + } + consume_end_stmt(); + break; + } + case TK("--"):{ + consume(TK("@id")); + StrName name(prev().sv()); + switch(name_scope()){ + case NAME_LOCAL: + ctx()->emit_(OP_DEC_FAST, ctx()->add_varname(name), prev().line); + break; + case NAME_GLOBAL: + ctx()->emit_(OP_DEC_GLOBAL, name.index, prev().line); + break; + default: SyntaxError(); break; + } + consume_end_stmt(); + break; + } + case TK("assert"):{ + EXPR(); // condition + ctx()->emit_expr(); + int index = ctx()->emit_(OP_POP_JUMP_IF_TRUE, BC_NOARG, kw_line); + int has_msg = 0; + if(match(TK(","))){ + EXPR(); // message + ctx()->emit_expr(); + has_msg = 1; + } + ctx()->emit_(OP_RAISE_ASSERT, has_msg, kw_line); + ctx()->patch_jump(index); + consume_end_stmt(); + break; + } + case TK("global"): + do { + consume(TK("@id")); + ctx()->global_names.insert(prev().str()); + } while (match(TK(","))); + consume_end_stmt(); + break; + case TK("raise"): { + EXPR(); ctx()->emit_expr(); + ctx()->emit_(OP_RAISE, BC_NOARG, kw_line); + consume_end_stmt(); + } break; + case TK("del"): { + EXPR_TUPLE(); + Expr_ e = ctx()->s_expr.popx(); + bool ok = e->emit_del(ctx()); + if(!ok) SyntaxError(); + consume_end_stmt(); + } break; + case TK("with"): { + EXPR(); // [ ] + ctx()->emit_expr(); + ctx()->enter_block(CodeBlockType::CONTEXT_MANAGER); + Expr_ as_name; + if(match(TK("as"))){ + consume(TK("@id")); + as_name = make_expr(prev().str(), name_scope()); + } + ctx()->emit_(OP_WITH_ENTER, BC_NOARG, prev().line); + // [ .__enter__() ] + if(as_name != nullptr){ + bool ok = as_name->emit_store(ctx()); + if(!ok) SyntaxError(); + }else{ + ctx()->emit_(OP_POP_TOP, BC_NOARG, BC_KEEPLINE); + } + compile_block_body(); + ctx()->emit_(OP_WITH_EXIT, BC_NOARG, prev().line); + ctx()->exit_block(); + } break; + /*************************************************/ + case TK("=="): { + consume(TK("@id")); + if(mode()!=EXEC_MODE) SyntaxError("'label' is only available in EXEC_MODE"); + bool ok = ctx()->add_label(prev().str()); + consume(TK("==")); + if(!ok) SyntaxError("label " + prev().str().escape() + " already exists"); + consume_end_stmt(); + } break; + case TK("->"): + consume(TK("@id")); + if(mode()!=EXEC_MODE) SyntaxError("'goto' is only available in EXEC_MODE"); + ctx()->emit_(OP_GOTO, StrName(prev().sv()).index, prev().line); + consume_end_stmt(); + break; + /*************************************************/ + // handle dangling expression or assignment + default: { + advance(-1); // do revert since we have pre-called advance() at the beginning + EXPR_TUPLE(); + + bool is_typed_name = false; // e.g. x: int + // eat variable's type hint if it is a single name + if(ctx()->s_expr.top()->is_name()){ + if(match(TK(":"))){ + consume_type_hints(); + is_typed_name = true; + + if(ctx()->is_compiling_class){ + NameExpr* ne = static_cast(ctx()->s_expr.top().get()); + ctx()->emit_(OP_ADD_CLASS_ANNOTATION, ne->name.index, BC_KEEPLINE); + } + } + } + if(!try_compile_assignment()){ + if(!ctx()->s_expr.empty() && ctx()->s_expr.top()->is_starred()){ + SyntaxError(); + } + if(!is_typed_name){ + ctx()->emit_expr(); + if((mode()==CELL_MODE || mode()==REPL_MODE) && name_scope()==NAME_GLOBAL){ + ctx()->emit_(OP_PRINT_EXPR, BC_NOARG, BC_KEEPLINE); + }else{ + ctx()->emit_(OP_POP_TOP, BC_NOARG, BC_KEEPLINE); + } + }else{ + PK_ASSERT(ctx()->s_expr.size() == 1) + ctx()->s_expr.pop(); + } + } + consume_end_stmt(); + } + } + } + + void Compiler::consume_type_hints(){ + EXPR(); + ctx()->s_expr.pop(); + } + + void Compiler::_add_decorators(const Expr_vector& decorators){ + // [obj] + for(auto it=decorators.rbegin(); it!=decorators.rend(); ++it){ + (*it)->emit_(ctx()); // [obj, f] + ctx()->emit_(OP_ROT_TWO, BC_NOARG, (*it)->line); // [f, obj] + ctx()->emit_(OP_LOAD_NULL, BC_NOARG, BC_KEEPLINE); // [f, obj, NULL] + ctx()->emit_(OP_ROT_TWO, BC_NOARG, BC_KEEPLINE); // [obj, NULL, f] + ctx()->emit_(OP_CALL, 1, (*it)->line); // [obj] + } + } + + void Compiler::compile_class(const Expr_vector& decorators){ + consume(TK("@id")); + int namei = StrName(prev().sv()).index; + Expr_ base = nullptr; + if(match(TK("("))){ + if(is_expression()){ + EXPR(); + base = ctx()->s_expr.popx(); + } + consume(TK(")")); + } + if(base == nullptr){ + ctx()->emit_(OP_LOAD_NONE, BC_NOARG, prev().line); + }else { + base->emit_(ctx()); + } + ctx()->emit_(OP_BEGIN_CLASS, namei, BC_KEEPLINE); + + for(auto& c: this->contexts.container()){ + if(c.is_compiling_class){ + SyntaxError("nested class is not allowed"); + } + } + ctx()->is_compiling_class = true; + compile_block_body(); + ctx()->is_compiling_class = false; + + if(!decorators.empty()){ + ctx()->emit_(OP_BEGIN_CLASS_DECORATION, BC_NOARG, BC_KEEPLINE); + _add_decorators(decorators); + ctx()->emit_(OP_END_CLASS_DECORATION, BC_NOARG, BC_KEEPLINE); + } + + ctx()->emit_(OP_END_CLASS, namei, BC_KEEPLINE); + } + + void Compiler::_compile_f_args(FuncDecl_ decl, bool enable_type_hints){ + int state = 0; // 0 for args, 1 for *args, 2 for k=v, 3 for **kwargs + do { + if(state > 3) SyntaxError(); + if(state == 3) SyntaxError("**kwargs should be the last argument"); + match_newlines(); + if(match(TK("*"))){ + if(state < 1) state = 1; + else SyntaxError("*args should be placed before **kwargs"); + } + else if(match(TK("**"))){ + state = 3; + } + consume(TK("@id")); + StrName name = prev().str(); + + // check duplicate argument name + for(int j: decl->args){ + if(decl->code->varnames[j] == name) { + SyntaxError("duplicate argument name"); + } + } + for(auto& kv: decl->kwargs){ + if(decl->code->varnames[kv.index] == name){ + SyntaxError("duplicate argument name"); + } + } + if(decl->starred_arg!=-1 && decl->code->varnames[decl->starred_arg] == name){ + SyntaxError("duplicate argument name"); + } + if(decl->starred_kwarg!=-1 && decl->code->varnames[decl->starred_kwarg] == name){ + SyntaxError("duplicate argument name"); + } + + // eat type hints + if(enable_type_hints && match(TK(":"))) consume_type_hints(); + if(state == 0 && curr().type == TK("=")) state = 2; + int index = ctx()->add_varname(name); + switch (state) + { + case 0: + decl->args.push_back(index); + break; + case 1: + decl->starred_arg = index; + state+=1; + break; + case 2: { + consume(TK("=")); + PyObject* value = read_literal(); + if(value == nullptr){ + SyntaxError(Str("default argument must be a literal")); + } + decl->add_kwarg(index, name, value); + } break; + case 3: + decl->starred_kwarg = index; + state+=1; + break; + } + } while (match(TK(","))); + } + + void Compiler::compile_function(const Expr_vector& decorators){ + consume(TK("@id")); + Str decl_name = prev().str(); + FuncDecl_ decl = push_f_context(decl_name); + consume(TK("(")); + if (!match(TK(")"))) { + _compile_f_args(decl, true); + consume(TK(")")); + } + if(match(TK("->"))) consume_type_hints(); + compile_block_body(); + pop_context(); + + decl->docstring = nullptr; + if(decl->code->codes.size()>=2 && decl->code->codes[0].op == OP_LOAD_CONST && decl->code->codes[1].op == OP_POP_TOP){ + PyObject* c = decl->code->consts[decl->code->codes[0].arg]; + if(is_type(c, vm->tp_str)){ + decl->code->codes[0].op = OP_NO_OP; + decl->code->codes[1].op = OP_NO_OP; + decl->docstring = PK_OBJ_GET(Str, c).c_str(); + } + } + ctx()->emit_(OP_LOAD_FUNCTION, ctx()->add_func_decl(decl), prev().line); + + _add_decorators(decorators); + + if(!ctx()->is_compiling_class){ + auto e = make_expr(decl_name, name_scope()); + e->emit_store(ctx()); + }else{ + int index = StrName(decl_name).index; + ctx()->emit_(OP_STORE_CLASS_ATTR, index, prev().line); + } + } + + PyObject* Compiler::to_object(const TokenValue& value){ + PyObject* obj = nullptr; + if(std::holds_alternative(value)){ + obj = VAR(std::get(value)); + } + if(std::holds_alternative(value)){ + obj = VAR(std::get(value)); + } + if(std::holds_alternative(value)){ + obj = VAR(std::get(value)); + } + PK_ASSERT(obj != nullptr) + return obj; + } + + PyObject* Compiler::read_literal(){ + advance(); + switch(prev().type){ + case TK("-"): { + consume(TK("@num")); + PyObject* val = to_object(prev().value); + return vm->py_negate(val); + } + case TK("@num"): return to_object(prev().value); + case TK("@str"): return to_object(prev().value); + case TK("True"): return VAR(true); + case TK("False"): return VAR(false); + case TK("None"): return vm->None; + case TK("..."): return vm->Ellipsis; + case TK("("): { + List cpnts; + while(true) { + cpnts.push_back(read_literal()); + if(curr().type == TK(")")) break; + consume(TK(",")); + if(curr().type == TK(")")) break; + } + consume(TK(")")); + return VAR(Tuple(std::move(cpnts))); + } + default: break; + } + return nullptr; + } + + Compiler::Compiler(VM* vm, std::string_view source, const Str& filename, CompileMode mode, bool unknown_global_scope) + :lexer(vm, std::make_shared(source, filename, mode)){ + this->vm = vm; + this->unknown_global_scope = unknown_global_scope; + init_pratt_rules(); + } + + Str Compiler::precompile(){ + auto tokens = lexer.run(); + SStream ss; + ss << "pkpy:" PK_VERSION << '\n'; // L1: version string + ss << (int)mode() << '\n'; // L2: mode + + std::map token_indices; + for(auto token: tokens){ + if(is_raw_string_used(token.type)){ + auto it = token_indices.find(token.sv()); + if(it == token_indices.end()){ + token_indices[token.sv()] = 0; + // assert no '\n' in token.sv() + for(char c: token.sv()) if(c=='\n') PK_FATAL_ERROR(); + } + } + } + ss << "=" << (int)token_indices.size() << '\n'; // L3: raw string count + int index = 0; + for(auto& kv: token_indices){ + ss << kv.first << '\n'; // L4: raw strings + kv.second = index++; + } + + ss << "=" << (int)tokens.size() << '\n'; // L5: token count + for(int i=0; i0 && tokens[i-1].line == token.line) ss << ','; + else ss << token.line << ','; + if(i>0 && tokens[i-1].brackets_level == token.brackets_level) ss << ','; + else ss << token.brackets_level << ','; + // visit token value + std::visit([&ss](auto&& arg){ + using T = std::decay_t; + if constexpr(std::is_same_v){ + ss << 'I' << arg; + }else if constexpr(std::is_same_v){ + ss << 'F' << arg; + }else if constexpr(std::is_same_v){ + ss << 'S'; + for(char c: arg) ss.write_hex((unsigned char)c); + } + ss << '\n'; + }, token.value); + } + return ss.str(); + } + + void Compiler::from_precompiled(const char* source){ + TokenDeserializer deserializer(source); + deserializer.curr += 5; // skip "pkpy:" + std::string_view version = deserializer.read_string('\n'); + + if(version != PK_VERSION){ + SyntaxError(_S("precompiled version mismatch: ", version, "!=" PK_VERSION)); + } + if(deserializer.read_uint('\n') != (i64)mode()){ + SyntaxError("precompiled mode mismatch"); + } + + int count = deserializer.read_count(); + std::vector& precompiled_tokens = lexer.src->_precompiled_tokens; + for(int i=0; iis_precompiled){ + from_precompiled(lexer.src->source.c_str()); + }else{ + this->tokens = lexer.run(); + } + + CodeObject_ code = push_global_context(); + + advance(); // skip @sof, so prev() is always valid + match_newlines(); // skip possible leading '\n' + + if(mode()==EVAL_MODE) { + EXPR_TUPLE(); ctx()->emit_expr(); + consume(TK("@eof")); + ctx()->emit_(OP_RETURN_VALUE, BC_NOARG, BC_KEEPLINE); + pop_context(); + return code; + }else if(mode()==JSON_MODE){ + EXPR(); + Expr_ e = ctx()->s_expr.popx(); + if(!e->is_json_object()) SyntaxError("expect a JSON object, literal or array"); + consume(TK("@eof")); + e->emit_(ctx()); + ctx()->emit_(OP_RETURN_VALUE, BC_NOARG, BC_KEEPLINE); + pop_context(); + return code; + } + + while (!match(TK("@eof"))) { + compile_stmt(); + match_newlines(); + } + pop_context(); + return code; + } + + // TODO: refactor this + void Lexer::throw_err(StrName type, Str msg, int lineno, const char* cursor){ + PyObject* e_obj = vm->call(vm->builtins->attr(type), VAR(msg)); + Exception& e = PK_OBJ_GET(Exception, e_obj); + e.st_push(src, lineno, cursor, ""); + throw e; + } + + std::string_view TokenDeserializer::read_string(char c){ + const char* start = curr; + while(*curr != c) curr++; + std::string_view retval(start, curr-start); + curr++; // skip the delimiter + return retval; + } + + Str TokenDeserializer::read_string_from_hex(char c){ + std::string_view s = read_string(c); + char* buffer = (char*)pool64_alloc(s.size()/2 + 1); + for(int i=0; i='0' && s[i]<='9') c += s[i]-'0'; + else if(s[i]>='a' && s[i]<='f') c += s[i]-'a'+10; + else PK_FATAL_ERROR(); + c <<= 4; + if(s[i+1]>='0' && s[i+1]<='9') c += s[i+1]-'0'; + else if(s[i+1]>='a' && s[i+1]<='f') c += s[i+1]-'a'+10; + else PK_FATAL_ERROR(); + buffer[i/2] = c; + } + buffer[s.size()/2] = 0; + return std::pair(buffer, s.size()/2); + } + + int TokenDeserializer::read_count(){ + PK_ASSERT(*curr == '=') + curr++; + return read_uint('\n'); + } + + i64 TokenDeserializer::read_uint(char c){ + i64 out = 0; + while(*curr != c){ + out = out*10 + (*curr-'0'); + curr++; + } + curr++; // skip the delimiter + return out; + } + + f64 TokenDeserializer::read_float(char c){ + std::string_view sv = read_string(c); + return std::stod(std::string(sv)); + } +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/csv.cpp b/dependencies/pocketpy/src/csv.cpp new file mode 100644 index 0000000..78a1bd4 --- /dev/null +++ b/dependencies/pocketpy/src/csv.cpp @@ -0,0 +1,93 @@ +#include "pocketpy/csv.h" + +namespace pkpy{ + +void add_module_csv(VM *vm){ + PyObject* mod = vm->new_module("csv"); + + vm->bind(mod, "reader(csvfile: list[str]) -> list[list]", [](VM* vm, ArgsView args){ + const List& csvfile = CAST(List&, args[0]); + List ret; + for(int i=0; iValueError("unterminated quote"); + }else{ + buffer += '\n'; + i++; + line = CAST(Str&, csvfile[i]).sv(); + goto __NEXT_LINE; + } + } + row.push_back(VAR(buffer)); + ret.push_back(VAR(std::move(row))); + } + return VAR(std::move(ret)); + }); + + vm->bind(mod, "DictReader(csvfile: list[str]) -> list[dict]", [](VM* vm, ArgsView args){ + PyObject* csv_reader = vm->_modules["csv"]->attr("reader"); + PyObject* ret_obj = vm->call(csv_reader, args[0]); + const List& ret = CAST(List&, ret_obj); + if(ret.size() == 0){ + vm->ValueError("empty csvfile"); + } + List header = CAST(List&, ret[0]); + List new_ret; + for(int i=1; iValueError("row.size() != header.size()"); + } + Dict row_dict(vm); + for(int j=0; jbind(vm->_t(cls), "__init__(self, *args, **kwargs)", [](VM* vm, ArgsView _view){ + PyObject* self = _view[0]; + const Tuple& args = CAST(Tuple&, _view[1]); + const Dict& kwargs_ = CAST(Dict&, _view[2]); + NameDict kwargs; + kwargs_.apply([&](PyObject* k, PyObject* v){ + kwargs.set(CAST(Str&, k), v); + }); + + Type cls = vm->_tp(self); + const PyTypeInfo* cls_info = &vm->_all_types[cls]; + NameDict& cls_d = cls_info->obj->attr(); + const auto& fields = cls_info->annotated_fields; + + int i = 0; // index into args + for(StrName field: fields){ + if(kwargs.contains(field)){ + self->attr().set(field, kwargs[field]); + kwargs.del(field); + }else{ + if(i < args.size()){ + self->attr().set(field, args[i]); + ++i; + }else if(cls_d.contains(field)){ // has default value + self->attr().set(field, cls_d[field]); + }else{ + vm->TypeError(_S(cls_info->name, " missing required argument ", field.escape())); + } + } + } + if(args.size() > i){ + vm->TypeError(_S(cls_info->name, " takes ", fields.size(), " positional arguments but ", args.size(), " were given")); + } + if(kwargs.size() > 0){ + StrName unexpected_key = kwargs.items()[0].first; + vm->TypeError(_S(cls_info->name, " got an unexpected keyword argument ", unexpected_key.escape())); + } + return vm->None; + }); +} + +static void patch__repr__(VM* vm, Type cls){ + vm->bind__repr__(cls, [](VM* vm, PyObject* _0){ + auto _lock = vm->heap.gc_scope_lock(); + const PyTypeInfo* cls_info = &vm->_all_types[vm->_tp(_0)]; + const auto& fields = cls_info->annotated_fields; + const NameDict& obj_d = _0->attr(); + SStream ss; + ss << cls_info->name << "("; + bool first = true; + for(StrName field: fields){ + if(first) first = false; + else ss << ", "; + ss << field << "=" << CAST(Str&, vm->py_repr(obj_d[field])); + } + ss << ")"; + return VAR(ss.str()); + }); +} + +static void patch__eq__(VM* vm, Type cls){ + vm->bind__eq__(cls, [](VM* vm, PyObject* _0, PyObject* _1){ + if(vm->_tp(_0) != vm->_tp(_1)) return vm->NotImplemented; + const PyTypeInfo* cls_info = &vm->_all_types[vm->_tp(_0)]; + const auto& fields = cls_info->annotated_fields; + for(StrName field: fields){ + PyObject* lhs = _0->attr(field); + PyObject* rhs = _1->attr(field); + if(vm->py_ne(lhs, rhs)) return vm->False; + } + return vm->True; + }); +} + +void add_module_dataclasses(VM* vm){ + PyObject* mod = vm->new_module("dataclasses"); + + vm->bind_func<1>(mod, "dataclass", [](VM* vm, ArgsView args){ + vm->check_type(args[0], VM::tp_type); + Type cls = PK_OBJ_GET(Type, args[0]); + NameDict& cls_d = args[0]->attr(); + + if(!cls_d.contains(__init__)) patch__init__(vm, cls); + if(!cls_d.contains(__repr__)) patch__repr__(vm, cls); + if(!cls_d.contains(__eq__)) patch__eq__(vm, cls); + + const auto& fields = vm->_all_types[cls].annotated_fields; + bool has_default = false; + for(StrName field: fields){ + if(cls_d.contains(field)){ + has_default = true; + }else{ + if(has_default){ + vm->TypeError(_S("non-default argument ", field.escape(), " follows default argument")); + } + } + } + return args[0]; + }); + + vm->bind_func<1>(mod, "asdict", [](VM* vm, ArgsView args){ + const auto& fields = vm->_inst_type_info(args[0])->annotated_fields; + const NameDict& obj_d = args[0]->attr(); + Dict d(vm); + for(StrName field: fields){ + d.set(VAR(field.sv()), obj_d[field]); + } + return VAR(std::move(d)); + }); +} + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/dict.cpp b/dependencies/pocketpy/src/dict.cpp new file mode 100644 index 0000000..f94e998 --- /dev/null +++ b/dependencies/pocketpy/src/dict.cpp @@ -0,0 +1,182 @@ +#include "pocketpy/dict.h" + +namespace pkpy{ + + Dict::Dict(VM* vm): vm(vm), _capacity(__Capacity), + _mask(__Capacity-1), + _size(0), _critical_size(__Capacity*__LoadFactor+0.5f), _head_idx(-1), _tail_idx(-1){ + _items = (Item*)pool128_alloc(_capacity * sizeof(Item)); + memset(_items, 0, _capacity * sizeof(Item)); + _nodes = (ItemNode*)pool64_alloc(_capacity * sizeof(ItemNode)); + memset(_nodes, -1, _capacity * sizeof(ItemNode)); + } + + Dict::Dict(Dict&& other){ + vm = other.vm; + _capacity = other._capacity; + _mask = other._mask; + _size = other._size; + _critical_size = other._critical_size; + _head_idx = other._head_idx; + _tail_idx = other._tail_idx; + _items = other._items; + _nodes = other._nodes; + other._items = nullptr; + other._nodes = nullptr; + } + + Dict::Dict(const Dict& other){ + vm = other.vm; + _capacity = other._capacity; + _mask = other._mask; + _size = other._size; + _critical_size = other._critical_size; + _head_idx = other._head_idx; + _tail_idx = other._tail_idx; + _items = (Item*)pool128_alloc(_capacity * sizeof(Item)); + memcpy(_items, other._items, _capacity * sizeof(Item)); + _nodes = (ItemNode*)pool64_alloc(_capacity * sizeof(ItemNode)); + memcpy(_nodes, other._nodes, _capacity * sizeof(ItemNode)); + } + + void Dict::set(PyObject* key, PyObject* val){ + // do possible rehash + if(_size+1 > _critical_size) _rehash(); + bool ok; int i; + _probe_1(key, ok, i); + if(!ok) { + _size++; + _items[i].first = key; + + // append to tail + if(_size == 0+1){ + _head_idx = i; + _tail_idx = i; + }else{ + _nodes[i].prev = _tail_idx; + _nodes[_tail_idx].next = i; + _tail_idx = i; + } + } + _items[i].second = val; + } + + void Dict::_rehash(){ + Item* old_items = _items; + ItemNode* old_nodes = _nodes; + int old_head_idx = _head_idx; + + _capacity *= 2; + _mask = _capacity - 1; + _size = 0; + _critical_size = _capacity*__LoadFactor+0.5f; + _head_idx = -1; + _tail_idx = -1; + + _items = (Item*)pool128_alloc(_capacity * sizeof(Item)); + memset(_items, 0, _capacity * sizeof(Item)); + _nodes = (ItemNode*)pool64_alloc(_capacity * sizeof(ItemNode)); + memset(_nodes, -1, _capacity * sizeof(ItemNode)); + + // copy old items to new dict + int i = old_head_idx; + while(i != -1){ + set(old_items[i].first, old_items[i].second); + i = old_nodes[i].next; + } + pool128_dealloc(old_items); + pool64_dealloc(old_nodes); + } + + + PyObject* Dict::try_get(PyObject* key) const{ + bool ok; int i; + _probe_0(key, ok, i); + if(!ok) return nullptr; + return _items[i].second; + } + + bool Dict::contains(PyObject* key) const{ + bool ok; int i; + _probe_0(key, ok, i); + return ok; + } + + bool Dict::erase(PyObject* key){ + bool ok; int i; + _probe_0(key, ok, i); + if(!ok) return false; + _items[i].first = nullptr; + // _items[i].second = PY_DELETED_SLOT; // do not change .second if it is not NULL, it means the slot is occupied by a deleted item + _size--; + + if(_size == 0){ + _head_idx = -1; + _tail_idx = -1; + }else{ + if(_head_idx == i){ + _head_idx = _nodes[i].next; + _nodes[_head_idx].prev = -1; + }else if(_tail_idx == i){ + _tail_idx = _nodes[i].prev; + _nodes[_tail_idx].next = -1; + }else{ + _nodes[_nodes[i].prev].next = _nodes[i].next; + _nodes[_nodes[i].next].prev = _nodes[i].prev; + } + } + _nodes[i].prev = -1; + _nodes[i].next = -1; + return true; + } + + void Dict::update(const Dict& other){ + other.apply([&](PyObject* k, PyObject* v){ set(k, v); }); + } + + Tuple Dict::keys() const{ + Tuple t(_size); + int i = _head_idx; + int j = 0; + while(i != -1){ + t[j++] = _items[i].first; + i = _nodes[i].next; + } + PK_ASSERT(j == _size); + return t; + } + + Tuple Dict::values() const{ + Tuple t(_size); + int i = _head_idx; + int j = 0; + while(i != -1){ + t[j++] = _items[i].second; + i = _nodes[i].next; + } + PK_ASSERT(j == _size); + return t; + } + + void Dict::clear(){ + _size = 0; + _head_idx = -1; + _tail_idx = -1; + memset(_items, 0, _capacity * sizeof(Item)); + memset(_nodes, -1, _capacity * sizeof(ItemNode)); + } + + Dict::~Dict(){ + if(_items==nullptr) return; + pool128_dealloc(_items); + pool64_dealloc(_nodes); + } + + void Dict::_gc_mark() const{ + apply([](PyObject* k, PyObject* v){ + PK_OBJ_MARK(k); + PK_OBJ_MARK(v); + }); + } + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/easing.cpp b/dependencies/pocketpy/src/easing.cpp new file mode 100644 index 0000000..14e4fb9 --- /dev/null +++ b/dependencies/pocketpy/src/easing.cpp @@ -0,0 +1,251 @@ +#include "pocketpy/easing.h" + +namespace pkpy{ +// https://easings.net/ + +const double kPi = 3.1415926545; + +static double easeLinear( double x ) { + return x; +} + +static double easeInSine( double x ) { + return 1.0 - std::cos( x * kPi / 2 ); +} + +static double easeOutSine( double x ) { + return std::sin( x * kPi / 2 ); +} + +static double easeInOutSine( double x ) { + return -( std::cos( kPi * x ) - 1 ) / 2; +} + +static double easeInQuad( double x ) { + return x * x; +} + +static double easeOutQuad( double x ) { + return 1 - std::pow( 1 - x, 2 ); +} + +static double easeInOutQuad( double x ) { + if( x < 0.5 ) { + return 2 * x * x; + } else { + return 1 - std::pow( -2 * x + 2, 2 ) / 2; + } +} + +static double easeInCubic( double x ) { + return x * x * x; +} + +static double easeOutCubic( double x ) { + return 1 - std::pow( 1 - x, 3 ); +} + +static double easeInOutCubic( double x ) { + if( x < 0.5 ) { + return 4 * x * x * x; + } else { + return 1 - std::pow( -2 * x + 2, 3 ) / 2; + } +} + +static double easeInQuart( double x ) { + return std::pow( x, 4 ); +} + +static double easeOutQuart( double x ) { + return 1 - std::pow( 1 - x, 4 ); +} + +static double easeInOutQuart( double x ) { + if( x < 0.5 ) { + return 8 * std::pow( x, 4 ); + } else { + return 1 - std::pow( -2 * x + 2, 4 ) / 2; + } +} + +static double easeInQuint( double x ) { + return std::pow( x, 5 ); +} + +static double easeOutQuint( double x ) { + return 1 - std::pow( 1 - x, 5 ); +} + +static double easeInOutQuint( double x ) { + if( x < 0.5 ) { + return 16 * std::pow( x, 5 ); + } else { + return 1 - std::pow( -2 * x + 2, 5 ) / 2; + } +} + +static double easeInExpo( double x ) { + return x == 0 ? 0 : std::pow( 2, 10 * x - 10 ); +} + +static double easeOutExpo( double x ) { + return x == 1 ? 1 : 1 - std::pow( 2, -10 * x ); +} + +static double easeInOutExpo( double x ) { + if( x == 0 ) { + return 0; + } else if( x == 1 ) { + return 1; + } else if( x < 0.5 ) { + return std::pow( 2, 20 * x - 10 ) / 2; + } else { + return (2 - std::pow( 2, -20 * x + 10 )) / 2; + } +} + +static double easeInCirc( double x ) { + return 1 - std::sqrt( 1 - std::pow( x, 2 ) ); +} + +static double easeOutCirc( double x ) { + return std::sqrt( 1 - std::pow( x - 1, 2 ) ); +} + +static double easeInOutCirc( double x ) { + if( x < 0.5 ) { + return (1 - std::sqrt( 1 - std::pow( 2 * x, 2 ) )) / 2; + } else { + return (std::sqrt( 1 - std::pow( -2 * x + 2, 2 ) ) + 1) / 2; + } +} + +static double easeInBack( double x ) { + const double c1 = 1.70158; + const double c3 = c1 + 1; + return c3 * x * x * x - c1 * x * x; +} + +static double easeOutBack( double x ) { + const double c1 = 1.70158; + const double c3 = c1 + 1; + return 1 + c3 * std::pow( x - 1, 3 ) + c1 * std::pow( x - 1, 2 ); +} + +static double easeInOutBack( double x ) { + const double c1 = 1.70158; + const double c2 = c1 * 1.525; + if( x < 0.5 ) { + return (std::pow( 2 * x, 2 ) * ((c2 + 1) * 2 * x - c2)) / 2; + } else { + return (std::pow( 2 * x - 2, 2 ) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2; + } +} + +static double easeInElastic( double x ) { + const double c4 = (2 * kPi) / 3; + if( x == 0 ) { + return 0; + } else if( x == 1 ) { + return 1; + } else { + return -std::pow( 2, 10 * x - 10 ) * std::sin( (x * 10 - 10.75) * c4 ); + } +} + +static double easeOutElastic( double x ) { + const double c4 = (2 * kPi) / 3; + if( x == 0 ) { + return 0; + } else if( x == 1 ) { + return 1; + } else { + return std::pow( 2, -10 * x ) * std::sin( (x * 10 - 0.75) * c4 ) + 1; + } +} + +static double easeInOutElastic( double x ) { + const double c5 = (2 * kPi) / 4.5; + if( x == 0 ) { + return 0; + } else if( x == 1 ) { + return 1; + } else if( x < 0.5 ) { + return -(std::pow( 2, 20 * x - 10 ) * std::sin( (20 * x - 11.125) * c5 )) / 2; + } else { + return (std::pow( 2, -20 * x + 10 ) * std::sin( (20 * x - 11.125) * c5 )) / 2 + 1; + } +} + +static double easeOutBounce( double x ) { + const double n1 = 7.5625; + const double d1 = 2.75; + if( x < 1 / d1 ) { + return n1 * x * x; + } else if( x < 2 / d1 ) { + x -= 1.5 / d1; + return n1 * x * x + 0.75; + } else if( x < 2.5 / d1 ) { + x -= 2.25 / d1; + return n1 * x * x + 0.9375; + } else { + x -= 2.625 / d1; + return n1 * x * x + 0.984375; + } +} + +static double easeInBounce( double x ) { + return 1 - easeOutBounce(1 - x); +} + +static double easeInOutBounce( double x ) { + return x < 0.5 + ? (1 - easeOutBounce(1 - 2 * x)) / 2 + : (1 + easeOutBounce(2 * x - 1)) / 2; +} + +void add_module_easing(VM* vm){ + PyObject* mod = vm->new_module("easing"); + +#define EASE(name) \ + vm->bind_func<1>(mod, #name, [](VM* vm, ArgsView args){ \ + f64 t = CAST(f64, args[0]); \ + return VAR(ease##name(t)); \ + }); + + EASE(Linear) + EASE(InSine) + EASE(OutSine) + EASE(InOutSine) + EASE(InQuad) + EASE(OutQuad) + EASE(InOutQuad) + EASE(InCubic) + EASE(OutCubic) + EASE(InOutCubic) + EASE(InQuart) + EASE(OutQuart) + EASE(InOutQuart) + EASE(InQuint) + EASE(OutQuint) + EASE(InOutQuint) + EASE(InExpo) + EASE(OutExpo) + EASE(InOutExpo) + EASE(InCirc) + EASE(OutCirc) + EASE(InOutCirc) + EASE(InBack) + EASE(OutBack) + EASE(InOutBack) + EASE(InElastic) + EASE(OutElastic) + EASE(InOutElastic) + EASE(InBounce) + EASE(OutBounce) + EASE(InOutBounce) + +#undef EASE +} +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/error.cpp b/dependencies/pocketpy/src/error.cpp new file mode 100644 index 0000000..6500019 --- /dev/null +++ b/dependencies/pocketpy/src/error.cpp @@ -0,0 +1,82 @@ +#include "pocketpy/error.h" + +namespace pkpy{ + + SourceData::SourceData(std::string_view source, const Str& filename, CompileMode mode): filename(filename), mode(mode) { + int index = 0; + // Skip utf8 BOM if there is any. + if (strncmp(source.data(), "\xEF\xBB\xBF", 3) == 0) index += 3; + // Drop all '\r' + SStream ss(source.size() + 1); + while(index < source.size()){ + if(source[index] != '\r') ss << source[index]; + index++; + } + this->source = ss.str(); + if(this->source.size>5 && this->source.sv().substr(0, 5)=="pkpy:"){ + this->is_precompiled = true; + }else{ + this->is_precompiled = false; + } + line_starts.push_back(this->source.c_str()); + } + + SourceData::SourceData(const Str& filename, CompileMode mode): filename(filename), mode(mode) { + line_starts.push_back(this->source.c_str()); + } + + std::pair SourceData::_get_line(int lineno) const { + if(is_precompiled || lineno == -1) return {nullptr, nullptr}; + lineno -= 1; + if(lineno < 0) lineno = 0; + const char* _start = line_starts[lineno]; + const char* i = _start; + // max 300 chars + while(*i != '\n' && *i != '\0' && i-_start < 300) i++; + return {_start, i}; + } + + std::string_view SourceData::get_line(int lineno) const{ + auto [_0, _1] = _get_line(lineno); + if(_0 && _1) return std::string_view(_0, _1-_0); + return ""; + } + + Str SourceData::snapshot(int lineno, const char* cursor, std::string_view name) const{ + SStream ss; + ss << " " << "File \"" << filename << "\", line " << lineno; + if(!name.empty()) ss << ", in " << name; + if(!is_precompiled){ + ss << '\n'; + std::pair pair = _get_line(lineno); + Str line = ""; + int removed_spaces = 0; + if(pair.first && pair.second){ + line = Str(pair.first, pair.second-pair.first).lstrip(); + removed_spaces = pair.second - pair.first - line.length(); + if(line.empty()) line = ""; + } + ss << " " << line; + if(cursor && line != "" && cursor >= pair.first && cursor <= pair.second){ + auto column = cursor - pair.first - removed_spaces; + if(column >= 0) ss << "\n " << std::string(column, ' ') << "^"; + } + } + return ss.str(); + } + + Str Exception::summary() const { + stack st(stacktrace); + SStream ss; + if(is_re) ss << "Traceback (most recent call last):\n"; + while(!st.empty()) { + ss << st.top().snapshot() << '\n'; + st.pop(); + } + // TODO: allow users to override the behavior + if (!msg.empty()) ss << type.sv() << ": " << msg; + else ss << type.sv(); + return ss.str(); + } + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/expr.cpp b/dependencies/pocketpy/src/expr.cpp new file mode 100644 index 0000000..c2d2a6c --- /dev/null +++ b/dependencies/pocketpy/src/expr.cpp @@ -0,0 +1,718 @@ +#include "pocketpy/expr.h" + +namespace pkpy{ + + inline bool is_identifier(std::string_view s){ + if(s.empty()) return false; + if(!isalpha(s[0]) && s[0] != '_') return false; + for(char c: s) if(!isalnum(c) && c != '_') return false; + return true; + } + + int CodeEmitContext::get_loop() const { + int index = curr_block_i; + while(index >= 0){ + if(co->blocks[index].type == CodeBlockType::FOR_LOOP) break; + if(co->blocks[index].type == CodeBlockType::WHILE_LOOP) break; + index = co->blocks[index].parent; + } + return index; + } + + CodeBlock* CodeEmitContext::enter_block(CodeBlockType type){ + if(type==CodeBlockType::FOR_LOOP || type==CodeBlockType::CONTEXT_MANAGER) base_stack_size++; + co->blocks.push_back(CodeBlock( + type, curr_block_i, base_stack_size, (int)co->codes.size() + )); + curr_block_i = co->blocks.size()-1; + return &co->blocks[curr_block_i]; + } + + void CodeEmitContext::exit_block(){ + auto curr_type = co->blocks[curr_block_i].type; + if(curr_type == CodeBlockType::FOR_LOOP || curr_type==CodeBlockType::CONTEXT_MANAGER) base_stack_size--; + co->blocks[curr_block_i].end = co->codes.size(); + curr_block_i = co->blocks[curr_block_i].parent; + if(curr_block_i < 0) PK_FATAL_ERROR(); + + if(curr_type == CodeBlockType::FOR_LOOP){ + // add a no op here to make block check work + emit_(OP_NO_OP, BC_NOARG, BC_KEEPLINE, true); + } + } + + // clear the expression stack and generate bytecode + void CodeEmitContext::emit_expr(){ + if(s_expr.size() != 1) throw std::runtime_error("s_expr.size() != 1"); + Expr_ expr = s_expr.popx(); + expr->emit_(this); + } + + int CodeEmitContext::emit_(Opcode opcode, uint16_t arg, int line, bool is_virtual) { + co->codes.push_back(Bytecode{(uint8_t)opcode, arg}); + co->iblocks.push_back(curr_block_i); + co->lines.push_back(CodeObject::LineInfo{line, is_virtual}); + int i = co->codes.size() - 1; + if(line == BC_KEEPLINE){ + if(i >= 1) co->lines[i].lineno = co->lines[i-1].lineno; + else co->lines[i].lineno = 1; + } + return i; + } + + void CodeEmitContext::revert_last_emit_(){ + co->codes.pop_back(); + co->iblocks.pop_back(); + co->lines.pop_back(); + } + + void CodeEmitContext::try_merge_for_iter_store(int i){ + // [FOR_ITER, STORE_?, ] + if(co->codes[i].op != OP_FOR_ITER) return; + if(co->codes.size() - i != 2) return; + uint16_t arg = co->codes[i+1].arg; + if(co->codes[i+1].op == OP_STORE_FAST){ + revert_last_emit_(); + co->codes[i].op = OP_FOR_ITER_STORE_FAST; + co->codes[i].arg = arg; + return; + } + if(co->codes[i+1].op == OP_STORE_GLOBAL){ + revert_last_emit_(); + co->codes[i].op = OP_FOR_ITER_STORE_GLOBAL; + co->codes[i].arg = arg; + return; + } + } + + int CodeEmitContext::emit_int(i64 value, int line){ + if(value >= 0 && value <= 16){ + uint8_t op = OP_LOAD_INT_0 + (uint8_t)value; + return emit_((Opcode)op, BC_NOARG, line); + }else{ + return emit_(OP_LOAD_CONST, add_const(VAR(value)), line); + } + } + + void CodeEmitContext::patch_jump(int index) { + int target = co->codes.size(); + co->codes[index].arg = target; + } + + bool CodeEmitContext::add_label(StrName name){ + if(co->labels.contains(name)) return false; + co->labels.set(name, co->codes.size()); + return true; + } + + int CodeEmitContext::add_varname(StrName name){ + // PK_MAX_CO_VARNAMES will be checked when pop_context(), not here + int index = co->varnames_inv.try_get(name); + if(index >= 0) return index; + co->varnames.push_back(name); + index = co->varnames.size() - 1; + co->varnames_inv.set(name, index); + return index; + } + + int CodeEmitContext::add_const_string(std::string_view key){ + auto it = _co_consts_string_dedup_map.find(key); + if(it != _co_consts_string_dedup_map.end()){ + return it->second; + }else{ + co->consts.push_back(VAR(key)); + int index = co->consts.size() - 1; + _co_consts_string_dedup_map[std::string(key)] = index; + return index; + } + } + + int CodeEmitContext::add_const(PyObject* v){ + if(is_type(v, vm->tp_str)){ + // warning: should use add_const_string() instead + return add_const_string(PK_OBJ_GET(Str, v).sv()); + }else{ + // non-string deduplication + auto it = _co_consts_nonstring_dedup_map.find(v); + if(it != _co_consts_nonstring_dedup_map.end()){ + return it->second; + }else{ + co->consts.push_back(v); + int index = co->consts.size() - 1; + _co_consts_nonstring_dedup_map[v] = index; + return index; + } + } + PK_UNREACHABLE() + } + + int CodeEmitContext::add_func_decl(FuncDecl_ decl){ + co->func_decls.push_back(decl); + return co->func_decls.size() - 1; + } + + void CodeEmitContext::emit_store_name(NameScope scope, StrName name, int line){ + switch(scope){ + case NAME_LOCAL: + emit_(OP_STORE_FAST, add_varname(name), line); + break; + case NAME_GLOBAL: + emit_(OP_STORE_GLOBAL, StrName(name).index, line); + break; + case NAME_GLOBAL_UNKNOWN: + emit_(OP_STORE_NAME, StrName(name).index, line); + break; + default: PK_FATAL_ERROR(); break; + } + } + + + void NameExpr::emit_(CodeEmitContext* ctx) { + int index = ctx->co->varnames_inv.try_get(name); + if(scope == NAME_LOCAL && index >= 0){ + ctx->emit_(OP_LOAD_FAST, index, line); + }else{ + Opcode op = ctx->level <= 1 ? OP_LOAD_GLOBAL : OP_LOAD_NONLOCAL; + if(ctx->is_compiling_class && scope == NAME_GLOBAL){ + // if we are compiling a class, we should use OP_LOAD_ATTR_GLOBAL instead of OP_LOAD_GLOBAL + // this supports @property.setter + op = OP_LOAD_CLASS_GLOBAL; + // exec()/eval() won't work with OP_LOAD_ATTR_GLOBAL in class body + }else{ + // we cannot determine the scope when calling exec()/eval() + if(scope == NAME_GLOBAL_UNKNOWN) op = OP_LOAD_NAME; + } + ctx->emit_(op, StrName(name).index, line); + } + } + + bool NameExpr::emit_del(CodeEmitContext* ctx) { + switch(scope){ + case NAME_LOCAL: + ctx->emit_(OP_DELETE_FAST, ctx->add_varname(name), line); + break; + case NAME_GLOBAL: + ctx->emit_(OP_DELETE_GLOBAL, StrName(name).index, line); + break; + case NAME_GLOBAL_UNKNOWN: + ctx->emit_(OP_DELETE_NAME, StrName(name).index, line); + break; + default: PK_FATAL_ERROR(); break; + } + return true; + } + + bool NameExpr::emit_store(CodeEmitContext* ctx) { + if(ctx->is_compiling_class){ + ctx->emit_(OP_STORE_CLASS_ATTR, name.index, line); + return true; + } + ctx->emit_store_name(scope, name, line); + return true; + } + + void InvertExpr::emit_(CodeEmitContext* ctx) { + child->emit_(ctx); + ctx->emit_(OP_UNARY_INVERT, BC_NOARG, line); + } + + void StarredExpr::emit_(CodeEmitContext* ctx) { + child->emit_(ctx); + ctx->emit_(OP_UNARY_STAR, level, line); + } + + bool StarredExpr::emit_store(CodeEmitContext* ctx) { + if(level != 1) return false; + // simply proxy to child + return child->emit_store(ctx); + } + + void NotExpr::emit_(CodeEmitContext* ctx) { + child->emit_(ctx); + ctx->emit_(OP_UNARY_NOT, BC_NOARG, line); + } + + void AndExpr::emit_(CodeEmitContext* ctx) { + lhs->emit_(ctx); + int patch = ctx->emit_(OP_JUMP_IF_FALSE_OR_POP, BC_NOARG, line); + rhs->emit_(ctx); + ctx->patch_jump(patch); + } + + void OrExpr::emit_(CodeEmitContext* ctx) { + lhs->emit_(ctx); + int patch = ctx->emit_(OP_JUMP_IF_TRUE_OR_POP, BC_NOARG, line); + rhs->emit_(ctx); + ctx->patch_jump(patch); + } + + void Literal0Expr::emit_(CodeEmitContext* ctx){ + switch (token) { + case TK("None"): ctx->emit_(OP_LOAD_NONE, BC_NOARG, line); break; + case TK("True"): ctx->emit_(OP_LOAD_TRUE, BC_NOARG, line); break; + case TK("False"): ctx->emit_(OP_LOAD_FALSE, BC_NOARG, line); break; + case TK("..."): ctx->emit_(OP_LOAD_ELLIPSIS, BC_NOARG, line); break; + default: PK_FATAL_ERROR(); + } + } + + void LongExpr::emit_(CodeEmitContext* ctx) { + ctx->emit_(OP_LOAD_CONST, ctx->add_const_string(s.sv()), line); + ctx->emit_(OP_BUILD_LONG, BC_NOARG, line); + } + + void ImagExpr::emit_(CodeEmitContext* ctx) { + VM* vm = ctx->vm; + ctx->emit_(OP_LOAD_CONST, ctx->add_const(VAR(value)), line); + ctx->emit_(OP_BUILD_IMAG, BC_NOARG, line); + } + + void BytesExpr::emit_(CodeEmitContext* ctx) { + ctx->emit_(OP_LOAD_CONST, ctx->add_const_string(s.sv()), line); + ctx->emit_(OP_BUILD_BYTES, BC_NOARG, line); + } + + void LiteralExpr::emit_(CodeEmitContext* ctx) { + VM* vm = ctx->vm; + if(std::holds_alternative(value)){ + i64 _val = std::get(value); + ctx->emit_int(_val, line); + return; + } + if(std::holds_alternative(value)){ + f64 _val = std::get(value); + ctx->emit_(OP_LOAD_CONST, ctx->add_const(VAR(_val)), line); + return; + } + if(std::holds_alternative(value)){ + std::string_view key = std::get(value).sv(); + ctx->emit_(OP_LOAD_CONST, ctx->add_const_string(key), line); + return; + } + } + + void NegatedExpr::emit_(CodeEmitContext* ctx){ + VM* vm = ctx->vm; + // if child is a int of float, do constant folding + if(child->is_literal()){ + LiteralExpr* lit = static_cast(child.get()); + if(std::holds_alternative(lit->value)){ + i64 _val = -std::get(lit->value); + ctx->emit_int(_val, line); + return; + } + if(std::holds_alternative(lit->value)){ + f64 _val = -std::get(lit->value); + ctx->emit_(OP_LOAD_CONST, ctx->add_const(VAR(_val)), line); + return; + } + } + child->emit_(ctx); + ctx->emit_(OP_UNARY_NEGATIVE, BC_NOARG, line); + } + + + void SliceExpr::emit_(CodeEmitContext* ctx){ + if(start){ + start->emit_(ctx); + }else{ + ctx->emit_(OP_LOAD_NONE, BC_NOARG, line); + } + + if(stop){ + stop->emit_(ctx); + }else{ + ctx->emit_(OP_LOAD_NONE, BC_NOARG, line); + } + + if(step){ + step->emit_(ctx); + }else{ + ctx->emit_(OP_LOAD_NONE, BC_NOARG, line); + } + + ctx->emit_(OP_BUILD_SLICE, BC_NOARG, line); + } + + void DictItemExpr::emit_(CodeEmitContext* ctx) { + if(is_starred()){ + PK_ASSERT(key == nullptr); + value->emit_(ctx); + }else{ + value->emit_(ctx); + key->emit_(ctx); // reverse order + ctx->emit_(OP_BUILD_TUPLE, 2, line); + } + } + + bool TupleExpr::emit_store(CodeEmitContext* ctx) { + // TOS is an iterable + // items may contain StarredExpr, we should check it + int starred_i = -1; + for(int i=0; iis_starred()) continue; + if(starred_i == -1) starred_i = i; + else return false; // multiple StarredExpr not allowed + } + + if(starred_i == -1){ + Bytecode& prev = ctx->co->codes.back(); + if(prev.op == OP_BUILD_TUPLE && prev.arg == items.size()){ + // build tuple and unpack it is meaningless + prev.op = OP_NO_OP; + prev.arg = BC_NOARG; + }else{ + ctx->emit_(OP_UNPACK_SEQUENCE, items.size(), line); + } + }else{ + // starred assignment target must be in a tuple + if(items.size() == 1) return false; + // starred assignment target must be the last one (differ from cpython) + if(starred_i != items.size()-1) return false; + // a,*b = [1,2,3] + // stack is [1,2,3] -> [1,[2,3]] + ctx->emit_(OP_UNPACK_EX, items.size()-1, line); + } + // do reverse emit + for(int i=items.size()-1; i>=0; i--){ + bool ok = items[i]->emit_store(ctx); + if(!ok) return false; + } + return true; + } + + bool TupleExpr::emit_del(CodeEmitContext* ctx){ + for(auto& e: items){ + bool ok = e->emit_del(ctx); + if(!ok) return false; + } + return true; + } + + void CompExpr::emit_(CodeEmitContext* ctx){ + ctx->emit_(op0(), 0, line); + iter->emit_(ctx); + ctx->emit_(OP_GET_ITER, BC_NOARG, BC_KEEPLINE); + ctx->enter_block(CodeBlockType::FOR_LOOP); + int for_codei = ctx->emit_(OP_FOR_ITER, BC_NOARG, BC_KEEPLINE); + bool ok = vars->emit_store(ctx); + // this error occurs in `vars` instead of this line, but...nevermind + if(!ok) throw std::runtime_error("SyntaxError"); + ctx->try_merge_for_iter_store(for_codei); + if(cond){ + cond->emit_(ctx); + int patch = ctx->emit_(OP_POP_JUMP_IF_FALSE, BC_NOARG, BC_KEEPLINE); + expr->emit_(ctx); + ctx->emit_(op1(), BC_NOARG, BC_KEEPLINE); + ctx->patch_jump(patch); + }else{ + expr->emit_(ctx); + ctx->emit_(op1(), BC_NOARG, BC_KEEPLINE); + } + ctx->emit_(OP_LOOP_CONTINUE, ctx->get_loop(), BC_KEEPLINE); + ctx->exit_block(); + } + + + void FStringExpr::_load_simple_expr(CodeEmitContext* ctx, Str expr){ + bool repr = false; + if(expr.size>=2 && expr.end()[-2]=='!'){ + switch(expr.end()[-1]){ + case 'r': repr = true; expr = expr.substr(0, expr.size-2); break; + case 's': repr = false; expr = expr.substr(0, expr.size-2); break; + default: break; // nothing happens + } + } + // name or name.name + bool is_fastpath = false; + if(is_identifier(expr.sv())){ + ctx->emit_(OP_LOAD_NAME, StrName(expr.sv()).index, line); + is_fastpath = true; + }else{ + int dot = expr.index("."); + if(dot > 0){ + std::string_view a = expr.sv().substr(0, dot); + std::string_view b = expr.sv().substr(dot+1); + if(is_identifier(a) && is_identifier(b)){ + ctx->emit_(OP_LOAD_NAME, StrName(a).index, line); + ctx->emit_(OP_LOAD_ATTR, StrName(b).index, line); + is_fastpath = true; + } + } + } + + if(!is_fastpath){ + int index = ctx->add_const_string(expr.sv()); + ctx->emit_(OP_FSTRING_EVAL, index, line); + } + + if(repr){ + ctx->emit_(OP_REPR, BC_NOARG, line); + } + } + + void FStringExpr::emit_(CodeEmitContext* ctx){ + int i = 0; // left index + int j = 0; // right index + int count = 0; // how many string parts + bool flag = false; // true if we are in a expression + + const char* fmt_valid_chars = "0-=*#@!~" "<>^" ".fds" "0123456789"; + PK_LOCAL_STATIC const std::set fmt_valid_char_set(fmt_valid_chars, fmt_valid_chars + strlen(fmt_valid_chars)); + + while(j < src.size){ + if(flag){ + if(src[j] == '}'){ + // add expression + Str expr = src.substr(i, j-i); + // BUG: ':' is not a format specifier in f"{stack[2:]}" + int conon = expr.index(":"); + if(conon >= 0){ + Str spec = expr.substr(conon+1); + // filter some invalid spec + bool ok = true; + for(char c: spec) if(!fmt_valid_char_set.count(c)){ ok = false; break; } + if(ok){ + _load_simple_expr(ctx, expr.substr(0, conon)); + ctx->emit_(OP_FORMAT_STRING, ctx->add_const_string(spec.sv()), line); + }else{ + // ':' is not a spec indicator + _load_simple_expr(ctx, expr); + } + }else{ + _load_simple_expr(ctx, expr); + } + flag = false; + count++; + } + }else{ + if(src[j] == '{'){ + // look at next char + if(j+1 < src.size && src[j+1] == '{'){ + // {{ -> { + j++; + ctx->emit_(OP_LOAD_CONST, ctx->add_const_string("{"), line); + count++; + }else{ + // { -> } + flag = true; + i = j+1; + } + }else if(src[j] == '}'){ + // look at next char + if(j+1 < src.size && src[j+1] == '}'){ + // }} -> } + j++; + ctx->emit_(OP_LOAD_CONST, ctx->add_const_string("}"), line); + count++; + }else{ + // } -> error + // throw std::runtime_error("f-string: unexpected }"); + // just ignore + } + }else{ + // literal + i = j; + while(j < src.size && src[j] != '{' && src[j] != '}') j++; + Str literal = src.substr(i, j-i); + ctx->emit_(OP_LOAD_CONST, ctx->add_const_string(literal.sv()), line); + count++; + continue; // skip j++ + } + } + j++; + } + + if(flag){ + // literal + Str literal = src.substr(i, src.size-i); + ctx->emit_(OP_LOAD_CONST, ctx->add_const_string(literal.sv()), line); + count++; + } + + ctx->emit_(OP_BUILD_STRING, count, line); + } + + + void SubscrExpr::emit_(CodeEmitContext* ctx){ + a->emit_(ctx); + b->emit_(ctx); + ctx->emit_(OP_LOAD_SUBSCR, BC_NOARG, line); + } + + bool SubscrExpr::emit_del(CodeEmitContext* ctx){ + a->emit_(ctx); + b->emit_(ctx); + ctx->emit_(OP_DELETE_SUBSCR, BC_NOARG, line); + return true; + } + + bool SubscrExpr::emit_store(CodeEmitContext* ctx){ + a->emit_(ctx); + b->emit_(ctx); + ctx->emit_(OP_STORE_SUBSCR, BC_NOARG, line); + return true; + } + + void AttribExpr::emit_(CodeEmitContext* ctx){ + a->emit_(ctx); + ctx->emit_(OP_LOAD_ATTR, b.index, line); + } + + bool AttribExpr::emit_del(CodeEmitContext* ctx) { + a->emit_(ctx); + ctx->emit_(OP_DELETE_ATTR, b.index, line); + return true; + } + + bool AttribExpr::emit_store(CodeEmitContext* ctx){ + a->emit_(ctx); + ctx->emit_(OP_STORE_ATTR, b.index, line); + return true; + } + + void AttribExpr::emit_method(CodeEmitContext* ctx) { + a->emit_(ctx); + ctx->emit_(OP_LOAD_METHOD, b.index, line); + } + + void CallExpr::emit_(CodeEmitContext* ctx) { + bool vargs = false; + bool vkwargs = false; + for(auto& arg: args) if(arg->is_starred()) vargs = true; + for(auto& item: kwargs) if(item.second->is_starred()) vkwargs = true; + + // if callable is a AttrExpr, we should try to use `fast_call` instead of use `boundmethod` proxy + if(callable->is_attrib()){ + auto p = static_cast(callable.get()); + p->emit_method(ctx); // OP_LOAD_METHOD + }else{ + callable->emit_(ctx); + ctx->emit_(OP_LOAD_NULL, BC_NOARG, BC_KEEPLINE); + } + + if(vargs || vkwargs){ + for(auto& item: args) item->emit_(ctx); + ctx->emit_(OP_BUILD_TUPLE_UNPACK, (uint16_t)args.size(), line); + + if(!kwargs.empty()){ + for(auto& item: kwargs){ + if(item.second->is_starred()){ + PK_ASSERT(item.second->star_level() == 2) + item.second->emit_(ctx); + }else{ + // k=v + int index = ctx->add_const_string(item.first.sv()); + ctx->emit_(OP_LOAD_CONST, index, line); + item.second->emit_(ctx); + ctx->emit_(OP_BUILD_TUPLE, 2, line); + } + } + ctx->emit_(OP_BUILD_DICT_UNPACK, (int)kwargs.size(), line); + ctx->emit_(OP_CALL_TP, 1, line); + }else{ + ctx->emit_(OP_CALL_TP, 0, line); + } + }else{ + // vectorcall protocol + for(auto& item: args) item->emit_(ctx); + for(auto& item: kwargs){ + i64 _val = StrName(item.first.sv()).index; + ctx->emit_int(_val, line); + item.second->emit_(ctx); + } + int KWARGC = kwargs.size(); + int ARGC = args.size(); + ctx->emit_(OP_CALL, (KWARGC<<8)|ARGC, line); + } + } + + + bool BinaryExpr::is_compare() const { + switch(op){ + case TK("<"): case TK("<="): case TK("=="): + case TK("!="): case TK(">"): case TK(">="): return true; + default: return false; + } + } + + void BinaryExpr::_emit_compare(CodeEmitContext* ctx, pod_vector& jmps){ + if(lhs->is_compare()){ + static_cast(lhs.get())->_emit_compare(ctx, jmps); + }else{ + lhs->emit_(ctx); // [a] + } + rhs->emit_(ctx); // [a, b] + ctx->emit_(OP_DUP_TOP, BC_NOARG, line); // [a, b, b] + ctx->emit_(OP_ROT_THREE, BC_NOARG, line); // [b, a, b] + switch(op){ + case TK("<"): ctx->emit_(OP_COMPARE_LT, BC_NOARG, line); break; + case TK("<="): ctx->emit_(OP_COMPARE_LE, BC_NOARG, line); break; + case TK("=="): ctx->emit_(OP_COMPARE_EQ, BC_NOARG, line); break; + case TK("!="): ctx->emit_(OP_COMPARE_NE, BC_NOARG, line); break; + case TK(">"): ctx->emit_(OP_COMPARE_GT, BC_NOARG, line); break; + case TK(">="): ctx->emit_(OP_COMPARE_GE, BC_NOARG, line); break; + default: PK_UNREACHABLE() + } + // [b, RES] + int index = ctx->emit_(OP_SHORTCUT_IF_FALSE_OR_POP, BC_NOARG, line); + jmps.push_back(index); + } + + void BinaryExpr::emit_(CodeEmitContext* ctx) { + pod_vector jmps; + if(is_compare() && lhs->is_compare()){ + // (a < b) < c + static_cast(lhs.get())->_emit_compare(ctx, jmps); + // [b, RES] + }else{ + // (1 + 2) < c + lhs->emit_(ctx); + } + + rhs->emit_(ctx); + switch (op) { + case TK("+"): ctx->emit_(OP_BINARY_ADD, BC_NOARG, line); break; + case TK("-"): ctx->emit_(OP_BINARY_SUB, BC_NOARG, line); break; + case TK("*"): ctx->emit_(OP_BINARY_MUL, BC_NOARG, line); break; + case TK("/"): ctx->emit_(OP_BINARY_TRUEDIV, BC_NOARG, line); break; + case TK("//"): ctx->emit_(OP_BINARY_FLOORDIV, BC_NOARG, line); break; + case TK("%"): ctx->emit_(OP_BINARY_MOD, BC_NOARG, line); break; + case TK("**"): ctx->emit_(OP_BINARY_POW, BC_NOARG, line); break; + + case TK("<"): ctx->emit_(OP_COMPARE_LT, BC_NOARG, line); break; + case TK("<="): ctx->emit_(OP_COMPARE_LE, BC_NOARG, line); break; + case TK("=="): ctx->emit_(OP_COMPARE_EQ, BC_NOARG, line); break; + case TK("!="): ctx->emit_(OP_COMPARE_NE, BC_NOARG, line); break; + case TK(">"): ctx->emit_(OP_COMPARE_GT, BC_NOARG, line); break; + case TK(">="): ctx->emit_(OP_COMPARE_GE, BC_NOARG, line); break; + + case TK("in"): ctx->emit_(OP_CONTAINS_OP, 0, line); break; + case TK("not in"): ctx->emit_(OP_CONTAINS_OP, 1, line); break; + case TK("is"): ctx->emit_(OP_IS_OP, 0, line); break; + case TK("is not"): ctx->emit_(OP_IS_OP, 1, line); break; + + case TK("<<"): ctx->emit_(OP_BITWISE_LSHIFT, BC_NOARG, line); break; + case TK(">>"): ctx->emit_(OP_BITWISE_RSHIFT, BC_NOARG, line); break; + case TK("&"): ctx->emit_(OP_BITWISE_AND, BC_NOARG, line); break; + case TK("|"): ctx->emit_(OP_BITWISE_OR, BC_NOARG, line); break; + case TK("^"): ctx->emit_(OP_BITWISE_XOR, BC_NOARG, line); break; + + case TK("@"): ctx->emit_(OP_BINARY_MATMUL, BC_NOARG, line); break; + default: PK_FATAL_ERROR(); + } + + for(int i: jmps) ctx->patch_jump(i); + } + + void TernaryExpr::emit_(CodeEmitContext* ctx){ + cond->emit_(ctx); + int patch = ctx->emit_(OP_POP_JUMP_IF_FALSE, BC_NOARG, cond->line); + true_expr->emit_(ctx); + int patch_2 = ctx->emit_(OP_JUMP_ABSOLUTE, BC_NOARG, true_expr->line); + ctx->patch_jump(patch); + false_expr->emit_(ctx); + ctx->patch_jump(patch_2); + } + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/frame.cpp b/dependencies/pocketpy/src/frame.cpp new file mode 100644 index 0000000..e5b6300 --- /dev/null +++ b/dependencies/pocketpy/src/frame.cpp @@ -0,0 +1,67 @@ +#include "pocketpy/frame.h" + +namespace pkpy{ + PyObject** FastLocals::try_get_name(StrName name){ + int index = co->varnames_inv.try_get(name); + if(index == -1) return nullptr; + return &a[index]; + } + + NameDict_ FastLocals::to_namedict(){ + NameDict_ dict = std::make_shared(); + co->varnames_inv.apply([&](StrName name, int index){ + PyObject* value = a[index]; + if(value != PY_NULL) dict->set(name, value); + }); + return dict; + } + + PyObject* Frame::f_closure_try_get(StrName name){ + if(_callable == nullptr) return nullptr; + Function& fn = PK_OBJ_GET(Function, _callable); + if(fn._closure == nullptr) return nullptr; + return fn._closure->try_get(name); + } + + bool Frame::jump_to_exception_handler(ValueStack* _s){ + // try to find a parent try block + int block = co->iblocks[_ip]; + while(block >= 0){ + if(co->blocks[block].type == CodeBlockType::TRY_EXCEPT) break; + block = co->blocks[block].parent; + } + if(block < 0) return false; + PyObject* obj = _s->popx(); // pop exception object + // get the stack size of the try block + int _stack_size = co->blocks[block].base_stack_size; + if(stack_size(_s) < _stack_size) throw std::runtime_error(_S("invalid state: ", stack_size(_s), '<', _stack_size).str()); + _s->reset(actual_sp_base() + _locals.size() + _stack_size); // rollback the stack + _s->push(obj); // push exception object + _next_ip = co->blocks[block].end; + return true; + } + + int Frame::_exit_block(ValueStack* _s, int i){ + auto type = co->blocks[i].type; + if(type==CodeBlockType::FOR_LOOP || type==CodeBlockType::CONTEXT_MANAGER) _s->pop(); + return co->blocks[i].parent; + } + + void Frame::jump_abs_break(ValueStack* _s, int target){ + int i = co->iblocks[_ip]; + _next_ip = target; + if(_next_ip >= co->codes.size()){ + while(i>=0) i = _exit_block(_s, i); + }else{ + // BUG (solved) + // for i in range(4): + // _ = 0 + // # if there is no op here, the block check will fail + // while i: --i + int next_block = co->iblocks[target]; + while(i>=0 && i!=next_block) i = _exit_block(_s, i); + if(i!=next_block) throw std::runtime_error("invalid jump"); + } + } + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/gc.cpp b/dependencies/pocketpy/src/gc.cpp new file mode 100644 index 0000000..72eaecf --- /dev/null +++ b/dependencies/pocketpy/src/gc.cpp @@ -0,0 +1,68 @@ +#include "pocketpy/gc.h" + +namespace pkpy{ + + int ManagedHeap::sweep(){ + std::vector alive; + for(PyObject* obj: gen){ + if(obj->gc_marked){ + obj->gc_marked = false; + alive.push_back(obj); + }else{ +#if PK_DEBUG_GC_STATS + deleted[obj->type] += 1; +#endif + if(_gc_on_delete) _gc_on_delete(vm, obj); + obj->~PyObject(); + pool64_dealloc(obj); + } + } + + // clear _no_gc marked flag + for(PyObject* obj: _no_gc) obj->gc_marked = false; + + int freed = gen.size() - alive.size(); + +#if PK_DEBUG_GC_STATS + for(auto& [type, count]: deleted){ + std::cout << "GC: " << _type_name(vm, type).sv() << "=" << count << std::endl; + } + std::cout << "GC: " << alive.size() << "/" << gen.size() << " (" << freed << " freed)" << std::endl; + deleted.clear(); +#endif + gen.clear(); + gen.swap(alive); + // clean up pools + pools_shrink_to_fit(); + return freed; + } + + void ManagedHeap::_auto_collect(){ +#if !PK_DEBUG_NO_AUTO_GC + if(_gc_lock_counter > 0) return; + gc_counter = 0; + collect(); + gc_threshold = gen.size() * 2; + if(gc_threshold < PK_GC_MIN_THRESHOLD) gc_threshold = PK_GC_MIN_THRESHOLD; +#endif + } + + int ManagedHeap::collect(){ + PK_ASSERT(_gc_lock_counter == 0) + mark(); + int freed = sweep(); + return freed; + } + + ManagedHeap::~ManagedHeap(){ + for(PyObject* obj: _no_gc) { obj->~PyObject(); pool64_dealloc(obj); } + for(PyObject* obj: gen) { obj->~PyObject(); pool64_dealloc(obj); } + } + + +void FuncDecl::_gc_mark() const{ + code->_gc_mark(); + for(int i=0; i +#include +#endif + +namespace pkpy{ + +#if PK_ENABLE_OS + +struct FileIO { + PY_CLASS(FileIO, io, FileIO) + + FILE* fp; + bool is_text; + + FileIO(VM* vm, const Str& file, const Str& mode); + void close(); + static void _register(VM* vm, PyObject* mod, PyObject* type); +}; + +static FILE* io_fopen(const char* name, const char* mode){ +#if _MSC_VER + FILE* fp; + errno_t err = fopen_s(&fp, name, mode); + if(err != 0) return nullptr; + return fp; +#else + return fopen(name, mode); +#endif +} + +static size_t io_fread(void* buffer, size_t size, size_t count, FILE* fp){ +#if _MSC_VER + return fread_s(buffer, std::numeric_limits::max(), size, count, fp); +#else + return fread(buffer, size, count, fp); +#endif +} + +unsigned char* _default_import_handler(const char* name_p, int name_size, int* out_size){ + std::string name(name_p, name_size); + bool exists = std::filesystem::exists(std::filesystem::path(name)); + if(!exists) return nullptr; + FILE* fp = io_fopen(name.c_str(), "rb"); + if(!fp) return nullptr; + fseek(fp, 0, SEEK_END); + int buffer_size = ftell(fp); + unsigned char* buffer = new unsigned char[buffer_size]; + fseek(fp, 0, SEEK_SET); + size_t sz = io_fread(buffer, 1, buffer_size, fp); + (void)sz; // suppress warning + fclose(fp); + *out_size = buffer_size; + return buffer; +}; + +void FileIO::_register(VM* vm, PyObject* mod, PyObject* type){ + vm->bind_constructor<3>(type, [](VM* vm, ArgsView args){ + Type cls = PK_OBJ_GET(Type, args[0]); + return vm->heap.gcnew(cls, vm, + py_cast(vm, args[1]), + py_cast(vm, args[2])); + }); + + vm->bind(type, "read(self, size=-1)", [](VM* vm, ArgsView args){ + FileIO& io = PK_OBJ_GET(FileIO, args[0]); + i64 size = CAST(i64, args[1]); + i64 buffer_size; + if(size < 0){ + long current = ftell(io.fp); + fseek(io.fp, 0, SEEK_END); + buffer_size = ftell(io.fp); + fseek(io.fp, current, SEEK_SET); + }else{ + buffer_size = size; + } + unsigned char* buffer = new unsigned char[buffer_size]; + i64 actual_size = io_fread(buffer, 1, buffer_size, io.fp); + PK_ASSERT(actual_size <= buffer_size); + // in text mode, CR may be dropped, which may cause `actual_size < buffer_size` + Bytes b(buffer, actual_size); + if(io.is_text) return VAR(b.str()); + return VAR(std::move(b)); + }); + + vm->bind_method<1>(type, "write", [](VM* vm, ArgsView args){ + FileIO& io = PK_OBJ_GET(FileIO, args[0]); + if(io.is_text){ + Str& s = CAST(Str&, args[1]); + fwrite(s.data, 1, s.length(), io.fp); + }else{ + Bytes& buffer = CAST(Bytes&, args[1]); + fwrite(buffer.data(), 1, buffer.size(), io.fp); + } + return vm->None; + }); + + vm->bind_method<0>(type, "tell", [](VM* vm, ArgsView args){ + FileIO& io = PK_OBJ_GET(FileIO, args[0]); + long pos = ftell(io.fp); + if(pos == -1) vm->IOError(strerror(errno)); + return VAR(pos); + }); + + vm->bind_method<2>(type, "seek", [](VM* vm, ArgsView args){ + FileIO& io = PK_OBJ_GET(FileIO, args[0]); + long offset = CAST(long, args[1]); + int whence = CAST(int, args[2]); + int ret = fseek(io.fp, offset, whence); + if(ret != 0) vm->IOError(strerror(errno)); + return vm->None; + }); + + vm->bind_method<0>(type, "close", [](VM* vm, ArgsView args){ + FileIO& io = PK_OBJ_GET(FileIO, args[0]); + io.close(); + return vm->None; + }); + + vm->bind_method<0>(type, "__exit__", [](VM* vm, ArgsView args){ + FileIO& io = PK_OBJ_GET(FileIO, args[0]); + io.close(); + return vm->None; + }); + + vm->bind_method<0>(type, "__enter__", PK_LAMBDA(args[0])); +} + +FileIO::FileIO(VM* vm, const Str& file, const Str& mode){ + this->is_text = mode.sv().find("b") == std::string::npos; + fp = io_fopen(file.c_str(), mode.c_str()); + if(!fp) vm->IOError(strerror(errno)); +} + +void FileIO::close(){ + if(fp == nullptr) return; + fclose(fp); + fp = nullptr; +} + +void add_module_io(VM* vm){ + PyObject* mod = vm->new_module("io"); + FileIO::register_class(vm, mod); + + mod->attr().set("SEEK_SET", VAR(SEEK_SET)); + mod->attr().set("SEEK_CUR", VAR(SEEK_CUR)); + mod->attr().set("SEEK_END", VAR(SEEK_END)); + + vm->bind(vm->builtins, "open(path, mode='r')", [](VM* vm, ArgsView args){ + PK_LOCAL_STATIC StrName m_io("io"); + PK_LOCAL_STATIC StrName m_FileIO("FileIO"); + return vm->call(vm->_modules[m_io]->attr(m_FileIO), args[0], args[1]); + }); +} + +void add_module_os(VM* vm){ + PyObject* mod = vm->new_module("os"); + PyObject* path_obj = vm->heap.gcnew(vm->tp_object); + mod->attr().set("path", path_obj); + + // Working directory is shared by all VMs!! + vm->bind_func<0>(mod, "getcwd", [](VM* vm, ArgsView args){ + return VAR(std::filesystem::current_path().string()); + }); + + vm->bind_func<1>(mod, "chdir", [](VM* vm, ArgsView args){ + std::filesystem::path path(CAST(Str&, args[0]).sv()); + std::filesystem::current_path(path); + return vm->None; + }); + + vm->bind_func<1>(mod, "listdir", [](VM* vm, ArgsView args){ + std::filesystem::path path(CAST(Str&, args[0]).sv()); + std::filesystem::directory_iterator di; + try{ + di = std::filesystem::directory_iterator(path); + }catch(std::filesystem::filesystem_error&){ + vm->IOError(path.string()); + } + List ret; + for(auto& p: di) ret.push_back(VAR(p.path().filename().string())); + return VAR(ret); + }); + + vm->bind_func<1>(mod, "remove", [](VM* vm, ArgsView args){ + std::filesystem::path path(CAST(Str&, args[0]).sv()); + bool ok = std::filesystem::remove(path); + if(!ok) vm->IOError("operation failed"); + return vm->None; + }); + + vm->bind_func<1>(mod, "mkdir", [](VM* vm, ArgsView args){ + std::filesystem::path path(CAST(Str&, args[0]).sv()); + bool ok = std::filesystem::create_directory(path); + if(!ok) vm->IOError("operation failed"); + return vm->None; + }); + + vm->bind_func<1>(mod, "rmdir", [](VM* vm, ArgsView args){ + std::filesystem::path path(CAST(Str&, args[0]).sv()); + bool ok = std::filesystem::remove(path); + if(!ok) vm->IOError("operation failed"); + return vm->None; + }); + + vm->bind_func<-1>(path_obj, "join", [](VM* vm, ArgsView args){ + std::filesystem::path path; + for(int i=0; ibind_func<1>(path_obj, "exists", [](VM* vm, ArgsView args){ + std::filesystem::path path(CAST(Str&, args[0]).sv()); + bool exists = std::filesystem::exists(path); + return VAR(exists); + }); + + vm->bind_func<1>(path_obj, "basename", [](VM* vm, ArgsView args){ + std::filesystem::path path(CAST(Str&, args[0]).sv()); + return VAR(path.filename().string()); + }); + + vm->bind_func<1>(path_obj, "isdir", [](VM* vm, ArgsView args){ + std::filesystem::path path(CAST(Str&, args[0]).sv()); + bool isdir = std::filesystem::is_directory(path); + return VAR(isdir); + }); + + vm->bind_func<1>(path_obj, "isfile", [](VM* vm, ArgsView args){ + std::filesystem::path path(CAST(Str&, args[0]).sv()); + bool isfile = std::filesystem::is_regular_file(path); + return VAR(isfile); + }); + + vm->bind_func<1>(path_obj, "abspath", [](VM* vm, ArgsView args){ + std::filesystem::path path(CAST(Str&, args[0]).sv()); + return VAR(std::filesystem::absolute(path).string()); + }); +} +#else + +void add_module_io(VM* vm){} +void add_module_os(VM* vm){} +unsigned char* _default_import_handler(const char* name_p, int name_size, int* out_size){ + return nullptr; +} + +#endif + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/iter.cpp b/dependencies/pocketpy/src/iter.cpp new file mode 100644 index 0000000..3f2d6be --- /dev/null +++ b/dependencies/pocketpy/src/iter.cpp @@ -0,0 +1,94 @@ +#include "pocketpy/iter.h" + +namespace pkpy{ + + void RangeIter::_register(VM* vm, PyObject* mod, PyObject* type){ + vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false; + vm->bind_notimplemented_constructor(type); + vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ return obj; }); + vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ + RangeIter& self = PK_OBJ_GET(RangeIter, obj); + if(self.r.step > 0){ + if(self.current >= self.r.stop) return vm->StopIteration; + }else{ + if(self.current <= self.r.stop) return vm->StopIteration; + } + PyObject* ret = VAR(self.current); + self.current += self.r.step; + return ret; + }); + } + + void ArrayIter::_register(VM* vm, PyObject* mod, PyObject* type){ + vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false; + vm->bind_notimplemented_constructor(type); + vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ return obj; }); + vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ + ArrayIter& self = _CAST(ArrayIter&, obj); + if(self.current == self.end) return vm->StopIteration; + return *self.current++; + }); + } + + void StringIter::_register(VM* vm, PyObject* mod, PyObject* type){ + vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false; + vm->bind_notimplemented_constructor(type); + vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ return obj; }); + vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ + StringIter& self = _CAST(StringIter&, obj); + if(self.index == self.str->size) return vm->StopIteration; + int start = self.index; + int len = utf8len(self.str->data[self.index]); + self.index += len; + return VAR(self.str->substr(start, len)); + }); + } + + PyObject* Generator::next(VM* vm){ + if(state == 2) return vm->StopIteration; + // reset frame._sp_base + frame._sp_base = vm->s_data._sp; + frame._locals.a = vm->s_data._sp; + // restore the context + for(PyObject* obj: s_backup) vm->s_data.push(obj); + s_backup.clear(); + vm->callstack.emplace(std::move(frame)); + + PyObject* ret; + try{ + ret = vm->_run_top_frame(); + }catch(...){ + state = 2; // end this generator immediately when an exception is thrown + throw; + } + + if(ret == PY_OP_YIELD){ + // backup the context + frame = std::move(vm->callstack.top()); + ret = vm->s_data.popx(); + for(PyObject* obj: frame.stack_view(&vm->s_data)) s_backup.push_back(obj); + vm->_pop_frame(); + state = 1; + if(ret == vm->StopIteration) state = 2; + return ret; + }else{ + state = 2; + return vm->StopIteration; + } + } + + void Generator::_register(VM* vm, PyObject* mod, PyObject* type){ + vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false; + vm->bind_notimplemented_constructor(type); + vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ return obj; }); + vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ + Generator& self = _CAST(Generator&, obj); + return self.next(vm); + }); + } + +PyObject* VM::_py_generator(Frame&& frame, ArgsView buffer){ + return VAR_T(Generator, std::move(frame), buffer); +} + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/lexer.cpp b/dependencies/pocketpy/src/lexer.cpp new file mode 100644 index 0000000..918dec4 --- /dev/null +++ b/dependencies/pocketpy/src/lexer.cpp @@ -0,0 +1,574 @@ +#include "pocketpy/lexer.h" + +namespace pkpy{ + + +const uint32_t kLoRangeA[] = {170,186,443,448,660,1488,1519,1568,1601,1646,1649,1749,1774,1786,1791,1808,1810,1869,1969,1994,2048,2112,2144,2208,2230,2308,2365,2384,2392,2418,2437,2447,2451,2474,2482,2486,2493,2510,2524,2527,2544,2556,2565,2575,2579,2602,2610,2613,2616,2649,2654,2674,2693,2703,2707,2730,2738,2741,2749,2768,2784,2809,2821,2831,2835,2858,2866,2869,2877,2908,2911,2929,2947,2949,2958,2962,2969,2972,2974,2979,2984,2990,3024,3077,3086,3090,3114,3133,3160,3168,3200,3205,3214,3218,3242,3253,3261,3294,3296,3313,3333,3342,3346,3389,3406,3412,3423,3450,3461,3482,3507,3517,3520,3585,3634,3648,3713,3716,3718,3724,3749,3751,3762,3773,3776,3804,3840,3904,3913,3976,4096,4159,4176,4186,4193,4197,4206,4213,4238,4352,4682,4688,4696,4698,4704,4746,4752,4786,4792,4800,4802,4808,4824,4882,4888,4992,5121,5743,5761,5792,5873,5888,5902,5920,5952,5984,5998,6016,6108,6176,6212,6272,6279,6314,6320,6400,6480,6512,6528,6576,6656,6688,6917,6981,7043,7086,7098,7168,7245,7258,7401,7406,7413,7418,8501,11568,11648,11680,11688,11696,11704,11712,11720,11728,11736,12294,12348,12353,12447,12449,12543,12549,12593,12704,12784,13312,19968,40960,40982,42192,42240,42512,42538,42606,42656,42895,42999,43003,43011,43015,43020,43072,43138,43250,43259,43261,43274,43312,43360,43396,43488,43495,43514,43520,43584,43588,43616,43633,43642,43646,43697,43701,43705,43712,43714,43739,43744,43762,43777,43785,43793,43808,43816,43968,44032,55216,55243,63744,64112,64285,64287,64298,64312,64318,64320,64323,64326,64467,64848,64914,65008,65136,65142,65382,65393,65440,65474,65482,65490,65498,65536,65549,65576,65596,65599,65616,65664,66176,66208,66304,66349,66370,66384,66432,66464,66504,66640,66816,66864,67072,67392,67424,67584,67592,67594,67639,67644,67647,67680,67712,67808,67828,67840,67872,67968,68030,68096,68112,68117,68121,68192,68224,68288,68297,68352,68416,68448,68480,68608,68864,69376,69415,69424,69600,69635,69763,69840,69891,69956,69968,70006,70019,70081,70106,70108,70144,70163,70272,70280,70282,70287,70303,70320,70405,70415,70419,70442,70450,70453,70461,70480,70493,70656,70727,70751,70784,70852,70855,71040,71128,71168,71236,71296,71352,71424,71680,71935,72096,72106,72161,72163,72192,72203,72250,72272,72284,72349,72384,72704,72714,72768,72818,72960,72968,72971,73030,73056,73063,73066,73112,73440,73728,74880,77824,82944,92160,92736,92880,92928,93027,93053,93952,94032,94208,100352,110592,110928,110948,110960,113664,113776,113792,113808,123136,123214,123584,124928,126464,126469,126497,126500,126503,126505,126516,126521,126523,126530,126535,126537,126539,126541,126545,126548,126551,126553,126555,126557,126559,126561,126564,126567,126572,126580,126585,126590,126592,126603,126625,126629,126635,131072,173824,177984,178208,183984,194560}; +const uint32_t kLoRangeB[] = {170,186,443,451,660,1514,1522,1599,1610,1647,1747,1749,1775,1788,1791,1808,1839,1957,1969,2026,2069,2136,2154,2228,2237,2361,2365,2384,2401,2432,2444,2448,2472,2480,2482,2489,2493,2510,2525,2529,2545,2556,2570,2576,2600,2608,2611,2614,2617,2652,2654,2676,2701,2705,2728,2736,2739,2745,2749,2768,2785,2809,2828,2832,2856,2864,2867,2873,2877,2909,2913,2929,2947,2954,2960,2965,2970,2972,2975,2980,2986,3001,3024,3084,3088,3112,3129,3133,3162,3169,3200,3212,3216,3240,3251,3257,3261,3294,3297,3314,3340,3344,3386,3389,3406,3414,3425,3455,3478,3505,3515,3517,3526,3632,3635,3653,3714,3716,3722,3747,3749,3760,3763,3773,3780,3807,3840,3911,3948,3980,4138,4159,4181,4189,4193,4198,4208,4225,4238,4680,4685,4694,4696,4701,4744,4749,4784,4789,4798,4800,4805,4822,4880,4885,4954,5007,5740,5759,5786,5866,5880,5900,5905,5937,5969,5996,6000,6067,6108,6210,6264,6276,6312,6314,6389,6430,6509,6516,6571,6601,6678,6740,6963,6987,7072,7087,7141,7203,7247,7287,7404,7411,7414,7418,8504,11623,11670,11686,11694,11702,11710,11718,11726,11734,11742,12294,12348,12438,12447,12538,12543,12591,12686,12730,12799,19893,40943,40980,42124,42231,42507,42527,42539,42606,42725,42895,42999,43009,43013,43018,43042,43123,43187,43255,43259,43262,43301,43334,43388,43442,43492,43503,43518,43560,43586,43595,43631,43638,43642,43695,43697,43702,43709,43712,43714,43740,43754,43762,43782,43790,43798,43814,43822,44002,55203,55238,55291,64109,64217,64285,64296,64310,64316,64318,64321,64324,64433,64829,64911,64967,65019,65140,65276,65391,65437,65470,65479,65487,65495,65500,65547,65574,65594,65597,65613,65629,65786,66204,66256,66335,66368,66377,66421,66461,66499,66511,66717,66855,66915,67382,67413,67431,67589,67592,67637,67640,67644,67669,67702,67742,67826,67829,67861,67897,68023,68031,68096,68115,68119,68149,68220,68252,68295,68324,68405,68437,68466,68497,68680,68899,69404,69415,69445,69622,69687,69807,69864,69926,69956,70002,70006,70066,70084,70106,70108,70161,70187,70278,70280,70285,70301,70312,70366,70412,70416,70440,70448,70451,70457,70461,70480,70497,70708,70730,70751,70831,70853,70855,71086,71131,71215,71236,71338,71352,71450,71723,71935,72103,72144,72161,72163,72192,72242,72250,72272,72329,72349,72440,72712,72750,72768,72847,72966,72969,73008,73030,73061,73064,73097,73112,73458,74649,75075,78894,83526,92728,92766,92909,92975,93047,93071,94026,94032,100343,101106,110878,110930,110951,111355,113770,113788,113800,113817,123180,123214,123627,125124,126467,126495,126498,126500,126503,126514,126519,126521,126523,126530,126535,126537,126539,126543,126546,126548,126551,126553,126555,126557,126559,126562,126564,126570,126578,126583,126588,126590,126601,126619,126627,126633,126651,173782,177972,178205,183969,191456,195101}; + +std::set kValidChars = { + '0','1','2','3','4','5','6','7','8','9', + // a-f + 'a','b','c','d','e','f', + // A-Z + 'A','B','C','D','E','F', + // other valid chars + '.', 'L', 'x', 'b', 'o', 'j' +}; + +static bool is_unicode_Lo_char(uint32_t c) { + // open a hole for carrot + if(c == U'🥕') return true; + auto index = std::lower_bound(kLoRangeA, kLoRangeA + 476, c) - kLoRangeA; + if(c == kLoRangeA[index]) return true; + index -= 1; + if(index < 0) return false; + return c >= kLoRangeA[index] && c <= kLoRangeB[index]; +} + + bool Lexer::match_n_chars(int n, char c0){ + const char* c = curr_char; + for(int i=0; i 0) return true; + int spaces = eat_spaces(); + if(peekchar() == '#') skip_line_comment(); + if(peekchar() == '\0' || peekchar() == '\n') return true; + // https://docs.python.org/3/reference/lexical_analysis.html#indentation + if(spaces > indents.top()){ + indents.push(spaces); + nexts.push_back(Token{TK("@indent"), token_start, 0, current_line, brackets_level, {}}); + } else if(spaces < indents.top()){ + while(spaces < indents.top()){ + indents.pop(); + nexts.push_back(Token{TK("@dedent"), token_start, 0, current_line, brackets_level, {}}); + } + if(spaces != indents.top()){ + return false; + } + } + return true; + } + + char Lexer::eatchar() { + char c = peekchar(); + if(c == '\n') throw std::runtime_error("eatchar() cannot consume a newline"); + curr_char++; + return c; + } + + char Lexer::eatchar_include_newline() { + char c = peekchar(); + curr_char++; + if (c == '\n'){ + current_line++; + src->line_starts.push_back(curr_char); + } + return c; + } + + int Lexer::eat_name() { + curr_char--; + while(true){ + unsigned char c = peekchar(); + int u8bytes = utf8len(c, true); + if(u8bytes == 0) return 1; + if(u8bytes == 1){ + if(isalpha(c) || c=='_' || isdigit(c)) { + curr_char++; + continue; + }else{ + break; + } + } + // handle multibyte char + Str u8str(curr_char, u8bytes); + if(u8str.size != u8bytes) return 2; + uint32_t value = 0; + for(int k=0; k < u8bytes; k++){ + uint8_t b = u8str[k]; + if(k==0){ + if(u8bytes == 2) value = (b & 0b00011111) << 6; + else if(u8bytes == 3) value = (b & 0b00001111) << 12; + else if(u8bytes == 4) value = (b & 0b00000111) << 18; + }else{ + value |= (b & 0b00111111) << (6*(u8bytes-k-1)); + } + } + if(is_unicode_Lo_char(value)) curr_char += u8bytes; + else break; + } + + int length = (int)(curr_char - token_start); + if(length == 0) return 3; + std::string_view name(token_start, length); + + if(src->mode == JSON_MODE){ + if(name == "true"){ + add_token(TK("True")); + } else if(name == "false"){ + add_token(TK("False")); + } else if(name == "null"){ + add_token(TK("None")); + } else { + return 4; + } + return 0; + } + + if(kTokenKwMap.count(name)){ + add_token(kTokenKwMap.at(name)); + } else { + add_token(TK("@id")); + } + return 0; + } + + void Lexer::skip_line_comment() { + char c; + while ((c = peekchar()) != '\0') { + if (c == '\n') return; + eatchar(); + } + } + + bool Lexer::matchchar(char c) { + if (peekchar() != c) return false; + eatchar_include_newline(); + return true; + } + + void Lexer::add_token(TokenIndex type, TokenValue value) { + switch(type){ + case TK("{"): case TK("["): case TK("("): brackets_level++; break; + case TK(")"): case TK("]"): case TK("}"): brackets_level--; break; + } + auto token = Token{ + type, + token_start, + (int)(curr_char - token_start), + current_line - ((type == TK("@eol")) ? 1 : 0), + brackets_level, + value + }; + // handle "not in", "is not", "yield from" + if(!nexts.empty()){ + auto& back = nexts.back(); + if(back.type == TK("not") && type == TK("in")){ + back.type = TK("not in"); + return; + } + if(back.type == TK("is") && type == TK("not")){ + back.type = TK("is not"); + return; + } + if(back.type == TK("yield") && type == TK("from")){ + back.type = TK("yield from"); + return; + } + nexts.push_back(token); + } + } + + void Lexer::add_token_2(char c, TokenIndex one, TokenIndex two) { + if (matchchar(c)) add_token(two); + else add_token(one); + } + + Str Lexer::eat_string_until(char quote, bool raw) { + bool quote3 = match_n_chars(2, quote); + pod_vector buff; + while (true) { + char c = eatchar_include_newline(); + if (c == quote){ + if(quote3 && !match_n_chars(2, quote)){ + buff.push_back(c); + continue; + } + break; + } + if (c == '\0'){ + if(quote3 && src->mode == REPL_MODE){ + throw NeedMoreLines(false); + } + SyntaxError("EOL while scanning string literal"); + } + if (c == '\n'){ + if(!quote3) SyntaxError("EOL while scanning string literal"); + else{ + buff.push_back(c); + continue; + } + } + if (!raw && c == '\\') { + switch (eatchar_include_newline()) { + case '"': buff.push_back('"'); break; + case '\'': buff.push_back('\''); break; + case '\\': buff.push_back('\\'); break; + case 'n': buff.push_back('\n'); break; + case 'r': buff.push_back('\r'); break; + case 't': buff.push_back('\t'); break; + case 'b': buff.push_back('\b'); break; + case 'x': { + char hex[3] = {eatchar(), eatchar(), '\0'}; + size_t parsed; + char code; + try{ + code = (char)std::stoi(hex, &parsed, 16); + }catch(...){ + SyntaxError("invalid hex char"); + } + if (parsed != 2) SyntaxError("invalid hex char"); + buff.push_back(code); + } break; + default: SyntaxError("invalid escape char"); + } + } else { + buff.push_back(c); + } + } + return Str(buff.data(), buff.size()); + } + + void Lexer::eat_string(char quote, StringType type) { + Str s = eat_string_until(quote, type == RAW_STRING); + if(type == F_STRING){ + add_token(TK("@fstr"), s); + return; + } + if(type == NORMAL_BYTES){ + add_token(TK("@bytes"), s); + return; + } + add_token(TK("@str"), s); + } + + void Lexer::eat_number() { + const char* i = token_start; + while(kValidChars.count(*i)) i++; + + bool is_scientific_notation = false; + if(*(i-1) == 'e' && (*i == '+' || *i == '-')){ + i++; + while(isdigit(*i) || *i=='j') i++; + is_scientific_notation = true; + } + + std::string_view text(token_start, i - token_start); + this->curr_char = i; + + if(text[0] != '.' && !is_scientific_notation){ + // try long + if(i[-1] == 'L'){ + add_token(TK("@long")); + return; + } + // try integer + i64 int_out; + switch(parse_uint(text, &int_out, -1)){ + case IntParsingResult::Success: + add_token(TK("@num"), int_out); + return; + case IntParsingResult::Overflow: + SyntaxError("int literal is too large"); + return; + case IntParsingResult::Failure: + break; // do nothing + } + } + + // try float + double float_out; + char* p_end; + try{ + float_out = std::strtod(text.data(), &p_end); + }catch(...){ + SyntaxError("invalid number literal"); + } + + if(p_end == text.data() + text.size()){ + add_token(TK("@num"), (f64)float_out); + return; + } + + if(i[-1] == 'j' && p_end == text.data() + text.size() - 1){ + add_token(TK("@imag"), (f64)float_out); + return; + } + + SyntaxError("invalid number literal"); + } + + bool Lexer::lex_one_token() { + while (peekchar() != '\0') { + token_start = curr_char; + char c = eatchar_include_newline(); + switch (c) { + case '\'': case '"': eat_string(c, NORMAL_STRING); return true; + case '#': skip_line_comment(); break; + case '~': add_token(TK("~")); return true; + case '{': add_token(TK("{")); return true; + case '}': add_token(TK("}")); return true; + case ',': add_token(TK(",")); return true; + case ':': add_token(TK(":")); return true; + case ';': add_token(TK(";")); return true; + case '(': add_token(TK("(")); return true; + case ')': add_token(TK(")")); return true; + case '[': add_token(TK("[")); return true; + case ']': add_token(TK("]")); return true; + case '@': add_token(TK("@")); return true; + case '\\': { + // line continuation character + char c = eatchar_include_newline(); + if (c != '\n'){ + if(src->mode == REPL_MODE && c == '\0') throw NeedMoreLines(false); + SyntaxError("expected newline after line continuation character"); + } + eat_spaces(); + return true; + } + case '%': add_token_2('=', TK("%"), TK("%=")); return true; + case '&': add_token_2('=', TK("&"), TK("&=")); return true; + case '|': add_token_2('=', TK("|"), TK("|=")); return true; + case '^': add_token_2('=', TK("^"), TK("^=")); return true; + case '.': { + if(matchchar('.')) { + if(matchchar('.')) { + add_token(TK("...")); + } else { + add_token(TK("..")); + } + } else { + char next_char = peekchar(); + if(next_char >= '0' && next_char <= '9'){ + eat_number(); + }else{ + add_token(TK(".")); + } + } + return true; + } + case '=': add_token_2('=', TK("="), TK("==")); return true; + case '+': + if(matchchar('+')){ + add_token(TK("++")); + }else{ + add_token_2('=', TK("+"), TK("+=")); + } + return true; + case '>': { + if(matchchar('=')) add_token(TK(">=")); + else if(matchchar('>')) add_token_2('=', TK(">>"), TK(">>=")); + else add_token(TK(">")); + return true; + } + case '<': { + if(matchchar('=')) add_token(TK("<=")); + else if(matchchar('<')) add_token_2('=', TK("<<"), TK("<<=")); + else add_token(TK("<")); + return true; + } + case '-': { + if(matchchar('-')){ + add_token(TK("--")); + }else{ + if(matchchar('=')) add_token(TK("-=")); + else if(matchchar('>')) add_token(TK("->")); + else add_token(TK("-")); + } + return true; + } + case '!': + if(matchchar('=')) add_token(TK("!=")); + else SyntaxError("expected '=' after '!'"); + break; + case '*': + if (matchchar('*')) { + add_token(TK("**")); // '**' + } else { + add_token_2('=', TK("*"), TK("*=")); + } + return true; + case '/': + if(matchchar('/')) { + add_token_2('=', TK("//"), TK("//=")); + } else { + add_token_2('=', TK("/"), TK("/=")); + } + return true; + case ' ': case '\t': eat_spaces(); break; + case '\n': { + add_token(TK("@eol")); + if(!eat_indentation()) IndentationError("unindent does not match any outer indentation level"); + return true; + } + default: { + if(c == 'f'){ + if(matchchar('\'')) {eat_string('\'', F_STRING); return true;} + if(matchchar('"')) {eat_string('"', F_STRING); return true;} + }else if(c == 'r'){ + if(matchchar('\'')) {eat_string('\'', RAW_STRING); return true;} + if(matchchar('"')) {eat_string('"', RAW_STRING); return true;} + }else if(c == 'b'){ + if(matchchar('\'')) {eat_string('\'', NORMAL_BYTES); return true;} + if(matchchar('"')) {eat_string('"', NORMAL_BYTES); return true;} + } + if (c >= '0' && c <= '9') { + eat_number(); + return true; + } + switch (eat_name()) + { + case 0: break; + case 1: SyntaxError("invalid char: " + std::string(1, c)); break; + case 2: SyntaxError("invalid utf8 sequence: " + std::string(1, c)); break; + case 3: SyntaxError("@id contains invalid char"); break; + case 4: SyntaxError("invalid JSON token"); break; + default: PK_FATAL_ERROR(); + } + return true; + } + } + } + + token_start = curr_char; + while(indents.size() > 1){ + indents.pop(); + add_token(TK("@dedent")); + return true; + } + add_token(TK("@eof")); + return false; + } + + void Lexer::throw_err(StrName type, Str msg){ + int lineno = current_line; + const char* cursor = curr_char; + if(peekchar() == '\n'){ + lineno--; + cursor--; + } + throw_err(type, msg, lineno, cursor); + } + + Lexer::Lexer(VM* vm, std::shared_ptr src) : vm(vm), src(src) { + this->token_start = src->source.c_str(); + this->curr_char = src->source.c_str(); + this->nexts.push_back(Token{TK("@sof"), token_start, 0, current_line, brackets_level, {}}); + this->indents.push(0); + } + + std::vector Lexer::run() { + PK_ASSERT(curr_char == src->source.c_str()); + while (lex_one_token()); + return std::move(nexts); + } + +inline constexpr bool f_startswith_2(std::string_view t, const char* prefix){ + if(t.length() < 2) return false; + return t[0] == prefix[0] && t[1] == prefix[1]; +} + +IntParsingResult parse_uint(std::string_view text, i64* out, int base){ + *out = 0; + + if(base == -1){ + if(f_startswith_2(text, "0b")) base = 2; + else if(f_startswith_2(text, "0o")) base = 8; + else if(f_startswith_2(text, "0x")) base = 16; + else base = 10; + } + + if(base == 10){ + // 10-base 12334 + if(text.length() == 0) return IntParsingResult::Failure; + for(char c : text){ + if(c >= '0' && c <= '9'){ + i64 prev_out = *out; + *out = (*out * 10) + (c - '0'); + if(*out < prev_out) return IntParsingResult::Overflow; + }else{ + return IntParsingResult::Failure; + } + } + return IntParsingResult::Success; + }else if(base == 2){ + // 2-base 0b101010 + if(f_startswith_2(text, "0b")) text.remove_prefix(2); + if(text.length() == 0) return IntParsingResult::Failure; + for(char c : text){ + if(c == '0' || c == '1'){ + i64 prev_out = *out; + *out = (*out << 1) | (c - '0'); + if(*out < prev_out) return IntParsingResult::Overflow; + }else{ + return IntParsingResult::Failure; + } + } + return IntParsingResult::Success; + }else if(base == 8){ + // 8-base 0o123 + if(f_startswith_2(text, "0o")) text.remove_prefix(2); + if(text.length() == 0) return IntParsingResult::Failure; + for(char c : text){ + if(c >= '0' && c <= '7'){ + i64 prev_out = *out; + *out = (*out << 3) | (c - '0'); + if(*out < prev_out) return IntParsingResult::Overflow; + }else{ + return IntParsingResult::Failure; + } + } + return IntParsingResult::Success; + }else if(base == 16){ + // 16-base 0x123 + if(f_startswith_2(text, "0x")) text.remove_prefix(2); + if(text.length() == 0) return IntParsingResult::Failure; + for(char c : text){ + i64 prev_out = *out; + if(c >= '0' && c <= '9'){ + *out = (*out << 4) | (c - '0'); + if(*out < prev_out) return IntParsingResult::Overflow; + }else if(c >= 'a' && c <= 'f'){ + *out = (*out << 4) | (c - 'a' + 10); + if(*out < prev_out) return IntParsingResult::Overflow; + }else if(c >= 'A' && c <= 'F'){ + *out = (*out << 4) | (c - 'A' + 10); + if(*out < prev_out) return IntParsingResult::Overflow; + }else{ + return IntParsingResult::Failure; + } + } + return IntParsingResult::Success; + } + return IntParsingResult::Failure; +} + +} // namespace pkpy diff --git a/dependencies/pocketpy/src/linalg.cpp b/dependencies/pocketpy/src/linalg.cpp new file mode 100644 index 0000000..4ca2bbe --- /dev/null +++ b/dependencies/pocketpy/src/linalg.cpp @@ -0,0 +1,674 @@ +#include "pocketpy/linalg.h" + +namespace pkpy{ + +#define BIND_VEC_VEC_OP(D, name, op) \ + vm->bind##name(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ \ + Vec##D& self = _CAST(Vec##D&, _0); \ + Vec##D& other = CAST(Vec##D&, _1); \ + return VAR(self op other); \ + }); + +#define BIND_VEC_FLOAT_OP(D, name, op) \ + vm->bind##name(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ \ + Vec##D& self = _CAST(Vec##D&, _0); \ + f64 other = CAST(f64, _1); \ + return VAR(self op other); \ + }); + +#define BIND_VEC_FUNCTION_0(D, name) \ + vm->bind_method<0>(type, #name, [](VM* vm, ArgsView args){ \ + Vec##D& self = _CAST(Vec##D&, args[0]); \ + return VAR(self.name()); \ + }); + +#define BIND_VEC_FUNCTION_1(D, name) \ + vm->bind_method<1>(type, #name, [](VM* vm, ArgsView args){ \ + Vec##D& self = _CAST(Vec##D&, args[0]); \ + Vec##D& other = CAST(Vec##D&, args[1]); \ + return VAR(self.name(other)); \ + }); + +#define BIND_VEC_MUL_OP(D) \ + vm->bind__mul__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ \ + Vec##D& self = _CAST(Vec##D&, _0); \ + if(is_type(_1, Vec##D::_type(vm))){ \ + Vec##D& other = _CAST(Vec##D&, _1); \ + return VAR(self * other); \ + } \ + f64 other = CAST(f64, _1); \ + return VAR(self * other); \ + }); \ + vm->bind_method<1>(type, "__rmul__", [](VM* vm, ArgsView args){ \ + Vec##D& self = _CAST(Vec##D&, args[0]); \ + f64 other = CAST(f64, args[1]); \ + return VAR(self * other); \ + }); \ + vm->bind__truediv__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ \ + Vec##D& self = _CAST(Vec##D&, _0); \ + f64 other = CAST(f64, _1); \ + return VAR(self / other); \ + }); + +#define BIND_VEC_GETITEM(D) \ + vm->bind__getitem__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj, PyObject* index){ \ + Vec##D& self = _CAST(Vec##D&, obj); \ + i64 i = CAST(i64, index); \ + if(i < 0 || i >= D) vm->IndexError("index out of range"); \ + float* v = &self.x; \ + return VAR(v[i]); \ + }); + +// https://github.com/Unity-Technologies/UnityCsReference/blob/master/Runtime/Export/Math/Vector2.cs#L289 +static Vec2 SmoothDamp(Vec2 current, Vec2 target, Vec2& currentVelocity, float smoothTime, float maxSpeed, float deltaTime) +{ + // Based on Game Programming Gems 4 Chapter 1.10 + smoothTime = std::max(0.0001F, smoothTime); + float omega = 2.0F / smoothTime; + + float x = omega * deltaTime; + float exp = 1.0F / (1.0F + x + 0.48F * x * x + 0.235F * x * x * x); + + float change_x = current.x - target.x; + float change_y = current.y - target.y; + Vec2 originalTo = target; + + // Clamp maximum speed + float maxChange = maxSpeed * smoothTime; + + float maxChangeSq = maxChange * maxChange; + float sqDist = change_x * change_x + change_y * change_y; + if (sqDist > maxChangeSq) + { + float mag = std::sqrt(sqDist); + change_x = change_x / mag * maxChange; + change_y = change_y / mag * maxChange; + } + + target.x = current.x - change_x; + target.y = current.y - change_y; + + float temp_x = (currentVelocity.x + omega * change_x) * deltaTime; + float temp_y = (currentVelocity.y + omega * change_y) * deltaTime; + + currentVelocity.x = (currentVelocity.x - omega * temp_x) * exp; + currentVelocity.y = (currentVelocity.y - omega * temp_y) * exp; + + float output_x = target.x + (change_x + temp_x) * exp; + float output_y = target.y + (change_y + temp_y) * exp; + + // Prevent overshooting + float origMinusCurrent_x = originalTo.x - current.x; + float origMinusCurrent_y = originalTo.y - current.y; + float outMinusOrig_x = output_x - originalTo.x; + float outMinusOrig_y = output_y - originalTo.y; + + if (origMinusCurrent_x * outMinusOrig_x + origMinusCurrent_y * outMinusOrig_y > 0) + { + output_x = originalTo.x; + output_y = originalTo.y; + + currentVelocity.x = (output_x - originalTo.x) / deltaTime; + currentVelocity.y = (output_y - originalTo.y) / deltaTime; + } + return Vec2(output_x, output_y); +} + + void Vec2::_register(VM* vm, PyObject* mod, PyObject* type){ + PY_STRUCT_LIKE(Vec2) + + vm->bind_constructor<3>(type, [](VM* vm, ArgsView args){ + float x = CAST_F(args[1]); + float y = CAST_F(args[2]); + return vm->heap.gcnew(PK_OBJ_GET(Type, args[0]), Vec2(x, y)); + }); + + // @staticmethod + vm->bind(type, "smooth_damp(current: vec2, target: vec2, current_velocity_: vec2, smooth_time: float, max_speed: float, delta_time: float) -> vec2", [](VM* vm, ArgsView args){ + Vec2 current = CAST(Vec2, args[0]); + Vec2 target = CAST(Vec2, args[1]); + Vec2& current_velocity_ = CAST(Vec2&, args[2]); + float smooth_time = CAST_F(args[3]); + float max_speed = CAST_F(args[4]); + float delta_time = CAST_F(args[5]); + Vec2 ret = SmoothDamp(current, target, current_velocity_, smooth_time, max_speed, delta_time); + return VAR(ret); + }, {}, BindType::STATICMETHOD); + + // @staticmethod + vm->bind(type, "angle(__from: vec2, __to: vec2) -> float", [](VM* vm, ArgsView args){ + Vec2 __from = CAST(Vec2, args[0]); + Vec2 __to = CAST(Vec2, args[1]); + float val = atan2f(__to.y, __to.x) - atan2f(__from.y, __from.x); + const float PI = 3.1415926535897932384f; + if(val > PI) val -= 2*PI; + if(val < -PI) val += 2*PI; + return VAR(val); + }, {}, BindType::STATICMETHOD); + + vm->bind__repr__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ + Vec2 self = _CAST(Vec2&, obj); + SStream ss; + ss.setprecision(3); + ss << "vec2(" << self.x << ", " << self.y << ")"; + return VAR(ss.str()); + }); + + vm->bind_method<1>(type, "rotate", [](VM* vm, ArgsView args){ + Vec2 self = _CAST(Vec2&, args[0]); + float radian = CAST(f64, args[1]); + return VAR_T(Vec2, self.rotate(radian)); + }); + + vm->bind_method<1>(type, "rotate_", [](VM* vm, ArgsView args){ + Vec2& self = _CAST(Vec2&, args[0]); + float radian = CAST(f64, args[1]); + self = self.rotate(radian); + return vm->None; + }); + + PY_FIELD(Vec2, "x", _, x) + PY_FIELD(Vec2, "y", _, y) + + BIND_VEC_VEC_OP(2, __add__, +) + BIND_VEC_VEC_OP(2, __sub__, -) + BIND_VEC_MUL_OP(2) + BIND_VEC_FLOAT_OP(2, __truediv__, /) + BIND_VEC_FUNCTION_1(2, dot) + BIND_VEC_FUNCTION_1(2, cross) + BIND_VEC_FUNCTION_1(2, copy_) + BIND_VEC_FUNCTION_0(2, length) + BIND_VEC_FUNCTION_0(2, length_squared) + BIND_VEC_FUNCTION_0(2, normalize) + BIND_VEC_FUNCTION_0(2, normalize_) + BIND_VEC_GETITEM(2) + } + + void Vec3::_register(VM* vm, PyObject* mod, PyObject* type){ + PY_STRUCT_LIKE(Vec3) + + vm->bind_constructor<4>(type, [](VM* vm, ArgsView args){ + float x = CAST_F(args[1]); + float y = CAST_F(args[2]); + float z = CAST_F(args[3]); + return vm->heap.gcnew(PK_OBJ_GET(Type, args[0]), Vec3(x, y, z)); + }); + + vm->bind__repr__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ + Vec3 self = _CAST(Vec3&, obj); + SStream ss; + ss.setprecision(3); + ss << "vec3(" << self.x << ", " << self.y << ", " << self.z << ")"; + return VAR(ss.str()); + }); + + PY_FIELD(Vec3, "x", _, x) + PY_FIELD(Vec3, "y", _, y) + PY_FIELD(Vec3, "z", _, z) + + BIND_VEC_VEC_OP(3, __add__, +) + BIND_VEC_VEC_OP(3, __sub__, -) + BIND_VEC_MUL_OP(3) + BIND_VEC_FUNCTION_1(3, dot) + BIND_VEC_FUNCTION_1(3, cross) + BIND_VEC_FUNCTION_1(3, copy_) + BIND_VEC_FUNCTION_0(3, length) + BIND_VEC_FUNCTION_0(3, length_squared) + BIND_VEC_FUNCTION_0(3, normalize) + BIND_VEC_FUNCTION_0(3, normalize_) + BIND_VEC_GETITEM(3) + } + + void Vec4::_register(VM* vm, PyObject* mod, PyObject* type){ + PY_STRUCT_LIKE(Vec4) + + vm->bind_constructor<1+4>(type, [](VM* vm, ArgsView args){ + float x = CAST_F(args[1]); + float y = CAST_F(args[2]); + float z = CAST_F(args[3]); + float w = CAST_F(args[4]); + return vm->heap.gcnew(PK_OBJ_GET(Type, args[0]), Vec4(x, y, z, w)); + }); + + vm->bind__repr__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ + Vec4 self = _CAST(Vec4&, obj); + SStream ss; + ss.setprecision(3); + ss << "vec4(" << self.x << ", " << self.y << ", " << self.z << ", " << self.w << ")"; + return VAR(ss.str()); + }); + + PY_FIELD(Vec4, "x", _, x) + PY_FIELD(Vec4, "y", _, y) + PY_FIELD(Vec4, "z", _, z) + PY_FIELD(Vec4, "w", _, w) + + BIND_VEC_VEC_OP(4, __add__, +) + BIND_VEC_VEC_OP(4, __sub__, -) + BIND_VEC_MUL_OP(4) + BIND_VEC_FUNCTION_1(4, dot) + BIND_VEC_FUNCTION_1(4, copy_) + BIND_VEC_FUNCTION_0(4, length) + BIND_VEC_FUNCTION_0(4, length_squared) + BIND_VEC_FUNCTION_0(4, normalize) + BIND_VEC_FUNCTION_0(4, normalize_) + BIND_VEC_GETITEM(4) + } + +#undef BIND_VEC_VEC_OP +#undef BIND_VEC_MUL_OP +#undef BIND_VEC_FUNCTION_0 +#undef BIND_VEC_FUNCTION_1 +#undef BIND_VEC_GETITEM + + void Mat3x3::_register(VM* vm, PyObject* mod, PyObject* type){ + PY_STRUCT_LIKE(Mat3x3) + + vm->bind_func<-1>(type, __new__, [](VM* vm, ArgsView args){ + if(args.size() == 1+0) return vm->heap.gcnew(PK_OBJ_GET(Type, args[0]), Mat3x3::zeros()); + if(args.size() == 1+1){ + const List& list = CAST(List&, args[1]); + if(list.size() != 9) vm->TypeError("Mat3x3.__new__ takes a list of 9 floats"); + Mat3x3 mat; + for(int i=0; i<9; i++) mat.v[i] = CAST_F(list[i]); + return vm->heap.gcnew(PK_OBJ_GET(Type, args[0]), mat); + } + if(args.size() == 1+9){ + Mat3x3 mat; + for(int i=0; i<9; i++) mat.v[i] = CAST_F(args[1+i]); + return vm->heap.gcnew(PK_OBJ_GET(Type, args[0]), mat); + } + vm->TypeError(_S("Mat3x3.__new__ takes 0 or 1 or 9 arguments, got ", args.size()-1)); + return vm->None; + }); + + vm->bind_method<1>(type, "copy_", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + const Mat3x3& other = CAST(Mat3x3&, args[1]); + self = other; + return vm->None; + }); + + vm->bind__repr__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ + const Mat3x3& self = _CAST(Mat3x3&, obj); + SStream ss; + ss.setprecision(3); + ss << "mat3x3([" << self._11 << ", " << self._12 << ", " << self._13 << ",\n"; + ss << " " << self._21 << ", " << self._22 << ", " << self._23 << ",\n"; + ss << " " << self._31 << ", " << self._32 << ", " << self._33 << "])"; + return VAR(ss.str()); + }); + + vm->bind__getitem__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj, PyObject* index){ + Mat3x3& self = _CAST(Mat3x3&, obj); + Tuple& t = CAST(Tuple&, index); + if(t.size() != 2){ + vm->TypeError("Mat3x3.__getitem__ takes a tuple of 2 integers"); + } + i64 i = CAST(i64, t[0]); + i64 j = CAST(i64, t[1]); + if(i < 0 || i >= 3 || j < 0 || j >= 3){ + vm->IndexError("index out of range"); + } + return VAR(self.m[i][j]); + }); + + vm->bind__setitem__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj, PyObject* index, PyObject* value){ + Mat3x3& self = _CAST(Mat3x3&, obj); + const Tuple& t = CAST(Tuple&, index); + if(t.size() != 2){ + vm->TypeError("Mat3x3.__setitem__ takes a tuple of 2 integers"); + } + i64 i = CAST(i64, t[0]); + i64 j = CAST(i64, t[1]); + if(i < 0 || i >= 3 || j < 0 || j >= 3){ + vm->IndexError("index out of range"); + } + self.m[i][j] = CAST_F(value); + }); + + PY_FIELD(Mat3x3, "_11", _, _11) + PY_FIELD(Mat3x3, "_12", _, _12) + PY_FIELD(Mat3x3, "_13", _, _13) + PY_FIELD(Mat3x3, "_21", _, _21) + PY_FIELD(Mat3x3, "_22", _, _22) + PY_FIELD(Mat3x3, "_23", _, _23) + PY_FIELD(Mat3x3, "_31", _, _31) + PY_FIELD(Mat3x3, "_32", _, _32) + PY_FIELD(Mat3x3, "_33", _, _33) + + vm->bind__add__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ + Mat3x3& self = _CAST(Mat3x3&, _0); + Mat3x3& other = CAST(Mat3x3&, _1); + return VAR_T(Mat3x3, self + other); + }); + + vm->bind__sub__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ + Mat3x3& self = _CAST(Mat3x3&, _0); + Mat3x3& other = CAST(Mat3x3&, _1); + return VAR_T(Mat3x3, self - other); + }); + + vm->bind__mul__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ + Mat3x3& self = _CAST(Mat3x3&, _0); + f64 other = CAST_F(_1); + return VAR_T(Mat3x3, self * other); + }); + + vm->bind_method<1>(type, "__rmul__", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + f64 other = CAST_F(args[1]); + return VAR_T(Mat3x3, self * other); + }); + + vm->bind__truediv__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ + Mat3x3& self = _CAST(Mat3x3&, _0); + f64 other = CAST_F(_1); + return VAR_T(Mat3x3, self / other); + }); + + vm->bind__matmul__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0, PyObject* _1){ + Mat3x3& self = _CAST(Mat3x3&, _0); + if(is_type(_1, Mat3x3::_type(vm))){ + const Mat3x3& other = _CAST(Mat3x3&, _1); + return VAR_T(Mat3x3, self.matmul(other)); + } + if(is_type(_1, Vec3::_type(vm))){ + const Vec3& other = _CAST(Vec3&, _1); + return VAR_T(Vec3, self.matmul(other)); + } + return vm->NotImplemented; + }); + + vm->bind(type, "matmul(self, other: mat3x3, out: mat3x3 = None)", [](VM* vm, ArgsView args){ + const Mat3x3& self = _CAST(Mat3x3&, args[0]); + const Mat3x3& other = CAST(Mat3x3&, args[1]); + if(args[2] == vm->None){ + return VAR_T(Mat3x3, self.matmul(other)); + }else{ + Mat3x3& out = CAST(Mat3x3&, args[2]); + out = self.matmul(other); + return vm->None; + } + }); + + vm->bind_method<0>(type, "determinant", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + return VAR(self.determinant()); + }); + + vm->bind_method<0>(type, "transpose", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + return VAR_T(Mat3x3, self.transpose()); + }); + + vm->bind__invert__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* obj){ + Mat3x3& self = _CAST(Mat3x3&, obj); + Mat3x3 ret; + bool ok = self.inverse(ret); + if(!ok) vm->ValueError("matrix is not invertible"); + return VAR_T(Mat3x3, ret); + }); + + vm->bind_method<0>(type, "invert", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + Mat3x3 ret; + bool ok = self.inverse(ret); + if(!ok) vm->ValueError("matrix is not invertible"); + return VAR_T(Mat3x3, ret); + }); + + vm->bind_method<0>(type, "invert_", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + Mat3x3 ret; + bool ok = self.inverse(ret); + if(!ok) vm->ValueError("matrix is not invertible"); + self = ret; + return vm->None; + }); + + vm->bind_method<0>(type, "transpose_", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + self = self.transpose(); + return vm->None; + }); + + // @staticmethod + vm->bind(type, "zeros()", [](VM* vm, ArgsView args){ + return VAR_T(Mat3x3, Mat3x3::zeros()); + }, {}, BindType::STATICMETHOD); + + // @staticmethod + vm->bind(type, "ones()", [](VM* vm, ArgsView args){ + return VAR_T(Mat3x3, Mat3x3::ones()); + }, {}, BindType::STATICMETHOD); + + // @staticmethod + vm->bind(type, "identity()", [](VM* vm, ArgsView args){ + return VAR_T(Mat3x3, Mat3x3::identity()); + }, {}, BindType::STATICMETHOD); + + /*************** affine transformations ***************/ + // @staticmethod + vm->bind(type, "trs(t: vec2, r: float, s: vec2)", [](VM* vm, ArgsView args){ + Vec2 t = CAST(Vec2, args[0]); + f64 r = CAST_F(args[1]); + Vec2 s = CAST(Vec2, args[2]); + return VAR_T(Mat3x3, Mat3x3::trs(t, r, s)); + }, {}, BindType::STATICMETHOD); + + vm->bind(type, "copy_trs_(self, t: vec2, r: float, s: vec2)", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + Vec2 t = CAST(Vec2, args[1]); + f64 r = CAST_F(args[2]); + Vec2 s = CAST(Vec2, args[3]); + self = Mat3x3::trs(t, r, s); + return vm->None; + }); + + vm->bind(type, "copy_t_(self, t: vec2)", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + Vec2 t = CAST(Vec2, args[1]); + self = Mat3x3::trs(t, self._r(), self._s()); + return vm->None; + }); + + vm->bind(type, "copy_r_(self, r: float)", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + f64 r = CAST_F(args[1]); + self = Mat3x3::trs(self._t(), r, self._s()); + return vm->None; + }); + + vm->bind(type, "copy_s_(self, s: vec2)", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + Vec2 s = CAST(Vec2, args[1]); + self = Mat3x3::trs(self._t(), self._r(), s); + return vm->None; + }); + + vm->bind_method<0>(type, "is_affine", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + return VAR(self.is_affine()); + }); + + vm->bind_method<0>(type, "_t", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + return VAR_T(Vec2, self._t()); + }); + + vm->bind_method<0>(type, "_r", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + return VAR(self._r()); + }); + + vm->bind_method<0>(type, "_s", [](VM* vm, ArgsView args){ + Mat3x3& self = _CAST(Mat3x3&, args[0]); + return VAR_T(Vec2, self._s()); + }); + + vm->bind_method<1>(type, "transform_point", [](VM* vm, ArgsView args){ + const Mat3x3& self = _CAST(Mat3x3&, args[0]); + Vec2 v = CAST(Vec2, args[1]); + Vec2 res = Vec2(self._11 * v.x + self._12 * v.y + self._13, self._21 * v.x + self._22 * v.y + self._23); + return VAR_T(Vec2, res); + }); + + vm->bind_method<1>(type, "transform_vector", [](VM* vm, ArgsView args){ + const Mat3x3& self = _CAST(Mat3x3&, args[0]); + Vec2 v = CAST(Vec2, args[1]); + Vec2 res = Vec2(self._11 * v.x + self._12 * v.y, self._21 * v.x + self._22 * v.y); + return VAR_T(Vec2, res); + }); + } + + +void add_module_linalg(VM* vm){ + PyObject* linalg = vm->new_module("linalg"); + Vec2::register_class(vm, linalg); + Vec3::register_class(vm, linalg); + Vec4::register_class(vm, linalg); + Mat3x3::register_class(vm, linalg); + + PyObject* float_p = vm->_modules["c"]->attr("float_p"); + linalg->attr().set("vec2_p", float_p); + linalg->attr().set("vec3_p", float_p); + linalg->attr().set("vec4_p", float_p); + linalg->attr().set("mat3x3_p", float_p); +} + + + /////////////// mat3x3 /////////////// + Mat3x3::Mat3x3() {} + Mat3x3::Mat3x3(float _11, float _12, float _13, + float _21, float _22, float _23, + float _31, float _32, float _33) + : _11(_11), _12(_12), _13(_13) + , _21(_21), _22(_22), _23(_23) + , _31(_31), _32(_32), _33(_33) {} + + Mat3x3 Mat3x3::zeros(){ + return Mat3x3(0, 0, 0, 0, 0, 0, 0, 0, 0); + } + + Mat3x3 Mat3x3::ones(){ + return Mat3x3(1, 1, 1, 1, 1, 1, 1, 1, 1); + } + + Mat3x3 Mat3x3::identity(){ + return Mat3x3(1, 0, 0, 0, 1, 0, 0, 0, 1); + } + + Mat3x3 Mat3x3::operator+(const Mat3x3& other) const{ + Mat3x3 ret; + for (int i=0; i<9; ++i) ret.v[i] = v[i] + other.v[i]; + return ret; + } + + Mat3x3 Mat3x3::operator-(const Mat3x3& other) const{ + Mat3x3 ret; + for (int i=0; i<9; ++i) ret.v[i] = v[i] - other.v[i]; + return ret; + } + + Mat3x3 Mat3x3::operator*(float scalar) const{ + Mat3x3 ret; + for (int i=0; i<9; ++i) ret.v[i] = v[i] * scalar; + return ret; + } + + Mat3x3 Mat3x3::operator/(float scalar) const{ + Mat3x3 ret; + for (int i=0; i<9; ++i) ret.v[i] = v[i] / scalar; + return ret; + } + + bool Mat3x3::operator==(const Mat3x3& other) const{ + for (int i=0; i<9; ++i){ + if (!isclose(v[i], other.v[i])) return false; + } + return true; + } + + bool Mat3x3::operator!=(const Mat3x3& other) const{ + for (int i=0; i<9; ++i){ + if (!isclose(v[i], other.v[i])) return true; + } + return false; + } + + Mat3x3 Mat3x3::matmul(const Mat3x3& other) const{ + Mat3x3 out; + out._11 = _11 * other._11 + _12 * other._21 + _13 * other._31; + out._12 = _11 * other._12 + _12 * other._22 + _13 * other._32; + out._13 = _11 * other._13 + _12 * other._23 + _13 * other._33; + out._21 = _21 * other._11 + _22 * other._21 + _23 * other._31; + out._22 = _21 * other._12 + _22 * other._22 + _23 * other._32; + out._23 = _21 * other._13 + _22 * other._23 + _23 * other._33; + out._31 = _31 * other._11 + _32 * other._21 + _33 * other._31; + out._32 = _31 * other._12 + _32 * other._22 + _33 * other._32; + out._33 = _31 * other._13 + _32 * other._23 + _33 * other._33; + return out; + } + + Vec3 Mat3x3::matmul(const Vec3& other) const{ + Vec3 out; + out.x = _11 * other.x + _12 * other.y + _13 * other.z; + out.y = _21 * other.x + _22 * other.y + _23 * other.z; + out.z = _31 * other.x + _32 * other.y + _33 * other.z; + return out; + } + + float Mat3x3::determinant() const{ + return _11 * _22 * _33 + _12 * _23 * _31 + _13 * _21 * _32 + - _11 * _23 * _32 - _12 * _21 * _33 - _13 * _22 * _31; + } + + Mat3x3 Mat3x3::transpose() const{ + Mat3x3 ret; + ret._11 = _11; ret._12 = _21; ret._13 = _31; + ret._21 = _12; ret._22 = _22; ret._23 = _32; + ret._31 = _13; ret._32 = _23; ret._33 = _33; + return ret; + } + + bool Mat3x3::inverse(Mat3x3& out) const{ + float det = determinant(); + if (isclose(det, 0)) return false; + float inv_det = 1.0f / det; + out._11 = (_22 * _33 - _23 * _32) * inv_det; + out._12 = (_13 * _32 - _12 * _33) * inv_det; + out._13 = (_12 * _23 - _13 * _22) * inv_det; + out._21 = (_23 * _31 - _21 * _33) * inv_det; + out._22 = (_11 * _33 - _13 * _31) * inv_det; + out._23 = (_13 * _21 - _11 * _23) * inv_det; + out._31 = (_21 * _32 - _22 * _31) * inv_det; + out._32 = (_12 * _31 - _11 * _32) * inv_det; + out._33 = (_11 * _22 - _12 * _21) * inv_det; + return true; + } + + Mat3x3 Mat3x3::trs(Vec2 t, float radian, Vec2 s){ + float cr = cosf(radian); + float sr = sinf(radian); + return Mat3x3(s.x * cr, -s.y * sr, t.x, + s.x * sr, s.y * cr, t.y, + 0.0f, 0.0f, 1.0f); + } + + bool Mat3x3::is_affine() const{ + float det = _11 * _22 - _12 * _21; + if(isclose(det, 0)) return false; + return _31 == 0.0f && _32 == 0.0f && _33 == 1.0f; + } + + Vec2 Mat3x3::_t() const { return Vec2(_13, _23); } + float Mat3x3::_r() const { return atan2f(_21, _11); } + Vec2 Mat3x3::_s() const { + return Vec2( + sqrtf(_11 * _11 + _21 * _21), + sqrtf(_12 * _12 + _22 * _22) + ); + } + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/memory.cpp b/dependencies/pocketpy/src/memory.cpp new file mode 100644 index 0000000..2926b94 --- /dev/null +++ b/dependencies/pocketpy/src/memory.cpp @@ -0,0 +1,287 @@ +#include "pocketpy/memory.h" + +namespace pkpy{ + +struct LinkedListNode{ + LinkedListNode* prev; + LinkedListNode* next; +}; + +template +struct DoubleLinkedList{ + static_assert(std::is_base_of_v); + int _size; + LinkedListNode head; + LinkedListNode tail; + + DoubleLinkedList(): _size(0){ + head.prev = nullptr; + head.next = &tail; + tail.prev = &head; + tail.next = nullptr; + } + + void push_back(T* node){ + node->prev = tail.prev; + node->next = &tail; + tail.prev->next = node; + tail.prev = node; + _size++; + } + + void push_front(T* node){ + node->prev = &head; + node->next = head.next; + head.next->prev = node; + head.next = node; + _size++; + } + + void pop_back(){ +#if PK_DEBUG_MEMORY_POOL + if(empty()) throw std::runtime_error("DoubleLinkedList::pop_back() called on empty list"); +#endif + tail.prev->prev->next = &tail; + tail.prev = tail.prev->prev; + _size--; + } + + void pop_front(){ +#if PK_DEBUG_MEMORY_POOL + if(empty()) throw std::runtime_error("DoubleLinkedList::pop_front() called on empty list"); +#endif + head.next->next->prev = &head; + head.next = head.next->next; + _size--; + } + + T* back() const { +#if PK_DEBUG_MEMORY_POOL + if(empty()) throw std::runtime_error("DoubleLinkedList::back() called on empty list"); +#endif + return static_cast(tail.prev); + } + + T* front() const { +#if PK_DEBUG_MEMORY_POOL + if(empty()) throw std::runtime_error("DoubleLinkedList::front() called on empty list"); +#endif + return static_cast(head.next); + } + + void erase(T* node){ +#if PK_DEBUG_MEMORY_POOL + if(empty()) throw std::runtime_error("DoubleLinkedList::erase() called on empty list"); + LinkedListNode* n = head.next; + while(n != &tail){ + if(n == node) break; + n = n->next; + } + if(n != node) throw std::runtime_error("DoubleLinkedList::erase() called on node not in the list"); +#endif + node->prev->next = node->next; + node->next->prev = node->prev; + _size--; + } + + // void move_all_back(DoubleLinkedList& other){ + // if(other.empty()) return; + // other.tail.prev->next = &tail; + // tail.prev->next = other.head.next; + // other.head.next->prev = tail.prev; + // tail.prev = other.tail.prev; + // _size += other._size; + // other.head.next = &other.tail; + // other.tail.prev = &other.head; + // other._size = 0; + // } + + bool empty() const { +#if PK_DEBUG_MEMORY_POOL + if(size() == 0){ + if(head.next != &tail || tail.prev != &head){ + throw std::runtime_error("DoubleLinkedList::size() returned 0 but the list is not empty"); + } + return true; + } +#endif + return _size == 0; + } + + int size() const { return _size; } + + template + void apply(Func func){ + LinkedListNode* p = head.next; + while(p != &tail){ + LinkedListNode* next = p->next; + func(static_cast(p)); + p = next; + } + } +}; + +template +struct MemoryPool{ + static const int __MaxBlocks = 256*1024 / __BlockSize; + static const int __MinArenaCount = PK_GC_MIN_THRESHOLD*100 / (256*1024); + + struct Block{ + void* arena; + char data[__BlockSize]; + }; + + struct Arena: LinkedListNode{ + Block _blocks[__MaxBlocks]; + Block* _free_list[__MaxBlocks]; + int _free_list_size; + + Arena(): _free_list_size(__MaxBlocks) { + for(int i=0; i<__MaxBlocks; i++){ + _blocks[i].arena = this; + _free_list[i] = &_blocks[i]; + } + } + + bool empty() const { return _free_list_size == 0; } + bool full() const { return _free_list_size == __MaxBlocks; } + + size_t allocated_size() const{ + return __BlockSize * (__MaxBlocks - _free_list_size); + } + + Block* alloc(){ +#if PK_DEBUG_MEMORY_POOL + if(empty()) throw std::runtime_error("Arena::alloc() called on empty arena"); +#endif + _free_list_size--; + return _free_list[_free_list_size]; + } + + void dealloc(Block* block){ +#if PK_DEBUG_MEMORY_POOL + if(full()) throw std::runtime_error("Arena::dealloc() called on full arena"); +#endif + _free_list[_free_list_size] = block; + _free_list_size++; + } + }; + + MemoryPool() = default; + MemoryPool(const MemoryPool&) = delete; + MemoryPool& operator=(const MemoryPool&) = delete; + MemoryPool(MemoryPool&&) = delete; + MemoryPool& operator=(MemoryPool&&) = delete; + + DoubleLinkedList _arenas; + DoubleLinkedList _empty_arenas; + + void* alloc(size_t size){ + PK_GLOBAL_SCOPE_LOCK(); +#if PK_DEBUG_NO_MEMORY_POOL + return malloc(size); +#endif + if(size > __BlockSize){ + void* p = malloc(sizeof(void*) + size); + memset(p, 0, sizeof(void*)); + return (char*)p + sizeof(void*); + } + + if(_arenas.empty()){ + // std::cout << _arenas.size() << ',' << _empty_arenas.size() << ',' << _full_arenas.size() << std::endl; + _arenas.push_back(new Arena()); + } + Arena* arena = _arenas.back(); + void* p = arena->alloc()->data; + if(arena->empty()){ + _arenas.pop_back(); + _empty_arenas.push_back(arena); + } + return p; + } + + void dealloc(void* p){ + PK_GLOBAL_SCOPE_LOCK(); +#if PK_DEBUG_NO_MEMORY_POOL + free(p); + return; +#endif +#if PK_DEBUG_MEMORY_POOL + if(p == nullptr) throw std::runtime_error("MemoryPool::dealloc() called on nullptr"); +#endif + Block* block = (Block*)((char*)p - sizeof(void*)); + if(block->arena == nullptr){ + free(block); + }else{ + Arena* arena = (Arena*)block->arena; + if(arena->empty()){ + _empty_arenas.erase(arena); + _arenas.push_front(arena); + arena->dealloc(block); + }else{ + arena->dealloc(block); + } + } + } + + void shrink_to_fit(){ + PK_GLOBAL_SCOPE_LOCK(); + if(_arenas.size() < __MinArenaCount) return; + _arenas.apply([this](Arena* arena){ + if(arena->full()){ + _arenas.erase(arena); + delete arena; + } + }); + } + + std::string info(){ + int n_used_arenas = _arenas.size(); + int n_total_arenas = n_used_arenas + _empty_arenas.size(); + size_t allocated_size = 0; + size_t total_size = 0; + _arenas.apply([&](Arena* arena){ + allocated_size += arena->allocated_size(); + total_size += __BlockSize * __MaxBlocks; + }); + _empty_arenas.apply([&](Arena* arena){ + total_size += __BlockSize * __MaxBlocks; + }); + char buffer[512]; + snprintf( + buffer, + sizeof(buffer), + "pool%d: %.2f/%.2f MB (%d/%d arenas)", + __BlockSize, + (float)allocated_size / (1024*1024), + (float)total_size / (1024*1024), + n_used_arenas, + n_total_arenas + ); + return buffer; + } + + ~MemoryPool(){ + _arenas.apply([](Arena* arena){ delete arena; }); + _empty_arenas.apply([](Arena* arena){ delete arena; }); + } +}; + +static MemoryPool<64> pool64; +static MemoryPool<128> pool128; + +void* pool64_alloc(size_t size) noexcept { return pool64.alloc(size); } +void pool64_dealloc(void* p) noexcept { pool64.dealloc(p); } + +void* pool128_alloc(size_t size) noexcept { return pool128.alloc(size); } +void pool128_dealloc(void* p) noexcept { pool128.dealloc(p); } + +void pools_shrink_to_fit() noexcept { + pool64.shrink_to_fit(); + pool128.shrink_to_fit(); +} + +std::string pool64_info() noexcept { return pool64.info(); } +std::string pool128_info() noexcept { return pool128.info(); } + +} \ No newline at end of file diff --git a/dependencies/pocketpy/src/modules.cpp b/dependencies/pocketpy/src/modules.cpp new file mode 100644 index 0000000..0d81b58 --- /dev/null +++ b/dependencies/pocketpy/src/modules.cpp @@ -0,0 +1,356 @@ +#include "pocketpy/modules.h" + +namespace pkpy{ + +void add_module_operator(VM* vm){ + PyObject* mod = vm->new_module("operator"); + vm->bind_func<2>(mod, "lt", [](VM* vm, ArgsView args) { return VAR(vm->py_lt(args[0], args[1]));}); + vm->bind_func<2>(mod, "le", [](VM* vm, ArgsView args) { return VAR(vm->py_le(args[0], args[1]));}); + vm->bind_func<2>(mod, "eq", [](VM* vm, ArgsView args) { return VAR(vm->py_eq(args[0], args[1]));}); + vm->bind_func<2>(mod, "ne", [](VM* vm, ArgsView args) { return VAR(vm->py_ne(args[0], args[1]));}); + vm->bind_func<2>(mod, "ge", [](VM* vm, ArgsView args) { return VAR(vm->py_ge(args[0], args[1]));}); + vm->bind_func<2>(mod, "gt", [](VM* vm, ArgsView args) { return VAR(vm->py_gt(args[0], args[1]));}); +} + +struct PyStructTime{ + PY_CLASS(PyStructTime, time, struct_time) + + int tm_year; + int tm_mon; + int tm_mday; + int tm_hour; + int tm_min; + int tm_sec; + int tm_wday; + int tm_yday; + int tm_isdst; + + PyStructTime(std::time_t t){ + std::tm* tm = std::localtime(&t); + tm_year = tm->tm_year + 1900; + tm_mon = tm->tm_mon + 1; + tm_mday = tm->tm_mday; + tm_hour = tm->tm_hour; + tm_min = tm->tm_min; + tm_sec = tm->tm_sec; + tm_wday = (tm->tm_wday + 6) % 7; + tm_yday = tm->tm_yday + 1; + tm_isdst = tm->tm_isdst; + } + + PyStructTime* _() { return this; } + + static void _register(VM* vm, PyObject* mod, PyObject* type){ + vm->bind_notimplemented_constructor(type); + PY_READONLY_FIELD(PyStructTime, "tm_year", _, tm_year); + PY_READONLY_FIELD(PyStructTime, "tm_mon", _, tm_mon); + PY_READONLY_FIELD(PyStructTime, "tm_mday", _, tm_mday); + PY_READONLY_FIELD(PyStructTime, "tm_hour", _, tm_hour); + PY_READONLY_FIELD(PyStructTime, "tm_min", _, tm_min); + PY_READONLY_FIELD(PyStructTime, "tm_sec", _, tm_sec); + PY_READONLY_FIELD(PyStructTime, "tm_wday", _, tm_wday); + PY_READONLY_FIELD(PyStructTime, "tm_yday", _, tm_yday); + PY_READONLY_FIELD(PyStructTime, "tm_isdst", _, tm_isdst); + } +}; + +void add_module_time(VM* vm){ + PyObject* mod = vm->new_module("time"); + PyStructTime::register_class(vm, mod); + + vm->bind_func<0>(mod, "time", [](VM* vm, ArgsView args) { + auto now = std::chrono::system_clock::now(); + return VAR(std::chrono::duration_cast(now.time_since_epoch()).count() / 1000.0); + }); + + vm->bind_func<1>(mod, "sleep", [](VM* vm, ArgsView args) { + f64 seconds = CAST_F(args[0]); + auto begin = std::chrono::system_clock::now(); + while(true){ + auto now = std::chrono::system_clock::now(); + f64 elapsed = std::chrono::duration_cast(now - begin).count() / 1000.0; + if(elapsed >= seconds) break; + } + return vm->None; + }); + + vm->bind_func<0>(mod, "localtime", [](VM* vm, ArgsView args) { + auto now = std::chrono::system_clock::now(); + std::time_t t = std::chrono::system_clock::to_time_t(now); + return VAR_T(PyStructTime, t); + }); +} + +void add_module_sys(VM* vm){ + PyObject* mod = vm->new_module("sys"); + vm->setattr(mod, "version", VAR(PK_VERSION)); + vm->setattr(mod, "platform", VAR(kPlatformStrings[PK_SYS_PLATFORM])); + + PyObject* stdout_ = vm->heap.gcnew(vm->tp_object); + PyObject* stderr_ = vm->heap.gcnew(vm->tp_object); + vm->setattr(mod, "stdout", stdout_); + vm->setattr(mod, "stderr", stderr_); + + vm->bind_func<1>(stdout_, "write", [](VM* vm, ArgsView args) { + Str& s = CAST(Str&, args[0]); + vm->stdout_write(s); + return vm->None; + }); + + vm->bind_func<1>(stderr_, "write", [](VM* vm, ArgsView args) { + Str& s = CAST(Str&, args[0]); + vm->_stderr(s.data, s.size); + return vm->None; + }); +} + +void add_module_json(VM* vm){ + PyObject* mod = vm->new_module("json"); + vm->bind_func<1>(mod, "loads", [](VM* vm, ArgsView args) { + std::string_view sv; + if(is_type(args[0], vm->tp_bytes)){ + sv = PK_OBJ_GET(Bytes, args[0]).sv(); + }else{ + sv = CAST(Str&, args[0]).sv(); + } + CodeObject_ code = vm->compile(sv, "", JSON_MODE); + return vm->_exec(code, vm->top_frame()->_module); + }); + + vm->bind_func<1>(mod, "dumps", [](VM* vm, ArgsView args) { + return vm->py_json(args[0]); + }); +} + +// https://docs.python.org/3.5/library/math.html +void add_module_math(VM* vm){ + PyObject* mod = vm->new_module("math"); + mod->attr().set("pi", VAR(3.1415926535897932384)); + mod->attr().set("e" , VAR(2.7182818284590452354)); + mod->attr().set("inf", VAR(std::numeric_limits::infinity())); + mod->attr().set("nan", VAR(std::numeric_limits::quiet_NaN())); + + vm->bind_func<1>(mod, "ceil", PK_LAMBDA(VAR((i64)std::ceil(CAST_F(args[0]))))); + vm->bind_func<1>(mod, "fabs", PK_LAMBDA(VAR(std::fabs(CAST_F(args[0]))))); + vm->bind_func<1>(mod, "floor", PK_LAMBDA(VAR((i64)std::floor(CAST_F(args[0]))))); + vm->bind_func<1>(mod, "fsum", [](VM* vm, ArgsView args) { + List& list = CAST(List&, args[0]); + double sum = 0; + double c = 0; + for(PyObject* arg : list){ + double x = CAST_F(arg); + double y = x - c; + double t = sum + y; + c = (t - sum) - y; + sum = t; + } + return VAR(sum); + }); + vm->bind_func<2>(mod, "gcd", [](VM* vm, ArgsView args) { + i64 a = CAST(i64, args[0]); + i64 b = CAST(i64, args[1]); + if(a < 0) a = -a; + if(b < 0) b = -b; + while(b != 0){ + i64 t = b; + b = a % b; + a = t; + } + return VAR(a); + }); + + vm->bind_func<1>(mod, "isfinite", PK_LAMBDA(VAR(std::isfinite(CAST_F(args[0]))))); + vm->bind_func<1>(mod, "isinf", PK_LAMBDA(VAR(std::isinf(CAST_F(args[0]))))); + vm->bind_func<1>(mod, "isnan", PK_LAMBDA(VAR(std::isnan(CAST_F(args[0]))))); + + vm->bind_func<2>(mod, "isclose", [](VM* vm, ArgsView args) { + f64 a = CAST_F(args[0]); + f64 b = CAST_F(args[1]); + return VAR(std::fabs(a - b) < 1e-9); + }); + + vm->bind_func<1>(mod, "exp", PK_LAMBDA(VAR(std::exp(CAST_F(args[0]))))); + // vm->bind_func<1>(mod, "log", PK_LAMBDA(VAR(std::log(CAST_F(args[0]))))); + + vm->bind(mod, "log(x, base=2.718281828459045)", [](VM* vm, ArgsView args){ + f64 x = CAST_F(args[0]); + f64 base = CAST_F(args[1]); + return VAR(std::log(x) / std::log(base)); + }); + + vm->bind_func<1>(mod, "log2", PK_LAMBDA(VAR(std::log2(CAST_F(args[0]))))); + vm->bind_func<1>(mod, "log10", PK_LAMBDA(VAR(std::log10(CAST_F(args[0]))))); + + vm->bind_func<2>(mod, "pow", PK_LAMBDA(VAR(std::pow(CAST_F(args[0]), CAST_F(args[1]))))); + vm->bind_func<1>(mod, "sqrt", PK_LAMBDA(VAR(std::sqrt(CAST_F(args[0]))))); + + vm->bind_func<1>(mod, "acos", PK_LAMBDA(VAR(std::acos(CAST_F(args[0]))))); + vm->bind_func<1>(mod, "asin", PK_LAMBDA(VAR(std::asin(CAST_F(args[0]))))); + vm->bind_func<1>(mod, "atan", PK_LAMBDA(VAR(std::atan(CAST_F(args[0]))))); + vm->bind_func<2>(mod, "atan2", PK_LAMBDA(VAR(std::atan2(CAST_F(args[0]), CAST_F(args[1]))))); + + vm->bind_func<1>(mod, "cos", PK_LAMBDA(VAR(std::cos(CAST_F(args[0]))))); + vm->bind_func<1>(mod, "sin", PK_LAMBDA(VAR(std::sin(CAST_F(args[0]))))); + vm->bind_func<1>(mod, "tan", PK_LAMBDA(VAR(std::tan(CAST_F(args[0]))))); + + vm->bind_func<1>(mod, "degrees", PK_LAMBDA(VAR(CAST_F(args[0]) * 180 / 3.1415926535897932384))); + vm->bind_func<1>(mod, "radians", PK_LAMBDA(VAR(CAST_F(args[0]) * 3.1415926535897932384 / 180))); + + vm->bind_func<1>(mod, "modf", [](VM* vm, ArgsView args) { + f64 i; + f64 f = std::modf(CAST_F(args[0]), &i); + return VAR(Tuple(VAR(f), VAR(i))); + }); + + vm->bind_func<1>(mod, "factorial", [](VM* vm, ArgsView args) { + i64 n = CAST(i64, args[0]); + if(n < 0) vm->ValueError("factorial() not defined for negative values"); + i64 r = 1; + for(i64 i=2; i<=n; i++) r *= i; + return VAR(r); + }); +} + +void add_module_traceback(VM* vm){ + PyObject* mod = vm->new_module("traceback"); + vm->bind_func<0>(mod, "print_exc", [](VM* vm, ArgsView args) { + if(vm->_last_exception==nullptr) vm->ValueError("no exception"); + Exception& e = _CAST(Exception&, vm->_last_exception); + vm->stdout_write(e.summary()); + return vm->None; + }); + + vm->bind_func<0>(mod, "format_exc", [](VM* vm, ArgsView args) { + if(vm->_last_exception==nullptr) vm->ValueError("no exception"); + Exception& e = _CAST(Exception&, vm->_last_exception); + return VAR(e.summary()); + }); +} + +void add_module_dis(VM* vm){ + PyObject* mod = vm->new_module("dis"); + + vm->bind_func<1>(mod, "dis", [](VM* vm, ArgsView args) { + CodeObject_ code; + PyObject* obj = args[0]; + if(is_type(obj, vm->tp_str)){ + const Str& source = CAST(Str, obj); + code = vm->compile(source, "", EXEC_MODE); + } + PyObject* f = obj; + if(is_type(f, vm->tp_bound_method)) f = CAST(BoundMethod, obj).func; + code = CAST(Function&, f).decl->code; + vm->stdout_write(vm->disassemble(code)); + return vm->None; + }); +} + +void add_module_gc(VM* vm){ + PyObject* mod = vm->new_module("gc"); + vm->bind_func<0>(mod, "collect", PK_LAMBDA(VAR(vm->heap.collect()))); +} + +struct LineProfilerW; +struct _LpGuard{ + PK_ALWAYS_PASS_BY_POINTER(_LpGuard) + LineProfilerW* lp; + VM* vm; + _LpGuard(LineProfilerW* lp, VM* vm); + ~_LpGuard(); +}; + +// line_profiler wrapper +struct LineProfilerW{ + PY_CLASS(LineProfilerW, line_profiler, LineProfiler) + + LineProfiler profiler; + + static void _register(VM* vm, PyObject* mod, PyObject* type){ + vm->bind_func<1>(type, __new__, [](VM* vm, ArgsView args){ + Type cls = PK_OBJ_GET(Type, args[0]); + return vm->heap.gcnew(cls); + }); + + vm->bind(type, "add_function(self, func)", [](VM* vm, ArgsView args){ + LineProfilerW& self = PK_OBJ_GET(LineProfilerW, args[0]); + vm->check_type(args[1], VM::tp_function); + auto decl = PK_OBJ_GET(Function, args[1]).decl.get(); + self.profiler.functions.insert(decl); + return vm->None; + }); + + vm->bind(type, "runcall(self, func, *args)", [](VM* vm, ArgsView view){ + LineProfilerW& self = PK_OBJ_GET(LineProfilerW, view[0]); + PyObject* func = view[1]; + const Tuple& args = CAST(Tuple&, view[2]); + vm->s_data.push(func); + vm->s_data.push(PY_NULL); + for(PyObject* arg : args) vm->s_data.push(arg); + _LpGuard guard(&self, vm); + PyObject* ret = vm->vectorcall(args.size()); + return ret; + }); + + vm->bind(type, "print_stats(self)", [](VM* vm, ArgsView args){ + LineProfilerW& self = PK_OBJ_GET(LineProfilerW, args[0]); + vm->stdout_write(self.profiler.stats()); + return vm->None; + }); + } +}; + + +_LpGuard::_LpGuard(LineProfilerW* lp, VM* vm): lp(lp), vm(vm) { + if(vm->_profiler){ + vm->ValueError("only one profiler can be enabled at a time"); + } + vm->_profiler = &lp->profiler; + lp->profiler.begin(); +} + +_LpGuard::~_LpGuard(){ + vm->_profiler = nullptr; + lp->profiler.end(); +} + +void add_module_line_profiler(VM *vm){ + PyObject* mod = vm->new_module("line_profiler"); + LineProfilerW::register_class(vm, mod); +} + + +void add_module_enum(VM* vm){ + PyObject* mod = vm->new_module("enum"); + CodeObject_ code = vm->compile(kPythonLibs__enum, "enum.py", EXEC_MODE); + vm->_exec(code, mod); + PyObject* Enum = mod->attr("Enum"); + vm->_all_types[PK_OBJ_GET(Type, Enum).index].on_end_subclass = \ + [](VM* vm, PyTypeInfo* new_ti){ + new_ti->subclass_enabled = false; // Enum class cannot be subclassed twice + NameDict& attr = new_ti->obj->attr(); + for(auto [k, v]: attr.items()){ + // wrap every attribute + std::string_view k_sv = k.sv(); + if(k_sv.empty() || k_sv[0] == '_') continue; + attr.set(k, vm->call(new_ti->obj, VAR(k_sv), v)); + } + }; +} + +void add_module___builtins(VM* vm){ + PyObject* mod = vm->new_module("__builtins"); + + vm->bind_func<1>(mod, "next", [](VM* vm, ArgsView args){ + return vm->py_next(args[0]); + }); + + vm->bind_func<1>(mod, "_enable_instance_dict", [](VM* vm, ArgsView args){ + PyObject* self = args[0]; + if(is_tagged(self)) vm->TypeError("object: tagged object cannot enable instance dict"); + if(self->is_attr_valid()) vm->RuntimeError("object: instance dict is already enabled"); + self->_enable_instance_dict(); + return vm->None; + }); +} + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/namedict.cpp b/dependencies/pocketpy/src/namedict.cpp new file mode 100644 index 0000000..f519879 --- /dev/null +++ b/dependencies/pocketpy/src/namedict.cpp @@ -0,0 +1,4 @@ +#include "pocketpy/namedict.h" + +namespace pkpy{ +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/obj.cpp b/dependencies/pocketpy/src/obj.cpp new file mode 100644 index 0000000..0e1ab19 --- /dev/null +++ b/dependencies/pocketpy/src/obj.cpp @@ -0,0 +1,50 @@ +#include "pocketpy/obj.h" + +namespace pkpy{ + bool Bytes::operator==(const Bytes& rhs) const{ + if(_size != rhs._size) return false; + for(int i=0; i<_size; i++) if(_data[i] != rhs._data[i]) return false; + return true; + } + bool Bytes::operator!=(const Bytes& rhs) const{ return !(*this == rhs); } + + Bytes::Bytes(std::string_view sv){ + _data = new unsigned char[sv.size()]; + _size = sv.size(); + for(int i=0; i<_size; i++) _data[i] = sv[i]; + } + + // copy constructor + Bytes::Bytes(const Bytes& rhs){ + _data = new unsigned char[rhs._size]; + _size = rhs._size; + for(int i=0; i<_size; i++) _data[i] = rhs._data[i]; + } + + // move constructor + Bytes::Bytes(Bytes&& rhs) noexcept { + _data = rhs._data; + _size = rhs._size; + rhs._data = nullptr; + rhs._size = 0; + } + + // move assignment + Bytes& Bytes::operator=(Bytes&& rhs) noexcept { + delete[] _data; + _data = rhs._data; + _size = rhs._size; + rhs._data = nullptr; + rhs._size = 0; + return *this; + } + + std::pair Bytes::detach() noexcept { + unsigned char* p = _data; + int size = _size; + _data = nullptr; + _size = 0; + return {p, size}; + } + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/pocketpy.cpp b/dependencies/pocketpy/src/pocketpy.cpp new file mode 100644 index 0000000..b95d54a --- /dev/null +++ b/dependencies/pocketpy/src/pocketpy.cpp @@ -0,0 +1,1671 @@ +#include "pocketpy/pocketpy.h" + +namespace pkpy{ + +#ifdef PK_USE_CJSON +void add_module_cjson(VM* vm); +#endif + +template +PyObject* PyArrayGetItem(VM* vm, PyObject* _0, PyObject* _1){ + static_assert(std::is_same_v || std::is_same_v); + const T& self = _CAST(T&, _0); + i64 index; + if(try_cast_int(_1, &index)){ + index = vm->normalized_index(index, self.size()); + return self[index]; + } + if(is_type(_1, vm->tp_slice)){ + const Slice& s = _CAST(Slice&, _1); + int start, stop, step; + vm->parse_int_slice(s, self.size(), start, stop, step); + List new_list; + PK_SLICE_LOOP(i, start, stop, step) new_list.push_back(self[i]); + return VAR(T(std::move(new_list))); + } + vm->TypeError("indices must be integers or slices"); + PK_UNREACHABLE() +} + +void init_builtins(VM* _vm) { +#define BIND_NUM_ARITH_OPT(name, op) \ + _vm->bind##name(VM::tp_int, [](VM* vm, PyObject* lhs, PyObject* rhs) { \ + i64 val; \ + if(try_cast_int(rhs, &val)) return VAR(_CAST(i64, lhs) op val); \ + if(is_float(rhs)) return VAR(_CAST(i64, lhs) op _CAST(f64, rhs)); \ + return vm->NotImplemented; \ + }); \ + _vm->bind##name(VM::tp_float, [](VM* vm, PyObject* lhs, PyObject* rhs) { \ + i64 val; \ + if(try_cast_int(rhs, &val)) return VAR(_CAST(f64, lhs) op val); \ + if(is_float(rhs)) return VAR(_CAST(f64, lhs) op _CAST(f64, rhs)); \ + return vm->NotImplemented; \ + }); + + BIND_NUM_ARITH_OPT(__add__, +) + BIND_NUM_ARITH_OPT(__sub__, -) + BIND_NUM_ARITH_OPT(__mul__, *) + +#undef BIND_NUM_ARITH_OPT + +#define BIND_NUM_LOGICAL_OPT(name, op) \ + _vm->bind##name(VM::tp_int, [](VM* vm, PyObject* lhs, PyObject* rhs) { \ + i64 val; \ + if(try_cast_int(rhs, &val)) return VAR(_CAST(i64, lhs) op val); \ + if(is_float(rhs)) return VAR(_CAST(i64, lhs) op _CAST(f64, rhs)); \ + return vm->NotImplemented; \ + }); \ + _vm->bind##name(VM::tp_float, [](VM* vm, PyObject* lhs, PyObject* rhs) { \ + i64 val; \ + if(try_cast_int(rhs, &val)) return VAR(_CAST(f64, lhs) op val); \ + if(is_float(rhs)) return VAR(_CAST(f64, lhs) op _CAST(f64, rhs)); \ + return vm->NotImplemented; \ + }); + + BIND_NUM_LOGICAL_OPT(__eq__, ==) + BIND_NUM_LOGICAL_OPT(__lt__, <) + BIND_NUM_LOGICAL_OPT(__le__, <=) + BIND_NUM_LOGICAL_OPT(__gt__, >) + BIND_NUM_LOGICAL_OPT(__ge__, >=) + +#undef BIND_NUM_ARITH_OPT +#undef BIND_NUM_LOGICAL_OPT + + // builtin functions + _vm->bind_func<0>(_vm->builtins, "breakpoint", [](VM* vm, ArgsView args) { + vm->_next_breakpoint = NextBreakpoint(vm->callstack.size(), vm->top_frame()->curr_lineno(), false); + return vm->None; + }); + + _vm->bind_func<-1>(_vm->builtins, "super", [](VM* vm, ArgsView args) { + PyObject* class_arg = nullptr; + PyObject* self_arg = nullptr; + if(args.size() == 2){ + class_arg = args[0]; + self_arg = args[1]; + }else if(args.size() == 0){ + Frame* frame = vm->top_frame(); + if(frame->_callable != nullptr){ + class_arg = PK_OBJ_GET(Function, frame->_callable)._class; + if(frame->_locals.size() > 0) self_arg = frame->_locals[0]; + } + if(class_arg == nullptr || self_arg == nullptr){ + vm->TypeError("super(): unable to determine the class context, use super(class, self) instead"); + } + }else{ + vm->TypeError("super() takes 0 or 2 arguments"); + } + vm->check_type(class_arg, vm->tp_type); + Type type = PK_OBJ_GET(Type, class_arg); + if(!vm->isinstance(self_arg, type)){ + StrName _0 = _type_name(vm, vm->_tp(self_arg)); + StrName _1 = _type_name(vm, type); + vm->TypeError("super(): " + _0.escape() + " is not an instance of " + _1.escape()); + } + return vm->heap.gcnew(vm->tp_super, self_arg, vm->_all_types[type].base); + }); + + _vm->bind_func<1>(_vm->builtins, "staticmethod", [](VM* vm, ArgsView args) { + PyObject* func = args[0]; + vm->check_type(func, vm->tp_function); + return vm->heap.gcnew(vm->tp_staticmethod, args[0]); + }); + + _vm->bind_func<1>(_vm->builtins, "classmethod", [](VM* vm, ArgsView args) { + PyObject* func = args[0]; + vm->check_type(func, vm->tp_function); + return vm->heap.gcnew(vm->tp_classmethod, args[0]); + }); + + _vm->bind_func<2>(_vm->builtins, "isinstance", [](VM* vm, ArgsView args) { + if(is_type(args[1], vm->tp_tuple)){ + Tuple& types = _CAST(Tuple&, args[1]); + for(PyObject* type : types){ + vm->check_type(type, vm->tp_type); + if(vm->isinstance(args[0], PK_OBJ_GET(Type, type))) return vm->True; + } + return vm->False; + } + vm->check_type(args[1], vm->tp_type); + Type type = PK_OBJ_GET(Type, args[1]); + return VAR(vm->isinstance(args[0], type)); + }); + + _vm->bind_func<2>(_vm->builtins, "issubclass", [](VM* vm, ArgsView args) { + vm->check_type(args[0], vm->tp_type); + vm->check_type(args[1], vm->tp_type); + return VAR(vm->issubclass(PK_OBJ_GET(Type, args[0]), PK_OBJ_GET(Type, args[1]))); + }); + + _vm->bind_func<0>(_vm->builtins, "globals", [](VM* vm, ArgsView args) { + PyObject* mod = vm->top_frame()->_module; + return VAR(MappingProxy(mod)); + }); + + _vm->bind(_vm->builtins, "round(x, ndigits=None)", [](VM* vm, ArgsView args) { + if(is_int(args[0])) return args[0]; + f64 x = CAST(f64, args[0]); + f64 offset = x >= 0 ? 0.5 : -0.5; + if(args[1] == vm->None) return VAR((i64)(x + offset)); + int ndigits = CAST(int, args[1]); + if(ndigits < 0) vm->ValueError("ndigits should be non-negative"); + // ndigits > 0 + return VAR((i64)(x * std::pow(10, ndigits) + offset) / std::pow(10, ndigits)); + }); + + _vm->bind_func<1>(_vm->builtins, "abs", [](VM* vm, ArgsView args) { + if(is_int(args[0])) return VAR(std::abs(_CAST(i64, args[0]))); + if(is_float(args[0])) return VAR(std::abs(_CAST(f64, args[0]))); + vm->TypeError("bad operand type for abs()"); + return vm->None; + }); + + _vm->bind_func<1>(_vm->builtins, "id", [](VM* vm, ArgsView args) { + PyObject* obj = args[0]; + if(is_tagged(obj)) return vm->None; + return VAR(PK_BITS(obj)); + }); + + _vm->bind_func<1>(_vm->builtins, "callable", [](VM* vm, ArgsView args) { + return VAR(vm->py_callable(args[0])); + }); + + _vm->bind_func<1>(_vm->builtins, "__import__", [](VM* vm, ArgsView args) { + const Str& name = CAST(Str&, args[0]); + return vm->py_import(name); + }); + + _vm->bind_func<2>(_vm->builtins, "divmod", [](VM* vm, ArgsView args) { + if(is_int(args[0])){ + i64 lhs = _CAST(i64, args[0]); + i64 rhs = CAST(i64, args[1]); + if(rhs == 0) vm->ZeroDivisionError(); + auto res = std::div(lhs, rhs); + return VAR(Tuple(VAR(res.quot), VAR(res.rem))); + }else{ + return vm->call_method(args[0], __divmod__, args[1]); + } + }); + + _vm->bind(_vm->builtins, "eval(__source, __globals=None)", [](VM* vm, ArgsView args) { + CodeObject_ code = vm->compile(CAST(Str&, args[0]), "", EVAL_MODE, true); + PyObject* globals = args[1]; + if(globals == vm->None){ + Frame* frame = vm->top_frame(); + return vm->_exec(code.get(), frame->_module, frame->_callable, frame->_locals); + } + vm->check_type(globals, VM::tp_mappingproxy); + PyObject* obj = PK_OBJ_GET(MappingProxy, globals).obj; + return vm->_exec(code, obj); + }); + + _vm->bind(_vm->builtins, "exec(__source, __globals=None)", [](VM* vm, ArgsView args) { + CodeObject_ code = vm->compile(CAST(Str&, args[0]), "", EXEC_MODE, true); + PyObject* globals = args[1]; + if(globals == vm->None){ + Frame* frame = vm->top_frame(); + vm->_exec(code.get(), frame->_module, frame->_callable, frame->_locals); + return vm->None; + } + vm->check_type(globals, VM::tp_mappingproxy); + PyObject* obj = PK_OBJ_GET(MappingProxy, globals).obj; + vm->_exec(code, obj); + return vm->None; + }); + + _vm->bind(_vm->builtins, "compile(source: str, filename: str, mode: str) -> str", [](VM* vm, ArgsView args) { + const Str& source = CAST(Str&, args[0]); + const Str& filename = CAST(Str&, args[1]); + const Str& mode = CAST(Str&, args[2]); + if(mode == "exec"){ + return VAR(vm->precompile(source, filename, EXEC_MODE)); + }else if(mode == "eval"){ + return VAR(vm->precompile(source, filename, EVAL_MODE)); + }else if(mode == "single"){ + return VAR(vm->precompile(source, filename, CELL_MODE)); + }else{ + vm->ValueError("compile() mode must be 'exec', 'eval' or 'single'"); + return vm->None; + } + }); + + _vm->bind(_vm->builtins, "exit(code=0)", [](VM* vm, ArgsView args) { + std::exit(CAST(int, args[0])); + return vm->None; + }); + + _vm->bind_func<1>(_vm->builtins, "repr", [](VM* vm, ArgsView args){ + return vm->py_repr(args[0]); + }); + + _vm->bind_func<1>(_vm->builtins, "len", [](VM* vm, ArgsView args){ + const PyTypeInfo* ti = vm->_inst_type_info(args[0]); + if(ti->m__len__) return VAR(ti->m__len__(vm, args[0])); + return vm->call_method(args[0], __len__); + }); + + _vm->bind_func<1>(_vm->builtins, "hash", [](VM* vm, ArgsView args){ + i64 value = vm->py_hash(args[0]); + return VAR(value); + }); + + _vm->bind_func<1>(_vm->builtins, "chr", [](VM* vm, ArgsView args) { + i64 i = CAST(i64, args[0]); + if (i < 0 || i >= 128) vm->ValueError("chr() arg not in [0, 128)"); + return VAR(std::string(1, (char)i)); + }); + + _vm->bind_func<1>(_vm->builtins, "ord", [](VM* vm, ArgsView args) { + const Str& s = CAST(Str&, args[0]); + if (s.length()!=1) vm->TypeError("ord() expected an ASCII character"); + return VAR((i64)(s[0])); + }); + + _vm->bind_func<2>(_vm->builtins, "hasattr", [](VM* vm, ArgsView args) { + return VAR(vm->getattr(args[0], CAST(Str&, args[1]), false) != nullptr); + }); + + _vm->bind_func<3>(_vm->builtins, "setattr", [](VM* vm, ArgsView args) { + vm->setattr(args[0], CAST(Str&, args[1]), args[2]); + return vm->None; + }); + + _vm->bind_func<-1>(_vm->builtins, "getattr", [](VM* vm, ArgsView args) { + if(args.size()!=2 && args.size()!=3) vm->TypeError("getattr() takes 2 or 3 arguments"); + StrName name = CAST(Str&, args[1]); + PyObject* val = vm->getattr(args[0], name, false); + if(val == nullptr){ + if(args.size()==2) vm->AttributeError(args[0], name); + return args[2]; + } + return val; + }); + + _vm->bind_func<2>(_vm->builtins, "delattr", [](VM* vm, ArgsView args) { + vm->delattr(args[0], CAST(Str&, args[1])); + return vm->None; + }); + + _vm->bind_func<1>(_vm->builtins, "hex", [](VM* vm, ArgsView args) { + SStream ss; + ss.write_hex(CAST(i64, args[0])); + return VAR(ss.str()); + }); + + _vm->bind_func<1>(_vm->builtins, "iter", [](VM* vm, ArgsView args) { + return vm->py_iter(args[0]); + }); + + _vm->bind_func<1>(_vm->builtins, "next", [](VM* vm, ArgsView args) { + PyObject* retval = vm->py_next(args[0]); + if(retval == vm->StopIteration) vm->_error(vm->call(vm->StopIteration)); + return retval; + }); + + _vm->bind_func<1>(_vm->builtins, "bin", [](VM* vm, ArgsView args) { + SStream ss; + i64 x = CAST(i64, args[0]); + if(x < 0){ ss << "-"; x = -x; } + ss << "0b"; + std::string bits; + while(x){ + bits += (x & 1) ? '1' : '0'; + x >>= 1; + } + std::reverse(bits.begin(), bits.end()); + if(bits.empty()) bits = "0"; + ss << bits; + return VAR(ss.str()); + }); + + _vm->bind_func<1>(_vm->builtins, "dir", [](VM* vm, ArgsView args) { + std::set names; + if(!is_tagged(args[0]) && args[0]->is_attr_valid()){ + auto keys = args[0]->attr().keys(); + names.insert(keys.begin(), keys.end()); + } + const NameDict& t_attr = vm->_t(args[0])->attr(); + auto keys = t_attr.keys(); + names.insert(keys.begin(), keys.end()); + List ret; + for (StrName name : names) ret.push_back(VAR(name.sv())); + return VAR(std::move(ret)); + }); + + // tp_object + _vm->bind__repr__(VM::tp_object, [](VM* vm, PyObject* obj) { + if(is_tagged(obj)) PK_FATAL_ERROR(); + SStream ss; + ss << "<" << _type_name(vm, vm->_tp(obj)) << " object at "; + ss.write_hex(obj); + ss << ">"; + return VAR(ss.str()); + }); + + _vm->bind__eq__(VM::tp_object, [](VM* vm, PyObject* _0, PyObject* _1) { + return VAR(_0 == _1); + }); + + _vm->cached_object__new__ = _vm->bind_constructor<1>(_vm->_t(VM::tp_object), [](VM* vm, ArgsView args) { + vm->check_type(args[0], vm->tp_type); + Type t = PK_OBJ_GET(Type, args[0]); + return vm->heap.gcnew(t); + }); + + // tp_type + _vm->bind_constructor<2>(_vm->_t(VM::tp_type), PK_LAMBDA(vm->_t(args[1]))); + + // tp_range + _vm->bind_constructor<-1>(_vm->_t(VM::tp_range), [](VM* vm, ArgsView args) { + args._begin += 1; // skip cls + Range r; + switch (args.size()) { + case 1: r.stop = CAST(i64, args[0]); break; + case 2: r.start = CAST(i64, args[0]); r.stop = CAST(i64, args[1]); break; + case 3: r.start = CAST(i64, args[0]); r.stop = CAST(i64, args[1]); r.step = CAST(i64, args[2]); break; + default: vm->TypeError("expected 1-3 arguments, got " + std::to_string(args.size())); + } + if(r.step == 0) vm->ValueError("range() arg 3 must not be zero"); + return VAR(r); + }); + + _vm->bind__iter__(VM::tp_range, [](VM* vm, PyObject* obj) { return VAR_T(RangeIter, PK_OBJ_GET(Range, obj)); }); + + // tp_nonetype + _vm->bind__repr__(_vm->_tp(_vm->None), [](VM* vm, PyObject* _0) { + return VAR("None"); + }); + + // tp_float / tp_float + _vm->bind__truediv__(VM::tp_float, [](VM* vm, PyObject* _0, PyObject* _1) { + f64 value = CAST_F(_1); + return VAR(_CAST(f64, _0) / value); + }); + _vm->bind__truediv__(VM::tp_int, [](VM* vm, PyObject* _0, PyObject* _1) { + f64 value = CAST_F(_1); + return VAR(_CAST(i64, _0) / value); + }); + + auto py_number_pow = [](VM* vm, PyObject* _0, PyObject* _1) { + i64 lhs, rhs; + if(try_cast_int(_0, &lhs) && try_cast_int(_1, &rhs)){ + if(rhs < 0) { + if(lhs == 0) vm->ZeroDivisionError("0.0 cannot be raised to a negative power"); + return VAR((f64)std::pow(lhs, rhs)); + } + i64 ret = 1; + while(rhs){ + if(rhs & 1) ret *= lhs; + lhs *= lhs; + rhs >>= 1; + } + return VAR(ret); + }else{ + return VAR((f64)std::pow(CAST_F(_0), CAST_F(_1))); + } + }; + + _vm->bind__pow__(VM::tp_int, py_number_pow); + _vm->bind__pow__(VM::tp_float, py_number_pow); + + _vm->bind_constructor<-1>(_vm->_t(VM::tp_int), [](VM* vm, ArgsView args) { + if(args.size() == 1+0) return VAR(0); + // 1 arg + if(args.size() == 1+1){ + switch(vm->_tp(args[1]).index){ + case VM::tp_float.index: + return VAR((i64)_CAST(f64, args[1])); + case VM::tp_int.index: + return args[1]; + case VM::tp_bool.index: + return VAR(args[1]==vm->True ? 1 : 0); + case VM::tp_str.index: + break; + default: + vm->TypeError("invalid arguments for int()"); + } + } + // 2+ args -> error + if(args.size() > 1+2) vm->TypeError("int() takes at most 2 arguments"); + // 1 or 2 args with str + int base = 10; + if(args.size() == 1+2) base = CAST(i64, args[2]); + const Str& s = CAST(Str&, args[1]); + std::string_view sv = s.sv(); + bool negative = false; + if(!sv.empty() && (sv[0] == '+' || sv[0] == '-')){ + negative = sv[0] == '-'; + sv.remove_prefix(1); + } + i64 val; + if(parse_uint(sv, &val, base) != IntParsingResult::Success){ + vm->ValueError(_S("invalid literal for int() with base ", base, ": ", s.escape())); + } + if(negative) val = -val; + return VAR(val); + }); + + _vm->bind__floordiv__(VM::tp_int, [](VM* vm, PyObject* _0, PyObject* _1) { + i64 rhs = CAST(i64, _1); + if(rhs == 0) vm->ZeroDivisionError(); + return VAR(_CAST(i64, _0) / rhs); + }); + + _vm->bind__mod__(VM::tp_int, [](VM* vm, PyObject* _0, PyObject* _1) { + i64 rhs = CAST(i64, _1); + if(rhs == 0) vm->ZeroDivisionError(); + return VAR(_CAST(i64, _0) % rhs); + }); + + _vm->bind_method<0>(VM::tp_int, "bit_length", [](VM* vm, ArgsView args) { + i64 x = _CAST(i64, args[0]); + if(x < 0) x = -x; + int bits = 0; + while(x){ x >>= 1; bits++; } + return VAR(bits); + }); + + _vm->bind__repr__(VM::tp_int, [](VM* vm, PyObject* obj) { return VAR(std::to_string(_CAST(i64, obj))); }); + _vm->bind__neg__(VM::tp_int, [](VM* vm, PyObject* obj) { return VAR(-_CAST(i64, obj)); }); + _vm->bind__hash__(VM::tp_int, [](VM* vm, PyObject* obj) { return _CAST(i64, obj); }); + _vm->bind__invert__(VM::tp_int, [](VM* vm, PyObject* obj) { return VAR(~_CAST(i64, obj)); }); + +#define INT_BITWISE_OP(name, op) \ + _vm->bind##name(VM::tp_int, [](VM* vm, PyObject* lhs, PyObject* rhs) { \ + return VAR(_CAST(i64, lhs) op CAST(i64, rhs)); \ + }); + + INT_BITWISE_OP(__lshift__, <<) + INT_BITWISE_OP(__rshift__, >>) + INT_BITWISE_OP(__and__, &) + INT_BITWISE_OP(__or__, |) + INT_BITWISE_OP(__xor__, ^) + +#undef INT_BITWISE_OP + + _vm->bind_constructor<-1>(_vm->_t(VM::tp_float), [](VM* vm, ArgsView args) { + if(args.size() == 1+0) return VAR(0.0); + if(args.size() > 1+1) vm->TypeError("float() takes at most 1 argument"); + // 1 arg + switch(vm->_tp(args[1]).index){ + case VM::tp_int.index: + return VAR((f64)CAST(i64, args[1])); + case VM::tp_float.index: + return args[1]; + case VM::tp_bool.index: + return VAR(args[1]==vm->True ? 1.0 : 0.0); + case VM::tp_str.index: + break; + default: + vm->TypeError("invalid arguments for float()"); + } + // str to float + const Str& s = PK_OBJ_GET(Str, args[1]); + if(s == "inf") return VAR(INFINITY); + if(s == "-inf") return VAR(-INFINITY); + + double float_out; + char* p_end; + try{ + float_out = std::strtod(s.data, &p_end); + if(p_end != s.end()) throw 1; + }catch(...){ + vm->ValueError("invalid literal for float(): " + s.escape()); + } + return VAR(float_out); + }); + + _vm->bind__hash__(VM::tp_float, [](VM* vm, PyObject* _0) { + f64 val = _CAST(f64, _0); + return (i64)std::hash()(val); + }); + + _vm->bind__neg__(VM::tp_float, [](VM* vm, PyObject* _0) { return VAR(-_CAST(f64, _0)); }); + + _vm->bind__repr__(VM::tp_float, [](VM* vm, PyObject* _0) { + f64 val = _CAST(f64, _0); + SStream ss; + ss << val; + return VAR(ss.str()); + }); + + // tp_str + _vm->bind_constructor<-1>(_vm->_t(VM::tp_str), [](VM* vm, ArgsView args) { + if(args.size() == 1) return VAR(Str()); + if(args.size() > 2) vm->TypeError("str() takes at most 1 argument"); + return vm->py_str(args[1]); + }); + + _vm->bind__hash__(VM::tp_str, [](VM* vm, PyObject* _0) { + return (i64)_CAST(Str&, _0).hash(); + }); + + _vm->bind__add__(VM::tp_str, [](VM* vm, PyObject* _0, PyObject* _1) { + return VAR(_CAST(Str&, _0) + CAST(Str&, _1)); + }); + _vm->bind__len__(VM::tp_str, [](VM* vm, PyObject* _0) { + return (i64)_CAST(Str&, _0).u8_length(); + }); + _vm->bind__mul__(VM::tp_str, [](VM* vm, PyObject* _0, PyObject* _1) { + const Str& self = _CAST(Str&, _0); + i64 n = CAST(i64, _1); + SStream ss; + for(i64 i = 0; i < n; i++) ss << self.sv(); + return VAR(ss.str()); + }); + _vm->bind_method<1>(VM::tp_str, "__rmul__", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + i64 n = CAST(i64, args[1]); + SStream ss; + for(i64 i = 0; i < n; i++) ss << self.sv(); + return VAR(ss.str()); + }); + _vm->bind__contains__(VM::tp_str, [](VM* vm, PyObject* _0, PyObject* _1) { + const Str& self = _CAST(Str&, _0); + return VAR(self.index(CAST(Str&, _1)) != -1); + }); + _vm->bind__str__(VM::tp_str, [](VM* vm, PyObject* _0) { return _0; }); + _vm->bind__iter__(VM::tp_str, [](VM* vm, PyObject* _0) { return VAR_T(StringIter, _0); }); + _vm->bind__repr__(VM::tp_str, [](VM* vm, PyObject* _0) { + const Str& self = _CAST(Str&, _0); + return VAR(self.escape()); + }); + +#define BIND_CMP_STR(name, op) \ + _vm->bind##name(VM::tp_str, [](VM* vm, PyObject* lhs, PyObject* rhs) { \ + if(!is_type(rhs, vm->tp_str)) return vm->NotImplemented; \ + return VAR(_CAST(Str&, lhs) op _CAST(Str&, rhs)); \ + }); + + BIND_CMP_STR(__eq__, ==) + BIND_CMP_STR(__lt__, <) + BIND_CMP_STR(__le__, <=) + BIND_CMP_STR(__gt__, >) + BIND_CMP_STR(__ge__, >=) +#undef BIND_CMP_STR + + _vm->bind__getitem__(VM::tp_str, [](VM* vm, PyObject* _0, PyObject* _1) { + const Str& self = PK_OBJ_GET(Str, _0); + if(is_type(_1, vm->tp_slice)){ + const Slice& s = _CAST(Slice&, _1); + int start, stop, step; + vm->parse_int_slice(s, self.u8_length(), start, stop, step); + return VAR(self.u8_slice(start, stop, step)); + } + i64 i = CAST(i64, _1); + i = vm->normalized_index(i, self.u8_length()); + return VAR(self.u8_getitem(i)); + }); + + _vm->bind(_vm->_t(VM::tp_str), "replace(self, old, new, count=-1)", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + const Str& old = CAST(Str&, args[1]); + if(old.empty()) vm->ValueError("empty substring"); + const Str& new_ = CAST(Str&, args[2]); + int count = CAST(int, args[3]); + return VAR(self.replace(old, new_, count)); + }); + + _vm->bind(_vm->_t(VM::tp_str), "split(self, sep=' ')", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + const Str& sep = CAST(Str&, args[1]); + if(sep.empty()) vm->ValueError("empty separator"); + pod_vector parts; + if(sep.size == 1){ + parts = self.split(sep[0]); + }else{ + parts = self.split(sep); + } + List ret(parts.size()); + for(int i=0; ibind(_vm->_t(VM::tp_str), "splitlines(self)", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + pod_vector parts; + parts = self.split('\n'); + List ret(parts.size()); + for(int i=0; ibind(_vm->_t(VM::tp_str), "count(self, s: str)", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + const Str& s = CAST(Str&, args[1]); + return VAR(self.count(s)); + }); + + _vm->bind(_vm->_t(VM::tp_str), "index(self, value, __start=0)", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + const Str& value = CAST(Str&, args[1]); + int start = CAST(int, args[2]); + if (start < 0) vm->ValueError("argument 'start' can't be negative"); + int index = self.index(value, start); + if(index < 0) vm->ValueError("substring not found"); + return VAR(index); + }); + + _vm->bind(_vm->_t(VM::tp_str), "find(self, value, __start=0)", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + const Str& value = CAST(Str&, args[1]); + int start = CAST(int, args[2]); + if (start < 0) vm->ValueError("argument 'start' can't be negative"); + return VAR(self.index(value, start)); + }); + + _vm->bind_method<1>(VM::tp_str, "startswith", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + const Str& prefix = CAST(Str&, args[1]); + return VAR(self.index(prefix) == 0); + }); + + _vm->bind_method<1>(VM::tp_str, "endswith", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + const Str& suffix = CAST(Str&, args[1]); + int offset = self.length() - suffix.length(); + if(offset < 0) return vm->False; + bool ok = memcmp(self.data+offset, suffix.data, suffix.length()) == 0; + return VAR(ok); + }); + + _vm->bind_method<0>(VM::tp_str, "encode", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + unsigned char* buffer = new unsigned char[self.length()]; + memcpy(buffer, self.data, self.length()); + return VAR(Bytes(buffer, self.length())); + }); + + _vm->bind_method<1>(VM::tp_str, "join", [](VM* vm, ArgsView args) { + auto _lock = vm->heap.gc_scope_lock(); + const Str& self = _CAST(Str&, args[0]); + SStream ss; + PyObject* it = vm->py_iter(args[1]); // strong ref + PyObject* obj = vm->py_next(it); + while(obj != vm->StopIteration){ + if(!ss.empty()) ss << self; + ss << CAST(Str&, obj); + obj = vm->py_next(it); + } + return VAR(ss.str()); + }); + + _vm->bind_method<0>(VM::tp_str, "lower", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + return VAR(self.lower()); + }); + + _vm->bind_method<0>(VM::tp_str, "upper", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + return VAR(self.upper()); + }); + + _vm->bind(_vm->_t(VM::tp_str), "strip(self, chars=None)", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + if(args[1] == vm->None){ + return VAR(self.strip()); + }else{ + const Str& chars = CAST(Str&, args[1]); + return VAR(self.strip(true, true, chars)); + } + }); + + _vm->bind(_vm->_t(VM::tp_str), "lstrip(self, chars=None)", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + if(args[1] == vm->None){ + return VAR(self.lstrip()); + }else{ + const Str& chars = CAST(Str&, args[1]); + return VAR(self.strip(true, false, chars)); + } + }); + + _vm->bind(_vm->_t(VM::tp_str), "rstrip(self, chars=None)", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + if(args[1] == vm->None){ + return VAR(self.rstrip()); + }else{ + const Str& chars = CAST(Str&, args[1]); + return VAR(self.strip(false, true, chars)); + } + }); + + // zfill + _vm->bind(_vm->_t(VM::tp_str), "zfill(self, width)", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + int width = CAST(int, args[1]); + int delta = width - self.u8_length(); + if(delta <= 0) return args[0]; + SStream ss; + for(int i=0; ibind(_vm->_t(VM::tp_str), "ljust(self, width, fillchar=' ')", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + int width = CAST(int, args[1]); + int delta = width - self.u8_length(); + if(delta <= 0) return args[0]; + const Str& fillchar = CAST(Str&, args[2]); + if (fillchar.u8_length() != 1) vm->TypeError("The fill character must be exactly one character long"); + SStream ss; + ss << self; + for(int i=0; ibind(_vm->_t(VM::tp_str), "rjust(self, width, fillchar=' ')", [](VM* vm, ArgsView args) { + const Str& self = _CAST(Str&, args[0]); + int width = CAST(int, args[1]); + int delta = width - self.u8_length(); + if(delta <= 0) return args[0]; + const Str& fillchar = CAST(Str&, args[2]); + if (fillchar.u8_length() != 1) vm->TypeError("The fill character must be exactly one character long"); + SStream ss; + for(int i=0; ibind(_vm->_t(VM::tp_list), "sort(self, key=None, reverse=False)", [](VM* vm, ArgsView args) { + List& self = _CAST(List&, args[0]); + PyObject* key = args[1]; + if(key == vm->None){ + std::stable_sort(self.begin(), self.end(), [vm](PyObject* a, PyObject* b){ + return vm->py_lt(a, b); + }); + }else{ + std::stable_sort(self.begin(), self.end(), [vm, key](PyObject* a, PyObject* b){ + return vm->py_lt(vm->call(key, a), vm->call(key, b)); + }); + } + bool reverse = CAST(bool, args[2]); + if(reverse) self.reverse(); + return vm->None; + }); + + _vm->bind__repr__(VM::tp_list, [](VM* vm, PyObject* _0){ + if(vm->_repr_recursion_set.count(_0)) return VAR("[...]"); + List& iterable = _CAST(List&, _0); + SStream ss; + ss << '['; + vm->_repr_recursion_set.insert(_0); + for(int i=0; ipy_repr(iterable[i])); + if(i != iterable.size()-1) ss << ", "; + } + vm->_repr_recursion_set.erase(_0); + ss << ']'; + return VAR(ss.str()); + }); + + _vm->bind__repr__(VM::tp_tuple, [](VM* vm, PyObject* _0){ + Tuple& iterable = _CAST(Tuple&, _0); + SStream ss; + ss << '('; + if(iterable.size() == 1){ + ss << CAST(Str&, vm->py_repr(iterable[0])); + ss << ','; + }else{ + for(int i=0; ipy_repr(iterable[i])); + if(i != iterable.size()-1) ss << ", "; + } + } + ss << ')'; + return VAR(ss.str()); + }); + + _vm->bind_constructor<-1>(_vm->_t(VM::tp_list), [](VM* vm, ArgsView args) { + if(args.size() == 1+0) return VAR(List()); + if(args.size() == 1+1) return vm->py_list(args[1]); + vm->TypeError("list() takes 0 or 1 arguments"); + return vm->None; + }); + + _vm->bind__contains__(VM::tp_list, [](VM* vm, PyObject* _0, PyObject* _1) { + List& self = _CAST(List&, _0); + for(PyObject* i: self) if(vm->py_eq(i, _1)) return vm->True; + return vm->False; + }); + + _vm->bind_method<1>(VM::tp_list, "count", [](VM* vm, ArgsView args) { + List& self = _CAST(List&, args[0]); + int count = 0; + for(PyObject* i: self) if(vm->py_eq(i, args[1])) count++; + return VAR(count); + }); + + _vm->bind__eq__(VM::tp_list, [](VM* vm, PyObject* _0, PyObject* _1) { + List& a = _CAST(List&, _0); + if(!is_type(_1, vm->tp_list)) return vm->NotImplemented; + List& b = _CAST(List&, _1); + if(a.size() != b.size()) return vm->False; + for(int i=0; ipy_eq(a[i], b[i])) return vm->False; + } + return vm->True; + }); + + _vm->bind(_vm->_t(VM::tp_list), "index(self, value, __start=0)", [](VM* vm, ArgsView args) { + List& self = _CAST(List&, args[0]); + PyObject* obj = args[1]; + int start = CAST(int, args[2]); + for(int i=start; ipy_eq(self[i], obj)) return VAR(i); + } + vm->ValueError(_CAST(Str&, vm->py_repr(obj)) + " is not in list"); + return vm->None; + }); + + _vm->bind_method<1>(VM::tp_list, "remove", [](VM* vm, ArgsView args) { + List& self = _CAST(List&, args[0]); + PyObject* obj = args[1]; + for(int i=0; ipy_eq(self[i], obj)){ + self.erase(i); + return vm->None; + } + } + vm->ValueError(_CAST(Str&, vm->py_repr(obj)) + " is not in list"); + return vm->None; + }); + + _vm->bind_method<-1>(VM::tp_list, "pop", [](VM* vm, ArgsView args) { + List& self = _CAST(List&, args[0]); + if(args.size() == 1+0){ + if(self.empty()) vm->IndexError("pop from empty list"); + return self.popx_back(); + } + if(args.size() == 1+1){ + i64 index = CAST(i64, args[1]); + index = vm->normalized_index(index, self.size()); + PyObject* ret = self[index]; + self.erase(index); + return ret; + } + vm->TypeError("pop() takes at most 1 argument"); + return vm->None; + }); + + _vm->bind_method<1>(VM::tp_list, "append", [](VM* vm, ArgsView args) { + List& self = _CAST(List&, args[0]); + self.push_back(args[1]); + return vm->None; + }); + + _vm->bind_method<1>(VM::tp_list, "extend", [](VM* vm, ArgsView args) { + auto _lock = vm->heap.gc_scope_lock(); + List& self = _CAST(List&, args[0]); + PyObject* it = vm->py_iter(args[1]); // strong ref + PyObject* obj = vm->py_next(it); + while(obj != vm->StopIteration){ + self.push_back(obj); + obj = vm->py_next(it); + } + return vm->None; + }); + + _vm->bind_method<0>(VM::tp_list, "reverse", [](VM* vm, ArgsView args) { + List& self = _CAST(List&, args[0]); + std::reverse(self.begin(), self.end()); + return vm->None; + }); + + _vm->bind__mul__(VM::tp_list, [](VM* vm, PyObject* _0, PyObject* _1) { + const List& self = _CAST(List&, _0); + if(!is_int(_1)) return vm->NotImplemented; + int n = _CAST(int, _1); + List result; + result.reserve(self.size() * n); + for(int i = 0; i < n; i++) result.extend(self); + return VAR(std::move(result)); + }); + _vm->bind_method<1>(VM::tp_list, "__rmul__", [](VM* vm, ArgsView args) { + const List& self = _CAST(List&, args[0]); + if(!is_int(args[1])) return vm->NotImplemented; + int n = _CAST(int, args[1]); + List result; + result.reserve(self.size() * n); + for(int i = 0; i < n; i++) result.extend(self); + return VAR(std::move(result)); + }); + + _vm->bind_method<2>(VM::tp_list, "insert", [](VM* vm, ArgsView args) { + List& self = _CAST(List&, args[0]); + int index = CAST(int, args[1]); + if(index < 0) index += self.size(); + if(index < 0) index = 0; + if(index > self.size()) index = self.size(); + self.insert(index, args[2]); + return vm->None; + }); + + _vm->bind_method<0>(VM::tp_list, "clear", [](VM* vm, ArgsView args) { + _CAST(List&, args[0]).clear(); + return vm->None; + }); + + _vm->bind_method<0>(VM::tp_list, "copy", PK_LAMBDA(VAR(_CAST(List, args[0])))); + +#define BIND_RICH_CMP(name, op, _t, _T) \ + _vm->bind__##name##__(_vm->_t, [](VM* vm, PyObject* lhs, PyObject* rhs){ \ + if(!is_type(rhs, vm->_t)) return vm->NotImplemented; \ + auto& a = _CAST(_T&, lhs); \ + auto& b = _CAST(_T&, rhs); \ + for(int i=0; ipy_eq(a[i], b[i])) continue; \ + return VAR(vm->py_##name(a[i], b[i])); \ + } \ + return VAR(a.size() op b.size()); \ + }); + + BIND_RICH_CMP(lt, <, tp_list, List) + BIND_RICH_CMP(le, <=, tp_list, List) + BIND_RICH_CMP(gt, >, tp_list, List) + BIND_RICH_CMP(ge, >=, tp_list, List) + + BIND_RICH_CMP(lt, <, tp_tuple, Tuple) + BIND_RICH_CMP(le, <=, tp_tuple, Tuple) + BIND_RICH_CMP(gt, >, tp_tuple, Tuple) + BIND_RICH_CMP(ge, >=, tp_tuple, Tuple) + +#undef BIND_RICH_CMP + + _vm->bind__add__(VM::tp_list, [](VM* vm, PyObject* _0, PyObject* _1) { + const List& self = _CAST(List&, _0); + const List& other = CAST(List&, _1); + List new_list(self); // copy construct + new_list.extend(other); + return VAR(std::move(new_list)); + }); + + _vm->bind__len__(VM::tp_list, [](VM* vm, PyObject* _0) { + return (i64)_CAST(List&, _0).size(); + }); + _vm->bind__iter__(VM::tp_list, [](VM* vm, PyObject* _0) { + List& self = _CAST(List&, _0); + return VAR_T(ArrayIter, _0, self.begin(), self.end()); + }); + _vm->bind__getitem__(VM::tp_list, PyArrayGetItem); + _vm->bind__setitem__(VM::tp_list, [](VM* vm, PyObject* _0, PyObject* _1, PyObject* _2){ + List& self = _CAST(List&, _0); + i64 i = CAST(i64, _1); + i = vm->normalized_index(i, self.size()); + self[i] = _2; + }); + _vm->bind__delitem__(VM::tp_list, [](VM* vm, PyObject* _0, PyObject* _1){ + List& self = _CAST(List&, _0); + i64 i = CAST(i64, _1); + i = vm->normalized_index(i, self.size()); + self.erase(i); + }); + + _vm->bind_constructor<-1>(_vm->_t(VM::tp_tuple), [](VM* vm, ArgsView args) { + if(args.size() == 1+0) return VAR(Tuple(0)); + if(args.size() == 1+1){ + List list(CAST(List, vm->py_list(args[1]))); + return VAR(Tuple(std::move(list))); + } + vm->TypeError("tuple() takes at most 1 argument"); + return vm->None; + }); + + _vm->bind__contains__(VM::tp_tuple, [](VM* vm, PyObject* obj, PyObject* item) { + Tuple& self = _CAST(Tuple&, obj); + for(PyObject* i: self) if(vm->py_eq(i, item)) return vm->True; + return vm->False; + }); + + _vm->bind_method<1>(VM::tp_tuple, "count", [](VM* vm, ArgsView args) { + Tuple& self = _CAST(Tuple&, args[0]); + int count = 0; + for(PyObject* i: self) if(vm->py_eq(i, args[1])) count++; + return VAR(count); + }); + + _vm->bind__eq__(VM::tp_tuple, [](VM* vm, PyObject* _0, PyObject* _1) { + const Tuple& self = _CAST(Tuple&, _0); + if(!is_type(_1, vm->tp_tuple)) return vm->NotImplemented; + const Tuple& other = _CAST(Tuple&, _1); + if(self.size() != other.size()) return vm->False; + for(int i = 0; i < self.size(); i++) { + if(!vm->py_eq(self[i], other[i])) return vm->False; + } + return vm->True; + }); + + _vm->bind__hash__(VM::tp_tuple, [](VM* vm, PyObject* _0) { + i64 x = 1000003; + for (PyObject* item: _CAST(Tuple&, _0)) { + i64 y = vm->py_hash(item); + // recommended by Github Copilot + x = x ^ (y + 0x9e3779b9 + (x << 6) + (x >> 2)); + } + return x; + }); + + _vm->bind__iter__(VM::tp_tuple, [](VM* vm, PyObject* _0) { + Tuple& self = _CAST(Tuple&, _0); + return VAR_T(ArrayIter, _0, self.begin(), self.end()); + }); + _vm->bind__getitem__(VM::tp_tuple, PyArrayGetItem); + _vm->bind__len__(VM::tp_tuple, [](VM* vm, PyObject* obj) { + return (i64)_CAST(Tuple&, obj).size(); + }); + + // tp_bool + _vm->bind_constructor<2>(_vm->_t(VM::tp_bool), PK_LAMBDA(VAR(vm->py_bool(args[1])))); + _vm->bind__hash__(VM::tp_bool, [](VM* vm, PyObject* _0) { + return (i64)_CAST(bool, _0); + }); + _vm->bind__repr__(VM::tp_bool, [](VM* vm, PyObject* _0) { + bool val = _CAST(bool, _0); + return VAR(val ? "True" : "False"); + }); + + _vm->bind__and__(VM::tp_bool, [](VM* vm, PyObject* _0, PyObject* _1) { + return VAR(_CAST(bool, _0) && CAST(bool, _1)); + }); + _vm->bind__or__(VM::tp_bool, [](VM* vm, PyObject* _0, PyObject* _1) { + return VAR(_CAST(bool, _0) || CAST(bool, _1)); + }); + _vm->bind__xor__(VM::tp_bool, [](VM* vm, PyObject* _0, PyObject* _1) { + return VAR(_CAST(bool, _0) != CAST(bool, _1)); + }); + _vm->bind__eq__(VM::tp_bool, [](VM* vm, PyObject* _0, PyObject* _1) { + if(is_type(_1, vm->tp_bool)) return VAR(_0 == _1); + if(is_int(_1)) return VAR(_CAST(bool, _0) == (bool)CAST(i64, _1)); + return vm->NotImplemented; + }); + + // tp_ellipsis / tp_NotImplementedType + _vm->bind__repr__(_vm->_tp(_vm->Ellipsis), [](VM* vm, PyObject* _0) { + return VAR("..."); + }); + _vm->bind__repr__(_vm->_tp(_vm->NotImplemented), [](VM* vm, PyObject* _0) { + return VAR("NotImplemented"); + }); + + // tp_bytes + _vm->bind_constructor<2>(_vm->_t(VM::tp_bytes), [](VM* vm, ArgsView args){ + List& list = CAST(List&, args[1]); + unsigned char* buffer = new unsigned char[list.size()]; + for(int i=0; i255) vm->ValueError("byte must be in range[0, 256)"); + buffer[i] = (char)b; + } + return VAR(Bytes(buffer, list.size())); + }); + + _vm->bind__getitem__(VM::tp_bytes, [](VM* vm, PyObject* _0, PyObject* _1) { + const Bytes& self = PK_OBJ_GET(Bytes, _0); + if(is_type(_1, vm->tp_slice)){ + const Slice& s = _CAST(Slice&, _1); + int start, stop, step; + vm->parse_int_slice(s, self.size(), start, stop, step); + int guess_max_size = abs(stop - start) / abs(step) + 1; + if(guess_max_size > self.size()) guess_max_size = self.size(); + unsigned char* buffer = new unsigned char[guess_max_size]; + int j = 0; // actual size + PK_SLICE_LOOP(i, start, stop, step) buffer[j++] = self[i]; + return VAR(Bytes(buffer, j)); + } + i64 i = CAST(i64, _1); + i = vm->normalized_index(i, self.size()); + return VAR(self[i]); + }); + + _vm->bind__add__(VM::tp_bytes, [](VM* vm, PyObject* _0, PyObject* _1) { + const Bytes& a = _CAST(Bytes&, _0); + const Bytes& b = CAST(Bytes&, _1); + unsigned char *buffer = new unsigned char[a.size() + b.size()]; + memcpy(buffer, a.data(), a.size()); + memcpy(buffer + a.size(), b.data(), b.size()); + return VAR(Bytes(buffer, a.size() + b.size())); + }); + + _vm->bind__hash__(VM::tp_bytes, [](VM* vm, PyObject* _0) { + const Bytes& self = _CAST(Bytes&, _0); + std::string_view view((char*)self.data(), self.size()); + return (i64)std::hash()(view); + }); + + _vm->bind__repr__(VM::tp_bytes, [](VM* vm, PyObject* _0) { + const Bytes& self = _CAST(Bytes&, _0); + SStream ss; + ss << "b'"; + for(int i=0; ibind__len__(VM::tp_bytes, [](VM* vm, PyObject* _0) { + return (i64)_CAST(Bytes&, _0).size(); + }); + + _vm->bind_method<0>(VM::tp_bytes, "decode", [](VM* vm, ArgsView args) { + const Bytes& self = _CAST(Bytes&, args[0]); + // TODO: check encoding is utf-8 + return VAR(Str(self.str())); + }); + + _vm->bind__eq__(VM::tp_bytes, [](VM* vm, PyObject* _0, PyObject* _1) { + if(!is_type(_1, vm->tp_bytes)) return vm->NotImplemented; + return VAR(_CAST(Bytes&, _0) == _CAST(Bytes&, _1)); + }); + + // tp_slice + _vm->bind_constructor<4>(_vm->_t(VM::tp_slice), [](VM* vm, ArgsView args) { + return VAR(Slice(args[1], args[2], args[3])); + }); + + _vm->bind__eq__(VM::tp_slice, [](VM* vm, PyObject* _0, PyObject* _1){ + const Slice& self = _CAST(Slice&, _0); + if(!is_type(_1, vm->tp_slice)) return vm->NotImplemented; + const Slice& other = _CAST(Slice&, _1); + if(vm->py_ne(self.start, other.start)) return vm->False; + if(vm->py_ne(self.stop, other.stop)) return vm->False; + if(vm->py_ne(self.step, other.step)) return vm->False; + return vm->True; + }); + + _vm->bind__repr__(VM::tp_slice, [](VM* vm, PyObject* _0) { + const Slice& self = _CAST(Slice&, _0); + SStream ss; + ss << "slice("; + ss << CAST(Str, vm->py_repr(self.start)) << ", "; + ss << CAST(Str, vm->py_repr(self.stop)) << ", "; + ss << CAST(Str, vm->py_repr(self.step)) << ")"; + return VAR(ss.str()); + }); + + // tp_mappingproxy + _vm->bind_method<0>(VM::tp_mappingproxy, "keys", [](VM* vm, ArgsView args) { + MappingProxy& self = _CAST(MappingProxy&, args[0]); + List keys; + for(StrName name : self.attr().keys()) keys.push_back(VAR(name.sv())); + return VAR(std::move(keys)); + }); + + _vm->bind_method<0>(VM::tp_mappingproxy, "values", [](VM* vm, ArgsView args) { + MappingProxy& self = _CAST(MappingProxy&, args[0]); + List values; + for(auto [k, v] : self.attr().items()) values.push_back(v); + return VAR(std::move(values)); + }); + + _vm->bind_method<0>(VM::tp_mappingproxy, "items", [](VM* vm, ArgsView args) { + MappingProxy& self = _CAST(MappingProxy&, args[0]); + List items; + for(auto [k, v] : self.attr().items()){ + PyObject* t = VAR(Tuple(VAR(k.sv()), v)); + items.push_back(std::move(t)); + } + return VAR(std::move(items)); + }); + + _vm->bind__len__(VM::tp_mappingproxy, [](VM* vm, PyObject* _0) { + return (i64)_CAST(MappingProxy&, _0).attr().size(); + }); + + _vm->bind__eq__(VM::tp_mappingproxy, [](VM* vm, PyObject* _0, PyObject* _1){ + const MappingProxy& a = _CAST(MappingProxy&, _0); + if(!is_type(_1, VM::tp_mappingproxy)) return vm->NotImplemented; + const MappingProxy& b = _CAST(MappingProxy&, _1); + return VAR(a.obj == b.obj); + }); + + _vm->bind__getitem__(VM::tp_mappingproxy, [](VM* vm, PyObject* _0, PyObject* _1) { + MappingProxy& self = _CAST(MappingProxy&, _0); + StrName key = CAST(Str&, _1); + PyObject* ret = self.attr().try_get_likely_found(key); + if(ret == nullptr) vm->KeyError(_1); + return ret; + }); + + _vm->bind(_vm->_t(VM::tp_mappingproxy), "get(self, key, default=None)", [](VM* vm, ArgsView args) { + MappingProxy& self = _CAST(MappingProxy&, args[0]); + StrName key = CAST(Str&, args[1]); + PyObject* ret = self.attr().try_get(key); + if(ret == nullptr) return args[2]; + return ret; + }); + + _vm->bind__repr__(VM::tp_mappingproxy, [](VM* vm, PyObject* _0) { + if(vm->_repr_recursion_set.count(_0)) return VAR("{...}"); + MappingProxy& self = _CAST(MappingProxy&, _0); + SStream ss; + ss << "mappingproxy({"; + bool first = true; + vm->_repr_recursion_set.insert(_0); + for(auto [k, v] : self.attr().items()){ + if(!first) ss << ", "; + first = false; + ss << k.escape() << ": "; + ss << CAST(Str, vm->py_repr(v)); + } + vm->_repr_recursion_set.erase(_0); + ss << "})"; + return VAR(ss.str()); + }); + + _vm->bind__contains__(VM::tp_mappingproxy, [](VM* vm, PyObject* _0, PyObject* _1) { + MappingProxy& self = _CAST(MappingProxy&, _0); + return VAR(self.attr().contains(CAST(Str&, _1))); + }); + + // tp_dict + _vm->bind_constructor<-1>(_vm->_t(VM::tp_dict), [](VM* vm, ArgsView args){ + Type cls_t = PK_OBJ_GET(Type, args[0]); + return vm->heap.gcnew(cls_t, vm); + }); + + _vm->bind_method<-1>(VM::tp_dict, __init__, [](VM* vm, ArgsView args){ + if(args.size() == 1+0) return vm->None; + if(args.size() == 1+1){ + auto _lock = vm->heap.gc_scope_lock(); + Dict& self = PK_OBJ_GET(Dict, args[0]); + if(is_type(args[1], vm->tp_dict)){ + Dict& other = CAST(Dict&, args[1]); + self.update(other); + return vm->None; + } + if(is_type(args[1], vm->tp_list)){ + List& list = PK_OBJ_GET(List, args[1]); + for(PyObject* item : list){ + Tuple& t = CAST(Tuple&, item); + if(t.size() != 2){ + vm->ValueError("dict() takes an iterable of tuples (key, value)"); + return vm->None; + } + self.set(t[0], t[1]); + } + } + return vm->None; + } + vm->TypeError("dict() takes at most 1 argument"); + PK_UNREACHABLE() + }); + + _vm->bind__len__(VM::tp_dict, [](VM* vm, PyObject* _0) { + return (i64)PK_OBJ_GET(Dict, _0).size(); + }); + + _vm->bind__getitem__(VM::tp_dict, [](VM* vm, PyObject* _0, PyObject* _1) { + Dict& self = PK_OBJ_GET(Dict, _0); + PyObject* ret = self.try_get(_1); + if(ret == nullptr){ + // try __missing__ + PyObject* self; + PyObject* f_missing = vm->get_unbound_method(_0, __missing__, &self, false); + if(f_missing != nullptr){ + return vm->call_method(self, f_missing, _1); + } + vm->KeyError(_1); + } + return ret; + }); + + _vm->bind__setitem__(VM::tp_dict, [](VM* vm, PyObject* _0, PyObject* _1, PyObject* _2) { + Dict& self = _CAST(Dict&, _0); + self.set(_1, _2); + }); + + _vm->bind__delitem__(VM::tp_dict, [](VM* vm, PyObject* _0, PyObject* _1) { + Dict& self = _CAST(Dict&, _0); + bool ok = self.erase(_1); + if(!ok) vm->KeyError(_1); + }); + + _vm->bind_method<-1>(VM::tp_dict, "pop", [](VM* vm, ArgsView args) { + if(args.size() != 2 && args.size() != 3){ + vm->TypeError("pop() expected 1 or 2 arguments"); + return vm->None; + } + Dict& self = _CAST(Dict&, args[0]); + PyObject* value = self.try_get(args[1]); + if(value == nullptr){ + if(args.size() == 2) vm->KeyError(args[1]); + if(args.size() == 3){ + return args[2]; + } + } + self.erase(args[1]); + return value; + }); + + _vm->bind__contains__(VM::tp_dict, [](VM* vm, PyObject* _0, PyObject* _1) { + Dict& self = _CAST(Dict&, _0); + return VAR(self.contains(_1)); + }); + + _vm->bind__iter__(VM::tp_dict, [](VM* vm, PyObject* _0) { + const Dict& self = _CAST(Dict&, _0); + return vm->py_iter(VAR(self.keys())); + }); + + _vm->bind_method<-1>(VM::tp_dict, "get", [](VM* vm, ArgsView args) { + Dict& self = _CAST(Dict&, args[0]); + if(args.size() == 1+1){ + PyObject* ret = self.try_get(args[1]); + if(ret != nullptr) return ret; + return vm->None; + }else if(args.size() == 1+2){ + PyObject* ret = self.try_get(args[1]); + if(ret != nullptr) return ret; + return args[2]; + } + vm->TypeError("get() takes at most 2 arguments"); + return vm->None; + }); + + _vm->bind_method<0>(VM::tp_dict, "keys", [](VM* vm, ArgsView args) { + const Dict& self = _CAST(Dict&, args[0]); + return VAR(self.keys()); + }); + + _vm->bind_method<0>(VM::tp_dict, "values", [](VM* vm, ArgsView args) { + const Dict& self = _CAST(Dict&, args[0]); + return VAR(self.values()); + }); + + _vm->bind_method<0>(VM::tp_dict, "items", [](VM* vm, ArgsView args) { + const Dict& self = _CAST(Dict&, args[0]); + Tuple items(self.size()); + int j = 0; + self.apply([&](PyObject* k, PyObject* v){ + items[j++] = VAR(Tuple(k, v)); + }); + return VAR(std::move(items)); + }); + + _vm->bind_method<1>(VM::tp_dict, "update", [](VM* vm, ArgsView args) { + Dict& self = _CAST(Dict&, args[0]); + const Dict& other = CAST(Dict&, args[1]); + self.update(other); + return vm->None; + }); + + _vm->bind_method<0>(VM::tp_dict, "copy", [](VM* vm, ArgsView args) { + const Dict& self = _CAST(Dict&, args[0]); + return VAR(self); + }); + + _vm->bind_method<0>(VM::tp_dict, "clear", [](VM* vm, ArgsView args) { + Dict& self = _CAST(Dict&, args[0]); + self.clear(); + return vm->None; + }); + + _vm->bind__repr__(VM::tp_dict, [](VM* vm, PyObject* _0) { + if(vm->_repr_recursion_set.count(_0)) return VAR("{...}"); + Dict& self = _CAST(Dict&, _0); + SStream ss; + ss << "{"; + bool first = true; + vm->_repr_recursion_set.insert(_0); + self.apply([&](PyObject* k, PyObject* v){ + if(!first) ss << ", "; + first = false; + ss << CAST(Str&, vm->py_repr(k)) << ": " << CAST(Str&, vm->py_repr(v)); + }); + vm->_repr_recursion_set.erase(_0); + ss << "}"; + return VAR(ss.str()); + }); + + _vm->bind__eq__(VM::tp_dict, [](VM* vm, PyObject* _0, PyObject* _1) { + Dict& self = _CAST(Dict&, _0); + if(!vm->isinstance(_1, vm->tp_dict)) return vm->NotImplemented; + Dict& other = _CAST(Dict&, _1); + if(self.size() != other.size()) return vm->False; + for(int i=0; iFalse; + if(!vm->py_eq(item.second, value)) return vm->False; + } + return vm->True; + }); + + _vm->bind__repr__(VM::tp_module, [](VM* vm, PyObject* _0) { + const Str& path = CAST(Str&, _0->attr(__path__)); + return VAR(_S("")); + }); + + // tp_property + _vm->bind_constructor<-1>(_vm->_t(VM::tp_property), [](VM* vm, ArgsView args) { + if(args.size() == 1+1){ + return VAR(Property(args[1], vm->None)); + }else if(args.size() == 1+2){ + return VAR(Property(args[1], args[2])); + } + vm->TypeError("property() takes at most 2 arguments"); + return vm->None; + }); + + _vm->bind_property(_vm->_t(VM::tp_function), "__doc__", [](VM* vm, ArgsView args) { + Function& func = _CAST(Function&, args[0]); + if(!func.decl->docstring) return vm->None; + return VAR(func.decl->docstring); + }); + + _vm->bind_property(_vm->_t(VM::tp_native_func), "__doc__", [](VM* vm, ArgsView args) { + NativeFunc& func = _CAST(NativeFunc&, args[0]); + if(func.decl == nullptr) return vm->None; + if(!func.decl->docstring) return vm->None; + return VAR(func.decl->docstring); + }); + + // tp_exception + _vm->bind_constructor<-1>(_vm->_t(VM::tp_exception), [](VM* vm, ArgsView args){ + Type cls = PK_OBJ_GET(Type, args[0]); + StrName cls_name = _type_name(vm, cls); + PyObject* e_obj = vm->heap.gcnew(cls, cls_name); + e_obj->_enable_instance_dict(); + PK_OBJ_GET(Exception, e_obj)._self = e_obj; + return e_obj; + }); + + _vm->bind(_vm->_t(VM::tp_exception), "__init__(self, msg=...)", [](VM* vm, ArgsView args){ + Exception& self = _CAST(Exception&, args[0]); + if(args[1] == vm->Ellipsis){ + self.msg = ""; + }else{ + self.msg = CAST(Str, args[1]); + } + return vm->None; + }); + + _vm->bind__repr__(VM::tp_exception, [](VM* vm, PyObject* _0) { + Exception& self = _CAST(Exception&, _0); + return VAR(_S(_type_name(vm, _0->type), '(', self.msg.escape(), ')')); + }); + + _vm->bind__str__(VM::tp_exception, [](VM* vm, PyObject* _0) { + Exception& self = _CAST(Exception&, _0); + return VAR(self.msg); + }); + + RangeIter::register_class(_vm, _vm->builtins); + ArrayIter::register_class(_vm, _vm->builtins); + StringIter::register_class(_vm, _vm->builtins); + Generator::register_class(_vm, _vm->builtins); +} + +void VM::post_init(){ + init_builtins(this); + + bind_method<-1>(tp_module, "__init__", [](VM* vm, ArgsView args) { + vm->NotImplementedError(); + return vm->None; + }); + + _all_types[tp_module].m__getattr__ = [](VM* vm, PyObject* obj, StrName name) -> PyObject*{ + const Str& path = CAST(Str&, obj->attr(__path__)); + return vm->py_import(_S(path, ".", name.sv()), false); + }; + + bind_method<1>(tp_property, "setter", [](VM* vm, ArgsView args) { + Property& self = _CAST(Property&, args[0]); + // The setter's name is not necessary to be the same as the property's name + // However, for cpython compatibility, we recommend to use the same name + self.setter = args[1]; + return args[0]; + }); + + // type + bind__getitem__(tp_type, [](VM* vm, PyObject* self, PyObject* _){ + return self; // for generics + }); + + bind__repr__(tp_type, [](VM* vm, PyObject* self){ + SStream ss; + const PyTypeInfo& info = vm->_all_types[PK_OBJ_GET(Type, self)]; + ss << ""; + return VAR(ss.str()); + }); + + bind_property(_t(tp_object), "__class__", PK_LAMBDA(vm->_t(args[0]))); + bind_property(_t(tp_type), "__base__", [](VM* vm, ArgsView args){ + const PyTypeInfo& info = vm->_all_types[PK_OBJ_GET(Type, args[0])]; + return info.base.index == -1 ? vm->None : vm->_all_types[info.base].obj; + }); + bind_property(_t(tp_type), "__name__", [](VM* vm, ArgsView args){ + const PyTypeInfo& info = vm->_all_types[PK_OBJ_GET(Type, args[0])]; + return VAR(info.name.sv()); + }); + bind_property(_t(tp_type), "__module__", [](VM* vm, ArgsView args){ + const PyTypeInfo& info = vm->_all_types[PK_OBJ_GET(Type, args[0])]; + if(info.mod == nullptr) return vm->None; + return info.mod; + }); + bind_property(_t(tp_bound_method), "__self__", [](VM* vm, ArgsView args){ + return CAST(BoundMethod&, args[0]).self; + }); + bind_property(_t(tp_bound_method), "__func__", [](VM* vm, ArgsView args){ + return CAST(BoundMethod&, args[0]).func; + }); + + bind__eq__(tp_bound_method, [](VM* vm, PyObject* lhs, PyObject* rhs){ + if(!is_type(rhs, vm->tp_bound_method)) return vm->NotImplemented; + const BoundMethod& _0 = PK_OBJ_GET(BoundMethod, lhs); + const BoundMethod& _1 = PK_OBJ_GET(BoundMethod, rhs); + return VAR(_0.self == _1.self && _0.func == _1.func); + }); + + bind_property(_t(tp_slice), "start", [](VM* vm, ArgsView args){ + return CAST(Slice&, args[0]).start; + }); + bind_property(_t(tp_slice), "stop", [](VM* vm, ArgsView args){ + return CAST(Slice&, args[0]).stop; + }); + bind_property(_t(tp_slice), "step", [](VM* vm, ArgsView args){ + return CAST(Slice&, args[0]).step; + }); + + bind_property(_t(tp_object), "__dict__", [](VM* vm, ArgsView args){ + if(is_tagged(args[0]) || !args[0]->is_attr_valid()) return vm->None; + return VAR(MappingProxy(args[0])); + }); + + bind(builtins, "print(*args, sep=' ', end='\\n')", [](VM* vm, ArgsView args) { + const Tuple& _0 = CAST(Tuple&, args[0]); + const Str& _1 = CAST(Str&, args[1]); + const Str& _2 = CAST(Str&, args[2]); + SStream ss; + for(int i=0; i<_0.size(); i++){ + ss << CAST(Str&, vm->py_str(_0[i])); + if(i != _0.size()-1) ss << _1; + } + ss << _2; + vm->stdout_write(ss.str()); + return vm->None; + }); + + add_module___builtins(vm); + add_module_sys(this); + add_module_traceback(this); + add_module_time(this); + add_module_json(this); + add_module_math(this); + add_module_dis(this); + add_module_c(this); + add_module_gc(this); + add_module_random(this); + add_module_base64(this); + add_module_operator(this); + + _lazy_modules["this"] = kPythonLibs_this; + _lazy_modules["functools"] = kPythonLibs_functools; + _lazy_modules["heapq"] = kPythonLibs_heapq; + _lazy_modules["bisect"] = kPythonLibs_bisect; + _lazy_modules["pickle"] = kPythonLibs_pickle; + _lazy_modules["_long"] = kPythonLibs__long; + _lazy_modules["colorsys"] = kPythonLibs_colorsys; + _lazy_modules["typing"] = kPythonLibs_typing; + _lazy_modules["datetime"] = kPythonLibs_datetime; + _lazy_modules["cmath"] = kPythonLibs_cmath; + _lazy_modules["itertools"] = kPythonLibs_itertools; + + try{ + CodeObject_ code = compile(kPythonLibs_builtins, "", EXEC_MODE); + this->_exec(code, this->builtins); + code = compile(kPythonLibs__set, "", EXEC_MODE); + this->_exec(code, this->builtins); + }catch(const Exception& e){ + std::cerr << e.summary() << std::endl; + std::cerr << "failed to load builtins module!!" << std::endl; + exit(1); + } + + if(enable_os){ + add_module_io(this); + add_module_os(this); + _import_handler = _default_import_handler; + } + + add_module_csv(this); + add_module_dataclasses(this); + add_module_linalg(this); + add_module_easing(this); + add_module_collections(this); + add_module_array2d(this); + add_module_line_profiler(this); + add_module_enum(this); + +#ifdef PK_USE_CJSON + add_module_cjson(this); +#endif +} + +CodeObject_ VM::compile(std::string_view source, const Str& filename, CompileMode mode, bool unknown_global_scope) { + Compiler compiler(this, source, filename, mode, unknown_global_scope); + try{ + return compiler.compile(); + }catch(const Exception& e){ + _error(e.self()); + return nullptr; + } +} + +Str VM::precompile(std::string_view source, const Str& filename, CompileMode mode){ + Compiler compiler(this, source, filename, mode, false); + try{ + return compiler.precompile(); + }catch(const Exception& e){ + _error(e.self()); + return nullptr; + } +} + +} // namespace pkpy diff --git a/dependencies/pocketpy/src/pocketpy_c.cpp b/dependencies/pocketpy/src/pocketpy_c.cpp new file mode 100644 index 0000000..47ce89a --- /dev/null +++ b/dependencies/pocketpy/src/pocketpy_c.cpp @@ -0,0 +1,586 @@ +#ifndef PK_NO_EXPORT_C_API + +#include "pocketpy.h" +#include "pocketpy_c.h" + +using namespace pkpy; + +typedef int (*LuaStyleFuncC)(VM*); + +#define PK_ASSERT_N_EXTRA_ELEMENTS(n) \ + int __ex_count = count_extra_elements(vm, n); \ + if(__ex_count < n){ \ + Str msg = _S("expected at least ", n, " elements, got ", __ex_count); \ + pkpy_error(vm_handle, "StackError", pkpy_string(msg.c_str())); \ + return false; \ + } + +#define PK_ASSERT_NO_ERROR() \ + if(vm->_c.error != nullptr) \ + return false; + +static int count_extra_elements(VM* vm, int n){ + if(vm->callstack.empty()){ + return vm->s_data.size(); + } + PK_ASSERT(!vm->_c.s_view.empty()); + return vm->s_data._sp - vm->_c.s_view.top().end(); +} + +static PyObject* stack_item(VM* vm, int index){ + PyObject** begin; + PyObject** end = vm->s_data.end(); + if(vm->callstack.empty()){ + begin = vm->s_data.begin(); + }else{ + PK_ASSERT(!vm->_c.s_view.empty()); + begin = vm->_c.s_view.top().begin(); + } + int size = end - begin; + if(index < 0) index += size; + if(index < 0 || index >= size){ + throw std::runtime_error("stack_item() => index out of range"); + } + return begin[index]; +} + +#define PK_PROTECTED(__B) \ + try{ __B } \ + catch(const Exception& e ) { \ + vm->_c.error = e.self(); \ + return false; \ + } catch(const std::exception& re){ \ + PyObject* e_t = vm->_t(vm->tp_exception); \ + vm->_c.error = vm->call(e_t, VAR(re.what())); \ + return false; \ + } + +pkpy_vm* pkpy_new_vm(bool enable_os){ + return (pkpy_vm*)new VM(enable_os); +} + +void pkpy_delete_vm(pkpy_vm* vm){ + return delete (VM*)vm; +} + +bool pkpy_exec(pkpy_vm* vm_handle, const char* source) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PyObject* res; + PK_PROTECTED( + CodeObject_ code = vm->compile(source, "main.py", EXEC_MODE); + res = vm->_exec(code, vm->_main); + ) + return res != nullptr; +} + +bool pkpy_exec_2(pkpy_vm* vm_handle, const char* source, const char* filename, int mode, const char* module){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PyObject* res; + PyObject* mod; + PK_PROTECTED( + if(module == nullptr){ + mod = vm->_main; + }else{ + mod = vm->_modules[module]; // may raise + } + CodeObject_ code = vm->compile(source, filename, (CompileMode)mode); + res = vm->_exec(code, mod); + ) + return res != nullptr; +} + +void pkpy_set_main_argv(pkpy_vm* vm_handle, int argc, char** argv){ + VM* vm = (VM*) vm_handle; + vm->set_main_argv(argc, argv); +} + +bool pkpy_dup(pkpy_vm* vm_handle, int n){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + PyObject* item = stack_item(vm, n); + vm->s_data.push(item); + ) + return true; +} + +bool pkpy_pop(pkpy_vm* vm_handle, int n){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_ASSERT_N_EXTRA_ELEMENTS(n) + vm->s_data.shrink(n); + return true; +} + +bool pkpy_pop_top(pkpy_vm* vm_handle){ + VM* vm = (VM*)vm_handle; + PK_ASSERT_NO_ERROR() + PK_ASSERT_N_EXTRA_ELEMENTS(1) + vm->s_data.pop(); + return true; +} + +bool pkpy_dup_top(pkpy_vm* vm_handle){ + VM* vm = (VM*)vm_handle; + PK_ASSERT_NO_ERROR() + PK_ASSERT_N_EXTRA_ELEMENTS(1) + vm->s_data.push(vm->s_data.top()); + return true; +} + +bool pkpy_rot_two(pkpy_vm* vm_handle){ + VM* vm = (VM*)vm_handle; + PK_ASSERT_NO_ERROR() + PK_ASSERT_N_EXTRA_ELEMENTS(2) + std::swap(vm->s_data.top(), vm->s_data.second()); + return true; +} + +int pkpy_stack_size(pkpy_vm* vm_handle){ + VM* vm = (VM*)vm_handle; + PK_ASSERT_NO_ERROR() + if(vm->callstack.empty()){ + return vm->s_data.size(); + } + if(vm->_c.s_view.empty()) exit(127); + return vm->s_data._sp - vm->_c.s_view.top().begin(); +} + +// int +bool pkpy_push_int(pkpy_vm* vm_handle, int value) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PyObject* res; + PK_PROTECTED( + // int may overflow so we should protect it + res = py_var(vm, value); + ) + vm->s_data.push(res); + return true; +} + +bool pkpy_is_int(pkpy_vm* vm_handle, int i){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + return is_int(stack_item(vm, i)); + ) +} + +bool pkpy_to_int(pkpy_vm* vm_handle, int i, int* out){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + PyObject* item = stack_item(vm, i); + *out = py_cast(vm, item); + ) + return true; +} + +// float +bool pkpy_push_float(pkpy_vm* vm_handle, double value) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PyObject* res = py_var(vm, value); + vm->s_data.push(res); + return true; +} + +bool pkpy_is_float(pkpy_vm* vm_handle, int i){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + PyObject* item = stack_item(vm, i); + return is_float(item); + ) +} + +bool pkpy_to_float(pkpy_vm* vm_handle, int i, double* out){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + PyObject* item = stack_item(vm, i); + *out = py_cast(vm, item); + ) + return true; +} + +// bool +bool pkpy_push_bool(pkpy_vm* vm_handle, bool value) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + vm->s_data.push(value ? vm->True : vm->False); + return true; +} + +bool pkpy_is_bool(pkpy_vm* vm_handle, int i){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + PyObject* item = stack_item(vm, i); + return is_type(item, vm->tp_bool); + ) +} + +bool pkpy_to_bool(pkpy_vm* vm_handle, int i, bool* out){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + PyObject* item = stack_item(vm, i); + *out = py_cast(vm, item); + ) + return true; +} + +// string +bool pkpy_push_string(pkpy_vm* vm_handle, pkpy_CString value) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PyObject* res = py_var(vm, value); + vm->s_data.push(res); + return true; +} + +bool pkpy_is_string(pkpy_vm* vm_handle, int i){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + PyObject* item = stack_item(vm, i); + return is_type(item, vm->tp_str); + ) +} + +bool pkpy_to_string(pkpy_vm* vm_handle, int i, pkpy_CString* out){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + PyObject* item = stack_item(vm, i); + const Str& s = py_cast(vm, item); + *out = s.c_str(); + ) + return true; +} + +// void_p +bool pkpy_push_voidp(pkpy_vm* vm_handle, void* value) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PyObject* res = py_var(vm, value); + vm->s_data.push(res); + return true; +} + +bool pkpy_is_voidp(pkpy_vm* vm_handle, int i){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + PyObject* item = stack_item(vm, i); + return is_type(item, VoidP::_type(vm)); + ) +} + +bool pkpy_to_voidp(pkpy_vm* vm_handle, int i, void** out){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + PyObject* item = stack_item(vm, i); + VoidP& vp = py_cast(vm, item); + *out = vp.ptr; + ) + return true; +} + +// none +bool pkpy_push_none(pkpy_vm* vm_handle) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + vm->s_data.push(vm->None); + return true; +} + +bool pkpy_is_none(pkpy_vm* vm_handle, int i){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + PyObject* item = stack_item(vm, i); + return item == vm->None; + ) +} + +// null +bool pkpy_push_null(pkpy_vm* vm_handle) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + vm->s_data.push(PY_NULL); + return true; +} + +struct TempViewPopper{ + VM* vm; + bool used; + + TempViewPopper(VM* vm): vm(vm), used(false) {} + + void restore() noexcept{ + if(used) return; + vm->_c.s_view.pop(); + used = true; + } + + ~TempViewPopper(){ restore(); } +}; + +// function +static PyObject* c_function_wrapper(VM* vm, ArgsView args) { + LuaStyleFuncC f = lambda_get_userdata(args.begin()); + PyObject** curr_sp = vm->s_data._sp; + + vm->_c.s_view.push(args); + TempViewPopper _tvp(vm); + int retc = f(vm); // may raise, _tvp will handle this via RAII + _tvp.restore(); + + // propagate_if_errored + if (vm->_c.error != nullptr){ + PyObject* e_obj = PK_OBJ_GET(Exception, vm->_c.error).self(); + vm->_c.error = nullptr; + vm->_error(e_obj); + return nullptr; + } + PK_ASSERT(retc == vm->s_data._sp-curr_sp); + if(retc == 0) return vm->None; + if (retc == 1) return vm->s_data.popx(); + ArgsView ret_view(curr_sp, vm->s_data._sp); + return py_var(vm, ret_view.to_tuple()); +} + +bool pkpy_push_function(pkpy_vm* vm_handle, const char* sig, pkpy_CFunction f) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PyObject* f_obj; + PK_PROTECTED( + f_obj = vm->bind( + nullptr, + sig, + nullptr, + c_function_wrapper, + f + ); + ) + vm->s_data.push(f_obj); + return true; +} + +// special push +bool pkpy_push_module(pkpy_vm* vm_handle, const char* name) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + PyObject* module = vm->new_module(name); + vm->s_data.push(module); + ) + return true; +} + +// some opt +bool pkpy_getattr(pkpy_vm* vm_handle, pkpy_CName name) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_ASSERT_N_EXTRA_ELEMENTS(1) + PyObject* o = vm->s_data.top(); + o = vm->getattr(o, StrName(name), false); + if(o == nullptr) return false; + vm->s_data.top() = o; + return true; +} + +bool pkpy_setattr(pkpy_vm* vm_handle, pkpy_CName name) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_ASSERT_N_EXTRA_ELEMENTS(2) + PyObject* a = vm->s_data.top(); + PyObject* val = vm->s_data.second(); + PK_PROTECTED( + vm->setattr(a, StrName(name), val); + ) + vm->s_data.shrink(2); + return true; +} + +//get global will also get bulitins +bool pkpy_getglobal(pkpy_vm* vm_handle, pkpy_CName name) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PyObject* o = vm->_main->attr().try_get(StrName(name)); + if (o == nullptr) { + o = vm->builtins->attr().try_get(StrName(name)); + if (o == nullptr) return false; + } + vm->s_data.push(o); + return true; +} + +bool pkpy_setglobal(pkpy_vm* vm_handle, pkpy_CName name) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_ASSERT_N_EXTRA_ELEMENTS(1) + vm->_main->attr().set(StrName(name), vm->s_data.popx()); + return true; +} + +bool pkpy_eval(pkpy_vm* vm_handle, const char* source) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_PROTECTED( + CodeObject_ co = vm->compile(source, "", EVAL_MODE); + PyObject* ret = vm->_exec(co, vm->_main); + vm->s_data.push(ret); + ) + return true; +} + +bool pkpy_unpack_sequence(pkpy_vm* vm_handle, int n) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_ASSERT_N_EXTRA_ELEMENTS(1) + auto _lock = vm->heap.gc_scope_lock(); + PK_PROTECTED( + PyObject* _0 = vm->py_iter(vm->s_data.popx()); + for(int i=0; ipy_next(_0); + if(_1 == vm->StopIteration) vm->ValueError("not enough values to unpack"); + vm->s_data.push(_1); + } + if(vm->py_next(_0) != vm->StopIteration) vm->ValueError("too many values to unpack"); + ) + return true; +} + +bool pkpy_get_unbound_method(pkpy_vm* vm_handle, pkpy_CName name){ + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_ASSERT_N_EXTRA_ELEMENTS(1) + PyObject* o = vm->s_data.top(); + PyObject* self; + PK_PROTECTED( + o = vm->get_unbound_method(o, StrName(name), &self); + ) + vm->s_data.pop(); + vm->s_data.push(o); + vm->s_data.push(self); + return true; +} + +bool pkpy_py_repr(pkpy_vm* vm_handle) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_ASSERT_N_EXTRA_ELEMENTS(1) + PyObject* item = vm->s_data.top(); + PK_PROTECTED( + item = vm->py_repr(item); + ) + vm->s_data.top() = item; + return true; +} + +bool pkpy_py_str(pkpy_vm* vm_handle) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_ASSERT_N_EXTRA_ELEMENTS(1) + PyObject* item = vm->s_data.top(); + PK_PROTECTED( + item = vm->py_str(item); + ) + vm->s_data.top() = item; + return true; +} + +/* Error Handling */ +bool pkpy_error(pkpy_vm* vm_handle, const char* name, pkpy_CString message) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PyObject* e_t = vm->_main->attr().try_get_likely_found(name); + if(e_t == nullptr){ + e_t = vm->builtins->attr().try_get_likely_found(name); + if(e_t == nullptr){ + e_t = vm->_t(vm->tp_exception); + std::cerr << "[warning] pkpy_error(): " << Str(name).escape() << " not found, fallback to 'Exception'" << std::endl; + } + } + vm->_c.error = vm->call(e_t, VAR(message)); + return false; +} + +bool pkpy_check_error(pkpy_vm* vm_handle) { + VM* vm = (VM*) vm_handle; + return vm->_c.error != nullptr; +} + +bool pkpy_clear_error(pkpy_vm* vm_handle, char** message) { + VM* vm = (VM*) vm_handle; + // no error + if (vm->_c.error == nullptr) return false; + Exception& e = PK_OBJ_GET(Exception, vm->_c.error); + if (message != nullptr) + *message = strdup(e.summary().c_str()); + else + std::cout << e.summary() << std::endl; + vm->_c.error = nullptr; + if(vm->callstack.empty()){ + vm->s_data.clear(); + }else{ + if(vm->_c.s_view.empty()) exit(127); + vm->s_data.reset(vm->_c.s_view.top().end()); + } + return true; +} + +bool pkpy_vectorcall(pkpy_vm* vm_handle, int argc) { + VM* vm = (VM*) vm_handle; + PK_ASSERT_NO_ERROR() + PK_ASSERT_N_EXTRA_ELEMENTS(argc + 2) + PyObject* res; + PK_PROTECTED( + res = vm->vectorcall(argc); + ) + vm->s_data.push(res); + return true; +} +/*****************************************************************/ +void pkpy_free(void* p){ + free(p); +} + +pkpy_CName pkpy_name(const char* name){ + return StrName(name).index; +} + +pkpy_CString pkpy_name_to_string(pkpy_CName name){ + return StrName(name).c_str(); +} + +void pkpy_set_output_handler(pkpy_vm* vm_handle, pkpy_COutputHandler handler){ + VM* vm = (VM*) vm_handle; + vm->_stdout = handler; +} + +void pkpy_set_import_handler(pkpy_vm* vm_handle, pkpy_CImportHandler handler){ + VM* vm = (VM*) vm_handle; + vm->_import_handler = handler; +} + +void* pkpy_new_repl(pkpy_vm* vm_handle){ + return new REPL((VM*)vm_handle); +} + +bool pkpy_repl_input(void* r, const char* line){ + return ((REPL*)r)->input(line); +} + +void pkpy_delete_repl(void* repl){ + delete (REPL*)repl; +} + +#endif // PK_NO_EXPORT_C_API \ No newline at end of file diff --git a/dependencies/pocketpy/src/profiler.cpp b/dependencies/pocketpy/src/profiler.cpp new file mode 100644 index 0000000..728d6f0 --- /dev/null +++ b/dependencies/pocketpy/src/profiler.cpp @@ -0,0 +1,125 @@ +#include "pocketpy/profiler.h" + +namespace pkpy{ + +static std::string left_pad(std::string s, int width){ + int n = width - s.size(); + if(n <= 0) return s; + return std::string(n, ' ') + s; +} + +static std::string to_string_1f(f64 x){ + char buf[32]; + snprintf(buf, 32, "%.1f", x); + return buf; +} + +void LineProfiler::begin(){ + frames.clear(); +} + +void LineProfiler::_step(int callstack_size, Frame* frame){ + auto line_info = frame->co->lines[frame->_ip]; + if(line_info.is_virtual) return; + std::string_view filename = frame->co->src->filename.sv(); + int line = line_info.lineno; + + if(frames.empty()){ + frames.push({callstack_size, frame, clock(), nullptr}); + }else{ + _step_end(callstack_size, frame, line); + } + + auto& file_records = records[filename]; + if(file_records.empty()){ + // initialize file_records + int total_lines = frame->co->src->line_starts.size(); + file_records.resize(total_lines + 1); + for(int i=1; i<=total_lines; i++){ + file_records[i].line = i; + } + } + + frames.top().prev_record = &file_records.at(line); +} + +void LineProfiler::_step_end(int callstack_size, Frame* frame, int line){ + clock_t now = clock(); + _FrameRecord& top_frame_record = frames.top(); + _LineRecord* prev_record = top_frame_record.prev_record; + + int id_delta = callstack_size - top_frame_record.callstack_size; + PK_ASSERT(abs(id_delta) <= 1) + + // current line is about to change + if(prev_record->line != line){ + clock_t delta = now - top_frame_record.prev_time; + top_frame_record.prev_time = now; + if(id_delta != 1) prev_record->hits++; + prev_record->time += delta; + } + + if(id_delta == 1){ + frames.push({callstack_size, frame, now, nullptr}); + }else{ + if(id_delta == -1) frames.pop(); + } +} + +void LineProfiler::end(){ + clock_t now = clock(); + _FrameRecord& top_frame_record = frames.top(); + _LineRecord* prev_record = top_frame_record.prev_record; + + clock_t delta = now - top_frame_record.prev_time; + top_frame_record.prev_time = now; + prev_record->hits++; + prev_record->time += delta; + + frames.pop(); + PK_ASSERT(frames.empty()); +} + +Str LineProfiler::stats(){ + SStream ss; + for(FuncDecl* decl: functions){ + int start_line = decl->code->start_line; + int end_line = decl->code->end_line; + if(start_line == -1 || end_line == -1) continue; + std::string_view filename = decl->code->src->filename.sv(); + std::vector<_LineRecord>& file_records = records[filename]; + if(file_records.empty()) continue; + clock_t total_time = 0; + for(int line = start_line; line <= end_line; line++){ + total_time += file_records.at(line).time; + } + ss << "Total time: " << (f64)total_time / CLOCKS_PER_SEC << "s\n"; + ss << "File: " << filename << "\n"; + ss << "Function: " << decl->code->name << " at line " << start_line << "\n"; + ss << "Line # Hits Time Per Hit % Time Line Contents\n"; + ss << "==============================================================\n"; + for(int line = start_line; line <= end_line; line++){ + const _LineRecord& record = file_records.at(line); + if(!record.is_valid()) continue; + ss << left_pad(std::to_string(line), 6); + if(record.hits == 0){ + ss << std::string(10 + 13 + 9 + 9, ' '); + }else{ + ss << left_pad(std::to_string(record.hits), 10); + ss << left_pad(std::to_string(record.time), 13); + ss << left_pad(std::to_string(record.time / record.hits), 9); + if(total_time == 0){ + ss << left_pad("0.0", 9); + }else{ + ss << left_pad(to_string_1f(record.time * (f64)100 / total_time), 9); + } + } + // line_content + ss << " " << decl->code->src->get_line(line) << "\n"; + } + ss << "\n"; + } + return ss.str(); +} + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/random.cpp b/dependencies/pocketpy/src/random.cpp new file mode 100644 index 0000000..fa9201f --- /dev/null +++ b/dependencies/pocketpy/src/random.cpp @@ -0,0 +1,229 @@ +#include "pocketpy/random.h" + +/* https://github.com/clibs/mt19937ar + +Copyright (c) 2011 Mutsuo Saito, Makoto Matsumoto, Hiroshima +University and The University of Tokyo. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of the Hiroshima University nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +struct mt19937{ + static const int N = 624; + static const int M = 397; + const uint32_t MATRIX_A = 0x9908b0dfUL; /* constant vector a */ + const uint32_t UPPER_MASK = 0x80000000UL; /* most significant w-r bits */ + const uint32_t LOWER_MASK = 0x7fffffffUL; /* least significant r bits */ + + uint32_t mt[N]; /* the array for the state vector */ + int mti=N+1; /* mti==N+1 means mt[N] is not initialized */ + + /* initializes mt[N] with a seed */ + void seed(uint32_t s) + { + mt[0]= s & 0xffffffffUL; + for (mti=1; mti> 30)) + mti); + /* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */ + /* In the previous versions, MSBs of the seed affect */ + /* only MSBs of the array mt[]. */ + /* 2002/01/09 modified by Makoto Matsumoto */ + mt[mti] &= 0xffffffffUL; + /* for >32 bit machines */ + } + } + + /* generates a random number on [0,0xffffffff]-interval */ + uint32_t next_uint32(void) + { + uint32_t y; + static uint32_t mag01[2]={0x0UL, MATRIX_A}; + /* mag01[x] = x * MATRIX_A for x=0,1 */ + + if (mti >= N) { /* generate N words at one time */ + int kk; + + if (mti == N+1) /* if init_genrand() has not been called, */ + seed(5489UL); /* a default initial seed is used */ + + for (kk=0;kk> 1) ^ mag01[y & 0x1UL]; + } + for (;kk> 1) ^ mag01[y & 0x1UL]; + } + y = (mt[N-1]&UPPER_MASK)|(mt[0]&LOWER_MASK); + mt[N-1] = mt[M-1] ^ (y >> 1) ^ mag01[y & 0x1UL]; + + mti = 0; + } + + y = mt[mti++]; + + /* Tempering */ + y ^= (y >> 11); + y ^= (y << 7) & 0x9d2c5680UL; + y ^= (y << 15) & 0xefc60000UL; + y ^= (y >> 18); + + return y; + } + + uint64_t next_uint64(void){ + return (uint64_t(next_uint32()) << 32) | next_uint32(); + } + + /* generates a random number on [0,1)-real-interval */ + float random(void) + { + return next_uint32()*(1.0/4294967296.0); /* divided by 2^32 */ + } + + /* generates a random number on [a, b]-interval */ + int64_t randint(int64_t a, int64_t b){ + uint64_t delta = b - a + 1; + if(delta < 0x80000000UL){ + return a + next_uint32() % (uint32_t)delta; + }else{ + return a + next_uint64() % delta; + } + } + + float uniform(float a, float b){ + return a + random() * (b - a); + } +}; + + +namespace pkpy{ + +struct Random{ + PY_CLASS(Random, random, Random) + mt19937 gen; + + Random(){ + auto count = std::chrono::high_resolution_clock::now().time_since_epoch().count(); + gen.seed((uint32_t)count); + } + + static void _register(VM* vm, PyObject* mod, PyObject* type){ + vm->bind_func<1>(type, __new__, [](VM* vm, ArgsView args){ + Type cls = PK_OBJ_GET(Type, args[0]); + return vm->heap.gcnew(cls); + }); + + vm->bind_method<1>(type, "seed", [](VM* vm, ArgsView args) { + Random& self = PK_OBJ_GET(Random, args[0]); + self.gen.seed(CAST(i64, args[1])); + return vm->None; + }); + + vm->bind_method<2>(type, "randint", [](VM* vm, ArgsView args) { + Random& self = PK_OBJ_GET(Random, args[0]); + i64 a = CAST(i64, args[1]); + i64 b = CAST(i64, args[2]); + if (a > b) vm->ValueError("randint(a, b): a must be less than or equal to b"); + return VAR(self.gen.randint(a, b)); + }); + + vm->bind_method<0>(type, "random", [](VM* vm, ArgsView args) { + Random& self = PK_OBJ_GET(Random, args[0]); + return VAR(self.gen.random()); + }); + + vm->bind_method<2>(type, "uniform", [](VM* vm, ArgsView args) { + Random& self = PK_OBJ_GET(Random, args[0]); + f64 a = CAST(f64, args[1]); + f64 b = CAST(f64, args[2]); + if (a > b) std::swap(a, b); + return VAR(self.gen.uniform(a, b)); + }); + + vm->bind_method<1>(type, "shuffle", [](VM* vm, ArgsView args) { + Random& self = PK_OBJ_GET(Random, args[0]); + List& L = CAST(List&, args[1]); + for(int i = L.size() - 1; i > 0; i--){ + int j = self.gen.randint(0, i); + std::swap(L[i], L[j]); + } + return vm->None; + }); + + vm->bind_method<1>(type, "choice", [](VM* vm, ArgsView args) { + Random& self = PK_OBJ_GET(Random, args[0]); + auto [data, size] = vm->_cast_array(args[1]); + if(size == 0) vm->IndexError("cannot choose from an empty sequence"); + int index = self.gen.randint(0, size-1); + return data[index]; + }); + + vm->bind(type, "choices(self, population, weights=None, k=1)", [](VM* vm, ArgsView args) { + Random& self = PK_OBJ_GET(Random, args[0]); + auto [data, size] = vm->_cast_array(args[1]); + if(size == 0) vm->IndexError("cannot choose from an empty sequence"); + pod_vector cum_weights(size); + if(args[2] == vm->None){ + for(int i = 0; i < size; i++) cum_weights[i] = i + 1; + }else{ + auto [weights, weights_size] = vm->_cast_array(args[2]); + if(weights_size != size) vm->ValueError(_S("len(weights) != ", size)); + cum_weights[0] = CAST(f64, weights[0]); + for(int i = 1; i < size; i++){ + cum_weights[i] = cum_weights[i - 1] + CAST(f64, weights[i]); + } + } + if(cum_weights[size - 1] <= 0) vm->ValueError("total of weights must be greater than zero"); + int k = CAST(i64, args[3]); + List result(k); + for(int i = 0; i < k; i++){ + f64 r = self.gen.uniform(0.0, cum_weights[size - 1]); + int idx = std::lower_bound(cum_weights.begin(), cum_weights.end(), r) - cum_weights.begin(); + result[i] = data[idx]; + } + return VAR(std::move(result)); + }); + } +}; + +void add_module_random(VM* vm){ + PyObject* mod = vm->new_module("random"); + Random::register_class(vm, mod); + PyObject* instance = vm->heap.gcnew(Random::_type(vm)); + mod->attr().set("seed", vm->getattr(instance, "seed")); + mod->attr().set("random", vm->getattr(instance, "random")); + mod->attr().set("uniform", vm->getattr(instance, "uniform")); + mod->attr().set("randint", vm->getattr(instance, "randint")); + mod->attr().set("shuffle", vm->getattr(instance, "shuffle")); + mod->attr().set("choice", vm->getattr(instance, "choice")); + mod->attr().set("choices", vm->getattr(instance, "choices")); +} + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/repl.cpp b/dependencies/pocketpy/src/repl.cpp new file mode 100644 index 0000000..6d9b094 --- /dev/null +++ b/dependencies/pocketpy/src/repl.cpp @@ -0,0 +1,42 @@ +#include "pocketpy/repl.h" + +namespace pkpy { + REPL::REPL(VM* vm) : vm(vm){ + vm->stdout_write("pocketpy " PK_VERSION " (" __DATE__ ", " __TIME__ ") "); + vm->stdout_write(_S("[", sizeof(void*)*8, " bit] on ", kPlatformStrings[PK_SYS_PLATFORM], "\n")); + vm->stdout_write("https://github.com/pocketpy/pocketpy" "\n"); + vm->stdout_write("Type \"exit()\" to exit." "\n"); + } + + bool REPL::input(std::string line){ + CompileMode mode = REPL_MODE; + if(need_more_lines){ + buffer += line; + buffer += '\n'; + int n = buffer.size(); + if(n>=need_more_lines){ + for(int i=buffer.size()-need_more_lines; iexec(line, "", mode); + }catch(NeedMoreLines ne){ + buffer += line; + buffer += '\n'; + need_more_lines = ne.is_compiling_class ? 3 : 2; + if (need_more_lines) return true; + } + return false; + } + +} \ No newline at end of file diff --git a/dependencies/pocketpy/src/str.cpp b/dependencies/pocketpy/src/str.cpp new file mode 100644 index 0000000..5f2d38b --- /dev/null +++ b/dependencies/pocketpy/src/str.cpp @@ -0,0 +1,602 @@ +#include "pocketpy/str.h" + +namespace pkpy { + +int utf8len(unsigned char c, bool suppress){ + if((c & 0b10000000) == 0) return 1; + if((c & 0b11100000) == 0b11000000) return 2; + if((c & 0b11110000) == 0b11100000) return 3; + if((c & 0b11111000) == 0b11110000) return 4; + if((c & 0b11111100) == 0b11111000) return 5; + if((c & 0b11111110) == 0b11111100) return 6; + if(!suppress) throw std::runtime_error("invalid utf8 char: " + std::to_string(c)); + return 0; +} + +#define PK_STR_ALLOCATE() \ + if(this->size < (int)sizeof(this->_inlined)){ \ + this->data = this->_inlined; \ + }else{ \ + this->data = (char*)pool64_alloc(this->size+1); \ + } + +#define PK_STR_COPY_INIT(__s) \ + for(int i=0; isize; i++){ \ + this->data[i] = __s[i]; \ + if(!isascii(__s[i])) is_ascii = false; \ + } \ + this->data[this->size] = '\0'; + + Str::Str(): size(0), is_ascii(true), data(_inlined) { + _inlined[0] = '\0'; + } + + Str::Str(int size, bool is_ascii): size(size), is_ascii(is_ascii) { + PK_STR_ALLOCATE() + } + + Str::Str(const std::string& s): size(s.size()), is_ascii(true) { + PK_STR_ALLOCATE() + PK_STR_COPY_INIT(s) + } + + Str::Str(std::string_view s): size(s.size()), is_ascii(true) { + PK_STR_ALLOCATE() + PK_STR_COPY_INIT(s) + } + + Str::Str(const char* s): size(strlen(s)), is_ascii(true) { + PK_STR_ALLOCATE() + PK_STR_COPY_INIT(s) + } + + Str::Str(const char* s, int len): size(len), is_ascii(true) { + PK_STR_ALLOCATE() + PK_STR_COPY_INIT(s) + } + + Str::Str(std::pair detached): size(detached.second), is_ascii(true) { + this->data = detached.first; + for(int i=0; isv() < other.sv(); + } + + bool Str::operator<(const std::string_view other) const { + return this->sv() < other; + } + + bool Str::operator>(const Str& other) const { + return this->sv() > other.sv(); + } + + bool Str::operator<=(const Str& other) const { + return this->sv() <= other.sv(); + } + + bool Str::operator>=(const Str& other) const { + return this->sv() >= other.sv(); + } + + Str::~Str(){ + if(!is_inlined()) pool64_dealloc(data); + } + + Str Str::substr(int start, int len) const { + Str ret(len, is_ascii); + memcpy(ret.data, data + start, len); + ret.data[len] = '\0'; + return ret; + } + + Str Str::substr(int start) const { + return substr(start, size - start); + } + + Str Str::strip(bool left, bool right, const Str& chars) const { + int L = 0; + int R = u8_length(); + if(left){ + while(L < R && chars.index(u8_getitem(L)) != -1) L++; + } + if(right){ + while(L < R && chars.index(u8_getitem(R-1)) != -1) R--; + } + return u8_slice(L, R, 1); + } + + Str Str::strip(bool left, bool right) const { + if(is_ascii){ + int L = 0; + int R = size; + if(left){ + while(L < R && (data[L] == ' ' || data[L] == '\t' || data[L] == '\n' || data[L] == '\r')) L++; + } + if(right){ + while(L < R && (data[R-1] == ' ' || data[R-1] == '\t' || data[R-1] == '\n' || data[R-1] == '\r')) R--; + } + return substr(L, R - L); + }else{ + return strip(left, right, " \t\n\r"); + } + } + + Str Str::lower() const{ + std::string copy(data, size); + std::transform(copy.begin(), copy.end(), copy.begin(), [](unsigned char c){ + if('A' <= c && c <= 'Z') return c + ('a' - 'A'); + return (int)c; + }); + return Str(copy); + } + + Str Str::upper() const{ + std::string copy(data, size); + std::transform(copy.begin(), copy.end(), copy.begin(), [](unsigned char c){ + if('a' <= c && c <= 'z') return c - ('a' - 'A'); + return (int)c; + }); + return Str(copy); + } + + Str Str::escape(bool single_quote) const{ + SStream ss; + escape_(ss, single_quote); + return ss.str(); + } + + void Str::escape_(SStream& ss, bool single_quote) const { + ss << (single_quote ? '\'' : '"'); + for (int i=0; ioperator[](i); + switch (c) { + case '"': + if(!single_quote) ss << '\\'; + ss << '"'; + break; + case '\'': + if(single_quote) ss << '\\'; + ss << '\''; + break; + case '\\': ss << '\\' << '\\'; break; + case '\n': ss << "\\n"; break; + case '\r': ss << "\\r"; break; + case '\t': ss << "\\t"; break; + case '\b': ss << "\\b"; break; + default: + if ('\x00' <= c && c <= '\x1f') { + ss << "\\x"; // << std::hex << std::setw(2) << std::setfill('0') << (int)c; + ss << PK_HEX_TABLE[c >> 4]; + ss << PK_HEX_TABLE[c & 0xf]; + } else { + ss << c; + } + } + } + ss << (single_quote ? '\'' : '"'); + } + + int Str::index(const Str& sub, int start) const { + auto p = std::search(data + start, data + size, sub.data, sub.data + sub.size); + if(p == data + size) return -1; + return p - data; + } + + Str Str::replace(char old, char new_) const{ + Str copied = *this; + for(int i=0; i 0){ + j += utf8len(data[j]); + i--; + } + return j; + } + + int Str::_byte_index_to_unicode(int n) const{ + if(is_ascii) return n; + int cnt = 0; + for(int i=0; i Str::split(const Str& sep) const{ + pod_vector result; + std::string_view tmp; + int start = 0; + while(true){ + int i = index(sep, start); + if(i == -1) break; + tmp = sv().substr(start, i - start); + if(!tmp.empty()) result.push_back(tmp); + start = i + sep.size; + } + tmp = sv().substr(start, size - start); + if(!tmp.empty()) result.push_back(tmp); + return result; + } + + pod_vector Str::split(char sep) const{ + pod_vector result; + int i = 0; + for(int j = 0; j < size; j++){ + if(data[j] == sep){ + if(j > i) result.emplace_back(data+i, j-i); + i = j + 1; + continue; + } + } + if(size > i) result.emplace_back(data+i, size-i); + return result; + } + + int Str::count(const Str& sub) const{ + if(sub.empty()) return size + 1; + int cnt = 0; + int start = 0; + while(true){ + int i = index(sub, start); + if(i == -1) break; + cnt++; + start = i + sub.size; + } + return cnt; + } + + std::map>& StrName::_interned(){ + static std::map> interned; + return interned; + } + + std::map& StrName::_r_interned(){ + static std::map r_interned; + return r_interned; + } + + uint32_t StrName::_pesudo_random_index = 0; + + StrName StrName::get(std::string_view s){ + auto it = _interned().find(s); + if(it != _interned().end()) return StrName(it->second); + // generate new index + // https://github.com/python/cpython/blob/3.12/Objects/dictobject.c#L175 + uint16_t index = ((_pesudo_random_index*5) + 1) & 65535; + if(index == 0) throw std::runtime_error("StrName index overflow"); + _interned()[std::string(s)] = index; + if(is_valid(index)) throw std::runtime_error("StrName index conflict"); + _r_interned()[index] = std::string(s); + _pesudo_random_index = index; + return StrName(index); + } + + bool StrName::is_valid(int index) { + return _r_interned().find(index) != _r_interned().end(); + } + + Str SStream::str(){ + // after this call, the buffer is no longer valid + buffer.reserve(buffer.size() + 1); // allocate one more byte for '\0' + buffer[buffer.size()] = '\0'; // set '\0' + return Str(buffer.detach()); + } + + SStream& SStream::operator<<(const Str& s){ + buffer.extend(s.begin(), s.end()); + return *this; + } + + SStream& SStream::operator<<(const char* s){ + buffer.extend(s, s + strlen(s)); + return *this; + } + + SStream& SStream::operator<<(const std::string& s){ + buffer.extend(s.data(), s.data() + s.size()); + return *this; + } + + SStream& SStream::operator<<(std::string_view s){ + buffer.extend(s.data(), s.data() + s.size()); + return *this; + } + + SStream& SStream::operator<<(char c){ + buffer.push_back(c); + return *this; + } + + SStream& SStream::operator<<(StrName sn){ + return *this << sn.sv(); + } + + SStream& SStream::operator<<(size_t val){ + // size_t could be out of range of `i64`, use `std::to_string` instead + return (*this) << std::to_string(val); + } + + SStream& SStream::operator<<(int val){ + return (*this) << static_cast(val); + } + + SStream& SStream::operator<<(i64 val){ + // str(-2**64).__len__() == 21 + buffer.reserve(buffer.size() + 24); + if(val == 0){ + buffer.push_back('0'); + return *this; + } + if(val < 0){ + buffer.push_back('-'); + val = -val; + } + char* begin = buffer.end(); + while(val){ + buffer.push_back('0' + val % 10); + val /= 10; + } + std::reverse(begin, buffer.end()); + return *this; + } + + SStream& SStream::operator<<(f64 val){ + if(std::isinf(val)){ + return (*this) << (val > 0 ? "inf" : "-inf"); + } + if(std::isnan(val)){ + return (*this) << "nan"; + } + char b[32]; + if(_precision == -1){ + int prec = std::numeric_limits::max_digits10-1; + snprintf(b, sizeof(b), "%.*g", prec, val); + }else{ + int prec = _precision; + snprintf(b, sizeof(b), "%.*f", prec, val); + } + (*this) << b; + if(std::all_of(b+1, b+strlen(b), isdigit)) (*this) << ".0"; + return *this; + } + + void SStream::write_hex(unsigned char c, bool non_zero){ + unsigned char high = c >> 4; + unsigned char low = c & 0xf; + if(non_zero){ + if(high) (*this) << PK_HEX_TABLE[high]; + if(high || low) (*this) << PK_HEX_TABLE[low]; + }else{ + (*this) << PK_HEX_TABLE[high]; + (*this) << PK_HEX_TABLE[low]; + } + } + + void SStream::write_hex(void* p){ + if(p == nullptr){ + (*this) << "0x0"; + return; + } + (*this) << "0x"; + uintptr_t p_t = reinterpret_cast(p); + bool non_zero = true; + for(int i=sizeof(void*)-1; i>=0; i--){ + unsigned char cpnt = (p_t >> (i * 8)) & 0xff; + write_hex(cpnt, non_zero); + if(cpnt != 0) non_zero = false; + } + } + + void SStream::write_hex(i64 val){ + if(val == 0){ + (*this) << "0x0"; + return; + } + if(val < 0){ + (*this) << "-"; + val = -val; + } + (*this) << "0x"; + bool non_zero = true; + for(int i=56; i>=0; i-=8){ + unsigned char cpnt = (val >> i) & 0xff; + write_hex(cpnt, non_zero); + if(cpnt != 0) non_zero = false; + } + } + +#undef PK_STR_ALLOCATE +#undef PK_STR_COPY_INIT + + + +// unary operators +const StrName __repr__ = StrName::get("__repr__"); +const StrName __str__ = StrName::get("__str__"); +const StrName __hash__ = StrName::get("__hash__"); +const StrName __len__ = StrName::get("__len__"); +const StrName __iter__ = StrName::get("__iter__"); +const StrName __next__ = StrName::get("__next__"); +const StrName __neg__ = StrName::get("__neg__"); +// logical operators +const StrName __eq__ = StrName::get("__eq__"); +const StrName __lt__ = StrName::get("__lt__"); +const StrName __le__ = StrName::get("__le__"); +const StrName __gt__ = StrName::get("__gt__"); +const StrName __ge__ = StrName::get("__ge__"); +const StrName __contains__ = StrName::get("__contains__"); +// binary operators +const StrName __add__ = StrName::get("__add__"); +const StrName __radd__ = StrName::get("__radd__"); +const StrName __sub__ = StrName::get("__sub__"); +const StrName __rsub__ = StrName::get("__rsub__"); +const StrName __mul__ = StrName::get("__mul__"); +const StrName __rmul__ = StrName::get("__rmul__"); +const StrName __truediv__ = StrName::get("__truediv__"); +const StrName __floordiv__ = StrName::get("__floordiv__"); +const StrName __mod__ = StrName::get("__mod__"); +const StrName __pow__ = StrName::get("__pow__"); +const StrName __matmul__ = StrName::get("__matmul__"); +const StrName __lshift__ = StrName::get("__lshift__"); +const StrName __rshift__ = StrName::get("__rshift__"); +const StrName __and__ = StrName::get("__and__"); +const StrName __or__ = StrName::get("__or__"); +const StrName __xor__ = StrName::get("__xor__"); +const StrName __invert__ = StrName::get("__invert__"); +// indexer +const StrName __getitem__ = StrName::get("__getitem__"); +const StrName __setitem__ = StrName::get("__setitem__"); +const StrName __delitem__ = StrName::get("__delitem__"); + +// specials +const StrName __new__ = StrName::get("__new__"); +const StrName __init__ = StrName::get("__init__"); +const StrName __call__ = StrName::get("__call__"); +const StrName __divmod__ = StrName::get("__divmod__"); +const StrName __enter__ = StrName::get("__enter__"); +const StrName __exit__ = StrName::get("__exit__"); +const StrName __name__ = StrName::get("__name__"); +const StrName __all__ = StrName::get("__all__"); +const StrName __package__ = StrName::get("__package__"); +const StrName __path__ = StrName::get("__path__"); +const StrName __class__ = StrName::get("__class__"); +const StrName __missing__ = StrName::get("__missing__"); + +const StrName pk_id_add = StrName::get("add"); +const StrName pk_id_set = StrName::get("set"); +const StrName pk_id_long = StrName::get("long"); +const StrName pk_id_complex = StrName::get("complex"); + + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src/tuplelist.cpp b/dependencies/pocketpy/src/tuplelist.cpp new file mode 100644 index 0000000..fd2c96c --- /dev/null +++ b/dependencies/pocketpy/src/tuplelist.cpp @@ -0,0 +1,68 @@ +#include "pocketpy/tuplelist.h" + +namespace pkpy { + +Tuple::Tuple(int n){ + if(n <= 3){ + this->_args = _inlined; + }else{ + this->_args = (PyObject**)pool64_alloc(n * sizeof(void*)); + } + this->_size = n; +} + +Tuple::Tuple(const Tuple& other): Tuple(other._size){ + for(int i=0; i<_size; i++) _args[i] = other._args[i]; +} + +Tuple::Tuple(Tuple&& other) noexcept { + _size = other._size; + if(other.is_inlined()){ + _args = _inlined; + for(int i=0; i<_size; i++) _args[i] = other._args[i]; + }else{ + _args = other._args; + other._args = other._inlined; + other._size = 0; + } +} + +Tuple::Tuple(List&& other) noexcept { + _size = other.size(); + _args = other._data; + other._data = nullptr; +} + +Tuple::Tuple(PyObject* _0, PyObject* _1): Tuple(2){ + _args[0] = _0; + _args[1] = _1; +} + +Tuple::Tuple(PyObject* _0, PyObject* _1, PyObject* _2): Tuple(3){ + _args[0] = _0; + _args[1] = _1; + _args[2] = _2; +} + +Tuple::Tuple(PyObject* _0, PyObject* _1, PyObject* _2, PyObject* _3): Tuple(4){ + _args[0] = _0; + _args[1] = _1; + _args[2] = _2; + _args[3] = _3; +} + +Tuple::~Tuple(){ if(!is_inlined()) pool64_dealloc(_args); } + +List ArgsView::to_list() const{ + List ret(size()); + for(int i=0; i + void write_array(T& arr){ + ss << '['; + for(int i=0; iTypeError(_S("json keys must be string, got ", _type_name(vm, vm->_tp(k)))); + } + ss << _CAST(Str&, k).escape(false) << ": "; + write_object(v); + }); + ss << '}'; + } + + void write_object(PyObject* obj){ + Type obj_t = vm->_tp(obj); + if(obj == vm->None){ + ss << "null"; + }else if(obj_t == vm->tp_int){ + ss << _CAST(i64, obj); + }else if(obj_t == vm->tp_float){ + f64 val = _CAST(f64, obj); + if(std::isinf(val) || std::isnan(val)) vm->ValueError("cannot jsonify 'nan' or 'inf'"); + ss << val; + }else if(obj_t == vm->tp_bool){ + ss << (obj == vm->True ? "true" : "false"); + }else if(obj_t == vm->tp_str){ + _CAST(Str&, obj).escape_(ss, false); + }else if(obj_t == vm->tp_list){ + write_array(_CAST(List&, obj)); + }else if(obj_t == vm->tp_tuple){ + write_array(_CAST(Tuple&, obj)); + }else if(obj_t == vm->tp_dict){ + write_dict(_CAST(Dict&, obj)); + }else{ + vm->TypeError(_S("unrecognized type ", _type_name(vm, obj_t).escape())); + } + } + + Str serialize(){ + auto _lock = vm->heap.gc_scope_lock(); + write_object(root); + return ss.str(); + } + }; + + VM::VM(bool enable_os) : heap(this), enable_os(enable_os) { + this->vm = this; + this->_c.error = nullptr; + _stdout = [](const char* buf, int size) { std::cout.write(buf, size); }; + _stderr = [](const char* buf, int size) { std::cerr.write(buf, size); }; + _main = nullptr; + _last_exception = nullptr; + _import_handler = [](const char* name_p, int name_size, int* out_size) -> unsigned char*{ return nullptr; }; + init_builtin_types(); + } + + PyObject* VM::py_str(PyObject* obj){ + const PyTypeInfo* ti = _inst_type_info(obj); + if(ti->m__str__) return ti->m__str__(this, obj); + PyObject* self; + PyObject* f = get_unbound_method(obj, __str__, &self, false); + if(self != PY_NULL) return call_method(self, f); + return py_repr(obj); + } + + PyObject* VM::py_repr(PyObject* obj){ + const PyTypeInfo* ti = _inst_type_info(obj); + if(ti->m__repr__) return ti->m__repr__(this, obj); + return call_method(obj, __repr__); + } + + PyObject* VM::py_json(PyObject* obj){ + auto j = JsonSerializer(this, obj); + return VAR(j.serialize()); + } + + PyObject* VM::py_iter(PyObject* obj){ + const PyTypeInfo* ti = _inst_type_info(obj); + if(ti->m__iter__) return ti->m__iter__(this, obj); + PyObject* self; + PyObject* iter_f = get_unbound_method(obj, __iter__, &self, false); + if(self != PY_NULL) return call_method(self, iter_f); + TypeError(_type_name(vm, _tp(obj)).escape() + " object is not iterable"); + return nullptr; + } + + std::pair VM::_cast_array(PyObject* obj){ + if(is_type(obj, VM::tp_list)){ + List& list = PK_OBJ_GET(List, obj); + return {list.data(), list.size()}; + }else if(is_type(obj, VM::tp_tuple)){ + Tuple& tuple = PK_OBJ_GET(Tuple, obj); + return {tuple.data(), tuple.size()}; + } + TypeError(_S("expected list or tuple, got ", _type_name(this, _tp(obj)).escape())); + PK_UNREACHABLE(); + } + + void VM::set_main_argv(int argc, char** argv){ + PyObject* mod = vm->_modules["sys"]; + List argv_(argc); + for(int i=0; iattr().set("argv", VAR(std::move(argv_))); + } + + PyObject* VM::find_name_in_mro(Type cls, StrName name){ + PyObject* val; + do{ + val = _t(cls)->attr().try_get(name); + if(val != nullptr) return val; + cls = _all_types[cls].base; + if(cls.index == -1) break; + }while(true); + return nullptr; + } + + bool VM::isinstance(PyObject* obj, Type base){ + return issubclass(_tp(obj), base); + } + + bool VM::issubclass(Type cls, Type base){ + do{ + if(cls == base) return true; + Type next = _all_types[cls].base; + if(next.index == -1) break; + cls = next; + }while(true); + return false; + } + + PyObject* VM::exec(std::string_view source, Str filename, CompileMode mode, PyObject* _module){ + if(_module == nullptr) _module = _main; + try { +#if PK_DEBUG_PRECOMPILED_EXEC == 1 + Str precompiled = vm->precompile(source, filename, mode); + source = precompiled.sv(); +#endif + CodeObject_ code = compile(source, filename, mode); + return _exec(code, _module); + }catch (const Exception& e){ + stderr_write(e.summary() + "\n"); + } +#if !PK_DEBUG_FULL_EXCEPTION + catch(const std::exception& e) { + Str msg = "An std::exception occurred! It could be a bug.\n"; + msg = msg + e.what() + "\n"; + stderr_write(msg); + } + catch(NeedMoreLines){ + throw; + } + catch(...) { + Str msg = "An unknown exception occurred! It could be a bug. Please report it to @blueloveTH on GitHub.\n"; + stderr_write(msg); + } +#endif + callstack.clear(); + s_data.clear(); + return nullptr; + } + + PyObject* VM::exec(std::string_view source){ + return exec(source, "main.py", EXEC_MODE); + } + + PyObject* VM::eval(std::string_view source){ + return exec(source, "", EVAL_MODE); + } + + PyObject* VM::new_type_object(PyObject* mod, StrName name, Type base, bool subclass_enabled){ + PyObject* obj = heap._new(tp_type, _all_types.size()); + const PyTypeInfo& base_info = _all_types[base]; + if(!base_info.subclass_enabled){ + TypeError(_S("type ", base_info.name.escape(), " is not `subclass_enabled`")); + } + PyTypeInfo info{ + obj, + base, + mod, + name, + subclass_enabled, + }; + _all_types.push_back(info); + return obj; + } + + Type VM::_new_type_object(StrName name, Type base, bool subclass_enabled) { + PyObject* obj = new_type_object(nullptr, name, base, subclass_enabled); + return PK_OBJ_GET(Type, obj); + } + + const PyTypeInfo* VM::_inst_type_info(PyObject* obj){ + if(is_int(obj)) return &_all_types[tp_int]; + return &_all_types[obj->type]; + } + + bool VM::py_eq(PyObject* lhs, PyObject* rhs){ + if(lhs == rhs) return true; + const PyTypeInfo* ti = _inst_type_info(lhs); + PyObject* res; + if(ti->m__eq__){ + res = ti->m__eq__(this, lhs, rhs); + if(res != vm->NotImplemented) return res == vm->True; + } + res = call_method(lhs, __eq__, rhs); + if(res != vm->NotImplemented) return res == vm->True; + + ti = _inst_type_info(rhs); + if(ti->m__eq__){ + res = ti->m__eq__(this, rhs, lhs); + if(res != vm->NotImplemented) return res == vm->True; + } + res = call_method(rhs, __eq__, lhs); + if(res != vm->NotImplemented) return res == vm->True; + return false; + } + + i64 VM::normalized_index(i64 index, int size){ + if(index < 0) index += size; + if(index < 0 || index >= size){ + IndexError(std::to_string(index) + " not in [0, " + std::to_string(size) + ")"); + } + return index; + } + + PyObject* VM::py_next(PyObject* obj){ + const PyTypeInfo* ti = _inst_type_info(obj); + if(ti->m__next__) return ti->m__next__(this, obj); + return call_method(obj, __next__); + } + + bool VM::py_callable(PyObject* obj){ + Type cls = vm->_tp(obj); + switch(cls.index){ + case VM::tp_function.index: return vm->True; + case VM::tp_native_func.index: return vm->True; + case VM::tp_bound_method.index: return vm->True; + case VM::tp_type.index: return vm->True; + } + return vm->find_name_in_mro(cls, __call__) != nullptr; + } + + PyObject* VM::py_import(Str path, bool throw_err){ + if(path.empty()) vm->ValueError("empty module name"); + static auto f_join = [](const pod_vector& cpnts){ + SStream ss; + for(int i=0; i cpnts = curr_path.split('.'); + int prefix = 0; // how many dots in the prefix + for(int i=0; i cpnts.size()) ImportError("attempted relative import beyond top-level package"); + path = path.substr(prefix); // remove prefix + for(int i=(int)curr_is_init; i path_cpnts = path.split('.'); + // check circular import + if(_import_context.pending.size() > 128){ + ImportError("maximum recursion depth exceeded while importing"); + } + + // try import + Str filename = path.replace('.', PK_PLATFORM_SEP) + ".py"; + Str source; + bool is_init = false; + auto it = _lazy_modules.find(name); + if(it == _lazy_modules.end()){ + int out_size; + unsigned char* out = _import_handler(filename.data, filename.size, &out_size); + if(out == nullptr){ + filename = path.replace('.', PK_PLATFORM_SEP).str() + PK_PLATFORM_SEP + "__init__.py"; + is_init = true; + out = _import_handler(filename.data, filename.size, &out_size); + } + if(out == nullptr){ + if(throw_err) ImportError(_S("module ", path.escape(), " not found")); + else return nullptr; + } + PK_ASSERT(out_size >= 0) + source = Str(std::string_view((char*)out, out_size)); + free(out); + }else{ + source = it->second; + _lazy_modules.erase(it); + } + auto _ = _import_context.scope(path, is_init); + CodeObject_ code = compile(source, filename, EXEC_MODE); + + Str name_cpnt = path_cpnts.back(); + path_cpnts.pop_back(); + PyObject* new_mod = new_module(name_cpnt, f_join(path_cpnts)); + _exec(code, new_mod); + return new_mod; + } + + VM::~VM() { + callstack.clear(); + s_data.clear(); + _all_types.clear(); + _modules.clear(); + _lazy_modules.clear(); + } + +PyObject* VM::py_negate(PyObject* obj){ + const PyTypeInfo* ti = _inst_type_info(obj); + if(ti->m__neg__) return ti->m__neg__(this, obj); + return call_method(obj, __neg__); +} + +bool VM::py_bool(PyObject* obj){ + if(obj == vm->True) return true; + if(obj == vm->False) return false; + if(obj == None) return false; + if(is_int(obj)) return _CAST(i64, obj) != 0; + if(is_float(obj)) return _CAST(f64, obj) != 0.0; + PyObject* self; + PyObject* len_f = get_unbound_method(obj, __len__, &self, false); + if(self != PY_NULL){ + PyObject* ret = call_method(self, len_f); + return CAST(i64, ret) > 0; + } + return true; +} + +PyObject* VM::py_list(PyObject* it){ + auto _lock = heap.gc_scope_lock(); + it = py_iter(it); + List list; + PyObject* obj = py_next(it); + while(obj != StopIteration){ + list.push_back(obj); + obj = py_next(it); + } + return VAR(std::move(list)); +} + + + +void VM::parse_int_slice(const Slice& s, int length, int& start, int& stop, int& step){ + auto clip = [](int value, int min, int max){ + if(value < min) return min; + if(value > max) return max; + return value; + }; + if(s.step == None) step = 1; + else step = CAST(int, s.step); + if(step == 0) ValueError("slice step cannot be zero"); + if(step > 0){ + if(s.start == None){ + start = 0; + }else{ + start = CAST(int, s.start); + if(start < 0) start += length; + start = clip(start, 0, length); + } + if(s.stop == None){ + stop = length; + }else{ + stop = CAST(int, s.stop); + if(stop < 0) stop += length; + stop = clip(stop, 0, length); + } + }else{ + if(s.start == None){ + start = length - 1; + }else{ + start = CAST(int, s.start); + if(start < 0) start += length; + start = clip(start, -1, length - 1); + } + if(s.stop == None){ + stop = -1; + }else{ + stop = CAST(int, s.stop); + if(stop < 0) stop += length; + stop = clip(stop, -1, length - 1); + } + } +} + +i64 VM::py_hash(PyObject* obj){ + // https://docs.python.org/3.10/reference/datamodel.html#object.__hash__ + const PyTypeInfo* ti = _inst_type_info(obj); + if(ti->m__hash__) return ti->m__hash__(this, obj); + + PyObject* self; + PyObject* f = get_unbound_method(obj, __hash__, &self, false); + if(f != nullptr){ + PyObject* ret = call_method(self, f); + return CAST(i64, ret); + } + // if it is trivial `object`, return PK_BITS + if(ti == &_all_types[tp_object]) return PK_BITS(obj); + // otherwise, we check if it has a custom __eq__ other than object.__eq__ + bool has_custom_eq = false; + if(ti->m__eq__) has_custom_eq = true; + else{ + f = get_unbound_method(obj, __eq__, &self, false); + has_custom_eq = f != _t(tp_object)->attr(__eq__); + } + if(has_custom_eq){ + TypeError(_S("unhashable type: ", ti->name.escape())); + PK_UNREACHABLE() + }else{ + return PK_BITS(obj); + } +} + +PyObject* VM::_format_string(Str spec, PyObject* obj){ + if(spec.empty()) return py_str(obj); + char type; + switch(spec.end()[-1]){ + case 'f': case 'd': case 's': + type = spec.end()[-1]; + spec = spec.substr(0, spec.length() - 1); + break; + default: type = ' '; break; + } + + char pad_c = ' '; + for(char c: std::string_view("0-=*#@!~")){ + if(spec[0] == c){ + pad_c = c; + spec = spec.substr(1); + break; + } + } + char align; + if(spec[0] == '^'){ + align = '^'; + spec = spec.substr(1); + }else if(spec[0] == '>'){ + align = '>'; + spec = spec.substr(1); + }else if(spec[0] == '<'){ + align = '<'; + spec = spec.substr(1); + }else{ + if(is_int(obj) || is_float(obj)) align = '>'; + else align = '<'; + } + + int dot = spec.index("."); + int width, precision; + try{ + if(dot >= 0){ + if(dot == 0){ + width = -1; + }else{ + width = std::stoi(spec.substr(0, dot).str()); + } + precision = std::stoi(spec.substr(dot+1).str()); + }else{ + width = std::stoi(spec.str()); + precision = -1; + } + }catch(...){ + ValueError("invalid format specifer"); + } + + if(type != 'f' && dot >= 0) ValueError("precision not allowed in the format specifier"); + Str ret; + if(type == 'f'){ + f64 val = CAST(f64, obj); + if(precision < 0) precision = 6; + SStream ss; + ss.setprecision(precision); + ss << val; + ret = ss.str(); + }else if(type == 'd'){ + ret = std::to_string(CAST(i64, obj)); + }else if(type == 's'){ + ret = CAST(Str&, obj); + }else{ + ret = CAST(Str&, py_str(obj)); + } + if(width != -1 && width > ret.length()){ + int pad = width - ret.length(); + if(align == '>' || align == '<'){ + std::string padding(pad, pad_c); + if(align == '>') ret = padding.c_str() + ret; + else ret = ret + padding.c_str(); + }else{ // ^ + int pad_left = pad / 2; + int pad_right = pad - pad_left; + std::string padding_left(pad_left, pad_c); + std::string padding_right(pad_right, pad_c); + ret = padding_left.c_str() + ret + padding_right.c_str(); + } + } + return VAR(ret); +} + +PyObject* VM::new_module(Str name, Str package) { + PyObject* obj = heap._new(tp_module); + obj->attr().set(__name__, VAR(name)); + obj->attr().set(__package__, VAR(package)); + // convert to fullname + if(!package.empty()) name = package + "." + name; + obj->attr().set(__path__, VAR(name)); + + // we do not allow override in order to avoid memory leak + // it is because Module objects are not garbage collected + if(_modules.contains(name)){ + throw std::runtime_error(_S("module ", name.escape(), " already exists").str()); + } + // set it into _modules + _modules.set(name, obj); + return obj; +} + +static std::string _opcode_argstr(VM* vm, Bytecode byte, const CodeObject* co){ + std::string argStr = std::to_string(byte.arg); + switch(byte.op){ + case OP_LOAD_CONST: case OP_FORMAT_STRING: case OP_IMPORT_PATH: + if(vm != nullptr){ + argStr += _S(" (", CAST(Str, vm->py_repr(co->consts[byte.arg])), ")").sv(); + } + break; + case OP_LOAD_NAME: case OP_LOAD_GLOBAL: case OP_LOAD_NONLOCAL: case OP_STORE_GLOBAL: + case OP_LOAD_ATTR: case OP_LOAD_METHOD: case OP_STORE_ATTR: case OP_DELETE_ATTR: + case OP_BEGIN_CLASS: case OP_GOTO: + case OP_DELETE_GLOBAL: case OP_INC_GLOBAL: case OP_DEC_GLOBAL: case OP_STORE_CLASS_ATTR: case OP_FOR_ITER_STORE_GLOBAL: + argStr += _S(" (", StrName(byte.arg).sv(), ")").sv(); + break; + case OP_LOAD_FAST: case OP_STORE_FAST: case OP_DELETE_FAST: case OP_INC_FAST: case OP_DEC_FAST: case OP_FOR_ITER_STORE_FAST: + argStr += _S(" (", co->varnames[byte.arg].sv(), ")").sv(); + break; + case OP_LOAD_FUNCTION: + argStr += _S(" (", co->func_decls[byte.arg]->code->name, ")").sv(); + break; + } + return argStr; +} + +Str VM::disassemble(CodeObject_ co){ + auto pad = [](const Str& s, const int n){ + if(s.length() >= n) return s.substr(0, n); + return s + std::string(n - s.length(), ' '); + }; + + pod_vector jumpTargets; + for(auto byte : co->codes){ + if(byte.op == OP_JUMP_ABSOLUTE || byte.op == OP_POP_JUMP_IF_FALSE || byte.op == OP_SHORTCUT_IF_FALSE_OR_POP){ + jumpTargets.push_back(byte.arg); + } + if(byte.op == OP_GOTO){ + // TODO: pre-compute jump targets for OP_GOTO + int* target = co->labels.try_get_2_likely_found(StrName(byte.arg)); + if(target != nullptr) jumpTargets.push_back(*target); + } + } + SStream ss; + int prev_line = -1; + for(int i=0; icodes.size(); i++){ + const Bytecode& byte = co->codes[i]; + Str line = std::to_string(co->lines[i].lineno); + if(co->lines[i].lineno == prev_line) line = ""; + else{ + if(prev_line != -1) ss << "\n"; + prev_line = co->lines[i].lineno; + } + + std::string pointer; + if(std::find(jumpTargets.begin(), jumpTargets.end(), i) != jumpTargets.end()){ + pointer = "-> "; + }else{ + pointer = " "; + } + ss << pad(line, 8) << pointer << pad(std::to_string(i), 3); + std::string bc_name(OP_NAMES[byte.op]); + if(co->lines[i].is_virtual) bc_name += '*'; + ss << " " << pad(bc_name, 25) << " "; + // ss << pad(byte.arg == -1 ? "" : std::to_string(byte.arg), 5); + std::string argStr = _opcode_argstr(this, byte, co.get()); + ss << argStr; + // ss << pad(argStr, 40); // may overflow + // ss << co->blocks[byte.block].type; + if(i != co->codes.size() - 1) ss << '\n'; + } + + for(auto& decl: co->func_decls){ + ss << "\n\n" << "Disassembly of " << decl->code->name << ":\n"; + ss << disassemble(decl->code); + } + ss << "\n"; + return Str(ss.str()); +} + +#if PK_DEBUG_CEVAL_STEP +void VM::_log_s_data(const char* title) { + if(_main == nullptr) return; + if(callstack.empty()) return; + SStream ss; + if(title) ss << title << " | "; + std::map sp_bases; + for(Frame& f: callstack.data()){ + if(f._sp_base == nullptr) PK_FATAL_ERROR(); + sp_bases[f._sp_base] += 1; + } + Frame* frame = top_frame(); + int line = frame->co->lines[frame->_ip]; + ss << frame->co->name << ":" << line << " ["; + for(PyObject** p=s_data.begin(); p!=s_data.end(); p++){ + ss << std::string(sp_bases[p], '|'); + if(sp_bases[p] > 0) ss << " "; + PyObject* obj = *p; + if(obj == nullptr) ss << "(nil)"; + else if(obj == PY_NULL) ss << "NULL"; + else if(is_int(obj)) ss << CAST(i64, obj); + else if(is_float(obj)) ss << CAST(f64, obj); + else if(is_type(obj, tp_str)) ss << CAST(Str, obj).escape(); + else if(obj == None) ss << "None"; + else if(obj == True) ss << "True"; + else if(obj == False) ss << "False"; + else if(is_type(obj, tp_function)){ + auto& f = CAST(Function&, obj); + ss << f.decl->code->name << "(...)"; + } else if(is_type(obj, tp_type)){ + Type t = PK_OBJ_GET(Type, obj); + ss << ""; + } else if(is_type(obj, tp_list)){ + auto& t = CAST(List&, obj); + ss << "list(size=" << t.size() << ")"; + } else if(is_type(obj, tp_tuple)){ + auto& t = CAST(Tuple&, obj); + ss << "tuple(size=" << t.size() << ")"; + } else ss << "(" << _type_name(this, obj->type) << ")"; + ss << ", "; + } + std::string output = ss.str(); + if(!s_data.empty()) { + output.pop_back(); output.pop_back(); + } + output.push_back(']'); + Bytecode byte = frame->co->codes[frame->_ip]; + std::cout << output << " " << OP_NAMES[byte.op] << " " << _opcode_argstr(nullptr, byte, frame->co) << std::endl; +} +#endif + +void VM::init_builtin_types(){ + _all_types.push_back({heap._new(Type(1), Type(0)), -1, nullptr, "object", true}); + _all_types.push_back({heap._new(Type(1), Type(1)), 0, nullptr, "type", false}); + + if(tp_int != _new_type_object("int")) exit(-3); + if((tp_float != _new_type_object("float"))) exit(-3); + + if(tp_bool != _new_type_object("bool")) exit(-3); + if(tp_str != _new_type_object("str")) exit(-3); + if(tp_list != _new_type_object("list")) exit(-3); + if(tp_tuple != _new_type_object("tuple")) exit(-3); + + if(tp_slice != _new_type_object("slice")) exit(-3); + if(tp_range != _new_type_object("range")) exit(-3); + if(tp_module != _new_type_object("module")) exit(-3); + if(tp_function != _new_type_object("function")) exit(-3); + if(tp_native_func != _new_type_object("native_func")) exit(-3); + if(tp_bound_method != _new_type_object("bound_method")) exit(-3); + + if(tp_super != _new_type_object("super")) exit(-3); + if(tp_exception != _new_type_object("Exception", 0, true)) exit(-3); + if(tp_bytes != _new_type_object("bytes")) exit(-3); + if(tp_mappingproxy != _new_type_object("mappingproxy")) exit(-3); + if(tp_dict != _new_type_object("dict", 0, true)) exit(-3); // dict can be subclassed + if(tp_property != _new_type_object("property")) exit(-3); + if(tp_star_wrapper != _new_type_object("_star_wrapper")) exit(-3); + + if(tp_staticmethod != _new_type_object("staticmethod")) exit(-3); + if(tp_classmethod != _new_type_object("classmethod")) exit(-3); + + // SyntaxError and IndentationError must be created here + Type tp_syntax_error = _new_type_object("SyntaxError", tp_exception, true); + Type tp_indentation_error = _new_type_object("IndentationError", tp_syntax_error, true); + + this->None = heap._new(_new_type_object("NoneType")); + this->NotImplemented = heap._new(_new_type_object("NotImplementedType")); + this->Ellipsis = heap._new(_new_type_object("ellipsis")); + this->True = heap._new(tp_bool); + this->False = heap._new(tp_bool); + this->StopIteration = _all_types[_new_type_object("StopIteration", tp_exception)].obj; + + this->builtins = new_module("builtins"); + + // setup public types + builtins->attr().set("type", _t(tp_type)); + builtins->attr().set("object", _t(tp_object)); + builtins->attr().set("bool", _t(tp_bool)); + builtins->attr().set("int", _t(tp_int)); + builtins->attr().set("float", _t(tp_float)); + builtins->attr().set("str", _t(tp_str)); + builtins->attr().set("list", _t(tp_list)); + builtins->attr().set("tuple", _t(tp_tuple)); + builtins->attr().set("range", _t(tp_range)); + builtins->attr().set("bytes", _t(tp_bytes)); + builtins->attr().set("dict", _t(tp_dict)); + builtins->attr().set("property", _t(tp_property)); + builtins->attr().set("StopIteration", StopIteration); + builtins->attr().set("NotImplemented", NotImplemented); + builtins->attr().set("slice", _t(tp_slice)); + builtins->attr().set("Exception", _t(tp_exception)); + builtins->attr().set("SyntaxError", _t(tp_syntax_error)); + builtins->attr().set("IndentationError", _t(tp_indentation_error)); + + post_init(); + this->_main = new_module("__main__"); +} + +// `heap.gc_scope_lock();` needed before calling this function +void VM::_unpack_as_list(ArgsView args, List& list){ + for(PyObject* obj: args){ + if(is_type(obj, tp_star_wrapper)){ + const StarWrapper& w = _CAST(StarWrapper&, obj); + // maybe this check should be done in the compile time + if(w.level != 1) TypeError("expected level 1 star wrapper"); + PyObject* _0 = py_iter(w.obj); + PyObject* _1 = py_next(_0); + while(_1 != StopIteration){ + list.push_back(_1); + _1 = py_next(_0); + } + }else{ + list.push_back(obj); + } + } +} + +// `heap.gc_scope_lock();` needed before calling this function +void VM::_unpack_as_dict(ArgsView args, Dict& dict){ + for(PyObject* obj: args){ + if(is_type(obj, tp_star_wrapper)){ + const StarWrapper& w = _CAST(StarWrapper&, obj); + // maybe this check should be done in the compile time + if(w.level != 2) TypeError("expected level 2 star wrapper"); + const Dict& other = CAST(Dict&, w.obj); + dict.update(other); + }else{ + const Tuple& t = CAST(Tuple&, obj); + if(t.size() != 2) TypeError("expected tuple of length 2"); + dict.set(t[0], t[1]); + } + } +} + + +void VM::_prepare_py_call(PyObject** buffer, ArgsView args, ArgsView kwargs, const FuncDecl_& decl){ + const CodeObject* co = decl->code.get(); + int co_nlocals = co->varnames.size(); + int decl_argc = decl->args.size(); + + if(args.size() < decl_argc){ + vm->TypeError(_S( + co->name, "() takes ", decl_argc, " positional arguments but ", args.size(), " were given" + )); + } + + int i = 0; + // prepare args + for(int index: decl->args) buffer[index] = args[i++]; + // set extra varnames to PY_NULL + for(int j=i; jkwargs) buffer[kv.index] = kv.value; + + // handle *args + if(decl->starred_arg != -1){ + ArgsView vargs(args.begin() + i, args.end()); + buffer[decl->starred_arg] = VAR(vargs.to_tuple()); + i += vargs.size(); + }else{ + // kwdefaults override + for(auto& kv: decl->kwargs){ + if(i >= args.size()) break; + buffer[kv.index] = args[i++]; + } + if(i < args.size()) TypeError(_S("too many arguments", " (", decl->code->name, ')')); + } + + PyObject* vkwargs; + if(decl->starred_kwarg != -1){ + vkwargs = VAR(Dict(this)); + buffer[decl->starred_kwarg] = vkwargs; + }else{ + vkwargs = nullptr; + } + + for(int j=0; jkw_to_index.try_get_likely_found(key); + // if key is an explicit key, set as local variable + if(index >= 0){ + buffer[index] = kwargs[j+1]; + }else{ + // otherwise, set as **kwargs if possible + if(vkwargs == nullptr){ + TypeError(_S(key.escape(), " is an invalid keyword argument for ", co->name, "()")); + }else{ + Dict& dict = _CAST(Dict&, vkwargs); + dict.set(VAR(key.sv()), kwargs[j+1]); + } + } + } +} + +PyObject* VM::vectorcall(int ARGC, int KWARGC, bool op_call){ + PyObject** p1 = s_data._sp - KWARGC*2; + PyObject** p0 = p1 - ARGC - 2; + // [callable, , args..., kwargs...] + // ^p0 ^p1 ^_sp + PyObject* callable = p1[-(ARGC + 2)]; + Type callable_t = _tp(callable); + + int method_call = p0[1] != PY_NULL; + + // handle boundmethod, do a patch + if(callable_t == tp_bound_method){ + if(method_call) PK_FATAL_ERROR(); + BoundMethod& bm = PK_OBJ_GET(BoundMethod, callable); + callable = bm.func; // get unbound method + callable_t = _tp(callable); + p1[-(ARGC + 2)] = bm.func; + p1[-(ARGC + 1)] = bm.self; + method_call = 1; + // [unbound, self, args..., kwargs...] + } + + ArgsView args(p1 - ARGC - method_call, p1); + ArgsView kwargs(p1, s_data._sp); + + PyObject** _base = args.begin(); + PyObject* buffer[PK_MAX_CO_VARNAMES]; + + if(callable_t == tp_function){ + /*****************_py_call*****************/ + // check stack overflow + if(s_data.is_overflow()) StackOverflowError(); + + const Function& fn = PK_OBJ_GET(Function, callable); + const CodeObject* co = fn.decl->code.get(); + int co_nlocals = co->varnames.size(); + + switch(fn.decl->type){ + case FuncType::UNSET: PK_FATAL_ERROR(); break; + case FuncType::NORMAL: + _prepare_py_call(buffer, args, kwargs, fn.decl); + // copy buffer back to stack + s_data.reset(_base + co_nlocals); + for(int j=0; jargs.size()) TypeError(_S(co->name, "() takes ", fn.decl->args.size(), " positional arguments but ", args.size(), " were given")); + if(!kwargs.empty()) TypeError(_S(co->name, "() takes no keyword arguments")); + // [callable, , args..., local_vars...] + // ^p0 ^p1 ^_sp + s_data.reset(_base + co_nlocals); + // initialize local variables to PY_NULL + for(PyObject** p=p1; p!=s_data._sp; p++) *p = PY_NULL; + break; + case FuncType::EMPTY: + if(args.size() != fn.decl->args.size()) TypeError(_S(co->name, "() takes ", fn.decl->args.size(), " positional arguments but ", args.size(), " were given")); + if(!kwargs.empty()) TypeError(_S(co->name, "() takes no keyword arguments")); + s_data.reset(p0); + return None; + case FuncType::GENERATOR: + _prepare_py_call(buffer, args, kwargs, fn.decl); + s_data.reset(p0); + return _py_generator( + Frame(nullptr, co, fn._module, callable, nullptr), + ArgsView(buffer, buffer + co_nlocals) + ); + }; + + // simple or normal + callstack.emplace(p0, co, fn._module, callable, args.begin()); + if(op_call) return PY_OP_CALL; + return _run_top_frame(); + /*****************_py_call*****************/ + } + + if(callable_t == tp_native_func){ + const auto& f = PK_OBJ_GET(NativeFunc, callable); + PyObject* ret; + if(f.decl != nullptr){ + int co_nlocals = f.decl->code->varnames.size(); + _prepare_py_call(buffer, args, kwargs, f.decl); + // copy buffer back to stack + s_data.reset(_base + co_nlocals); + for(int j=0; jheap.gcnew(PK_OBJ_GET(Type, callable)); + }else{ + PUSH(new_f); + PUSH(PY_NULL); + PUSH(callable); // cls + for(PyObject* o: args) PUSH(o); + for(PyObject* o: kwargs) PUSH(o); + // if obj is not an instance of `cls`, the behavior is undefined + obj = vectorcall(ARGC+1, KWARGC); + } + + // __init__ + PyObject* self; + callable = get_unbound_method(obj, __init__, &self, false); + if (callable != nullptr) { + callable_t = _tp(callable); + // replace `NULL` with `self` + p1[-(ARGC + 2)] = callable; + p1[-(ARGC + 1)] = self; + // [init_f, self, args..., kwargs...] + vectorcall(ARGC, KWARGC); + // We just discard the return value of `__init__` + // in cpython it raises a TypeError if the return value is not None + }else{ + // manually reset the stack + s_data.reset(p0); + } + return obj; + } + + // handle `__call__` overload + PyObject* self; + PyObject* call_f = get_unbound_method(callable, __call__, &self, false); + if(self != PY_NULL){ + p1[-(ARGC + 2)] = call_f; + p1[-(ARGC + 1)] = self; + // [call_f, self, args..., kwargs...] + return vectorcall(ARGC, KWARGC, false); + } + TypeError(_type_name(vm, callable_t).escape() + " object is not callable"); + PK_UNREACHABLE() +} + +void VM::delattr(PyObject *_0, StrName _name){ + const PyTypeInfo* ti = _inst_type_info(_0); + if(ti->m__delattr__ && ti->m__delattr__(this, _0, _name)) return; + if(is_tagged(_0) || !_0->is_attr_valid()) TypeError("cannot delete attribute"); + if(!_0->attr().del(_name)) AttributeError(_0, _name); +} + +// https://docs.python.org/3/howto/descriptor.html#invocation-from-an-instance +PyObject* VM::getattr(PyObject* obj, StrName name, bool throw_err){ + Type objtype(0); + // handle super() proxy + if(is_type(obj, tp_super)){ + const Super& super = PK_OBJ_GET(Super, obj); + obj = super.first; + objtype = super.second; + }else{ + objtype = _tp(obj); + } + PyObject* cls_var = find_name_in_mro(objtype, name); + if(cls_var != nullptr){ + // handle descriptor + if(is_type(cls_var, tp_property)){ + const Property& prop = PK_OBJ_GET(Property, cls_var); + return call(prop.getter, obj); + } + } + // handle instance __dict__ + if(!is_tagged(obj) && obj->is_attr_valid()){ + PyObject* val; + if(obj->type == tp_type){ + val = find_name_in_mro(PK_OBJ_GET(Type, obj), name); + if(val != nullptr){ + if(is_tagged(val)) return val; + if(val->type == tp_staticmethod) return PK_OBJ_GET(StaticMethod, val).func; + if(val->type == tp_classmethod) return VAR(BoundMethod(obj, PK_OBJ_GET(ClassMethod, val).func)); + return val; + } + }else{ + val = obj->attr().try_get_likely_found(name); + if(val != nullptr) return val; + } + } + if(cls_var != nullptr){ + // bound method is non-data descriptor + if(!is_tagged(cls_var)){ + switch(cls_var->type){ + case tp_function.index: + return VAR(BoundMethod(obj, cls_var)); + case tp_native_func.index: + return VAR(BoundMethod(obj, cls_var)); + case tp_staticmethod.index: + return PK_OBJ_GET(StaticMethod, cls_var).func; + case tp_classmethod.index: + return VAR(BoundMethod(_t(objtype), PK_OBJ_GET(ClassMethod, cls_var).func)); + } + } + return cls_var; + } + + const PyTypeInfo* ti = &_all_types[objtype]; + if(ti->m__getattr__){ + PyObject* ret = ti->m__getattr__(this, obj, name); + if(ret) return ret; + } + + if(throw_err) AttributeError(obj, name); + return nullptr; +} + +// used by OP_LOAD_METHOD +// try to load a unbound method (fallback to `getattr` if not found) +PyObject* VM::get_unbound_method(PyObject* obj, StrName name, PyObject** self, bool throw_err, bool fallback){ + *self = PY_NULL; + Type objtype(0); + // handle super() proxy + if(is_type(obj, tp_super)){ + const Super& super = PK_OBJ_GET(Super, obj); + obj = super.first; + objtype = super.second; + }else{ + objtype = _tp(obj); + } + PyObject* cls_var = find_name_in_mro(objtype, name); + + if(fallback){ + if(cls_var != nullptr){ + // handle descriptor + if(is_type(cls_var, tp_property)){ + const Property& prop = PK_OBJ_GET(Property, cls_var); + return call(prop.getter, obj); + } + } + // handle instance __dict__ + if(!is_tagged(obj) && obj->is_attr_valid()){ + PyObject* val; + if(obj->type == tp_type){ + val = find_name_in_mro(PK_OBJ_GET(Type, obj), name); + if(val != nullptr){ + if(is_tagged(val)) return val; + if(val->type == tp_staticmethod) return PK_OBJ_GET(StaticMethod, val).func; + if(val->type == tp_classmethod) return VAR(BoundMethod(obj, PK_OBJ_GET(ClassMethod, val).func)); + return val; + } + }else{ + val = obj->attr().try_get_likely_found(name); + if(val != nullptr) return val; + } + } + } + + if(cls_var != nullptr){ + if(!is_tagged(cls_var)){ + switch(cls_var->type){ + case tp_function.index: + *self = obj; + break; + case tp_native_func.index: + *self = obj; + break; + case tp_staticmethod.index: + *self = PY_NULL; + return PK_OBJ_GET(StaticMethod, cls_var).func; + case tp_classmethod.index: + *self = _t(objtype); + return PK_OBJ_GET(ClassMethod, cls_var).func; + } + } + return cls_var; + } + + const PyTypeInfo* ti = &_all_types[objtype]; + if(fallback && ti->m__getattr__){ + PyObject* ret = ti->m__getattr__(this, obj, name); + if(ret) return ret; + } + + if(throw_err) AttributeError(obj, name); + return nullptr; +} + +void VM::setattr(PyObject* obj, StrName name, PyObject* value){ + Type objtype(0); + // handle super() proxy + if(is_type(obj, tp_super)){ + Super& super = PK_OBJ_GET(Super, obj); + obj = super.first; + objtype = super.second; + }else{ + objtype = _tp(obj); + } + PyObject* cls_var = find_name_in_mro(objtype, name); + if(cls_var != nullptr){ + // handle descriptor + if(is_type(cls_var, tp_property)){ + const Property& prop = _CAST(Property&, cls_var); + if(prop.setter != vm->None){ + call(prop.setter, obj, value); + }else{ + TypeError(_S("readonly attribute: ", name.escape())); + } + return; + } + } + + const PyTypeInfo* ti = &_all_types[objtype]; + if(ti->m__setattr__){ + ti->m__setattr__(this, obj, name, value); + return; + } + + // handle instance __dict__ + if(is_tagged(obj) || !obj->is_attr_valid()) TypeError("cannot set attribute"); + obj->attr().set(name, value); +} + +PyObject* VM::bind(PyObject* obj, const char* sig, NativeFuncC fn, UserData userdata, BindType bt){ + return bind(obj, sig, nullptr, fn, userdata, bt); +} + +PyObject* VM::bind(PyObject* obj, const char* sig, const char* docstring, NativeFuncC fn, UserData userdata, BindType bt){ + CodeObject_ co; + try{ + // fn(a, b, *c, d=1) -> None + co = compile(_S("def ", sig, " : pass"), "", EXEC_MODE); + }catch(const Exception&){ + throw std::runtime_error("invalid signature: " + std::string(sig)); + } + if(co->func_decls.size() != 1){ + throw std::runtime_error("expected 1 function declaration"); + } + FuncDecl_ decl = co->func_decls[0]; + decl->docstring = docstring; + PyObject* f_obj = VAR(NativeFunc(fn, decl)); + PK_OBJ_GET(NativeFunc, f_obj).set_userdata(userdata); + + switch(bt){ + case BindType::STATICMETHOD: + f_obj = VAR(StaticMethod(f_obj)); + break; + case BindType::CLASSMETHOD: + f_obj = VAR(ClassMethod(f_obj)); + break; + case BindType::DEFAULT: + break; + } + if(obj != nullptr) obj->attr().set(decl->code->name, f_obj); + return f_obj; +} + +PyObject* VM::bind_property(PyObject* obj, const char* name, NativeFuncC fget, NativeFuncC fset){ + PyObject* _0 = heap.gcnew(tp_native_func, fget, 1, false); + PyObject* _1 = vm->None; + if(fset != nullptr) _1 = heap.gcnew(tp_native_func, fset, 2, false); + std::string_view name_sv(name); + int pos = name_sv.find(':'); + if(pos > 0) name_sv = name_sv.substr(0, pos); + PyObject* prop = VAR(Property(_0, _1)); + obj->attr().set(StrName(name_sv), prop); + return prop; +} + +void VM::_builtin_error(StrName type){ _error(call(builtins->attr(type))); } +void VM::_builtin_error(StrName type, PyObject* arg){ _error(call(builtins->attr(type), arg)); } +void VM::_builtin_error(StrName type, const Str& msg){ _builtin_error(type, VAR(msg)); } + +void VM::BinaryOptError(const char* op, PyObject* _0, PyObject* _1) { + StrName name_0 = _type_name(vm, _tp(_0)); + StrName name_1 = _type_name(vm, _tp(_1)); + TypeError(_S("unsupported operand type(s) for ", op, ": ", name_0.escape(), " and ", name_1.escape())); +} + +void VM::AttributeError(PyObject* obj, StrName name){ + if(isinstance(obj, vm->tp_type)){ + _builtin_error("AttributeError", _S("type object ", _type_name(vm, PK_OBJ_GET(Type, obj)).escape(), " has no attribute ", name.escape())); + }else{ + _builtin_error("AttributeError", _S(_type_name(vm, _tp(obj)).escape(), " object has no attribute ", name.escape())); + } +} + +void VM::_error(PyObject* e_obj){ + PK_ASSERT(isinstance(e_obj, tp_exception)) + Exception& e = PK_OBJ_GET(Exception, e_obj); + if(callstack.empty()){ + e.is_re = false; + throw e; + } + PUSH(e_obj); + _raise(); +} + +void VM::_raise(bool re_raise){ + Frame* frame = top_frame(); + Exception& e = PK_OBJ_GET(Exception, s_data.top()); + if(!re_raise){ + e._ip_on_error = frame->_ip; + e._code_on_error = (void*)frame->co; + } + bool ok = frame->jump_to_exception_handler(&s_data); + + int actual_ip = frame->_ip; + if(e._ip_on_error >= 0 && e._code_on_error == (void*)frame->co) actual_ip = e._ip_on_error; + int current_line = frame->co->lines[actual_ip].lineno; // current line + auto current_f_name = frame->co->name.sv(); // current function name + if(frame->_callable == nullptr) current_f_name = ""; // not in a function + e.st_push(frame->co->src, current_line, nullptr, current_f_name); + + if(ok) throw HandledException(); + else throw UnhandledException(); +} + +void ManagedHeap::mark() { + for(PyObject* obj: _no_gc) PK_OBJ_MARK(obj); + vm->callstack.apply([](Frame& frame){ frame._gc_mark(); }); + for(PyObject* obj: vm->s_data) PK_OBJ_MARK(obj); + for(auto [_, co]: vm->_cached_codes) co->_gc_mark(); + if(vm->_last_exception) PK_OBJ_MARK(vm->_last_exception); + if(vm->_curr_class) PK_OBJ_MARK(vm->_curr_class); + if(vm->_c.error != nullptr) PK_OBJ_MARK(vm->_c.error); + if(_gc_marker_ex) _gc_marker_ex(vm); +} + +StrName _type_name(VM *vm, Type type){ + return vm->_all_types[type].name; +} + + +void VM::bind__getitem__(Type type, PyObject* (*f)(VM*, PyObject*, PyObject*)){ + _all_types[type].m__getitem__ = f; + PyObject* nf = bind_method<1>(type, "__getitem__", [](VM* vm, ArgsView args){ + return lambda_get_userdata(args.begin())(vm, args[0], args[1]); + }); + PK_OBJ_GET(NativeFunc, nf).set_userdata(f); +} + +void VM::bind__setitem__(Type type, void (*f)(VM*, PyObject*, PyObject*, PyObject*)){ + _all_types[type].m__setitem__ = f; + PyObject* nf = bind_method<2>(type, "__setitem__", [](VM* vm, ArgsView args){ + lambda_get_userdata(args.begin())(vm, args[0], args[1], args[2]); + return vm->None; + }); + PK_OBJ_GET(NativeFunc, nf).set_userdata(f); +} + +void VM::bind__delitem__(Type type, void (*f)(VM*, PyObject*, PyObject*)){ + _all_types[type].m__delitem__ = f; + PyObject* nf = bind_method<1>(type, "__delitem__", [](VM* vm, ArgsView args){ + lambda_get_userdata(args.begin())(vm, args[0], args[1]); + return vm->None; + }); + PK_OBJ_GET(NativeFunc, nf).set_userdata(f); +} + +#define BIND_UNARY_SPECIAL(name) \ + void VM::bind##name(Type type, PyObject* (*f)(VM*, PyObject*)){ \ + _all_types[type].m##name = f; \ + PyObject* nf = bind_method<0>(_t(type), #name, [](VM* vm, ArgsView args){ \ + return lambda_get_userdata(args.begin())(vm, args[0]);\ + }); \ + PK_OBJ_GET(NativeFunc, nf).set_userdata(f); \ + } + + BIND_UNARY_SPECIAL(__repr__) + BIND_UNARY_SPECIAL(__str__) + BIND_UNARY_SPECIAL(__iter__) + BIND_UNARY_SPECIAL(__next__) + BIND_UNARY_SPECIAL(__neg__) + BIND_UNARY_SPECIAL(__invert__) +#undef BIND_UNARY_SPECIAL + +void VM::bind__hash__(Type type, i64 (*f)(VM*, PyObject*)){ + PyObject* obj = _t(type); + _all_types[type].m__hash__ = f; + PyObject* nf = bind_method<0>(obj, "__hash__", [](VM* vm, ArgsView args){ + i64 ret = lambda_get_userdata(args.begin())(vm, args[0]); + return VAR(ret); + }); + PK_OBJ_GET(NativeFunc, nf).set_userdata(f); +} + +void VM::bind__len__(Type type, i64 (*f)(VM*, PyObject*)){ + PyObject* obj = _t(type); + _all_types[type].m__len__ = f; + PyObject* nf = bind_method<0>(obj, "__len__", [](VM* vm, ArgsView args){ + i64 ret = lambda_get_userdata(args.begin())(vm, args[0]); + return VAR(ret); + }); + PK_OBJ_GET(NativeFunc, nf).set_userdata(f); +} + + +#define BIND_BINARY_SPECIAL(name) \ + void VM::bind##name(Type type, BinaryFuncC f){ \ + _all_types[type].m##name = f; \ + PyObject* nf = bind_method<1>(type, #name, [](VM* vm, ArgsView args){ \ + return lambda_get_userdata(args.begin())(vm, args[0], args[1]);\ + }); \ + PK_OBJ_GET(NativeFunc, nf).set_userdata(f); \ + } + + BIND_BINARY_SPECIAL(__eq__) + BIND_BINARY_SPECIAL(__lt__) + BIND_BINARY_SPECIAL(__le__) + BIND_BINARY_SPECIAL(__gt__) + BIND_BINARY_SPECIAL(__ge__) + BIND_BINARY_SPECIAL(__contains__) + + BIND_BINARY_SPECIAL(__add__) + BIND_BINARY_SPECIAL(__sub__) + BIND_BINARY_SPECIAL(__mul__) + BIND_BINARY_SPECIAL(__truediv__) + BIND_BINARY_SPECIAL(__floordiv__) + BIND_BINARY_SPECIAL(__mod__) + BIND_BINARY_SPECIAL(__pow__) + BIND_BINARY_SPECIAL(__matmul__) + + BIND_BINARY_SPECIAL(__lshift__) + BIND_BINARY_SPECIAL(__rshift__) + BIND_BINARY_SPECIAL(__and__) + BIND_BINARY_SPECIAL(__or__) + BIND_BINARY_SPECIAL(__xor__) + +#undef BIND_BINARY_SPECIAL + + +void Dict::_probe_0(PyObject *key, bool &ok, int &i) const{ + ok = false; + i64 hash = vm->py_hash(key); + i = hash & _mask; + // std::cout << CAST(Str, vm->py_repr(key)) << " " << hash << " " << i << std::endl; + for(int j=0; j<_capacity; j++) { + if(_items[i].first != nullptr){ + if(vm->py_eq(_items[i].first, key)) { ok = true; break; } + }else{ + if(_items[i].second == nullptr) break; + } + // https://github.com/python/cpython/blob/3.8/Objects/dictobject.c#L166 + i = ((5*i) + 1) & _mask; + // std::cout << CAST(Str, vm->py_repr(key)) << " next: " << i << std::endl; + } +} + +void Dict::_probe_1(PyObject *key, bool &ok, int &i) const{ + ok = false; + i = vm->py_hash(key) & _mask; + while(_items[i].first != nullptr) { + if(vm->py_eq(_items[i].first, key)) { ok = true; break; } + // https://github.com/python/cpython/blob/3.8/Objects/dictobject.c#L166 + i = ((5*i) + 1) & _mask; + } +} + +void NativeFunc::check_size(VM* vm, ArgsView args) const{ + if(args.size() != argc && argc != -1) { + vm->TypeError(_S("expected ", argc, " arguments, got ", args.size())); + } +} + +void NextBreakpoint::_step(VM* vm){ + int curr_callstack_size = vm->callstack.size(); + int curr_lineno = vm->top_frame()->curr_lineno(); + if(should_step_into){ + if(curr_callstack_size != callstack_size || curr_lineno != lineno){ + vm->_breakpoint(); + } + }else{ + if(curr_callstack_size == callstack_size) { + if(curr_lineno != lineno) vm->_breakpoint(); + }else if(curr_callstack_size < callstack_size){ + // returning + vm->_breakpoint(); + } + } +} + +void VM::_breakpoint(){ + _next_breakpoint = NextBreakpoint(); + + bool show_where = false; + bool show_headers = true; + + while(true){ + std::vector frames; + LinkedFrame* lf = callstack._tail; + while(lf != nullptr){ + frames.push_back(lf); + lf = lf->f_back; + if(frames.size() >= 4) break; + } + + if(show_headers){ + for(int i=frames.size()-1; i>=0; i--){ + if(!show_where && i!=0) continue; + + SStream ss; + Frame* frame = &frames[i]->frame; + int lineno = frame->curr_lineno(); + ss << "File \"" << frame->co->src->filename << "\", line " << lineno; + if(frame->_callable){ + ss << ", in "; + ss << PK_OBJ_GET(Function, frame->_callable).decl->code->name; + } + ss << '\n'; + ss << "-> " << frame->co->src->get_line(lineno) << '\n'; + stdout_write(ss.str()); + } + show_headers = false; + } + + vm->stdout_write("(Pdb) "); + Frame* frame_0 = &frames[0]->frame; + + std::string line; + if(!std::getline(std::cin, line)){ + stdout_write("--KeyboardInterrupt--\n"); + continue; + } + + if(line == "h" || line == "help"){ + stdout_write("h, help: show this help message\n"); + stdout_write("q, quit: exit the debugger\n"); + stdout_write("n, next: execute next line\n"); + stdout_write("s, step: step into\n"); + stdout_write("w, where: show current stack frame\n"); + stdout_write("c, continue: continue execution\n"); + stdout_write("a, args: show local variables\n"); + stdout_write("p, print : evaluate expression\n"); + stdout_write("l, list: show lines around current line\n"); + stderr_write("ll, longlist: show all lines\n"); + stdout_write("!: execute statement\n"); + continue; + } + if(line == "q" || line == "quit") { + vm->RuntimeError("pdb quit"); + PK_UNREACHABLE() + } + if(line == "n" || line == "next"){ + vm->_next_breakpoint = NextBreakpoint(vm->callstack.size(), frame_0->curr_lineno(), false); + break; + } + if(line == "s" || line == "step"){ + vm->_next_breakpoint = NextBreakpoint(vm->callstack.size(), frame_0->curr_lineno(), true); + break; + } + if(line == "w" || line == "where"){ + show_where = !show_where; + show_headers = true; + continue; + } + if(line == "c" || line == "continue") break; + if(line == "a" || line == "args"){ + int i = 0; + for(PyObject* obj: frame_0->_locals){ + if(obj == PY_NULL) continue; + StrName name = frame_0->co->varnames[i++]; + stdout_write(_S(name.sv(), " = ", CAST(Str&, vm->py_repr(obj)), '\n')); + } + continue; + } + + bool is_list = line == "l" || line == "list"; + bool is_longlist = line == "ll" || line == "longlist"; + + if(is_list || is_longlist){ + if(frame_0->co->src->is_precompiled) continue; + int lineno = frame_0->curr_lineno(); + int start, end; + + if(is_list){ + int max_line = frame_0->co->src->line_starts.size() + 1; + start = std::max(1, lineno-5); + end = std::min(max_line, lineno+5); + }else{ + start = frame_0->co->start_line; + end = frame_0->co->end_line; + if(start == -1 || end == -1) continue; + } + + SStream ss; + int max_width = std::to_string(end).size(); + for(int i=start; i<=end; i++){ + int spaces = max_width - std::to_string(i).size(); + ss << std::string(spaces, ' ') << std::to_string(i); + if(i == lineno) ss << " -> "; + else ss << " "; + ss << frame_0->co->src->get_line(i) << '\n'; + } + stdout_write(ss.str()); + continue; + } + + int space = line.find_first_of(' '); + if(space != -1){ + std::string cmd = line.substr(0, space); + std::string arg = line.substr(space+1); + if(arg.empty()) continue; // ignore empty command + if(cmd == "p" || cmd == "print"){ + CodeObject_ code = compile(arg, "", EVAL_MODE, true); + PyObject* retval = vm->_exec(code.get(), frame_0->_module, frame_0->_callable, frame_0->_locals); + stdout_write(CAST(Str&, vm->py_repr(retval))); + stdout_write("\n"); + }else if(cmd == "!"){ + CodeObject_ code = compile(arg, "", EXEC_MODE, true); + vm->_exec(code.get(), frame_0->_module, frame_0->_callable, frame_0->_locals); + } + continue; + } + } +} + +} // namespace pkpy \ No newline at end of file diff --git a/dependencies/pocketpy/src2/main.cpp b/dependencies/pocketpy/src2/main.cpp new file mode 100644 index 0000000..f0a93cf --- /dev/null +++ b/dependencies/pocketpy/src2/main.cpp @@ -0,0 +1,113 @@ +#include +#include +#include +#include + +#if __has_include("pocketpy_c.h") + #include "pocketpy_c.h" +#else + #include "pocketpy.h" +#endif + +#ifdef _WIN32 + +#include + +std::string pkpy_platform_getline(bool* eof){ + HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); + std::wstringstream wss; + WCHAR buf; + DWORD read; + while (ReadConsoleW(hStdin, &buf, 1, &read, NULL) && buf != L'\n') { + if(eof && buf == L'\x1A') *eof = true; // Ctrl+Z + wss << buf; + } + std::wstring wideInput = wss.str(); + int length = WideCharToMultiByte(CP_UTF8, 0, wideInput.c_str(), (int)wideInput.length(), NULL, 0, NULL, NULL); + std::string output; + output.resize(length); + WideCharToMultiByte(CP_UTF8, 0, wideInput.c_str(), (int)wideInput.length(), &output[0], length, NULL, NULL); + if(!output.empty() && output.back() == '\r') output.pop_back(); + return output; +} + +#else + +std::string pkpy_platform_getline(bool* eof){ + std::string output; + if(!std::getline(std::cin, output)){ + if(eof) *eof = true; + } + return output; +} + +#endif + +static int f_input(pkpy_vm* vm){ + if(!pkpy_is_none(vm, -1)){ + pkpy_CString prompt; + bool ok = pkpy_to_string(vm, -1, &prompt); + if(!ok) return 0; + std::cout << prompt << std::flush; + } + bool eof; + std::string output = pkpy_platform_getline(&eof); + pkpy_push_string(vm, pkpy_string(output.c_str())); + return 1; +} + +int main(int argc, char** argv){ +#if _WIN32 + SetConsoleCP(CP_UTF8); + SetConsoleOutputCP(CP_UTF8); +#endif + pkpy_vm* vm = pkpy_new_vm(true); + + pkpy_push_function(vm, "input(prompt=None) -> str", f_input); + pkpy_eval(vm, "__import__('builtins')"); + pkpy_setattr(vm, pkpy_name("input")); + + if(argc == 1){ + void* repl = pkpy_new_repl(vm); + bool need_more_lines = false; + while(true){ + std::cout << (need_more_lines ? "... " : ">>> "); + bool eof = false; + std::string line = pkpy_platform_getline(&eof); + if(eof) break; + need_more_lines = pkpy_repl_input(repl, line.c_str()); + } + pkpy_delete_vm(vm); + return 0; + } + + if(argc == 2){ + std::string argv_1 = argv[1]; + if(argv_1 == "-h" || argv_1 == "--help") goto __HELP; + + std::filesystem::path filepath(argv[1]); + filepath = std::filesystem::absolute(filepath); + if(!std::filesystem::exists(filepath)){ + std::cerr << "File not found: " << argv_1 << std::endl; + return 2; + } + std::ifstream file(filepath); + if(!file.is_open()){ + std::cerr << "Failed to open file: " << argv_1 << std::endl; + return 3; + } + std::string src((std::istreambuf_iterator(file)), std::istreambuf_iterator()); + file.close(); + + pkpy_set_main_argv(vm, argc, argv); + + bool ok = pkpy_exec_2(vm, src.c_str(), filepath.filename().string().c_str(), 0, NULL); + if(!ok) pkpy_clear_error(vm, NULL); + pkpy_delete_vm(vm); + return ok ? 0 : 1; + } + +__HELP: + std::cout << "Usage: pocketpy [filename]" << std::endl; + return 0; +} diff --git a/dependencies/pocketpy/src2/pocketpy_c.c b/dependencies/pocketpy/src2/pocketpy_c.c new file mode 100644 index 0000000..7472773 --- /dev/null +++ b/dependencies/pocketpy/src2/pocketpy_c.c @@ -0,0 +1,260 @@ + +#include "pocketpy_c.h" + +#ifdef _WIN32 +#pragma warning(disable: 4700) +#endif + +pkpy_vm* pkpy_new_vm(bool enable_os) { + pkpy_vm* returnValue; + return returnValue; +} + +void pkpy_delete_vm(pkpy_vm* vm) { + +} + +bool pkpy_exec(pkpy_vm* vm, const char* source) { + bool returnValue; + return returnValue; +} + +bool pkpy_exec_2(pkpy_vm* vm, const char* source, const char* filename, int mode, const char* module) { + bool returnValue; + return returnValue; +} + +void pkpy_set_main_argv(pkpy_vm* vm, int argc, char** argv){ + +} + +bool pkpy_dup(pkpy_vm* vm, int i) { + bool returnValue; + return returnValue; +} + +bool pkpy_pop(pkpy_vm* vm, int n) { + bool returnValue; + return returnValue; +} + +bool pkpy_pop_top(pkpy_vm* vm) { + bool returnValue; + return returnValue; +} + +bool pkpy_dup_top(pkpy_vm* vm) { + bool returnValue; + return returnValue; +} + +bool pkpy_rot_two(pkpy_vm* vm) { + bool returnValue; + return returnValue; +} + +int pkpy_stack_size(pkpy_vm* vm) { + int returnValue; + return returnValue; +} + +bool pkpy_push_int(pkpy_vm* vm, int val) { + bool returnValue; + return returnValue; +} + +bool pkpy_is_int(pkpy_vm* vm, int i) { + bool returnValue; + return returnValue; +} + +bool pkpy_to_int(pkpy_vm* vm, int i, int* out) { + bool returnValue; + return returnValue; +} + +bool pkpy_push_float(pkpy_vm* vm, double val) { + bool returnValue; + return returnValue; +} + +bool pkpy_is_float(pkpy_vm* vm, int i) { + bool returnValue; + return returnValue; +} + +bool pkpy_to_float(pkpy_vm* vm, int i, double* out) { + bool returnValue; + return returnValue; +} + +bool pkpy_push_bool(pkpy_vm* vm, bool val) { + bool returnValue; + return returnValue; +} + +bool pkpy_is_bool(pkpy_vm* vm, int i) { + bool returnValue; + return returnValue; +} + +bool pkpy_to_bool(pkpy_vm* vm, int i, bool* out) { + bool returnValue; + return returnValue; +} + +bool pkpy_push_string(pkpy_vm* vm, pkpy_CString val) { + bool returnValue; + return returnValue; +} + +bool pkpy_is_string(pkpy_vm* vm, int i) { + bool returnValue; + return returnValue; +} + +bool pkpy_to_string(pkpy_vm* vm, int i, pkpy_CString* out) { + bool returnValue; + return returnValue; +} + +bool pkpy_push_voidp(pkpy_vm* vm, void* val) { + bool returnValue; + return returnValue; +} + +bool pkpy_is_voidp(pkpy_vm* vm, int i) { + bool returnValue; + return returnValue; +} + +bool pkpy_to_voidp(pkpy_vm* vm, int i, void** out) { + bool returnValue; + return returnValue; +} + +bool pkpy_push_none(pkpy_vm* vm) { + bool returnValue; + return returnValue; +} + +bool pkpy_is_none(pkpy_vm* vm, int i) { + bool returnValue; + return returnValue; +} + +bool pkpy_push_null(pkpy_vm* vm) { + bool returnValue; + return returnValue; +} + +bool pkpy_push_function(pkpy_vm* vm, const char* sig, pkpy_CFunction val) { + bool returnValue; + return returnValue; +} + +bool pkpy_push_module(pkpy_vm* vm, const char* name) { + bool returnValue; + return returnValue; +} + +bool pkpy_getattr(pkpy_vm* vm, pkpy_CName name) { + bool returnValue; + return returnValue; +} + +bool pkpy_setattr(pkpy_vm* vm, pkpy_CName name) { + bool returnValue; + return returnValue; +} + +bool pkpy_getglobal(pkpy_vm* vm, pkpy_CName name) { + bool returnValue; + return returnValue; +} + +bool pkpy_setglobal(pkpy_vm* vm, pkpy_CName name) { + bool returnValue; + return returnValue; +} + +bool pkpy_eval(pkpy_vm* vm, const char* source) { + bool returnValue; + return returnValue; +} + +bool pkpy_unpack_sequence(pkpy_vm* vm, int size) { + bool returnValue; + return returnValue; +} + +bool pkpy_get_unbound_method(pkpy_vm* vm, pkpy_CName name) { + bool returnValue; + return returnValue; +} + +bool pkpy_py_repr(pkpy_vm* vm) { + bool returnValue; + return returnValue; +} + +bool pkpy_py_str(pkpy_vm* vm) { + bool returnValue; + return returnValue; +} + +bool pkpy_error(pkpy_vm* vm, const char* name, pkpy_CString msg) { + bool returnValue; + return returnValue; +} + +bool pkpy_check_error(pkpy_vm* vm) { + bool returnValue; + return returnValue; +} + +bool pkpy_clear_error(pkpy_vm* vm, char** message) { + bool returnValue; + return returnValue; +} + +bool pkpy_vectorcall(pkpy_vm* vm, int argc) { + bool returnValue; + return returnValue; +} + +void pkpy_free(void* p) { + +} + +pkpy_CName pkpy_name(const char* s) { + pkpy_CName returnValue; + return returnValue; +} + +pkpy_CString pkpy_name_to_string(pkpy_CName name) { + pkpy_CString returnValue; + return returnValue; +} + +void pkpy_set_output_handler(pkpy_vm* vm, pkpy_COutputHandler handler) { + +} + +void pkpy_set_import_handler(pkpy_vm* vm, pkpy_CImportHandler handler) { + +} + +void* pkpy_new_repl(pkpy_vm* vm) { + void* returnValue; + return returnValue; +} + +bool pkpy_repl_input(void* r, const char* line) { + bool returnValue; + return returnValue; +} + +void pkpy_delete_repl(void* repl) { + +} diff --git a/dependencies/pocketpy/tests/01_int.py b/dependencies/pocketpy/tests/01_int.py new file mode 100644 index 0000000..2c13964 --- /dev/null +++ b/dependencies/pocketpy/tests/01_int.py @@ -0,0 +1,173 @@ +# test int literals +assert 0xffff == 65535 +assert 0xAAFFFF == 11206655 +assert 0x7fffffff == 2147483647 +assert -0xffff == -65535 +assert -0xAAFFFF == -11206655 +assert -0x7fffffff == -2147483647 +# test 64-bit +assert 2**60-1 + 546 - 0xfffffffffffff == 1148417904979477026 + +# test oct literals +assert 0o1234 == 668 +assert 0o17777777777 == 2147483647 +assert -0o1234 == -668 +assert -0o17777777777 == -2147483647 + +# test binary literals +assert 0b10010 == 18 +assert -0b10010 == -18 +assert 0b11111111111111111111111111111111 == 4294967295 +assert -0b11111 == -31 + +# test == != >= <= < > +assert -1 == -1 +assert -1 != 1 +assert -1 >= -1 +assert -1 <= -1 +assert -1 < 1 +assert -1 > -2 + +# test + - * % ** // +assert -1 + 1 == 0 +assert -1 - 1 == -2 +assert 4 * -1 == -4 +assert 5 % 2 == 1 +assert 2 ** 3 == 8 +assert 4 // 2 == 2 +assert 5 // 2 == 2 + +# test += -= *= //= +x = 3 +x += 1 +assert x == 4 +x -= 1 +assert x == 3 +x *= 2 +assert x == 6 +x //= 2 +assert x == 3 + +# test __str__, __repr__ +assert str(1) == '1' +assert repr(1) == '1' + +# test bit_length +assert (1).bit_length() == 1 +assert (2).bit_length() == 2 +assert (3).bit_length() == 2 + +assert (-1).bit_length() == 1 +assert (-2).bit_length() == 2 +assert (-3).bit_length() == 2 + +assert (123123123123123).bit_length() == 47 +assert (-3123123123).bit_length() == 32 + +# test int() +assert int() == 0 +assert int(True) == 1 +assert int(False) == 0 + +assert int(1) == 1 +assert int(1.0) == 1 +assert int(1.1) == 1 +assert int(1.9) == 1 +assert int(-1.9) == -1 +assert int(1.5) == 1 +assert int(-1.5) == -1 +assert int("123") == 123 + +assert int("0x123", 16) == 291 +assert int("0o123", 8) == 83 +assert int("-0x123", 16) == -291 +assert int("-0o123", 8) == -83 +assert int("-123") == -123 +assert int("+123") == 123 + +# test >> << & | ^ +assert 12 >> 1 == 6 +assert 12 << 1 == 24 +assert 12 & 1 == 0 +assert 12 | 1 == 13 +assert 12 ^ 1 == 13 + +# test high precision int pow +assert 7**21 == 558545864083284007 +assert 2**60 == 1152921504606846976 +assert -2**60 == -1152921504606846976 +assert 4**13 == 67108864 +assert (-4)**13 == -67108864 + +assert ~3 == -4 +assert ~-3 == 2 +assert ~0 == -1 + +try: + 1 // 0 + exit(1) +except ZeroDivisionError: + pass + +try: + 1 % 0 + exit(1) +except ZeroDivisionError: + pass + +try: + 2**60 // 0 + exit(1) +except ZeroDivisionError: + pass + +try: + 2**60 % 0 + exit(1) +except ZeroDivisionError: + pass + +try: + divmod(1, 0) + exit(1) +except ZeroDivisionError: + pass + +try: + divmod(2**60, 0) + exit(1) +except ZeroDivisionError: + pass + +assert not 1 < 2 > 3 + +try: + x = eval("231231312312312312312312312312312312314354657553423345632") + print(f"eval should fail, but got {x!r}") + exit(1) +except SyntaxError: + pass + +assert int("-5") == -5 +assert int("-4") == -4 +assert int("-3") == -3 +assert int("-2") == -2 +assert int("-1") == -1 +assert int("0") == 0 +assert int("1") == 1 +assert int("2") == 2 +assert int("3") == 3 +assert int("4") == 4 +assert int("5") == 5 +assert int("6") == 6 +assert int("7") == 7 +assert int("8") == 8 +assert int("9") == 9 +assert int("10") == 10 +assert int("11") == 11 +assert int("12") == 12 +assert int("13") == 13 +assert int("14") == 14 +assert int("15") == 15 +assert int("16") == 16 + diff --git a/dependencies/pocketpy/tests/02_float.py b/dependencies/pocketpy/tests/02_float.py new file mode 100644 index 0000000..4ca8c9b --- /dev/null +++ b/dependencies/pocketpy/tests/02_float.py @@ -0,0 +1,97 @@ +def eq(a, b): + dt = a - b + return dt > -0.001 and dt < 0.001 + +# test == != >= <= < > +assert 1.0 == 1.0 +assert 1.0 != 1.1 +assert 1.0 >= 1.0 +assert 1.0 <= 1.0 +assert 1.0 < 1.1 +assert 1.1 > 1.0 + +# test + - * ** / +assert eq(1.5 + 3, 4.5) +assert eq(1.5 + 3.9, 5.4) +assert eq(5.3 - 2.5, 2.8) +assert eq(0.2**2, 0.04) +assert eq(4**(-1.0), 0.25) +assert eq(2/1, 2.0) +assert eq(3/2.0, 1.5) +assert eq(1/9, 0.11111) + +# test += -= *= /= +x = 3.0 +x += 1 +assert eq(x, 4.0) +x -= 1 +assert eq(x, 3.0) +x *= 2 +assert eq(x, 6.0) +x /= 1.8 +assert eq(x, 3.3333) + +# test __str__, __repr__ +assert str(1.0) == '1.0' +assert repr(1.0) == '1.0' + +# test float() +assert float() == 0.0 +assert float(True) == 1.0 +assert float(False) == 0.0 +assert float(1) == 1.0 +assert float(-2) == -2.0 + +assert eq(float(1), 1.0) +assert eq(float(1.0), 1.0) +assert eq(float(1.1), 1.1) +assert eq(float(1.9), 1.9) +assert eq(float(-1.9), -1.9) +assert eq(float(1.5), 1.5) +assert eq(float(-1.5), -1.5) +assert eq(float("123"), 123.0) +assert eq(float("123.456"), 123.456) + + +import math + +inf = float("inf") +assert 1/0 == inf +assert -1/0 == -inf +assert 1/inf == 0 +assert -1/inf == 0 +assert math.isnan(0/0) + +assert 2**-6000 == 0.0 +assert 2.0 ** 6000 == inf +assert (-2.0) ** 6001 == -inf + +# test .123 forms +assert float(".123") == 0.123 +assert .123 == 0.123 +assert eq(.5 *2, 1.0) +assert eq(2 * .5, 1.0) +assert eq(2 * (.5), 1.0) +assert eq(2 * (.5 + 1), 3.0) + + +assert 1e3 == 1000.0 +assert 1e-3 == 0.001 +assert -1e3 == -1000.0 +assert -1e-3 == -0.001 +assert 1e0 == 1.0 +assert 1e-0 == 1.0 + +assert 2e3 == 2000.0 +assert 2e3j == 2000j +assert -2e-3 == -0.002 +assert -2e-3j == -0.002j + +assert 3.4e-3 == 0.0034 +assert 3.4e+3 == 3400.0 + +try: + float('-x13') + exit(1) +except ValueError: + pass diff --git a/dependencies/pocketpy/tests/03_bool.py b/dependencies/pocketpy/tests/03_bool.py new file mode 100644 index 0000000..a9b2f21 --- /dev/null +++ b/dependencies/pocketpy/tests/03_bool.py @@ -0,0 +1,20 @@ +# test == != +assert True == True +assert True != False +assert False == False +assert False != True + +# test and/or/not +assert True and True +assert not (True and False) +assert True or True +assert True or False +assert not False +assert not (not True) + +assert bool(0) == False +assert bool(1) == True +assert bool([]) == False +assert bool("abc") == True +assert bool([1,2]) == True +assert bool('') == False \ No newline at end of file diff --git a/dependencies/pocketpy/tests/04_line_continue.py b/dependencies/pocketpy/tests/04_line_continue.py new file mode 100644 index 0000000..464a2de --- /dev/null +++ b/dependencies/pocketpy/tests/04_line_continue.py @@ -0,0 +1,31 @@ +a = 1 + 2 \ + + 3 + +assert a == 6 + +assert 1 + 2 \ + + 3 == 6 + +assert 1 + 2 + \ + 3 + \ + 4 == 10 + +assert 1 + 2 + \ + 3 + \ + 4 + 5 + 6 \ + == 21 + +if 1 and 2 \ + and 3 \ + and 4 \ + and 5: + assert True +else: + assert False + +1 and 2 \ + and 3 \ + and 4 + +a = 1 +assert a == 1 \ No newline at end of file diff --git a/dependencies/pocketpy/tests/04_str.py b/dependencies/pocketpy/tests/04_str.py new file mode 100644 index 0000000..c9c78ea --- /dev/null +++ b/dependencies/pocketpy/tests/04_str.py @@ -0,0 +1,266 @@ +assert 'testing' == 'test' + 'ing' +assert 'testing' != 'test' + 'ing2' +assert 'testing' < 'test' + 'ing2' +assert 'testing' <= 'test' + 'ing2' +assert 'testing5' > 'test' + 'ing1' +assert 'testing5' >= 'test' + 'ing1' + +# test + *= +assert 'abc' + 'def' == 'abcdef' +assert 'abc' * 3 == 'abcabcabc' + +assert repr('\\\n\t\'\r\b\x48') == r"'\\\n\t\'\r\bH'" + +a = '' +b = 'test' +c ='test' +assert a == str() +assert len(a) == 0 +assert len(b) == 4 +assert b == c + +# upper and lower does not work for utf-8 +assert ''.lower() == '' and ''.upper() == '' +assert 'already+lower '.lower() == 'already+lower ' +assert 'ALREADY+UPPER '.upper() == 'ALREADY+UPPER ' +assert 'tEST+InG'.lower() == 'test+ing' +assert 'tEST+InG'.upper() == 'TEST+ING' + +s = "football" +q = "abcd" +r = "zoo" +t = "this is string example....wow!!!" +assert s[0] == 'f' +assert s[1:4] == 'oot' +assert s[:-1] == 'footbal' +assert s[:10] == 'football' +assert s[-3] == 'a' +assert t[-5:] == 'ow!!!' +assert t[3:-3] == 's is string example....wow' +assert s > q;assert s < r +assert s.replace("o","") == "ftball" +assert s.replace("o","O",1) == "fOotball" +assert s.replace("foo","ball",1) == "balltball" +assert s.startswith('f') == True;assert s.endswith('o') == False +assert t.startswith('this') == True; + + +assert t.split('w') == ['this is string example....', 'o', '!!!'] +assert "a,b,c".split(',') == ['a', 'b', 'c'] +assert 'a,'.split(',') == ['a'] +assert 'foo!!bar!!baz'.split('!!') == ['foo', 'bar', 'baz'] +assert ' 4 3 '.split() == ['4', '3'] +assert ' 4 3 '.split(' ') == ['4', '3'] + +x = 'aa bb cccc' +assert x.split('cc') == ['aa bb '] + +assert '111'.count('1') == 3 +assert '111'.count('11') == 1 +assert '1111'.count('11') == 2 +assert '11'.count('') == 3 +assert ''.count('1') == 0 +assert ''.count('') == 1 + +t = "*****this is **string** example....wow!!!*****" +s = "123abcrunoob321" +assert t.strip( '*' ) == "this is **string** example....wow!!!" +assert s.strip( '12' ) == "3abcrunoob3" + +assert t.strip( '*' ) == "this is **string** example....wow!!!" +assert s.strip( '12' ) == "3abcrunoob3" + +assert '测试123'.strip('测试') == '123' +assert '测试123测试'.strip('测试') == '123' +assert '123测试'.strip('2') == '123测试' +assert '测试123'.strip('测') == '试123' +assert '测试123'.strip('试') == '测试123' + +assert '测试123测试'.lstrip('测试') == '123测试' +assert '测试123测试'.rstrip('测试') == '测试123' + +assert 'abc'.lstrip('a') == 'bc' +assert 'abc'.lstrip('b') == 'abc' +assert 'abc'.lstrip('c') == 'abc' +assert 'abc'.rstrip('a') == 'abc' +assert 'abc'.rstrip('b') == 'abc' +assert 'abc'.rstrip('c') == 'ab' + +assert 'abc'.lstrip('abc') == '' +assert 'abc'.rstrip('abc') == '' +assert 'abc'.strip('abc') == '' + +s = ' asd\n asd \n' +assert s.strip() == 'asd\n asd' + +s1 = "-" +s2 = "" +seq = ["r","u","n","o","o","b"] +assert s1.join( seq ) == "r-u-n-o-o-b" +assert s2.join( seq ) == "runoob" + +assert 'x'.zfill(5) == '0000x' +assert '568'.zfill(1) == '568' + +def test(*seq): + return s1.join(seq) +assert test("r", "u", "n", "o", "o", "b") == "r-u-n-o-o-b" + +def f(): + for i in range(5): + yield str(i) +assert '|'.join(f()) == '0|1|2|3|4' + +num = 6 +assert str(num) == '6' + +# test Lo group names + +测试 = "test" +assert 测试 == "test" + +assert "Hello, {}!".format("World") == "Hello, World!" +assert "{} {} {}".format("I", "love", "Python") == "I love Python" +assert "{0} {1} {2}".format("I", "love", "Python") == "I love Python" +assert "{2} {1} {0}".format("I", "love", "Python") == "Python love I" +assert "{0}{1}{0}".format("abra", "cad") == "abracadabra" + +assert "{k}={v}".format(k="key", v="value") == "key=value" +assert "{k}={k}".format(k="key") == "key=key" +assert "{0}={1}".format('{0}', '{1}') == "{0}={1}" +assert "{{{0}}}".format(1) == "{1}" +assert "{0}{1}{1}".format(1, 2, 3) == "122" +try: + "{0}={1}}".format(1, 2) + exit(1) +except ValueError: + pass +assert "{{{}xxx{}x}}".format(1, 2) == "{1xxx2x}" +assert "{{abc}}".format() == "{abc}" + +# 3rd slice +a = "Hello, World!" +assert a[::-1] == "!dlroW ,olleH" +assert a[::2] == "Hlo ol!" +assert a[2:5:2] == "lo" +assert a[5:2:-1] == ",ol" +assert a[5:2:-2] == ",l" + +b = list(a) +assert b == ['H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!'] +assert b[::-1] == ['!', 'd', 'l', 'r', 'o', 'W', ' ', ',', 'o', 'l', 'l', 'e', 'H'] +assert b[::2] == ['H', 'l', 'o', ' ', 'o', 'l', '!'] +assert b[2:5:2] == ['l', 'o'] +assert b[5:2:-1] == [',', 'o', 'l'] +assert b[5:2:-2] == [',', 'l'] + +a = '123' +assert a.rjust(5) == ' 123' +assert a.rjust(5, '0') == '00123' +try: + a.rjust(5, '00') + exit(1) +except TypeError: + pass +assert a.ljust(5) == '123 ' +assert a.ljust(5, '0') == '12300' +try: + a.ljust(5, '00') + exit(1) +except TypeError: + pass + +assert '\x30\x31\x32' == '012' + +a = 'abcd' +assert list(a) == ['a', 'b', 'c', 'd'] +a = '测试' +assert list(a) == ['测', '试'] +a = 'a测b试c' +assert list(a) == ['a', '测', 'b', '试', 'c'] +a = 'a测b试' +assert list(a) == ['a', '测', 'b', '试'] +a = '测b试c' +assert list(a) == ['测', 'b', '试', 'c'] +a = '测b' +assert list(a) == ['测', 'b'] +a = 'b' +assert list(a) == ['b'] +a = '测' +assert list(a) == ['测'] + +assert '\b\b\b' == '\x08\x08\x08' +stack=[1,2,3,4]; assert f"{stack[2:]}" == '[3, 4]' + +assert repr('\x1f\x1e\x1f') == '\'\\x1f\\x1e\\x1f\'' + + +assert hex(-42) == '-0x2a' +assert hex(42) == '0x2a' + +assert hex(0) == '0x0' +assert hex(1) == '0x1' +assert hex(15) == '0xf' +assert hex(16) == '0x10' +assert hex(255) == '0xff' +assert hex(256) == '0x100' +assert hex(257) == '0x101' +assert hex(17) == '0x11' + +import c +assert repr(c.NULL) == '' +assert repr(c.void_p(1)) == '' +assert repr(c.void_p(15)) == '' +assert repr(c.void_p(16)) == '' +assert repr(c.void_p(255)) == '' +assert repr(c.void_p(256)) == '' +assert repr(c.void_p(257)) == '' +assert repr(c.void_p(17)) == '' + +# random hex test +import random + + +def test(__min, __max): + for _ in range(100): + num = random.randint(__min, __max) + hex_num = hex(num) + assert eval(hex_num) == num + if num >= 0: + assert repr(c.void_p(num)) == f'' + +test(0, 100) +test(0, 100000) +test(-100, 100) +test(-100000, 100000) +test(-2**30, 2**30) + + +a = '123' +assert a.index('2') == 1 +assert a.index('1') == 0 +assert a.index('3') == 2 + +assert a.index('2', 1) == 1 +assert a.index('1', 0) == 0 + +try: + a.index('1', 1) + exit(1) +except ValueError: + pass + +try: + a.index('1', -1) + exit(1) +except ValueError: + pass + +assert a.find('1') == 0 +assert a.find('1', 1) == -1 + +try: + a.find('1', -1) + exit(1) +except ValueError: + pass diff --git a/dependencies/pocketpy/tests/05_list.py b/dependencies/pocketpy/tests/05_list.py new file mode 100644 index 0000000..c9bdb7e --- /dev/null +++ b/dependencies/pocketpy/tests/05_list.py @@ -0,0 +1,131 @@ +# generate assert test for list + +assert [1, 2, 3] == [1, 2, 3] +assert [1, 2, 3] != [1, 2, 4] + +# test + *= +assert [1, 2, 3] + [4, 5, 6] == [1, 2, 3, 4, 5, 6] +assert [1, 2, 3] * 3 == [1, 2, 3, 1, 2, 3, 1, 2, 3] + +l = [1,2,3,4] +assert l[2] == 3 +assert l[-1] == 4 +assert l[:32] == [1,2,3,4] +assert l[32:] == [] +assert l[1:4] == [2,3,4] +assert l[-1:-3] == [] +assert l[-3:-1] == [2,3] + +l = (1,2,3,4) +assert l[2] == 3 +assert l[-1] == 4 +assert l[:32] == (1,2,3,4) +assert l[32:] == tuple([]) +assert l[1:4] == (2,3,4) +assert l[-1:-3] == tuple([]) +assert l[-3:-1] == (2,3) + +l1 = [1];l2 = l1;l1.append(2);l3 = [1,1,2] +assert l2[1] == 2 +assert l1 == l2 +assert l1*3 == [1,2,1,2,1,2] +assert l3.count(1) == 2 + +member = ['Tom', 'Sunny', 'Honer', 'Lily'] +teacher = [1,2,3] +assert len(member + teacher) == 7 +assert member[0] == 'Tom' +assert member[-2] == 'Honer' +assert member[0:3] == ['Tom', 'Sunny', 'Honer'] + +member.remove('Sunny') +assert member == ['Tom', 'Honer', 'Lily'] +member.pop() +assert member == ['Tom', 'Honer'] +del member[0] +assert member == ['Honer'] +member.append('Jack') +assert member == ['Honer','Jack'] +member.extend(teacher) +assert member == ['Honer','Jack',1,2,3] +member.insert(1,'Tom') +assert member == ['Honer','Tom','Jack',1,2,3] +member.clear() +assert member == [] +member = teacher.copy() +assert member == [1,2,3] + +l = [] +l.insert(0, 'l') +l.insert(1, 'l') +l.insert(0, 'h') +l.insert(3, 'o') +l.insert(1, 'e') +assert l == ['h', 'e', 'l', 'l', 'o'] +assert l[-2] == 'l' + +# test sort +a = [8, 2, 4, 2, 9] +assert sorted(a) == [2, 2, 4, 8, 9] +assert sorted(a, reverse=True) == [9, 8, 4, 2, 2] + +assert sorted(a, key=lambda x:-x, reverse=True) == [2, 2, 4, 8, 9] +assert a == [8, 2, 4, 2, 9] + +b = [(1, 2), (3, 3), (5, 1)] +b.sort(key=lambda x:x[1]) +assert b == [(5, 1), (1, 2), (3,3)] + +# unpacking builder +a = [1, 2, 3] +b = [*a, 4, 5] +assert b == [1, 2, 3, 4, 5] + +a = [] +b = [*a, 1, 2, 3, *a, *a] +assert b == [1, 2, 3] + +assert b[ + 1 +] == 2 + +assert b[0 +] == 1 + +assert b[0] == 1 +assert b[ + 0] == 1 + +a = [] +a.append(0) +a.append([1, 2, a]) + +assert repr(a) == "[0, [1, 2, [...]]]" + +# slice extras +class A: + def __getitem__(self, index): + return index + +assert A()[1:2, 3] == (slice(1, 2, None), 3) +assert A()[1:2, 3:4] == (slice(1, 2, None), slice(3, 4, None)) +assert A()[1:2, 3:4, 5] == (slice(1, 2, None), slice(3, 4, None), 5) +assert A()[:, :] == (slice(None, None, None), slice(None, None, None)) +assert A()[::, :] == (slice(None, None, None), slice(None, None, None)) +assert A()[::, :2] == (slice(None, None, None), slice(None, 2, None)) +assert A()['b':'c':1, :] == (slice('b', 'c', 1), slice(None, None, None)) +assert A()[1:2, :A()[3:4, ::-1]] == (slice(1, 2, None), slice(None, (slice(3, 4, None), slice(None, None, -1)), None)) + +a = [1, 2, 3] +assert a.index(2) == 1 +assert a.index(1) == 0 +assert a.index(3) == 2 + +assert a.index(2, 1) == 1 +assert a.index(1, 0) == 0 + +try: + a.index(1, 1) + exit(1) +except ValueError: + pass diff --git a/dependencies/pocketpy/tests/06_tuple.py b/dependencies/pocketpy/tests/06_tuple.py new file mode 100644 index 0000000..6fae706 --- /dev/null +++ b/dependencies/pocketpy/tests/06_tuple.py @@ -0,0 +1,24 @@ +tup = ('Google', 'Runoob', 'Taobao', 'Wiki', 'Weibo','Weixin') +a,b = 1,2 +assert a == 1 +assert b == 2 +a,b = b,a +assert a == 2 +assert b == 1 +assert len(tup) == 6 + +# unpacking builder +a = 1, 2, 3 +b = *a, 4, 5 +assert b == (1, 2, 3, 4, 5) + +a = tuple([]) +b = *a, 1, 2, 3, *a, *a +assert b == (1, 2, 3) + + +assert (1,) == tuple([1]) +assert (1,2,) == tuple([1,2]) + +a = 1, +assert a == (1,) \ No newline at end of file diff --git a/dependencies/pocketpy/tests/07_dict.py b/dependencies/pocketpy/tests/07_dict.py new file mode 100644 index 0000000..befbe48 --- /dev/null +++ b/dependencies/pocketpy/tests/07_dict.py @@ -0,0 +1,162 @@ +emptyDict = dict() +assert len(emptyDict) == 0 +tinydict = {'Name': 'Tom', 'Age': 7, 'Class': 'First'} +assert tinydict['Name'] == 'Tom';assert tinydict['Age'] == 7 +tinydict['Age'] = 8;tinydict['School'] = "aaa" +assert tinydict['Age'] == 8;assert tinydict['School'] == "aaa" +del tinydict['Name'] +assert len(tinydict) == 3 +tinydict.clear() +assert len(tinydict) == 0 + +dict1 = {'user':'circle','num':[1,2,3]} +dict2 = dict1.copy() +for k,v in dict1.items(): + assert dict2[k] == v + +tinydict = {'Name': 'circle', 'Age': 7} +tinydict2 = {'Sex': 'female' } +assert len(tinydict) == 2 +assert len(tinydict2) == 1 +tinydict.update(tinydict2) +updated_dict = {'Name': 'circle', 'Age': 7, 'Sex': 'female'} +for k,v in tinydict.items(): + assert updated_dict[k] == v +assert len(tinydict) == 3 +assert tinydict == updated_dict + +dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500} +# dict is now ordered +assert dishes.keys() == ('eggs', 'sausage', 'bacon', 'spam') +assert dishes.values() == (2, 1, 1, 500) + +d={1:"a",2:"b",3:"c"} +result=[] +for k,v in d.items(): + result.append(k) + result.append(v) +assert len(result) == 6 + +del d[2] +assert len(d) == 2 +assert d.keys() == (1, 3) +assert d.values() == ('a', 'c') +del d[1] +del d[3] +assert len(d) == 0 + +# test __eq__ +d1 = {1:2, 3:4} +d2 = {3:4, 1:2} +d3 = {1:2, 3:4, 5:6} +assert d1 == d2 +assert d1 != d3 + +a = dict([(1, 2), (3, 4)]) +assert a == {1: 2, 3: 4} + +assert a.pop(1) == 2 +assert a == {3: 4} +assert a.pop(3) == 4 +assert a == {} + +# unpacking builder +a = {1:2, 3:4} +b = {**a, 5:6, **a} +assert b == {1: 2, 3: 4, 5: 6} + +a = {} +b = {**a, 1:2, 3:4} +assert b == {1: 2, 3: 4} + +a = {1:2, 3:4, 7:8} +b = {**a, 1:5, 3:6} +c = {**a, **b} +assert c == {1: 5, 3: 6, 7: 8} + +a = {} +for i in range(1000): + a[i] = i +assert len(a) == 1000 +for i in range(1000): + del a[i] +assert len(a) == 0 + +a = { + str(i): i + for i in range(10) +} + +for i, s in enumerate(a): + assert s == str(i) + + +a = {'g': 0} + +a['ball_3'] = 0 +a['ball_4'] = 0 +assert a.keys() == ('g', 'ball_3', 'ball_4') +del a['ball_3'] +assert a.keys() == ('g', 'ball_4') +del a['ball_4'] +assert a.keys() == ('g',) +del a['g'] +assert len(a) == 0 + +# ultra test!! +a = {'0': 0, '1': 1} +for i in range(2, 1000): + a[str(i)] = i + del a[str(i - 2)] + assert a[str(i - 1)] == i - 1 + +a = {'0': 0, '1': 1} +b = ['0', '1'] + +# dict delete test +data = [] +j = 6 +for i in range(65535): + j = ((j*5+1) % 65535) + data.append(str(j)) + +for i in range(len(data)): + z = data[i] + a[z] = i + b.append(z) + if i % 3 == 0: + y = b.pop() + del a[y] + +# namedict delete test +class A: pass +a = A() +b = ['0', '1'] + +for i in range(len(data)): + z = data[i] + setattr(a, str(z), i) + b.append(z) + if i % 3 == 0: + y = b.pop() + delattr(a, y) + +a = {1: 2, 3: 4} +assert a.pop(1) == 2 +try: + a.pop(1) + exit(1) +except KeyError: + pass + +assert a.pop(1, None) is None + +try: + a.pop(1, 2, 3) + exit(1) +except TypeError: + pass + +a = {1: 2, 3: 4} +a['a'] = a +assert repr(a) == "{1: 2, 3: 4, 'a': {...}}" diff --git a/dependencies/pocketpy/tests/08_set.py b/dependencies/pocketpy/tests/08_set.py new file mode 100644 index 0000000..07110ec --- /dev/null +++ b/dependencies/pocketpy/tests/08_set.py @@ -0,0 +1,88 @@ +a = {1, 2, 3} +a |= {2, 3, 4} + +assert a == {1, 2, 3, 4} + +a = {1, 2, 3} +a &= {2, 3, 4} + +assert a == {2, 3} + +a = {1, 2, 3} +a ^= {2, 3, 4} + +assert a == {1, 4} + +a = {1, 2, 3} +a -= {2, 3, 4} + +assert a == {1} + +a = {1, 2, 3} +a |= {2, 3, 4} + +assert a == {1, 2, 3, 4} + +a = set([1, 2, 3]) +a |= set([2, 3, 4]) + +assert a == {1, 2, 3, 4} + +a.add(5) +assert a == {1, 2, 3, 4, 5} + +a.remove(5) +assert a == {1, 2, 3, 4} + +a.discard(4) +assert a == {1, 2, 3} + +a.discard(4) +assert a == {1, 2, 3} + +assert a.union({2, 3, 4}) == {1, 2, 3, 4} +assert a.intersection({2, 3, 4}) == {2, 3} +assert a.difference({2, 3, 4}) == {1} +assert a.symmetric_difference({2, 3, 4}) == {1, 4} + +assert a | {2, 3, 4} == {1, 2, 3, 4} +assert a & {2, 3, 4} == {2, 3} +assert a - {2, 3, 4} == {1} +assert a ^ {2, 3, 4} == {1, 4} + +a.update({2, 3, 4}) +assert a == {1, 2, 3, 4} + +assert 3 in a +assert 5 not in a + +assert len(a) == 4 +a.clear() + +assert len(a) == 0 +assert a == set() + +b = {1, 2, 3} +c = b.copy() + +assert b == c +assert b is not c +b.add(4) +assert b == {1, 2, 3, 4} +assert c == {1, 2, 3} + +assert type({}) is dict + +assert {1,2}.issubset({1,2,3}) +assert {1,2,3}.issuperset({1,2}) +assert {1,2,3}.isdisjoint({4,5,6}) +assert not {1,2,3}.isdisjoint({2,3,4}) + +# unpacking builder +a = {1, 2, 3} +b = {*a, 4, 5, *a, *a} +assert b == {1, 2, 3, 4, 5} + +a = set() +b = {*a, 1, 2, 3, *a, *a} +assert b == {1, 2, 3} \ No newline at end of file diff --git a/dependencies/pocketpy/tests/09_long.py b/dependencies/pocketpy/tests/09_long.py new file mode 100644 index 0000000..9026bdf --- /dev/null +++ b/dependencies/pocketpy/tests/09_long.py @@ -0,0 +1,50 @@ +assert long(123) == long('123') == 123 == 123L + +a = long(2) +assert a ** 0 == 1 +assert a ** 60 == 1152921504606846976 + +assert a + 1 == 3 +assert a - 1 == 1 +assert a * 2 == 4 +assert a // 2 == 1 + +assert -a == -2 + +assert 1 + a == 3L +assert 1 - a == -1L +assert 2 * a == 4L + +# __lshift__ and __rshift__ +for i in range(29): + assert 1L << i == 2 ** i + +for i in range(29): + assert 2L ** i >> i == 1L + +assert 12L >> 100 == 0 + +a = 32764L +s = [] +while a != 0: + a, r = divmod(a, 10L) + s.append(r) + +assert s == [4, 6, 7, 2, 3] + +assert 1 < 2L < 3 < 6.6 +assert 1L < 2 < 9.6 >= 7 > 2L +assert 1L < 2 < 3 < 6.6 + +assert 10000000000000000000000L // 3333L == 3000300030003000300L +assert 10000000000000000000000L % 3333L == 100L +assert 2L ** 100 // 3L ** 50 == 1765780L +assert 2L ** 200 // 3L ** 100 == 3117982410207L +assert 2L ** 500 // 3L ** 200 == 12323863745843010927046405923587284941366070573310012484L +assert 2L ** 500 % 3L ** 200 == 242990057207501525999897657892105676264485903550870122812212566096970021710762636168532352280892L + +assert 3L**500 // 3L**400 == 3L**100 +assert 4562645248L // 3L == 1520881749L +assert 3L**10 // 2L**200 == 0 +assert 2L**500 % 3L**200 == 242990057207501525999897657892105676264485903550870122812212566096970021710762636168532352280892L +assert divmod(10L**115, 3L**47) == (376098003656605353510839433041026531338835641081336270795298342081499446459650747504311257564L, 10150482013473427429132L) diff --git a/dependencies/pocketpy/tests/10_cmath.py b/dependencies/pocketpy/tests/10_cmath.py new file mode 100644 index 0000000..a758c8d --- /dev/null +++ b/dependencies/pocketpy/tests/10_cmath.py @@ -0,0 +1,52 @@ +from cmath import isclose, sqrt, nan, inf, nanj, infj, log +import math + +c1 = complex(3, 4) +c2 = complex(2, 4.5) + +assert isclose(c1 + 5, complex(8, 4)) +assert isclose(c1 + c2, complex(5, 8.5)) +assert isclose(c1 - c2, complex(1, -0.5)) +assert isclose(c1*4, complex(12, 16)) +assert isclose(c1*c2, complex(-12, 21.5)) +assert isclose(c2/c1, complex(0.96, 0.22)) +assert isclose(c2**2, complex(-16.25, 17.99999999999999)) + +assert 1+2j == complex(1, 2) == 2j+1 + +assert isclose(1+2j + 3+4j, 4+6j) + +assert isclose(1+2j - 3+4j, -2+6j) + +assert (1+2j).real == 1 +assert (1+2j).imag == 2 + +assert isclose((1+2j)*(3+4j), -5+10j) +assert isclose((1+2j)*3, 3+6j) + +assert isclose((1+2j)**2, -3+4j) + +assert (1+2j).conjugate() == 1-2j + +res = sqrt(1+2j) +assert isclose(res, 1.272019649514069+0.7861513777574233j) + +assert {1+2j: 1}[1+2j] == 1 + +assert repr(1+2j) == '(1.0+2.0j)' +assert repr(1+0j) == '(1.0+0.0j)' +assert repr(-1-3j) == '(-1.0-3.0j)' +assert repr(1-3j) == '(1.0-3.0j)' + + +assert repr(math.nan) == repr(nan) == 'nan' +assert repr(-math.nan) == repr(-nan) == 'nan' +assert repr(math.inf) == repr(inf) == 'inf' +assert repr(-math.inf) == repr(-inf) == '-inf' +assert repr(nanj) == '(0.0+nanj)', nanj +assert repr(-nanj) == '(-0.0+nanj)', -nanj +assert repr(infj) == '(0.0+infj)', infj +assert repr(-infj) == '(-0.0-infj)', -infj + +assert math.log(1) == 0.0 +assert isclose(log(10+5j), 2.4141568686511508+0.4636476090008061j) diff --git a/dependencies/pocketpy/tests/11_bytes.py b/dependencies/pocketpy/tests/11_bytes.py new file mode 100644 index 0000000..bd854a6 --- /dev/null +++ b/dependencies/pocketpy/tests/11_bytes.py @@ -0,0 +1,36 @@ +a = '12345' +assert a.encode() == b'12345' + +# test add +assert b'123' + b'456' == b'123456' +assert b'' + b'123' == b'123' +assert b'123' + b'' == b'123' +assert b'' + b'' == b'' + +assert b'\xff\xee' != b'1234' +assert b'\xff\xee' == b'\xff\xee' + +a = '测试123' +assert a == a.encode().decode() + + + +# test slice +s = b"football" +q = b"abcd" +r = b"zoo" +t = b"this is string example....wow!!!" +assert s[0] == ord('f') +assert s[1:4] == b'oot' +assert s[:-1] == b'footbal' +assert s[:10] == b'football' +assert s[-3] == ord('a') +assert t[-5:] == b'ow!!!' +assert t[3:-3] == b's is string example....wow' + +a = b"Hello, World!" +assert a[::-1] == b"!dlroW ,olleH" +assert a[::2] == b"Hlo ol!" +assert a[2:5:2] == b"lo" +assert a[5:2:-1] == b",ol" +assert a[5:2:-2] == b",l" \ No newline at end of file diff --git a/dependencies/pocketpy/tests/20_controlflow.py b/dependencies/pocketpy/tests/20_controlflow.py new file mode 100644 index 0000000..fdea7ae --- /dev/null +++ b/dependencies/pocketpy/tests/20_controlflow.py @@ -0,0 +1,134 @@ +# if tests +flag = False +name = 'luren' +if name == 'python': + flag = True +else: + flag +assert flag == False + + +num = 9 +flag = 0 +if num >= 0 and num <= 10: + flag = 1 +else: + flag +assert flag == 1 + +num = 10 +flag = 0 +if num < 0 or num > 10: + flag = 1 +else: + flag +assert flag == 0 + +num = 5 +result = 0 +if num == 3: + result = num +elif num == 2: + result = num +elif num == 1: + result = num +elif num < 0: + result = num +else: + result = num +assert result == 5 + +# for tests + +k = 0 +for i in range(2, 1000): + if i % 2 == 0: + k += 1 +assert k ==499 + +k = 0 +for x in range(100): + if x<2: + continue + flag = True + for i in range(2,x): + if x%i == 0: + flag = False + break + if flag: + k += 1 +assert k == 25 + +#while tests +count = 0 +while (count < 1000): + count = count + 1 +assert count == 1000 + +# ternary operator +d = 1 if 2 > 1 else 2 +assert d == 1 +d = 1 if 2 < 1 else 2 +assert d == 2 + +t = 0 +for i in range(5): + try: + break + except: + pass + t = 1 +assert t == 0 + +t = 0 +for i in range(5): + if True and 1: + break + t = 1 +assert t == 0 + +for i in range(5): + break +else: + assert False + +for i in range(5): + if i==3: + break +else: + assert False + +flag = False +for i in range(5): + if i==6: + break +else: + flag = True +assert flag is True + +while True: + break +else: + assert False + +flag = False +while False: + assert False +else: + flag = True +assert flag is True + +x = 1 +while 0: + while True: + break +else: + x = 2 +assert x == 2 + +if x == 2: + while 0: + pass +else: + x = 3 +assert x == 2 \ No newline at end of file diff --git a/dependencies/pocketpy/tests/21_functions.py b/dependencies/pocketpy/tests/21_functions.py new file mode 100644 index 0000000..3a732f8 --- /dev/null +++ b/dependencies/pocketpy/tests/21_functions.py @@ -0,0 +1,154 @@ +## Function Tests. + +def f1(): + return 'f1' +assert f1() == 'f1' +def f2(a, b, c, d): + return c +assert f2('a', 'b', 'c', 'd') == 'c' +def f3(a,b): + return a - b +assert f3(1,2) == -1 + +def f4(a,b): + return a + f3(a, b) + +assert f4(1,2) == 0 + +def fact(n): + if n == 1: + return 1 + return n * fact(n - 1) +assert fact(5)==120 + +def f(a=1, b=-1): + return a + b + +assert f() == 0 +assert f(1, 2) == 3 +assert f(-5) == -6 +assert f(b=5) == 6 +assert f(a=5) == 4 +assert f(b=5, a=5) == 10 + +def f(*args): + return 10 * sum(args) + +assert f(1, 2, 3) == 60 + +def f(x, *args, y=3): + i = 0 + for j in args: + i += j + return i * y + +assert f(10, 1, 2, 3) == 18 + +def f(a, b, *c, d=2, e=5): + return a + b + d + e + sum(c) + +def g(*args, **kwargs): + return f(*args, **kwargs) + +assert f(1, 2, 3, 4) == 17 +assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) == 62 +assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, d=1, e=2) == 58 +assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, e=1, d=2) == 58 +assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, d=1) == 61 +assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, e=1) == 58 +assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) == 217 +assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, d=1, e=2) == 213 + +assert g(1, 2, 3, 4) == 17 +assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) == 62 +assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, d=1, e=2) == 58 +assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, e=1, d=2) == 58 +assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, d=1) == 61 +assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, e=1) == 58 + +a = 1 +b = 2 + +def f(): + global a, b + a = 3 + b = 4 + +f() +assert a == 3 +assert b == 4 + +def g(a, b, *args, c=1, d=2, **kwargs): + S = a + b + c + d + sum(args) + return S, kwargs + +S, kwargs = g(1, 2, 3, 4, 5, c=4, e=5, f=6) +# a = 1 +# b = 2 +# c = 4 +# d = 2 +# sum(args) = 3 + 4 + 5 = 12 +# S = 1 + 2 + 4 + 2 + 12 = 21 + +assert S == 21 +assert kwargs == {'e': 5, 'f': 6} + +# test tuple defaults + +def f(a=(1,)): + return a +assert f() == (1,) + +def f(a=(1,2)): + return a +assert f() == (1,2) + +def f(a=(1,2,3)): + return a +assert f() == (1,2,3) + +def f(a=(1,2,3,)): + return a +assert f() == (1,2,3) + +def f(a=(1,(2,3))): + return a +assert f() == (1,(2,3)) + +def f(a=((1,2),3), b=(4,)): + return a, b + +assert f() == (((1,2),3), (4,)) + +def f(a, b): + return a + b + +try: + f(a=1) + exit(1) +except TypeError: + pass + +try: + f(1) + exit(1) +except TypeError: + pass + +try: + f(1, 2, 3) + exit(1) +except TypeError: + pass + +# empty function +def f(a, b, c): + pass + +assert f(1, 2, 3) == None + +class A: + def f(self, a, b, c): + pass + +assert A().f(1, 2, 3) == None diff --git a/dependencies/pocketpy/tests/22_typehints.py b/dependencies/pocketpy/tests/22_typehints.py new file mode 100644 index 0000000..8b0e72c --- /dev/null +++ b/dependencies/pocketpy/tests/22_typehints.py @@ -0,0 +1,57 @@ +# test type hints + +def f(x: int) -> int: + return x + 1 + +def g(x: int, y: int) -> int: + return x + y + +def h(x: int, y): + return x + y + +def i(x, y: int): + return x + y + +# test type hints with default values + +def f(x: int = 1) -> int: + return x + 1 + +def g(x: int = 1, y: int = 2) -> int: + return x + y + +def h(x: int = 1, y = 2): + return x + y + +def i(x = 1, y: int = 2): + return x + y + +# test type hints with *args + +def f(x: int, *args) -> int: + return x + len(args) + +def g(x: int, y: int, *args) -> int: + return x + y + len(args) + +def h(x: int, y, *args): + return x + y + len(args) + +def i(x, y: int, *args): + return x + y + len(args) + +def j(x, y: int, *args: str) -> int: + return x + y + len(args) + +x: int = 1 +y: 'str' = '2' + +x: 'list[int]' = [1, 2, 3] +y: 'list[str]' = ['1', '2', '3'] + +def g(x: 'list[int]', y: 'list[str]') -> 'list[int]': + return x + y + +def z(x: float): + x: int = 1 + y: 'str' = '2' \ No newline at end of file diff --git a/dependencies/pocketpy/tests/23_dictcomp.py b/dependencies/pocketpy/tests/23_dictcomp.py new file mode 100644 index 0000000..7d1d6fe --- /dev/null +++ b/dependencies/pocketpy/tests/23_dictcomp.py @@ -0,0 +1,8 @@ +a = {i: i**2 for i in range(10)} +assert a == {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81} + +a = {i: i**2 for i in range(10) if i % 2 == 0} +assert a == {0: 0, 2: 4, 4: 16, 6: 36, 8: 64} + +b = {k:v for k,v in a.items()} +assert b == a \ No newline at end of file diff --git a/dependencies/pocketpy/tests/23_listcomp.py b/dependencies/pocketpy/tests/23_listcomp.py new file mode 100644 index 0000000..b5c6ffe --- /dev/null +++ b/dependencies/pocketpy/tests/23_listcomp.py @@ -0,0 +1,47 @@ +a = [i for i in range(10)] +assert a == list(range(10)) + +a = [i for i in range(10) if i % 2 == 0] +assert a == [0, 2, 4, 6, 8] + +a = [i**3 for i in range(10) if i % 2 == 0] +assert a == [0, 8, 64, 216, 512] + +a = [1, 2, 3, 4] +assert a.pop() == 4 +assert a == [1, 2, 3] +assert a.pop(0) == 1 +assert a == [2, 3] +assert a.pop(-2) == 2 +assert a == [3] + +a = [] +a.sort() +assert len(a) == 0 +assert a == [] + +a = [1] +a.sort() +assert len(a) == 1 +assert a == [1] + +a = [1, 2, 3, 4] +assert reversed(a) == [4, 3, 2, 1] +assert a == [1, 2, 3, 4] +a = (1, 2, 3, 4) +assert reversed(a) == [4, 3, 2, 1] +assert a == (1, 2, 3, 4) +a = '1234' +assert reversed(a) == ['4', '3', '2', '1'] +assert a == '1234' + +assert reversed([]) == [] +assert reversed('') == [] +assert reversed('测试') == ['试', '测'] + +a = [ + [(i,j) for j in range(10) if j % 2 == 0] + for i in range(10) if i % 2 == 1 +] + +assert a == [[(1, 0), (1, 2), (1, 4), (1, 6), (1, 8)], [(3, 0), (3, 2), (3, 4), (3, 6), (3, 8)], [(5, 0), (5, 2), (5, 4), (5, 6), (5, 8)], [(7, 0), (7, 2), (7, 4), (7, 6), (7, 8)], [(9, 0), (9, 2), (9, 4), (9, 6), (9, 8)]] \ No newline at end of file diff --git a/dependencies/pocketpy/tests/23_setcomp.py b/dependencies/pocketpy/tests/23_setcomp.py new file mode 100644 index 0000000..21d5e7c --- /dev/null +++ b/dependencies/pocketpy/tests/23_setcomp.py @@ -0,0 +1,11 @@ +a = {i for i in range(10)} +assert a == set(range(10)) + +a = {i for i in range(10) if i % 2 == 0} +assert a == {0, 2, 4, 6, 8} + +a = {i**3 for i in range(10) if i % 2 == 0} +assert a == {0, 8, 64, 216, 512} + +a = {(i,i+1) for i in range(5)} +assert a == {(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)} \ No newline at end of file diff --git a/dependencies/pocketpy/tests/24_inline_blocks.py b/dependencies/pocketpy/tests/24_inline_blocks.py new file mode 100644 index 0000000..4407f12 --- /dev/null +++ b/dependencies/pocketpy/tests/24_inline_blocks.py @@ -0,0 +1,20 @@ +class A: pass +class B: pass +a = A() +assert type(a) is A + +x = 0 +if x==0: x=1 +assert x==1 + +def f(x, y): return x+y +assert f(1,2)==3 + +c = 1 +if c==0: x=1 +elif c==1: x=2 +else: x=3 +assert x==2 + +def f1(x): return x+1 +assert f1(1)==2 \ No newline at end of file diff --git a/dependencies/pocketpy/tests/25_rawstring.py b/dependencies/pocketpy/tests/25_rawstring.py new file mode 100644 index 0000000..12c7e03 --- /dev/null +++ b/dependencies/pocketpy/tests/25_rawstring.py @@ -0,0 +1,126 @@ +a = r'1\232\\\13' + +assert a == '1\\232\\\\\\13' + +b = r'测\试' +assert len(b) == 3 +assert b == '测\\试' + +s = '''asdasd +asds1321321321测试测试 +''' + +assert s == 'asdasd\nasds1321321321测试测试\n' + +s = r'''asdasd +asds1321321321测试\测试''' + +assert s == 'asdasd\nasds1321321321测试\\测试' + +t = 4 +assert f'123{t}56789' == '123456789' + +b = 123 +s = f'''->->{s}<-<- +{b} +''' + +assert s == '->->asdasd\nasds1321321321测试\\测试<-<-\n123\n' + +x = 1, 2, 3 +assert f""" +a = {{{x[0]}, {x[1]}, {x[2]}}}""" == '\na = {1, 2, 3}' + +assert r''' ' ''' == " ' " + +a = 10 +assert f'{a}' == '10' +assert f'{a:>10}' == ' 10' +assert f'{a:<10}' == '10 ' +assert f'{a:<10.2f}' == '10.00 ' +assert f'{a:>10.2f}' == ' 10.00' + +assert f'{a:^10}' == ' 10 ' +assert f'{a:^10.2f}' == ' 10.00 ' + +assert f'{a:3d}' == ' 10' +assert f'{a:10d}' == ' 10' +assert f'{a:1d}' == '10' +assert f'{a:010}' == '0000000010' +assert f'{a:010d}' == '0000000010' +assert f'{a:010f}' == '010.000000' +assert f'{a:010.2f}' == '0000010.00' +assert f'{a:.2f}' == '10.00' +assert f'{a:.5f}' == '10.00000' + +b = '123' +assert f'{b:10}' == '123 ' +assert f'{b:>10}' == ' 123' +assert f'{b:1}' == '123' +assert f'{b:10s}' == '123 ' + +obj = object() +obj.b = '123' +assert f'{obj.b:10}' == '123 ' +assert f'{obj.b:>10}' == ' 123' +assert f'{obj.b:1}' == '123' +assert f'{obj.b:10s}' == '123 ' + +a = [(1,2), 3, obj] +assert f'{a[0][1]}' == '2' +assert f'abc{a[-1].b:10}==={1234}' == 'abc123 ===1234' + +assert f'{"text":10}' == 'text ' +assert f'{"test":*>10}' == '******test' +assert f'{"test":*<10}' == 'test******' +assert f'{"test":*^10}' == '***test***' +assert f'{"test":*^11}' == '***test****' +assert f'{12345:0>10}' == '0000012345' + +assert f'{obj.b!r:10}' == "'123' " +assert f'{obj.b!r:*>10}' == "*****'123'" +assert f'{obj.b!r:1}' == "'123'" +assert f'{obj.b!r:10s}' == "'123' " + +assert f'{"text"!r:10}' == "'text' " +assert f'{"test"!r:*>10}' == "****'test'" +assert f'{"test"!r:*<10}' == "'test'****" +assert f'{"test"!r:*^10}' == "**'test'**" +assert f'{"test"!r:*^11}' == "**'test'***" +assert f'{12345!r:0>10}' == "0000012345" + +# test {{ and }} +assert f'' == '' +assert f'{{}}' == '{}' +assert f'{{{{}}}}' == '{{}}' +assert f'{{' == '{' +assert f'}}' == '}' +assert f'{{{{' == '{{' +assert f'}}}}' == '}}' +a = 123 +assert f'={a}' == '=123' +assert f'{a}=' == '123=' +assert f'--{a}--' == '--123--' +assert f'{{a}}' == '{a}' +assert f'{{{a}}}' == '{123}' + +assert f'{{=}}{a}' == '{=}123' +assert f'{a}{{=}}' == '123{=}' + +# assert f'}123' == '123' # ignore '}' +# assert f'{{{' == '{' # ignore '{' + +class A: + def __repr__(self): + return 'A()' + def __str__(self): + return 'A' + +a = A() +assert f'{a!r:10}' == 'A() ' +assert f'{a!s:10}' == 'A ' +assert f'{a:10}' == 'A ' + +assert f'{A()!r:10}' == 'A() ' +assert f'{A()!s:10}' == 'A ' +assert f'{A():10}' == 'A ' \ No newline at end of file diff --git a/dependencies/pocketpy/tests/26_multiline.py b/dependencies/pocketpy/tests/26_multiline.py new file mode 100644 index 0000000..49834bc --- /dev/null +++ b/dependencies/pocketpy/tests/26_multiline.py @@ -0,0 +1,27 @@ +a = [ + 1,2,3, + 4,5,6 +] + +assert sum(a) == 21 + +c = [ + i for i in range(10) + if i % 2 == 0 +] + +assert sum(c) == 20 + +d = ( + 1,2,3 +) + +assert sum(d) == 6 + +b = { + 'a': 1, + 'b': 2, + 'c': 3 +} + +assert sum(b.values()) == 6 \ No newline at end of file diff --git a/dependencies/pocketpy/tests/27_goto.py b/dependencies/pocketpy/tests/27_goto.py new file mode 100644 index 0000000..33c2579 --- /dev/null +++ b/dependencies/pocketpy/tests/27_goto.py @@ -0,0 +1,38 @@ +a = [] + +for i in range(10): # [0] + for j in range(10): # [0-0] + -> test + print(2) + == test == + a.append(i) + for k in range(5): # [0-1] + for t in range(7): # [0-1-0] + pass + +assert a == list(range(10)) + +b = False + +for i in range(10): # [1] + for j in range(10): # [1-0] + -> out + b = True +== out == +assert not b + +sum = 0 +i = 1 + +== loop == +sum += i +i += 1 +if i <= 100: + -> loop + +assert sum == 5050 + +for i in range(4): + _ = 0 +# if there is no op here, the block check will fail +while i: --i diff --git a/dependencies/pocketpy/tests/28_iter.py b/dependencies/pocketpy/tests/28_iter.py new file mode 100644 index 0000000..c18e95f --- /dev/null +++ b/dependencies/pocketpy/tests/28_iter.py @@ -0,0 +1,53 @@ +from __builtins import next + +a = [1, 2, 3] +a = iter(a) + +total = 0 + +while True: + obj = next(a) + if obj is StopIteration: + break + total += obj + +assert total == 6 + +class Task: + def __init__(self, n): + self.n = n + + def __iter__(self): + self.i = 0 + return self + + def __next__(self): + if self.i == self.n: + return StopIteration + self.i += 1 + return self.i + +a = Task(3) +assert sum(a) == 6 + +i = iter(Task(5)) +assert next(i) == 1 +assert next(i) == 2 +assert next(i) == 3 +assert next(i) == 4 +assert next(i) == 5 +assert next(i) == StopIteration +assert next(i) == StopIteration + +# test normal next +from builtins import next + +a = iter([1]) +assert next(a) == 1 + +try: + next(a) + exit(1) +except StopIteration: + pass + diff --git a/dependencies/pocketpy/tests/29_incdec.py b/dependencies/pocketpy/tests/29_incdec.py new file mode 100644 index 0000000..222af88 --- /dev/null +++ b/dependencies/pocketpy/tests/29_incdec.py @@ -0,0 +1,15 @@ +a = 1 + +++a +assert a == 2 +++a; ++a; --a; +assert a == 3 + +def f(a): + ++a + ++a + --a + return a + +assert f(3) == 4 +assert f(-2) == -1 \ No newline at end of file diff --git a/dependencies/pocketpy/tests/30_import.py b/dependencies/pocketpy/tests/30_import.py new file mode 100644 index 0000000..25da33a --- /dev/null +++ b/dependencies/pocketpy/tests/30_import.py @@ -0,0 +1,34 @@ +try: + import os +except ImportError: + exit(0) + +os.chdir('tests') + +import test1 + +assert test1.add(1, 2) == 13 + +from test2.a.g import get_value +assert get_value() == '123' + +import test2 +assert test2.a.g.get_value() == '123' + +from test2.utils import get_value_2 +assert get_value_2() == '123' + +from test3.a.b import value +assert value == 1 + +def f(): + import math as m + assert m.pi > 3 + + from test3.a.b import value + assert value == 1 + +f() + +from math import * +assert pi > 3 diff --git a/dependencies/pocketpy/tests/31_cmp.py b/dependencies/pocketpy/tests/31_cmp.py new file mode 100644 index 0000000..d6cbeff --- /dev/null +++ b/dependencies/pocketpy/tests/31_cmp.py @@ -0,0 +1,19 @@ +assert 1<2 +assert 1+1==2 +assert 2+1>=2 + +assert 1<2<3 +assert 1<2<3<4 +assert 1<2<3<4<5 + +assert 1<1+1<3 +assert 1<1+1<3<4 +assert 1<1+1<3<2+2<5 + +a = [1,2,3] +assert a[0] < a[1] < a[2] +assert a[0]+1 == a[1] < a[2] +assert a[0]+1 == a[1] < a[2]+1 < 5 + +assert (4>3<2) == False +# assert ((4>3)<2) == True \ No newline at end of file diff --git a/dependencies/pocketpy/tests/32_assign.py b/dependencies/pocketpy/tests/32_assign.py new file mode 100644 index 0000000..6ab2de2 --- /dev/null +++ b/dependencies/pocketpy/tests/32_assign.py @@ -0,0 +1,10 @@ +a = b = 1,2 + +assert a == b +assert a == (1,2) + +a = 1,2 + +a = b = c = d = '123' + +assert a == b == c == d == '123' \ No newline at end of file diff --git a/dependencies/pocketpy/tests/33_match_case.py b/dependencies/pocketpy/tests/33_match_case.py new file mode 100644 index 0000000..ddca20e --- /dev/null +++ b/dependencies/pocketpy/tests/33_match_case.py @@ -0,0 +1,44 @@ +# match = 2 +# assert match == 2 +# case = 3 +# assert case == 3 + +# def f(match): +# match match: +# case 1: return 1 +# case 2: return 2 +# case _: +# return 999 +# return 0 + +# assert f(1) == 1 +# assert f(2) == 2 +# assert f(3) == 999 +# assert f(4) == 999 + +# def f(): +# a = [] +# try: +# match case: +# case a[1]: return 1 +# except IndexError: +# return 'IndexError' +# return 0 + +# assert f() == 'IndexError' + + +# def f(pos): +# match pos: +# case 'str': return 'str' +# case 0: return 0 +# case (1, 2): return '1, 2' +# case (3, 4): return '3, 4' +# case _: return 'other' + +# assert f('str') == 'str' +# assert f(0) == 0 +# assert f((1, 2)) == '1, 2' +# assert f((3, 4)) == '3, 4' +# assert f((1, 3)) == 'other' +# assert f((1, 2, 3)) == 'other' diff --git a/dependencies/pocketpy/tests/34_context.py b/dependencies/pocketpy/tests/34_context.py new file mode 100644 index 0000000..b27f6c2 --- /dev/null +++ b/dependencies/pocketpy/tests/34_context.py @@ -0,0 +1,37 @@ +path = [] + +class A: + def __init__(self, x): + self.x = x + self.path = [] + + def __enter__(self): + path.append('enter') + return self.x + + def __exit__(self, *args): + path.append('exit') + + +with A(123): + assert path == ['enter'] +assert path == ['enter', 'exit'] + +path.clear() + +with A(123) as a: + assert path == ['enter'] + assert a == 123 + path.append('in') +assert path == ['enter', 'in', 'exit'] + +path.clear() + +with A(123) as a: + assert path == ['enter'] + -> end + path.append('in') + +== end == +assert path == ['enter'] + diff --git a/dependencies/pocketpy/tests/40_class.py b/dependencies/pocketpy/tests/40_class.py new file mode 100644 index 0000000..845b488 --- /dev/null +++ b/dependencies/pocketpy/tests/40_class.py @@ -0,0 +1,132 @@ +class A: + def __init__(self, a, b): + self.a = a + self.b = b + + def add(self): + return self.a + self.b + + def sub(self): + return self.a - self.b + +a = A(1, 2) +assert a.add() == 3 +assert a.sub() == -1 + +assert A.__base__ is object + +class B(A): + def __init__(self, a, b, c): + super(B, self).__init__(a, b) + self.c = c + + def add(self): + return self.a + self.b + self.c + + def sub(self): + return self.a - self.b - self.c + +assert B.__base__ is A + +b = B(1, 2, 3) +assert b.add() == 6 +assert b.sub() == -4 + +class C(B): + def __init__(self, a, b, c, d): + super(C, self).__init__(a, b, c) + self.d = d + + def add(self): + return self.a + self.b + self.c + self.d + + def sub(self): + return self.a - self.b - self.c - self.d + +assert C.__base__ is B + +c = C(1, 2, 3, 4) +assert c.add() == 10 +assert c.sub() == -8 + +class D(C): + def __init__(self, a, b, c, d, e): + super(D, self).__init__(a, b, c, d) + self.e = e + + def add(self): + return super(D, self).add() + self.e + + def sub(self): + return super(D, self).sub() - self.e + +assert D.__base__ is C + +d = D(1, 2, 3, 4, 5) +assert d.add() == 15 +assert d.sub() == -13 + +assert isinstance(1, int) +assert isinstance(1, object) +assert isinstance(C, type) +assert isinstance(C, object) +assert isinstance(d, object) +assert isinstance(d, C) +assert isinstance(d, B) +assert isinstance(d, A) +assert isinstance(object, object) +assert isinstance(type, object) + +assert isinstance(1, (float, int)) +assert isinstance(1, (float, object)) +assert not isinstance(1, (float, str)) +assert isinstance(object, (int, type, float)) +assert not isinstance(object, (int, float, str)) + +try: + isinstance(1, (1, 2)) + exit(1) +except TypeError: + pass + +try: + isinstance(1, 1) + exit(1) +except TypeError: + pass + +class A: + a = 1 + b = 2 + +assert A.a == 1 +assert A.b == 2 + +class B(A): + b = 3 + c = 4 + +assert B.b == 3 +assert B.c == 4 + +assert B.a == 1 + +class A: + x = 1 + x = x + 1 + y = 1 + z = x + y + +assert A.x == 2 +assert A.y == 1 +assert A.z == 3 + +class MyClass: + a = 1,2,3 + b, c = 1, 2 + d = b + c + +assert MyClass.a == (1, 2, 3) +assert MyClass.b == 1 +assert MyClass.c == 2 +assert MyClass.d == 3 diff --git a/dependencies/pocketpy/tests/40_class_ex.py b/dependencies/pocketpy/tests/40_class_ex.py new file mode 100644 index 0000000..63c84b5 --- /dev/null +++ b/dependencies/pocketpy/tests/40_class_ex.py @@ -0,0 +1,160 @@ +class A: + def __init__(self, a, b): + self.a = a + self.b = b + + def add(self): + return self.a + self.b + + def sub(self): + return self.a - self.b + +a = A(1, 2) +assert a.add() == 3 +assert a.sub() == -1 + +assert A.__base__ is object + +class B(A): + def __init__(self, a, b, c): + super().__init__(a, b) + self.c = c + + def add(self): + return self.a + self.b + self.c + + def sub(self): + return self.a - self.b - self.c + +assert B.__base__ is A + +b = B(1, 2, 3) +assert b.add() == 6 +assert b.sub() == -4 + +class C(B): + def __init__(self, a, b, c, d): + super().__init__(a, b, c) + self.d = d + + def add(self): + return self.a + self.b + self.c + self.d + + def sub(self): + return self.a - self.b - self.c - self.d + +assert C.__base__ is B + +c = C(1, 2, 3, 4) +assert c.add() == 10 +assert c.sub() == -8 + +class D(C): + def __init__(self, a, b, c, d, e): + super().__init__(a, b, c, d) + self.e = e + + def add(self): + return super().add() + self.e + + def sub(self): + return super().sub() - self.e + +assert D.__base__ is C + +d = D(1, 2, 3, 4, 5) +assert d.add() == 15 +assert d.sub() == -13 + +assert isinstance(1, int) +assert isinstance(1, object) +assert isinstance(C, type) +assert isinstance(C, object) +assert isinstance(d, object) +assert isinstance(d, C) +assert isinstance(d, B) +assert isinstance(d, A) +assert isinstance(object, object) +assert isinstance(type, object) + +assert isinstance(1, (float, int)) +assert isinstance(1, (float, object)) +assert not isinstance(1, (float, str)) +assert isinstance(object, (int, type, float)) +assert not isinstance(object, (int, float, str)) + +try: + isinstance(1, (1, 2)) + exit(1) +except TypeError: + pass + +try: + isinstance(1, 1) + exit(1) +except TypeError: + pass + +class A: + a = 1 + b = 2 + +assert A.a == 1 +assert A.b == 2 + +class B(A): + b = 3 + c = 4 + +# assert B.a == 1 ...bug here +assert B.b == 3 +assert B.c == 4 + +import c + +class A(c.void_p): + pass + +a = A(0) +assert repr(a).startswith(' y, list(x) > list(y)) # not currently supported + # assertEqual(x >= y, list(x) >= list(y)) # not currently supported + + +############### TEST contains()################# + +n = 200 + +d = deque(range(n)) +for i in range(n): + assertEqual(i in d, True) +assertEqual((n+1) not in d, True) + + +class MutateCmp: + def __init__(self, deque, result): + self.deque = deque + self.result = result + + def __eq__(self, other): + self.deque.clear() + return self.result + + +# # Test detection of mutation during iteration +d = deque(range(n)) +d[n//2] = MutateCmp(d, False) +try: + n in d + printFailed("deque.__contains__", n) + exit(1) +except RuntimeError: + pass + + +class BadCmp: + def __eq__(self, other): + raise RuntimeError + + +# # Test detection of comparison exceptions +d = deque(range(n)) +d[n//2] = BadCmp() +try: + n in d + printFailed("deque.__contains__", n) + exit(1) +except RuntimeError: + pass + + +##### test_contains_count_stop_crashes##### + +class A: + def __eq__(self, other): + d.clear() + return NotImplemented + + +d = deque([A(), A()]) + +try: + _ = 3 in d + printFailed("deque.__contains__", 3) + exit(1) +except RuntimeError: + pass + +d = deque([A(), A()]) +try: + _ = d.count(3) + printFailed("deque.count", 3) + exit(1) +except RuntimeError: + pass + + +######## TEST extend()################ + + +d = deque('a') +try: + d.extend(1) + printFailed("deque.extend", 1) + exit(1) +except TypeError: + pass +d.extend('bcd') +assertEqual(list(d), list('abcd')) +d.extend(d) +assertEqual(list(d), list('abcdabcd')) + +###### TEST extend_left() ################ + +d = deque('a') +try: + d.extendleft(1) + printFailed("deque.extendleft", 1) + exit(1) +except TypeError: + pass +d.extendleft('bcd') +assertEqual(list(d), list(reversed('abcd'))) +d.extendleft(d) +assertEqual(list(d), list('abcddcba')) +d = deque() +d.extendleft(range(1000)) +assertEqual(list(d), list(reversed(range(1000)))) +try: + d.extendleft(fail()) + printFailed("deque.extendleft", fail()) + exit(1) +except SyntaxError: + pass + +##### TEST get_item ################ + +n = 200 +d = deque(range(n)) +l = list(range(n)) +for i in range(n): + d.popleft() + l.pop(0) + if random.random() < 0.5: + d.append(i) + l.append(i) + for j in range(1-len(l), len(l)): + assert d[j] == l[j] + +d = deque('superman') +assertEqual(d[0], 's') +assertEqual(d[-1], 'n') +d = deque() +try: + d.__getitem__(0) + printFailed("deque.__getitem__", 0) + exit(1) +except IndexError: + pass +try: + d.__getitem__(-1) + printFailed("deque.__getitem__", -1) + exit(1) +except IndexError: + pass + + +######### TEST index()############### +for n in 1, 2, 30, 40, 200: + + d = deque(range(n)) + for i in range(n): + assertEqual(d.index(i), i) + + try: + d.index(n+1) + printFailed("deque.index", n+1) + exit(1) + except ValueError: + pass + + # Test detection of mutation during iteration + d = deque(range(n)) + d[n//2] = MutateCmp(d, False) + + try: + d.index(n) + printFailed("deque.index", n) + exit(1) + except RuntimeError: + pass + + # Test detection of comparison exceptions + d = deque(range(n)) + d[n//2] = BadCmp() + + try: + d.index(n) + printFailed("deque.index", n) + exit(1) + except RuntimeError: + pass + + +# Test start and stop arguments behavior matches list.index() +# COMMENT: Current List behavior doesn't support start and stop arguments, so this test is not supported +# elements = 'ABCDEFGHI' +# nonelement = 'Z' +# d = deque(elements * 2) +# s = list(elements * 2) +# for start in range(-5 - len(s)*2, 5 + len(s) * 2): +# for stop in range(-5 - len(s)*2, 5 + len(s) * 2): +# for element in elements + 'Z': +# try: +# print(element, start, stop) +# target = s.index(element, start, stop) +# except ValueError: +# try: +# d.index(element, start, stop) +# print("X Failed Tests!") +# exit(1) +# except ValueError: +# continue +# # with assertRaises(ValueError): +# # d.index(element, start, stop) +# assertEqual(d.index(element, start, stop), target) + + +# Test large start argument +d = deque(range(0, 10000, 10)) +for step in range(100): + i = d.index(8500, 700) + assertEqual(d[i], 8500) + # Repeat test with a different internal offset + d.rotate() + +########### test_index_bug_24913############# +d = deque('A' * 3) +try: + d.index('A', 1, 0) + printFailed("deque.index", 'A', 1, 0) + exit(1) +except ValueError: + pass + +########### test_insert############# + # Test to make sure insert behaves like lists +elements = 'ABCDEFGHI' +for i in range(-5 - len(elements)*2, 5 + len(elements) * 2): + d = deque('ABCDEFGHI') + s = list('ABCDEFGHI') + d.insert(i, 'Z') + s.insert(i, 'Z') + assertEqual(list(d), s) + + +########### test_insert_bug_26194############# +data = 'ABC' +d = deque(data, maxlen=len(data)) +try: + d.insert(0, 'Z') + printFailed("deque.insert", 0, 'Z') + exit(1) +except IndexError: + pass + +elements = 'ABCDEFGHI' +for i in range(-len(elements), len(elements)): + d = deque(elements, maxlen=len(elements)+1) + d.insert(i, 'Z') + if i >= 0: + assertEqual(d[i], 'Z') + else: + assertEqual(d[i-1], 'Z') + + +######### test set_item ############# +n = 200 +d = deque(range(n)) +for i in range(n): + d[i] = 10 * i +assertEqual(list(d), [10*i for i in range(n)]) +l = list(d) +for i in range(1-n, 0, -1): + d[i] = 7*i + l[i] = 7*i +assertEqual(list(d), l) + + +########## test del_item ############# +n = 500 # O(n**2) test, don't make this too big +d = deque(range(n)) +try: + d.__delitem__(-n-1) + printFailed("deque.__delitem__", -n-1) + exit(1) +except IndexError: + pass + +try: + d.__delitem__(n) + printFailed("deque.__delitem__", n) + exit(1) +except IndexError: + pass +for i in range(n): + assertEqual(len(d), n-i) + j = random.randint(0, len(d)-1) + val = d[j] + assertEqual(val in d, True) + del d[j] + assertEqual(val in d, False) +assertEqual(len(d), 0) + + +######### test reverse()############### + +n = 500 # O(n**2) test, don't make this too big +data = [random.random() for i in range(n)] +for i in range(n): + d = deque(data[:i]) + r = d.reverse() + assertEqual(list(d), list(reversed(data[:i]))) + assertEqual(r, None) + d.reverse() + assertEqual(list(d), data[:i]) +try: + d.reverse(1) + printFailed("deque.reverse", 1) + exit(1) +except TypeError: + pass + +############ test rotate############# +s = tuple('abcde') +n = len(s) + +d = deque(s) +d.rotate(1) # verify rot(1) +assertEqual(''.join(d), 'eabcd') + +d = deque(s) +d.rotate(-1) # verify rot(-1) +assertEqual(''.join(d), 'bcdea') +d.rotate() # check default to 1 +assertEqual(tuple(d), s) + +for i in range(n*3): + d = deque(s) + e = deque(d) + d.rotate(i) # check vs. rot(1) n times + for j in range(i): + e.rotate(1) + assertEqual(tuple(d), tuple(e)) + d.rotate(-i) # check that it works in reverse + assertEqual(tuple(d), s) + e.rotate(n-i) # check that it wraps forward + assertEqual(tuple(e), s) + +for i in range(n*3): + d = deque(s) + e = deque(d) + d.rotate(-i) + for j in range(i): + e.rotate(-1) # check vs. rot(-1) n times + assertEqual(tuple(d), tuple(e)) + d.rotate(i) # check that it works in reverse + assertEqual(tuple(d), s) + e.rotate(i-n) # check that it wraps backaround + assertEqual(tuple(e), s) + +d = deque(s) +e = deque(s) +e.rotate(BIG+17) # verify on long series of rotates +dr = d.rotate +for i in range(BIG+17): + dr() +assertEqual(tuple(d), tuple(e)) +try: + d.rotate(1, 2) + printFailed("deque.rotate", 1, 2) + exit(1) +except TypeError: + pass + +try: + d.rotate(1, 10) + printFailed("deque.rotate", 1, 10) + exit(1) +except TypeError: + pass +d = deque() +d.rotate() # rotate an empty deque +assertEqual(d, deque()) + + +########## test len############# + +d = deque('ab') +assertEqual(len(d), 2) +d.popleft() +assertEqual(len(d), 1) +d.pop() +assertEqual(len(d), 0) +try: + d.pop() + printFailed("deque.pop") + exit(1) +except IndexError: + pass +assertEqual(len(d), 0) +d.append('c') +assertEqual(len(d), 1) +d.appendleft('d') +assertEqual(len(d), 2) +d.clear() +assertEqual(len(d), 0) + + +############## test underflow############# +d = deque() +try: + d.pop() + printFailed("deque.pop") + exit(1) +except IndexError: + pass +try: + d.popleft() + printFailed("deque.popleft") + exit(1) +except IndexError: + pass + +############## test clear############# +d = deque(range(100)) +assertEqual(len(d), 100) +d.clear() +assertEqual(len(d), 0) +assertEqual(list(d), []) +d.clear() # clear an empty deque +assertEqual(list(d), []) + + +############# test remove############# +d = deque('abcdefghcij') +d.remove('c') +assertEqual(d, deque('abdefghcij')) +d.remove('c') +assertEqual(d, deque('abdefghij')) +try: + d.remove('c') + printFailed("deque.remove", "c") + exit(1) +except ValueError: + pass +assertEqual(d, deque('abdefghij')) + +# Handle comparison errors +d = deque(['a', 'b', BadCmp(), 'c']) +e = deque(d) + +try: + d.remove('c') + printFailed("deque.remove", "c") + exit(1) +except RuntimeError: + pass +for x, y in zip(d, e): + # verify that original order and values are retained. + assertEqual(x is y, True) + +# Handle evil mutator +for match in (True, False): + d = deque(['ab']) + d.extend([MutateCmp(d, match), 'c']) + try: + d.remove('c') + printFailed("deque.remove", "c") + exit(1) + except IndexError: + pass + assertEqual(d, deque()) + + +########### test repr############# +d = deque(range(200)) +e = eval(repr(d)) +assertEqual(list(d), list(e)) +d.append(d) +assertEqual(repr(d)[-20:], '7, 198, 199, [...]])') + + +######### test init ############# + +try: + deque('abc', 2, 3) + printFailed("deque", 'abc', 2, 3) + exit(1) +except TypeError: + pass +try: + deque(1) + printFailed("deque", 1) + exit(1) +except TypeError: + pass + + +######### test hash ############# +try: + hash(deque('abcd')) +except TypeError: + pass + + +###### test long steady state queue pop left ######## +for size in (0, 1, 2, 100, 1000): + d = deque(range(size)) + append, pop = d.append, d.popleft + for i in range(size, BIG): + append(i) + x = pop() + if x != i - size: + assertEqual(x, i-size) + assertEqual(list(d), list(range(BIG-size, BIG))) + + +######## test long steady state queue pop right ######## +for size in (0, 1, 2, 100, 1000): + d = deque(reversed(range(size))) + append, pop = d.appendleft, d.pop + for i in range(size, BIG): + append(i) + x = pop() + if x != i - size: + assertEqual(x, i-size) + assertEqual(list(reversed(list(d))), + list(range(BIG-size, BIG))) + +###### test big queue popleft ######## +d = deque() +append, pop = d.append, d.popleft +for i in range(BIG): + append(i) +for i in range(BIG): + x = pop() + if x != i: + assertEqual(x, i) + +###### test big queue pop right ######## +d = deque() +append, pop = d.appendleft, d.pop +for i in range(BIG): + append(i) +for i in range(BIG): + x = pop() + if x != i: + assertEqual(x, i) + + +####### test big stack right######## +d = deque() +append, pop = d.append, d.pop +for i in range(BIG): + append(i) +for i in reversed(range(BIG)): + x = pop() + if x != i: + assertEqual(x, i) +assertEqual(len(d), 0) + + +##### test big stack left ######## +d = deque() +append, pop = d.appendleft, d.popleft +for i in range(BIG): + append(i) +for i in reversed(range(BIG)): + x = pop() + if x != i: + assertEqual(x, i) +assertEqual(len(d), 0) + + +##### test roundtrip iter init ######## +d = deque(range(200)) +e = deque(d) +assertNotEqual(id(d), id(e)) +assertEqual(list(d), list(e)) + + +########## test pickle ############# + +for d in deque(range(200)), deque(range(200), 100): + for i in range(5 + 1): + s = pickle.dumps(d) + e = pickle.loads(s) + assertNotEqual(id(e), id(d)) + assertEqual(list(e), list(d)) + assertEqual(e.maxlen, d.maxlen) + +######## test pickle recursive ######## +# the following doesn't work because the pickle module doesn't +# for d in deque('abc'), deque('abc', 3): +# d.append(d) +# for i in range(5 + 1): +# e = pickle.loads(pickle.dumps(d)) +# assertNotEqual(id(e), id(d)) +# assertEqual(id(e[-1]), id(e)) +# assertEqual(e.maxlen, d.maxlen) + + +### test copy ######## + +mut = [10] +d = deque([mut]) +e = d.copy() +assertEqual(list(d), list(e)) +mut[0] = 11 +assertNotEqual(id(d), id(e)) +assertEqual(list(d), list(e)) + +### test reversed#$#### + +for s in ('abcd', range(2000)): + assertEqual(list(reversed(deque(s))), list(reversed(s))) + + +# probably not supported +# klass = type(reversed(deque())) +# for s in ('abcd', range(2000)): +# assertEqual(list(klass(deque(s))), list(reversed(s))) + +d = deque() +for i in range(100): + d.append(1) + gc.collect() diff --git a/dependencies/pocketpy/tests/70_file.py b/dependencies/pocketpy/tests/70_file.py new file mode 100644 index 0000000..1557018 --- /dev/null +++ b/dependencies/pocketpy/tests/70_file.py @@ -0,0 +1,70 @@ +try: + import os + import io + print("[`os` Test Enabled]") +except ImportError: + exit(0) + +a = open('123.txt', 'wt') +a.write('123') +a.write('456') +a.close() + +with open('123.txt', 'rt') as f: + assert f.read() == '123456' + +with open('123.txt', 'rt') as f: + assert f.read(3) == '123' + assert f.tell() == 3 + assert f.read(3) == '456' + assert f.tell() == 6 + assert f.read(3) == '' # EOF + assert f.tell() == 6 + +with open('123.txt', 'rb') as f: + assert f.read(2) == b'12' + assert f.tell() == 2 + assert f.read(2) == b'34' + assert f.tell() == 4 + assert f.read(2) == b'56' + assert f.tell() == 6 + assert f.read(2) == b'' # EOF + assert f.tell() == 6 + +# test fseek +with open('123.txt', 'rt') as f: + f.seek(0, io.SEEK_END) + assert f.tell() == 6 + assert f.read() == '' + f.seek(3, io.SEEK_SET) + assert f.tell() == 3 + assert f.read() == '456' + assert f.tell() == 6 + +with open('123.txt', 'a') as f: + f.write('测试') + +# default mode is 'r' +with open('123.txt') as f: + assert f.read() == '123456' + '测试' + +assert os.path.exists('123.txt') +os.remove('123.txt') +assert not os.path.exists('123.txt') + + +with open('123.bin', 'wb') as f: + f.write('123'.encode()) + f.write('测试'.encode()) + +def f_(): + with open('123.bin', 'rb') as f: + b = f.read() + assert isinstance(b, bytes) + assert b == '123测试'.encode() + +f_() + +assert os.path.exists('123.bin') +os.remove('123.bin') +assert not os.path.exists('123.bin') \ No newline at end of file diff --git a/dependencies/pocketpy/tests/70_heapq.py b/dependencies/pocketpy/tests/70_heapq.py new file mode 100644 index 0000000..636bfaa --- /dev/null +++ b/dependencies/pocketpy/tests/70_heapq.py @@ -0,0 +1,9 @@ +from heapq import heapify, heappop, heappush +from random import randint + +a = [randint(0, 100) for i in range(1000)] +b = sorted(a) + +heapify(a) +for x in b: + assert heappop(a) == x \ No newline at end of file diff --git a/dependencies/pocketpy/tests/70_math.py b/dependencies/pocketpy/tests/70_math.py new file mode 100644 index 0000000..4dbcce6 --- /dev/null +++ b/dependencies/pocketpy/tests/70_math.py @@ -0,0 +1,58 @@ +from math import log, log10, log2, sin, cos, tan, e, pi, isnan, isinf, fabs, floor, ceil, sqrt + +def isclose(a, b): + return abs(a-b) < 0.000001 + +assert isclose(e, 2.718281828459045) +assert isclose(pi, 3.141592653589793) +assert isclose(log(10), 2.302585092994046) +assert isclose(log10(10), 1.0) +assert isclose(log2(10), 3.321928094887362) +assert isclose(sin(0), 0.0) +assert isclose(cos(0), 1.0) +assert isclose(tan(0), 0.0) + +a = -0.1 +a = a**a +assert isnan(a) +assert not isinf(a) +assert isinf(float("inf")) + +assert isclose(fabs(-1.2), 1.2) + +assert floor(1.2) == 1 +assert floor(-1.2) == -2 +assert ceil(1.2) == 2 +assert ceil(-1.2) == -1 + +assert isclose(sqrt(4), 2.0) + +import math + +# test fsum +assert math.fsum([0.1] * 10) == 1.0 + +# test gcd +assert math.gcd(10, 5) == 5 +assert math.gcd(10, 6) == 2 +assert math.gcd(10, 7) == 1 +assert math.gcd(10, 10) == 10 +assert math.gcd(-10, 10) == 10 + +# test modf +x, y = math.modf(1.5) +assert isclose(x, 0.5) +assert isclose(y, 1.0) + +x, y = math.modf(-1.5) +assert isclose(x, -0.5) +assert isclose(y, -1.0) + +# test factorial +assert math.factorial(0) == 1 +assert math.factorial(1) == 1 +assert math.factorial(2) == 2 +assert math.factorial(3) == 6 +assert math.factorial(4) == 24 +assert math.factorial(5) == 120 + diff --git a/dependencies/pocketpy/tests/70_random.py b/dependencies/pocketpy/tests/70_random.py new file mode 100644 index 0000000..9ab902d --- /dev/null +++ b/dependencies/pocketpy/tests/70_random.py @@ -0,0 +1,69 @@ +import random as r, sys as s + +r.seed(10) + +for _ in range(100): + i = r.randint(1, 10) + assert i <= 10 + assert i >= 1 + i = r.random() + assert 0.0 <= i <= 1.0 + i = r.uniform(3.0, 9.5) + assert 3.0 <= i <= 9.5 + +a = [1, 2, 3, 4] +r.shuffle(a) + +for i in range(10): + assert r.choice(a) in a + +for i in range(10): + assert r.choice(tuple(a)) in a + +for i in range(10): + assert r.randint(1, 1) == 1 + +# test choices +x = (1,) +res = r.choices(x, k=4) +assert (res == [1, 1, 1, 1]), res + +w = (1, 2, 3) +assert r.choices([1, 2, 3], (0.0, 0.0, 0.5)) == [3] + +try: + r.choices([1, 2, 3], (0.0, 0.0, 0.5, 0.5)) + exit(1) +except ValueError: + pass + +try: + r.choices([]) + exit(1) +except IndexError: + pass + +seq = [1, 2, 3, 4] +weights = [0.1, 0.2, 0.2, 0.5] +k = 1000 +res = r.choices(seq, weights, k=k) +assert len(res) == k and isinstance(res, list) + +max_error = 0.03 +for i in range(len(seq)): + actual_w = res.count(seq[i]) / k + assert abs(actual_w - weights[i]) < max_error + +# test seed +from random import randint, seed +seed(7) +a = randint(1, 100) +b = randint(-2**60, 1) +c = randint(50, 100) + +assert (a, b, c) == (16, -418020281577586157, 76) + +seed(7) +assert a == randint(1, 100) +assert b == randint(-2**60, 1) +assert c == randint(50, 100) \ No newline at end of file diff --git a/dependencies/pocketpy/tests/70_re.py b/dependencies/pocketpy/tests/70_re.py new file mode 100644 index 0000000..bbc11e0 --- /dev/null +++ b/dependencies/pocketpy/tests/70_re.py @@ -0,0 +1,19 @@ +# import re + +# # test match, search, sub, split + +# m = re.search('测试','123测试测试') +# assert m.span() == (3,5) +# assert m.group(0) == '测试' + +# assert re.match('测试','123测试测试') is None +# assert re.sub('测试','xxx','123测试12321测试') == '123xxx12321xxx' + +# # this is different from cpython, the last empty string is not included +# assert re.split('测试','测试123测试12321测试') == ['', '123', '12321'] + +# assert re.split(',','123,456,789,10') == ['123', '456', '789', '10'] +# assert re.split(',',',123,456,789,10') == ['', '123', '456', '789', '10'] +# assert re.split(',','123,456,789,10,') == ['123', '456', '789', '10'] + +# assert re.match('1','1') is not None \ No newline at end of file diff --git a/dependencies/pocketpy/tests/80_c.py b/dependencies/pocketpy/tests/80_c.py new file mode 100644 index 0000000..69c6d7d --- /dev/null +++ b/dependencies/pocketpy/tests/80_c.py @@ -0,0 +1,74 @@ +import c + +a = c.malloc(100) +c.free(a) + +a = c.malloc(100) +c.memset(a, 0, 100) +b = c.malloc(100) +b = c.memcpy(b, a, 100) + +bp = c.p_cast(a, c.int_p) + +assert c.p_value(c.NULL) == 0 +assert c.NULL == c.NULL +assert c.NULL != a + +for i in range(10): + bp[i] = i + assert bp[i] == i + (bp+i).write(i) + assert (bp+i).read() == i + +i = c.float_(10) +assert i.sizeof() == 4 +j = i.copy() +assert i == j +assert i is not j + +#################### + +class Vec2(c.struct): + def __new__(cls, x: float, y: float): + obj = c.struct.__new__(cls, 8) + obj.write_float(x, 0) + obj.write_float(y, 4) + return obj + + @property + def x(self) -> float: + return self.read_float(0) + + @property + def y(self) -> float: + return self.read_float(4) + + def __repr__(self) -> str: + return f"Vec2({self.x}, {self.y})" + +a = Vec2(1, 2) +assert isinstance(a, c.struct) +assert type(a) is Vec2 +assert repr(a) == "Vec2(1.0, 2.0)" + +a = c.struct(10) +p = c.p_cast(a.addr(), c.char_p) +p.write_string("Hello!") +assert p[0] == ord("H") +assert p[1] == ord("e") +assert p[2] == ord("l") +assert p[3] == ord("l") +assert p[4] == ord("o") +assert p[5] == ord("!") +assert p[6] == 0 +assert p.read_string() == "Hello!" + +s = c.struct(67) +for i in range(67): + s.write_char(i, i) + +s_hex = s.hex() +s_r = c.struct.fromhex(s_hex) +assert (s == s_r and s is not s_r), (s_hex, s_r.hex()) +assert s_hex == s_r.hex() + diff --git a/dependencies/pocketpy/tests/80_csv.py b/dependencies/pocketpy/tests/80_csv.py new file mode 100644 index 0000000..7e13ba2 --- /dev/null +++ b/dependencies/pocketpy/tests/80_csv.py @@ -0,0 +1,50 @@ +import csv +def test(data: str, expected): + ret = list(csv.reader(data.splitlines())) + assert ret==expected, f"Expected {expected}, got {ret}" + +test("""a,b,c +1,2,3 +""", [['a', 'b', 'c'], ['1', '2', '3']]) + +test("""a,b,c +1,2,"3" +""", [['a', 'b', 'c'], ['1', '2', '3']]) + +test("""a,b,c +1,2,"3,," +""", [['a', 'b', 'c'], ['1', '2', '3,,']]) + +test("""a,b,c +1,2,'3' +""", [['a', 'b', 'c'], ['1', '2', '\'3\'']]) + +test('''a,b,c +1,2,"123""" +''', [['a', 'b', 'c'], ['1', '2', '123"']]) + +test("""a,b,c, +1,2,3, +""", [['a', 'b', 'c', ''], ['1', '2', '3', '']]) + +test("""a,b ,c, +1,"22""33",3 +""", [['a', 'b ', 'c', ''], ['1', '22"33', '3']]) + +# newline +test('''a,b,c +1,2,"3, + 4" +5,"a,"" +b",7 +''', [['a', 'b', 'c'], ['1', '2', '3,\n 4'], ['5', 'a,"\nb', '7']]) + +ret = csv.DictReader("""a,b,c +1,2,3 +"4",5,6 +""".splitlines()) + +assert list(ret)==[ + {'a': '1', 'b': '2', 'c': '3'}, + {'a': '4', 'b': '5', 'c': '6'}, +] diff --git a/dependencies/pocketpy/tests/80_datetime.py b/dependencies/pocketpy/tests/80_datetime.py new file mode 100644 index 0000000..d5c3e3f --- /dev/null +++ b/dependencies/pocketpy/tests/80_datetime.py @@ -0,0 +1,39 @@ +import datetime + + +def test_timedelta(): + assert datetime.timedelta(days=1) == datetime.timedelta(days=1) + assert datetime.timedelta(days=1) != datetime.timedelta(days=2) + assert datetime.timedelta(days=1, seconds=1) >= datetime.timedelta(days=1) + assert datetime.timedelta(days=0, seconds=1) <= datetime.timedelta(days=1) + assert datetime.timedelta(days=1, seconds=1) < datetime.timedelta(days=2) + assert datetime.timedelta(days=1, seconds=1) > datetime.timedelta(days=0) + + +def test_date(): + assert datetime.date(2023, 8, 5) == datetime.date(2023, 8, 5) + assert datetime.date(2023, 8, 5) != datetime.date(2023, 8, 6) + assert datetime.date(2024, 8, 5) >= datetime.date(2023, 8, 6) + assert datetime.date(2023, 8, 5) <= datetime.date(2023, 8, 6) + assert datetime.date(2024, 8, 5) > datetime.date(2023, 8, 6) + assert datetime.date(2023, 8, 5) < datetime.date(2024, 8, 6) + + +def test_datetime(): + assert datetime.datetime( + 2023, 8, 5, 12, 0, 0) == datetime.datetime(2023, 8, 5, 12, 0, 0) + assert datetime.datetime( + 2023, 8, 5, 12, 0, 0) != datetime.datetime(2023, 8, 5, 12, 1, 0) + assert datetime.datetime( + 2023, 8, 5, 12, 0, 0) >= datetime.datetime(2023, 8, 5, 12, 0, 0) + assert datetime.datetime( + 2023, 8, 5, 12, 30, 0) > datetime.datetime(2023, 8, 5, 12, 1, 0) + assert datetime.datetime( + 2023, 8, 5, 12, 0, 0) < datetime.datetime(2023, 8, 5, 12, 1, 0) + assert datetime.datetime( + 2023, 8, 5, 12, 0, 0) <= datetime.datetime(2023, 8, 5, 12, 1, 0) + + +test_timedelta() +test_date() +test_datetime() diff --git a/dependencies/pocketpy/tests/80_easing.py b/dependencies/pocketpy/tests/80_easing.py new file mode 100644 index 0000000..0ac0431 --- /dev/null +++ b/dependencies/pocketpy/tests/80_easing.py @@ -0,0 +1,12 @@ +import easing + +def validate(val): + assert -2 <= val <= 2.0 + assert isinstance(val, float) + +for k, f in easing.__dict__.items(): + if callable(f): + validate(f(0.2)) + validate(f(0.5)) + validate(f(0.8)) + validate(f(1.0)) diff --git a/dependencies/pocketpy/tests/80_gc.py b/dependencies/pocketpy/tests/80_gc.py new file mode 100644 index 0000000..aade7c0 --- /dev/null +++ b/dependencies/pocketpy/tests/80_gc.py @@ -0,0 +1,12 @@ +import gc + +def create_garbage(): + a = [(1,2) for i in range(10000)] + return a + +create_garbage() +gc.collect() + +create_garbage() +create_garbage() +create_garbage() \ No newline at end of file diff --git a/dependencies/pocketpy/tests/80_json.py b/dependencies/pocketpy/tests/80_json.py new file mode 100644 index 0000000..865abf0 --- /dev/null +++ b/dependencies/pocketpy/tests/80_json.py @@ -0,0 +1,85 @@ +a = { + 'a': 1, + 'b': 2, + 'c': None, + 'd': [1, 2, 3], + 'e': { + 'a': 100, + 'b': 2.5, + 'c': None, + 'd': [142, 2785, 39767], + }, + "f": 'This is a string', + 'g': [True, False, None], + 'h': False +} + +try: + import cjson as json + print('[INFO] cjson is used') +except ImportError: + import json + +assert json.loads("1") == 1 +assert json.loads('"1"') == "1" +assert json.loads("0.0") == 0.0 +assert json.loads("[1, 2]") == [1, 2] +assert json.loads("null") == None +assert json.loads("true") == True +assert json.loads("false") == False +assert json.loads("{}") == {} + +assert json.loads(b"false") == False + +_j = json.dumps(a) +_a = json.loads(_j) + +for k, v in a.items(): + assert (a[k] == _a[k]), f'{a[k]} != {_a[k]}' + +for k, v in _a.items(): + assert (a[k] == _a[k]), f'{a[k]} != {_a[k]}' + +b = [1, 2, True, None, False] + +_j = json.dumps(b) +_b = json.loads(_j) + +assert b == _b + +c = 1.0 +_j = json.dumps(c) +_c = json.loads(_j) +assert c == _c + +d = True +_j = json.dumps(d) +_d = json.loads(_j) +assert d == _d + + +assert repr((1,)) == '(1,)' +assert repr((1, 2, 3)) == '(1, 2, 3)' +assert repr(tuple()) == '()' +assert json.dumps((1,)) == '[1]' +assert json.dumps((1, 2, 3)) == '[1, 2, 3]' +assert json.dumps(tuple()) == '[]' + +assert repr([]) == '[]' +assert repr([1, 2, 3]) == '[1, 2, 3]' +assert repr([1]) == '[1]' +assert json.dumps([]) == '[]' +assert json.dumps([1, 2, 3]) == '[1, 2, 3]' +assert json.dumps([1]) == '[1]' + +try: + json.dumps({1: 2}) + assert False +except TypeError: + assert True + +try: + json.dumps(type) + assert False +except TypeError: + assert True diff --git a/dependencies/pocketpy/tests/80_json_alt.py b/dependencies/pocketpy/tests/80_json_alt.py new file mode 100644 index 0000000..05ad37a --- /dev/null +++ b/dependencies/pocketpy/tests/80_json_alt.py @@ -0,0 +1,3 @@ +a = {"result":["%2Fclub%2Fitem%2Fparcel%2Fitem%2F00%2F000267b037f4428cd9952c8428e78e87%2F200_200_63a39a73_77af00ea.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F00%2F009c4562672028c97f8b2d9566424186%2F200_200_63844843_8cbb0033.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F02%2F02a9fd52cc2c43cff674b560ac415724%2F200_200_63a06ba4_a7e70022.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F02%2F02d0f2b7cfe5c618a7a326c00c38bdb4%2F200_200_63985a19_b79b00c9.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F03%2F0373344bad4c6dc5fb9128a158ce4017%2F200_200_6379b2f1_b3620045.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F04%2F04a7d4aa10cb5eb5eb8baffad9fcf517%2F200_200_63578a37_3600001c.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F08%2F08c85c1501b263d34d5e81b2c988550e%2F200_200_637de93b_ec53000d.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F08%2F08fa14671a6ce300998ce26487d08cfb%2F200_200_6395dd2b_be4a007e.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F0a%2F0adc5bf506dec94060aec68ef64e6e08%2F200_200_636dbf6f_34e10049.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F0b%2F0b44ab573045c356a1fa0ddade16d23a%2F200_200_636b8ee4_fafc0050.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F0b%2F0b8343c3d2c36afac02343bcf894f288%2F200_200_6381f071_b55e009e.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F0b%2F0bfff6710f513c9ab2b51af8401845ff%2F200_200_639ef4f2_755b00ae.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F0c%2F0ce5c46f841659ef800886a9684da2f9%2F200_200_6358ba33_a6e600ad.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F0d%2F0d76135ad41363e6ee5a900ff3aa9cfe%2F200_200_63946b24_b1120040.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F0d%2F0db9420a42c0c41ea67890f72ad928d0%2F200_200_63946b5f_bbc50050.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F10%2F10a0b94a69a1a35d990b8cf920b95715%2F200_200_6397ddf2_f62a0040.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F10%2F10bbf56d348ec0b3827d541ac1633116%2F200_200_638616dd_44280002.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F13%2F13398ce09044710a13518d3a56a1c787%2F200_200_637211e0_639800cb.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F13%2F135eb1b3b9ff1a043e23c87cdcd2c8d8%2F200_200_639dae05_96a300cc.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F14%2F141f1930f38efc341223761e8e764c52%2F200_200_638b6498_9a500044.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F1c%2F1c7db0f73e246a762955bbecfa5efbf7%2F200_200_63564e6a_195f0045.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F1c%2F1cb767dcf8f2b1f22c62af6c605ed64d%2F200_200_63a39b63_698c00c9.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F1d%2F1dc4cbb109f71edd4e11ba5b77fba029%2F200_200_6378f008_5077005f.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F1d%2F1dfe283298fa94de33010b8d0df7146f%2F200_200_63a3b633_145d0072.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F1f%2F1f3273a3b37ec76f4a79538e36cf8e55%2F200_200_635a3788_00010050.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F21%2F216d1aab71d0f86cbbe760eef07b86f2%2F200_200_63538b72_105b009d.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F25%2F25ee1c72739180208e9e8ba1a20f1030%2F200_200_6385def2_88670096.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F26%2F26a8948f80065eca0622fc6770e706be%2F200_200_6353f6eb_9afd0061.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F27%2F27d4a477b76965826aa8a10d9fc68086%2F200_200_6355f955_96a0002c.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F28%2F281483871fcfb18c2cca4c1cb103f428%2F200_200_63871f0a_50c200ae.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F28%2F28968a55ab9c02f178382af265336960%2F200_200_63579df5_dbec001c.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F2a%2F2ae5c42f5dfb5461a3f957afc40a1b5c%2F200_200_63760e23_8c370004.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F2c%2F2c15ed636791b67c122456258c8cf9f1%2F200_200_63a3b081_81cf0066.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F2d%2F2d1f8a27fe2821fe22d6c6ab10339536%2F200_200_635e7552_96ad007d.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F33%2F33ca5c694b7e901bda3a2ebaa896a8a1%2F200_200_639066c3_51be0066.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F3a%2F3ae7418b055ad4fcd81e62da22a7b21a%2F200_200_63624172_f6c500c0.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F3c%2F3ccf167830bc2556d93231a63b165e6d%2F200_200_63578b89_d761000a.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F3f%2F3f2b6d93bfaa3c0c4a26ba5e96056cdd%2F200_200_63623af8_8ffa009a.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F44%2F4401791945c690442fecbd70eb1ddc21%2F200_200_635f8562_2ee30025.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F48%2F48e8549e0cd04f9b3223a40de5541950%2F200_200_6385e3c8_8172000d.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F4b%2F4b871d6f43e511aa8b5adb08eee145e7%2F200_200_63578cc1_c781009a.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F4b%2F4bd40b48b56e790e5f90ca3a702f4be9%2F200_200_636495b5_675500eb.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F4c%2F4c1e33490a3dfd56a820a2a58e00943f%2F200_200_6397e74b_5b6e00f6.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F4d%2F4dcbf9a17c6b782f97a782e2a0e11dfd%2F200_200_639b2c70_fa670080.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F4f%2F4f4ad3f6142f67563aa70f72330cff17%2F200_200_637b3339_948d00a8.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F4f%2F4fcb726b7d83a1bb27b6a2fcbf52e87f%2F200_200_6363dbd6_a25d0049.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F51%2F513907c7b2275440c4b48e5c81e530f2%2F200_200_6389d8fd_c60f0032.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F52%2F5204385d4e03b67e50d9c943136a5eed%2F200_200_6352906d_84f90099.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F53%2F53278cb7d75fac067a5497521a0692de%2F200_200_63a1a89f_be1e009a.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F53%2F535e0b1c7d25391f6c12ec9c7d113ad3%2F200_200_6358a893_145800b3.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F54%2F547bb4369fc923a82846dda67d82e250%2F200_200_63886db2_19c20032.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F56%2F56005435245da6c9ad20e1516fdcd484%2F200_200_638eb739_c6700024.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F56%2F56a0b8b6a493df42724e338b3b6febbb%2F200_200_6356a165_8c9c0009.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F5b%2F5bef3b60c9369fc5e284488d0d83922d%2F200_200_63762849_f239000b.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F5c%2F5c9a456e6630a3fd521aaf25fca80682%2F200_200_63578c48_cc2b00ae.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F5c%2F5ceec6d1bdc2418169b43d8902e1e605%2F200_200_6353d75c_17b0001e.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F5d%2F5d1938a4e975fff50a1a4ee545c15f76%2F200_200_639afdc4_2edc007d.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F5d%2F5df6984a70552bea4b10ef7c40243d24%2F200_200_637e33c9_ed6c00a1.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F60%2F60129f8dbfa2b8c9d9f5529432104c9a%2F200_200_6392b2ed_a5570002.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F60%2F60ba20c6b07f106d95bba04834bdbb96%2F200_200_63a0688f_76d2001f.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F62%2F62c4711bdff59baa7807b5bc238233fa%2F200_200_63661342_d30d005d.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F63%2F63344be284932f7635bb2c297c3136a0%2F200_200_637a45f3_25ac00fe.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F63%2F63802f4c08417b97d079382df2a86812%2F200_200_637b77cb_1b4b00d0.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F64%2F64e8d451064a2f365e78bb85f25c37a8%2F200_200_636e46b6_5aa40061.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F69%2F69091de16022525d0dd66daa9157448b%2F200_200_63907e28_af2d0057.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F6b%2F6bb94310803e5c2c51ebb962dd80fd5d%2F200_200_63806604_abfc0096.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F74%2F7407bd958de00f867369d91c9dac65ab%2F200_200_637ed159_099700cc.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F74%2F749e86ce9ba97d738aa5e5d0a389c9d4%2F200_200_63820f89_945c001f.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F74%2F74c53544921e3cfe42c8be8e17ae7c23%2F200_200_63981d4b_310e0049.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F76%2F7693bce3900738f513b54c50d9e534cb%2F200_200_63611ebe_02ae0049.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F77%2F77a0504dc980fe04d4a9011e606e6739%2F200_200_638f0bdc_713c00cd.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F78%2F78fd1d2c801e3d5facd284f19cb0d7f2%2F200_200_6385d684_832b0043.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F79%2F79cc214bbee3a07ebcbef6ab326c195b%2F200_200_6397f674_533e004f.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F7c%2F7c505c9f4dd8a2356c254e1cd972d9c5%2F200_200_638fb9de_076a0040.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F7e%2F7e60f4c4cf0c49fefc9e521b80316a47%2F200_200_635b8327_5e730003.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F7e%2F7e6d39cb9b4ace01ca37f26affa634c4%2F200_200_63760b5c_1647006a.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F80%2F80b15386f4a22b285c9d3646e20b571a%2F200_200_638a04ad_19de0080.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F81%2F811765a8cb224bf0ef0b3e5217df406e%2F200_200_6358a890_b8f000db.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F82%2F82a2c405edbdd2780792b627189664ab%2F200_200_6395e359_143f00cf.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F82%2F82cc8ef3ce13dffee798b4383ee9af41%2F200_200_6395bc83_b07e00d4.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F88%2F88bd905841d4b446c3177af78449abb8%2F200_200_637dfc2c_69280049.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F89%2F896939e456f5d187aa68b656a60b6f9a%2F200_200_6358e9fa_882c0099.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F8a%2F8a2fc930a39612375471ac9957285fe9%2F200_200_639ae750_60b9008b.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F8d%2F8d1c08a1bd22ce6bbb94e77f1a5256c3%2F200_200_63948de7_500e0049.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F8d%2F8d8bd29e5cc20352bb28bf40207ee32d%2F200_200_635d358c_d1b00050.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F90%2F90a0cd79f5d08aba5f9af9a43137135a%2F200_200_637a37d3_200c00f1.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F95%2F95a8e43885d1706388e01e7fffb551d8%2F200_200_638065a0_730e003b.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F96%2F966ba56e8ebe1a85c01acdf78f5c7a84%2F200_200_639066f6_7914009c.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F96%2F96ab10d23934747f3e01f916c1da74d5%2F200_200_636bb5e2_82c900c4.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F97%2F972e0d076e7a42c098af2027c0beecec%2F200_200_637a2018_e84a008c.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F97%2F97fd37e8a3c98260efe96d1e284d2e9d%2F200_200_638e9f54_76a00057.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F98%2F982e4a7f3856c54aa5828bc538d2fbd5%2F200_200_63760b67_3d1a0004.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F98%2F985fb0155037991a40a2e2a8e7f52cfd%2F200_200_6396ff4c_16920009.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F98%2F988d48ed0f3e8d5bed293ae8332a93b7%2F200_200_636378b1_f2370040.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F98%2F98ff7b5e819444ae7f14d6b55e8f0586%2F200_200_63a1aa2f_55ad00ae.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F9d%2F9d95fc44d7d867b6a6c1848538c5460f%2F200_200_63860c3a_e4d40066.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F9e%2F9e7270ca7e645a65db583faca8e6a5f9%2F200_200_636b4961_900f00c8.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2F9f%2F9fcfdda28f077da44b8875fa2080cce0%2F200_200_6382f017_874a0003.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fa1%2Fa176e65814ae2d4f115ca3bf9d497de8%2F200_200_637df3cb_5dc00050.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fa3%2Fa32ec0106be2cb310e1ef593c79d6ac9%2F200_200_63a3a9cc_52aa0057.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fa3%2Fa36616c496dd1271e57c86a9f1a4cee6%2F200_200_63731c8f_fb9a0023.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fa4%2Fa41647841de10d238dd21ba44e06c197%2F200_200_6380962e_6a1f00c4.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fa5%2Fa5992ce440fc3b95032c24e4b3fa3968%2F200_200_63a038d8_144a009a.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fa6%2Fa6449b9eef562e9401fcfe03447d8b85%2F200_200_639dc0f0_7dc70016.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fa6%2Fa6aca039689d7e0fd2df64125ec0bdc6%2F200_200_636884c7_7420001c.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fa7%2Fa7a4f9d0831570b635d6dd5194b36545%2F200_200_63612e4f_c75800d6.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fa9%2Fa92fac11d6a1e9604f6207605b7a08c2%2F200_200_636cf9d0_fc9a0074.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Faa%2Faa69a9fc7590ba87e419c56aa6172d05%2F200_200_63720f0f_3bd9001c.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Faa%2Faa88a6ac80dcd40aab020c1aabf3b6df%2F200_200_6368d289_1ae200ad.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Faa%2Faabe38f0e1dd964736a55984fcec797c%2F200_200_6370fbeb_d9e000f6.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Faa%2Faaeef7797ca091ed38a1a2237ee9e591%2F200_200_6360c88c_39c80014.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fae%2Fae3ad24ece5dd14d82e0e1ff47b58d68%2F200_200_636f2f79_38c800fc.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Faf%2Faf74df300b974cea856e79d59aadb914%2F200_200_635d2f8e_aae800fd.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fb1%2Fb1f0b3608a746ffa86a78e42eb13a4b3%2F200_200_635a368e_2d89005d.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fb2%2Fb2bc064b4e31f3a7c9350fa42b1490f3%2F200_200_636884c6_63f300bb.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fb4%2Fb49b8fa456b955b9bb112049de6ff0a5%2F200_200_6390271d_dfd4001c.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fb6%2Fb6e118c775b5237ba633ca0e03c79873%2F200_200_6367979f_1c95000a.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fb9%2Fb99d2c5d11e8bb531f6e4e0892a64b15%2F200_200_6370ef18_eb4c0022.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fb9%2Fb9a59a3be4b4b05897d85bed68be8f36%2F200_200_639d809a_863f0022.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fb9%2Fb9a9d3edc4592d715e8b6e39e318e241%2F200_200_639ae691_335600ee.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fb9%2Fb9ad12053546db42ff5e2970b1fe3b24%2F200_200_63691b63_e9e10099.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fbb%2Fbb694f6e083c5b07b8f8a6629f3c78d4%2F200_200_637653e1_30b70079.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fbb%2Fbb93dace47c910cc9979f1d6ed706cb5%2F200_200_635a2285_294f0047.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fbe%2Fbe9be42dc3b7d8e23e6ad5b5561cee1b%2F200_200_638607ab_c736009d.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fbe%2Fbeb3fb439bbdf6edb47487af655154dc%2F200_200_638a0fab_b06a0099.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fbf%2Fbf05247ed76d918b425cd94e0ef9eadd%2F200_200_63a3b6a0_3fa400e6.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fc0%2Fc069e96d1dda28b62b513082b7ef2da3%2F200_200_63760047_eff8004a.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fc3%2Fc3f91ae9afbbaaba0c7b515100572e91%2F200_200_6370edb4_1fbb00a1.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fc5%2Fc52fb07c63cfb7c4a5f3c5fdb3123509%2F200_200_638de61d_2dc40000.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fc6%2Fc61d7497614678c74e783d5a596cb903%2F200_200_6357a22f_50b900ee.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fc8%2Fc88696db0690493d4f703b1e07b50a67%2F200_200_6397471b_ceda00d6.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fc8%2Fc886fb54636a445c225424751d3426f7%2F200_200_636b77be_12ed0089.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fc9%2Fc970e2bf4c2169a134216043d0a3f92a%2F200_200_63840a50_91d100d4.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fcb%2Fcb2310242196e92b11e5b514d78d507b%2F200_200_63a1aa8a_3f020044.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fcc%2Fcc03f68617d9dfb5204f5f01720f3b1c%2F200_200_638db4bb_f69a0067.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fcc%2Fcc921e903f2a67bee621b291e0d96159%2F200_200_63689193_909c00c8.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fcc%2Fccafc9ed46fca43b2fdaa9cbb8293696%2F200_200_6381de48_9d4500ee.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fd4%2Fd4ffd13c9abd9abea60b8824a8ca9a20%2F200_200_636515dc_ae38005a.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fd6%2Fd67b9922bad6a20009625b0c6cc00d1a%2F200_200_6397471b_70a300f1.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fd9%2Fd9db6c9caea47b3821d9832c06b670e9%2F200_200_639d7e2c_bc700049.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fda%2Fda23089ccded874069154d9d64bc958d%2F200_200_639819d3_2b6d00c4.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fda%2Fda4bb7a7978e77c100a587ece99ecd53%2F200_200_636609e2_eb9a00bb.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fda%2Fdaf4261918d5cd458f55b125016e704a%2F200_200_637360de_2c490040.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fda%2Fdafcb3ed46e7b737cd6a0b0babf7ee14%2F200_200_6384af73_f77c0070.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fdb%2Fdb5f12127e2593ed4a125e03d60da7dd%2F200_200_638b3925_a4ca0087.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fdc%2Fdc3c684a9251b4ec692ff9c29a0da3f9%2F200_200_637f813a_363800fd.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fdd%2Fdd4469b6d7e0d6361d90c480e8881be5%2F200_200_63610ff8_4a850066.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fdd%2Fdd825367ff00a423561d31ac5a910c3f%2F200_200_636a2828_f8590099.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fdd%2Fdde0985b1f1a2afe7c88ca45541012d0%2F200_200_636911ec_bb41009d.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fdf%2Fdf73358871f8fbebf5e0ff66b31efefb%2F200_200_63a197fd_74820096.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fe0%2Fe00d5655a00d609c0fb5ef166ea8e2f7%2F200_200_637c9dda_41b60032.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fe0%2Fe03ff64448ce070bf1d7b3b949215c56%2F200_200_6386122e_75c3007d.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fe0%2Fe0558e644d7fa757fa79536f8f8ccd7c%2F200_200_639d987b_67a500d5.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fe0%2Fe0dda7a2a1f0fe0dfc2cb6b844db42ad%2F200_200_638dce1e_81330016.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fe3%2Fe3b02138e55644607352ad19fb1fed83%2F200_200_63934476_fe8e004a.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fe3%2Fe3f66b689badbd9421de05b0672d0372%2F200_200_636ccb29_d0e600ad.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fe6%2Fe646bff0d6576d5bc4b5c3e450da5bb1%2F200_200_637f59b3_a25b00c8.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fe8%2Fe85fc6c1cfc53ce95fca278e25d2ca7b%2F200_200_63691bad_fede00ca.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fe8%2Fe8ac4b07089be7e28f8dce88d775bc7e%2F200_200_635e8c3c_d10b0066.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fe8%2Fe8bbbb2b53262c5f764890b77763bae9%2F200_200_639de79b_31f90084.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fea%2Fea3487d7e22a93909cd5fcf1f0652f84%2F200_200_6389f671_b7d9008b.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fea%2Feaa9f3325e5c88ca78e22d25ad4ef766%2F200_200_637a4ee3_1a6200d9.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Feb%2Feb18b116ad484d2dc0f34f7a90dbbe84%2F200_200_63947e9c_7dfb0022.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Feb%2Feb2fb6a802af4212731d95568a840d7c%2F200_200_6385dfee_3862001c.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Feb%2Feb40c52bce450c7f5e1a2ddd791d0106%2F200_200_637c9bb7_c8b900ff.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Fed%2Fed42cd241a62afa21bdd08ebdaa60439%2F200_200_6358f530_641f00b0.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Ff3%2Ff3f21ca4311fe5233e43f345bf37aec2%2F200_200_637ca071_0dcf0006.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Ff4%2Ff402b0818ccd60f7c6b9a9de3202cc1e%2F200_200_637e2071_b8c700b7.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Ffa%2Ffa3ffc16e353f7f86015ab433e4c0677%2F200_200_639dc123_212b00d6.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Ffb%2Ffb4baae3a278426e4e28b7800a9f82a6%2F200_200_637649f9_a2e20025.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Ffb%2Ffbdce49643e3761e485a5cc40ba10778%2F200_200_639066c7_f87f00ff.tmp","%2Fclub%2Fitem%2Fparcel%2Fitem%2Ffd%2Ffd9b4c7fb283e6882faa5d0d671919ed%2F200_200_637e2078_ce6e0014.tmp","%2Fg_635d1567_cd72009a.tmp","%2Fg_635e158b_b6f400c8.tmp","%2Fg_635e159b_408d001f.tmp","%2Fg_635f6c33_e9ba00b3.tmp","%2Fg_63638757_fd0e0014.tmp","%2Fg_6363ea26_176d0061.tmp","%2Fg_636fc6e3_729c00b0.tmp","%2Fg_637b1753_3c4d0076.tmp","%2Fg_63882eba_e91300d1.tmp","%2Fg_63961945_1c3100a6.tmp","%2Foffpic_new%2F2551900781%2F%2F2067144018-1375386732-A35C67E9E27B88C5802DE9018726218C%2F0_6399d6dc_478a00d0.tmp","%2Foffpic_new%2F2551900781%2F%2F2067144018-1793231345-9F49D685A565B865DC0467A01924C506%2F0_6395ee7a_a06000f7.tmp","%2Foffpic_new%2F2551900781%2F%2F2067144018-2122786343-7E688A10260C5C1D77EF339071886F86%2F0_63983a17_691b0099.tmp","%2Foffpic_new%2F2551900781%2F%2F2067144018-2500810974-F7F91B4BF74803882BB727C810F84A60%2F0_6395ed2c_66040096.tmp","%2Foffpic_new%2F2551900781%2F%2F2067144018-2524286023-A503E46E617279494350EC413DAB5DD8%2F0_635a5c72_6c1500ad.tmp","%2Foffpic_new%2F2551900781%2F%2F2067144018-2524286023-A503E46E617279494350EC413DAB5DD8%2F0_635b7107_3f700047.tmp","%2Foffpic_new%2F2551900781%2F%2F2067144018-2917889229-0E42EBDFF75532229E3A2AEBB548E75A%2F0_63902992_8d25009d.tmp","%2Foffpic_new%2F2551900781%2F%2F2067144018-853793193-FE6E793015D91E04C3996831A78630F8%2F0_6373ae59_0ae4008b.tmp","%2Foffpic_new%2F2551900781%2F%2F2103097775-833906716-105EAF849A802B6ED7AC596D0BA6D186%2F0_6364fa61_1f0a0006.tmp","%2Foffpic_new%2F2551900781%2F%2F2176232577-2488612370-37478A90C8985A0FC4EC1A913A44D0D3%2F0_6384f002_94d60082.tmp","%2Foffpic_new%2F2551900781%2F%2F2551900781-1014744055-3B0C9A7599D25DB31AFA09A4608BE8EB%2F0_635f77dc_1a0e005a.tmp","%2Foffpic_new%2F2551900781%2F%2F2551900781-1032297060-0AB26F9D9DB0CA644E23514D17E2715B%2F0_636247d3_71d9009a.tmp","%2Foffpic_new%2F2551900781%2F%2F2551900781-1092475398-0AB26F9D9DB0CA644E23514D17E2715B%2F0_635a3a3a_174d0036.tmp","%2Foffpic_new%2F2551900781%2F%2F2551900781-3950807006-DA63CFFC86F3A066167F129E26423DC5%2F0_6379c1af_257400b1.tmp","%2Foffpic_new%2F2551900781%2F%2F2551900781-3950807006-DA63CFFC86F3A066167F129E26423DC5%2F0_6379c1b0_e6d30057.tmp","%2Foffpic_new%2F2551900781%2F%2F2551900781-3950807006-DA63CFFC86F3A066167F129E26423DC5%2F0_6379c1b1_400f002f.tmp","%2Foffpic_new%2F2551900781%2F%2F2551900781-3950807006-DA63CFFC86F3A066167F129E26423DC5%2F0_6379c1b1_5d6e0068.tmp","%2Foffpic_new%2F2551900781%2F%2F2551900781-3950807006-DA63CFFC86F3A066167F129E26423DC5%2F0_6379c1b2_c8a90067.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-1616743876-FD8243DE2557E7085C392D3C6DB2229A%2F0_6364a8fd_37d000f5.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-1616743876-FD8243DE2557E7085C392D3C6DB2229A%2F0_6364ccfb_4f820047.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-1616743876-FD8243DE2557E7085C392D3C6DB2229A%2F0_6364f606_d0a2006c.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-1616743876-FD8243DE2557E7085C392D3C6DB2229A%2F0_6365027b_53730047.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-3309367579-FAA5105F0396CD890EFC1C60786416C1%2F0_635e2731_d12a00fc.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-3389908264-88953E260FF27ACDA187483AA72BCBA6%2F0_636bd9e7_ef1000de.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-3389908264-88953E260FF27ACDA187483AA72BCBA6%2F0_636c92d6_52f60012.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-3389908264-88953E260FF27ACDA187483AA72BCBA6%2F0_636cfd12_a52e0084.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-3494814829-CFCB724809E02EE050CA65F2EA89DC9F%2F0_639f543f_a8330045.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-3494814829-CFCB724809E02EE050CA65F2EA89DC9F%2F0_63a2b4c2_e8a60013.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-3607227105-91A3699E43A4A0056C771057DA9F2893%2F0_636639a0_e7aa000a.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-3607227105-91A3699E43A4A0056C771057DA9F2893%2F0_63664ab7_46f70030.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-3691031378-88953E260FF27ACDA187483AA72BCBA6%2F0_636dd223_b8710044.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-3691031378-88953E260FF27ACDA187483AA72BCBA6%2F0_636e2326_ca550048.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-3726572135-359AF081907446AC66E3EA7F9D43414B%2F0_636659b7_c7a000b0.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-4153649850-9D32080A7C01B4C6FB9A730777D0DE45%2F0_635d34e6_c7ad00ae.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-4153649850-9D32080A7C01B4C6FB9A730777D0DE45%2F0_635e2732_72db00b3.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-489147570-88953E260FF27ACDA187483AA72BCBA6%2F0_638207e7_e6700091.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-489147570-88953E260FF27ACDA187483AA72BCBA6%2F0_63837911_20780053.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-730935873-88953E260FF27ACDA187483AA72BCBA6%2F0_638b2bab_d6a20048.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-776388219-FCF6D183FC074B8BE6C3E5A3FE2C745D%2F0_636352da_4e7c001f.tmp","%2Foffpic_new%2F2551900781%2F%2F2686851040-776388219-FCF6D183FC074B8BE6C3E5A3FE2C745D%2F0_6363d764_eb4500cc.tmp","%2Fqqshow%2Fadmindata%2Fcomdata%2FvipSmallEmoji_item_11%2F24_63a07609_4f93001f.gif","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6352caf0_506f0013.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6354e6c9_c59900f5.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_63564bd6_4e500003.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_63566916_0748001c.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6356b0bb_4bad0020.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_63578ad0_f83300db.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6358ba58_79d200db.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_635a2285_32ee00de.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_635b8326_4e2a001f.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_635d2aa9_e35600db.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_635e157f_00ba001f.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_635e25d0_c0ee0038.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_635f6c33_835900b3.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_636203c9_8d4c0090.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_636386f7_d6ea0032.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6364a8fe_81de0045.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6364ccfb_07eb003e.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6364f606_ee2100d6.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_63668b6a_63700053.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_636765e1_ef9f00b7.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6368c9d4_31110089.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6369e46a_7d9c00bb.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_636a3e12_3c470039.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_636b5ad2_53fe00d4.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_636be235_36610012.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_636c93e3_d2900047.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_636df7f4_70ce0057.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_636e57bb_026f00ae.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_636f19f4_ce7e0096.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6370d6fa_62f7007d.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_63712187_6bc8004d.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6372254f_1e4900cb.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6373a9f1_b1fc0032.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6373d968_345e00ae.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6377238a_30ad0012.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_637ee3d8_1eda00ae.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_637f57f8_04540047.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6381d9b3_ee440050.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_63835dbf_d063008f.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6385d622_78e70043.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6386331d_216600ae.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_638753f4_b10d00ae.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6389b5aa_25a9001f.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_638cd60c_4ca30020.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6390278e_aa3200b7.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_63918f5b_2a4c0003.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6395bd6a_0e6a0074.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_63970bba_c8dd00f5.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_639818a1_5f5600da.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_6399b400_98dc0045.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_639ad53a_1cdf00f5.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_639db292_f2d10057.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_63a07efe_7a5e00d9.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_63a1aa02_d4c500ee.tmp","%2Ftempchatforgroup%2Fsecure%2Fget_url_whitelist_63a2a68c_f4b8007d.tmp",".net",".pdftk.temp",".ses","00445084-2a1f-42b7-9735-5a02bde8f95d.tmp.ico","004bccby.obk","010ec2aae85a41ae83fc68ce7dda3e93","01ce8f1e-d779-4c9a-82e2-3225804e27c0.tmp.node","022jjw0e.g5n","02yghcp3.1nk","0371c26c-b6ff-4f11-8e1a-55c5faf8bb97.tmp","04763526-7b51-4d65-834b-623f9e8703a4.PackageExtraction","051b4da3-b155-4003-9649-f0c90d9a85b4.tmp.ico","076c1789-b98c-484f-993d-76ef27c40077.tmp.ico","0796529f-07cf-46f5-8b70-12aa4ad0e189.tmp","0838a5b1-10ce-42e8-a791-b4fb0850dae9.tmp.ico","09bfa52a-3fc3-4d7b-b54b-19d44a71ff22.tmp.node","0ad8bb2f-6e65-4993-b235-f42d3078fc60.tmp.node","0ax5234m.5pd","0cc3707f-a524-4f64-867c-954266430193.tmp.ico","0cda0619-b9cb-451c-97cf-4af41b3a16a2.tmp.ico","0d4167d3-c62c-4d45-9ebc-d165ab9f9859.tmp.ico","0e9493be-9cb7-4860-9a88-03948966f721.tmp.ico","0f4sbypy.gr3","0fc44a8a-9262-44b6-9627-9acdea76def9.tmp","0ffed906-20a8-49fe-a960-a1fb0b010a17.tmp.node","0jjx322o.gku","0kr0jkes.30m","0m0dwgcq.blm","0rhy3aay.uhj","0wblufgz.xc0","0xbjubkt.siv","0yalqhoy.peq","104e1248-b526-422f-be27-ed3114a1fa8d.tmp","12ce4463-a4fb-4415-b09f-42f7f7121f4d.tmp.node","12e554bd-798c-4b87-b96a-be677b78d108.tmp.node","12e5mz1i.j55","1339d7f7-f2ba-4598-8ee6-e89634857cf3.tmp","13ba9d72-9a82-4e77-8779-1eb94b9b5c4d.tmp.node","14296164-3f03-45a8-9a4b-b1bbd5bb0438.tmp.ico","1433tsri.p0d","14366099-47ae-4a88-89ad-1bfa2153aa02.PackageExtraction","143dac28-0544-4f5d-9d72-be99520039fe.tmp.ico","1459230a-43dd-4faf-95ba-b7c87423d72d.tmp.ico","14f4d0a6-ab03-4278-a6ff-a63845acc633.tmp.node","15bf2525-1280-4283-8bb0-b40c6975ffb0.tmp.node","1662654423.log","1664538723.log","1666330691(1).png","1666331017(1).png","1666342180(1).png","1666342180.png","1666342310(1).png","1666342310.png","1666344363.log","1667121315(1).png","1667121315.png","1667139813(1).png","1667139813.png","1667382757078-0.20261513076142368.html","1667382784008-0.2745714211099921.html","1667382795169-0.27661924855728226.html","1667382798590-0.3058385023936847.html","1671088773(1).png","1671088773.png","178a755c-78e1-4825-ba0a-47ab1177363a.tmp.ico","1a097a32-0d62-4fe8-896e-9b47b8b009f2.tmp.node","1b581d9b-3472-4611-84b4-bfc93dbb5e09.tmp.ico","1cc23xyn.tkm","1cgq0ovm.van","1dppysfq.nls","1fb6e1dd-0fc0-43ff-a04a-a7c02598c0f0.tmp.node","1ispzwyd.sc3","1jqwbuyc.fqg","1jt0cxfl.sqf","1kjt0drx.mqd","1lybhvtw.iqp","1m2wo32l.hci","1nzcnz3a.j4m","1okfr04f.3cn","1vir1pus.1lr","1wklzala.zfh","1yshfeua.yts","202mzoko.xj2","20iyimqc.sr4","21508db6e406","21ork5zc.mhr","221141ac-97ac-49a5-b51d-b39f3f57e08f.tmp","2253alph.m0t","2322736d-1d17-4ab0-be67-985110d3d7ad.tmp.node","2357f24b-a6f6-466c-9832-7440ef6c66d4.PackageExtraction","24953a64-95dc-4874-9d56-ec6410cd5453.tmp.node","26418b81-6c9c-4099-8408-c8e9db438ee8.tmp.node","26f5b189-e2d9-4502-b259-d27350b2585c.tmp.node","270b8b9e-d0af-4810-af20-d006a479759c.tmp","271fba54-0d4a-47a5-ba64-c814da36e3c1.tmp.node","27805831-e744-414c-ac2f-3d58cebf6aac.tmp","2783e58c-3fb5-4af5-aba7-c94b64a7e0ee.tmp.ico","2832ac74-435a-4135-9b49-7d897cbd562c.tmp.ico","2864054c-abc8-4263-ae49-4a061a328b6b.tmp.ico","28d9cd3d-443e-45c7-a47e-a71f8bef3270.tmp.node","29069b80-b363-4fb2-8fdd-80d7ac0ae4e3.tmp.node","2aaa91e2-f1f1-4481-b2a5-8be8d17856e9.tmp.ico","2ab9435f-f670-444e-861e-6c4606844d3c.tmp.ico","2b2m231r.2ys","2cce571c-19ca-4ccf-88be-c2938369264b.tmp.node","2ehswmw1.qyb","2f138960-7d0e-40c5-add8-ada0809f1d94.tmp.ico","2f4d46da-0b8a-496d-9fe6-016915461f10.tmp.node","2ffb0215-0ed6-4d69-b4b8-521c04192a2c.tmp.ico","2gddnoum.czp","2gqncgnl.zv5","2gwkayqm.rhf","2j2xn5fr.fhh","2qnj5x3k.cht","2qsz2kwx.34e","2r4j4qgx.qp2","2rwvhbre.bsf","2vupxpda.t1h","306152d9-9866-4bc3-a4b0-a2110a120184.tmp","30b24fe4-d948-49a4-9793-5e2761cb441c.tmp","32caccf5-6bf9-4446-bdea-9b086baf757d.tmp","330f698e-8c57-4508-aaa6-f409a723ab19.tmp.node","331bu0cq.tki","331td05j.rya","332f676f-21b9-4576-8ed5-268af25bf807.tmp.node","339d9251-8abf-4d99-8a6f-12e875ee09ed.tmp","3422ee5b-e204-4c33-b46a-be9eccffa908.tmp","35u2qfxy.1gj","361ebd86-5d0f-4c39-9620-e4e7276f2232.tmp.node","36c72b51-5039-4d2c-97d9-d9d9bf2738c4.tmp.ico","37f57095-6cc8-431d-8b64-e3d95a52216d.tmp","38568193-480b-453a-9c0d-a685c0758274.tmp.ico","3958f74d-fba2-4437-949c-b7533e25ec52.tmp.node","39cc4152-25d7-45d4-981e-f00e12b42c9d.PackageExtraction","39ebf241-2080-4e4c-8050-5da91262b2e1.tmp.node","3a999bcb-b7b8-4d98-bddf-c13251f03a0a.tmp","3ad3433c-2d8b-4c45-9216-9728efa5d110.tmp.ico","3b5e437d-2b8a-481f-bdbf-a069912477de.tmp.ico","3c05d79d-651d-4921-9cf3-0ab1479af790.tmp.node","3d21e885-ee13-40de-b26d-071b70a739f6.tmp.ico","3d4b17e6-83ab-458c-b24d-08ff545214e4.tmp.ico","3DC3B651F9C13F5027737301DA724EA9D573D3259B2CAD6AE32CAEBD9191E50000E6772A0277F1C46DEAE6F9DE28ED8082E79C7974C119A847E567D0307BCEB3DD545507E9E3ABBF21%2F0_6393612f_f97e00a8.tmp","3e5f0382-e9cc-4291-a6c2-830b88a6cbf3.tmp.node","3hbt0ga0.jqs","3hogx0a0.uei","3hs5zcor.053","3husitoh.j4n","3itj5ymc.0y0","3md3xd2e.dxc","3nhixgfg.cyk","3oxrn2vn.5vz","3t4001jr.xn5","3tpuri1u.kjn","40efe612-5ad8-495d-b9f9-e6a65c599d74.tmp.node","40yy0xyr.5fa","4109599d-4a9e-4b38-b207-04df840ec956.tmp","421721AB28EB25A8FFC0B7CFF35283700E89C817621B49D56983D38BE72DF95551B104AC449EDF03B019593E84D1D5C9976B2F40DB50002A32BD7618A2F5131C6F7A53A5F25F011993%2F0_6379c1af_ad3600d0.tmp","42d351a5-09c9-48fb-9084-1233550a5e52.tmp.ico","4384d94a-6da0-4e50-ae54-946ab9ad58b9.tmp.ico","438c95ee-2a48-4c9f-a391-33172ae3db5c.tmp.node","43b94ec6-d628-4b71-9202-ada7d77025d3.tmp","44073cce-3ffd-41b4-8ecd-45988ca9bfff.tmp.node","4429feda-5a4b-4cea-9400-47df7bc53a01.tmp.ico","45590bcb-7d67-46be-b65f-6dd49d3894e8.tmp.ico","457d6f30-c856-4883-aa18-347b08092720.tmp.ico","45r4v5ud.dst","461f38b0-7d05-434c-a428-db3ffff9c4b6.tmp.ico","4632ce91-c4ca-4f67-92a8-e22758012f0e.tmp","46649786-7414-4527-b034-2c4bcf4be883.tmp","466c2d6e-b27c-48ee-af41-8d75c99aaeae.tmp.node","46fa6156-4ce5-4089-896d-d30765a9db1c.tmp.node","48977559-df73-4443-9d47-42e59b2b792c.tmp","4cobecrh.2hz","4cu4mm1r.hnu","4D210A665B616080D1ED7545280EE39184CD17FF73209EADE77662DEF490274A7B04C4EB3439A433C4BF0FFA7BB28FA29EF777BFF5F9014EE046D0C4368628291FEAAA4ABCE9C31B35%2F0_6367ce35_c9f1000a.tmp","4e47353f-217c-418b-8552-1229239a5ded.tmp","4ea56deb-3ca2-4a68-8b90-93f93767d238.tmp.node","4extoylo.fpk","4f3325e3-43c2-4fb6-963b-5eb4f9d7f027.tmp","4f96ae31-b0fb-4e79-a65b-cd0018b79a85.tmp.node","4hh34s20.3pd","4htbzeiy.fnl","4inzs5yl.feb","4iufu40v.pdc","4lts5mhv","4nntw5hi.5ra","4o3paw1r.l3s","4p5avjxk.q0d","4twvxn0w.vcm","4zrgzznx.h2i","508f22e7-8f95-4b7e-8e0a-db3f2d5b9e07.tmp","51001c39-cca4-4921-97d8-7e515ce40186.tmp.ico","51zdjmik.dq1","5202b602-4ac0-442d-906e-5c3ba3386a5a.tmp.node","522c426e-6499-456b-8ffb-2f8a3eb9695a.PackageExtraction","531e9d83-fc56-48a8-a292-6567ec141a6a.tmp","545ef89b-bd4f-4deb-8a1f-8d86358755a9.tmp.node","546af3f7-47fd-4955-9e54-34aa1fa8fa2e.tmp","546BA9DF-C258-4055-9804-7A06B86F291F","546BA9DF-C258-4055-9804-7A06B86F291F.scratch","54a5b640-9bc7-4db4-a446-b1e1b324d5af.tmp.ico","5597d91f-335f-4d3b-9f27-3aa375a6c04c.tmp.ico","5757e183-ad3d-478d-addf-e5f611cd4fb5.tmp.ico","58395014-97a7-4feb-adbe-98b89e4cb56b.tmp.ico","5892a8ff-bbb7-4ce3-92af-b68cbfb98f47.tmp.ico","59deb84d-7419-4333-8c91-6a5a968001f5.tmp.node","5anucf2t.ntv","5av55lbn.ywj","5b53b65d-01fc-40e1-9221-6760be1772db.tmp","5b724519-77f1-4d56-ac5d-178862907146.tmp.ico","5b808b19-7d76-4a38-b7f3-13ce807669b5.tmp.ico","5bc42647-e9df-420a-a707-78d90b24ce00.tmp.ico","5c6121a7-53d4-4907-95ba-7a44da91004c.tmp.ico","5d6561ca-6ef7-4e0e-b2e1-d07836106725.tmp.node","5ef9d10a-7294-4e00-941d-5a66d2ed421b.tmp.ico","5eo3jlv3.0hy","5i533zax.vbo","5mdut4cy.5zf","5thblplv.ehe","5u4fegmf.3il","610d62c9-309e-46dc-9764-25d7c925031f.tmp.ico","61779385-24a0-4e26-a615-39a16f8ef12d.tmp.ico","621319c6-177a-48c4-896f-a06765298f09.PackageExtraction","628ba9d4-0ab3-4178-8218-11f0350ada12.tmp.ico","630d37ce-3422-487f-a8c9-95fe15f6ce2d.tmp","63f22d12-5e5d-44b7-9432-08ff1845b3f7.tmp","6407acd0-152d-4e18-8a16-ed7242530684.tmp.node","6539f8e5-e12c-4669-9863-9f22cfbc27c5.tmp.node","655a413f-ef57-471e-a7ea-780b180f9644.tmp.ico","65d5f039-3f43-4de4-b8de-4d08011b3ef5.tmp","66714af3-8cba-4d50-b616-0c1ea5aa52ab.tmp.node","69c078be-cd02-4e64-be89-9f10f8770728.tmp","69d02629-1c02-457a-a800-0e7fd6c1d6e6.PackageExtraction","6a8f72d4-7920-42fb-a20f-0a689ec8b1c4.PackageExtraction","6adbb126-4f87-45d5-b86e-4b6e83cb1308.tmp.ico","6b9ebe23-f9d7-491b-a2a7-eae3affeb463.tmp.ico","6bfe3d82-9f45-4df0-8fa7-06338de35943.tmp","6c2108a3-9e10-4aec-ace7-32785f07cc27.tmp.node","6cad97e6-afdb-4928-b3f2-807e3fcfd4a3.tmp.node","6d9c7d63-6990-4c4d-adec-750d91da2cb6.tmp","6d9d2a2a-9567-4889-bd6d-23d50469cd47.tmp","6E2925E13D947B1445D5AD46645D4692379CD17EE0A88B27954B88EF29D9FE0091784DD5AF716EE4A9017608C930F24AEC6D6604959F5ED9EA2022384DE8AE4BD2F31B93AD8D82CE66%2F0_6393612f_5480002d.tmp","6e7963b4-f491-4b08-bbd9-c7a32d8b4a84.tmp","6e99ac4e-44e2-4098-a64e-a1d50c415560.tmp.ico","6fd9d851-f4f9-4e39-b16c-c24328f94ddf.tmp","70f8dbb4-ffa1-4453-ba44-ce625bdd0e51.tmp.node","744d40e5-6b75-4c7f-acff-5d6b86d37694.tmp.ico","74830b71-acc1-4cfb-bd96-07794250dfb6.tmp.ico","7535a437-757b-4a45-91c4-3af011ac33bf.tmp.node","75639ec7-a79a-40f2-aad8-4a90dc2867c8","75a2f184-6f2f-49a0-82f4-d453980c6467.tmp.node","76c6b82b-93d4-4ddf-9562-bef69ba976b0.tmp.ico","771e6906-5a6b-4549-a62c-27265c8ef153.tmp.ico","77f879b8-01c7-4c5e-bd22-a23df1e94a6f.tmp","786963A2-0851-41EE-8782-E951F636164F.vhdx","792f3e6a-8e77-409b-916f-38d1cb64db20.tmp.ico","793b35eb-eba0-4ca3-a315-b0d0f1870b77.tmp.node","7a937943-44d5-4348-b8b2-bc72c227f5ff.tmp.ico","7C270CE496A491839C5DE66184588F8D7AFCE375690A450342FBF55D8D4A4C1B2A4EE95EE5B9B22D7D9DC7C4720D0AE8ACED2FE4B1BBD13CE4C195156D9F0900900E8F39B50AEC3C12%2F0_63871f0a_d293006c.tmp","7c3c7f1c-5abe-4257-873c-0a1c1ab832fc.tmp","7da2b129-72ff-4f40-8f70-aaae32a526fa.tmp.ico","7dc995e4-5400-4fcd-aeb8-2399c665c621.tmp.node","7dcd7ed2-e7d3-496c-8704-7b3ccada9a05.tmp.node","7E4E017D-BC1F-422A-9D13-B6C9BB6BFE0F","7E4E017D-BC1F-422A-9D13-B6C9BB6BFE0F.scratch","7ee73e84-f224-4ba7-8d65-8d82434c4c56.tmp.node","7f25a293-5f0d-4946-b2d4-c02dd3417cdf.tmp","7F6F7E9D7A0347939BCD991BD140F445","7f757368-b543-4bf0-84e2-dee788b467e6.tmp.node","7feca934-4ad1-4604-93ee-aecd7605cd96.tmp.node","80803c65-796d-4b9d-af33-7e4086a917ae.tmp","810fb07e-00a7-40d3-aa03-5536b956cfac.tmp.node","8150c469-1e71-43df-af86-6c2e0d2b9de7.tmp","81823dcf-e9a8-4e31-875d-50dc4082b0ae.PackageExtraction","8275d3a4-71a1-463d-a255-6df98c0ab9b2.tmp.node","84e36dd1-5823-4b4d-9958-c269a077e3d5.PackageExtraction","859f0736-eb36-400a-a05b-b288ad96cba7.tmp.ico","86aab7aa-c030-4497-af4d-a4826c3cfc85.tmp.node","8705FD0.tmp","8707731.tmp","8760c1ab-a6bb-41de-87ba-8df3ef1b0198.tmp.ico","87838d75-340d-498d-92ca-06fc3f4d0126.tmp.ico","8883BCE.tmp","8885E4B.tmp","88902d9b-cb30-413c-a33a-22a6b50a45bf.PackageExtraction","892a607d-ea10-4bdb-add2-841ba4804180.tmp.node","897FC7F7C0E1C0516650D4A47EFD228B6C4157DDE4656DFFAC8B0CA24B021FCA7B705B8013824806D50D05426CD9DB8F5C7E97648A6AAD3E8EE36BB39458F43F38677A3BF6BF67ADF6%2F0_638eb0f3_e48e00d4.tmp","89ec5171-a132-4429-8e77-b00b878dfe75.tmp.ico","8a8d0260-2f78-442b-baf7-d1c6f7861d04.tmp","8b1a4c64-226e-473c-a995-95db5aef779e.tmp.ico","8D721453-E5D7-4274-A932-54DADE710CB5","8D721453-E5D7-4274-A932-54DADE710CB5.scratch","8ea73cab-046b-49d5-a6ce-0ec53a631dc5.tmp","8ebd292f-ceed-4f26-8ea8-e40e4ba43b19.tmp","8ec6926b-8b6f-493c-aba9-ea3f92ec1740.tmp.ico","8f9ee5e5-b864-47a8-829d-2fe1ebf5182b.tmp.node","902751e9-3764-4ca6-86b6-23320de9c97c.tmp.node","90f597db-4370-43aa-a971-5297f741879e.tmp.ico","95a36606-e0f1-49d7-b1ba-47dc135ba96b.tmp.ico","960f54a9-b45c-436c-a556-7b90e1c00dea.tmp","983c1130-e31e-485d-ae01-8dd681120493.tmp.node","989b805f-d771-4975-a255-8805f007da10.tmp","98a830a7-bb22-4f1d-b3f0-6ae953a10b49.tmp.node","99cbb907-dc14-44e2-b39c-219d65c55384.tmp.ico","9aa932ed-c46c-478f-bdc0-fd51cc009ef5.tmp.ico","9bc20886-4bf3-4a84-af0b-1215d89f1be5.tmp.node","9e4b29b3-3218-4550-8aa4-cc303761b243.tmp.ico","a06577bc-e418-43d0-9e3c-ad9c243a8f9e.tmp.node","a0abbb0f-7180-4d69-b661-665a3e727119.tmp.ico","a0e8e465-3905-4c4e-8549-ffb37fcb0f03.tmp.ico","a10auyks.tso","a13cc053-7b95-414e-9d0f-addc01ce410a.tmp.node","a2228f25-acf5-4c2a-a4e0-61c88eb20c2e.tmp","A37005681B77786CFBFAD8B34BB0CAC19AE006C80E670D1EB630A4BCEEE70849D2C997E348C77505646D1C02A6A7FC54B7208DD18D26977C431935C2FFE04B348E35CB7B976E1F2E56%2F0_6386320a_495f0022.tmp","a3e35ckr.s3k","a42nyib4.3wg","a4wjsa45.df4","a503d250-c99f-49be-b69f-97d5d88738f1.PackageExtraction","a7e5224d-9f12-4e0c-a566-cff149086911.tmp","a9b0046a-c8b7-4ec5-9f45-0787db1a5055.tmp","ab0mu1l3.f4l","ABBEA83E9B9992EF6699B51D80455568123D133235785CA5F27FF821B6BFF87572900BC2D5D6439FA7A7A93D69B8B58B31E993B1E933F4C4DA77F48C1A49E6F1124870038D2EA50620%2F0_6386320a_010200b0.tmp","abda5029-c65e-437e-afa2-ab731bbd91df.tmp","ad0a20b9-a3cd-46d5-b4a6-2a6f6990fc22.tmp","adaeae7f-7d73-4a00-b784-d4d5d4700bfb.tmp.ico","adb.log","aDriveSetup","ae065599-00bd-4b27-915e-be204966dea4.tmp.node","ae6a2ecf-7182-4399-8e38-cdf7fc8b5482.tmp.node","aecb6866-7d0b-4231-b1ed-466a32f0c9fc.PackageExtraction","af1enbtn.r2p","affa2d83-7eec-4c93-a6b6-bc1471a81b45.tmp.node","Affinity","ajtg2yh4.epj","AndroidEmulator","anhypggp.qgy","anpz04s3.f4d","AOMEILogs","apfywqcr.fej","appInsights-node3fdd7f28-937a-48c8-9a21-ba337db23bd1","appInsights-node7d7048df-6dd0-4048-bb23-b716c1461f8f","appInsights-nodeAIF-444c3af9-8e69-4462-ab49-4191e6ad1916","appInsights-nodeAIF-d9b70cd4-b9f9-4d70-929b-a071c400b217","Aseprite","atukacay.vxu","avd","az0krrfv.umg","b014df50-9521-4830-9286-8908027a1aeb.tmp.ico","b06c43c7-4d15-4cc2-ab60-8d737c6ae496.tmp","b06d8ed7-8b76-4de8-8fba-219876838bf0.tmp","b19d7dfb-e98e-41c4-abc2-51007fe1d796.tmp","b1f922a5-03d9-44d7-b9e1-c9fb9c2c8cb0.tmp.node","b25cbc4f-fd35-447c-ba40-9897fe0bc409.tmp.ico","b2f9d40c-3437-4e3e-bcaf-23a494ae769f.tmp.ico","b3bc5278-b5b1-48e0-8255-46dbcc00216e.tmp.node","b4279d50-8fd7-41a0-98a3-71fe24104700.tmp.ico","b434062f-7c65-4293-8c1e-8240a40878fd.tmp.node","b443365b-1819-48b5-9c37-bbb5b3bc8520.tmp","b4445b7b-9e89-4484-9b38-e072b56e497c.tmp.node","b4b59e79-6b06-40f1-94b5-3335f6887064.tmp","b4ca641d-baa3-4749-b8fd-4a5796dfa645.tmp","b4d1b1b9-1e04-4bc1-a71b-936d5a533a1f.tmp.node","b565f3a9-9d28-4408-8962-1a4ca1563b89.tmp.ico","b61b1f84-6c09-4aab-9827-6cedb04fea87.tmp","b64fc5b7-e582-482e-becd-0dc0f821d2e5.tmp.ico","b6ffe00a-1b36-4150-a094-e5a2ff18607a.tmp.ico","b7a0614a-3d62-4d62-8117-9077af2bbe35.tmp.ico","b885ac8b-1ba8-4e58-a7a3-8b3666de8de3.tmp.node","b90f9462-ffe9-48b8-a105-61d77a2955ee.tmp","b94bcf47-67fd-40c4-a783-316420de7bb6.tmp","b9843c75-084f-429d-9f6d-eafbac63bfd2.tmp.ico","ba75d647-00f3-487c-bcc0-590f0108e419.tmp","ba9f9cfe-1417-40db-8201-901d218abaa9.tmp","baidu","baiduyunguanjia","bany5yss.41j","bas5n15t.m31","BB54B001490A4586AB9C0A29596A0634","bbekoa0s.jdq","bbgivoac.hjv","bca2cbd0-92f7-40bf-bb68-80816b1143da.tmp","bca4af97-2487-48e4-8a6a-279d7b70a67c.PackageExtraction","bd32b55c-2eec-4507-894d-56e1da3f9112.tmp","be0383f4-1b5c-421b-bd96-c395a05dce9e.tmp","bee3b0b8-9281-4465-bd92-4181f49e3a8f.tmp.node","BililiveUD","BIT367D.tmp","bln13yzt.mll","blodwf3f.iuh","bopl45r0.kxi","bpxjhdld.zgm","bspdxql4.zaq","btrm32la.sgc","bug19d71fdc","bug1cb45484","bug2e9c450d","bug54ff5b09","bug9361788c","bugc7c5d1e2","bugd88e0800","bwhgzgj3.by2","bx550rvx.kmp","bxfnzynk.rdu","c0188c36-3282-46e5-814b-1b5ef7f92eb3.tmp.node","c0b2df06-d950-47de-b965-0e6d6d6164cb.tmp.ico","c1surght.q5r","c30bf555-e643-4dbe-9c65-d3cc90928f72.tmp.node","c4239107-a4fb-4557-9bda-0c0f08262e73.tmp.node","c509a5c0-e0f8-4c38-b3d9-8f18fb8bc900.tmp.node","c59e410d-2158-4420-b2ef-add8a1961046.tmp.node","c5e09d96678a4af4922ba38ff8ac1dc2","c5nvkgcc.eux","c6045c4e-4584-4cea-b9c3-14ce929511a9.tmp.node","c61437c1-bebb-465e-80d3-dc29426f932a.tmp.node","c66d46af-508c-4391-83ba-6e9035bfafa6.tmp.ico","C67BBCFB89AB1C5020FFD66D78DB32BE496ABF05E170D59C50DEEBA1FDFDDEF73BC28AF6FB617963F4B70AF5E6F67E97AFA89F81A399B33B808A9EAF677606E6CE6AEB4F9D0AF2B49B%2F0_638e7301_60ca0097.tmp","c6b5e03d-5e2c-43fa-9017-9e009c316c4d.tmp.node","c7174825-1082-4a08-838a-c2e56486c131.tmp.ico","c78c6aae-9a7c-4bb9-b6db-5e7910e96b0d.tmp.node","c86c420b-3de9-4242-a6d0-7163bf8cb115.tmp.node","c875212cbf844ea089a9d35908d34b9e","c8941000-9c54-4a15-a44a-a622c12628ed.tmp","ca5l0fjw.moq","cb4ef7b8-64d7-4f10-a549-389609086ca1.tmp","CB832F5.tmp","CB873A9.tmp","cc0ddbed-03f2-4259-9154-c2ba76895e27.tmp.ico","ccf58ae2-b501-4f47-ae75-9c8a62ce77a9.tmp.node","cd914c16-8a8d-4ab4-b94a-3b445cd52606.PackageExtraction","cdyhtb5b.4sa","ce2xqmet.cvy","ce8701f6-57e1-403d-bd36-c6fbd2776610.tmp.ico","cf3b047b-8fa5-4f59-8f05-fdf82b266aa6.tmp.node","cff607a3-c582-4d76-94be-0db2e5a96e0c.tmp.node","cfw-parser.log","chrome_drag11612_1445417060","chrome_drag11704_1738030276","chrome_drag12920_2019180618","chrome_drag12920_385663534","chrome_drag13332_579182106","chrome_drag13572_753692817","chrome_drag14472_343407495","chrome_drag14924_1401805367","chrome_drag14948_2040092888","chrome_drag15188_1521670382","chrome_drag15784_15211047","chrome_drag15784_702411730","chrome_drag16604_611470548","chrome_drag17256_402125367","chrome_drag1760_2044519442","chrome_drag18716_1670830408","chrome_drag18716_289958692","chrome_drag18716_439487119","chrome_drag18716_813873644","chrome_drag19020_1848760758","chrome_drag19768_1229488525","chrome_drag20548_1124885096","chrome_drag20548_1276160148","chrome_drag20548_135910437","chrome_drag20548_1535424801","chrome_drag20548_1755701236","chrome_drag20548_1798817388","chrome_drag20548_208949249","chrome_drag20548_251365853","chrome_drag20548_424871972","chrome_drag20548_8054677","chrome_drag20900_1358354903","chrome_drag20916_1971138520","chrome_drag21896_122073175","chrome_drag21896_628386082","chrome_drag21896_637819559","chrome_drag21896_780585449","chrome_drag26060_1691083505","chrome_drag26092_1817495198","chrome_drag26148_114367457","chrome_drag26148_1409737251","chrome_drag26148_1650247372","chrome_drag26148_1672385660","chrome_drag26148_1924784068","chrome_drag26148_2065251245","chrome_drag26148_733864656","chrome_drag26148_746904256","chrome_drag2920_400055115","chrome_drag3020_1950474356","chrome_drag3020_891085595","chrome_drag30364_1548282302","chrome_drag3828_1241822223","chrome_drag3836_1020846108","chrome_drag4264_1276711263","chrome_drag4544_144902959","chrome_drag4544_730957803","chrome_drag5868_1586817054","chrome_drag6088_1906753582","chrome_drag6088_354791952","chrome_drag6240_1806094645","chrome_drag6268_1143904048","chrome_drag6268_1525931869","chrome_drag672_287270687","chrome_drag672_739974319","chrome_drag6940_1367518780","chrome_drag6940_633878839","chrome_drag6940_843035764","chrome_drag8304_598220297","chrome_drag9204_1267819600","chrome_drag9204_1608185190","chrome_drag9204_635739133","chrome_drag9564_718756029","chrome_installer.log","ciznc3sp.kqz","cjgl5i3o.aup","CodeAnalysis","conda-12104","conda-19283","conda-19744","conda-20257","conda-20757","conda-29471","conda-3317","conda-3795","conda-7046","conda-8520","core-js-banners","cp2f244a.yb5","crsuv0nv.mhl","ctimmsof.3hb","cu10hhyj.3gd","cvl2ye52.b5p","cv_debug.log","cwcozwiw.zss","d0ad10e5-97f7-4895-ae09-18e583689262.tmp.ico","d192360d-8445-4235-8046-60e3ad05d74d.tmp.node","d1sbzow3.gmm","d30a6dbb-f834-4984-b31b-3d40a5c5b62f.tmp.node","d364221e-f33d-476b-9089-2904eb9b3b14.PackageExtraction","d3bba70a-8290-484e-9b36-064239d9939c.tmp.ico","d3cd29a0-28db-43dc-9a2e-d498b88ff8c8.tmp.ico","d5rd43cz.bak","d7621e17-ef4b-419a-a6b8-204675ac551a.tmp.ico","d7629ed6-d126-42d9-aa22-8e1f005fa045.tmp.node","d76aacbd-bdb9-4c44-b816-7fb6d4c5c5d3.PackageExtraction","dab87064-bd09-4018-9129-677acd433902.tmp.node","dada9cc8-5db2-4816-95ff-9b000999c1aa.tmp.ico","dao05g1k.1b5","dart-code-startup-log-10b5.txt","dart-code-startup-log-10fb.txt","dart-code-startup-log-13cf.txt","dart-code-startup-log-14b6.txt","dart-code-startup-log-14fb.txt","dart-code-startup-log-157d.txt","dart-code-startup-log-1823.txt","dart-code-startup-log-1bc1.txt","dart-code-startup-log-1cb1.txt","dart-code-startup-log-1f80.txt","dart-code-startup-log-1fbd.txt","dart-code-startup-log-23f7.txt","dart-code-startup-log-24cd.txt","dart-code-startup-log-2671.txt","dart-code-startup-log-274a.txt","dart-code-startup-log-283f.txt","dart-code-startup-log-28b7.txt","dart-code-startup-log-290a.txt","dart-code-startup-log-298b.txt","dart-code-startup-log-2ba0.txt","dart-code-startup-log-2e30.txt","dart-code-startup-log-2e7a.txt","dart-code-startup-log-31fd.txt","dart-code-startup-log-326a.txt","dart-code-startup-log-32e1.txt","dart-code-startup-log-3bfa.txt","dart-code-startup-log-3cdd.txt","dart-code-startup-log-3d69.txt","dart-code-startup-log-3dba.txt","dart-code-startup-log-40af.txt","dart-code-startup-log-4342.txt","dart-code-startup-log-459f.txt","dart-code-startup-log-48aa.txt","dart-code-startup-log-48bb.txt","dart-code-startup-log-48d0.txt","dart-code-startup-log-4925.txt","dart-code-startup-log-4af2.txt","dart-code-startup-log-4bcf.txt","dart-code-startup-log-4ca2.txt","dart-code-startup-log-4ce6.txt","dart-code-startup-log-4cf5.txt","dart-code-startup-log-4d05.txt","dart-code-startup-log-500e.txt","dart-code-startup-log-51b4.txt","dart-code-startup-log-5487.txt","dart-code-startup-log-5765.txt","dart-code-startup-log-57e6.txt","dart-code-startup-log-592b.txt","dart-code-startup-log-5e3d.txt","dart-code-startup-log-5f7c.txt","dart-code-startup-log-60c6.txt","dart-code-startup-log-618d.txt","dart-code-startup-log-6192.txt","dart-code-startup-log-61a1.txt","dart-code-startup-log-62de.txt","dart-code-startup-log-656a.txt","dart-code-startup-log-660d.txt","dart-code-startup-log-675b.txt","dart-code-startup-log-67b0.txt","dart-code-startup-log-6cb8.txt","dart-code-startup-log-6e19.txt","dart-code-startup-log-6eb3.txt","dart-code-startup-log-6ec4.txt","dart-code-startup-log-6fd4.txt","dart-code-startup-log-70d0.txt","dart-code-startup-log-71a2.txt","dart-code-startup-log-7570.txt","dart-code-startup-log-7618.txt","dart-code-startup-log-7971.txt","dart-code-startup-log-797f.txt","dart-code-startup-log-7992.txt","dart-code-startup-log-7b44.txt","dart-code-startup-log-7c12.txt","dart-code-startup-log-7cb7.txt","dart-code-startup-log-8051.txt","dart-code-startup-log-80df.txt","dart-code-startup-log-82f5.txt","dart-code-startup-log-8648.txt","dart-code-startup-log-8715.txt","dart-code-startup-log-9013.txt","dart-code-startup-log-95e9.txt","dart-code-startup-log-9628.txt","dart-code-startup-log-962a.txt","dart-code-startup-log-9635.txt","dart-code-startup-log-96c0.txt","dart-code-startup-log-9915.txt","dart-code-startup-log-9966.txt","dart-code-startup-log-9a18.txt","dart-code-startup-log-9ac4.txt","dart-code-startup-log-9d7b.txt","dart-code-startup-log-a06b.txt","dart-code-startup-log-a09e.txt","dart-code-startup-log-a857.txt","dart-code-startup-log-a873.txt","dart-code-startup-log-a8c9.txt","dart-code-startup-log-a8cc.txt","dart-code-startup-log-a99b.txt","dart-code-startup-log-aa8a.txt","dart-code-startup-log-ae36.txt","dart-code-startup-log-aeaa.txt","dart-code-startup-log-b687.txt","dart-code-startup-log-b71a.txt","dart-code-startup-log-babb.txt","dart-code-startup-log-bafc.txt","dart-code-startup-log-bd5e.txt","dart-code-startup-log-bdd9.txt","dart-code-startup-log-be03.txt","dart-code-startup-log-beb7.txt","dart-code-startup-log-c19c.txt","dart-code-startup-log-c664.txt","dart-code-startup-log-c783.txt","dart-code-startup-log-c887.txt","dart-code-startup-log-cb2b.txt","dart-code-startup-log-cc19.txt","dart-code-startup-log-cc36.txt","dart-code-startup-log-cd3f.txt","dart-code-startup-log-d15a.txt","dart-code-startup-log-d2d3.txt","dart-code-startup-log-d4bb.txt","dart-code-startup-log-d614.txt","dart-code-startup-log-d74c.txt","dart-code-startup-log-da50.txt","dart-code-startup-log-da7c.txt","dart-code-startup-log-db93.txt","dart-code-startup-log-de0d.txt","dart-code-startup-log-dfd1.txt","dart-code-startup-log-e0de.txt","dart-code-startup-log-e12b.txt","dart-code-startup-log-e142.txt","dart-code-startup-log-e373.txt","dart-code-startup-log-e553.txt","dart-code-startup-log-e591.txt","dart-code-startup-log-e75d.txt","dart-code-startup-log-e7fa.txt","dart-code-startup-log-e8fd.txt","dart-code-startup-log-ee33.txt","dart-code-startup-log-f134.txt","dart-code-startup-log-f2b6.txt","dart-code-startup-log-f4a4.txt","dart-code-startup-log-f4ab.txt","dart-code-startup-log-f8fe.txt","dart-code-startup-log-fa82.txt","dart-code-startup-log-fab1.txt","dart-code-startup-log-fb23.txt","dart-code-startup-log-fba0.txt","dart-code-startup-log-fd2e.txt","dart-code-startup-log-ffb8.txt","dart-vm-service-780a.json","dart-vm-service-81a5.json","dart-vm-service-8bae.json","dart_test.503eddba","dart_test.d012afb0","dart_test.fcfd18c2","dbb8b682-73d7-42eb-b2e5-dc4286e4c187.tmp","dbea9a1f-96d0-4381-ad84-df26267941eb.tmp.ico","dca90c39-6ede-493a-b0b8-81a6c9aef819.tmp.node","dd0dhuqf.525","dd_BackgroundDownload_20221221165209.log","dd_BackgroundDownload_20221221221829.log","dd_BackgroundDownload_20221221223503.log","dd_BackgroundDownload_20221222070210.log","dd_BackgroundDownload_20221222070210_00_setup.log","dd_BackgroundDownload_20221222070210_00_setup_errors.log","dd_BackgroundDownload_20221222070210_result_Success.log","dd_BackgroundDownload_20221222081407.log","dd_BackgroundDownload_20221222094750.log","dd_BackgroundDownload_20221222094750_result_Success.log","dd_installer_20221204184128.log","dd_installer_20221204184154.log","dd_installer_elevated_20221204184133.log","dd_installer_elevated_20221204184154.log","dd_MofCompiler_20221204184419.log","dd_MofCompiler_20221204184424.log","dd_setup_20221204184207.log","dd_setup_20221204184207_000_Microsoft.VisualStudio.Product.Community.log","dd_setup_20221204184207_001_Microsoft.VisualStudio.Setup.Configuration.log","dd_setup_20221204184207_002_Microsoft.VisualCpp.CodeAnalysis.Extensions.X64.log","dd_setup_20221204184207_003_Microsoft.NET.Sdk.tvOS.Manifest-6.0.400.log","dd_setup_20221204184207_004_Microsoft.NET.Sdk.iOS.Manifest-6.0.400.log","dd_setup_20221204184207_005_Microsoft.NET.Sdk.Android.Manifest-6.0.400.log","dd_setup_20221204184207_006_Microsoft.NetCore.Toolset.6.0.400.log","dd_setup_20221204184207_007_Microsoft.NetCore.SharedHost.6.0.0.log","dd_setup_20221204184207_008_Microsoft.NetCore.HostFXR.6.0.8.log","dd_setup_20221204184207_009_Microsoft.NetCore.HostFXR.6.0.8.log","dd_setup_20221204184207_010_Microsoft.WindowsDesktop.TargetingPack.6.0.6.0.8.log","dd_setup_20221204184207_011_Microsoft.WindowsDesktop.TargetingPack.6.0.6.0.8.log","dd_setup_20221204184207_012_Microsoft.WindowsDesktop.SharedFramework.6.0.6.0.8.log","dd_setup_20221204184207_013_Microsoft.NetCore.AppHostPack.6.0.6.0.8.arm64.log","dd_setup_20221204184207_014_Microsoft.NetCore.AppHostPack.6.0.6.0.8.arm.log","dd_setup_20221204184207_015_Microsoft.VisualCpp.CodeAnalysis.Extensions.X86.log","dd_setup_20221204184207_016_Microsoft.WindowsDesktop.SharedFramework.3.1.3.1.28.x86.log","dd_setup_20221204184207_017_Microsoft.WindowsDesktop.SharedFramework.3.1.3.1.28.x64.log","dd_setup_20221204184207_018_Microsoft.VisualStudio.IntelliCode.FindReplaceByExample.log","dd_setup_20221204184207_019_Microsoft.NET.Sdk.macOS.Manifest-6.0.400.log","dd_setup_20221204184207_020_Microsoft.Mono.ToolChain.Manifest-6.0.300.log","dd_setup_20221204184207_021_Microsoft.NET.Sdk.Maui.Manifest-6.0.400.log","dd_setup_20221204184207_022_Microsoft.WindowsDesktop.SharedFramework.6.0.6.0.8.log","dd_setup_20221204184207_023_Microsoft.NetCore.Templates.3.1.6.0.400-rtm.22371.3.log","dd_setup_20221204184207_024_Microsoft.NetCore.Templates.6.0.6.0.400-rtm.22371.3.log","dd_setup_20221204184207_025_Microsoft.NET.Workload.Emscripten.Manifest-6.0.300.log","dd_setup_20221204184207_026_Microsoft.NetCore.SharedFramework.3.1.3.1.28.log","dd_setup_20221204184207_027_Microsoft.NetCore.SharedFramework.3.1.3.1.28.log","dd_setup_20221204184207_028_Microsoft.NetCore.AppHostPack.3.1.3.1.28.x86.log","dd_setup_20221204184207_029_Microsoft.NetCore.AppHostPack.3.1.3.1.28.x64.log","dd_setup_20221204184207_030_Microsoft.NetCore.TargetingPack.6.0.6.0.8.log","dd_setup_20221204184207_031_Microsoft.NetCore.TargetingPack.6.0.6.0.8.log","dd_setup_20221204184207_032_Microsoft.NetCore.AppHostPack.3.1.3.1.28.arm64.log","dd_setup_20221204184207_033_Microsoft.NetCore.SharedFramework.6.0.6.0.8.log","dd_setup_20221204184207_034_Microsoft.NetCore.AppHostPack.3.1.3.1.28.arm.log","dd_setup_20221204184207_035_Microsoft.NetCore.SharedFramework.6.0.6.0.8.log","dd_setup_20221204184207_036_Microsoft.MacCatalyst.Manifest-6.0.400.log","dd_setup_20221204184207_037_Microsoft.NetCore.AppHostPack.6.0.6.0.8.x86.log","dd_setup_20221204184207_038_Microsoft.AspNetCore.SharedFramework.3.1.3.1.28-servicing.22364.2.log","dd_setup_20221204184207_039_Microsoft.NetCore.AppHostPack.6.0.6.0.8.x64.log","dd_setup_20221204184207_040_Microsoft.AspNetCore.SharedFramework.3.1.3.1.28-servicing.22364.2.log","dd_setup_20221204184207_041_Microsoft.AspNetCore.TargetingPack.6.0.6.0.8-servicing.22363.16.log","dd_setup_20221204184207_042_Microsoft.AspNetCore.TargetingPack.6.0.6.0.8-servicing.22363.16.log","dd_setup_20221204184207_043_Microsoft.AspNetCore.SharedFramework.6.0.6.0.8-servicing.22363.16.log","dd_setup_20221204184207_044_Microsoft.AspNetCore.SharedFramework.6.0.6.0.8-servicing.22363.16.log","dd_setup_20221204184207_045_Microsoft.NetCore.SdkPlaceholder.6.0.400-rtm.22371.3.log","dd_setup_20221204184207_046_Microsoft.VisualStudio.LiveShare.VSCore.log","dd_setup_20221204184207_047_Microsoft.VC.14.33.17.3.Tools.HostX64.TargetX86.base.log","dd_setup_20221204184207_048_Microsoft.VC.14.33.17.3.Tools.HostX64.TargetX86.Res.base.log","dd_setup_20221204184207_049_Microsoft.VC.14.33.17.3.Tools.HostX86.TargetX64.base.log","dd_setup_20221204184207_050_Microsoft.VC.14.33.17.3.Tools.Hostx86.Targetx64.Res.base.log","dd_setup_20221204184207_051_Microsoft.VC.14.33.17.3.Tools.HostX64.TargetX64.base.log","dd_setup_20221204184207_052_Microsoft.VC.14.33.17.3.Props.x64.log","dd_setup_20221204184207_053_Microsoft.VC.14.33.17.3.Tools.HostX64.TargetX64.Res.base.log","dd_setup_20221204184207_054_Microsoft.VC.14.33.17.3.Tools.HostX86.TargetX86.base.log","dd_setup_20221204184207_055_Microsoft.VC.14.33.17.3.Props.x86.log","dd_setup_20221204184207_056_Microsoft.VC.14.33.17.3.Tools.HostX86.TargetX86.Res.base.log","dd_setup_20221204184207_057_Microsoft.VC.14.33.17.3.Servicing.Compilers.log","dd_setup_20221204184207_058_Microsoft.VC.14.33.17.3.Props.log","dd_setup_20221204184207_059_Microsoft.VC.14.33.17.3.Servicing.log","dd_setup_20221204184207_060_Microsoft.VisualStudio.Embedded.log","dd_setup_20221204184207_061_Microsoft.VisualStudio.Embedded.Resources.log","dd_setup_20221204184207_062_Microsoft.VisualStudio.VC.Ide.Linux.CMake.log","dd_setup_20221204184207_063_Microsoft.VisualStudio.VC.Ide.Linux.CMake.Resources.log","dd_setup_20221204184207_064_Microsoft.VisualStudio.VC.Ide.Linux.log","dd_setup_20221204184207_065_Microsoft.VisualStudio.VC.Ide.Linux.Resources.log","dd_setup_20221204184207_066_SyntaxTree.VisualStudio.Unity.Vsix.log","dd_setup_20221204184207_067_SyntaxTree.VisualStudio.Unity.Vsix.Resources.log","dd_setup_20221204184207_068_Microsoft.VisualCpp.ASAN.X86.log","dd_setup_20221204184207_069_Microsoft.VisualStudio.VC.IDE.Project.Factories.log","dd_setup_20221204184207_070_Microsoft.VisualStudio.VC.CMake.log","dd_setup_20221204184207_071_Microsoft.VisualStudio.VC.CMake.Project.log","dd_setup_20221204184207_072_Microsoft.VisualStudio.VC.CMake.Client.log","dd_setup_20221204184207_073_Microsoft.VisualStudio.VC.CMake.Client.Resources.log","dd_setup_20221204184207_074_Microsoft.VisualStudio.VC.CMake.Project.Resources.log","dd_setup_20221204184207_075_Microsoft.VisualStudio.VC.ExternalBuildFramework.log","dd_setup_20221204184207_076_Microsoft.VisualStudio.VC.ExternalBuildFramework.Resources.log","dd_setup_20221204184207_077_Microsoft.VisualStudio.VC.Templates.UnitTest.log","dd_setup_20221204184207_078_Microsoft.VisualStudio.VC.UnitTest.Desktop.Build.Core.log","dd_setup_20221204184207_079_Microsoft.VisualStudio.TestTools.TestPlatform.V1.CPP.log","dd_setup_20221204184207_080_Microsoft.VisualStudio.TestTools.TP.V1.CPP.Resources.log","dd_setup_20221204184207_081_Microsoft.VisualStudio.VC.Templates.UnitTest.Resources.log","dd_setup_20221204184207_082_Microsoft.VisualStudio.VC.Templates.Desktop.log","dd_setup_20221204184207_083_Microsoft.VisualStudio.VC.Ide.ATL.log","dd_setup_20221204184207_084_Microsoft.VisualStudio.VC.Ide.ATL.Resources.log","dd_setup_20221204184207_085_Microsoft.VisualCpp.ATL.X86.log","dd_setup_20221204184207_086_Microsoft.VisualCpp.ATL.X64.log","dd_setup_20221204184207_087_Microsoft.VisualCpp.ATL.Source.log","dd_setup_20221204184207_088_Microsoft.VisualCpp.ATL.Headers.log","dd_setup_20221204184207_089_Microsoft.VisualStudio.Templates.VB.Wpf.log","dd_setup_20221204184207_090_Microsoft.VisualStudio.Templates.VB.Wpf.Resources.log","dd_setup_20221204184207_091_Microsoft.VisualStudio.Templates.VB.Winforms.log","dd_setup_20221204184207_092_Microsoft.VisualStudio.Templates.CS.Wpf.log","dd_setup_20221204184207_093_Microsoft.VisualStudio.Templates.CS.Wpf.Resources.log","dd_setup_20221204184207_094_Microsoft.VisualStudio.Templates.CS.Winforms.log","dd_setup_20221204184207_095_Microsoft.VisualCpp.CodeAnalysis.Extensions.log","dd_setup_20221204184207_096_Microsoft.VisualCpp.Tools.HostX64.TargetX86.log","dd_setup_20221204184207_097_Microsoft.VisualCpp.Tools.HostX64.TargetX64.log","dd_setup_20221204184207_098_Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX64.log","dd_setup_20221204184207_099_Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86.log","dd_setup_20221204184207_1000_Microsoft.DiagnosticsHub.CpuSampling.log","dd_setup_20221204184207_1001_Microsoft.DiagnosticsHub.IceCap.Instrumentation.Resources.log","dd_setup_20221204184207_1002_Microsoft.DiagnosticsHub.IceCap.Instrumentation.log","dd_setup_20221204184207_1003_Microsoft.DiagnosticsHub.Instrumentation.Resources.log","dd_setup_20221204184207_1004_Microsoft.DiagnosticsHub.Instrumentation.Targeted.log","dd_setup_20221204184207_1005_Microsoft.DiagnosticsHub.Instrumentation.log","dd_setup_20221204184207_1006_Microsoft.DiagnosticsHub.DotNetObjectAlloc.Resources.log","dd_setup_20221204184207_1007_Microsoft.DiagnosticsHub.DotNetObjectAlloc.Targeted.log","dd_setup_20221204184207_1008_Microsoft.DiagnosticsHub.DotNetObjectAlloc.log","dd_setup_20221204184207_1009_Microsoft.DiagnosticsHub.DatabaseTool.Resources.log","dd_setup_20221204184207_100_Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86.log","dd_setup_20221204184207_1010_Microsoft.DiagnosticsHub.DatabaseTool.Targeted.log","dd_setup_20221204184207_1011_Microsoft.DiagnosticsHub.DatabaseTool.log","dd_setup_20221204184207_1012_Microsoft.DiagnosticsHub.FileIOTool.Resources.log","dd_setup_20221204184207_1013_Microsoft.DiagnosticsHub.FileIOTool.Targeted.log","dd_setup_20221204184207_1014_Microsoft.DiagnosticsHub.FileIOTool.log","dd_setup_20221204184207_1015_Microsoft.Icecap.Collection.Msi.Resources.Targeted.log","dd_setup_20221204184207_1016_Microsoft.Icecap.Collection.Msi.Resources.log","dd_setup_20221204184207_1017_Microsoft.Icecap.Collection.Msi.Targeted.log","dd_setup_20221204184207_1018_Microsoft.Icecap.Collection.Msi.log","dd_setup_20221204184207_1019_Microsoft.Icecap.Analysis.Resources.Targeted.log","dd_setup_20221204184207_101_Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64.log","dd_setup_20221204184207_1020_Microsoft.Icecap.Analysis.Resources.log","dd_setup_20221204184207_1021_Microsoft.Icecap.Analysis.Targeted.log","dd_setup_20221204184207_1022_Microsoft.Icecap.Analysis.log","dd_setup_20221204184207_1023_Microsoft.DiagnosticsHub.EventsViewerTool.Resources.log","dd_setup_20221204184207_1024_Microsoft.DiagnosticsHub.EventsViewerTool.Targeted.log","dd_setup_20221204184207_1025_Microsoft.DiagnosticsHub.EventsViewerTool.log","dd_setup_20221204184207_1026_Microsoft.DiagnosticsHub.DotNetAsync.Resources.log","dd_setup_20221204184207_1027_Microsoft.DiagnosticsHub.DotNetAsync.Targeted.log","dd_setup_20221204184207_1028_Microsoft.DiagnosticsHub.DotNetAsync.log","dd_setup_20221204184207_1029_Microsoft.DiagnosticsHub.DotNetCountersTool.Resources.log","dd_setup_20221204184207_102_Microsoft.VisualCpp.PGO.X86.log","dd_setup_20221204184207_1030_Microsoft.DiagnosticsHub.DotNetCountersTool.Targeted.log","dd_setup_20221204184207_1031_Microsoft.DiagnosticsHub.DotNetCountersTool.log","dd_setup_20221204184207_1032_Microsoft.VisualStudio.EntityFrameworkTools.Msi.log","dd_setup_20221204184207_1033_Microsoft.VisualStudio.EntityFrameworkTools.log","dd_setup_20221204184207_1034_Microsoft.VisualStudio.LiveShare.2022.log","dd_setup_20221204184207_1035_Microsoft.VisualStudio.Debugger.JustInTime.log","dd_setup_20221204184207_1036_Microsoft.VisualStudio.IntelliCode.log","dd_setup_20221204184207_1037_Microsoft.VisualStudio.IntelliCode.CSharp.log","dd_setup_20221204184207_1038_CPython39.Exe.x64.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_000_core_AllUsers.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_001_core_AllUsers_pdb.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_002_dev_AllUsers.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_003_exe_AllUsers.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_004_exe_AllUsers_pdb.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_005_lib_AllUsers.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_006_lib_AllUsers_pdb.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_007_test_AllUsers.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_008_test_AllUsers_pdb.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_009_doc_AllUsers.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_010_tools_AllUsers.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_011_tcltk_AllUsers.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_012_tcltk_AllUsers_pdb.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_013_launcher_AllUsers.log","dd_setup_20221204184207_1038_CPython39.Exe.x64_014_pip_AllUsers.log","dd_setup_20221204184207_1039_Microsoft.VisualStudio.VC.Items.Pro.log","dd_setup_20221204184207_103_Microsoft.VisualCpp.PGO.X64.log","dd_setup_20221204184207_1040_Microsoft.VisualStudio.VC.Templates.General.Resources.log","dd_setup_20221204184207_1041_Microsoft.VisualStudio.VC.Templates.General.log","dd_setup_20221204184207_1042_Microsoft.VisualStudio.VC.Ide.Pro.Resources.log","dd_setup_20221204184207_1043_Microsoft.VisualStudio.VC.Ide.Pro.log","dd_setup_20221204184207_1044_Microsoft.VisualStudio.Graphics.Appid.Resources.log","dd_setup_20221204184207_1045_Microsoft.VisualStudio.Graphics.Appid.log","dd_setup_20221204184207_1046_Microsoft.VisualStudio.Graphics.Analyzer.Resources.log","dd_setup_20221204184207_1047_Microsoft.VisualStudio.Graphics.Analyzer.Targeted.log","dd_setup_20221204184207_1048_Microsoft.VisualStudio.Graphics.Analyzer.log","dd_setup_20221204184207_1049_Microsoft.VisualStudio.Graphics.Msi.log","dd_setup_20221204184207_104_Microsoft.VisualCpp.PGO.Headers.log","dd_setup_20221204184207_1050_Microsoft.VisualStudio.Graphics.Msi.log","dd_setup_20221204184207_1051_Microsoft.VisualStudio.Graphics.Viewers.Resources.log","dd_setup_20221204184207_1052_Microsoft.VisualStudio.Graphics.Viewers.log","dd_setup_20221204184207_1053_Microsoft.VC.14.34.17.4.Servicing.log","dd_setup_20221204184207_1054_Microsoft.VC.14.34.17.4.Servicing.CrtHeaders.log","dd_setup_20221204184207_1055_Microsoft.VC.14.34.17.4.CRT.Headers.base.log","dd_setup_20221204184207_1056_Microsoft.VisualCpp.CRT.Headers.log","dd_setup_20221204184207_1057_Microsoft.VisualCpp.Redist.14.Latest.log","dd_setup_20221204184207_1057_Microsoft.VisualCpp.Redist.14.Latest_000_vcRuntimeMinimum_x86.log","dd_setup_20221204184207_1057_Microsoft.VisualCpp.Redist.14.Latest_001_vcRuntimeAdditional_x86.log","dd_setup_20221204184207_1058_Microsoft.VisualCpp.Redist.14.Latest.log","dd_setup_20221204184207_1058_Microsoft.VisualCpp.Redist.14.Latest_000_vcRuntimeMinimum_x64.log","dd_setup_20221204184207_1058_Microsoft.VisualCpp.Redist.14.Latest_001_vcRuntimeAdditional_x64.log","dd_setup_20221204184207_1059_Microsoft.VisualCpp.RuntimeDebug.14.log","dd_setup_20221204184207_105_Microsoft.VisualCpp.CRT.x86.Store.log","dd_setup_20221204184207_1060_Microsoft.VisualCpp.RuntimeDebug.14.log","dd_setup_20221204184207_1061_Microsoft.VC.14.34.17.4.CRT.Redist.X64.base.log","dd_setup_20221204184207_1062_Microsoft.VisualCpp.CRT.Redist.Resources.log","dd_setup_20221204184207_1063_Microsoft.VisualCpp.CRT.Redist.X64.log","dd_setup_20221204184207_1064_Microsoft.VC.14.34.17.4.CRT.Redist.X86.base.log","dd_setup_20221204184207_1065_Microsoft.VisualCpp.CRT.Redist.X86.log","dd_setup_20221204184207_1066_Microsoft.VC.14.34.17.4.CRT.Source.base.log","dd_setup_20221204184207_1067_Microsoft.VisualCpp.CRT.Source.log","dd_setup_20221204184207_1068_Microsoft.VC.14.34.17.4.CRT.x64.Desktop.base.log","dd_setup_20221204184207_1069_Microsoft.VisualCpp.CRT.x64.Desktop.log","dd_setup_20221204184207_106_Microsoft.VisualCpp.CRT.x86.OneCore.Desktop.log","dd_setup_20221204184207_1070_Microsoft.VC.14.34.17.4.CRT.x86.Desktop.base.log","dd_setup_20221204184207_1071_Microsoft.VisualCpp.CRT.x86.Desktop.log","dd_setup_20221204184207_1072_Microsoft.VisualCpp.Servicing.DIASDK.log","dd_setup_20221204184207_1073_Microsoft.VisualCpp.DIA.SDK.log","dd_setup_20221204184207_1074_Microsoft.VC.14.34.17.4.Tools.Core.Props.log","dd_setup_20221204184207_1075_Microsoft.VisualCpp.Tools.Core.x86.log","dd_setup_20221204184207_1076_Microsoft.VisualCpp.Tools.Core.Resources.log","dd_setup_20221204184207_1077_Microsoft.VC.14.34.17.4.Tools.HostX86.TargetX86.Res.base.log","dd_setup_20221204184207_1078_Microsoft.VC.14.34.17.4.Props.log","dd_setup_20221204184207_1079_Microsoft.VC.14.34.17.4.Props.x86.log","dd_setup_20221204184207_107_Microsoft.VisualCpp.CRT.x64.Store.log","dd_setup_20221204184207_1080_Microsoft.VC.14.34.17.4.Servicing.Compilers.log","dd_setup_20221204184207_1081_Microsoft.VC.14.34.17.4.Tools.HostX86.TargetX86.base.log","dd_setup_20221204184207_1082_Microsoft.VisualCpp.Tools.HostX86.TargetX86.log","dd_setup_20221204184207_1083_Microsoft.VisualCpp.Tools.HostX86.TargetX86.Res.log","dd_setup_20221204184207_1084_Microsoft.VC.14.34.17.4.Tools.Hostx86.Targetx64.Res.base.log","dd_setup_20221204184207_1085_Microsoft.VC.14.34.17.4.Props.x64.log","dd_setup_20221204184207_1086_Microsoft.VC.14.34.17.4.Tools.HostX86.TargetX64.base.log","dd_setup_20221204184207_1087_Microsoft.VisualCpp.Tools.HostX86.TargetX64.log","dd_setup_20221204184207_1088_Microsoft.VisualCpp.Tools.Hostx86.Targetx64.Res.log","dd_setup_20221204184207_1089_Microsoft.VC.14.34.17.4.CRT.Redist.x64.OneCore.Desktop.base.log","dd_setup_20221204184207_108_Microsoft.VisualCpp.CRT.x64.OneCore.Desktop.log","dd_setup_20221204184207_1090_Microsoft.VisualCpp.CRT.Redist.x64.OneCore.Desktop.log","dd_setup_20221204184207_1091_Microsoft.VC.14.34.17.4.CRT.Redist.x86.OneCore.Desktop.base.log","dd_setup_20221204184207_1092_Microsoft.VisualCpp.CRT.Redist.x86.OneCore.Desktop.log","dd_setup_20221204184207_1093_Microsoft.VC.14.34.17.4.CRT.x64.OneCore.Desktop.base.log","dd_setup_20221204184207_1094_Microsoft.VisualCpp.CRT.x64.OneCore.Desktop.log","dd_setup_20221204184207_1095_Microsoft.VC.14.34.17.4.CRT.x64.Store.base.log","dd_setup_20221204184207_1096_Microsoft.VisualCpp.CRT.x64.Store.log","dd_setup_20221204184207_1097_Microsoft.VC.14.34.17.4.CRT.x86.OneCore.Desktop.base.log","dd_setup_20221204184207_1098_Microsoft.VisualCpp.CRT.x86.OneCore.Desktop.log","dd_setup_20221204184207_1099_Microsoft.VC.14.34.17.4.CRT.x86.Store.base.log","dd_setup_20221204184207_109_Microsoft.VisualCpp.CRT.Redist.x86.OneCore.Desktop.log","dd_setup_20221204184207_1100_Microsoft.VisualCpp.CRT.x86.Store.log","dd_setup_20221204184207_1101_Microsoft.VC.14.34.17.4.PGO.Headers.base.log","dd_setup_20221204184207_1102_Microsoft.VisualCpp.PGO.Headers.log","dd_setup_20221204184207_1103_Microsoft.VC.14.34.17.4.PGO.X64.base.log","dd_setup_20221204184207_1104_Microsoft.VisualCpp.PGO.X64.log","dd_setup_20221204184207_1105_Microsoft.VC.14.34.17.4.PGO.X86.base.log","dd_setup_20221204184207_1106_Microsoft.VisualCpp.PGO.X86.log","dd_setup_20221204184207_1107_Microsoft.VC.14.34.17.4.Prem.HostX64.TargetX64.Res.base.log","dd_setup_20221204184207_1108_Microsoft.VC.14.34.17.4.Premium.Tools.HostX64.TargetX64.base.log","dd_setup_20221204184207_1109_Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64.log","dd_setup_20221204184207_110_Microsoft.VisualCpp.CRT.Redist.x64.OneCore.Desktop.log","dd_setup_20221204184207_1110_Microsoft.VC.14.34.17.4.Prem.HostX64.TargetX86.Res.base.log","dd_setup_20221204184207_1111_Microsoft.VC.14.34.17.4.Premium.Tools.HostX64.TargetX86.base.log","dd_setup_20221204184207_1112_Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86.log","dd_setup_20221204184207_1113_Microsoft.VC.14.34.17.4.Prem.HostX86.TargetX86.Res.base.log","dd_setup_20221204184207_1114_Microsoft.VC.14.34.17.4.Premium.Tools.HostX86.TargetX86.base.log","dd_setup_20221204184207_1115_Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86.log","dd_setup_20221204184207_1116_Microsoft.VC.14.34.17.4.Prem.Hostx86.Targetx64.Res.base.log","dd_setup_20221204184207_1117_Microsoft.VC.14.34.17.4.Premium.Tools.HostX86.TargetX64.base.log","dd_setup_20221204184207_1118_Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX64.log","dd_setup_20221204184207_1119_Microsoft.VC.14.34.17.4.Tools.HostX64.TargetX64.Res.base.log","dd_setup_20221204184207_111_Microsoft.VisualCpp.Tools.Hostx86.Targetx64.Res.log","dd_setup_20221204184207_1120_Microsoft.VC.14.34.17.4.Tools.HostX64.TargetX64.base.log","dd_setup_20221204184207_1121_Microsoft.VisualCpp.Tools.HostX64.TargetX64.log","dd_setup_20221204184207_1122_Microsoft.VC.14.34.17.4.Tools.HostX64.TargetX86.Res.base.log","dd_setup_20221204184207_1123_Microsoft.VC.14.34.17.4.Tools.HostX64.TargetX86.base.log","dd_setup_20221204184207_1124_Microsoft.VisualCpp.Tools.HostX64.TargetX86.log","dd_setup_20221204184207_1125_Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.Targetx86.Res.base.log","dd_setup_20221204184207_1126_Microsoft.VC.14.34.17.4.Servicing.CAExtensions.log","dd_setup_20221204184207_1127_Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.Targetx86.base.log","dd_setup_20221204184207_1128_Microsoft.VisualCpp.CA.Ext.Hostx64.Targetx86.log","dd_setup_20221204184207_1129_Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.Targetx64.Res.base.log","dd_setup_20221204184207_112_Microsoft.VisualCpp.Tools.HostX86.TargetX64.log","dd_setup_20221204184207_1130_Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.Targetx64.base.log","dd_setup_20221204184207_1131_Microsoft.VisualCpp.CA.Ext.Hostx64.Targetx64.log","dd_setup_20221204184207_1132_Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.Targetx86.Res.base.log","dd_setup_20221204184207_1133_Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.Targetx86.base.log","dd_setup_20221204184207_1134_Microsoft.VisualCpp.CA.Ext.Hostx86.Targetx86.log","dd_setup_20221204184207_1135_Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.Targetx64.Res.base.log","dd_setup_20221204184207_1136_Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.Targetx64.base.log","dd_setup_20221204184207_1137_Microsoft.VisualCpp.CA.Ext.Hostx86.Targetx64.log","dd_setup_20221204184207_1138_Microsoft.VisualCpp.CodeAnalysis.Extensions.log","dd_setup_20221204184207_1139_Microsoft.VisualStudio.Templates.CS.Winforms.log","dd_setup_20221204184207_113_Microsoft.VisualCpp.Tools.HostX86.TargetX86.Res.log","dd_setup_20221204184207_1140_Microsoft.VisualStudio.Templates.CS.Wpf.Resources.log","dd_setup_20221204184207_1141_Microsoft.VisualStudio.Templates.CS.Wpf.log","dd_setup_20221204184207_1142_Microsoft.VisualStudio.Templates.VB.Winforms.log","dd_setup_20221204184207_1143_Microsoft.VisualStudio.Templates.VB.Wpf.Resources.log","dd_setup_20221204184207_1144_Microsoft.VisualStudio.Templates.VB.Wpf.log","dd_setup_20221204184207_1145_Microsoft.VC.14.34.17.4.Servicing.ATL.log","dd_setup_20221204184207_1146_Microsoft.VC.14.34.17.4.ATL.Headers.base.log","dd_setup_20221204184207_1147_Microsoft.VisualCpp.ATL.Headers.log","dd_setup_20221204184207_1148_Microsoft.VC.14.34.17.4.ATL.Source.base.log","dd_setup_20221204184207_1149_Microsoft.VisualCpp.ATL.Source.log","dd_setup_20221204184207_114_Microsoft.VisualCpp.Tools.HostX86.TargetX86.log","dd_setup_20221204184207_1150_Microsoft.VC.14.34.17.4.Props.ATLMFC.log","dd_setup_20221204184207_1151_Microsoft.VC.14.34.17.4.ATL.X64.base.log","dd_setup_20221204184207_1152_Microsoft.VisualCpp.ATL.X64.log","dd_setup_20221204184207_1153_Microsoft.VC.14.34.17.4.ATL.X86.base.log","dd_setup_20221204184207_1154_Microsoft.VisualCpp.ATL.X86.log","dd_setup_20221204184207_1155_Microsoft.VisualStudio.VC.Ide.ATL.Resources.log","dd_setup_20221204184207_1156_Microsoft.VisualStudio.VC.Ide.ATL.log","dd_setup_20221204184207_1157_Microsoft.VisualStudio.VC.Templates.Desktop.log","dd_setup_20221204184207_1158_Microsoft.VisualStudio.VC.Templates.UnitTest.Resources.log","dd_setup_20221204184207_1159_Microsoft.VisualStudio.TestTools.TP.V1.CPP.Resources.log","dd_setup_20221204184207_115_Microsoft.VisualCpp.Tools.Core.Resources.log","dd_setup_20221204184207_1160_Microsoft.VisualStudio.TestTools.TestPlatform.V1.CPP.log","dd_setup_20221204184207_1161_Microsoft.VisualStudio.VC.UnitTest.Desktop.Build.Core.log","dd_setup_20221204184207_1162_Microsoft.VisualStudio.VC.Templates.UnitTest.log","dd_setup_20221204184207_1163_Microsoft.VisualStudio.VC.ExternalBuildFramework.Resources.log","dd_setup_20221204184207_1164_Microsoft.VisualStudio.VC.ExternalBuildFramework.log","dd_setup_20221204184207_1165_Microsoft.VisualStudio.VC.CMake.Project.Resources.log","dd_setup_20221204184207_1166_Microsoft.VisualStudio.VC.CMake.Client.Resources.log","dd_setup_20221204184207_1167_Microsoft.VisualStudio.VC.CMake.Client.log","dd_setup_20221204184207_1168_Microsoft.VisualStudio.VC.CMake.Project.log","dd_setup_20221204184207_1169_Microsoft.VisualStudio.VC.CMake.log","dd_setup_20221204184207_116_Microsoft.VisualCpp.Tools.Core.x86.log","dd_setup_20221204184207_1170_Microsoft.VisualStudio.VC.IDE.Project.Factories.log","dd_setup_20221204184207_1171_Microsoft.VC.14.34.17.4.ASAN.Headers.base.log","dd_setup_20221204184207_1172_Microsoft.VC.14.34.17.4.ASAN.X64.base.log","dd_setup_20221204184207_1173_Microsoft.VC.14.34.17.4.ASAN.X86.base.log","dd_setup_20221204184207_1174_Microsoft.VisualCpp.ASAN.X86.log","dd_setup_20221204184207_1175_SyntaxTree.VisualStudio.Unity.Vsix.Resources.log","dd_setup_20221204184207_1176_SyntaxTree.VisualStudio.Unity.Vsix.log","dd_setup_20221204184207_1177_Microsoft.VisualStudio.VC.Ide.Linux.Resources.log","dd_setup_20221204184207_1178_Microsoft.VisualStudio.VC.Ide.Linux.log","dd_setup_20221204184207_1179_Microsoft.VisualStudio.VC.Ide.Linux.CMake.Resources.log","dd_setup_20221204184207_117_Microsoft.VisualCpp.DIA.SDK.log","dd_setup_20221204184207_1180_Microsoft.VisualStudio.VC.Ide.Linux.CMake.log","dd_setup_20221204184207_1181_Microsoft.VisualStudio.Embedded.Resources.log","dd_setup_20221204184207_1182_Microsoft.VisualStudio.Embedded.log","dd_setup_20221204184207_1183_Microsoft.AspNetCore.SharedFramework.3.1.3.1.31-servicing.22514.9.log","dd_setup_20221204184207_1184_Microsoft.AspNetCore.SharedFramework.3.1.3.1.31-servicing.22514.9.log","dd_setup_20221204184207_1185_Microsoft.NetCore.AppHostPack.3.1.3.1.31.arm.log","dd_setup_20221204184207_1186_Microsoft.NetCore.AppHostPack.3.1.3.1.31.arm64.log","dd_setup_20221204184207_1187_Microsoft.NetCore.AppHostPack.3.1.3.1.31.x64.log","dd_setup_20221204184207_1188_Microsoft.NetCore.AppHostPack.3.1.3.1.31.x86.log","dd_setup_20221204184207_1189_Microsoft.NetCore.SharedFramework.3.1.3.1.31.log","dd_setup_20221204184207_118_Microsoft.VisualCpp.Servicing.DIASDK.log","dd_setup_20221204184207_1190_Microsoft.NetCore.SharedFramework.3.1.3.1.31.log","dd_setup_20221204184207_1191_Microsoft.NetCore.Templates.3.1.7.0.100-rtm.22521.12.log","dd_setup_20221204184207_1192_Microsoft.WindowsDesktop.SharedFramework.3.1.3.1.31.x64.log","dd_setup_20221204184207_1193_Microsoft.WindowsDesktop.SharedFramework.3.1.3.1.31.x86.log","dd_setup_20221204184207_1194_Microsoft.VisualStudio.LiveShare.VSCore.log","dd_setup_20221204184207_1195_Microsoft.VisualStudio.Product.Community.log","dd_setup_20221204184207_119_Microsoft.VisualCpp.CRT.x86.Desktop.log","dd_setup_20221204184207_120_Microsoft.VisualCpp.CRT.x64.Desktop.log","dd_setup_20221204184207_121_Microsoft.VisualCpp.CRT.Source.log","dd_setup_20221204184207_122_Microsoft.VisualCpp.CRT.Redist.X86.log","dd_setup_20221204184207_123_Microsoft.VisualCpp.CRT.Redist.X64.log","dd_setup_20221204184207_124_Microsoft.VisualCpp.CRT.Redist.Resources.log","dd_setup_20221204184207_125_Microsoft.VisualCpp.RuntimeDebug.14.log","dd_setup_20221204184207_126_Microsoft.VisualCpp.RuntimeDebug.14.log","dd_setup_20221204184207_127_Microsoft.VisualCpp.CRT.Headers.log","dd_setup_20221204184207_128_Microsoft.VisualStudio.Graphics.Viewers.log","dd_setup_20221204184207_129_Microsoft.VisualStudio.Graphics.Viewers.Resources.log","dd_setup_20221204184207_130_Microsoft.VisualStudio.Graphics.Msi.log","dd_setup_20221204184207_131_Microsoft.VisualStudio.Graphics.Msi.log","dd_setup_20221204184207_132_Microsoft.VisualStudio.Graphics.Analyzer.log","dd_setup_20221204184207_133_Microsoft.VisualStudio.Graphics.Analyzer.Targeted.log","dd_setup_20221204184207_134_Microsoft.VisualStudio.Graphics.Analyzer.Resources.log","dd_setup_20221204184207_135_Microsoft.VisualStudio.Graphics.Appid.log","dd_setup_20221204184207_136_Microsoft.VisualStudio.Graphics.Appid.Resources.log","dd_setup_20221204184207_137_Microsoft.VisualStudio.VC.Ide.Pro.log","dd_setup_20221204184207_138_Microsoft.VisualStudio.VC.Ide.Pro.Resources.log","dd_setup_20221204184207_139_Microsoft.VisualStudio.VC.Templates.General.log","dd_setup_20221204184207_140_Microsoft.VisualStudio.VC.Templates.General.Resources.log","dd_setup_20221204184207_141_Microsoft.VisualStudio.VC.Items.Pro.log","dd_setup_20221204184207_142_Microsoft.VisualStudio.IntelliCode.CSharp.log","dd_setup_20221204184207_143_Microsoft.VisualStudio.IntelliCode.log","dd_setup_20221204184207_144_Microsoft.VisualStudio.Debugger.JustInTime.log","dd_setup_20221204184207_145_Microsoft.VisualStudio.LiveShare.2022.log","dd_setup_20221204184207_146_Microsoft.VisualStudio.EntityFrameworkTools.log","dd_setup_20221204184207_147_Microsoft.VisualStudio.EntityFrameworkTools.Msi.log","dd_setup_20221204184207_148_Microsoft.DiagnosticsHub.DotNetCountersTool.log","dd_setup_20221204184207_149_Microsoft.DiagnosticsHub.DotNetCountersTool.Targeted.log","dd_setup_20221204184207_150_Microsoft.DiagnosticsHub.DotNetCountersTool.Resources.log","dd_setup_20221204184207_151_Microsoft.DiagnosticsHub.DotNetAsync.log","dd_setup_20221204184207_152_Microsoft.DiagnosticsHub.DotNetAsync.Targeted.log","dd_setup_20221204184207_153_Microsoft.DiagnosticsHub.DotNetAsync.Resources.log","dd_setup_20221204184207_154_Microsoft.DiagnosticsHub.EventsViewerTool.log","dd_setup_20221204184207_155_Microsoft.DiagnosticsHub.EventsViewerTool.Targeted.log","dd_setup_20221204184207_156_Microsoft.DiagnosticsHub.EventsViewerTool.Resources.log","dd_setup_20221204184207_157_Microsoft.Icecap.Analysis.log","dd_setup_20221204184207_158_Microsoft.Icecap.Analysis.Targeted.log","dd_setup_20221204184207_159_Microsoft.Icecap.Analysis.Resources.log","dd_setup_20221204184207_160_Microsoft.Icecap.Analysis.Resources.Targeted.log","dd_setup_20221204184207_161_Microsoft.Icecap.Collection.Msi.log","dd_setup_20221204184207_162_Microsoft.Icecap.Collection.Msi.Targeted.log","dd_setup_20221204184207_163_Microsoft.Icecap.Collection.Msi.Resources.log","dd_setup_20221204184207_164_Microsoft.Icecap.Collection.Msi.Resources.Targeted.log","dd_setup_20221204184207_165_Microsoft.DiagnosticsHub.FileIOTool.log","dd_setup_20221204184207_166_Microsoft.DiagnosticsHub.FileIOTool.Targeted.log","dd_setup_20221204184207_167_Microsoft.DiagnosticsHub.FileIOTool.Resources.log","dd_setup_20221204184207_168_Microsoft.DiagnosticsHub.DatabaseTool.log","dd_setup_20221204184207_169_Microsoft.DiagnosticsHub.DatabaseTool.Targeted.log","dd_setup_20221204184207_170_Microsoft.DiagnosticsHub.DatabaseTool.Resources.log","dd_setup_20221204184207_171_Microsoft.DiagnosticsHub.DotNetObjectAlloc.log","dd_setup_20221204184207_172_Microsoft.DiagnosticsHub.DotNetObjectAlloc.Targeted.log","dd_setup_20221204184207_173_Microsoft.DiagnosticsHub.DotNetObjectAlloc.Resources.log","dd_setup_20221204184207_174_Microsoft.DiagnosticsHub.Instrumentation.log","dd_setup_20221204184207_175_Microsoft.DiagnosticsHub.Instrumentation.Targeted.log","dd_setup_20221204184207_176_Microsoft.DiagnosticsHub.Instrumentation.Resources.log","dd_setup_20221204184207_177_Microsoft.DiagnosticsHub.IceCap.Instrumentation.log","dd_setup_20221204184207_178_Microsoft.DiagnosticsHub.IceCap.Instrumentation.Resources.log","dd_setup_20221204184207_179_Microsoft.DiagnosticsHub.CpuSampling.log","dd_setup_20221204184207_180_Microsoft.DiagnosticsHub.CpuSampling.Targeted.log","dd_setup_20221204184207_181_Microsoft.DiagnosticsHub.CpuSampling.Resources.log","dd_setup_20221204184207_182_Microsoft.DiagnosticsHub.Runtime.ExternalDependencies.log","dd_setup_20221204184207_183_SQLiteCore.log","dd_setup_20221204184207_184_SQLiteCore.Targeted.log","dd_setup_20221204184207_185_Microsoft.DiagnosticsHub.Runtime.ExternalDependencies.Targeted.log","dd_setup_20221204184207_186_Microsoft.DiagnosticsHub.Runtime.log","dd_setup_20221204184207_187_Microsoft.DiagnosticsHub.Runtime.Targeted.log","dd_setup_20221204184207_188_Microsoft.DiagnosticsHub.Runtime.Resources.log","dd_setup_20221204184207_189_Microsoft.DiagnosticsHub.Collection.ExternalDependencies.x64.log","dd_setup_20221204184207_190_Microsoft.DiagnosticsHub.Collection.log","dd_setup_20221204184207_191_Microsoft.NetStandard.VB.ProjectTemplates.log","dd_setup_20221204184207_192_Microsoft.NetStandard.CSharp.ProjectTemplates.log","dd_setup_20221204184207_193_Microsoft.VisualStudio.HotReload.Components.log","dd_setup_20221204184207_194_Microsoft.VisualStudio.ClickOnce.Publish.log","dd_setup_20221204184207_195_Microsoft.VisualStudio.Windows.Forms.log","dd_setup_20221204184207_196_Microsoft.VisualStudio.TemplateEngine.log","dd_setup_20221204184207_197_Microsoft.VisualStudio.TemplateEngine.Resources.log","dd_setup_20221204184207_198_Microsoft.NetCore.VB.ProjectTemplates.Desktop.log","dd_setup_20221204184207_199_Microsoft.NetCore.VB.ProjectTemplates.Test.log","dd_setup_20221204184207_200_Microsoft.NetCore.VB.ProjectTemplates.log","dd_setup_20221204184207_201_Microsoft.NetCore.CSharp.ProjectTemplates.Desktop.log","dd_setup_20221204184207_202_Microsoft.NetCore.CSharp.ProjectTemplates.Test.log","dd_setup_20221204184207_203_Microsoft.NetCore.CSharp.ProjectTemplates.log","dd_setup_20221204184207_204_Microsoft.NetStandard.FSharp.ProjectTemplates.log","dd_setup_20221204184207_205_Microsoft.NetCore.FSharp.ProjectTemplates.Test.log","dd_setup_20221204184207_206_Microsoft.NetCore.FSharp.ProjectTemplates.log","dd_setup_20221204184207_207_Microsoft.FSharp.IDE.log","dd_setup_20221204184207_208_Microsoft.FSharp.VSIX.Full.Core.log","dd_setup_20221204184207_209_Microsoft.FSharp.Compiler.log","dd_setup_20221204184207_210_Microsoft.FSharp.Dependencies.log","dd_setup_20221204184207_211_Microsoft.FSharp.SDK.log","dd_setup_20221204184207_212_Microsoft.NetCore.TemplateLocator.log","dd_setup_20221204184207_213_Microsoft.Net.Core.SDK.MSBuildExtensions.log","dd_setup_20221204184207_214_Microsoft.VisualStudio.VC.Ide.Linux.ConnectionManager.log","dd_setup_20221204184207_215_Microsoft.VisualStudio.VC.Ide.Linux.ConnectionManager.Resources.log","dd_setup_20221204184207_216_Microsoft.VisualStudio.TestTools.Templates.Managed.log","dd_setup_20221204184207_217_Microsoft.VisualStudio.TestTools.Templates.Managed.Resources.log","dd_setup_20221204184207_218_Microsoft.VisualStudio.Templates.VB.ManagedCore.log","dd_setup_20221204184207_219_Microsoft.VisualStudio.Templates.VB.Shared.log","dd_setup_20221204184207_220_Microsoft.VisualStudio.Templates.VB.Shared.Resources.log","dd_setup_20221204184207_221_Microsoft.VisualStudio.Templates.VB.ManagedCore.Resources.log","dd_setup_20221204184207_222_Microsoft.VisualStudio.Templates.CS.ManagedCore.log","dd_setup_20221204184207_223_Microsoft.VisualStudio.Templates.AssemblyInfo.Wizard.log","dd_setup_20221204184207_224_Microsoft.VisualStudio.Templates.CS.Shared.log","dd_setup_20221204184207_225_Microsoft.VisualStudio.Templates.Editorconfig.Command.log","dd_setup_20221204184207_226_Microsoft.VisualStudio.Templates.Editorconfig.Wizard.Setup.log","dd_setup_20221204184207_227_Templates.Editorconfig.SolutionFile.Setup.log","dd_setup_20221204184207_228_Microsoft.VisualStudio.Templates.CS.Shared.Resources.log","dd_setup_20221204184207_229_Microsoft.VisualStudio.Templates.CS.ManagedCore.Resources.log","dd_setup_20221204184207_230_Microsoft.VisualStudio.AppCapDesigner.log","dd_setup_20221204184207_231_Microsoft.VisualStudio.ConnectedServices.Wcf.log","dd_setup_20221204184207_232_Microsoft.VisualStudio.ConnectedServices.Office365.log","dd_setup_20221204184207_233_Microsoft.VisualStudio.XamlDiagnostics.log","dd_setup_20221204184207_234_Microsoft.VisualStudio.XamlDiagnostics.Resources.log","dd_setup_20221204184207_235_Microsoft.VisualStudio.XamlDesigner.log","dd_setup_20221204184207_236_Microsoft.VisualStudio.XamlDesigner.Resources.log","dd_setup_20221204184207_237_Microsoft.VisualStudio.XamlDesigner.Executables.log","dd_setup_20221204184207_238_Microsoft.VisualStudio.XamlShared.log","dd_setup_20221204184207_239_Microsoft.VisualStudio.XamlShared.Resources.log","dd_setup_20221204184207_240_Microsoft.IntelliTrace.Core.log","dd_setup_20221204184207_241_Microsoft.IntelliTrace.Core.Concord.log","dd_setup_20221204184207_242_Microsoft.IntelliTrace.Core.Targeted.log","dd_setup_20221204184207_243_Microsoft.IntelliTrace.Core.Targeted.Resources.log","dd_setup_20221204184207_244_Microsoft.IntelliTrace.Core.Resources.log","dd_setup_20221204184207_245_Microsoft.VisualStudio.TestWindow.SourceBasedTestDiscovery.log","dd_setup_20221204184207_246_Microsoft.VisualStudio.TestTools.TestGeneration.log","dd_setup_20221204184207_247_Microsoft.VisualStudio.TestTools.TestGeneration.Resources.log","dd_setup_20221204184207_248_Microsoft.VisualStudio.TestTools.TestPlatform.V2.CLI.log","dd_setup_20221204184207_249_Microsoft.VisualStudio.TestTools.Pex.Common.log","dd_setup_20221204184207_250_Microsoft.VisualStudio.TestTools.Pex.Common.Resources.log","dd_setup_20221204184207_251_Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Msi.log","dd_setup_20221204184207_252_Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Common.log","dd_setup_20221204184207_253_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips.log","dd_setup_20221204184207_254_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips.Resources.log","dd_setup_20221204184207_255_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.TestSettings.log","dd_setup_20221204184207_256_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.TestSettings.Resources.log","dd_setup_20221204184207_257_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Professional.log","dd_setup_20221204184207_258_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Common.log","dd_setup_20221204184207_259_Microsoft.VisualStudio.TestTools.TP.Legacy.Common.Res.log","dd_setup_20221204184207_260_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core.log","dd_setup_20221204184207_261_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core.Resources.log","dd_setup_20221204184207_262_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Agent.log","dd_setup_20221204184207_263_Microsoft.VisualStudio.TestTools.TestWIExtension.log","dd_setup_20221204184207_264_Microsoft.VisualStudio.TestTools.TestWIExtension.Res.log","dd_setup_20221204184207_265_Microsoft.VisualStudio.TestTools.TestPlatform.V1.CLI.log","dd_setup_20221204184207_266_Microsoft.VisualStudio.TestTools.TP.V1.CLI.Resources.log","dd_setup_20221204184207_267_Microsoft.VisualStudio.TestTools.TestPlatform.IDE.log","dd_setup_20221204184207_268_Microsoft.VisualStudio.NuGet.Licenses.log","dd_setup_20221204184207_269_Microsoft.Publish.Framework.log","dd_setup_20221204184207_270_Azure.Storage.Emulator.log","dd_setup_20221204184207_271_Microsoft.Publish.Framework.Resources.log","dd_setup_20221204184207_272_Microsoft.VisualStudio.TextTemplating.MSBuild.log","dd_setup_20221204184207_273_Microsoft.VisualStudio.TextTemplating.MSBuild.Resources.log","dd_setup_20221204184207_274_Microsoft.VisualStudio.TextTemplating.Integration.log","dd_setup_20221204184207_275_Microsoft.VisualStudio.TextTemplating.Core.log","dd_setup_20221204184207_276_Microsoft.VisualStudio.TextTemplating.Core.Resources.log","dd_setup_20221204184207_277_Microsoft.VisualStudio.TextTemplating.Integration.Resources.log","dd_setup_20221204184207_278_Microsoft.VisualCpp.CRT.ClickOnce.Msi.log","dd_setup_20221204184207_279_Microsoft.ClickOnce.SignTool.Msi.log","dd_setup_20221204184207_280_Microsoft.SQL.ClickOnceBootstrapper.Msi.log","dd_setup_20221204184207_281_Microsoft.Net.Core.BootstrapperPackages.log","dd_setup_20221204184207_282_Microsoft.Net.ClickOnceBootstrapper.log","dd_setup_20221204184207_283_Microsoft.ClickOnce.BootStrapper.Msi.Resources.log","dd_setup_20221204184207_284_Microsoft.ClickOnce.BootStrapper.Msi.log","dd_setup_20221204184207_285_Microsoft.VisualStudio.ClickOnce.Resources.log","dd_setup_20221204184207_286_Microsoft.VisualStudio.ClickOnce.log","dd_setup_20221204184207_287_Microsoft.VisualStudio.ProjectSystem.Managed.CommonFiles.log","dd_setup_20221204184207_288_Microsoft.VisualStudio.ProjectSystem.Managed.log","dd_setup_20221204184207_289_Microsoft.DiaSymReader.Native.log","dd_setup_20221204184207_290_Microsoft.VisualCpp.Servicing.Redist.log","dd_setup_20221204184207_291_Microsoft.VisualStudio.StaticAnalysis.IDE.log","dd_setup_20221204184207_292_Microsoft.VisualStudio.StaticAnalysis.IDE.Resources.log","dd_setup_20221204184207_293_Microsoft.VisualStudio.StaticAnalysis.FxCop.log","dd_setup_20221204184207_294_Microsoft.VisualStudio.StaticAnalysis.FxCop.Resources.log","dd_setup_20221204184207_295_Microsoft.VisualStudio.StaticAnalysis.auxil.log","dd_setup_20221204184207_296_Microsoft.VisualStudio.StaticAnalysis.auxil.Resources.log","dd_setup_20221204184207_297_Roslyn.VisualStudio.Setup.ServiceHub.log","dd_setup_20221204184207_298_Microsoft.NuGet.Build.Tasks.Setup.log","dd_setup_20221204184207_299_Microsoft.CodeAnalysis.Compilers.log","dd_setup_20221204184207_300_Microsoft.VisualStudio.ProTools.log","dd_setup_20221204184207_301_SQLCommon.amd64.log","dd_setup_20221204184207_302_SQLCommon.log","dd_setup_20221204184207_303_SQLCommon.Resources.log","dd_setup_20221204184207_304_Microsoft.VisualStudio.ProTools.Resources.log","dd_setup_20221204184207_305_Microsoft.VisualStudio.Web.Scaffolding.log","dd_setup_20221204184207_306_Microsoft.VisualStudio.Web.Scaffolding.Resources.log","dd_setup_20221204184207_307_Microsoft.VisualStudio.WebToolsExtensions.log","dd_setup_20221204184207_308_Microsoft.VisualStudio.ConnectedServices.Core.log","dd_setup_20221204184207_309_Microsoft.VisualStudio.WebToolsExtensions.Resources.log","dd_setup_20221204184207_310_Microsoft.VisualStudio.WebTools.log","dd_setup_20221204184207_311_Microsoft.VisualStudio.WebToolsExtensions.MSBuild.log","dd_setup_20221204184207_312_Microsoft.VisualStudio.WebToolsExtensions.MSBuild.Resources.log","dd_setup_20221204184207_313_Microsoft.VisualStudio.WebTools.Resources.log","dd_setup_20221204184207_314_Microsoft.VisualStudio.WebTools.WSP.FSA.log","dd_setup_20221204184207_315_Microsoft.VisualStudio.WebTools.WSP.FSA.Resources.log","dd_setup_20221204184207_316_Microsoft.VisualStudio.Community.VB.x86.log","dd_setup_20221204184207_317_Microsoft.VisualStudio.Community.VB.x64.log","dd_setup_20221204184207_318_Microsoft.VisualStudio.VC.Ide.MDD.log","dd_setup_20221204184207_319_Microsoft.VisualStudio.VC.Ide.MDD.Resources.log","dd_setup_20221204184207_320_Microsoft.VisualStudio.CodeSense.Community.log","dd_setup_20221204184207_321_Microsoft.VisualStudio.CodeSense.Community.Resources.log","dd_setup_20221204184207_322_Microsoft.VisualStudio.TestTools.TeamFoundationClient.log","dd_setup_20221204184207_323_Microsoft.VisualStudio.TestTools.TeamFoundationClient.Resources.log","dd_setup_20221204184207_324_Microsoft.VisualStudio.AppResponsiveness.log","dd_setup_20221204184207_325_Microsoft.VisualStudio.AppResponsiveness.Targeted.log","dd_setup_20221204184207_326_Microsoft.VisualStudio.AppResponsiveness.Resources.log","dd_setup_20221204184207_327_Microsoft.VisualStudio.ClientDiagnostics.log","dd_setup_20221204184207_328_Microsoft.VisualStudio.ClientDiagnostics.Targeted.log","dd_setup_20221204184207_329_Microsoft.VisualStudio.ClientDiagnostics.Resources.log","dd_setup_20221204184207_330_Microsoft.VisualStudio.ProjectSystem.Full.log","dd_setup_20221204184207_331_Microsoft.VisualStudio.LiveShareApi.log","dd_setup_20221204184207_332_Microsoft.VisualStudio.ProjectSystem.Query.log","dd_setup_20221204184207_333_Microsoft.VisualStudio.ProjectSystem.log","dd_setup_20221204184207_334_Microsoft.VisualStudio.Community.x86.log","dd_setup_20221204184207_335_Microsoft.VisualStudio.Community.x64.log","dd_setup_20221204184207_336_Microsoft.VisualStudio.Community.Msi.Resources.log","dd_setup_20221204184207_337_Microsoft.VisualStudio.Community.Msi.log","dd_setup_20221204184207_338_Microsoft.VisualStudio.Community.Shared.Msi.log","dd_setup_20221204184207_339_Microsoft.VisualStudio.Devenv.Msi.log","dd_setup_20221204184207_340_Microsoft.VisualStudio.Devenv.Shared.Msi.log","dd_setup_20221204184207_341_Microsoft.VisualStudio.MinShell.Interop.Msi.log","dd_setup_20221204184207_342_Microsoft.VisualStudio.MinShell.Interop.Shared.Msi.log","dd_setup_20221204184207_343_Microsoft.VisualStudio.ScriptedHost.log","dd_setup_20221204184207_344_Microsoft.VisualStudio.ScriptedHost.Resources.log","dd_setup_20221204184207_345_Microsoft.VisualStudio.ScriptedHost.Targeted.log","dd_setup_20221204184207_346_Microsoft.VisualCpp.Tools.Common.UtilsPrereq.log","dd_setup_20221204184207_347_Microsoft.VisualStudio.VsDevCmd.Ext.NetFxSdk.log","dd_setup_20221204184207_348_Microsoft.VisualStudio.VsDevCmd.Core.WinSdk.log","dd_setup_20221204184207_349_Microsoft.VisualStudio.VsDevCmd.Core.DotNet.log","dd_setup_20221204184207_350_Microsoft.VisualStudio.VC.DevCmd.log","dd_setup_20221204184207_351_Microsoft.VisualStudio.VC.DevCmd.Resources.log","dd_setup_20221204184207_352_Microsoft.Build.Dependencies.log","dd_setup_20221204184207_353_Microsoft.Build.FileTracker.Msi.log","dd_setup_20221204184207_354_Microsoft.Build.log","dd_setup_20221204184207_355_Microsoft.DataAI.NuGetRecommender.log","dd_setup_20221204184207_356_Microsoft.VisualStudio.NuGet.Core.log","dd_setup_20221204184207_357_Microsoft.VisualStudio.TextMateGrammars.log","dd_setup_20221204184207_358_Microsoft.VisualStudio.Platform.CrossRepositorySearch.log","dd_setup_20221204184207_359_Microsoft.VisualStudio.TeamExplorer.log","dd_setup_20221204184207_360_Microsoft.ServiceHub.Node.log","dd_setup_20221204184207_361_Microsoft.ServiceHub.Managed.log","dd_setup_20221204184207_362_Microsoft.ServiceHub.amd64.log","dd_setup_20221204184207_363_Microsoft.VisualStudio.ProjectServices.log","dd_setup_20221204184207_364_Microsoft.VisualStudio.OpenFolder.VSIX.log","dd_setup_20221204184207_365_Microsoft.VisualStudio.FileHandler.Msi.log","dd_setup_20221204184207_366_Microsoft.VisualStudio.FileHandler.Msi.log","dd_setup_20221204184207_367_Microsoft.VisualStudio.MinShell.Msi.log","dd_setup_20221204184207_368_Microsoft.VisualStudio.MinShell.Shared.Msi.log","dd_setup_20221204184207_369_Microsoft.VisualStudio.MinShell.Msi.Resources.log","dd_setup_20221204184207_370_Microsoft.VisualStudio.MinShell.Interop.log","dd_setup_20221204184207_371_CoreEditorFonts.log","dd_setup_20221204184207_372_Microsoft.VisualStudio.Log.log","dd_setup_20221204184207_373_Microsoft.VisualStudio.Log.Targeted.log","dd_setup_20221204184207_374_Microsoft.VisualStudio.Log.Resources.log","dd_setup_20221204184207_375_Microsoft.VisualStudio.Finalizer.log","dd_setup_20221204184207_376_Microsoft.VisualStudio.Devenv.log","dd_setup_20221204184207_377_Microsoft.VisualStudio.Devenv.Resources.log","dd_setup_20221204184207_378_Microsoft.VisualStudio.CoreEditor.log","dd_setup_20221204184207_379_Microsoft.VisualStudio.Navigation.RichCodeNav.log","dd_setup_20221204184207_380_Microsoft.VisualStudio.Platform.NavigateTo.log","dd_setup_20221204184207_381_Microsoft.VisualStudio.Connected.log","dd_setup_20221204184207_382_Microsoft.VisualStudio.Connected.Auto.log","dd_setup_20221204184207_383_Microsoft.VisualStudio.Connected.Auto.Resources.log","dd_setup_20221204184207_384_Microsoft.VisualStudio.Connected.Resources.log","dd_setup_20221204184207_385_Microsoft.VisualStudio.VC.Ide.x64.log","dd_setup_20221204184207_386_Microsoft.VisualStudio.VC.vcvars.log","dd_setup_20221204184207_387_Microsoft.VS.VC.vcvars.x86.Shortcuts.log","dd_setup_20221204184207_388_Microsoft.VS.VC.vcvars.x64.Shortcuts.log","dd_setup_20221204184207_389_Microsoft.VisualStudio.Debugger.Script.log","dd_setup_20221204184207_390_Microsoft.VisualStudio.Debugger.Script.Resources.log","dd_setup_20221204184207_391_Microsoft.VisualStudio.Debugger.Script.Remote.log","dd_setup_20221204184207_392_Microsoft.VisualStudio.Debugger.Script.Remote.log","dd_setup_20221204184207_393_Microsoft.VisualStudio.Debugger.Script.Remote.Resources.log","dd_setup_20221204184207_394_Microsoft.VisualStudio.Debugger.Script.Remote.Resources.log","dd_setup_20221204184207_395_Microsoft.VisualStudio.Debugger.BrokeredServices.log","dd_setup_20221204184207_396_Microsoft.VisualStudio.Debugger.VSCodeDebuggerHost.log","dd_setup_20221204184207_397_Microsoft.VisualStudio.Debugger.AzureAttach.log","dd_setup_20221204184207_398_Microsoft.VisualStudio.Web.Azure.Common.log","dd_setup_20221204184207_399_Microsoft.WebTools.Shared.log","dd_setup_20221204184207_400_Microsoft.WebTools.Shared.Resources.log","dd_setup_20221204184207_401_Microsoft.WebTools.DotNet.Core.ItemTemplates.log","dd_setup_20221204184207_402_Microsoft.WebTools.DotNet.Core.ItemTemplates.Resources.log","dd_setup_20221204184207_403_Microsoft.VisualStudio.Web.Azure.Common.Resources.log","dd_setup_20221204184207_404_Microsoft.VisualStudio.Debugger.AzureAttach.Resources.log","dd_setup_20221204184207_405_Microsoft.VisualStudio.Debugger.CollectionAgents.log","dd_setup_20221204184207_406_Microsoft.VisualStudio.Debugger.Parallel.log","dd_setup_20221204184207_407_Microsoft.VisualStudio.Debugger.Parallel.Resources.log","dd_setup_20221204184207_408_Microsoft.VisualStudio.Debugger.Managed.log","dd_setup_20221204184207_409_Microsoft.DiaSymReader.log","dd_setup_20221204184207_410_Microsoft.CodeAnalysis.ExpressionEvaluator.log","dd_setup_20221204184207_411_Microsoft.CodeAnalysis.VisualStudio.Setup.log","dd_setup_20221204184207_412_Microsoft.VisualStudio.Debugger.Concord.Managed.log","dd_setup_20221204184207_413_Microsoft.VisualStudio.Debugger.Concord.Managed.Resources.log","dd_setup_20221204184207_414_Microsoft.VisualStudio.Debugger.Managed.Resources.log","dd_setup_20221204184207_415_Microsoft.VisualStudio.Debugger.TargetComposition.log","dd_setup_20221204184207_416_Microsoft.VisualStudio.Debugger.TargetComposition.Remote.log","dd_setup_20221204184207_417_Microsoft.VisualStudio.Debugger.TargetComposition.Remote.log","dd_setup_20221204184207_418_Microsoft.VisualStudio.Debugger.Remote.log","dd_setup_20221204184207_419_Microsoft.VisualStudio.Debugger.Concord.Remote.log","dd_setup_20221204184207_420_Microsoft.VisualStudio.Debugger.Concord.Remote.Resources.log","dd_setup_20221204184207_421_Microsoft.VisualStudio.Debugger.Remote.log","dd_setup_20221204184207_422_Microsoft.VisualStudio.Debugger.Concord.Remote.log","dd_setup_20221204184207_423_Microsoft.VisualStudio.Debugger.Concord.Remote.Resources.log","dd_setup_20221204184207_424_Microsoft.VisualStudio.Debugger.Remote.Resources.log","dd_setup_20221204184207_425_Microsoft.VisualStudio.Debugger.Remote.Resources.log","dd_setup_20221204184207_426_Microsoft.VisualStudio.Debugger.log","dd_setup_20221204184207_427_Microsoft.VisualStudio.AzureSDK.log","dd_setup_20221204184207_428_Microsoft.VisualStudio.Editors.log","dd_setup_20221204184207_429_Microsoft.IntelliTrace.DiagnosticsHub.log","dd_setup_20221204184207_430_Microsoft.IntelliTrace.DiagnosticsHub.Resources.log","dd_setup_20221204184207_431_Microsoft.VisualStudio.Debugger.Concord.log","dd_setup_20221204184207_432_Microsoft.VisualStudio.Debugger.Concord.Resources.log","dd_setup_20221204184207_433_Microsoft.VisualStudio.Debugger.Resources.log","dd_setup_20221204184207_434_Microsoft.VisualStudio.PerfLib.log","dd_setup_20221204184207_435_Microsoft.VisualStudio.Debugger.Package.DiagHub.Client.log","dd_setup_20221204184207_436_Microsoft.VisualStudio.Debugger.Remote.DiagnosticsHub.Client.log","dd_setup_20221204184207_437_Microsoft.VisualStudio.Debugger.Remote.DiagnosticsHub.Client.log","dd_setup_20221204184207_438_Microsoft.VisualStudio.VC.MSBuild.v170.X64.v143.log","dd_setup_20221204184207_439_Microsoft.VisualStudio.VC.MSBuild.v170.X64.log","dd_setup_20221204184207_440_Microsoft.VisualStudio.VC.MSBuild.v170.ARM.v143.log","dd_setup_20221204184207_441_Microsoft.VisualStudio.VC.MSBuild.v170.ARM.log","dd_setup_20221204184207_442_Microsoft.VisualStudio.VC.MSBuild.v170.x86.v143.log","dd_setup_20221204184207_443_Microsoft.VisualStudio.VC.MSBuild.v170.X86.log","dd_setup_20221204184207_444_Microsoft.VisualStudio.VC.MSBuild.v170.Base.log","dd_setup_20221204184207_445_Microsoft.VisualStudio.VC.MSBuild.v170.Base.Resources.log","dd_setup_20221204184207_446_Microsoft.VisualStudio.VC.Ide.WinXPlus.log","dd_setup_20221204184207_447_Microsoft.VisualStudio.VC.Ide.Dskx.log","dd_setup_20221204184207_448_Microsoft.VisualStudio.VC.Ide.Dskx.Resources.log","dd_setup_20221204184207_449_Microsoft.VisualStudio.VC.Ide.Debugger.log","dd_setup_20221204184207_450_Microsoft.VisualStudio.VC.Ide.Debugger.Concord.log","dd_setup_20221204184207_451_Microsoft.VisualStudio.VC.Ide.Debugger.Concord.Resources.log","dd_setup_20221204184207_452_Microsoft.VisualStudio.VC.Ide.Debugger.Resources.log","dd_setup_20221204184207_453_Microsoft.VisualStudio.VC.Ide.Common.log","dd_setup_20221204184207_454_Microsoft.VisualStudio.VC.MSVCDis.log","dd_setup_20221204184207_455_Microsoft.VisualStudio.VC.Ide.Common.Resources.log","dd_setup_20221204184207_456_Microsoft.VisualStudio.VC.Ide.Base.log","dd_setup_20221204184207_457_Microsoft.VisualStudio.VC.Ide.LanguageService.log","dd_setup_20221204184207_458_Microsoft.VisualStudio.Cache.Service.log","dd_setup_20221204184207_459_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.Scripts.log","dd_setup_20221204184207_460_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.PythonDistro.log","dd_setup_20221204184207_461_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.10.log","dd_setup_20221204184207_462_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.9.log","dd_setup_20221204184207_463_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.8.log","dd_setup_20221204184207_464_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.7.log","dd_setup_20221204184207_465_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.6.log","dd_setup_20221204184207_466_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.5.log","dd_setup_20221204184207_467_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.4.log","dd_setup_20221204184207_468_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.3.log","dd_setup_20221204184207_469_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.2.log","dd_setup_20221204184207_470_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.1.log","dd_setup_20221204184207_471_Microsoft.VisualStudio.VC.Ide.VCPkgDatabase.log","dd_setup_20221204184207_472_Microsoft.VisualStudio.VC.Ide.ResourceEditor.log","dd_setup_20221204184207_473_Microsoft.VisualStudio.VC.Ide.ResourceEditor.Resources.log","dd_setup_20221204184207_474_Microsoft.VisualStudio.VC.Ide.Core.log","dd_setup_20221204184207_475_Microsoft.VisualStudio.VisualC.Utilities.log","dd_setup_20221204184207_476_Microsoft.VisualStudio.VisualC.Utilities.Resources.log","dd_setup_20221204184207_477_Microsoft.VisualStudio.VC.Ide.ProjectSystem.log","dd_setup_20221204184207_478_Microsoft.VisualStudio.VC.Ide.ProjectSystem.Resources.log","dd_setup_20221204184207_479_Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine.log","dd_setup_20221204184207_480_Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine.Resources.log","dd_setup_20221204184207_481_Microsoft.VisualStudio.VC.Ide.LanguageService.Resources.log","dd_setup_20221204184207_482_Microsoft.VisualStudio.VC.Llvm.Base.log","dd_setup_20221204184207_483_Microsoft.VisualStudio.VC.Ide.Base.Resources.log","dd_setup_20221204184207_484_Microsoft.VisualCpp.Tools.Common.Utils.log","dd_setup_20221204184207_485_Microsoft.VisualCpp.Tools.Common.Utils.Resources.log","dd_setup_20221204184207_486_Microsoft.VisualStudio.VirtualTree.log","dd_setup_20221204184207_487_Microsoft.VisualStudio.VirtualTree.Resources.log","dd_setup_20221204184207_488_Microsoft.VisualStudio.Dsl.Core.log","dd_setup_20221204184207_489_Microsoft.VisualStudio.Dsl.GraphObject.log","dd_setup_20221204184207_490_Microsoft.VisualStudio.Dsl.Core.Resources.log","dd_setup_20221204184207_491_Microsoft.VisualStudio.PerformanceProvider.log","dd_setup_20221204184207_492_Microsoft.VisualStudio.GraphModel.log","dd_setup_20221204184207_493_Microsoft.VisualStudio.GraphModel.Resources.log","dd_setup_20221204184207_494_Microsoft.VisualStudio.GraphProvider.log","dd_setup_20221204184207_495_Microsoft.VisualStudio.GraphProvider.Resources.log","dd_setup_20221204184207_496_Microsoft.VisualStudio.Community.VB.Targeted.log","dd_setup_20221204184207_497_Microsoft.VisualStudio.Community.VB.Neutral.log","dd_setup_20221204184207_498_Microsoft.VisualStudio.Community.CSharp.Targeted.log","dd_setup_20221204184207_499_Microsoft.VisualStudio.Community.CSharp.Neutral.log","dd_setup_20221204184207_500_Microsoft.VisualStudio.Community.ProductArch.TargetedExtra.log","dd_setup_20221204184207_501_Microsoft.VisualStudio.Community.ProductArch.Targeted.log","dd_setup_20221204184207_502_Microsoft.VisualStudio.Community.ProductArch.NeutralExtra.log","dd_setup_20221204184207_503_Microsoft.DiaSymReader.PortablePdb.log","dd_setup_20221204184207_504_Microsoft.IntelliTrace.CollectorCab.log","dd_setup_20221204184207_505_Microsoft.VisualStudio.Community.VB.Resources.Targeted.log","dd_setup_20221204184207_506_Microsoft.VisualStudio.Community.VB.Resources.Neutral.log","dd_setup_20221204184207_507_Microsoft.VisualStudio.Community.CSharp.Resources.Targeted.log","dd_setup_20221204184207_508_Microsoft.VisualStudio.Community.CSharp.Resources.Neutral.log","dd_setup_20221204184207_509_Microsoft.VisualStudio.Community.ProductArch.Resources.Targeted.log","dd_setup_20221204184207_510_Microsoft.VisualStudio.Community.ProductArch.Resources.NeutralExtra.log","dd_setup_20221204184207_511_Microsoft.VisualStudio.Net.Eula.Resources.log","dd_setup_20221204184207_512_Microsoft.VisualStudio.Community.ProductArch.Resources.Neutral.log","dd_setup_20221204184207_513_Microsoft.VisualStudio.WebSiteProject.DTE.log","dd_setup_20221204184207_514_Microsoft.VisualStudio.Diagnostics.AspNetHelper.log","dd_setup_20221204184207_515_Microsoft.VisualStudio.Diagnostics.AspNetHelper.Standard.log","dd_setup_20221204184207_516_Microsoft.VisualStudio.Diagnostics.AspNetHelper.Resources.log","dd_setup_20221204184207_517_Microsoft.MSHtml.log","dd_setup_20221204184207_518_Microsoft.VisualStudio.Platform.CallHierarchy.log","dd_setup_20221204184207_519_Microsoft.VisualStudio.Community.ProductArch.Neutral.log","dd_setup_20221204184207_520_Microsoft.VisualStudio.MinShell.log","dd_setup_20221204184207_521_Microsoft.Net.6.WindowsDesktop.Runtime.log","dd_setup_20221204184207_522_Microsoft.Net.6.Runtime.log","dd_setup_20221204184207_523_Microsoft.VisualStudio.Setup.WMIProvider.log","dd_setup_20221204184207_524_Microsoft.VisualStudio.Setup.Configuration.Interop.log","dd_setup_20221204184207_525_Microsoft.VisualStudio.Extensibility.Container.log","dd_setup_20221204184207_526_Microsoft.VisualStudio.LanguageServer.log","dd_setup_20221204184207_527_Microsoft.VisualStudio.LanguageServer.Resources.log","dd_setup_20221204184207_528_Microsoft.VisualStudio.Platform.Terminal.log","dd_setup_20221204184207_529_Microsoft.VisualStudio.MefHosting.log","dd_setup_20221204184207_530_Microsoft.VisualStudio.MefHosting.Resources.log","dd_setup_20221204184207_531_Microsoft.VisualStudio.ExtensionManager.log","dd_setup_20221204184207_532_Microsoft.VisualStudio.ExtensionManager.Resources.log","dd_setup_20221204184207_533_Microsoft.VisualStudio.Platform.Editor.log","dd_setup_20221204184207_534_Microsoft.VisualStudio.MinShell.Targeted.log","dd_setup_20221204184207_535_Microsoft.VisualStudio.NativeImageSupport.log","dd_setup_20221204184207_536_Microsoft.VisualStudio.Devenv.Config.log","dd_setup_20221204184207_537_Microsoft.VisualStudio.MinShell.Resources.x64.log","dd_setup_20221204184207_538_Microsoft.VisualStudio.MinShell.Auto.log","dd_setup_20221204184207_539_Microsoft.VisualStudio.MinShell.Auto.Resources.log","dd_setup_20221204184207_540_Microsoft.VisualStudio.Branding.Community.log","dd_setup_20221204184207_541_Microsoft.VC.14.33.17.3.ATL.X86.base.log","dd_setup_20221204184207_542_Microsoft.VC.14.33.17.3.ATL.X64.base.log","dd_setup_20221204184207_543_Microsoft.VC.14.33.17.3.ATL.Source.base.log","dd_setup_20221204184207_544_Microsoft.VC.14.33.17.3.ATL.Headers.base.log","dd_setup_20221204184207_545_Microsoft.VC.14.33.17.3.Props.ATLMFC.log","dd_setup_20221204184207_546_Microsoft.VC.14.33.17.3.Servicing.ATL.log","dd_setup_20221204184207_547_Microsoft.VC.14.33.17.3.Premium.Tools.HostX64.TargetX86.base.log","dd_setup_20221204184207_548_Microsoft.VC.14.33.17.3.Prem.HostX64.TargetX86.Res.base.log","dd_setup_20221204184207_549_Microsoft.VC.14.33.17.3.Premium.Tools.HostX86.TargetX86.base.log","dd_setup_20221204184207_550_Microsoft.VC.14.33.17.3.Prem.HostX86.TargetX86.Res.base.log","dd_setup_20221204184207_551_Microsoft.VC.14.33.17.3.Premium.Tools.HostX86.TargetX64.base.log","dd_setup_20221204184207_552_Microsoft.VC.14.33.17.3.Prem.Hostx86.Targetx64.Res.base.log","dd_setup_20221204184207_553_Microsoft.VC.14.33.17.3.PGO.X86.base.log","dd_setup_20221204184207_554_Microsoft.VC.14.33.17.3.PGO.X64.base.log","dd_setup_20221204184207_555_Microsoft.VC.14.33.17.3.CRT.x86.Store.base.log","dd_setup_20221204184207_556_Microsoft.VC.14.33.17.3.CRT.x86.OneCore.Desktop.base.log","dd_setup_20221204184207_557_Microsoft.VC.14.33.17.3.CRT.x86.Desktop.base.log","dd_setup_20221204184207_558_Microsoft.VC.14.33.17.3.CRT.x64.Store.base.log","dd_setup_20221204184207_559_Microsoft.VC.14.33.17.3.CRT.x64.OneCore.Desktop.base.log","dd_setup_20221204184207_560_Microsoft.VC.14.33.17.3.CRT.x64.Desktop.base.log","dd_setup_20221204184207_561_Microsoft.VC.14.32.17.2.CRT.Redist.x86.OneCore.Desktop.base.log","dd_setup_20221204184207_562_Microsoft.VC.14.32.17.2.CRT.Redist.X86.base.log","dd_setup_20221204184207_563_Microsoft.VC.14.32.17.2.CRT.Redist.x64.OneCore.Desktop.base.log","dd_setup_20221204184207_564_Microsoft.VC.14.32.17.2.CRT.Redist.X64.base.log","dd_setup_20221204184207_565_Microsoft.VC.14.33.17.3.ASAN.X86.base.log","dd_setup_20221204184207_566_Microsoft.VC.14.33.17.3.ASAN.X64.base.log","dd_setup_20221204184207_567_Microsoft.VC.14.33.17.3.ASAN.Headers.base.log","dd_setup_20221204184207_568_Microsoft.VC.14.33.17.3.Premium.Tools.HostX64.TargetX64.base.log","dd_setup_20221204184207_569_Microsoft.VC.14.33.17.3.Prem.HostX64.TargetX64.Res.base.log","dd_setup_20221204184207_570_Microsoft.VC.14.33.17.3.Tools.Core.Props.log","dd_setup_20221204184207_571_Microsoft.VC.14.33.17.3.PGO.Headers.base.log","dd_setup_20221204184207_572_Microsoft.VC.14.33.17.3.CRT.Source.base.log","dd_setup_20221204184207_573_Microsoft.VC.14.33.17.3.CRT.Headers.base.log","dd_setup_20221204184207_574_Microsoft.VC.14.33.17.3.Servicing.CrtHeaders.log","dd_setup_20221204184207_575_Microsoft.VC.14.33.17.3.CodeAnalysis.Extensions.X86.base.log","dd_setup_20221204184207_576_Microsoft.VC.14.33.17.3.CodeAnalysis.X86.Res.base.log","dd_setup_20221204184207_577_Microsoft.VC.14.33.17.3.CodeAnalysis.Extensions.X64.base.log","dd_setup_20221204184207_578_Microsoft.VC.14.33.17.3.Servicing.CAExtensions.log","dd_setup_20221204184207_579_Microsoft.VC.14.33.17.3.CodeAnalysis.X64.Res.base.log","dd_setup_20221204184207_580_Microsoft.VisualStudio.Azure.CommonAzureTools.log","dd_setup_20221204184207_581_Microsoft.VisualStudio.Branding.Community.log","dd_setup_20221204184207_582_Microsoft.VisualStudio.MinShell.Auto.Resources.log","dd_setup_20221204184207_583_Microsoft.VisualStudio.MinShell.Auto.log","dd_setup_20221204184207_584_Microsoft.VisualStudio.MinShell.Resources.x64.log","dd_setup_20221204184207_585_Microsoft.VisualStudio.Devenv.Config.log","dd_setup_20221204184207_586_Microsoft.VisualStudio.NativeImageSupport.log","dd_setup_20221204184207_587_Microsoft.VisualStudio.MinShell.Targeted.log","dd_setup_20221204184207_588_Microsoft.VisualStudio.Platform.Editor.log","dd_setup_20221204184207_589_Microsoft.VisualStudio.ExtensionManager.Resources.log","dd_setup_20221204184207_590_Microsoft.VisualStudio.ExtensionManager.log","dd_setup_20221204184207_591_Microsoft.VisualStudio.Initializer.log","dd_setup_20221204184207_592_Microsoft.VisualStudio.MefHosting.Resources.log","dd_setup_20221204184207_593_Microsoft.VisualStudio.MefHosting.log","dd_setup_20221204184207_594_Microsoft.VisualStudio.Platform.Terminal.log","dd_setup_20221204184207_595_Microsoft.VisualStudio.LanguageServer.Resources.log","dd_setup_20221204184207_596_Microsoft.VisualStudio.LanguageServer.log","dd_setup_20221204184207_597_Microsoft.VisualStudio.Extensibility.Container.log","dd_setup_20221204184207_598_Microsoft.VisualStudio.Setup.Configuration.Interop.log","dd_setup_20221204184207_599_Microsoft.VisualStudio.Setup.WMIProvider.log","dd_setup_20221204184207_600_Microsoft.Net.6.Runtime.log","dd_setup_20221204184207_601_Microsoft.Net.6.WindowsDesktop.Runtime.log","dd_setup_20221204184207_602_Microsoft.VisualStudio.VsWebProtocolSelector.Msi.Resources.log","dd_setup_20221204184207_603_Microsoft.VisualStudio.VsWebProtocolSelector.Msi.log","dd_setup_20221204184207_604_Microsoft.VisualStudio.MinShell.log","dd_setup_20221204184207_605_Microsoft.VisualStudio.Community.ProductArch.Neutral.log","dd_setup_20221204184207_606_Microsoft.VisualStudio.Platform.CallHierarchy.log","dd_setup_20221204184207_607_Microsoft.MSHtml.log","dd_setup_20221204184207_608_Microsoft.VisualStudio.Diagnostics.AspNetHelper.Resources.log","dd_setup_20221204184207_609_Microsoft.VisualStudio.Diagnostics.AspNetHelper.Standard.log","dd_setup_20221204184207_610_Microsoft.VisualStudio.Diagnostics.AspNetHelper.log","dd_setup_20221204184207_611_Microsoft.VisualStudio.WebSiteProject.DTE.log","dd_setup_20221204184207_612_Microsoft.VisualStudio.Community.ProductArch.Resources.Neutral.log","dd_setup_20221204184207_613_Microsoft.VisualStudio.Net.Eula.Resources.log","dd_setup_20221204184207_614_Microsoft.VisualStudio.Community.ProductArch.Resources.NeutralExtra.log","dd_setup_20221204184207_615_Microsoft.VisualStudio.Community.ProductArch.Resources.Targeted.log","dd_setup_20221204184207_616_Microsoft.VisualStudio.Community.CSharp.Resources.Neutral.log","dd_setup_20221204184207_617_Microsoft.VisualStudio.Community.CSharp.Resources.Targeted.log","dd_setup_20221204184207_618_Microsoft.VisualStudio.Community.VB.Resources.Neutral.log","dd_setup_20221204184207_619_Microsoft.VisualStudio.Community.VB.Resources.Targeted.log","dd_setup_20221204184207_620_Microsoft.IntelliTrace.CollectorCab.log","dd_setup_20221204184207_621_Microsoft.DiaSymReader.PortablePdb.log","dd_setup_20221204184207_622_Microsoft.VisualStudio.Community.ProductArch.NeutralExtra.log","dd_setup_20221204184207_623_Microsoft.VisualStudio.Community.ProductArch.Targeted.log","dd_setup_20221204184207_624_Microsoft.VisualStudio.Community.ProductArch.TargetedExtra.log","dd_setup_20221204184207_625_Microsoft.VisualStudio.Community.CSharp.Neutral.log","dd_setup_20221204184207_626_Microsoft.VisualStudio.Community.CSharp.Targeted.log","dd_setup_20221204184207_627_Microsoft.VisualStudio.Community.VB.Neutral.log","dd_setup_20221204184207_628_Microsoft.VisualStudio.Community.VB.Targeted.log","dd_setup_20221204184207_629_Microsoft.VisualStudio.GraphProvider.Resources.log","dd_setup_20221204184207_630_Microsoft.VisualStudio.GraphProvider.log","dd_setup_20221204184207_631_Microsoft.VisualStudio.GraphModel.Resources.log","dd_setup_20221204184207_632_Microsoft.VisualStudio.GraphModel.log","dd_setup_20221204184207_633_Microsoft.VisualStudio.PerformanceProvider.log","dd_setup_20221204184207_634_Microsoft.VisualStudio.Dsl.Core.Resources.log","dd_setup_20221204184207_635_Microsoft.VisualStudio.Dsl.GraphObject.log","dd_setup_20221204184207_636_Microsoft.VisualStudio.Dsl.Core.log","dd_setup_20221204184207_637_Microsoft.VisualStudio.VirtualTree.Resources.log","dd_setup_20221204184207_638_Microsoft.VisualStudio.VirtualTree.log","dd_setup_20221204184207_639_Microsoft.VisualCpp.Tools.Common.Utils.Resources.log","dd_setup_20221204184207_640_Microsoft.VisualCpp.Tools.Common.Utils.log","dd_setup_20221204184207_641_Microsoft.VisualStudio.VC.Ide.Base.Resources.log","dd_setup_20221204184207_642_Microsoft.VisualStudio.VC.Llvm.Base.log","dd_setup_20221204184207_643_Microsoft.VisualStudio.VC.Ide.LanguageService.Resources.log","dd_setup_20221204184207_644_Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine.Resources.log","dd_setup_20221204184207_645_Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine.log","dd_setup_20221204184207_646_Microsoft.VisualStudio.VC.Ide.ProjectSystem.Resources.log","dd_setup_20221204184207_647_Microsoft.VisualStudio.VC.Ide.ProjectSystem.log","dd_setup_20221204184207_648_Microsoft.VisualStudio.VisualC.Utilities.Resources.log","dd_setup_20221204184207_649_Microsoft.VisualStudio.VisualC.Utilities.log","dd_setup_20221204184207_650_Microsoft.VisualStudio.VC.Ide.Core.log","dd_setup_20221204184207_651_Microsoft.VisualStudio.VC.Ide.ResourceEditor.Resources.log","dd_setup_20221204184207_652_Microsoft.VisualStudio.VC.Ide.ResourceEditor.log","dd_setup_20221204184207_653_Microsoft.VisualStudio.VC.Ide.VCPkgDatabase.log","dd_setup_20221204184207_654_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.1.log","dd_setup_20221204184207_655_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.2.log","dd_setup_20221204184207_656_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.3.log","dd_setup_20221204184207_657_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.4.log","dd_setup_20221204184207_658_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.5.log","dd_setup_20221204184207_659_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.6.log","dd_setup_20221204184207_660_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.7.log","dd_setup_20221204184207_661_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.8.log","dd_setup_20221204184207_662_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.9.log","dd_setup_20221204184207_663_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.10.log","dd_setup_20221204184207_664_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.PythonDistro.log","dd_setup_20221204184207_665_Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.Scripts.log","dd_setup_20221204184207_666_Microsoft.VisualStudio.Cache.Service.log","dd_setup_20221204184207_667_Microsoft.VisualStudio.VC.Ide.LanguageService.log","dd_setup_20221204184207_668_Microsoft.VisualStudio.VC.Ide.Base.log","dd_setup_20221204184207_669_Microsoft.VisualStudio.VC.Ide.Common.Resources.log","dd_setup_20221204184207_670_Microsoft.VisualStudio.VC.MSVCDis.log","dd_setup_20221204184207_671_Microsoft.VisualStudio.VC.Ide.Common.log","dd_setup_20221204184207_672_Microsoft.VisualStudio.VC.Ide.Debugger.Resources.log","dd_setup_20221204184207_673_Microsoft.VisualStudio.VC.Ide.Debugger.Concord.Resources.log","dd_setup_20221204184207_674_Microsoft.VisualStudio.VC.Ide.Debugger.Concord.log","dd_setup_20221204184207_675_Microsoft.VisualStudio.VC.Ide.Debugger.log","dd_setup_20221204184207_676_Microsoft.VisualStudio.VC.Ide.Dskx.Resources.log","dd_setup_20221204184207_677_Microsoft.VisualStudio.VC.Ide.Dskx.log","dd_setup_20221204184207_678_Microsoft.VisualStudio.VC.Ide.WinXPlus.log","dd_setup_20221204184207_679_Microsoft.VisualStudio.VC.MSBuild.v170.Base.Resources.log","dd_setup_20221204184207_680_Microsoft.VisualStudio.VC.MSBuild.v170.Base.log","dd_setup_20221204184207_681_Microsoft.VisualStudio.VC.MSBuild.v170.X86.log","dd_setup_20221204184207_682_Microsoft.VisualStudio.VC.MSBuild.v170.x86.v143.log","dd_setup_20221204184207_683_Microsoft.VisualStudio.VC.MSBuild.v170.ARM.log","dd_setup_20221204184207_684_Microsoft.VisualStudio.VC.MSBuild.v170.ARM.v143.log","dd_setup_20221204184207_685_Microsoft.VisualStudio.VC.MSBuild.v170.X64.log","dd_setup_20221204184207_686_Microsoft.VisualStudio.VC.MSBuild.v170.X64.v143.log","dd_setup_20221204184207_687_Microsoft.VisualStudio.Debugger.Remote.DiagnosticsHub.Client.log","dd_setup_20221204184207_688_Microsoft.VisualStudio.Debugger.Remote.DiagnosticsHub.Client.log","dd_setup_20221204184207_689_Microsoft.VisualStudio.Debugger.Package.DiagHub.Client.log","dd_setup_20221204184207_690_Microsoft.VisualStudio.PerfLib.log","dd_setup_20221204184207_691_Microsoft.VisualStudio.Debugger.Resources.log","dd_setup_20221204184207_692_Microsoft.VisualStudio.Debugger.Concord.Resources.log","dd_setup_20221204184207_693_Microsoft.VisualStudio.Debugger.Concord.log","dd_setup_20221204184207_694_Microsoft.IntelliTrace.DiagnosticsHub.Resources.log","dd_setup_20221204184207_695_Microsoft.IntelliTrace.DiagnosticsHub.log","dd_setup_20221204184207_696_Microsoft.VisualStudio.Editors.log","dd_setup_20221204184207_697_Microsoft.VisualStudio.AzureSDK.log","dd_setup_20221204184207_698_Microsoft.VisualStudio.Debugger.log","dd_setup_20221204184207_699_Microsoft.VisualStudio.Debugger.Remote.Resources.log","dd_setup_20221204184207_700_Microsoft.VisualStudio.Debugger.Remote.Resources.log","dd_setup_20221204184207_701_Microsoft.VisualStudio.Debugger.Concord.Remote.Resources.log","dd_setup_20221204184207_702_Microsoft.VisualStudio.Debugger.Concord.Remote.log","dd_setup_20221204184207_703_Microsoft.VisualStudio.Debugger.Remote.log","dd_setup_20221204184207_704_Microsoft.VisualStudio.Debugger.Concord.Remote.Resources.log","dd_setup_20221204184207_705_Microsoft.VisualStudio.Debugger.Concord.Remote.log","dd_setup_20221204184207_706_Microsoft.VisualStudio.Debugger.Remote.log","dd_setup_20221204184207_707_Microsoft.VisualStudio.Debugger.TargetComposition.Remote.log","dd_setup_20221204184207_708_Microsoft.VisualStudio.Debugger.TargetComposition.Remote.log","dd_setup_20221204184207_709_Microsoft.VisualStudio.Debugger.TargetComposition.log","dd_setup_20221204184207_710_Microsoft.VisualStudio.Debugger.Managed.Resources.log","dd_setup_20221204184207_711_Microsoft.VisualStudio.Debugger.Concord.Managed.Resources.log","dd_setup_20221204184207_712_Microsoft.VisualStudio.Debugger.Concord.Managed.log","dd_setup_20221204184207_713_Microsoft.CodeAnalysis.VisualStudio.Setup.log","dd_setup_20221204184207_714_Microsoft.CodeAnalysis.ExpressionEvaluator.log","dd_setup_20221204184207_715_Microsoft.DiaSymReader.log","dd_setup_20221204184207_716_Microsoft.VisualStudio.Debugger.Managed.log","dd_setup_20221204184207_717_Microsoft.VisualStudio.Debugger.Parallel.Resources.log","dd_setup_20221204184207_718_Microsoft.VisualStudio.Debugger.Parallel.log","dd_setup_20221204184207_719_Microsoft.VisualStudio.Debugger.CollectionAgents.log","dd_setup_20221204184207_720_Microsoft.VisualStudio.Debugger.AzureAttach.Resources.log","dd_setup_20221204184207_721_Microsoft.VisualStudio.Web.Azure.Common.Resources.log","dd_setup_20221204184207_722_Microsoft.WebTools.DotNet.Core.ItemTemplates.Resources.log","dd_setup_20221204184207_723_Microsoft.WebTools.DotNet.Core.ItemTemplates.log","dd_setup_20221204184207_724_Microsoft.WebTools.Shared.Resources.log","dd_setup_20221204184207_725_Microsoft.WebTools.Shared.log","dd_setup_20221204184207_726_Microsoft.VisualStudio.Web.Azure.Common.log","dd_setup_20221204184207_727_Microsoft.VisualStudio.Debugger.AzureAttach.log","dd_setup_20221204184207_728_Microsoft.VisualStudio.Debugger.VSCodeDebuggerHost.log","dd_setup_20221204184207_729_Microsoft.VisualStudio.Debugger.BrokeredServices.log","dd_setup_20221204184207_730_Microsoft.VisualStudio.Debugger.Script.Remote.Resources.log","dd_setup_20221204184207_731_Microsoft.VisualStudio.Debugger.Script.Remote.Resources.log","dd_setup_20221204184207_732_Microsoft.VisualStudio.Debugger.Script.Remote.log","dd_setup_20221204184207_733_Microsoft.VisualStudio.Debugger.Script.Remote.log","dd_setup_20221204184207_734_Microsoft.VisualStudio.Debugger.Script.Resources.log","dd_setup_20221204184207_735_Microsoft.VisualStudio.Debugger.Script.log","dd_setup_20221204184207_736_Microsoft.VS.VC.vcvars.x64.Shortcuts.log","dd_setup_20221204184207_737_Microsoft.VS.VC.vcvars.x86.Shortcuts.log","dd_setup_20221204184207_738_Microsoft.VisualStudio.VC.vcvars.log","dd_setup_20221204184207_739_Microsoft.VisualStudio.VC.Ide.x64.log","dd_setup_20221204184207_740_Microsoft.VisualStudio.Connected.Resources.log","dd_setup_20221204184207_741_Microsoft.VisualStudio.Connected.Auto.Resources.log","dd_setup_20221204184207_742_Microsoft.VisualStudio.Connected.Auto.log","dd_setup_20221204184207_743_SQLitePCLRaw.Targeted.log","dd_setup_20221204184207_744_SQLitePCLRaw.log","dd_setup_20221204184207_745_Microsoft.VisualStudio.Connected.log","dd_setup_20221204184207_746_Microsoft.VisualStudio.Platform.NavigateTo.log","dd_setup_20221204184207_747_Microsoft.VisualStudio.Navigation.RichCodeNav.log","dd_setup_20221204184207_748_Microsoft.VisualStudio.CoreEditor.log","dd_setup_20221204184207_749_Microsoft.VisualStudio.Devenv.Resources.log","dd_setup_20221204184207_750_Microsoft.VisualStudio.Devenv.log","dd_setup_20221204184207_751_Microsoft.VisualStudio.Finalizer.log","dd_setup_20221204184207_752_Microsoft.VisualStudio.Log.Resources.log","dd_setup_20221204184207_753_Microsoft.VisualStudio.Log.Targeted.log","dd_setup_20221204184207_754_Microsoft.VisualStudio.Log.log","dd_setup_20221204184207_755_CoreEditorFonts.log","dd_setup_20221204184207_756_Microsoft.VisualStudio.MinShell.Interop.log","dd_setup_20221204184207_757_Microsoft.VisualStudio.MinShell.Msi.Resources.log","dd_setup_20221204184207_758_Microsoft.VisualStudio.MinShell.Shared.Msi.log","dd_setup_20221204184207_759_Microsoft.VisualStudio.MinShell.Msi.log","dd_setup_20221204184207_760_Microsoft.VisualStudio.FileHandler.Msi.log","dd_setup_20221204184207_761_Microsoft.VisualStudio.FileHandler.Msi.log","dd_setup_20221204184207_762_Microsoft.VisualStudio.OpenFolder.VSIX.log","dd_setup_20221204184207_763_Microsoft.VisualStudio.ProjectServices.log","dd_setup_20221204184207_764_Microsoft.ServiceHub.amd64.log","dd_setup_20221204184207_765_Microsoft.ServiceHub.Managed.log","dd_setup_20221204184207_766_Microsoft.ServiceHub.Node.log","dd_setup_20221204184207_767_Microsoft.VisualStudio.TeamExplorer.log","dd_setup_20221204184207_768_Microsoft.VisualStudio.Platform.CrossRepositorySearch.log","dd_setup_20221204184207_769_Microsoft.VisualStudio.Platform.Markdown.log","dd_setup_20221204184207_770_Microsoft.VisualStudio.TextMateGrammars.log","dd_setup_20221204184207_771_Microsoft.Build.UnGAC.log","dd_setup_20221204184207_772_Microsoft.VisualStudio.NuGet.Core.log","dd_setup_20221204184207_773_Microsoft.DataAI.NuGetRecommender.log","dd_setup_20221204184207_774_Microsoft.Build.log","dd_setup_20221204184207_775_Microsoft.Build.FileTracker.Msi.log","dd_setup_20221204184207_776_Microsoft.Build.Dependencies.log","dd_setup_20221204184207_777_Microsoft.VisualStudio.VC.DevCmd.Resources.log","dd_setup_20221204184207_778_Microsoft.VisualStudio.VC.DevCmd.log","dd_setup_20221204184207_779_Microsoft.VisualStudio.VsDevCmd.Core.DotNet.log","dd_setup_20221204184207_780_Microsoft.VisualStudio.VsDevCmd.Core.WinSdk.log","dd_setup_20221204184207_781_Microsoft.VisualStudio.VsDevCmd.Ext.NetFxSdk.log","dd_setup_20221204184207_782_Microsoft.VisualCpp.Tools.Common.UtilsPrereq.log","dd_setup_20221204184207_783_Microsoft.VisualStudio.ScriptedHost.Targeted.log","dd_setup_20221204184207_784_Microsoft.VisualStudio.ScriptedHost.Resources.log","dd_setup_20221204184207_785_Microsoft.VisualStudio.ScriptedHost.log","dd_setup_20221204184207_786_Microsoft.WebView2.log","dd_setup_20221204184207_787_Microsoft.VisualStudio.MinShell.Interop.Shared.Msi.log","dd_setup_20221204184207_788_Microsoft.VisualStudio.MinShell.Interop.Msi.log","dd_setup_20221204184207_789_Microsoft.VisualStudio.Devenv.Shared.Msi.log","dd_setup_20221204184207_790_Microsoft.VisualStudio.Devenv.Msi.log","dd_setup_20221204184207_791_Microsoft.VisualStudio.Community.Shared.Msi.log","dd_setup_20221204184207_792_Microsoft.VisualStudio.Community.Msi.log","dd_setup_20221204184207_793_Microsoft.VisualStudio.Community.Msi.Resources.log","dd_setup_20221204184207_794_Microsoft.VisualStudio.Community.x64.log","dd_setup_20221204184207_795_Microsoft.VisualStudio.Community.x86.log","dd_setup_20221204184207_796_Microsoft.VisualStudio.ProjectSystem.log","dd_setup_20221204184207_797_Microsoft.VisualStudio.ProjectSystem.Query.log","dd_setup_20221204184207_798_Microsoft.VisualStudio.LiveShareApi.log","dd_setup_20221204184207_799_Microsoft.VisualStudio.ProjectSystem.Full.log","dd_setup_20221204184207_800_Microsoft.VisualStudio.ClientDiagnostics.Resources.log","dd_setup_20221204184207_801_Microsoft.VisualStudio.ClientDiagnostics.Targeted.log","dd_setup_20221204184207_802_Microsoft.VisualStudio.ClientDiagnostics.log","dd_setup_20221204184207_803_Microsoft.VisualStudio.AppResponsiveness.Resources.log","dd_setup_20221204184207_804_Microsoft.VisualStudio.AppResponsiveness.Targeted.log","dd_setup_20221204184207_805_Microsoft.VisualStudio.AppResponsiveness.log","dd_setup_20221204184207_806_Microsoft.VisualStudio.TestTools.TeamFoundationClient.Resources.log","dd_setup_20221204184207_807_Microsoft.VisualStudio.TestTools.TeamFoundationClient.log","dd_setup_20221204184207_808_Microsoft.VisualStudio.CodeSense.Community.Resources.log","dd_setup_20221204184207_809_Microsoft.VisualStudio.CodeSense.Community.log","dd_setup_20221204184207_810_Microsoft.VisualStudio.VC.Ide.MDD.Resources.log","dd_setup_20221204184207_811_Microsoft.VisualStudio.VC.Ide.MDD.log","dd_setup_20221204184207_812_Microsoft.VisualStudio.Community.VB.x64.log","dd_setup_20221204184207_813_Microsoft.VisualStudio.Community.VB.x86.log","dd_setup_20221204184207_814_Microsoft.VisualStudio.WebTools.WSP.FSA.Resources.log","dd_setup_20221204184207_815_Microsoft.VisualStudio.WebTools.WSP.FSA.log","dd_setup_20221204184207_816_Microsoft.VisualStudio.WebTools.Resources.log","dd_setup_20221204184207_817_Microsoft.VisualStudio.WebToolsExtensions.MSBuild.Resources.log","dd_setup_20221204184207_818_Microsoft.VisualStudio.WebToolsExtensions.MSBuild.log","dd_setup_20221204184207_819_Microsoft.VisualStudio.WebTools.log","dd_setup_20221204184207_820_Microsoft.VisualStudio.WebToolsExtensions.Resources.log","dd_setup_20221204184207_821_Microsoft.VisualStudio.ConnectedServices.Core.log","dd_setup_20221204184207_822_Microsoft.VisualStudio.WebToolsExtensions.log","dd_setup_20221204184207_823_Microsoft.VisualStudio.Web.Scaffolding.Resources.log","dd_setup_20221204184207_824_Microsoft.VisualStudio.Web.Scaffolding.log","dd_setup_20221204184207_825_Microsoft.VisualStudio.ProTools.Resources.log","dd_setup_20221204184207_826_SQLCommon.Resources.log","dd_setup_20221204184207_827_SQLCommon.log","dd_setup_20221204184207_828_SQLCommon.amd64.log","dd_setup_20221204184207_829_Microsoft.VisualStudio.ProTools.log","dd_setup_20221204184207_830_Microsoft.CodeAnalysis.Compilers.log","dd_setup_20221204184207_831_Microsoft.NuGet.Build.Tasks.Setup.log","dd_setup_20221204184207_832_Roslyn.VisualStudio.Setup.ServiceHub.log","dd_setup_20221204184207_833_Microsoft.VisualStudio.StaticAnalysis.auxil.Resources.log","dd_setup_20221204184207_834_Microsoft.VisualStudio.StaticAnalysis.auxil.log","dd_setup_20221204184207_835_Microsoft.VisualStudio.StaticAnalysis.FxCop.Resources.log","dd_setup_20221204184207_836_Microsoft.VisualStudio.StaticAnalysis.FxCop.log","dd_setup_20221204184207_837_Microsoft.VisualStudio.StaticAnalysis.IDE.Resources.log","dd_setup_20221204184207_838_Microsoft.VisualStudio.StaticAnalysis.IDE.log","dd_setup_20221204184207_839_Microsoft.VisualCpp.Servicing.Redist.log","dd_setup_20221204184207_840_Microsoft.DiaSymReader.Native.log","dd_setup_20221204184207_841_Microsoft.VisualStudio.ProjectSystem.Managed.log","dd_setup_20221204184207_842_Microsoft.VisualStudio.ProjectSystem.Managed.CommonFiles.log","dd_setup_20221204184207_843_Microsoft.VisualStudio.ClickOnce.log","dd_setup_20221204184207_844_Microsoft.VisualStudio.ClickOnce.Resources.log","dd_setup_20221204184207_845_Microsoft.ClickOnce.BootStrapper.Msi.log","dd_setup_20221204184207_846_Microsoft.ClickOnce.BootStrapper.Msi.Resources.log","dd_setup_20221204184207_847_Microsoft.Net.ClickOnceBootstrapper.log","dd_setup_20221204184207_848_Microsoft.Net.Core.BootstrapperPackages.log","dd_setup_20221204184207_849_Microsoft.SQL.ClickOnceBootstrapper.Msi.log","dd_setup_20221204184207_850_Microsoft.ClickOnce.SignTool.Msi.log","dd_setup_20221204184207_851_Microsoft.VisualCpp.CRT.ClickOnce.Msi.log","dd_setup_20221204184207_852_Microsoft.VisualStudio.TextTemplating.Integration.Resources.log","dd_setup_20221204184207_853_Microsoft.VisualStudio.TextTemplating.Core.Resources.log","dd_setup_20221204184207_854_Microsoft.VisualStudio.TextTemplating.Core.log","dd_setup_20221204184207_855_Microsoft.VisualStudio.TextTemplating.Integration.log","dd_setup_20221204184207_856_Microsoft.VisualStudio.TextTemplating.MSBuild.Resources.log","dd_setup_20221204184207_857_Microsoft.VisualStudio.TextTemplating.MSBuild.log","dd_setup_20221204184207_858_Microsoft.Publish.Framework.Resources.log","dd_setup_20221204184207_859_Azure.Storage.Emulator.log","dd_setup_20221204184207_860_Microsoft.Publish.Framework.log","dd_setup_20221204184207_861_Microsoft.VisualStudio.NuGet.Licenses.log","dd_setup_20221204184207_862_Microsoft.VisualStudio.TestTools.TestPlatform.IDE.log","dd_setup_20221204184207_863_Microsoft.VisualStudio.TestTools.TP.V1.CLI.Resources.log","dd_setup_20221204184207_864_Microsoft.VisualStudio.TestTools.TestPlatform.V1.CLI.log","dd_setup_20221204184207_865_Microsoft.VisualStudio.TestTools.TestWIExtension.Res.log","dd_setup_20221204184207_866_Microsoft.VisualStudio.TestTools.TestWIExtension.log","dd_setup_20221204184207_867_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Agent.log","dd_setup_20221204184207_868_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core.Resources.log","dd_setup_20221204184207_869_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core.log","dd_setup_20221204184207_870_Microsoft.VisualStudio.TestTools.TP.Legacy.Common.Res.log","dd_setup_20221204184207_871_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Common.log","dd_setup_20221204184207_872_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Professional.log","dd_setup_20221204184207_873_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.TestSettings.Resources.log","dd_setup_20221204184207_874_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.TestSettings.log","dd_setup_20221204184207_875_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips.Resources.log","dd_setup_20221204184207_876_Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips.log","dd_setup_20221204184207_877_Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Common.log","dd_setup_20221204184207_878_Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Msi.log","dd_setup_20221204184207_879_Microsoft.VisualStudio.TestTools.Pex.Common.Resources.log","dd_setup_20221204184207_880_Microsoft.VisualStudio.TestTools.Pex.Common.log","dd_setup_20221204184207_881_Microsoft.VisualStudio.TestTools.TestPlatform.V2.CLI.log","dd_setup_20221204184207_882_Microsoft.VisualStudio.TestTools.TestGeneration.Resources.log","dd_setup_20221204184207_883_Microsoft.VisualStudio.TestTools.TestGeneration.log","dd_setup_20221204184207_884_Microsoft.VisualStudio.TestWindow.SourceBasedTestDiscovery.log","dd_setup_20221204184207_885_Microsoft.IntelliTrace.Core.Resources.log","dd_setup_20221204184207_886_Microsoft.IntelliTrace.Core.Targeted.Resources.log","dd_setup_20221204184207_887_Microsoft.IntelliTrace.Core.Targeted.log","dd_setup_20221204184207_888_Microsoft.IntelliTrace.Core.Concord.log","dd_setup_20221204184207_889_Microsoft.IntelliTrace.Core.log","dd_setup_20221204184207_890_Microsoft.VisualStudio.XamlShared.Resources.log","dd_setup_20221204184207_891_Microsoft.VisualStudio.XamlShared.log","dd_setup_20221204184207_892_Microsoft.VisualStudio.XamlDesigner.Executables.log","dd_setup_20221204184207_893_Microsoft.VisualStudio.XamlDesigner.Resources.log","dd_setup_20221204184207_894_Microsoft.VisualStudio.XamlDesigner.log","dd_setup_20221204184207_895_Microsoft.VisualStudio.XamlDiagnostics.Resources.log","dd_setup_20221204184207_896_Microsoft.VisualStudio.XamlDiagnostics.log","dd_setup_20221204184207_897_Microsoft.VisualStudio.ConnectedServices.Office365.log","dd_setup_20221204184207_898_Microsoft.VisualStudio.ConnectedServices.Wcf.log","dd_setup_20221204184207_899_Microsoft.VisualStudio.AppCapDesigner.log","dd_setup_20221204184207_900_Microsoft.VisualStudio.Templates.CS.ManagedCore.Resources.log","dd_setup_20221204184207_901_Microsoft.VisualStudio.Templates.CS.Shared.Resources.log","dd_setup_20221204184207_902_Templates.Editorconfig.SolutionFile.Setup.log","dd_setup_20221204184207_903_Microsoft.VisualStudio.Templates.Editorconfig.Wizard.Setup.log","dd_setup_20221204184207_904_Microsoft.VisualStudio.Templates.Editorconfig.Command.log","dd_setup_20221204184207_905_Microsoft.VisualStudio.Templates.CS.Shared.log","dd_setup_20221204184207_906_Microsoft.VisualStudio.Templates.AssemblyInfo.Wizard.log","dd_setup_20221204184207_907_Microsoft.VisualStudio.Templates.CS.ManagedCore.log","dd_setup_20221204184207_908_Microsoft.VisualStudio.Templates.VB.ManagedCore.Resources.log","dd_setup_20221204184207_909_Microsoft.VisualStudio.Templates.VB.Shared.Resources.log","dd_setup_20221204184207_910_Microsoft.VisualStudio.Templates.VB.Shared.log","dd_setup_20221204184207_911_Microsoft.VisualStudio.Templates.VB.ManagedCore.log","dd_setup_20221204184207_912_Microsoft.VisualStudio.TestTools.Templates.Managed.Resources.log","dd_setup_20221204184207_913_Microsoft.VisualStudio.TestTools.Templates.Managed.log","dd_setup_20221204184207_914_Microsoft.VisualStudio.VC.Ide.Linux.ConnectionManager.Resources.log","dd_setup_20221204184207_915_Microsoft.VisualStudio.VC.Ide.Linux.ConnectionManager.log","dd_setup_20221204184207_916_Microsoft.NetCore.SdkPlaceholder.7.0.100-rtm.22521.12.log","dd_setup_20221204184207_917_Microsoft.AspNetCore.SharedFramework.6.0.6.0.11-servicing.22523.4.log","dd_setup_20221204184207_918_Microsoft.AspNetCore.SharedFramework.6.0.6.0.11-servicing.22523.4.log","dd_setup_20221204184207_919_Microsoft.AspNetCore.TargetingPack.6.0.6.0.11-servicing.22523.4.log","dd_setup_20221204184207_920_Microsoft.AspNetCore.TargetingPack.6.0.6.0.11-servicing.22523.4.log","dd_setup_20221204184207_921_Microsoft.NetCore.AppHostPack.6.0.6.0.11.arm.log","dd_setup_20221204184207_922_Microsoft.NetCore.AppHostPack.6.0.6.0.11.arm64.log","dd_setup_20221204184207_923_Microsoft.NetCore.AppHostPack.6.0.6.0.11.x64.log","dd_setup_20221204184207_924_Microsoft.NetCore.AppHostPack.6.0.6.0.11.x86.log","dd_setup_20221204184207_925_Microsoft.NetCore.SharedFramework.6.0.6.0.11.log","dd_setup_20221204184207_926_Microsoft.NetCore.SharedFramework.6.0.6.0.11.log","dd_setup_20221204184207_927_Microsoft.NetCore.TargetingPack.6.0.6.0.11.log","dd_setup_20221204184207_928_Microsoft.NetCore.TargetingPack.6.0.6.0.11.log","dd_setup_20221204184207_929_Microsoft.NetCore.Templates.6.0.7.0.100-rtm.22521.12.log","dd_setup_20221204184207_930_Microsoft.WindowsDesktop.SharedFramework.6.0.6.0.11.log","dd_setup_20221204184207_931_Microsoft.WindowsDesktop.SharedFramework.6.0.6.0.11.log","dd_setup_20221204184207_932_Microsoft.WindowsDesktop.TargetingPack.6.0.6.0.11.log","dd_setup_20221204184207_933_Microsoft.WindowsDesktop.TargetingPack.6.0.6.0.11.log","dd_setup_20221204184207_934_Microsoft.AspNetCore.SharedFramework.7.0.7.0.0-rtm.22518.19.log","dd_setup_20221204184207_935_Microsoft.AspNetCore.SharedFramework.7.0.7.0.0-rtm.22518.19.log","dd_setup_20221204184207_936_Microsoft.AspNetCore.TargetingPack.7.0.7.0.0-rtm.22518.19.log","dd_setup_20221204184207_937_Microsoft.AspNetCore.TargetingPack.7.0.7.0.0-rtm.22518.19.log","dd_setup_20221204184207_938_Microsoft.NetCore.AppHostPack.7.0.7.0.0.arm.log","dd_setup_20221204184207_939_Microsoft.NetCore.AppHostPack.7.0.7.0.0.arm64.log","dd_setup_20221204184207_940_Microsoft.NetCore.AppHostPack.7.0.7.0.0.x64.log","dd_setup_20221204184207_941_Microsoft.NetCore.AppHostPack.7.0.7.0.0.x86.log","dd_setup_20221204184207_942_Microsoft.NetCore.SharedFramework.7.0.7.0.0.log","dd_setup_20221204184207_943_Microsoft.NetCore.SharedFramework.7.0.7.0.0.log","dd_setup_20221204184207_944_Microsoft.NetCore.TargetingPack.7.0.7.0.0.log","dd_setup_20221204184207_945_Microsoft.NetCore.TargetingPack.7.0.7.0.0.log","dd_setup_20221204184207_946_Microsoft.NetCore.Templates.7.0.7.0.100-rtm.22521.12.log","dd_setup_20221204184207_947_Microsoft.WindowsDesktop.SharedFramework.7.0.7.0.0.log","dd_setup_20221204184207_948_Microsoft.WindowsDesktop.SharedFramework.7.0.7.0.0.log","dd_setup_20221204184207_949_Microsoft.WindowsDesktop.TargetingPack.7.0.7.0.0.log","dd_setup_20221204184207_950_Microsoft.WindowsDesktop.TargetingPack.7.0.7.0.0.log","dd_setup_20221204184207_951_Microsoft.NetCore.HostFXR.7.0.0.log","dd_setup_20221204184207_952_Microsoft.NetCore.HostFXR.7.0.0.log","dd_setup_20221204184207_953_Microsoft.NetCore.SharedHost.7.0.0.log","dd_setup_20221204184207_954_Microsoft.NetCore.SharedHost.7.0.0.log","dd_setup_20221204184207_955_Microsoft.NetCore.Toolset.7.0.100.log","dd_setup_20221204184207_956_Microsoft.Net.Core.SDK.MSBuildExtensions.log","dd_setup_20221204184207_957_Microsoft.NetCore.TemplateLocator.log","dd_setup_20221204184207_958_Android.Manifest-7.0.100.log","dd_setup_20221204184207_959_Microsoft.NET.Sdk.iOS.Manifest-7.0.100.log","dd_setup_20221204184207_960_Microsoft.MacCatalyst.Manifest-7.0.100.log","dd_setup_20221204184207_961_Microsoft.NET.Sdk.Maui.Manifest-7.0.100.log","dd_setup_20221204184207_962_Emsdk.6.Manifest-7.0.100.log","dd_setup_20221204184207_963_Emsdk.7.Manifest-7.0.100.log","dd_setup_20221204184207_964_Mono.6.Manifest-7.0.100.log","dd_setup_20221204184207_965_Mono.7.Manifest-7.0.100.log","dd_setup_20221204184207_966_Microsoft.NET.Sdk.macOS.Manifest-7.0.100.log","dd_setup_20221204184207_967_Microsoft.NET.Sdk.tvOS.Manifest-7.0.100.log","dd_setup_20221204184207_968_Microsoft.FSharp.SDK.log","dd_setup_20221204184207_969_Microsoft.FSharp.Dependencies.log","dd_setup_20221204184207_970_Microsoft.FSharp.Compiler.log","dd_setup_20221204184207_971_Microsoft.FSharp.VSIX.Full.Core.log","dd_setup_20221204184207_972_Microsoft.FSharp.IDE.log","dd_setup_20221204184207_973_Microsoft.NetCore.FSharp.ProjectTemplates.log","dd_setup_20221204184207_974_Microsoft.NetCore.FSharp.ProjectTemplates.Test.log","dd_setup_20221204184207_975_Microsoft.NetStandard.FSharp.ProjectTemplates.log","dd_setup_20221204184207_976_Microsoft.NetCore.CSharp.ProjectTemplates.log","dd_setup_20221204184207_977_Microsoft.NetCore.CSharp.ProjectTemplates.Test.log","dd_setup_20221204184207_978_Microsoft.NetCore.CSharp.ProjectTemplates.Desktop.log","dd_setup_20221204184207_979_Microsoft.NetCore.VB.ProjectTemplates.log","dd_setup_20221204184207_980_Microsoft.NetCore.VB.ProjectTemplates.Test.log","dd_setup_20221204184207_981_Microsoft.NetCore.VB.ProjectTemplates.Desktop.log","dd_setup_20221204184207_982_Microsoft.VisualStudio.TemplateEngine.Resources.log","dd_setup_20221204184207_983_Microsoft.VisualStudio.TemplateEngine.log","dd_setup_20221204184207_984_Microsoft.VisualStudio.Windows.Forms.log","dd_setup_20221204184207_985_Microsoft.VisualStudio.ClickOnce.Publish.log","dd_setup_20221204184207_986_Microsoft.VisualStudio.HotReload.Components.log","dd_setup_20221204184207_987_Microsoft.NetStandard.CSharp.ProjectTemplates.log","dd_setup_20221204184207_988_Microsoft.NetStandard.VB.ProjectTemplates.log","dd_setup_20221204184207_989_Microsoft.DiagnosticsHub.Collection.log","dd_setup_20221204184207_990_Microsoft.DiagnosticsHub.Collection.ExternalDependencies.x64.log","dd_setup_20221204184207_991_Microsoft.DiagnosticsHub.Runtime.Resources.log","dd_setup_20221204184207_992_Microsoft.DiagnosticsHub.Runtime.Targeted.log","dd_setup_20221204184207_993_Microsoft.DiagnosticsHub.Runtime.log","dd_setup_20221204184207_994_Microsoft.DiagnosticsHub.Runtime.ExternalDependencies.Targeted.log","dd_setup_20221204184207_995_SQLiteCore.Targeted.log","dd_setup_20221204184207_996_SQLiteCore.log","dd_setup_20221204184207_997_Microsoft.DiagnosticsHub.Runtime.ExternalDependencies.log","dd_setup_20221204184207_998_Microsoft.DiagnosticsHub.CpuSampling.Resources.log","dd_setup_20221204184207_999_Microsoft.DiagnosticsHub.CpuSampling.Targeted.log","dd_setup_20221204184207_errors.log","dd_setup_20221204190517.log","dd_setup_20221204190517_errors.log","dd_vcredist_amd64_20221204190407.log","dd_vcredist_wrapper_x64_20221204190357.log","dd_vcredist_wrapper_x86_20221204190337.log","dd_vcredist_x86_20221204190356.log","dd_vs_setup_bootstrapper_decompression_log.txt","de056c10-6803-4487-951a-f5f82de8fc2a.tmp.ico","de1f202b-4a0e-4e50-8e54-cad50b7e296e.tmp.node","DE3C23540731B720B2C723E35325EBF70CC6E01CA069EB50343FC7CBF0509808875709109D18D1A4C5AC2EC1EEE7B0F3B2C66EDA55875A9495CD7B48DC8474BDF59527922C016BB912%2F0_637e0a1e_fe640014.tmp","de4a6ef6-e158-4f4c-9c72-0d490eac86e4.tmp.node","de55b07f-c6a1-4502-9bdf-575c50419278.tmp.node","de70fdb7-ee0e-4417-947b-867412cee1f4.tmp.node","dea1fb62-92b6-4b35-b664-42207e323d40.tmp.ico","defc9de0-0534-43ce-ad7a-06adf4eb7641.tmp","devhqsnd.izc","df5056c3-a6a7-4e06-ad42-9bddc5dca3f7.tmp.ico","dfd202a6-e218-4bc2-82e0-6de825128ff2.tmp.ico","Diagnostics","dj3xffj0.1oi","dlqqihlu.ch2","dnl3saav.ee2","DockerDesktop","domo0c1e.0ck","dow1vaf2.vfm","DREAMER-PC-20221024-1623.log","DREAMER-PC-20221024-1623a.log","DREAMER-PC-20221024-1638.log","DREAMER-PC-20221029-1338.log","DREAMER-PC-20221126-1534.log","DREAMER-PC-20221218-1855.log","dsai2h4g.22g","dwdvc3vx.dx4","dxxg5h55.iy5","dy2bc33c.emf","dzp5nocq.gys","e1f59e36-0eea-48f6-8a3d-a4fa52d76289.tmp.ico","e2063133-07d9-4f6f-95fb-0d49f2edcd5e.tmp","e3c8a2b6-e8b5-46ea-9c22-c29d70b3574f.PackageExtraction","e411d764-6721-49b2-a46d-5a47d9ab1bf6.tmp","e4mcwp4d.v2p","E66FB26F161E43A0AC74BC223F7625C0","e7f4efa9-55f2-4676-bb74-e12c47b36574.tmp","e822ec09-cc9c-4360-b0c8-e169236aa6b0.PackageExtraction","e8d42507-cf3c-4ad9-951d-d6c00d0cee5c.tmp.ico","e923a0c9-1110-4f7a-b7e5-355c18142bbf.tmp.ico","ea553056-c6e3-43a6-a46a-de8acb74a603.PackageExtraction","EB477E8.tmp","EB49AF2.tmp","eb49db1c-0445-478d-b717-7ccd4c310351.tmp.node","ec51axm1.0dp","ed18e1d6-e649-4dde-b9de-960eba4e57a1.tmp.ico","ed60a276-0f76-48da-9e24-c423905dfa32.tmp.node","edlkbf5w.e4k","eedbaeea-9836-4f46-853f-a088fa68e953.tmp","ees0xw0q.b5x","ef4uyagn.mlz","ehkdqrzp.kxj","ekcsid4j.sko","em5umxyp.43f","emnj0u5v.it1","en-US.ps1","erk44ipp.oqg","erlrimgu.3n5","etcher","etilqs_TbVx0JMhZfciDJA","etjjcez5.jkj","ew22ldxq.nwp","example395f2524","example5759f04","exampled98a442","exthost-27f963.cpuprofile","f09d4057-9e7c-44fc-806c-5dab1f73b96b.tmp","f18e10b5-ae8c-44be-9736-09c56041a57e.tmp.ico","f298952c-ce4e-438a-9cd0-4995da2aec28.tmp.ico","f3e488a2-93f1-41e7-a026-d0ef5c1b0147.PackageExtraction","f42f748f-515f-4887-9660-050fcb707b90.tmp","f4bgkmm2.4ak","f6231a5f-5541-42a6-b53e-4c15d88c4b47.tmp","f662ac4f-be18-40cb-8ab6-c6158c6956ef.tmp","f6a103d3-239b-49e9-8e54-f1e184863f40.tmp.ico","f82cc31e-0e46-4267-8c0e-0341c88a833b.tmp.ico","f8c6387a-9026-4187-b8ad-c4d2746f5f76.tmp.ico","f9585250-2978-4549-9a12-8a4f09279e8a.tmp.node","FA532364-7709-4449-B75F-744D5ABC11C1.vhdx","fad99da9-b889-4a3f-aa6e-9d3542287323.tmp.node","fc56dd32-c60a-47f3-bb2b-6a1c18c15927.tmp","fcpnqjsx.mat","fd286789-e145-4788-acc8-64a6b5fdb94e.PackageExtraction","fd356e92829e4939820d6b1181376777","fdp154j1.4mg","fdsbgcgm.fbt","ff1123e9-18a8-4586-815b-b0d43944e679.tmp.ico","fkg0ydmh.hu0","flutter_code_editor60a6e278","flutter_code_editor92a8fef3","flutter_code_editorc08544e3","flutter_tools.10009974","flutter_tools.101eeb60","flutter_tools.10419405","flutter_tools.1054aac9","flutter_tools.108c5251","flutter_tools.10e81658","flutter_tools.11209cd9","flutter_tools.11343d29","flutter_tools.1146b5e2","flutter_tools.116a879f","flutter_tools.11bbc52f","flutter_tools.11f1b05d","flutter_tools.1202a30c","flutter_tools.12a5a941","flutter_tools.12b3d1","flutter_tools.12cdec07","flutter_tools.13371035","flutter_tools.134ea84d","flutter_tools.139e2b1","flutter_tools.13e25614","flutter_tools.141b3d4b","flutter_tools.141b849e","flutter_tools.1432c241","flutter_tools.1453b798","flutter_tools.1475bc84","flutter_tools.14a1aa58","flutter_tools.14c77cc3","flutter_tools.14e9946a","flutter_tools.14f77040","flutter_tools.15128439","flutter_tools.1512a4a9","flutter_tools.15259bb6","flutter_tools.1554abf5","flutter_tools.1561c9e3","flutter_tools.1563332","flutter_tools.15b1490e","flutter_tools.15b36640","flutter_tools.15e23dd1","flutter_tools.15f9fcc2","flutter_tools.15ffba75","flutter_tools.16300e9f","flutter_tools.1668436f","flutter_tools.168bac71","flutter_tools.16dbbd17","flutter_tools.16fab6f1","flutter_tools.172afbf5","flutter_tools.17bffac9","flutter_tools.17c8f2ee","flutter_tools.17ef5a55","flutter_tools.182f692b","flutter_tools.185649de","flutter_tools.18bb6417","flutter_tools.18d4de8f","flutter_tools.194c939c","flutter_tools.194e2a5c","flutter_tools.19b06c18","flutter_tools.1a174023","flutter_tools.1a41beb4","flutter_tools.1a6757c6","flutter_tools.1a767de5","flutter_tools.1af945ec","flutter_tools.1b3210de","flutter_tools.1b3b293e","flutter_tools.1b6d4cbd","flutter_tools.1bfa0e1","flutter_tools.1c35f26c","flutter_tools.1c49a6e5","flutter_tools.1cd11196","flutter_tools.1d37c202","flutter_tools.1d40a617","flutter_tools.1d6f686e","flutter_tools.1d97ed5b","flutter_tools.1db6ff5e","flutter_tools.1ded8fff","flutter_tools.1e1ab951","flutter_tools.1e728e","flutter_tools.1e734a2d","flutter_tools.1e7795ba","flutter_tools.1e7d2cd5","flutter_tools.1e9fd9d0","flutter_tools.1ea50a19","flutter_tools.1ec46ef5","flutter_tools.1ee3887e","flutter_tools.1eeed401","flutter_tools.1ef81b40","flutter_tools.1efd9bc9","flutter_tools.1f9cb9aa","flutter_tools.1fa0f179","flutter_tools.1ff20201","flutter_tools.20053433","flutter_tools.205c8073","flutter_tools.205ee418","flutter_tools.2095a6fa","flutter_tools.2096d9f8","flutter_tools.209e805c","flutter_tools.20a1964d","flutter_tools.20e04d25","flutter_tools.20f8064c","flutter_tools.214365f8","flutter_tools.2152b3c9","flutter_tools.216954e4","flutter_tools.21724b9d","flutter_tools.218b116c","flutter_tools.218cabd","flutter_tools.21ad7346","flutter_tools.21b03aa1","flutter_tools.21e0459a","flutter_tools.2237e842","flutter_tools.22384b8e","flutter_tools.224d334a","flutter_tools.22aea709","flutter_tools.22b054dc","flutter_tools.22f2de75","flutter_tools.22f8b9bc","flutter_tools.22f9490d","flutter_tools.23458e27","flutter_tools.237a1036","flutter_tools.239dd9d0","flutter_tools.23ab3447","flutter_tools.23d6fe5","flutter_tools.23e14a08","flutter_tools.23e92ef5","flutter_tools.244659f4","flutter_tools.2459bf27","flutter_tools.24b82e0f","flutter_tools.24b8f6fe","flutter_tools.250a656b","flutter_tools.251017fb","flutter_tools.25646d79","flutter_tools.2585a0d3","flutter_tools.259c4c7","flutter_tools.25ee5d53","flutter_tools.25f17be6","flutter_tools.25f440ca","flutter_tools.261d3bbc","flutter_tools.2635fbc0","flutter_tools.263d08a6","flutter_tools.263ec8f9","flutter_tools.2668fe77","flutter_tools.266aae35","flutter_tools.26917cce","flutter_tools.26beed04","flutter_tools.26c5a5a7","flutter_tools.26c62c90","flutter_tools.26c829d4","flutter_tools.26de2ac9","flutter_tools.2700ed46","flutter_tools.275084cd","flutter_tools.276ea272","flutter_tools.27891e67","flutter_tools.27ad399e","flutter_tools.280977e7","flutter_tools.28782d95","flutter_tools.287b5eeb","flutter_tools.28826d65","flutter_tools.28bd69f5","flutter_tools.28f3d86a","flutter_tools.29307666","flutter_tools.2959ac1a","flutter_tools.2985cd5","flutter_tools.29919624","flutter_tools.29b38aa0","flutter_tools.29d03a41","flutter_tools.2a47f314","flutter_tools.2a7cca34","flutter_tools.2a8a3202","flutter_tools.2aa8ffeb","flutter_tools.2aafd44e","flutter_tools.2ab9eef8","flutter_tools.2aeeb7cd","flutter_tools.2af85124","flutter_tools.2afa9017","flutter_tools.2b3a2396","flutter_tools.2b486850","flutter_tools.2be17a40","flutter_tools.2cd54a9b","flutter_tools.2cf8fbf3","flutter_tools.2d105108","flutter_tools.2d1fce89","flutter_tools.2d26e877","flutter_tools.2d9c3cf1","flutter_tools.2e8ffafd","flutter_tools.2eb267c4","flutter_tools.2eb4c24e","flutter_tools.2ed65ca2","flutter_tools.2ee3e0b6","flutter_tools.2f3343ac","flutter_tools.2fedd00f","flutter_tools.3025fa2c","flutter_tools.305fc3cb","flutter_tools.30c140a","flutter_tools.312f1c2e","flutter_tools.31572615","flutter_tools.318650ae","flutter_tools.31b970f8","flutter_tools.3294df0e","flutter_tools.32a775da","flutter_tools.32d806ae","flutter_tools.32e9ad06","flutter_tools.33049d8a","flutter_tools.33145dc6","flutter_tools.332cf8ce","flutter_tools.334d9424","flutter_tools.3389dd20","flutter_tools.33992a8","flutter_tools.33e2ca19","flutter_tools.33fa9680","flutter_tools.340cbf76","flutter_tools.34135455","flutter_tools.34535717","flutter_tools.3470862b","flutter_tools.347d6957","flutter_tools.34927510","flutter_tools.34bced05","flutter_tools.350228bd","flutter_tools.35106d1c","flutter_tools.35150e74","flutter_tools.35401f0e","flutter_tools.35607cd6","flutter_tools.3564e42c","flutter_tools.356d1c0","flutter_tools.35745d6","flutter_tools.3581cc50","flutter_tools.359510b7","flutter_tools.35e79714","flutter_tools.36625416","flutter_tools.367dab8","flutter_tools.3686f4d5","flutter_tools.36b4b8a1","flutter_tools.36b7b1f1","flutter_tools.36d8e94f","flutter_tools.36e37c10","flutter_tools.3700dd86","flutter_tools.37039f47","flutter_tools.3742d1ee","flutter_tools.374c1dc6","flutter_tools.37be5b8b","flutter_tools.37c92cbc","flutter_tools.37d77d2d","flutter_tools.3828b563","flutter_tools.384f10d5","flutter_tools.385983e3","flutter_tools.3888ba8e","flutter_tools.3892c914","flutter_tools.38c76482","flutter_tools.38c871e7","flutter_tools.38dd51a7","flutter_tools.39461db9","flutter_tools.396e1535","flutter_tools.3a2a32d1","flutter_tools.3a2e9bd4","flutter_tools.3a33d4a","flutter_tools.3a5b1abd","flutter_tools.3a6010f","flutter_tools.3aa4c0e5","flutter_tools.3aa50e9e","flutter_tools.3aca16f7","flutter_tools.3b4b39","flutter_tools.3b7d1e27","flutter_tools.3b885f95","flutter_tools.3b94d92b","flutter_tools.3bb7129a","flutter_tools.3bdb5748","flutter_tools.3c400d34","flutter_tools.3c675f04","flutter_tools.3c9d9644","flutter_tools.3ca4f42","flutter_tools.3cb2d5f2","flutter_tools.3cee4016","flutter_tools.3d2947e8","flutter_tools.3d4cbd19","flutter_tools.3d814ee4","flutter_tools.3da0380d","flutter_tools.3da86193","flutter_tools.3db6dd6d","flutter_tools.3dc1f1b7","flutter_tools.3df89361","flutter_tools.3e75e633","flutter_tools.3ecd05b4","flutter_tools.3f6a8990","flutter_tools.3f78f8d5","flutter_tools.3fab6aad","flutter_tools.3fb48da9","flutter_tools.3fe698ed","flutter_tools.402ac2a0","flutter_tools.407c87fa","flutter_tools.407e84a0","flutter_tools.40802fc4","flutter_tools.408e448f","flutter_tools.40ddb7f3","flutter_tools.40e28a08","flutter_tools.415f109","flutter_tools.41c36cd8","flutter_tools.42252f64","flutter_tools.4245e6f8","flutter_tools.42565a90","flutter_tools.4264b3e8","flutter_tools.42927cb","flutter_tools.42b21bcb","flutter_tools.42ba07d7","flutter_tools.42e59e4c","flutter_tools.434dc548","flutter_tools.439c9632","flutter_tools.440edbb","flutter_tools.444b8c40","flutter_tools.44757745","flutter_tools.4492504a","flutter_tools.44990350","flutter_tools.44b82aee","flutter_tools.44bb5769","flutter_tools.44c87a5e","flutter_tools.44cec917","flutter_tools.44df1ac2","flutter_tools.44f97ea3","flutter_tools.45466484","flutter_tools.459ddf64","flutter_tools.45a332c3","flutter_tools.45b8d986","flutter_tools.45d22679","flutter_tools.45f5113a","flutter_tools.460e3d56","flutter_tools.4667be70","flutter_tools.467a7757","flutter_tools.47156d06","flutter_tools.471edb85","flutter_tools.473fcd0d","flutter_tools.4740037a","flutter_tools.474cba6a","flutter_tools.47549a4c","flutter_tools.476bdd3a","flutter_tools.4772041f","flutter_tools.47728d3f","flutter_tools.478cf03c","flutter_tools.47ac83bb","flutter_tools.480bda37","flutter_tools.488032ef","flutter_tools.488434dd","flutter_tools.48923bf","flutter_tools.48b87df8","flutter_tools.48df9b6a","flutter_tools.49227f31","flutter_tools.49453bf0","flutter_tools.4965f149","flutter_tools.49713621","flutter_tools.49bf54d","flutter_tools.4a29c5a9","flutter_tools.4a3434e2","flutter_tools.4a73b8fa","flutter_tools.4a89a146","flutter_tools.4b322982","flutter_tools.4b5cc188","flutter_tools.4b659c3f","flutter_tools.4b771663","flutter_tools.4b7a2fd3","flutter_tools.4ba76d8d","flutter_tools.4bd45bc6","flutter_tools.4bdd5427","flutter_tools.4be479","flutter_tools.4c0b6edd","flutter_tools.4c31fee6","flutter_tools.4c41cd42","flutter_tools.4c47d942","flutter_tools.4c6d5439","flutter_tools.4cfe226f","flutter_tools.4da33594","flutter_tools.4df39818","flutter_tools.4e1a88eb","flutter_tools.4e2a44ce","flutter_tools.4e33200b","flutter_tools.4ea2f3a6","flutter_tools.4ea8a322","flutter_tools.4f3b85f8","flutter_tools.4f417ea6","flutter_tools.4f468264","flutter_tools.4f98f9b0","flutter_tools.4fceba64","flutter_tools.4fe5a7b6","flutter_tools.500e7dfb","flutter_tools.501fb36b","flutter_tools.504764bd","flutter_tools.508bc2a","flutter_tools.50b78ef7","flutter_tools.50d4412d","flutter_tools.511a3bbf","flutter_tools.51298661","flutter_tools.51600021","flutter_tools.518a3321","flutter_tools.51b17674","flutter_tools.525602c2","flutter_tools.527e3dd4","flutter_tools.52804526","flutter_tools.528af58","flutter_tools.5376b85","flutter_tools.5387c526","flutter_tools.539de976","flutter_tools.53aebd84","flutter_tools.53eed7a","flutter_tools.546bd66e","flutter_tools.54ab08d7","flutter_tools.55121d24","flutter_tools.552b952","flutter_tools.559ea296","flutter_tools.55fd6305","flutter_tools.5622fd3d","flutter_tools.5625c9c7","flutter_tools.5638d809","flutter_tools.56802105","flutter_tools.56910e28","flutter_tools.56a6faec","flutter_tools.56cbf5a0","flutter_tools.570f0846","flutter_tools.5723eab3","flutter_tools.576543f9","flutter_tools.57fffe72","flutter_tools.5826d106","flutter_tools.582711c2","flutter_tools.5877b5f7","flutter_tools.58b4d9e2","flutter_tools.593c5584","flutter_tools.595a338f","flutter_tools.59bc18ec","flutter_tools.59e5e6a3","flutter_tools.59f71f7c","flutter_tools.5a50a627","flutter_tools.5a5aefd","flutter_tools.5aa5cb64","flutter_tools.5aa8737c","flutter_tools.5aa90f34","flutter_tools.5ac0ea52","flutter_tools.5ad32a94","flutter_tools.5b2d9027","flutter_tools.5b6cb7f3","flutter_tools.5ba7cd39","flutter_tools.5bc1253","flutter_tools.5bd8f30a","flutter_tools.5c2bbd1e","flutter_tools.5c56c4a5","flutter_tools.5c83ed02","flutter_tools.5c8da4da","flutter_tools.5c9f8bf7","flutter_tools.5cae4e81","flutter_tools.5cdf16b9","flutter_tools.5d28218d","flutter_tools.5dce1bee","flutter_tools.5dd6d444","flutter_tools.5dea402b","flutter_tools.5deaf874","flutter_tools.5e005a3b","flutter_tools.5ecd3474","flutter_tools.5ef075f1","flutter_tools.5f0171f6","flutter_tools.5f3ae1e9","flutter_tools.5f5e5f75","flutter_tools.5fb4343e","flutter_tools.5fd2382c","flutter_tools.60847de2","flutter_tools.6085584f","flutter_tools.6094a8b7","flutter_tools.609f4515","flutter_tools.60d624cd","flutter_tools.610c1b51","flutter_tools.610e4cd7","flutter_tools.611de2f4","flutter_tools.6147f111","flutter_tools.61a4ffa3","flutter_tools.61d43a37","flutter_tools.61d94283","flutter_tools.61efc8fc","flutter_tools.62bd598e","flutter_tools.62bfc3b8","flutter_tools.62d1ff17","flutter_tools.62f73127","flutter_tools.634a2fbb","flutter_tools.6350f3a","flutter_tools.635254f0","flutter_tools.638ac22e","flutter_tools.63e19b6d","flutter_tools.640e52fd","flutter_tools.640fb264","flutter_tools.643e2f40","flutter_tools.64b7bb20","flutter_tools.64c19cc5","flutter_tools.64cf37d","flutter_tools.64dbe1e0","flutter_tools.653a3e2c","flutter_tools.6581b954","flutter_tools.6595b1b3","flutter_tools.65d04ab7","flutter_tools.65d6685e","flutter_tools.65dcc45b","flutter_tools.66033f19","flutter_tools.662b87f5","flutter_tools.669159e8","flutter_tools.6693c688","flutter_tools.66c4c6b9","flutter_tools.674fec1","flutter_tools.677f0476","flutter_tools.67fc07de","flutter_tools.68228c68","flutter_tools.6823123b","flutter_tools.68330087","flutter_tools.683968ec","flutter_tools.686944a8","flutter_tools.68a0023","flutter_tools.68c12426","flutter_tools.68c23910","flutter_tools.68c5b6d3","flutter_tools.68cbafbe","flutter_tools.68f6dace","flutter_tools.68f99b60","flutter_tools.692cbcd8","flutter_tools.695540a4","flutter_tools.6967a129","flutter_tools.698f8e17","flutter_tools.6a350e38","flutter_tools.6a43e9c6","flutter_tools.6a6a32d9","flutter_tools.6a7f7f54","flutter_tools.6a978943","flutter_tools.6ab94c89","flutter_tools.6af4387e","flutter_tools.6af96c94","flutter_tools.6b32b113","flutter_tools.6b7c0b0c","flutter_tools.6b8bdf9","flutter_tools.6b973102","flutter_tools.6ba3a07e","flutter_tools.6bb5e4ee","flutter_tools.6c15febb","flutter_tools.6c22cc94","flutter_tools.6c65aff6","flutter_tools.6c671d73","flutter_tools.6c6b3d84","flutter_tools.6c950c28","flutter_tools.6cbce178","flutter_tools.6ce42632","flutter_tools.6d19b5ad","flutter_tools.6dcaa527","flutter_tools.6dcf03af","flutter_tools.6dd62a91","flutter_tools.6e55a91c","flutter_tools.6e6e8718","flutter_tools.6e8e5854","flutter_tools.6eb268dc","flutter_tools.6eba70a3","flutter_tools.6eda0f4d","flutter_tools.6f4fcc64","flutter_tools.6f93cad6","flutter_tools.6fce6c6c","flutter_tools.6fe4dce9","flutter_tools.6ffc7c44","flutter_tools.7043f8bf","flutter_tools.70a03026","flutter_tools.70a8c599","flutter_tools.70c07658","flutter_tools.7121401d","flutter_tools.719baf5a","flutter_tools.71def792","flutter_tools.7264aa83","flutter_tools.728eb293","flutter_tools.72c1763","flutter_tools.72fddf2f","flutter_tools.731d36f6","flutter_tools.739e467c","flutter_tools.73bc6fe0","flutter_tools.73dd638f","flutter_tools.74719f6f","flutter_tools.74d03a74","flutter_tools.74d35142","flutter_tools.750d544a","flutter_tools.753a4010","flutter_tools.7574a93a","flutter_tools.758e42c8","flutter_tools.759474a1","flutter_tools.759c2da7","flutter_tools.75af59c5","flutter_tools.75f3a184","flutter_tools.75fa5d5c","flutter_tools.7616f439","flutter_tools.761a3928","flutter_tools.76576bd6","flutter_tools.7685059a","flutter_tools.76a39b79","flutter_tools.76ea1c2c","flutter_tools.77482cd7","flutter_tools.77a47232","flutter_tools.77f2d685","flutter_tools.78512838","flutter_tools.78c7b579","flutter_tools.791c8b54","flutter_tools.7923928a","flutter_tools.796c57b3","flutter_tools.79703b7a","flutter_tools.7973d9f8","flutter_tools.799db4f7","flutter_tools.79b6c53b","flutter_tools.79bb28e3","flutter_tools.7a0c4c6e","flutter_tools.7a6af702","flutter_tools.7aa24527","flutter_tools.7adb5cf4","flutter_tools.7aef59f0","flutter_tools.7af7e0be","flutter_tools.7b448387","flutter_tools.7b482ae7","flutter_tools.7b7202b5","flutter_tools.7bf5e4d","flutter_tools.7c3ec17b","flutter_tools.7c7cc381","flutter_tools.7c9edaba","flutter_tools.7ccc89c0","flutter_tools.7d20af82","flutter_tools.7d43db34","flutter_tools.7d62151b","flutter_tools.7d6b22aa","flutter_tools.7db23780","flutter_tools.7e5255a5","flutter_tools.7e628dac","flutter_tools.7ed388b2","flutter_tools.7f128d60","flutter_tools.7f1fd092","flutter_tools.7f3ed276","flutter_tools.7f6ecd91","flutter_tools.7f7f04e6","flutter_tools.7f9fd016","flutter_tools.7fb879a8","flutter_tools.7fc1dcec","flutter_tools.7fd6bdbe","flutter_tools.7ffb338d","flutter_tools.8086bcb","flutter_tools.80f48910","flutter_tools.816abe82","flutter_tools.8197a874","flutter_tools.81afdd68","flutter_tools.820fa90d","flutter_tools.82160a13","flutter_tools.825f6213","flutter_tools.8267f7f2","flutter_tools.826c26ad","flutter_tools.827a478f","flutter_tools.828bcfbd","flutter_tools.82afef16","flutter_tools.82c0794d","flutter_tools.82c496d5","flutter_tools.82d099a","flutter_tools.82d9fbcf","flutter_tools.82da2b06","flutter_tools.82f3465c","flutter_tools.835127eb","flutter_tools.838b21d0","flutter_tools.839c98fc","flutter_tools.842f846c","flutter_tools.845cf13f","flutter_tools.845f6aee","flutter_tools.847ede5","flutter_tools.8496e3f1","flutter_tools.856b86fd","flutter_tools.85cc27a4","flutter_tools.85d8967a","flutter_tools.85e7d2e","flutter_tools.85f412a0","flutter_tools.85fc826b","flutter_tools.860884c8","flutter_tools.8610facf","flutter_tools.86a4aa99","flutter_tools.86b2dd5b","flutter_tools.86c3c3d2","flutter_tools.86d12b7","flutter_tools.86d2511b","flutter_tools.86d265a3","flutter_tools.871764af","flutter_tools.8717ff4f","flutter_tools.872227b","flutter_tools.878b9d44","flutter_tools.879b4d14","flutter_tools.87b11289","flutter_tools.882770c7","flutter_tools.884cf1e2","flutter_tools.88d545af","flutter_tools.890d6647","flutter_tools.8a4c59fb","flutter_tools.8aabcd2e","flutter_tools.8ae0410c","flutter_tools.8b193943","flutter_tools.8b2c819e","flutter_tools.8b4ebf71","flutter_tools.8b6b1932","flutter_tools.8b7b315d","flutter_tools.8b81f25e","flutter_tools.8b82a836","flutter_tools.8b8aa5d","flutter_tools.8bd042c0","flutter_tools.8c216db0","flutter_tools.8c331e15","flutter_tools.8d140db7","flutter_tools.8d2256b7","flutter_tools.8d4a3a3a","flutter_tools.8d67aafd","flutter_tools.8db989e7","flutter_tools.8dc41900","flutter_tools.8de59107","flutter_tools.8e5ec4e6","flutter_tools.8e69a9d6","flutter_tools.8e9723b9","flutter_tools.8e98a9d","flutter_tools.8eb5ccb4","flutter_tools.8f0f9a7a","flutter_tools.8f198ca","flutter_tools.8f97fffd","flutter_tools.900df55a","flutter_tools.90118d8f","flutter_tools.902e702d","flutter_tools.9034e0cb","flutter_tools.903de561","flutter_tools.907b60a9","flutter_tools.9095b7e2","flutter_tools.90c73857","flutter_tools.918abbaa","flutter_tools.91ef6b36","flutter_tools.922e5bd","flutter_tools.92312f97","flutter_tools.92374267","flutter_tools.92ebe6ff","flutter_tools.938db9cf","flutter_tools.939fb2bc","flutter_tools.93aac351","flutter_tools.93c6b247","flutter_tools.940879db","flutter_tools.9465d11e","flutter_tools.94b523b6","flutter_tools.94c06e68","flutter_tools.94d26e21","flutter_tools.95025872","flutter_tools.951b9fd4","flutter_tools.952e1a0a","flutter_tools.95344577","flutter_tools.955d4bf1","flutter_tools.958013bf","flutter_tools.95c9aca1","flutter_tools.95cfc55d","flutter_tools.95ea6800","flutter_tools.95f40960","flutter_tools.9612664","flutter_tools.9648441d","flutter_tools.9688ef77","flutter_tools.969f2cfa","flutter_tools.96b5c0ea","flutter_tools.96ba381d","flutter_tools.96dfbb74","flutter_tools.971a3d5e","flutter_tools.972246","flutter_tools.97a8611f","flutter_tools.97e604ac","flutter_tools.9802ca8e","flutter_tools.981452e1","flutter_tools.98414c46","flutter_tools.98acf375","flutter_tools.98af4530","flutter_tools.98b6b3ce","flutter_tools.98dd4567","flutter_tools.98eb294d","flutter_tools.98ecacab","flutter_tools.99514c19","flutter_tools.99754560","flutter_tools.99c7fa13","flutter_tools.99d7e4de","flutter_tools.9a52f235","flutter_tools.9a96ca70","flutter_tools.9acbbd5b","flutter_tools.9b0ff932","flutter_tools.9b94bf11","flutter_tools.9ba4a683","flutter_tools.9bad878b","flutter_tools.9bc5ab1a","flutter_tools.9bca4745","flutter_tools.9bfc74b","flutter_tools.9c0cc12","flutter_tools.9c3d1f75","flutter_tools.9c6cf3e5","flutter_tools.9c6f1f8c","flutter_tools.9c74aa0a","flutter_tools.9cad7259","flutter_tools.9cc80c5d","flutter_tools.9d4845ed","flutter_tools.9da57597","flutter_tools.9db1f49c","flutter_tools.9e278294","flutter_tools.9e376156","flutter_tools.9e86d74c","flutter_tools.9e948174","flutter_tools.9edabc81","flutter_tools.9f01fbee","flutter_tools.9f125c96","flutter_tools.9f4356ca","flutter_tools.9f4584c2","flutter_tools.9f6fc856","flutter_tools.9f7c010a","flutter_tools.9fa62621","flutter_tools.9fd35af9","flutter_tools.9fd82404","flutter_tools.a022367f","flutter_tools.a02c52a2","flutter_tools.a07b32cf","flutter_tools.a0840de1","flutter_tools.a0972a3","flutter_tools.a09979a3","flutter_tools.a159aa91","flutter_tools.a16fff91","flutter_tools.a179a0e3","flutter_tools.a188cf12","flutter_tools.a18ac0c2","flutter_tools.a1a64808","flutter_tools.a246531c","flutter_tools.a24a2af4","flutter_tools.a25e44f1","flutter_tools.a2731cdc","flutter_tools.a2773b9","flutter_tools.a2c49283","flutter_tools.a2fc4704","flutter_tools.a3021745","flutter_tools.a34c2d1d","flutter_tools.a366fcbd","flutter_tools.a40c3c20","flutter_tools.a42334d1","flutter_tools.a49a4775","flutter_tools.a4a7c6ec","flutter_tools.a4abfd5e","flutter_tools.a51c22de","flutter_tools.a59f989a","flutter_tools.a5b53d39","flutter_tools.a664a0da","flutter_tools.a66b4e75","flutter_tools.a67ebde","flutter_tools.a6c38046","flutter_tools.a6c52a69","flutter_tools.a70b883b","flutter_tools.a74c4c46","flutter_tools.a772092","flutter_tools.a775154c","flutter_tools.a779635f","flutter_tools.a7a20597","flutter_tools.a7ac1769","flutter_tools.a7b43d8e","flutter_tools.a7b90d0f","flutter_tools.a85205fd","flutter_tools.a8a1540a","flutter_tools.a8d1035c","flutter_tools.a8fcb6c6","flutter_tools.a903f415","flutter_tools.a917b92f","flutter_tools.a9628de1","flutter_tools.a9896ff0","flutter_tools.a99b8204","flutter_tools.a9be3d4","flutter_tools.a9c54c01","flutter_tools.a9d8adb2","flutter_tools.a9eef090","flutter_tools.a9f80334","flutter_tools.aa302466","flutter_tools.aa5052a4","flutter_tools.aa551107","flutter_tools.aa64980a","flutter_tools.aa773f9a","flutter_tools.aadcfe85","flutter_tools.aaead510","flutter_tools.ab1cfe33","flutter_tools.ab79ac2d","flutter_tools.ab971ba0","flutter_tools.abd4a27b","flutter_tools.ac06df29","flutter_tools.ac0705a","flutter_tools.ac0ffc5f","flutter_tools.ac250c74","flutter_tools.ac37aa91","flutter_tools.ac9892fc","flutter_tools.acbd0871","flutter_tools.ad2b9246","flutter_tools.ad889a09","flutter_tools.add3d9b6","flutter_tools.ae35c7db","flutter_tools.aea3047c","flutter_tools.aee4ad5a","flutter_tools.aef1421c","flutter_tools.af104484","flutter_tools.af133be0","flutter_tools.af13f0f","flutter_tools.af51b172","flutter_tools.afa880c","flutter_tools.afaa62ef","flutter_tools.afbc8160","flutter_tools.afc2cd47","flutter_tools.aff119fe","flutter_tools.affb86e5","flutter_tools.b02a4a97","flutter_tools.b06aef51","flutter_tools.b06e3383","flutter_tools.b0707278","flutter_tools.b088e582","flutter_tools.b0aa3aaf","flutter_tools.b10fcd46","flutter_tools.b13df940","flutter_tools.b16a799c","flutter_tools.b1bafec0","flutter_tools.b1bf297f","flutter_tools.b22e3679","flutter_tools.b265d2dd","flutter_tools.b2697dea","flutter_tools.b29078e","flutter_tools.b2ac956d","flutter_tools.b2b98e54","flutter_tools.b2d70c44","flutter_tools.b2d87bca","flutter_tools.b304dd90","flutter_tools.b3a8cea2","flutter_tools.b3c60975","flutter_tools.b3fa488b","flutter_tools.b41792a3","flutter_tools.b43703cd","flutter_tools.b49a3486","flutter_tools.b4ab3fc","flutter_tools.b4b0ad0c","flutter_tools.b4b52f5b","flutter_tools.b4b58ea1","flutter_tools.b4bd9b74","flutter_tools.b4ec77b9","flutter_tools.b50e19b0","flutter_tools.b5229dd9","flutter_tools.b5436fae","flutter_tools.b5745781","flutter_tools.b57c94d7","flutter_tools.b6219d84","flutter_tools.b625a376","flutter_tools.b640219a","flutter_tools.b664381c","flutter_tools.b67a1e4d","flutter_tools.b6d6648c","flutter_tools.b6dc3999","flutter_tools.b6e3210b","flutter_tools.b6f50c7b","flutter_tools.b757caed","flutter_tools.b7608dbe","flutter_tools.b7c247dd","flutter_tools.b7c2a3d3","flutter_tools.b7c9ab6c","flutter_tools.b7faf2ee","flutter_tools.b8989142","flutter_tools.b8dc29c6","flutter_tools.b922a48f","flutter_tools.b940a9f2","flutter_tools.b9944f30","flutter_tools.b9c1191c","flutter_tools.b9c9b223","flutter_tools.b9ded03f","flutter_tools.b9f0b6e9","flutter_tools.ba091388","flutter_tools.ba3df4c6","flutter_tools.ba47c8ac","flutter_tools.ba570d65","flutter_tools.ba712115","flutter_tools.bae4265b","flutter_tools.baf7e91a","flutter_tools.bb3a1f74","flutter_tools.bb76b810","flutter_tools.bb8beff4","flutter_tools.bbbb4846","flutter_tools.bbc65fac","flutter_tools.bbce798c","flutter_tools.bbebde2f","flutter_tools.bc0a2d18","flutter_tools.bc1ca4f6","flutter_tools.bd2e53e7","flutter_tools.bd4ef12d","flutter_tools.bd5a828b","flutter_tools.bd75ba2a","flutter_tools.bd82cc91","flutter_tools.bd944d8a","flutter_tools.bdc014ff","flutter_tools.bddc3e90","flutter_tools.bde88683","flutter_tools.bdeef766","flutter_tools.be07c412","flutter_tools.be21d917","flutter_tools.be253062","flutter_tools.be58402f","flutter_tools.be61f07f","flutter_tools.be6f1105","flutter_tools.bebe82dc","flutter_tools.bebf2975","flutter_tools.bec9cf09","flutter_tools.bed8578a","flutter_tools.bee2cd6b","flutter_tools.bf1f5f32","flutter_tools.bf3f6daf","flutter_tools.bf4be9d7","flutter_tools.bf68db8d","flutter_tools.bf68f04d","flutter_tools.bf706127","flutter_tools.bf8827d6","flutter_tools.bf8b97a0","flutter_tools.bfae0cd0","flutter_tools.bfcb32e6","flutter_tools.bfdd27fa","flutter_tools.bff2c3c1","flutter_tools.c01ab669","flutter_tools.c0658956","flutter_tools.c07fe381","flutter_tools.c0aeca45","flutter_tools.c0bb3660","flutter_tools.c0c243e6","flutter_tools.c0d6ff3d","flutter_tools.c1051005","flutter_tools.c12bbe69","flutter_tools.c13f7baf","flutter_tools.c165773b","flutter_tools.c178b25","flutter_tools.c1ddb0f2","flutter_tools.c23b6eb0","flutter_tools.c2496a63","flutter_tools.c24f945","flutter_tools.c26106dd","flutter_tools.c26521b0","flutter_tools.c270ef37","flutter_tools.c2e08ab","flutter_tools.c30f1b5a","flutter_tools.c336e04f","flutter_tools.c3456ed0","flutter_tools.c34e5df4","flutter_tools.c34e6901","flutter_tools.c36080fd","flutter_tools.c3620974","flutter_tools.c3bde7be","flutter_tools.c3eca9dd","flutter_tools.c3f13690","flutter_tools.c516b430","flutter_tools.c5346551","flutter_tools.c5421e32","flutter_tools.c5666e88","flutter_tools.c5f3c0ed","flutter_tools.c606851a","flutter_tools.c60bcd0","flutter_tools.c612e649","flutter_tools.c6245a2f","flutter_tools.c66906c9","flutter_tools.c6903330","flutter_tools.c6ab670e","flutter_tools.c6c1eebb","flutter_tools.c6e7bd6f","flutter_tools.c6ecd2eb","flutter_tools.c702359a","flutter_tools.c7398df7","flutter_tools.c7471047","flutter_tools.c761304","flutter_tools.c79bfc7a","flutter_tools.c7abb32e","flutter_tools.c7fa07a1","flutter_tools.c8d8460f","flutter_tools.c8f53842","flutter_tools.c924e1d2","flutter_tools.c9324949","flutter_tools.c990557d","flutter_tools.c9c8864f","flutter_tools.c9cfb826","flutter_tools.c9f55b6a","flutter_tools.ca10250a","flutter_tools.ca33091a","flutter_tools.ca45fe09","flutter_tools.ca6b1c31","flutter_tools.ca9f7e64","flutter_tools.caa80863","flutter_tools.caafc22d","flutter_tools.cae73149","flutter_tools.cb075d38","flutter_tools.cb27d5af","flutter_tools.cb5fd554","flutter_tools.cb7b7eb0","flutter_tools.cbad21e4","flutter_tools.cbbe5d6c","flutter_tools.cc115ac4","flutter_tools.cc3d0502","flutter_tools.ccc82bd4","flutter_tools.cd5c999c","flutter_tools.cd92f0f4","flutter_tools.cda67c43","flutter_tools.ce19faaf","flutter_tools.ce27ff02","flutter_tools.ce568ccf","flutter_tools.ceae16c","flutter_tools.ceca32c6","flutter_tools.cf22da3e","flutter_tools.cf3bfa1","flutter_tools.cf4b18f","flutter_tools.cf645bd3","flutter_tools.cf733a1c","flutter_tools.cfdc97c6","flutter_tools.cfe68e41","flutter_tools.cfe8b49b","flutter_tools.d02ef0d2","flutter_tools.d04a6f10","flutter_tools.d0885a65","flutter_tools.d0a890e3","flutter_tools.d0c7761a","flutter_tools.d0da0047","flutter_tools.d0dc6ab2","flutter_tools.d0e2d4be","flutter_tools.d120092c","flutter_tools.d13342de","flutter_tools.d174220b","flutter_tools.d1a9ee3f","flutter_tools.d1b5f7e","flutter_tools.d1ead407","flutter_tools.d2126cba","flutter_tools.d296f173","flutter_tools.d2b7fa59","flutter_tools.d2bdc819","flutter_tools.d2e13312","flutter_tools.d2f5dabd","flutter_tools.d31d3fd6","flutter_tools.d33d36e5","flutter_tools.d33df61e","flutter_tools.d35964b0","flutter_tools.d3828ee9","flutter_tools.d438b37a","flutter_tools.d46629dd","flutter_tools.d471b173","flutter_tools.d480fb92","flutter_tools.d4f1d0f","flutter_tools.d4fa7a6c","flutter_tools.d50a2441","flutter_tools.d538ecce","flutter_tools.d5414522","flutter_tools.d547d21c","flutter_tools.d5c01b38","flutter_tools.d608efe8","flutter_tools.d60e17ae","flutter_tools.d6dadab2","flutter_tools.d70646bd","flutter_tools.d711f06c","flutter_tools.d716b98b","flutter_tools.d76100b","flutter_tools.d76fbd77","flutter_tools.d7d137c7","flutter_tools.d8364874","flutter_tools.d83651f4","flutter_tools.d83e1b60","flutter_tools.d84784ce","flutter_tools.d921f799","flutter_tools.d977107b","flutter_tools.d9b1e03","flutter_tools.d9be41f8","flutter_tools.d9cd2f9c","flutter_tools.da197bb0","flutter_tools.da68582f","flutter_tools.daa599b","flutter_tools.daea65cb","flutter_tools.db5193","flutter_tools.db910aed","flutter_tools.db93e737","flutter_tools.dc3a70e1","flutter_tools.dcba455d","flutter_tools.dcbb9832","flutter_tools.dd0da1f0","flutter_tools.dd68e670","flutter_tools.dd8f9f9a","flutter_tools.dda2634","flutter_tools.de71ddd5","flutter_tools.dee6fc98","flutter_tools.df26adbb","flutter_tools.df31b651","flutter_tools.df4ba55e","flutter_tools.df746d32","flutter_tools.df85af38","flutter_tools.df886723","flutter_tools.df99f259","flutter_tools.dfab62e6","flutter_tools.dfdda891","flutter_tools.dff29033","flutter_tools.dffd5c32","flutter_tools.e010056a","flutter_tools.e01f4663","flutter_tools.e05e9bd5","flutter_tools.e06e68be","flutter_tools.e0cc6cac","flutter_tools.e0dce1b","flutter_tools.e16596aa","flutter_tools.e1af951","flutter_tools.e21263bd","flutter_tools.e237d850","flutter_tools.e24155b8","flutter_tools.e24b1e8","flutter_tools.e27735f","flutter_tools.e30b3553","flutter_tools.e34cc6b5","flutter_tools.e376050","flutter_tools.e3913255","flutter_tools.e391f853","flutter_tools.e4600268","flutter_tools.e4a3dff8","flutter_tools.e4b0b689","flutter_tools.e4d31ab5","flutter_tools.e576353c","flutter_tools.e57cb54f","flutter_tools.e596135e","flutter_tools.e5d87601","flutter_tools.e5e745b9","flutter_tools.e6130007","flutter_tools.e6209e98","flutter_tools.e622f1c4","flutter_tools.e62b55e2","flutter_tools.e630f0ee","flutter_tools.e6604d0c","flutter_tools.e67880ea","flutter_tools.e6f0684c","flutter_tools.e7bf7094","flutter_tools.e7c644e3","flutter_tools.e8027d8","flutter_tools.e86ebf88","flutter_tools.e8e0ccc1","flutter_tools.e8eff311","flutter_tools.e93cedf","flutter_tools.e953c97a","flutter_tools.e97437b0","flutter_tools.e99f1888","flutter_tools.e9d81481","flutter_tools.e9feb5ab","flutter_tools.eab64eb7","flutter_tools.ead0446a","flutter_tools.eb01e36e","flutter_tools.eb0d0f85","flutter_tools.eb135d6c","flutter_tools.eb14ffdd","flutter_tools.eb2e6ee0","flutter_tools.eb9759d9","flutter_tools.eb9bd55b","flutter_tools.ebeebc52","flutter_tools.ec58c60b","flutter_tools.ec74960d","flutter_tools.eca25e7c","flutter_tools.ecc82833","flutter_tools.ecdb9cb4","flutter_tools.ed51b70b","flutter_tools.ed78705f","flutter_tools.ed9b213e","flutter_tools.eda43e62","flutter_tools.edd51f63","flutter_tools.ede0951a","flutter_tools.ee050524","flutter_tools.ee46e8e3","flutter_tools.ee4f4be5","flutter_tools.eee45eca","flutter_tools.ef09ebb4","flutter_tools.ef279081","flutter_tools.ef4de217","flutter_tools.ef57b92e","flutter_tools.ef5a5ba2","flutter_tools.ef7c8b49","flutter_tools.ef7ea95a","flutter_tools.ef9c8e09","flutter_tools.ef9e7631","flutter_tools.efbe1d5c","flutter_tools.efdfa0af","flutter_tools.efe66cae","flutter_tools.f0361c","flutter_tools.f085a5c3","flutter_tools.f08df471","flutter_tools.f093a6b8","flutter_tools.f09a24bc","flutter_tools.f0a17553","flutter_tools.f0cc214f","flutter_tools.f103c881","flutter_tools.f1055adf","flutter_tools.f12166d2","flutter_tools.f1223de0","flutter_tools.f12fadf8","flutter_tools.f130f167","flutter_tools.f1453767","flutter_tools.f15c9970","flutter_tools.f1802bea","flutter_tools.f1c94d9b","flutter_tools.f1cb4077","flutter_tools.f1e3e606","flutter_tools.f20a0dc","flutter_tools.f22d3907","flutter_tools.f247027","flutter_tools.f26efce2","flutter_tools.f2714f60","flutter_tools.f28cfe8d","flutter_tools.f28fd363","flutter_tools.f2cf556","flutter_tools.f2ecacee","flutter_tools.f2f5587b","flutter_tools.f32dea29","flutter_tools.f360334a","flutter_tools.f36e8450","flutter_tools.f37138ff","flutter_tools.f3ad4491","flutter_tools.f3d7450f","flutter_tools.f42b12ea","flutter_tools.f4366018","flutter_tools.f440e06a","flutter_tools.f4666588","flutter_tools.f4b28d2a","flutter_tools.f4c9cf21","flutter_tools.f4cd3fcd","flutter_tools.f50ba2e3","flutter_tools.f51a450a","flutter_tools.f54fa3a5","flutter_tools.f56c4249","flutter_tools.f5741920","flutter_tools.f585cc3c","flutter_tools.f5aef082","flutter_tools.f5af90e","flutter_tools.f61b03de","flutter_tools.f682a277","flutter_tools.f6883019","flutter_tools.f6a52ca6","flutter_tools.f6d396dc","flutter_tools.f73e5a9c","flutter_tools.f78fa40","flutter_tools.f7b6a7a0","flutter_tools.f80578dd","flutter_tools.f823ab23","flutter_tools.f83caf1f","flutter_tools.f845df80","flutter_tools.f86f67b0","flutter_tools.f8d33ddb","flutter_tools.f8fc7c06","flutter_tools.f951babd","flutter_tools.f99198e","flutter_tools.f9c904e2","flutter_tools.f9d913e4","flutter_tools.fa68f121","flutter_tools.fa7d9158","flutter_tools.fadcd66f","flutter_tools.fb1a3423","flutter_tools.fb227804","flutter_tools.fbb6b0a6","flutter_tools.fbc68b15","flutter_tools.fc06cc","flutter_tools.fc1310b6","flutter_tools.fc3d35ba","flutter_tools.fc8148a1","flutter_tools.fcb980c0","flutter_tools.fce8b693","flutter_tools.fd1a8bc6","flutter_tools.fd71916a","flutter_tools.fdb3ffef","flutter_tools.fe066e10","flutter_tools.fe25a6bb","flutter_tools.feca8676","flutter_tools.fedf5bb3","flutter_tools.fef343c0","flutter_tools.fefeaa8d","flutter_tools.ff3b67b3","flutter_tools.ff86427c","flutter_tools.ffca7542","flutter_tools.ffe2df1e","flutter_tools.ffffc61e","fnj1c4gu.phr","fsbktk3k.55o","fv1xzds3.c0b","fvlfwjhu.dxt","fvorspod.3qi","fyhhxfb2.ncx","fys1rrky.lfu","g1pgoqfd.u1k","g5fpo4wv.dd5","ga2zoaa0.u5h","gacalysg.gjz","gc1adkcs.m5s","gesxnjz1.zid","gghxxd1b.qru","ggw5g0fw.js0","GitHubDesktop-lfs-progress-2dPEdk","GitHubDesktop-lfs-progress-4AxAsp","GitHubDesktop-lfs-progress-61uSOX","GitHubDesktop-lfs-progress-6bprWw","GitHubDesktop-lfs-progress-6U8qef","GitHubDesktop-lfs-progress-92B7bx","GitHubDesktop-lfs-progress-9pCheI","GitHubDesktop-lfs-progress-a5qGv2","GitHubDesktop-lfs-progress-AKz50Q","GitHubDesktop-lfs-progress-BvGXTI","GitHubDesktop-lfs-progress-BVz9Cg","GitHubDesktop-lfs-progress-Cg0qza","GitHubDesktop-lfs-progress-CMDrEy","GitHubDesktop-lfs-progress-cMHfqg","GitHubDesktop-lfs-progress-cSpEzY","GitHubDesktop-lfs-progress-D7r1Nf","GitHubDesktop-lfs-progress-DHJ3vb","GitHubDesktop-lfs-progress-DRNWKl","GitHubDesktop-lfs-progress-DUBqoz","GitHubDesktop-lfs-progress-DWYMMO","GitHubDesktop-lfs-progress-Dxqs7p","GitHubDesktop-lfs-progress-eappK1","GitHubDesktop-lfs-progress-eXSVOS","GitHubDesktop-lfs-progress-fFpDj0","GitHubDesktop-lfs-progress-fhFJPh","GitHubDesktop-lfs-progress-fS86e9","GitHubDesktop-lfs-progress-JzK6LF","GitHubDesktop-lfs-progress-KoWYxD","GitHubDesktop-lfs-progress-KTyrQO","GitHubDesktop-lfs-progress-lA3jsR","GitHubDesktop-lfs-progress-lQHYAN","GitHubDesktop-lfs-progress-mNIRJX","GitHubDesktop-lfs-progress-nbYsoo","GitHubDesktop-lfs-progress-o2BKV9","GitHubDesktop-lfs-progress-OzCU7a","GitHubDesktop-lfs-progress-P7UxIo","GitHubDesktop-lfs-progress-PmtCF7","GitHubDesktop-lfs-progress-PsUsnW","GitHubDesktop-lfs-progress-R9mTnB","GitHubDesktop-lfs-progress-RP4y4c","GitHubDesktop-lfs-progress-TnaMPT","GitHubDesktop-lfs-progress-ToRxlT","GitHubDesktop-lfs-progress-YcShEE","GitHubDesktop-lfs-progress-ZF5Sbj","GitHubDesktop-lfs-progress-ZqtkKE","gknqacdy.f3p","glpz3xv5.jhg","gnbeisdw.uj0","Godot","gopls-11164.1","gopls-18676.1","gopls-21752.1","gopls-22368.1","gq2eke5v.hhf","GrammarlyWeb637887745355361776","guyeinl4.fre","gvvn3szz.nch","gw03j5pr.13x","gzgwkf2n.jef","h2lco3wf.gyf","hbfmlukw.json","hgel0crq.vtz","hsperfdata_bluel","hvhvpipo.hvl","i4euzcgw.0mf","i4piertk.jzu","id12cjpq.i54","idctzlv2.s0n","idgbxnam.xxz","idjpgzke.bmf","idryq0e3.soa","idv1jz51.drk","IIF3AF1.tmp","IIF3BDD.tmp","IIF3E3E.tmp","IIFA012.tmp","IIFA514.tmp","il13rl2z.3tk","Image-Line","imfwsv1e.okl","inky_compile","inolprug.bpy","Intel","iovqqb24.vdq","ir0t3tfr.qya","irtm0ucu.xbs","is-3FPC9.tmp","is-EE0O7.tmp","is-S1JA6.tmp","is-SJDQ2.tmp","isc","j5hapr0z.xy0","jczlxi53.wgn","jdxjjcar.5bv","jf1a1lt3.qco","jl1s3jpv.24x","jm2qemlt.vz2","jmunkszh.dkd","jnhkpz4l.doa","jvdhcbpo.2ot","jvfwwjuq.zgt","k3mu40lf.pyq","k4bu4hvp.ytq","kdgnsbpr.via","kdocerlog","kf205m1c.xnb","kfg3tyir.4hi","khuw5it0.avg","kifbf4sk.ya3","klog","km1sub3u.qvf","knsihplb.01d","kotlin-compiler-in-android-11589912105267758234.alive","kotlin-compiler-in-android-15116813700772094820.alive","kotlin-compiler-in-android-15138440909675349701.alive","kotlin-compiler-in-android-15946562773008526869.alive","kotlin-compiler-in-android-16978282154781394298.alive","kotlin-compiler-in-android-17270426518795432832.alive","kotlin-compiler-in-android-17620012303650647726.alive","kotlin-compiler-in-android-6264396253047887089.alive","kotlin-daemon.2022-10-24.19-03-43-726.00.log","kotlin-daemon.2022-11-03.22-28-56-623.00.log","kotlin-daemon.2022-11-10.18-11-29-871.00.log","kotlin-daemon.2022-11-12.23-32-57-404.00.log","kotlin-daemon.2022-11-12.23-32-57-404.00.log.lck","kotlin-daemon.2022-11-13.20-08-34-672.00.log","kotlin-daemon.2022-11-14.20-28-40-335.00.log","kotlin-daemon.2022-11-15.16-49-40-489.00.log","kotlin-daemon.2022-11-16.02-19-56-646.00.log","kotlin-daemon.2022-11-16.17-35-07-735.00.log","kotlin-daemon.2022-11-17.22-17-38-825.00.log","kotlin-daemon.2022-11-17.22-17-38-891.00.log","kotlin-daemon.2022-11-18.15-08-57-147.00.log","kotlin-daemon.2022-11-18.17-50-42-782.00.log","kotlin-daemon.2022-11-18.21-20-41-709.00.log","kotlin-daemon.2022-11-19.21-25-10-957.00.log","kotlin-daemon.2022-11-22.00-57-51-112.00.log","kotlin-daemon.2022-11-24.23-19-09-187.00.log","kotlin-daemon.2022-11-26.02-13-51-032.00.log","kotlin-daemon.2022-11-26.20-10-52-260.00.log","kotlin-daemon.2022-11-27.03-43-31-869.00.log","kotlin-daemon.2022-11-27.14-27-38-412.00.log","kotlin-daemon.2022-11-29.01-06-56-153.00.log","kotlin-daemon.2022-11-29.03-08-29-062.00.log","kotlin-daemon.2022-11-29.03-08-29-062.00.log.lck","kotlin-daemon.2022-11-29.03-10-47-315.00.log","kotlin-daemon.2022-11-29.03-10-47-315.00.log.lck","kotlin-daemon.2022-11-29.18-11-11-711.00.log","kotlin-daemon.2022-11-30.20-53-31-098.00.log","kotlin-daemon.2022-11-30.23-34-15-496.00.log","kotlin-daemon.2022-12-01.12-23-44-946.00.log","kotlin-daemon.2022-12-01.21-37-22-510.00.log","kotlin-daemon.2022-12-02.02-28-01-452.00.log","kotlin-daemon.2022-12-02.02-28-01-452.00.log.lck","kotlin-daemon.2022-12-04.04-46-04-814.00.log","kotlin-daemon.2022-12-04.16-52-58-278.00.log","kotlin-daemon.2022-12-04.16-52-58-278.00.log.lck","kotlin-daemon.2022-12-04.17-53-00-458.00.log","kotlin-daemon.2022-12-04.21-21-55-984.00.log","kotlin-daemon.2022-12-07.01-55-38-236.00.log","kotlin-daemon.2022-12-07.04-02-49-295.00.log","kotlin-daemon.2022-12-09.03-05-37-397.00.log","kotlin-daemon.2022-12-09.04-19-22-645.00.log","kotlin-daemon.2022-12-09.17-57-58-045.00.log","kotlin-daemon.2022-12-10.03-06-09-531.00.log","kotlin-daemon.2022-12-10.19-30-31-034.00.log","kotlin-daemon.2022-12-10.21-24-23-462.00.log","kotlin-daemon.2022-12-11.05-00-42-463.00.log","kotlin-daemon.2022-12-14.04-15-24-927.00.log","kotlin-daemon.2022-12-14.04-15-24-927.00.log.lck","kotlin-daemon.2022-12-16.04-10-52-680.00.log","kotlin-daemon.2022-12-18.04-03-02-665.00.log","kotlin-daemon.2022-12-18.06-32-32-904.00.log","kotlin-daemon.2022-12-20.03-54-15-834.00.log","kpz0lhxu.izq","kqkya1fv.pd0","kqo3l2zz.otc","ks3uimqt.s2b","ksohtml52520","ksohtml61924","kspw54a4.json","kx5wfa1j.uy0","kxqchlmr.mig","kyb0pvyq.0qm","l3brlq5d.ds5","LarkShell","lbm0yvfq.wwc","lezw2c15.hkh","lhtei32l.key","libCachedImageData","loose","Low","lpxcbep5.ket","lrx0foyo.a20","luxe5ddk.vgj","lvdjxnd0.s4o","lvmjaqvy.vav","lzsegsna.xx3","m1exohei.mea","m2bgynkn.0x4","m3jsme5s.u1l","m3rrlezf.gk3","ma43amsm.bmb","maevxx50.5bx","matoexom.d4g","mcfylqu2.112","mcplugin","me0pw5xn.wgt","mech5zaz.jmg","mhp2kero.cgq","mhzdmjzn.xds","Microsoft","Microsoft Visual C++ 2010 x64 Redistributable Setup_10.0.40219","Microsoft Visual C++ 2010 x86 Redistributable Setup_10.0.40219","mik1222","mik91A9.tmp","mikA1A7.tmp","mljo1mtq.ay4","mnshsutv.ptf","mnzo4yve.0vi","modlvweb.35o","MSBuildTempbluel","msdt","msdtadmin","msedge_installer.log","msohtmlclip","msohtmlclip1","mu4rmhfk.xgv","mv1ddwyj.ovx","mwlnrc5i.nwm","my0ddk15.bn2","n0md3jy3.rda","n0s2qqdc.rzh","n1zlm0sa.uqc","n2yyrxix.f0w","n3vzl4af.szs","naj5ndux.3nn","native-platform10055490981786411159dir","native-platform1014747760088128402dir","native-platform10424353140901396735dir","native-platform1045211323997295831dir","native-platform10462161610030789724dir","native-platform10463036535287942787dir","native-platform10795053696371410781dir","native-platform10920764340996483132dir","native-platform11349907438014072920dir","native-platform1139679938359506195dir","native-platform11421763351868429055dir","native-platform11447072108526172701dir","native-platform11475249905824151733dir","native-platform11701336881771001080dir","native-platform11768621239215484539dir","native-platform12026507846288790107dir","native-platform12168404123667045419dir","native-platform12493925490813198767dir","native-platform12985474272120099566dir","native-platform12994970156681130433dir","native-platform13003190759764375250dir","native-platform13082819623820736884dir","native-platform13393899660899238598dir","native-platform13464337807359161777dir","native-platform13505816193846104502dir","native-platform13734051764081213357dir","native-platform13754885509044616725dir","native-platform13862243663142332592dir","native-platform14281068474794194745dir","native-platform14381438181711821121dir","native-platform14397732441167041916dir","native-platform151717446978589040dir","native-platform15218259458132447513dir","native-platform15526780580779590234dir","native-platform1553188818519681065dir","native-platform15789836176071256436dir","native-platform15808215514564990422dir","native-platform16245473652584589381dir","native-platform16252489390076013449dir","native-platform16274394262392237160dir","native-platform16400639272396184318dir","native-platform16697611680886700450dir","native-platform17548318618395397164dir","native-platform17679566386230659613dir","native-platform17691107881892541214dir","native-platform17794009380975473374dir","native-platform17934373700902719358dir","native-platform18018540935915671184dir","native-platform18045588383801301059dir","native-platform18129443913534883486dir","native-platform2222804886412791292dir","native-platform2393078999559484623dir","native-platform2547847050111272045dir","native-platform2656644110432352195dir","native-platform2676789609808825107dir","native-platform2905867204733043041dir","native-platform3152290534205071197dir","native-platform3455465001143222606dir","native-platform3466879360381347151dir","native-platform3561323871898037565dir","native-platform4269632251426034185dir","native-platform4507264776415009482dir","native-platform4725045581862845551dir","native-platform4769666985159511830dir","native-platform4920720015082810315dir","native-platform4943643282083871817dir","native-platform506812760466620388dir","native-platform517840082950635478dir","native-platform5538683036695105281dir","native-platform5566819615935072105dir","native-platform6118827766339879085dir","native-platform6227327161766414992dir","native-platform629151174620978334dir","native-platform6341813214057532116dir","native-platform6347680002787887939dir","native-platform6474752193949172988dir","native-platform6681629780199537358dir","native-platform7456459468420964668dir","native-platform7789917120660176180dir","native-platform8067402335308124791dir","native-platform8915090942269009545dir","native-platform9016193503520643497dir","native-platform9020837432716686896dir","native-platform9286657367430392272dir","native-platform9356971352275579125dir","native-platform9471483794293595533dir","native-platform9495877749615862033dir","native-platform957589863741133647dir","native-platform9679636309135584819dir","native-platform9820651032899327951dir","nb5a0cis.dzd","nbn2fj3p.ciz","nc13k4tx.idf","nc4d0y4d.uh4","net-export","nkxf3lri.4hr","nmaqhtxb.xci","nmp","noga5wce.5kh","NotifyIconGeneratedAumid_10286285764922783642.png","NotifyIconGeneratedAumid_5415549564531472002.png","NotifyIconGeneratedAumid_7767308299861741933.png","npm-22648-a70b541e","npm-28016-41e6b2ac","npm-43236-7113f475","npm-7484-113e9c7c","npm-9964-2c789095","nqen14bx.i0l","nsaCE93.tmp","nsbBB34.tmp","nsbD43.tmp","nseE6CF.tmp","nsiA2EE.tmp","nsiB9A7.tmp","nsl4E00.tmp","nsl8ECD.tmp","nsm43BF.tmp","nsnB0E9.tmp","nsq75BD.tmp","nsw6C37.tmp","nszC5A4.tmp","NuGet","NuGetScratch","nva3vxu2.xtt","nw3448_2471","nx4koln0.yuu","nxsdqg5j.fli","nzdcukb3.tff","o5gxubrf.i5l","oasc1yeb.lq1","obj4cnmu.bid","og3ci1ev.i0o","OneNote","OneNoteSyncData","ont1ljvt.bit","opqbsgmt.ht1","oq2uvnne.vru","oq3afvlm.4lm","os0bp3ws.jdg","ovepqlxg.nfh","owjxqiox.ock","p3bk0rug.30m","p41w4upl.phj","p4ar0jkm.jc4","p5f1ic04.mvv","p5s5gqv1.jwe","padfttdz.y0h","Patches","pawgi5w5.h5f","pip-build-tracker-7hgtf5oc","pip-build-tracker-qpp50z2m","pip-ephem-wheel-cache-0i4rjba0","pip-ephem-wheel-cache-6ec6mdzr","pip-install-gq13fb8r","pip-install-p3cxgnnz","pip-uninstall-98tk5bk_","pip-uninstall-m2ftcnmz","pip-unpack-2zacd_6p","pkpy3122e1a25","pkpy312dd4034","pkpy315e88458","pkpy31697e13","pkpy3197275b5","pkpy31affdfab","pkpy31b63426f","pkpy31bbd099e","pkpy31ebf5b04","pkpy3229b1257","pkpy32322a64c","pkpy32351711e","pkpy32408faa3","pkpy3247940d3","pkpy324c9ef2b","pkpy32702e04a","pkpy32900f9fc","pkpy32960d7fe","pkpy32de900db","pkpy32e8b1934","pkpy32eab4b72","pkpy33309dc13","pkpy3345bc86c","pkpy335d0fdf0","pkpy33710575f","pkpy3371aa8a2","pkpy33758c24c","pkpy33a2a6054","pkpy33b4115a7","pkpy33bb76ade","pkpy33c351ecb","pkpy33f7b7e36","pkpy3405bdff4","pkpy341238e71","pkpy344a149dd","pkpy346f19ba5","pkpy34c0ae359","pkpy34eb7276f","pkpy3502b3f7e","pkpy352eb13f","pkpy35317b9c8","pkpy35700ca64","pkpy35794d9b8","pkpy35820f84d","pkpy35942089a","pkpy359cc97e2","pkpy35ff49860","pkpy3609fca30","pkpy362fd5c49","pkpy3638251cf","pkpy364f4e59e","pkpy36714d649","pkpy3676ad8e8","pkpy3689cea26","pkpy368e9c23b","pkpy369603166","pkpy36f02140","pkpy36f55e4d9","pkpy3717f2d88","pkpy377862850","pkpy377adc7d3","pkpy3781a55ce","pkpy3795c558b","pkpy37e3bdd25","pkpy380c49bf3","pkpy381c050be","pkpy38327325a","pkpy385aa384","pkpy388a3229d","pkpy38a3f205","pkpy38e9ff154","pkpy38ef77c3f","pkpy38f90aa01","pkpy390a48d08","pkpy3919350a","pkpy391aa221a","pkpy391d5ece0","pkpy391dce9f0","pkpy398e10e34","pkpy398ea33d8","pkpy398ec902f","pkpy399b39dd3","pkpy39b68dff2","pkpy39fcbcf1c","pkpy39fd19176","pkpy3a195747e","pkpy3a1c56837","pkpy3a6ec64c2","pkpy3a84b3b30","pkpy3a8d88ae3","pkpy3aa4935bc","pkpy3aad1187d","pkpy3ac7d63b0","pkpy3ac9fb6b5","pkpy3ae19a2e6","pkpy3ae9b7192","pkpy3af5e2c33","pkpy3b2022007","pkpy3b4e72c6","pkpy3b52f86b6","pkpy3b7a40a6a","pkpy3b8f6c18f","pkpy3bb7b7558","pkpy3bc8587ae","pkpy3bda2cdc5","pkpy3c0b4479b","pkpy3c2d08b67","pkpy3c30414ca","pkpy3c627682d","pkpy3cac3e4ce","pkpy3cb012460","pkpy3cb5afab0","pkpy3ce8ccd9c","pkpy3cf05f804","pkpy3d0f14696","pkpy3d2e2ecdb","pkpy3d2f4d546","pkpy3d30160f7","pkpy3d3dab291","pkpy3d471b378","pkpy3d557aa56","pkpy3d5619365","pkpy3d60abfc2","pkpy3d6157658","pkpy3d77d46e8","pkpy3d7c0a71a","pkpy3da88d279","pkpy3dd346cf7","pkpy3df919f20","pkpy3dfd27d6a","pkpy3e022d9fd","pkpy3e1b7b77e","pkpy3e1dc4044","pkpy3e2b813e3","pkpy3e4497fda","pkpy3e7c5381","pkpy3e9c7e712","pkpy3eab67559","pkpy3eb8e0a0","pkpy3ee2a8795","pkpy3efedba3a","pkpy3f0115c42","pkpy3f0f2d6a8","pkpy3f1938c69","pkpy3f394282b","pkpy3f4b8abfe","pkpy3f4c8b6ec","pkpy3f4e86288","pkpy3f8b0b244","pkpy3f901c094","pkpy3fa06da92","pkpy3fa379306","pkpy3faafee38","pkpy3fd047029","pkpy3fe888336","pkpy3fed3d85c","pkpy_story_engine2bf2ca60","pkpy_story_engine4b7fc74","pkpy_story_engine7e8414b0","pkpy_story_engine7f5f6866","pkpy_story_engine94f797fe","pkpy_story_engineec4486e5","pncqwayl.isi","pqvf0obv.aqu","pt2pttransfer","pub_28cc6ec6","pub_50550888","pub_a540061f","pub_d4bece2f","pub_fc16a6d","pyright-10088-dNuHtK6SicNF","pyright-10088-rGLIPfC9BnLW","pyright-10116-rzHrhwERrYiN","pyright-10280-mmvAllFirIPO","pyright-10280-OCFvu9JHAw1q","pyright-10316-BuLrxoLZZQZf","pyright-10316-XqR8w0R2Dspp","pyright-10320-8tydkloxPQVj","pyright-10348-3M6adm0sOnHz","pyright-10348-IvgUUV5ePG6n","pyright-10348-NWrDCLQrw677","pyright-10348-p1ktKaTCDSd7","pyright-10368-Rwq179qFqoEF","pyright-10388-a5qETHHBGWPc","pyright-10400-O5BExG2ZQLIt","pyright-10544-58n7v91ZWUCP","pyright-10552-C4zUOCIB5dLz","pyright-10552-jSYpeRPvMR9y","pyright-10552-TYxg64gVFP3g","pyright-10728-0WrCGxduJMw8","pyright-10728-Fo0IEU4DUyn8","pyright-10736-3DRGRQfMLRPM","pyright-10736-biT5XKpHG5By","pyright-10752-iaBgmkKP1Uxv","pyright-10752-NZa5T0wRU0QX","pyright-10864-lFBdtsSzAVBa","pyright-10864-t2LuyTnYpv0H","pyright-10972-1Cwc0sL3ybZK","pyright-11024-CvkOgiRwft4j","pyright-11024-FwvV3FJgFKbW","pyright-11056-POrjXk5n9tbF","pyright-11064-2MJFHnuSUBKS","pyright-11064-LqKiN41bUil1","pyright-11064-oF5g7bWjA6Rm","pyright-11064-SPGPLuNfdxP0","pyright-11088-azoKkf63hF2D","pyright-11148-0wyE2TKGbs43","pyright-11152-EX5ga2JffqR1","pyright-11152-fm8fvHjtrQ94","pyright-11152-hlkse45s3JIZ","pyright-11152-hz1h5s6PiKb1","pyright-11160-RB14IvshEgaL","pyright-11192-sksXRLC6P4tm","pyright-11204-OClL7PyoPLyB","pyright-11240-1NkjOeJYd6dP","pyright-11240-YnFQuUz8C5i6","pyright-11324-1yIa2bPZCv1m","pyright-11324-EuA1SBECRFdX","pyright-11324-HxdcYurISQzt","pyright-11324-YF1zeKrun4M3","pyright-11384-qmrUY74GlKov","pyright-11384-rNNDy1O9LXAo","pyright-11408-2EZNVic9psLs","pyright-11436-6fPz5YN8dbzO","pyright-11436-u3cNByQSCzwD","pyright-11440-uHwnrh2o8TIo","pyright-11444-ChFgGhQcusGM","pyright-11444-QWlqe6n4tqNZ","pyright-11536-4mGuFjtpIH1H","pyright-11536-7fyu1mflJJsG","pyright-11536-JclFHLFQZLZ9","pyright-11536-kzfts3aJ562f","pyright-11584-Ix57JDiXhPGQ","pyright-11616-KF4cIKZrxvrx","pyright-11636-cm8tdZSPPeJr","pyright-11636-TvvbGu8T16Cv","pyright-1168-6lHIHfUIGpP3","pyright-1168-810GQdC7qMfw","pyright-1168-y9Y0izFq79mu","pyright-11784-FU6ZtQ92EbzX","pyright-11784-YV4JsNromwns","pyright-11848-fNKKIug5fRna","pyright-11848-OOPCgDkmZW0M","pyright-11956-anptJwi2ujQV","pyright-12020-Om20mW8o5Ix2","pyright-12020-ZNId5qzItPoQ","pyright-12024-m9OnvN67gP1G","pyright-12024-PnBbK6y3ZTee","pyright-12088-n7ce5xgrV6fv","pyright-12088-usMtAgEp9Yd9","pyright-12112-lxaztfv5BgIg","pyright-12112-wmi2LwJdUkUe","pyright-12128-84f5mae69ewo","pyright-12128-h79zs857MckV","pyright-12132-7NGoLfGmjHHs","pyright-12132-zL0UJ66qLIoK","pyright-12136-kI6CQL3f8oiR","pyright-12136-qR2ebBWRK0uZ","pyright-12144-5t0I0WQqKfZ6","pyright-12224-7hEtUVZr671b","pyright-12224-oTnE1nj3ipeg","pyright-12228-MycZGGC8wTHT","pyright-12228-pqG5pyLHxp48","pyright-12408-AdeXcH3tDFAr","pyright-12408-AqP39msshzOs","pyright-12408-AvVp8b8A9F3H","pyright-12420-5SfJ18unEtEA","pyright-12420-P3kXDbYEvIHh","pyright-12492-ecfCNbIuQ4zg","pyright-12540-5p244j8Y6R94","pyright-12568-U383hJNUGfgP","pyright-1264-TSJT4wl4gh4k","pyright-12684-3NPttc0upSID","pyright-12684-Gydesz80tAMG","pyright-12720-9stQe2QqvmYr","pyright-12852-C3muQKBPvvbn","pyright-12852-YAMCZqxWiSPs","pyright-12864-icgQVZAWY6mi","pyright-12864-TB04RFd6B6wM","pyright-13016-lzirIQMniCpP","pyright-13024-c2I3ytw5oZ03","pyright-13028-6wKCXUfud65Z","pyright-13084-dGPPP0aoL6IZ","pyright-13140-ORtLCEx2uk4p","pyright-13140-Udqz8nSTiQTV","pyright-13232-ux2NEBjPNlYn","pyright-13232-ZTSbVQvDPzEi","pyright-1324-B201SBbadwmp","pyright-13248-7eNK8XzfWXDD","pyright-13248-rhW9wv6xH8xB","pyright-13248-y2FI4axqBgdc","pyright-13388-AK4OHx1OVEhZ","pyright-13388-uLHFOFZNB9AG","pyright-1340-FW4T2F2K5hU6","pyright-13504-1fhsdbPkZCU0","pyright-13504-AcS4ScRH2QES","pyright-13504-dqpIjZMPcoYU","pyright-13504-JNOLFU5kV10Z","pyright-13508-nNGcfxlRJuOy","pyright-13512-wAvbvRZ2LP36","pyright-13536-hrc6lOM7Zph6","pyright-13564-gy6FdXwnfcTX","pyright-13572-VJy0HfxhjL2w","pyright-13580-9ZjodwRH2dAo","pyright-13580-YukUr2uV5aek","pyright-13600-Vy2G25lTpgcT","pyright-13708-L40Icy7YrYfP","pyright-13716-BxinJNhNwJuJ","pyright-13716-GQhgpGFwW4UI","pyright-13716-xrx1f2IvLKbH","pyright-13724-JHOk8dlwETiR","pyright-13724-jufB602XXfGk","pyright-13724-QlesPCNhwMnD","pyright-13756-mQZWsLbtPoKT","pyright-13756-wU3c6BBhVRBQ","pyright-13788-8ZdcSVHdzacY","pyright-13920-14uGqdZGHt7Y","pyright-13920-7froTahf4Nk8","pyright-13920-O8JirwYrcadL","pyright-13920-tUyUDfAwI3Ft","pyright-13920-xh4bigfaAdKw","pyright-13936-dmpQYvvLguDY","pyright-13952-J1C4XnPfuG0D","pyright-13952-Sfz9NW4WPDv8","pyright-14060-hM0eBjq2krQk","pyright-14060-yFIh7MtkopIb","pyright-14148-eqryfcodXd7k","pyright-14148-H25ovHtmPU1a","pyright-14184-yU7VnkXpvxNT","pyright-14208-3kRmRSIcDuY4","pyright-14208-Zx7S1i5D3V8y","pyright-14260-zOIxy6M5ytd5","pyright-14276-TJ1x3uFYqoSf","pyright-14284-d45762Pe0qd1","pyright-1432-CZslUwszEFmx","pyright-1432-v4HDnbhQKKyw","pyright-14364-agfrbPvWCIpt","pyright-14364-hy85c785y90d","pyright-14364-x1a6JtfJeYH9","pyright-14364-Xjmo4AN0ioHm","pyright-14368-GeQZgkwJZvhC","pyright-14368-keuOevKrTQ4u","pyright-14428-O3iR12gSnsMn","pyright-14436-RFq1m6MwOB1Z","pyright-14472-gQMnQ1W7ni6C","pyright-14532-vOMD5uRGcidt","pyright-14580-iux7tRRNs4yD","pyright-14636-jCUNfoTqSsb8","pyright-14652-0fd3eKmDopM2","pyright-14652-Yaz2p4dBSlZw","pyright-14672-cK0oPwnlKpzG","pyright-14700-MH4deK7co71Z","pyright-14748-0gN3OPw88zv4","pyright-14748-aYGqKNT8aDyk","pyright-14756-FlUb8mY81w5s","pyright-14764-E1DwD2UHJ2e6","pyright-14764-LBsUsRh2V4g3","pyright-14836-uTgflLNFeytE","pyright-14836-wGqhlVi92VZW","pyright-14868-hlrFK2vPON0a","pyright-14872-8RE0YNpr3msN","pyright-14880-bq8R97V9633q","pyright-14936-2zRBmxkcNsBZ","pyright-14936-Nn7ymyvt8uN9","pyright-15032-5qJuMOop44Tr","pyright-15032-pJPw2xEh1Jpd","pyright-15052-FvQ4r1f4Y9kX","pyright-15052-sJmdXNsqvO6c","pyright-15052-SOHuVnTqbqwZ","pyright-15052-XhFnEMac8iQs","pyright-15116-0MEjugCZaK0J","pyright-15116-0Z8AbElG0JbA","pyright-15128-e134H7yy5Yox","pyright-15128-IOWk4cbVprZ2","pyright-15156-s35zHSCaipp3","pyright-15160-wXnRhlOFWx8B","pyright-15228-s2EOw3msvp92","pyright-15228-SQeCB33qMmfV","pyright-15252-A66dmFDLSljv","pyright-15252-Us0qwiqJ4c5f","pyright-15252-yQ5zQEq98opM","pyright-15260-qcxygwTvxo6F","pyright-15284-DQ9sX423rA4L","pyright-15288-BhP4lZJVsCKz","pyright-15304-ruZgsr63EmXj","pyright-15320-8OJe7pQqcNPp","pyright-15320-a2sbRMqHoli4","pyright-15372-v0W0SxBruABh","pyright-15416-1Y31MBm3SY66","pyright-15416-yBc5cm4oETr5","pyright-15416-zQpwdO9wRSxA","pyright-15500-8OVmszbUMp43","pyright-15520-CWej0OSMQhFQ","pyright-15520-Q2xvrf17wCpw","pyright-15520-QlzkIjl51d34","pyright-15544-u5jirifF4Scf","pyright-15544-ZP0OXpIIe4aZ","pyright-15552-2MmYkJJ2vP03","pyright-15552-fELY47K7rSTu","pyright-15552-N3MLBCxNrUS4","pyright-15560-pzjZq8hL3pR2","pyright-15560-szuOU8lI1wr1","pyright-15576-5kfzADcyI9Tj","pyright-15576-NlXumu5cPFlF","pyright-15576-WYjdO9oNWViE","pyright-15600-WOs4Uqj29o1B","pyright-15628-HV8oSMcYpZ0U","pyright-15628-VjZ0A5gaH3gH","pyright-15656-4Ed6XPWffB1u","pyright-15656-TQ9zHR922hUQ","pyright-15656-xLqYzMKYq1s6","pyright-15704-tlEGW21hxuC6","pyright-15756-1TnsQZLxcu2a","pyright-15756-flWszDZW3f4H","pyright-15808-H4iP6muQQhMK","pyright-15832-1cUf71pMohBK","pyright-15832-QSyNSkon1iv5","pyright-15960-0ZrOPglIywO5","pyright-16020-7099UWsvPtiE","pyright-16036-A4FcYdP7RZXH","pyright-16040-Jux3E305UXN5","pyright-16040-memcQo851vHF","pyright-16052-AbEKkzMaKR8M","pyright-16052-k3oTMC4HjgvX","pyright-16076-1RSabC9cOt3z","pyright-16076-1V5Nvya0v75r","pyright-16076-6q6gmooyMwMH","pyright-16076-coPf7UKMEPz8","pyright-16076-Oq6um8RDxPas","pyright-16076-TLZxCDgvHPeh","pyright-16084-6cpRf7Q4xYPL","pyright-16084-6h2gqXW7vi7E","pyright-16084-7tB7lN3n6YsL","pyright-16084-BsDgP1vIxOeI","pyright-16136-HoYeQnOrJQyw","pyright-16168-Cb5KDoAgnii7","pyright-16168-omTK1qCGeX6U","pyright-16288-lLtgh3LcoUm3","pyright-16288-t7moVuHiT9l1","pyright-16336-avTz1ycIVV4j","pyright-16336-PDk4gWXURdLD","pyright-16356-obSuvPh20Xrb","pyright-16356-PIM4w464Q83A","pyright-16460-nfO31rzkVNqg","pyright-16460-PliZ1pONFpYJ","pyright-16464-27BPyokb3HKo","pyright-16528-H1ffE879AgWh","pyright-16528-YS2i7kstp6HX","pyright-16548-C5Uy01fD1cJM","pyright-16552-Xhi9W5GS1WIt","pyright-16572-30lcn05E9ewk","pyright-16584-ucHLGAZu761d","pyright-16604-QH7n37YizCvn","pyright-16608-baFzI7tEH8G0","pyright-16608-DB1coAC7kfrK","pyright-16608-ilqgxXO79BLl","pyright-16608-OfxgbjdaqpaD","pyright-16608-qaSfIEESZ9LC","pyright-16624-c5HZY3ywcMgC","pyright-16656-0PJ3nWhKzWbk","pyright-16656-dL9S1SU1po93","pyright-16656-jCDkRW2hxb4V","pyright-16656-RzPoCKcWPUVw","pyright-16668-bVqJh0oju44z","pyright-16668-Gsdh4e5uNUsG","pyright-16708-5oNDm3qCoZ31","pyright-16708-s7pJHv8rl16v","pyright-16744-BPY5ak6uMjJW","pyright-16744-y69LAs7vt3Iw","pyright-16776-ktI8d6fF3mV7","pyright-16776-WIeTP080gjoG","pyright-16776-ycBLVVERYmEo","pyright-16816-jBx4U1Pfauw3","pyright-16856-nNqGYlpqA0Oa","pyright-16876-AE2jMZNI4Gob","pyright-16908-WWZ0TfPP1vbu","pyright-16928-28yvTmRrhIj4","pyright-16932-IxQB7HK7o9Gq","pyright-16952-qOywS6RhbSOC","pyright-17112-est2tCAQC5BU","pyright-17116-Fy673rRTWdog","pyright-17128-TEgX4d6yZcMu","pyright-17128-wjOKNVgru8Tj","pyright-17156-pg93yOuIuBNp","pyright-17196-40vwgIfWwgOu","pyright-17220-ekQ38VkAlb6C","pyright-17220-YwuaGnu4OksV","pyright-17268-LGX1PWv920rh","pyright-17332-1fn2zLbK1AKg","pyright-17332-5snpLTbYiVFf","pyright-17332-KISwVs2wQvb7","pyright-17348-7E0YHG6lCG2s","pyright-17348-VmXoUiB5lcWD","pyright-17372-frKXuFv7WyKd","pyright-17372-QHHo5VUJ1Bzd","pyright-17376-rEfJOvTZcl1G","pyright-17428-UwShB5dl7cP2","pyright-17484-TfNT5InzGRhu","pyright-17536-rOu2XAYHRE9i","pyright-17536-VtMVg9RzFM0L","pyright-17540-D3MiutrJdFyk","pyright-17540-pnA2188l8zQR","pyright-17540-QRnh8d7vIw2B","pyright-17540-RW0cLugzxnCu","pyright-17552-7LMEt7C6NCR1","pyright-17552-cB90e5wyi4Nb","pyright-17552-N33hGzASlr8J","pyright-17552-N77fJZNIx5It","pyright-17560-tpiTk0aT8Ydf","pyright-1760-QZoulq5cwchE","pyright-17620-7MRKZCkf9Ls9","pyright-17688-8XedcNZ6z9Wy","pyright-17688-TrTNbe4LrHKD","pyright-17708-FDJYAmZ3ftH3","pyright-17708-KSke7TqP6q8v","pyright-17752-ShcMC0LQhsNg","pyright-17752-y9NhsWERMeGd","pyright-17812-JEfYHERSV5Sl","pyright-17860-8ECa3us6JbZ5","pyright-17860-a2PFKXV4VtkE","pyright-17860-HeAPlGuO7qOs","pyright-17860-Kh41C2l52v79","pyright-17860-PRq7A6kiDQd6","pyright-17860-r14JYSdmd2Np","pyright-17940-X8IwOTt3QB0Z","pyright-17972-ADMmfIjALa75","pyright-17972-QFSOWx7pgDtM","pyright-18048-YmJQseuApMvY","pyright-18088-9eltPtz87A7c","pyright-18088-IvAwbC4MsEuY","pyright-18088-qkroecw87SKF","pyright-18104-nMmKv0lOYEqx","pyright-18132-dVzD5wfSSJ0z","pyright-18132-TN3LwOxkHhC8","pyright-18136-26vL523XPZ8i","pyright-18192-LqG1De0MfbK3","pyright-18204-lKrqkf8Qyniw","pyright-18256-4mB5oC4wAk5E","pyright-18256-UQCJxrOWEWz2","pyright-18268-U0HdiS4V5t8p","pyright-18272-8MsGs0yoSNNF","pyright-18272-mlMhyZfhRHcU","pyright-18364-4vyWl615ZwjG","pyright-18368-ADiHqkUVIkWk","pyright-18372-9WaEqFikRoBY","pyright-18372-iVhdJ1x4O6HK","pyright-18400-d9XV7iAwqdfu","pyright-18412-SSyIJNluJNUg","pyright-18444-BXC01v5mlzXn","pyright-18444-T63q7U05XZoK","pyright-18476-gQ14KfSeUK5k","pyright-18544-GcEFvgQH5KA8","pyright-18544-rQgeh2eTCs58","pyright-18616-UHZCxm4nlcz4","pyright-18616-Z5ET0PLFffnF","pyright-18624-SzOaAysyWklz","pyright-18644-eMFnJ8OQxGgC","pyright-18692-rx4qC5EbjSzK","pyright-18700-XghR6Cw7lcvo","pyright-18748-5GuJWE6f0rTG","pyright-18748-7AOsdx1Y0Pwl","pyright-1880-p1Dww73o70hS","pyright-18840-goIRsTbugAr7","pyright-18840-P8nqNSKk5TcB","pyright-18860-4J050wb1JF3k","pyright-1888-AOpLYAH3nuVN","pyright-1888-DZMxYvQE5qFh","pyright-18892-g7dqSGrZyuaY","pyright-18892-okIkix15n5N4","pyright-19076-4OHU4970NkpH","pyright-19084-G5wAzCX5jXh3","pyright-19156-193ZjxTW29Ec","pyright-19156-J5JCO5LitnXN","pyright-19180-QNs84mVtkmHS","pyright-19184-f9375KVjRiYQ","pyright-19184-kC1HkWcKDI2B","pyright-19232-0eUN3uZAmyJE","pyright-19232-ucKTGIDLhuEd","pyright-19248-gynxpjdtglTQ","pyright-19552-dB0zPoCqaYsx","pyright-19552-EifrN2IwsBaZ","pyright-1964-8nElKrGxyk4i","pyright-1964-txZesYy6s4kl","pyright-19640-UvWPhXh8OyQp","pyright-19692-eGBEcP5ssTW9","pyright-19692-NK64X1V84Tmt","pyright-19768-kA7wI9u4elYK","pyright-19768-YMIeA523ql62","pyright-19788-5GV5CvhnxT87","pyright-19816-48SZF3XKX5qw","pyright-19820-9OFH8uk1xhc2","pyright-19904-PtJsW4s59vXo","pyright-1996-Sw3RZ26AKY0s","pyright-1996-W7ACQcwAGnfu","pyright-20056-He6hZxTW8Wvv","pyright-20056-M8acDlk7oOVy","pyright-20152-Ws7OFXy9OpaW","pyright-20152-zw5F018mRw0b","pyright-20156-im1aUGVpxII5","pyright-20176-75KbLWoiKYYQ","pyright-20180-OTevr6wDVOqu","pyright-20180-sZt5nQanIog9","pyright-20208-1jDizq7CcC2C","pyright-20276-9nrz5Rh2eZKn","pyright-20276-bmijP3edPepd","pyright-20276-CH5BNwidmLSc","pyright-20276-ir4fPkQ9vE2j","pyright-20276-nO4TYiKqpNR3","pyright-20276-O7LbjYcqjrpr","pyright-2032-DsIXR1m2hvh0","pyright-2032-MNpayq64paOa","pyright-20392-SK2wmjfu9EfM","pyright-20464-iKEaBQPHsh3y","pyright-20520-45eLT5B6HddW","pyright-20520-iJlmnUPCSlfN","pyright-20520-ILOQEgxoxRCq","pyright-20536-5PT1oWs6neNz","pyright-20536-iBG5DCKzeilK","pyright-20544-mS8LFiZLFGx0","pyright-20544-VnIVaoO6rjlj","pyright-20640-PNxQ6bDCEkEt","pyright-20648-AzO1oIMTMl7E","pyright-20648-wTSyevXowWDu","pyright-20696-F4OeZuEwXVOr","pyright-20732-Mhsro7ch4cRn","pyright-20828-PWvQBnOvMVar","pyright-20836-uWtPLycz3xlL","pyright-20848-vV9AOQ02HxYK","pyright-20848-Xe3tCXuIeGcC","pyright-20876-iAlwxN0UPEs2","pyright-20876-sg5JxkjevdUi","pyright-20908-6vVfLdqCN4zq","pyright-2092-ZZZO3grBVUzp","pyright-21000-8hMH7RbmlkLE","pyright-21004-8cFOi1RHEGAC","pyright-21024-5Ii1nLm9tyBG","pyright-21028-0jYBeRkD00EP","pyright-21084-6irDUc82M20N","pyright-21084-NL55nJRctSJH","pyright-21132-N4toHZycrRYz","pyright-21132-VCzQXhUo4Dr0","pyright-21136-l2HzPwHOyGua","pyright-21264-7bUIfl9mDFl4","pyright-21396-f8OtP3zQAYdc","pyright-21396-lwu2zX3juwmF","pyright-2140-8q516M8KoFlX","pyright-2140-Pse89flc8dKc","pyright-2140-WCuX7F8TKd6D","pyright-21468-DK0Gv1otScl3","pyright-21508-ALgXmzRYuQUr","pyright-21508-TpGFOBTegRu7","pyright-21656-Z7PqCgQYc3ha","pyright-21748-ge2L0ur3IF50","pyright-2176-cu5Glr1Y5X1t","pyright-2176-OWlfV9PbcMc4","pyright-21856-2G776lpkfKtA","pyright-21856-BIAQqmDUH4U4","pyright-21856-CQl1OkAHmOB4","pyright-21856-EET6Tp9pyUsk","pyright-21856-KvsOkiH1blj6","pyright-21856-PGefRoHI5Kgy","pyright-21856-rjFSUoQOvu8v","pyright-21856-t58GN72elrt4","pyright-21888-WvAfANHdh8Mx","pyright-21888-ZVQfLrHnoo39","pyright-2192-kmh3PgQgtsyQ","pyright-22036-14P9Gsgh4UeA","pyright-22036-TFPac5Wazfd2","pyright-22044-ITwcIg014eMF","pyright-22164-95mjPzpP1zfs","pyright-22164-t2A3K8007xca","pyright-22376-DMujeCwFV7ug","pyright-22376-U44QdtyrBmCK","pyright-22592-14I7JxOnvx2h","pyright-22592-yDOLBsEmMdml","pyright-22704-BD20kewDagJ2","pyright-22704-ZkAGtEEzT7be","pyright-22708-iqJldnC1ivMp","pyright-22708-Ny6Vfd44ASyf","pyright-22708-Ty8eGzBYvq5z","pyright-22772-j7G0qeJ5hUug","pyright-22808-hpXhF83RWvQd","pyright-22916-SAQfsiUqqv8F","pyright-2296-pJSn9HBqlL0u","pyright-2312-4G93tVsZtmAx","pyright-2312-9iYB52DEg24n","pyright-2312-e65MX2pVDyMR","pyright-2312-TsSPnr8Jg9bm","pyright-23260-tRFoQYHl69EG","pyright-23260-Y4h1xwOX1lL0","pyright-2332-aA0YIwGsrLTG","pyright-2332-bqnjyF7n1Krw","pyright-23408-T0QPqpq0vlIz","pyright-23520-131BprRzsOBK","pyright-23520-6Jin5mgHrMLr","pyright-2360-b6fl6aqyzAz6","pyright-2360-eTorexowUf2z","pyright-2360-FYJr8IifJ5nz","pyright-23964-CTl0waPVdIrQ","pyright-24136-F0dm76K7xJZ2","pyright-24136-gZLWhBm0zmeA","pyright-24404-6bD3f3lRkcm7","pyright-24448-LxtXqFuLvQ44","pyright-24448-yA2LXjS2GOMH","pyright-2452-UGoaipXMKEzr","pyright-2452-VorgOegb1VFz","pyright-2460-kErn7K0xLB0v","pyright-2460-R5Xl1SzqxmNz","pyright-24640-HePywy6NoWo1","pyright-24640-vrq2cMU1IRxY","pyright-24976-XXBjbQ1X7pnr","pyright-25108-hJlujd8ChmsB","pyright-25108-kYcZz7MHIazR","pyright-25124-DC7yN1CGDw1v","pyright-25124-ROR9yDmvSg2Z","pyright-25300-nscsx3e2cd1g","pyright-25448-8hCD6c4OOki3","pyright-25448-RKVWHZt0XM7I","pyright-26204-joUbAgkzKhdE","pyright-26204-khp3RG53Zqps","pyright-26528-95yXQe45hrFD","pyright-26528-Hg5mYXdYECdb","pyright-26668-9Sqla3ojv64W","pyright-26668-fY4M354cUdMK","pyright-26844-BMNn0kLLGj8u","pyright-26844-TFInqBs0ULAM","pyright-2688-0or4bZzcUx76","pyright-2688-SEESnB9KDtUq","pyright-26972-Iewq3a8gJkYi","pyright-26972-MDjaHvDbgO6w","pyright-2700-DXq6IwlmPMi0","pyright-2760-DGitjEzbZfkd","pyright-2764-VwEAoApPSReR","pyright-2788-AbCZXwUoF8qR","pyright-2788-Y4tJFhYz5l2h","pyright-28184-4XM230r7r68e","pyright-28184-QKTAPoWzAviH","pyright-28440-ftnBHnRGwzKF","pyright-28520-vjsaCLi7ayBg","pyright-28520-ZSNgIsKp651A","pyright-28656-veU1iINCRfci","pyright-28704-KQVGNezVrTWI","pyright-2896-kMQoRL9jyu1m","pyright-29156-KL3O7twuQRX8","pyright-2948-NGwfDU54gtKh","pyright-29704-kGnBF4mpfFec","pyright-29704-OW6rprZSHTUg","pyright-30172-laDxVS1CKZOu","pyright-30172-YbuvVmUGEYYv","pyright-30208-9mumlQ8rm3mx","pyright-30208-CvFw2y1BhXKw","pyright-3060-p4rW7d9cO7z5","pyright-32036-lh6hFeiaNkmq","pyright-32036-uGElJEMUwqCI","pyright-32588-7pJKGP87UOcm","pyright-32588-8rXr11HRkrh5","pyright-3268-hdzqfO64SQBm","pyright-3268-ynmcywrigI2a","pyright-33096-ftktLQoM8UrX","pyright-33096-KKMCOuBiGCQ3","pyright-3360-IQUy9HYzoVsA","pyright-3360-VXbU2u68b3Rh","pyright-3472-fee95pulDnq0","pyright-3480-NlLWgQfonpP9","pyright-3484-doQf69eaXU7z","pyright-3484-hF0HJGpcqxR3","pyright-3484-nMjWVppS7yRk","pyright-3484-w1907l67d0xp","pyright-3484-xKKRIF34n6d3","pyright-3492-B1ScICsFF2wk","pyright-3492-zzMuIZJ3lczv","pyright-3516-89hH8b8GTTip","pyright-3516-AnS6F7bh9Rtr","pyright-3576-2N2RiNne9Hn4","pyright-3588-lMq00l9PYaRb","pyright-3696-0zak45BbeZe2","pyright-3696-37nqKg5RaZpv","pyright-3696-9D3rND2PiQXu","pyright-3696-EeddHrB30GpL","pyright-3696-uVp8F727Dyz7","pyright-3732-VZS0AY9bGWtM","pyright-37612-ayJcBTraXFvA","pyright-37612-sugjNT2sWb8q","pyright-3796-az7Zm7rhKPzg","pyright-3888-EnBHVckFd01Z","pyright-3976-88Gcnl7wImOF","pyright-40648-IG3QXI8kD7je","pyright-40648-sesCYHck3LG6","pyright-4080-mZm7hafu17DA","pyright-4080-U1iWj2Cr5vgs","pyright-41040-BU4oYWtGhYxg","pyright-4172-ly58tZKH2MfJ","pyright-41784-ri31bBGzAVYU","pyright-41784-Smr3hlPmz0Cm","pyright-4240-62nej3IGv15H","pyright-4240-hz667ziKp1lh","pyright-4292-BYqA7gfKxnvm","pyright-4292-PLnb7vIvMNer","pyright-4292-QFNxqvaEpw37","pyright-4304-OyD3vdH4xSzf","pyright-4328-Y3hiXaAnhKAY","pyright-4328-ZODA963P0EeE","pyright-4344-MOUPj5wkZqKG","pyright-440-A92kQBNtVri6","pyright-440-mMZgOHQeNQI4","pyright-440-RrHRLmmcKY51","pyright-4496-1LLDz8BXlRmQ","pyright-4496-tejs7ckGDefY","pyright-4512-6pyHRy12M7Ed","pyright-4512-8Bj2byQWAvSL","pyright-4512-PRmZvxyl2xwg","pyright-4512-z4ro73Z7QDbg","pyright-4544-9POWa6oqR1n5","pyright-4544-f6GBPptVKdGy","pyright-4572-Y8R62mIWJYfH","pyright-4580-qwMKaKjmUyym","pyright-4596-wjsG8C7NK5QC","pyright-4596-WmnofP5oWsxr","pyright-4788-e0wkFFWFdgJG","pyright-4788-Z9xVg6yuyC75","pyright-4884-0tN68eTUzbLi","pyright-4884-f7XdzARt0UAD","pyright-4928-5xn87pKvZR6R","pyright-4928-fAcxAenQg8zb","pyright-4928-PLDHGxe35kwA","pyright-4936-JN8oLaTCQ62O","pyright-4936-sWX6QsBRzCW0","pyright-4936-T7HYxoaGepC1","pyright-4936-ZT8GBZR6Orp7","pyright-4956-1pzKVu8g5LQP","pyright-4956-cEMmzF63SAD3","pyright-496-0eYAjdKEF9xp","pyright-496-Tzt6pyxyk0kw","pyright-4964-es7kRoQYwzjA","pyright-4964-XEK6OxgsPiHK","pyright-5036-kMBQVewKKPtT","pyright-5124-kyJI8Bi2IgWX","pyright-5124-n7Q57CL1DHJ8","pyright-5136-MIucX2V5RQX4","pyright-51464-m7XG6a5cgGmp","pyright-51464-msWDb6j8g7Gs","pyright-5148-2wFoUpa3Y90p","pyright-5148-TeAdmM2Tj9rh","pyright-5296-yFk9GKyni0qQ","pyright-5348-9Hftev5e3bH5","pyright-5380-4P1O476a0CMf","pyright-5380-6XFQ8zGAjvcR","pyright-5380-e6PqbP7h0ZkS","pyright-5468-FFvbNp95RWPa","pyright-5468-uaGYBujyrTmq","pyright-5616-1XF6w0N7Z4Dl","pyright-5616-4OaONb8k4lZh","pyright-56300-bEE4dmDAvsQr","pyright-56300-rRweLSWXr6z5","pyright-5708-Z96LpwkEuozS","pyright-5820-l1cgM7vhnG5l","pyright-5820-n1rxXSgtWuDB","pyright-5872-fb6QFh0yso4i","pyright-5872-u4FaXPM1vGmR","pyright-5900-rM9Lmp9QLPH1","pyright-5900-T3uWi14K2wh9","pyright-5912-A94fzw8zIMd8","pyright-5912-BvzBZ9FZIHu0","pyright-5928-07tpmTpQ7WyR","pyright-5928-8m0Kj8RcmTF0","pyright-5928-iyNwJgHu6yXP","pyright-5928-o6KQ97RaSeHu","pyright-6064-e9xWcFg084N6","pyright-6064-pQK2t3Ca3yom","pyright-6096-6Cgr4PHxnSYU","pyright-6096-9ijIH2G2gxCn","pyright-6096-talwwEfUoCzc","pyright-6108-tNEV7dYtBNpW","pyright-616-VHM3KRVq8FSL","pyright-6280-CQnWpxiqHtZm","pyright-6300-9CXvF5NUMnCD","pyright-6300-SLNI9Rtk4VUI","pyright-6448-bdGvmDrVYuWU","pyright-6448-On0NWZDe1Hvp","pyright-6496-QhOyxDJ5zexY","pyright-6500-ZjfHxJ4Ie4TG","pyright-6508-CXFU4UHbZeJi","pyright-6668-92eGF75Ha7S3","pyright-6760-YcVdQFOxMz0L","pyright-6788-1KIozWGxOcN8","pyright-6788-3OPXtp6BRxUm","pyright-6788-8iCu8SI9kFvQ","pyright-6788-8LYHxHKnO3p3","pyright-6788-z0cuaY2Or3bA","pyright-6788-ZIbYFyh3bO53","pyright-6804-86nBWD9QPIuE","pyright-6804-sTpbHOGZY5Vm","pyright-6808-iJW9DL57B05h","pyright-6808-STfC36PGmMXJ","pyright-6848-aZP81yg40dD0","pyright-6940-gU4lxyWrejQH","pyright-6952-52dcbOEZ9TVk","pyright-6952-CXCVOz0ivGPH","pyright-6952-PgP6Xx0yv1Fs","pyright-6984-59L5ysbDKYqh","pyright-6984-WQusrkANtE7X","pyright-7024-1HKdMLDOrie9","pyright-7024-uBZOjqHtpGWh","pyright-7028-uSpUVaaTssu3","pyright-708-gSHkyHTLNONc","pyright-708-W7qq6dlnMHLC","pyright-7184-OSuezvg7qMCF","pyright-7184-X2W85c4BA9Cj","pyright-7200-1JvpWElIQzdE","pyright-7200-Fq0I3890y0RA","pyright-7200-HNj67HsU0eKQ","pyright-7200-jgkrFjgb2d84","pyright-7200-wqQodErEqKNV","pyright-7300-83QcBfnLBaSg","pyright-7300-mxvMdkMpE86T","pyright-7316-QNfHbfhqWkYq","pyright-7320-xK3YcguOMpNf","pyright-7396-qWikyR9ISfon","pyright-7492-Qr5J5z4LYNTs","pyright-7492-vQ2gimzFRDlz","pyright-7508-kL06GHaaRSCt","pyright-7552-jdoAU8dXgqlp","pyright-7552-uHqGNWC2m4OB","pyright-7580-t1SXmM3taBBh","pyright-7580-YNF2AwYsaBXN","pyright-7636-0PmrgkDSEbEW","pyright-7736-WwDaLOh0K6Y7","pyright-7740-j5U4wqb5jBu4","pyright-7740-TuGvDpN9CeZA","pyright-7812-lrHi6X3tb04R","pyright-7936-IiWuHTBgbxpL","pyright-7936-qUhv0LNsXFpJ","pyright-8024-63ouL2kYuQvD","pyright-8024-MQPDhAGgimQ6","pyright-8024-yYKnPpG0Y31C","pyright-8024-ZXqSyGNJ0ZuV","pyright-8092-Kvt11Yvgq0S7","pyright-8108-E4aqmOIjxh3o","pyright-8108-R58OLpdak8TE","pyright-8144-RHAm26yT4liH","pyright-8228-ku0MVZp0qMKV","pyright-8228-TkoHQhIz7hfr","pyright-8244-0wmfGeKNxbeg","pyright-8244-l8FwpJahQuOl","pyright-8320-maUGd6j3cKLS","pyright-8320-MO2KYPxHV0Bm","pyright-8344-uP5R3AFK7hl9","pyright-8344-xS1IApMS4aAJ","pyright-8400-2Awm4iwUEIWz","pyright-8400-dmjFbwSmiqe4","pyright-8408-L9NRCfvRIn64","pyright-8408-mLIrWri7vNPR","pyright-8476-Q3IuL0htdO3A","pyright-8492-cDqTqUUxPmBx","pyright-8496-0PXAwmJiEx8a","pyright-8496-6LvEKYcH64Bf","pyright-8496-WSc6YhFQN4JM","pyright-8500-HhAPfqHMjyrC","pyright-8500-vyesOLkPqlP9","pyright-8532-0m1RT7a3Zgx0","pyright-8532-6U9Ul6j6eTf4","pyright-8536-ojDdjW4rNGc0","pyright-8536-yqmmNsTJ2TIg","pyright-8552-BdxxIK6kxEgx","pyright-8580-BmAZS9hEl66o","pyright-8708-1DT4D2RIC0gQ","pyright-8748-zysQM6CVcCIB","pyright-876-9Y0kxUPgQNW7","pyright-876-Aw9pgZ83nwxE","pyright-8816-OzjPLMwer9yO","pyright-8816-RAcFCEex5Tw2","pyright-8840-0P0esFvNEjyr","pyright-8840-5W93hUpmd9by","pyright-8840-8vhnIkgvan1H","pyright-8840-aC3GWIt9NrHR","pyright-8840-g0rK2RwVes2O","pyright-8840-g5BVUIAGvxqD","pyright-8840-JmdTezVW2xx2","pyright-8840-WWT4LUDYpf0v","pyright-8840-ZJB85XWZsVYp","pyright-9012-D9zgZSlgXQkj","pyright-9012-qlPSJLe5HFtv","pyright-9040-Lz3ZK8AJdDia","pyright-9300-D4hBIXAsgkL5","pyright-9300-re0Pn0Sn28zF","pyright-9300-ueq0hF4taWOk","pyright-9416-paqRZd79zsv5","pyright-9492-CM5FIKkYunH6","pyright-9492-LFrMijm0IXrI","pyright-9504-FdbQoqRXNZ67","pyright-9592-WAg9GhNLk3ER","pyright-9608-7jqIYkZKTcno","pyright-9608-h786FFsVnXDa","pyright-9628-dpPf1cL7TEhE","pyright-9628-hgCWYPVqr7a6","pyright-9628-uOYvjXdAFqLW","pyright-9636-gDGZZZLJANBx","pyright-9636-YS8LXk9vEHu0","pyright-9684-SaR2n6iOnSRq","pyright-9776-hU1pzk7RLSbf","pyright-9776-mHMtzs7yoIQg","pyright-9804-BpeY371PW7cg","pyright-9808-w3n88vACuprx","pyright-9816-v2OySMMSNiQg","pyright-9876-4IYFrhb0ZDF6","pyright-9876-UapONmKRyVNv","pyright-9932-6y6k5V9jVcA5","pyright-9932-Oz2xonqfJMC9","pyright-9932-VUAM9U1DyO9j","pyright-9956-FXxp6D5uapA2","pyright-9956-wC0ST4UotKUY","pyright-9968-Ohx517dTlz4H","pyright-9968-taejTuxvcm2C","python-languageserver-cancellation","q0kamb01.anf","q33haekg.hmx","q4y2s2js.cdt","qabxkau1.zf5","qaqhaiar.dva","qbhv5g3p.xd3","qdcebp4s.upf","qeelh3yu.zi4","qgwpvzhh.lfp","qgyqlbuf.42i","QMCleanU~.tmp","qmcn4ms2.3yb","QMDLCenter_122_4_5","QMDLCenter_122_5_0","QMDLCenter_122_5_5","QMDLCenter_122_8_5","QMProxyAccelerator","qohwuajt.bml","qoqk532l.j5u","qp_tmp_16795","qp_tmp_16863","qp_tmp_20810","qp_tmp_20937","QQMaster","quit.blend","qUYPGm3P","qxdtlkpx.yqk","qxsr4zml.0fu","rbms5r4l.i33","rcbdyaal.hf1","Report.2DF615AF-5232-49DD-8A92-E295F376BA26","reports","rfvfyk25.z2a","rhe5ffyx.eu3","rpl4eiqd.2ix","rpzx14g2.23j","rqmyvrxj.2zx","rs4kv0bg.bjb","rsjzrv5j.ffp","rspropbl.l4d","rsuawuze.dgd","s2nirjpr.ujs","s322t0m1.ifr","s5r0st3r.ljh","saojfyj1.kun","scratch_spaced705c7f3","servicehub","skknx3rl.gmf","smn541zu.efo","squashCommitMessage-1C15B0","squashCommitMessage-3Jnr0o","squashCommitMessage-4cejxp","squashCommitMessage-4N38RO","squashCommitMessage-5wotsA","squashCommitMessage-6NcO2H","squashCommitMessage-7qjyAt","squashCommitMessage-7y6kHh","squashCommitMessage-81hwCX","squashCommitMessage-8DXlcV","squashCommitMessage-8RoKkP","squashCommitMessage-9bT5XX","squashCommitMessage-9M37yp","squashCommitMessage-AaTbmW","squashCommitMessage-abwUi0","squashCommitMessage-agbo1U","squashCommitMessage-AMplm5","squashCommitMessage-aUYO5i","squashCommitMessage-bES43A","squashCommitMessage-chHnG1","squashCommitMessage-cK6SBx","squashCommitMessage-cTRX6g","squashCommitMessage-D7NMU1","squashCommitMessage-dTFvBz","squashCommitMessage-EPesll","squashCommitMessage-f24vCI","squashCommitMessage-F4swdU","squashCommitMessage-FpT5ZK","squashCommitMessage-GFqql3","squashCommitMessage-gLUByc","squashCommitMessage-haQzAL","squashCommitMessage-HfZrz4","squashCommitMessage-HiryhK","squashCommitMessage-hITHZI","squashCommitMessage-hpmPfD","squashCommitMessage-HT2R1L","squashCommitMessage-IbDCAt","squashCommitMessage-IdfHBH","squashCommitMessage-J9Qrnx","squashCommitMessage-jfTezL","squashCommitMessage-JI5CbJ","squashCommitMessage-jiF4y4","squashCommitMessage-jl0SuP","squashCommitMessage-Jy4V9H","squashCommitMessage-k2IBRO","squashCommitMessage-kDORlV","squashCommitMessage-kOtm6G","squashCommitMessage-KSRYz6","squashCommitMessage-kxHRN4","squashCommitMessage-ldoDpm","squashCommitMessage-LhblZO","squashCommitMessage-LYl12Q","squashCommitMessage-mgaBis","squashCommitMessage-Motn1k","squashCommitMessage-Mx9BvQ","squashCommitMessage-n45z3d","squashCommitMessage-njzlaF","squashCommitMessage-NLagQI","squashCommitMessage-nnuWko","squashCommitMessage-OaHZU3","squashCommitMessage-odEW8j","squashCommitMessage-OLBy5b","squashCommitMessage-OLKtij","squashCommitMessage-p9t9Uq","squashCommitMessage-pIf6Ar","squashCommitMessage-Pw4wjb","squashCommitMessage-Pzu44P","squashCommitMessage-QOWHfW","squashCommitMessage-QZKG5Y","squashCommitMessage-RaKQTC","squashCommitMessage-RAMKj4","squashCommitMessage-rdZJMz","squashCommitMessage-Revo5W","squashCommitMessage-rI8Zxb","squashCommitMessage-RpPGgZ","squashCommitMessage-RTFkbE","squashCommitMessage-S5EbKI","squashCommitMessage-se8o5A","squashCommitMessage-si6ah9","squashCommitMessage-SM4MEv","squashCommitMessage-spJrsP","squashCommitMessage-tJdVFj","squashCommitMessage-tt8akz","squashCommitMessage-TZQc0i","squashCommitMessage-Uhhs4H","squashCommitMessage-uPiiIV","squashCommitMessage-uQwZxO","squashCommitMessage-UvdDuF","squashCommitMessage-wF5vH9","squashCommitMessage-wSzJru","squashCommitMessage-x9WxIU","squashCommitMessage-xdl9va","squashCommitMessage-xxf0Id","squashCommitMessage-yBz11e","squashCommitMessage-zaxL9s","squashCommitMessage-zDLLQ1","squashCommitMessage-ZLBRDv","squashCommitMessage-ZTCqPU","squashTodo-07fuPv","squashTodo-09pZ6k","squashTodo-1i39kC","squashTodo-1WNTdB","squashTodo-25q7kw","squashTodo-4FUq7R","squashTodo-4mYWDM","squashTodo-5iBSfB","squashTodo-69B1QJ","squashTodo-7faQMn","squashTodo-8eH8lZ","squashTodo-9JjbsW","squashTodo-a4pJvy","squashTodo-A5QjRX","squashTodo-ABXPXd","squashTodo-ANEpO4","squashTodo-AOd6Dc","squashTodo-arApZu","squashTodo-AX1G8v","squashTodo-BaaIaZ","squashTodo-bBp9qt","squashTodo-Bp9UVC","squashTodo-cBhEy4","squashTodo-CpwRB2","squashTodo-CuwpXU","squashTodo-cvtFPe","squashTodo-D0i7yZ","squashTodo-d3CDcO","squashTodo-DevS18","squashTodo-df5Vw1","squashTodo-dIZfQ1","squashTodo-dSzExg","squashTodo-DYuALv","squashTodo-EaDbO3","squashTodo-Eev3RZ","squashTodo-EJqzDm","squashTodo-ERywSt","squashTodo-EZQaZJ","squashTodo-f57Q36","squashTodo-f7wcWq","squashTodo-gme90f","squashTodo-gTVShQ","squashTodo-H9HLx1","squashTodo-hdlmv1","squashTodo-hJQQg2","squashTodo-IAhyBM","squashTodo-ixR0g3","squashTodo-jFZTXz","squashTodo-jWLepR","squashTodo-KG39dX","squashTodo-lR8JpR","squashTodo-lTA0pd","squashTodo-lUjR6g","squashTodo-mNCUBU","squashTodo-MV5CWo","squashTodo-NmCuoV","squashTodo-nZbyPp","squashTodo-OdKDS6","squashTodo-oHk1Az","squashTodo-oJ6mvQ","squashTodo-OOUv93","squashTodo-Oy57So","squashTodo-PGau6H","squashTodo-pGbKtg","squashTodo-Pj4QEi","squashTodo-QgWgPV","squashTodo-qhSl1q","squashTodo-qnCE30","squashTodo-qnZ8V2","squashTodo-qX7IAg","squashTodo-ReFrSe","squashTodo-RHceHC","squashTodo-riQ1Q1","squashTodo-RsDo4y","squashTodo-rTOzDM","squashTodo-RyNr1f","squashTodo-SCPBMP","squashTodo-seLa27","squashTodo-siAEjA","squashTodo-sISaSe","squashTodo-snb7KH","squashTodo-tGQZ78","squashTodo-TN1o5Z","squashTodo-toFqT7","squashTodo-uCnZY7","squashTodo-UV1Ozc","squashTodo-UwGiXT","squashTodo-vJMFP4","squashTodo-Wjb2Wt","squashTodo-Wm1m6C","squashTodo-wyzQzK","squashTodo-xp6c3a","squashTodo-xYRu33","squashTodo-y8JEfs","squashTodo-YFpGIn","squashTodo-yTl4m3","squashTodo-Z1sQ3X","squashTodo-zbyJ40","Squirrel-Uninstall.log","sqwvkbkb.c4y","sr45qzok.zoi","srooqqsb.chm","ss5nfsdz.n0z","stmjfqre.kp4","StructuredQuery.log","style","sxwm44gt.k03","SymbolCache","system-commandline-sentinel-files","t3n4sqff.vzy","t3xdbm5y.hwi","TADInstaller.log.xml","tafy4npq.ib0","TCD104D.tmp","TCD10BC.tmp","TCD11D7.tmp","TCD12B4.tmp","TCD13C0.tmp","TCD149C.tmp","TCD15ED.tmp","TCD1611.tmp","TCD1690.tmp","TCD1700.tmp","TCD1701.tmp","TCD172F.tmp","TCD181B.tmp","TCD1D56.tmp","TCD1D57.tmp","TCD1EF7.tmp","TCD1F49.tmp","TCD1F4A.tmp","TCD1F4B.tmp","TCD1F4C.tmp","TCD20ED.tmp","TCD21A5.tmp","TCD21A6.tmp","TCD21B6.tmp","TCD2237.tmp","TCD2410.tmp","TCD242D.tmp","TCD243F.tmp","TCD2470.tmp","TCD24CF.tmp","TCD2CEF.tmp","TCD2F14.tmp","TCD325A.tmp","TCD32CF.tmp","TCD3438.tmp","TCD3439.tmp","TCD343A.tmp","TCD345C.tmp","TCD346C.tmp","TCD347E.tmp","TCD3B0F.tmp","TCD3C6.tmp","TCD3C7.tmp","TCD3C8.tmp","TCD3C9.tmp","TCD3CA.tmp","TCD3DD.tmp","TCD3DE.tmp","TCD40F.tmp","TCD414D.tmp","TCD414E.tmp","TCD43D0.tmp","TCD44FB.tmp","TCD4607.tmp","TCD4608.tmp","TCD4618.tmp","TCD4619.tmp","TCD461A.tmp","TCD461B.tmp","TCD461C.tmp","TCD461D.tmp","TCD461E.tmp","TCD461F.tmp","TCD4620.tmp","TCD4621.tmp","TCD4953.tmp","TCD4A10.tmp","TCD4B33.tmp","TCD4B34.tmp","TCD4B35.tmp","TCD4B36.tmp","TCD4B46.tmp","TCD4BB6.tmp","TCD4C37.tmp","TCD4C64.tmp","TCD4D3F.tmp","TCD4EA8.tmp","TCD4F21.tmp","TCD5021.tmp","TCD5552.tmp","TCD5C0C.tmp","TCD5C0D.tmp","TCD5C0E.tmp","TCD5C2F.tmp","TCD5CBD.tmp","TCD5CCF.tmp","TCD5E45.tmp","TCD5E46.tmp","TCD5E77.tmp","TCD5EA8.tmp","TCD5ED9.tmp","TCD5EEB.tmp","TCD62C9.tmp","TCD630B.tmp","TCD630C.tmp","TCD631D.tmp","TCD633E.tmp","TCD6585.tmp","TCD65B8.tmp","TCD65B9.tmp","TCD65BA.tmp","TCD6629.tmp","TCD7C6B.tmp","TCD7D0D.tmp","TCD7D67.tmp","TCD7D8C.tmp","TCD845E.tmp","TCD8512.tmp","TCD8513.tmp","TCD8514.tmp","TCD8515.tmp","TCD8516.tmp","TCD85F6.tmp","TCD87C6.tmp","TCD8C72.tmp","TCD8D91.tmp","TCD8D92.tmp","TCD8D93.tmp","TCD8D94.tmp","TCD8D95.tmp","TCD8D96.tmp","TCD8DFB.tmp","TCD8EFB.tmp","TCD93A4.tmp","TCD93D0.tmp","TCD947E.tmp","TCD9502.tmp","TCD9664.tmp","TCD96C3.tmp","TCD96C4.tmp","TCD96C5.tmp","TCD96C6.tmp","TCD96C7.tmp","TCD9944.tmp","TCD9D8F.tmp","TCDA189.tmp","TCDA727.tmp","TCDA748.tmp","TCDA76.tmp","TCDAAC5.tmp","TCDACC7.tmp","TCDACD8.tmp","TCDB026.tmp","TCDB219.tmp","TCDB24B.tmp","TCDB26E.tmp","TCDB36B.tmp","TCDB36C.tmp","TCDB37D.tmp","TCDB3C5.tmp","TCDB3C6.tmp","TCDB3D7.tmp","TCDB3F8.tmp","TCDB8D5.tmp","TCDBC0.tmp","TCDBDE8.tmp","TCDBDEB.tmp","TCDBE0C.tmp","TCDBE4D.tmp","TCDBE96.tmp","TCDBECC.tmp","TCDBF83.tmp","TCDC4F3.tmp","TCDC5DA.tmp","TCDC5DB.tmp","TCDC5DC.tmp","TCDC5DD.tmp","TCDC5DE.tmp","TCDC5DF.tmp","TCDC5E0.tmp","TCDC6B1.tmp","TCDC7F6.tmp","TCDC7F7.tmp","TCDC827.tmp","TCDCBC.tmp","TCDCD39.tmp","TCDDE21.tmp","TCDDE22.tmp","TCDDE23.tmp","TCDDE24.tmp","TCDDE93.tmp","TCDDF7.tmp","TCDE0CF.tmp","TCDE0D0.tmp","TCDE0D1.tmp","TCDE137.tmp","TCDE138.tmp","TCDE139.tmp","TCDE13A.tmp","TCDE13B.tmp","TCDE13C.tmp","TCDE2CC.tmp","TCDE704.tmp","TCDE716.tmp","TCDE719.tmp","TCDE71A.tmp","TCDE73B.tmp","TCDE75D.tmp","TCDE75E.tmp","TCDE78F.tmp","TCDE84E.tmp","TCDE863.tmp","TCDE864.tmp","TCDE865.tmp","TCDE866.tmp","TCDEB75.tmp","TCDEBE5.tmp","TCDEC35.tmp","TCDEDCD.tmp","TCDEF88.tmp","TCDEF89.tmp","TCDEF8A.tmp","TCDEF8B.tmp","TCDEF8C.tmp","TCDEF8D.tmp","TCDEF9F.tmp","TCDF0B0.tmp","TCDF0B1.tmp","TCDF0B2.tmp","TCDF0B3.tmp","TCDF0B4.tmp","TCDF0B5.tmp","TCDF22.tmp","TCDF5FE.tmp","TCDF6FA.tmp","TCDF86E.tmp","tdk1fsgf.p0f","tduw1z5j.cre","tdva5gce.bno","TeamViewer","temF828.tmp","Tencent","tez0njcv.441","TFR6505.tmp","TFR6F9.tmp","TFR8D15.tmp","TFR9452.tmp","TFR9B23.tmp","TFR9D1A.tmp","TFRBF3C.tmp","TFRD406.tmp","TFRE9BB.tmp","TFRF0BA.tmp","TFSTemp","tmp-10476-Xjvo5ntl6SjT","tmp-10688-tp4CmDzP5CPR","tmp-1136-7dwmPnlo17g8","tmp-11756-HGSegXRdYv1f","tmp-11800-gjPKK8c5Z1GY","tmp-12448-pgSEkPiMXlyM","tmp-12920-gLGJEfstQpxL","tmp-13488-vikc4jeiVIVS","tmp-13528-OvpFkDJFJ7o4","tmp-14196-dbYVESAyGHRE","tmp-14444-qTVz21Sui3u3","tmp-14768-i4EhPDe8I5XW","tmp-16340-HusboUxSrCj9","tmp-16496-1FM1u8MxBJzs","tmp-16616-S5Wo69WMbe19","tmp-16936-9KE0E12ALL2U","tmp-16936-hwv6TXKWeiiR","tmp-17648-F3W3yQSKCCV5","tmp-17724-Xd4EURShV5Z7","tmp-18756-W1CAb1WiGNbk","tmp-19208-XDzTrT1my2sM","tmp-20040-M23K81UZVl4L","tmp-20112-b6PZunbFqm1m","tmp-21496-PKoNMlTq8Pm5","tmp-21964-WokozU07HOl4","tmp-22860-hfTKyPqyp78K","tmp-23864-Meh7hNLyRSwi","tmp-23980-40wRxJtiMCu5","tmp-2420-GGIKl2nV7Fa5","tmp-24264-UUZxdZ24pSPA","tmp-2532-GryyMYDyPem9","tmp-2760-j6mYLiA3ms2o","tmp-28456-U832YtC03nXC","tmp-30036-Z9Oeeas706ro","tmp-3128-tvjjEep8sodW","tmp-3832-f85flhzsoNLb","tmp-3880-XZrNvOTGMlQE","tmp-4212-pVXGUs3oAJDD","tmp-4408-oMYiama6kYWU","tmp-4600-dMs4OPXgup04","tmp-6100-XnWa0j4ZbiUT","tmp-6808-mLPbdG3ma0pX","tmp-6816-60D3S7RypYge","tmp-7400-XcZteLNZpcNj","tmp-7624-8mFfH2X3G0q3","tmp-7728-85sLKfWXBwoH","tmp-8268-aJjuD3Sgzfim","tmp-832-6CfZHl5tbBem","tmp-8548-o4PqHGlSVwwM","tmp-8844-4A5Cycvvy0pK","tmp-9332-vuLqIsvAWwKB","tmp-9484-DJHuEf7A5RFM","tmp-9528-FXjXnxhhbtmn","tmp0gjuqpi2wandb-media","tmp0gpazl09","tmp0hxz6ifiwandb-media","tmp0s8dl16x","tmp0yaxwox7wandb-media","tmp14dpzb6b","tmp1pvvg524","tmp1uuxlois","tmp1xxo_1n7","tmp1xzfhrh8","tmp1_r10zk4cacert.pem","tmp2cvecqka","tmp2jfn2pk7","tmp3el45lmw","tmp4mfgctx9","tmp53j7lzt1","tmp6mgh_aa_","tmp7k5q4yoy","tmp7q8apn2cwandb-media","tmp7s08h56h","tmp8r4z5riw","tmp8tum896f","tmp9g06nlmiwandb","tmpa5qrvibe","tmpb78h066t","tmpbdhgfffl","tmpbo8oab1owandb-artifacts","tmpb_4awfso","tmpdaywq41iwandb","tmpdg1w8_gw","tmpeezyrkj6","tmpelq5ilwpwandb-artifacts","tmpf14ji48m","tmpf8i1venw","tmpfjs9zcew","tmpf_g67hpg","tmpf_rmo4_w","tmpgglteh5o","tmpgo362rqzwandb-artifacts","tmphbvpmq41","tmphw09gh31","tmpi1j_r7hk","tmpi25tpa_y","tmpi2hlwx3o","tmpibt5_yaz","tmpj82en9w7wandb-media","tmpjrul4ndm","tmpj_f_uyq3","tmpk66gu3sg","tmpk8a7dnpt","tmpksaw31v9","tmpkvyphwhfwandb","tmpl2il7qal","tmpl8fl040k","tmplp_l4o_1","tmpmjo7_cn_","tmpn0hxl469","tmpn4gsra3v","tmpn6idu9otwandb-media","tmpnp87x6r7wandb","tmpnrict030","tmpoqrd4kbc","tmpot7hazi6","tmpp5jtkmm8","tmpq9xgtj90","tmpr4e6p6_j","tmprakgptq4","tmps24976ho","tmptcvo2ytp","tmptqfkjkidwandb-media","tmptyirs3lb","tmpvhr0022u","tmpwj4gzb4dwandb-artifacts","tmpwmnu0fks","tmpwn693mo1","tmpwoapw9xjwandb-media","tozeaguj.gbt","tvlbldne.z3r","twovs4zr.cbu","twzkpa2u.ik4","txi55clc.lrw","ub43ovro.fjp","udjhswe2.s4u","ufvsqnif.sjk","uicbaxpj.cun","ujduyux4.unv","ulsdcw4a.eth","UNI3A7D.tmp","UNI3A95.tmp","Unity","UnityCBMCrashes","unityhub-1c1ea040-ff92-11ec-a2c6-af94bcafb681","unityhub-1c209c10-ff92-11ec-a2c6-af94bcafb681","unityhub-288454b0-fe07-11ec-984d-094fc9de2183","unityhub-2885db50-fe07-11ec-984d-094fc9de2183","unityhub-28fab000-0d17-11ed-81ef-cde9e70b11a9","unityhub-28fcabd0-0d17-11ed-81ef-cde9e70b11a9","unityhub-333f8b90-f3b7-11ec-9b98-ad291028d0b0","unityhub-4d6f2ac0-fe07-11ec-984d-094fc9de2183","unityhub-4d70b160-fe07-11ec-984d-094fc9de2183","unityhub-4d7174b0-fe07-11ec-984d-094fc9de2183","unityhub-4d7210f0-fe07-11ec-984d-094fc9de2183","unityhub-4e0ace80-fe07-11ec-984d-094fc9de2183","unityhub-4e0b91d0-fe07-11ec-984d-094fc9de2183","unityhub-4ea49d80-fe07-11ec-984d-094fc9de2183","unityhub-4f3dd040-fe07-11ec-984d-094fc9de2183","unityhub-57811680-0d17-11ed-81ef-cde9e70b11a9","unityhub-57829d20-0d17-11ed-81ef-cde9e70b11a9","unityhub-57838780-0d17-11ed-81ef-cde9e70b11a9","unityhub-5783fcb0-0d17-11ed-81ef-cde9e70b11a9","unityhub-57844ad0-0d17-11ed-81ef-cde9e70b11a9","unityhub-5784c000-0d17-11ed-81ef-cde9e70b11a9","unityhub-57853530-0d17-11ed-81ef-cde9e70b11a9","unityhub-5785aa60-0d17-11ed-81ef-cde9e70b11a9","unityhub-578646a0-0d17-11ed-81ef-cde9e70b11a9","unityhub-578694c0-0d17-11ed-81ef-cde9e70b11a9","unityhub-578709f0-0d17-11ed-81ef-cde9e70b11a9","unityhub-6f9e5c70-0d1f-11ed-aa38-25389ba4d915","unityhub-abe6cd00-7595-11ed-9519-1d64e88391ac","unityhub-abe96510-7595-11ed-9519-1d64e88391ac","unityhub-abeb60e0-7595-11ed-9519-1d64e88391ac","unityhub-abed35a0-7595-11ed-9519-1d64e88391ac","unityhub-abed83c0-7595-11ed-9519-1d64e88391ac","unityhub-abedaad0-7595-11ed-9519-1d64e88391ac","unityhub-abedd1e0-7595-11ed-9519-1d64e88391ac","unityhub-ac866860-7595-11ed-9519-1d64e88391ac","unityhub-ac868f70-7595-11ed-9519-1d64e88391ac","unityhub-acca8af0-0d16-11ed-81ef-cde9e70b11a9","unityhub-accc1190-0d16-11ed-81ef-cde9e70b11a9","unityhub-acccadd0-0d16-11ed-81ef-cde9e70b11a9","unityhub-acccfbf0-0d16-11ed-81ef-cde9e70b11a9","unityhub-af295dc0-fe08-11ec-984d-094fc9de2183","unityhub-c49b6470-e4e3-11ec-9286-6d68fb58ef46","unityhub-d0a20c00-e4e4-11ec-98f6-13fe70250f6f","unityhub-d6461f80-f3b6-11ec-9b98-ad291028d0b0","unityhub-ee1d1490-759a-11ed-9519-1d64e88391ac","unityhub-ee213340-759a-11ed-9519-1d64e88391ac","unityhub-ee24dcc0-759a-11ed-9519-1d64e88391ac","unityhub-ee2551f0-759a-11ed-9519-1d64e88391ac","unityhub-ee257900-759a-11ed-9519-1d64e88391ac","unityhub-ee26b180-759a-11ed-9519-1d64e88391ac","unityhub-ee27ea00-759a-11ed-9519-1d64e88391ac","unityhub-ff434ef0-f305-11ec-8dee-17387d5649aa","uo3lqrci.k40","uoo0c3ou.puw","update-check","uqq02izx.1q0","us5peiwb.awi","utrmq0iu.2ix","uu54jhnr.dwq","uuqoziih.hnq","uzfigxdn.tn5","v03vwvr3.act","v1vcshpa.ph1","v8-compile-cache","vb2fxyxs.bvz","vb5ngpi1.o20","VBCSCompiler","VBE","vbsaw2i2.txa","vbyxftzq.xgv","VCTempFiles","vghynhbo.wjd","vgidkrd3.1vs","vgswcdor.aot","vifkax4e.cg4","vihkilhn.gcp","virfmjox.huk","vksxq3qf.5ew","vl1e4phx.rhg","vlbllt2p.pe3","vlqrwvuo.qsf","vminst.log","vmware-bluel","vqd552ht.zpt","vr0yv3q2.fcc","VS","vs.mcj-1816327378","vscode-inno-updater-1667489897.log","vscode-inno-updater-1668059757.log","vscode-inno-updater-1670474178.log","vscode-inno-updater-1671081402.log","vscode-inno-updater-1671603844.log","vscode-linux-multi-line-command-103.100.60.166-102155528.sh","vscode-linux-multi-line-command-103.100.60.166-305152307.sh","vscode-linux-multi-line-command-103.100.60.166-380410762.sh","vscode-linux-multi-line-command-103.100.60.166-935681628.sh","vscode-linux-multi-line-command-bufan-145467053.sh","vscode-linux-multi-line-command-bufan-20767273.sh","vscode-linux-multi-line-command-bufan-216487645.sh","vscode-linux-multi-line-command-bufan-327921926.sh","vscode-linux-multi-line-command-bufan-359717099.sh","vscode-linux-multi-line-command-bufan-379189894.sh","vscode-linux-multi-line-command-bufan-422074095.sh","vscode-linux-multi-line-command-bufan-513014949.sh","vscode-linux-multi-line-command-bufan-600152582.sh","vscode-linux-multi-line-command-bufan-61367816.sh","vscode-linux-multi-line-command-bufan-739068456.sh","vscode-linux-multi-line-command-bufan-757546284.sh","vscode-linux-multi-line-command-bufan-809115765.sh","vscode-linux-multi-line-command-bufan-837785803.sh","vscode-linux-multi-line-command-bufan-93967657.sh","vscode-linux-multi-line-command-test-113469124.sh","vscode-linux-multi-line-command-test-124448500.sh","vscode-linux-multi-line-command-test-133619841.sh","vscode-linux-multi-line-command-test-14676005.sh","vscode-linux-multi-line-command-test-147559051.sh","vscode-linux-multi-line-command-test-14908067.sh","vscode-linux-multi-line-command-test-17747262.sh","vscode-linux-multi-line-command-test-188018406.sh","vscode-linux-multi-line-command-test-195017378.sh","vscode-linux-multi-line-command-test-212444107.sh","vscode-linux-multi-line-command-test-223713733.sh","vscode-linux-multi-line-command-test-239076160.sh","vscode-linux-multi-line-command-test-247004370.sh","vscode-linux-multi-line-command-test-262032683.sh","vscode-linux-multi-line-command-test-263838170.sh","vscode-linux-multi-line-command-test-264858398.sh","vscode-linux-multi-line-command-test-267425186.sh","vscode-linux-multi-line-command-test-274985394.sh","vscode-linux-multi-line-command-test-283665848.sh","vscode-linux-multi-line-command-test-287893721.sh","vscode-linux-multi-line-command-test-291269010.sh","vscode-linux-multi-line-command-test-302985732.sh","vscode-linux-multi-line-command-test-311074351.sh","vscode-linux-multi-line-command-test-312180713.sh","vscode-linux-multi-line-command-test-325045955.sh","vscode-linux-multi-line-command-test-326323764.sh","vscode-linux-multi-line-command-test-329731988.sh","vscode-linux-multi-line-command-test-333729060.sh","vscode-linux-multi-line-command-test-362826307.sh","vscode-linux-multi-line-command-test-400816126.sh","vscode-linux-multi-line-command-test-417041929.sh","vscode-linux-multi-line-command-test-420043742.sh","vscode-linux-multi-line-command-test-42730068.sh","vscode-linux-multi-line-command-test-430814708.sh","vscode-linux-multi-line-command-test-43822370.sh","vscode-linux-multi-line-command-test-442481797.sh","vscode-linux-multi-line-command-test-442916178.sh","vscode-linux-multi-line-command-test-446808931.sh","vscode-linux-multi-line-command-test-448537184.sh","vscode-linux-multi-line-command-test-457810954.sh","vscode-linux-multi-line-command-test-470034391.sh","vscode-linux-multi-line-command-test-477252883.sh","vscode-linux-multi-line-command-test-505534532.sh","vscode-linux-multi-line-command-test-513474242.sh","vscode-linux-multi-line-command-test-52463284.sh","vscode-linux-multi-line-command-test-550379928.sh","vscode-linux-multi-line-command-test-580124033.sh","vscode-linux-multi-line-command-test-585476292.sh","vscode-linux-multi-line-command-test-612204635.sh","vscode-linux-multi-line-command-test-622058594.sh","vscode-linux-multi-line-command-test-623151726.sh","vscode-linux-multi-line-command-test-62602561.sh","vscode-linux-multi-line-command-test-629461370.sh","vscode-linux-multi-line-command-test-64130857.sh","vscode-linux-multi-line-command-test-643842021.sh","vscode-linux-multi-line-command-test-64884113.sh","vscode-linux-multi-line-command-test-651172612.sh","vscode-linux-multi-line-command-test-657189674.sh","vscode-linux-multi-line-command-test-682821020.sh","vscode-linux-multi-line-command-test-684943205.sh","vscode-linux-multi-line-command-test-741741148.sh","vscode-linux-multi-line-command-test-74274306.sh","vscode-linux-multi-line-command-test-761589225.sh","vscode-linux-multi-line-command-test-769428062.sh","vscode-linux-multi-line-command-test-770520379.sh","vscode-linux-multi-line-command-test-776083443.sh","vscode-linux-multi-line-command-test-788323240.sh","vscode-linux-multi-line-command-test-78966698.sh","vscode-linux-multi-line-command-test-826117716.sh","vscode-linux-multi-line-command-test-857438868.sh","vscode-linux-multi-line-command-test-862241671.sh","vscode-linux-multi-line-command-test-875794904.sh","vscode-linux-multi-line-command-test-885928032.sh","vscode-linux-multi-line-command-test-885978344.sh","vscode-linux-multi-line-command-test-886716156.sh","vscode-linux-multi-line-command-test-900008423.sh","vscode-linux-multi-line-command-test-928355637.sh","vscode-linux-multi-line-command-test-939198723.sh","vscode-linux-multi-line-command-test-958350397.sh","vscode-linux-multi-line-command-test-967262348.sh","vscode-linux-multi-line-command-test-967356826.sh","vscode-linux-multi-line-command-test-976042894.sh","vscode-linux-multi-line-command-test-985894279.sh","vscode-remote-wsl","vscode-typescript","vscode-update-user-x64","VSFeedbackIntelliCodeLogs","VSFeedbackPerfWatsonData","VSFeedbackVSRTCLogs","VSLogs","VSTelem","VSTelem.Out","VsTempFiles","VSWebView2Cache","vupriajl.2db","vv0dvi0l.bwc","VWDWebCache","vxgtv0cq.z3q","vxjvayvt.j3w","vygfq0zk.eba","w0cymdtx.aiy","w13ze51t.qlx","w3ulbo2k.p1l","w4yvvyfa.xee","wauvzy02.opi","wct367E.tmp","WeChat Files","wemeet_bin","wfeoqu1w.a3f","wilsgjol.1fc","WinSAT","wj1xgx4e.dr3","wjecqqic.xme","wkujldaf.rou","WM Scan Test","wn53ltmp.uhn","wnfegulj.ha5","woowrbsn.o4g","WPF","wps","wsdcpwwn.ar0","WSLDVCPlugin","wsu4781.tmp","wsu4957.tmp","wtqyz4hw.qn4","wx1l31hf.ayf","wymcm11t.wic","wyr5tzy1.omv","wz202blm.ihg","x1tqqc4g.nf3","x5sbag2x.chn","x5ts0i5d.yjl","xgg3qywo.xax","xifipgbu.anp","xlud1veu.vlv","xrhuq1wb.o1n","Xshell 7 Update Log.txt","xt1xmn3q.ynq","xufyiwim.cro","xwbdcuw0.blo","xxxi30aj.isr","xyu4plc2.lmr","y2eoqm3m.rlf","yarn--1668753369799-0.49884294487102987","ycvymrhj.wsr","YFF~2JYV[7~B2RB$X]{Y1$4.tmp","ykkvmg0y.heq","yn41ygoq.3iy","ynix0xt0.msi","yunbrowserthumbs","yyria3he.fxn","z2clnui4.qw3","zb2ccb3u.reh","zbitz3np.la3","zbpxgq3e.tgx","zdgjqqcp.isw","zgv2ouwd.qyu","zih4h4kt.x2k","zk4olwct.o3v","zkgt0fod.ly3","zm3fdpze.21w","zmnchnpu.wns","zno1pydb.nep","zokguq5z.qzn","zqugzrk4.5cn","ztfbcjyv.zlh","zxpa41k5.mrv","zy4b44v1.c0v","zzfxshg2.lcm","__FFFFFFFFE6ADABEF","{1212F6C4-0545-4E2A-AF9B-0082727C8A9B}","{3EFD9A1A-02FC-4825-B7C4-6CDB299979ED}","{64A0B301-E4B6-4F38-8C6E-F33D66EE0692}","{7F2DD965-2FE4-4946-9C6F-0E212E548247} - OProcSessId.dat","{8DE68C25-5A07-4130-B8B1-3F8069E459E8}","{D24283DE-9181-4459-A31E-FCA6EA9EC9AD}","{dlptemp}","~DF29EE2AA861E2BB53.TMP","~DF356440023C6B9BC3.TMP","~DF89A6044E25B3E8B1.TMP","~DF91BACD5D48A2388C.TMP","~DFA661BD4282DB3C21.TMP","~DFAEA9383C5DCD1D50.TMP","~DFC8D30F05BBD157AC.TMP","~DFF82328546E30AE61.TMP","~nsu.tmp","鎶ュ憡20221211-0518.diagsession","鎶ュ憡20221211-0530.diagsession","鎶ュ憡20221212-0146.diagsession","鎶ュ憡20221212-0155.diagsession","鎶ュ憡20221214-0436.diagsession","鎶ュ憡20221214-0455.diagsession","鎶ュ憡20221214-0514.diagsession","鎶ュ憡20221214-0544.diagsession","鎶ュ憡20221222-0948.diagsession"]} + +assert len(a['result']) == 6043 \ No newline at end of file diff --git a/dependencies/pocketpy/tests/80_linalg.py b/dependencies/pocketpy/tests/80_linalg.py new file mode 100644 index 0000000..a3d6957 --- /dev/null +++ b/dependencies/pocketpy/tests/80_linalg.py @@ -0,0 +1,499 @@ +from linalg import mat3x3, vec2, vec3, vec4 +import random +import sys +import math + +assert repr(math) == "" + +# 出于对精度转换的考虑,在本测试中具体将采用str(floating_num)[:6]来比较两个浮点数是否相等 + +# test vec2-------------------------------------------------------------------- + +def rotated_vec2(vec_2, radians: float): + cos_theta = math.cos(radians) + sin_theta = math.sin(radians) + new_x = vec_2.x * cos_theta - vec_2.y * sin_theta + new_y = vec_2.x * sin_theta + vec_2.y * cos_theta + return vec2(new_x, new_y) + +# 生成随机测试目标 +min_num = -10.0 +max_num = 10.0 +test_vec2 = vec2(*tuple([random.uniform(min_num, max_num) for _ in range(2)])) +test_vec2_2 = vec2(*tuple([random.uniform(min_num, max_num) for _ in range(2)])) +static_test_vec2_float = vec2(3.18, -1.09) +static_test_vec2_int = vec2(278, -1391) + +# test __repr__ +assert str(static_test_vec2_float).startswith('vec2(') +assert str(static_test_vec2_int).startswith('vec2(') + +# test copy +element_name_list = [e for e in dir(test_vec2) if e in 'x,y,z,w'] +element_value_list = [getattr(test_vec2, attr) for attr in element_name_list] +copy_element_value_list = [getattr(test_vec2.copy(), attr) for attr in element_name_list] +assert element_value_list == copy_element_value_list + +# test rotate +test_vec2_copy = test_vec2.copy() +radians = random.uniform(-10*math.pi, 10*math.pi) +test_vec2_copy = rotated_vec2(test_vec2_copy, radians) +assert test_vec2.rotate(radians) == test_vec2_copy +test_vec2.rotate_(radians) +assert test_vec2 == test_vec2_copy + +# test smooth_damp +vel = vec2(0, 0) +ret = vec2.smooth_damp(vec2(1, 2), vec2(3, 4), vel, 0.2, 0.001, 0.05) +assert isinstance(ret, vec2) +assert vel.length() > 0 + +# test vec3-------------------------------------------------------------------- +# 生成随机测试目标 +min_num = -10.0 +max_num = 10.0 +test_vec3 = vec3(*tuple([random.uniform(min_num, max_num) for _ in range(3)])) +static_test_vec3_float = vec3(3.1886954323, -1098399.59932453432, 9.00000000000002765) +static_test_vec3_int = vec3(278, -13919730938747, 1364223456756456) + +# test __repr__ +assert str(static_test_vec3_float).startswith('vec3(') +assert str(static_test_vec3_int).startswith('vec3(') + +# test copy +element_name_list = ['x', 'y', 'z'] +element_value_list = [getattr(test_vec3, attr) for attr in element_name_list] +copy_element_value_list = [getattr(test_vec3.copy(), attr) for attr in element_name_list] +assert element_value_list == copy_element_value_list + +# test vec4-------------------------------------------------------------------- +# 生成随机测试目标 +min_num = -10.0 +max_num = 10.0 +test_vec4 = vec4(*tuple([random.uniform(min_num, max_num) for _ in range(4)])) +static_test_vec4_float = vec4(3.1886954323, -1098399.59932453432, 9.00000000000002765, 4565400000000.0000000045) +static_test_vec4_int = vec4(278, -13919730938747, 1364223456756456, -37) + +# test __repr__ +assert str(static_test_vec4_float).startswith('vec4(') +assert str(static_test_vec4_int).startswith('vec4(') + +# test copy +element_name_list = ['x', 'y', 'z', 'w'] +element_value_list = [getattr(test_vec4, attr) for attr in element_name_list] +copy_element_value_list = [getattr(test_vec4.copy(), attr) for attr in element_name_list] +assert element_value_list == copy_element_value_list + + +# test mat3x3-------------------------------------------------------------------- +def mat_to_str_list(mat): + ret = [[0,0,0], [0,0,0], [0,0,0]] + for i in range(3): + for j in range(3): + ret[i][j] = str(round(mat[i, j], 2))[:6] + return ret + +def mat_list_to_str_list(mat_list): + ret = [[0,0,0], [0,0,0], [0,0,0]] + for i in range(3): + for j in range(3): + ret[i][j] = str(round(mat_list[i][j], 2))[:6] + return ret + +def mat_to_list(mat): + ret = [[0,0,0], [0,0,0], [0,0,0]] + for i in range(3): + for j in range(3): + ret[i][j] = mat[i, j] + return ret + +def mat_round(mat, pos): + ''' + 对mat的副本的每一个元素执行round(element, pos),返回副本 + 用于校对元素是浮点数的矩阵 + ''' + ret = mat.copy() + + for i, row in enumerate(ret): + for j, element in enumerate(row): + row[j] = round(element, pos) + ret[i] = row + + return ret + +def get_row(mat, row_index): + ''' + 返回mat的row_index行元素构成的列表 + ''' + ret = [] + for i in range(3): + ret.append(mat[row_index, i]) + return ret + +def get_col(mat, col_index): + ''' + 返回mat的col_index列元素构成的列表 + ''' + ret = [] + for i in range(3): + ret.append(mat[i, col_index]) + return ret + +def calculate_inverse(matrix): + ''' + 返回逆矩阵 + ''' + # 获取矩阵的行数和列数 + rows = len(matrix) + cols = len(matrix[0]) + # 确保矩阵是方阵 + if rows != cols: + raise ValueError("输入矩阵必须是方阵") + # 构建单位矩阵 + identity = [[1 if i == j else 0 for j in range(cols)] for i in range(rows)] + # 将单位矩阵与输入矩阵进行初等行变换 + augmented_matrix = [row + identity[i] for i, row in enumerate(matrix)] + # 初等行变换,将输入矩阵转化为单位矩阵,同时在另一边进行相同的行变换 + for i in range(cols): + pivot = augmented_matrix[i][i] + if pivot == 0: + raise ValueError("输入矩阵不可逆") + scale_row(augmented_matrix, i, 1/pivot) + for j in range(cols): + if j != i: + scale = augmented_matrix[j][i] + row_operation(augmented_matrix, j, i, -scale) + # 提取逆矩阵 + inverse_matrix = [row[cols:] for row in augmented_matrix] + return inverse_matrix + +def scale_row(matrix, row, scale): + matrix[row] = [element * scale for element in matrix[row]] + +def row_operation(matrix, target_row, source_row, scale): + matrix[target_row] = [target_element + scale * source_element for target_element, source_element in zip(matrix[target_row], matrix[source_row])] +# 生成随机测试目标 +min_num = -10.0 +max_num = 10.0 +test_mat = mat3x3([random.uniform(min_num, max_num) for _ in range(9)]) +static_test_mat_float= mat3x3( + 7.264189733952545, -5.432187523625671, 1.8765304152872613, + -2.4910524352374734, 8.989660807513068, -0.7168824333280513, + 9.558042327611506, -3.336280256662496, 4.951381528057387 +) + +static_test_mat_float_inv = mat3x3( 0.32265243, 0.15808159, -0.09939472, + 0.04199553, 0.13813096, 0.00408326, + -0.59454451, -0.21208362, 0.39658464) + +static_test_mat_int = mat3x3([ + 1, 2, 3, + 4, 5, 6, + 7, 8, 9] + ) + +# test incorrect number of parameters is passed +for i in range(20): + + if i in [0, 9]: + continue + + try: + test_mat_copy = mat3x3(*tuple([e+0.1 for e in range(i)])) + + # 既然参数数量不是合法的0个或9个,并且这里也没有触发TypeError,那么引发测试失败 + print(f'When there are {i} arguments, no TypeError is triggered') + exit(1) + + except TypeError: + pass + +# test 9 floating parameters is passed +test_mat_copy = test_mat.copy() +element_name_list = [] +for i in range(3): + for j in range(3): + element_name_list.append(f'_{i+1}{j+1}') +element_value_list = [getattr(test_mat, attr) for attr in element_name_list] +assert mat3x3(*tuple(element_value_list)) == test_mat + + +# test copy +test_mat_copy = test_mat.copy() +assert test_mat is not test_mat_copy +assert test_mat == test_mat_copy + +# test __getitem__ +for i, element in enumerate([getattr(test_mat, e) for e in element_name_list]): + assert test_mat[int(i/3), i%3] == element + +try: + test_mat[1,2,3] + raise Exception('未能触发错误拦截, 此处应当报错 IndexError("index out of range")') +except: + pass + +try: + test_mat[-1][4] + raise Exception('未能触发错误拦截, 此处应当报错 IndexError("index out of range")') +except: + pass + +# test __setitem__ +test_mat_copy = test_mat.copy() +for i, element in enumerate([getattr(test_mat_copy, e) for e in element_name_list]): + test_mat_copy[int(i/3), i%3] = list(range(9))[i] +assert test_mat_copy == mat3x3([0,1,2, + 3,4,5, + 6,7,8]) + +try: + test_mat[1,2,3] = 1 + raise Exception('未能触发错误拦截, 此处应当报错 TypeError("Mat3x3.__setitem__ takes a tuple of 2 integers")') +except: + pass + +try: + test_mat[-1][4] = 1 + raise Exception('未能触发错误拦截, 此处应当报错 IndexError("index out of range")') +except: + pass + +# test __add__ +test_mat_copy = test_mat.copy() +ones = mat3x3.ones() +result_mat = test_mat_copy.__add__(ones) +correct_result_mat = test_mat_copy.copy() +for i in range(3): + for j in range(3): + correct_result_mat[i, j] += 1 +assert result_mat == correct_result_mat + +# test __sub__ +test_mat_copy = test_mat.copy() +ones = mat3x3.ones() +result_mat = test_mat_copy.__sub__(ones) +correct_result_mat = test_mat_copy.copy() +for i in range(3): + for j in range(3): + correct_result_mat[i, j] -= 1 +assert result_mat == correct_result_mat + +# test __mul__ +test_mat_copy = test_mat.copy() +result_mat = test_mat_copy.__mul__(12.345) +correct_result_mat = test_mat_copy.copy() +for i in range(3): + for j in range(3): + correct_result_mat[i, j] *= 12.345 +# print(result_mat) +# print(correct_result_mat) +assert result_mat == correct_result_mat + + +# test matmul +test_mat_copy = test_mat.copy() +test_mat_copy_2 = test_mat.copy() +result_mat = test_mat_copy @ test_mat_copy_2 +correct_result_mat = mat3x3() +for i in range(3): + for j in range(3): + correct_result_mat[i, j] = sum([e1*e2 for e1, e2 in zip(get_row(test_mat_copy, i), get_col(test_mat_copy_2, j))]) +assert result_mat == correct_result_mat + +# test determinant +test_mat_copy = test_mat.copy() +test_mat_copy.determinant() + +# test __repr__ +assert str(static_test_mat_float) +assert str(static_test_mat_int) + +# test __truediv__ +test_mat_copy = test_mat.copy() +result_mat = test_mat_copy.__truediv__(12.345) +correct_result_mat = test_mat_copy.copy() +for i in range(3): + for j in range(3): + correct_result_mat[i, j] /= 12.345 +assert result_mat == correct_result_mat + + + +# test __rmul__ +test_mat_copy = test_mat.copy() +result_mat = 12.345 * test_mat_copy +correct_result_mat = test_mat_copy.copy() +for i in range(3): + for j in range(3): + correct_result_mat[i, j] *= 12.345 + +assert result_mat == correct_result_mat + + +# 此处测试不完全, 未验证正确性 +# test interface of "@" "matmul" "__matmul__" with vec3 and error handling +test_mat_copy = test_mat.copy() +test_mat_copy @ vec3(83,-9.12, 0.2983) +try: + test_mat_copy @ 12345 + exit(1) +except TypeError: + pass + + +# test transpose +test_mat_copy = test_mat.copy() +assert test_mat_copy.transpose_() is None +assert test_mat_copy == test_mat.transpose() +assert test_mat_copy.transpose() == test_mat_copy.transpose().transpose().transpose() + +# test inverse +assert ~static_test_mat_float == static_test_mat_float_inv == static_test_mat_float.invert() +assert static_test_mat_float.invert_() is None +assert static_test_mat_float == static_test_mat_float_inv + +try: + ~mat3x3([1, 2, 3, 2, 4, 6, 3, 6, 9]) + raise Exception('未能拦截错误 ValueError("matrix is not invertible") 在 test_mat_copy 的行列式为0') +except ValueError: + pass + +# test zeros +assert mat3x3([0 for _ in range(9)]) == mat3x3.zeros() + +# test ones +assert mat3x3([1 for _ in range(9)]) == mat3x3.ones() + +# test identity +assert mat3x3([1,0,0,0,1,0,0,0,1]) == mat3x3.identity() + + +# test affine transformations----------------------------------------------- +# test trs +def trs(t, radian, s): + cr = math.cos(radian) + sr = math.sin(radian) + elements = [[s[0] * cr, -s[1] * sr, t[0]], + [s[0] * sr, s[1] * cr, t[1]], + [0.0, 0.0, 1.0]] + return elements + +test_vec2_copy = test_vec2.copy() +test_vec2_2_copy = test_vec2_2.copy() + +test_vec2_list = [test_vec2_copy.x, test_vec2_copy.y] +test_vec2_2_list = [test_vec2_2_copy.x, test_vec2_2_copy.y] + +radian = random.uniform(-10*math.pi, 10*math.pi) + +mat3x3.trs(test_vec2_copy, radian, test_vec2_2_copy) + +a = mat3x3.zeros() +a.copy_trs_(test_vec2_copy, radian, test_vec2_2_copy) +assert a == mat3x3.trs(test_vec2_copy, radian, test_vec2_2_copy) +b = mat3x3.identity() +b.copy_t_(test_vec2_copy) +b.copy_r_(radian) +b.copy_s_(test_vec2_2_copy) +assert a == b + +# test is_affine +def mat_is_affine(mat_list): + return mat_list[2][0] == 0 and mat_list[2][1] == 0 and mat_list[2][2] == 1 + +# 通过random.unifrom的返回值不可能是整数0或1, 因此认为test_mat不可能is_affine +test_mat_copy = test_mat.copy() +assert test_mat_copy.is_affine() == mat_is_affine(mat_to_list(test_mat_copy)) + +test_mat_copy[2,0] = 0 +test_mat_copy[2,1] = 0 +test_mat_copy[2,2] = 1 +assert test_mat_copy.is_affine() == mat_is_affine(mat_to_list(test_mat_copy)) + + +# test translation +test_mat_copy = test_mat.copy() +assert test_mat_copy._t() == vec2(test_mat_copy[0, 2], test_mat_copy[1, 2]) + +# 该方法的测试未验证计算的准确性 +# test rotation +test_mat_copy = test_mat.copy() +assert type(test_mat_copy._r()) is float + + +# test scale +test_mat_copy = test_mat.copy() +temp_vec2 = test_mat_copy._s() + +# test transform_point +test_mat_copy = test_mat.copy() +test_mat_copy = test_mat.copy() +test_vec2_copy = test_vec2.copy() +temp_vec2 = test_mat_copy.transform_point(test_vec2_copy) + +# test transform_vector +test_mat_copy = test_mat.copy() +test_mat_copy = test_mat.copy() +test_vec2_copy = test_vec2.copy() +temp_vec2 = test_mat_copy.transform_vector(test_vec2_copy) + +import c +a = vec2(1, 2) +b = a.to_struct() +assert a.sizeof() == 8 +assert b.sizeof() == 8 +assert vec2.from_struct(b) == a + +val = vec2.angle(vec2(-1, 0), vec2(0, -1)) +assert 1.57 < val < 1.58 + +# test about staticmethod +class mymat3x3(mat3x3): + def f(self): + _0 = self.zeros() + _1 = super().zeros() + _2 = mat3x3.zeros() + return _0 == _1 == _2 + +assert mymat3x3().f() + + +# test assign +a = vec2(1, 2) +assert a.copy_(vec2(3, 4)) is None +assert a == vec2(3, 4) + +b = vec3(1, 2, 3) +assert b.copy_(vec3(4, 5, 6)) is None +assert b == vec3(4, 5, 6) + +c = vec4(1, 2, 3, 4) +assert c.copy_(vec4(5, 6, 7, 8)) is None +assert c == vec4(5, 6, 7, 8) + +d = mat3x3.identity() +assert d.copy_(mat3x3.zeros()) is None +assert d == mat3x3.zeros() + +d = mat3x3.identity() +assert d.matmul(mat3x3.zeros()) == mat3x3.zeros() +assert d == mat3x3.identity() +assert d.matmul(mat3x3.zeros(), out=d) is None +assert d == mat3x3.zeros() + +try: + assert d[6, 6] + exit(1) +except IndexError: + pass + +# test vec * vec +assert vec2(1, 2) * vec2(3, 4) == vec2(3, 8) +assert vec3(1, 2, 3) * vec3(4, 5, 6) == vec3(4, 10, 18) +assert vec4(1, 2, 3, 4) * vec4(5, 6, 7, 8) == vec4(5, 12, 21, 32) + +# test vec.__getitem__ +assert vec2(1, 2)[0] == 1 and vec2(1, 2)[1] == 2 +assert vec3(1, 2, 3)[0] == 1 and vec3(1, 2, 3)[1] == 2 and vec3(1, 2, 3)[2] == 3 +assert vec4(1, 2, 3, 4)[0] == 1 and vec4(1, 2, 3, 4)[1] == 2 and vec4(1, 2, 3, 4)[2] == 3 and vec4(1, 2, 3, 4)[3] == 4 diff --git a/dependencies/pocketpy/tests/80_traceback.py b/dependencies/pocketpy/tests/80_traceback.py new file mode 100644 index 0000000..b1df66f --- /dev/null +++ b/dependencies/pocketpy/tests/80_traceback.py @@ -0,0 +1,14 @@ +import traceback + +try: + a = {'123': 4} + b = a[6] +except KeyError: + s = traceback.format_exc() + +ok = s == '''Traceback (most recent call last): + File "80_traceback.py", line 5 + b = a[6] +KeyError: 6''' + +assert ok, s \ No newline at end of file diff --git a/dependencies/pocketpy/tests/80_typing.py b/dependencies/pocketpy/tests/80_typing.py new file mode 100644 index 0000000..a06b44e --- /dev/null +++ b/dependencies/pocketpy/tests/80_typing.py @@ -0,0 +1,94 @@ +from typing import Dict, Tuple, List + +bill: Dict[str, float] = { + "apple": 3.14, + "watermelon": 15.92, + "pineapple": 6.53, +} +completed: Tuple[str] = ("DONE",) +succeeded: Tuple[int, str] = (1, "SUCCESS") +statuses: Tuple[str, ...] = ( + "DONE", "SUCCESS", "FAILED", "ERROR", +) +codes: List[int] = (0, 1, -1, -2) + + +from typing import Union + +def resp200(meaningful) -> Union[int, str]: + return "OK" if meaningful else 200 + + +from typing import Self + +class Employee: + name: str = "John Doe" + age: int = 0 + + def set_name(self: Self, name) -> Self: + self.name = name + return self + +from typing import TypeVar, Type + +T = TypeVar("T") + +# "mapper" is a type, like int, str, MyClass and so on. +# "default" is an instance of type T, such as 314, "string", MyClass() and so on. +# returned is an instance of type T too. +def converter(raw, mapper: Type[T] = None, default: T = None) -> T: + try: + return mapper(raw) + except: + return default + +raw: str = '4' +result: int = converter(raw, mapper=int, default=0) + +from typing import TypeVar, Callable, Any + +T = TypeVar("T") + +def converter(raw, mapper: Callable[[Any], T] = None, default: T = None) -> T: + try: + return mapper(raw) + except: + return default + +# Callable[[Any], ReturnType] means a function declare like: +# def func(arg: Any) -> ReturnType: +# pass + +# Callable[[str, int], ReturnType] means a function declare like: +# def func(string: str, times: int) -> ReturnType: +# pass + +# Callable[..., ReturnType] means a function declare like: +# def func(*args, **kwargs) -> ReturnType: +# pass + +def is_success(value) -> bool: + return value in (0, "OK", True, "success") + +resp = {'code': 0, 'message': 'OK', 'data': []} +successed: bool = converter(resp['message'], mapper=is_success, default=False) + + +class A: + x: List[Callable[[int], Any]] + y: Dict[str, int] + +a = A() +assert not hasattr(a, 'x') +assert not hasattr(a, 'y') + +class B: + x: List[Callable[[int], Any]] = [] + y: Dict[str, int] = {} + +b = B() +assert hasattr(b, 'x') +assert hasattr(b, 'y') + +abc123: int +assert 'abc123' not in globals() \ No newline at end of file diff --git a/dependencies/pocketpy/tests/81_pickle.py b/dependencies/pocketpy/tests/81_pickle.py new file mode 100644 index 0000000..392fb84 --- /dev/null +++ b/dependencies/pocketpy/tests/81_pickle.py @@ -0,0 +1,68 @@ +from pickle import dumps, loads, _wrap, _unwrap + +def test(x): + y = dumps(x) + # print(y.decode()) + ok = x == loads(y) + if not ok: + _0 = _wrap(x) + _1 = _unwrap(_0) + print('='*50) + print(_0) + print('-'*50) + print(_1) + print('='*50) + assert False + +test(1) +test(1.0) +test("hello") +test(True) +test(False) +test(None) + +test([1, 2, 3]) +test((1, 2, 3)) +test({1: 2, 3: 4}) + +class Foo: + def __init__(self, x, y): + self.x = x + self.y = y + + def __eq__(self, __value: object) -> bool: + if not isinstance(__value, Foo): + return False + return self.x == __value.x and self.y == __value.y + + def __repr__(self) -> str: + return f"Foo({self.x}, {self.y})" + +test(Foo(1, 2)) +test(Foo([1, True], 'c')) + +from linalg import vec2 + +test(vec2(1, 2)) + +a = {1, 2, 3, 4} +test(a) + +a = bytes([1, 2, 3, 4]) +test(a) + +a = [1, 2] +d = {'k': a, 'j': a} +c = loads(dumps(d)) + +assert c['k'] is c['j'] +assert c == d + +# test circular references +from collections import deque + +a = deque([1, 2, 3]) +test(a) + +a = [int, float, Foo] +test(a) \ No newline at end of file diff --git a/dependencies/pocketpy/tests/82_dataclasses.py b/dependencies/pocketpy/tests/82_dataclasses.py new file mode 100644 index 0000000..8132023 --- /dev/null +++ b/dependencies/pocketpy/tests/82_dataclasses.py @@ -0,0 +1,29 @@ +from dataclasses import dataclass, asdict + +@dataclass +class A: + x: int + y: str = '123' + +assert repr(A(1)) == "A(x=1, y='123')" +assert repr(A(x=3)) == "A(x=3, y='123')" +assert repr(A(1, '555')) == "A(x=1, y='555')" +assert repr(A(x=7, y='555')) == "A(x=7, y='555')" + +assert asdict(A(1, '555')) == {'x': 1, 'y': '555'} + +assert A(1, 'N') == A(1, 'N') +assert A(1, 'N') != A(1, 'M') + +def wrapped(cls): + return int + +@wrapped +@wrapped +@wrapped +@wrapped +class A: + def __init__(self) -> None: + pass + +assert A('123') == 123 diff --git a/dependencies/pocketpy/tests/83_array2d.py b/dependencies/pocketpy/tests/83_array2d.py new file mode 100644 index 0000000..a35cf3d --- /dev/null +++ b/dependencies/pocketpy/tests/83_array2d.py @@ -0,0 +1,168 @@ +from array2d import array2d + +# test error args for __init__ +try: + a = array2d(0, 0) + exit(0) +except ValueError: + pass + +# test callable constructor +a = array2d(2, 4, default=lambda: 0) + +assert a.width == a.n_cols == 2 +assert a.height == a.n_rows == 4 +assert a.numel == 8 + +# test is_valid +assert a.is_valid(0, 0) +assert a.is_valid(1, 3) +assert not a.is_valid(2, 0) +assert not a.is_valid(0, 4) +assert not a.is_valid(-1, 0) +assert not a.is_valid(0, -1) + +# test get +assert a.get(0, 0) == 0 +assert a.get(1, 3) == 0 +assert a.get(2, 0) is None +assert a.get(0, 4, default='S') == 'S' + +# test __getitem__ +assert a[0, 0] == 0 +assert a[1, 3] == 0 +try: + a[2, 0] + exit(1) +except IndexError: + pass + +# test __setitem__ +a[0, 0] = 5 +assert a[0, 0] == 5 +a[1, 3] = 6 +assert a[1, 3] == 6 +try: + a[0, -1] = 7 + exit(1) +except IndexError: + pass + +# test __iter__ +a_list = [[5, 0], [0, 0], [0, 0], [0, 6]] +assert a_list == a.tolist() + +# test __len__ +assert len(a) == 4 + +# test __eq__ +x = array2d(2, 4, default=0) +b = array2d(2, 4, default=0) +assert x == b + +b[0, 0] = 1 +assert x != b + +# test __repr__ +assert repr(a) == f'array2d(2, 4)' + +# test map +c = a.map(lambda x: x + 1) +assert c.tolist() == [[6, 1], [1, 1], [1, 1], [1, 7]] +assert a.tolist() == [[5, 0], [0, 0], [0, 0], [0, 6]] +assert c.width == c.n_cols == 2 +assert c.height == c.n_rows == 4 +assert c.numel == 8 + +# test copy +d = c.copy() +assert d == c and d is not c + +# test fill_ +d.fill_(-3) +assert d == array2d(2, 4, default=-3) + +# test apply_ +d.apply_(lambda x: x + 3) +assert d == array2d(2, 4, default=0) + +# test copy_ +a.copy_(d) +assert a == d and a is not d +x = array2d(4, 4, default=0) +x.copy_(d) +assert x == d and x is not d +x.copy_(['a']*d.numel) +assert x == array2d(d.width, d.height, default='a') + +# test subclass array2d +class A(array2d): + def __init__(self): + super().__init__(2, 4, default=0) + +assert A().width == 2 +assert A().height == 4 +assert A().numel == 8 +assert A().get(0, 0, default=2) == 0 + +# test alive_neighbors +a = array2d(3, 3, default=0) +a[1, 1] = 1 +""" Moore von Neumann +0 0 0 1 1 1 0 1 0 +0 1 0 1 0 1 1 0 1 +0 0 0 1 1 1 0 1 0 +""" +moore_result = array2d(3, 3, default=1) +moore_result[1, 1] = 0 + +von_neumann_result = array2d(3, 3, default=0) +von_neumann_result[0, 1] = von_neumann_result[1, 0] = von_neumann_result[1, 2] = von_neumann_result[2, 1] = 1 +a.count_neighbors(0, 'Moore') == moore_result +a.count_neighbors(0, 'von Neumann') == von_neumann_result + +# test slice get +a = array2d(5, 5, default=0) +b = array2d(3, 2, default=1) + +assert a[1:4, 1:4] == array2d(3, 3, default=0) +assert a[1:4, 1:3] == array2d(3, 2, default=0) +assert a[1:4, 1:3] != b +a[1:4, 1:3] = b +assert a[1:4, 1:3] == b +""" +0 0 0 0 0 +0 1 1 1 0 +0 1 1 1 0 +0 0 0 0 0 +0 0 0 0 0 +""" +assert a.count(1) == 3*2 + +assert a.find_bounding_rect(1) == (1, 1, 3, 2) +assert a.find_bounding_rect(0) == (0, 0, 5, 5) +assert a.find_bounding_rect(2) == None + + +a = array2d(3, 2, default='?') +# int/float/str/bool/None + +for value in [0, 0.0, '0', False, None]: + a[0:2, 0:1] = value + assert a[2, 1] == '?' + assert a[0, 0] == value + +a[:, :] = 3 +assert a == array2d(3, 2, default=3) + +try: + a[:, :] = array2d(1, 1) + exit(1) +except ValueError: + pass + +try: + a[:, :] = [] + exit(1) +except TypeError: + pass diff --git a/dependencies/pocketpy/tests/84_line_profiler.py b/dependencies/pocketpy/tests/84_line_profiler.py new file mode 100644 index 0000000..01401c2 --- /dev/null +++ b/dependencies/pocketpy/tests/84_line_profiler.py @@ -0,0 +1,25 @@ +from line_profiler import LineProfiler + +def f2(x): + a = 0 + for i in range(x): + if i % 5 == 0: + a += i + return a + +def f1(x): + res = f2(x) + return res + +lp = LineProfiler() + +lp.add_function(f2) + +# lp.runcall(f2, 1000000) +# lp.print_stats() +############################### + +lp.add_function(f1) +lp.runcall(f1, 1000000) +lp.print_stats() + diff --git a/dependencies/pocketpy/tests/85_enum.py b/dependencies/pocketpy/tests/85_enum.py new file mode 100644 index 0000000..4844c53 --- /dev/null +++ b/dependencies/pocketpy/tests/85_enum.py @@ -0,0 +1,28 @@ +from enum import Enum + +class A(Enum): + a = 1 + b = '2' + c = None + +assert str(A.a) == 'A.a' +assert repr(A.a) == '' + +assert str(A.b) == 'A.b' +assert repr(A.b) == "" + +assert str(A.c) == 'A.c' +assert repr(A.c) == '' + +assert A.a == A.a +assert A.a != A.b +assert A.a != A.c + +assert A.a.name == 'a' +assert A.a.value == 1 + +assert A.b.name == 'b' +assert A.b.value == '2' + +assert A.c.name == 'c' +assert A.c.value is None diff --git a/dependencies/pocketpy/tests/86_itertools.py b/dependencies/pocketpy/tests/86_itertools.py new file mode 100644 index 0000000..42f5847 --- /dev/null +++ b/dependencies/pocketpy/tests/86_itertools.py @@ -0,0 +1,6 @@ +from itertools import zip_longest + +a = [1, 2, 3] +b = [2] + +assert list(zip_longest(a, b)) == [(1, 2), (2, None), (3, None)] diff --git a/dependencies/pocketpy/tests/87_sys.py b/dependencies/pocketpy/tests/87_sys.py new file mode 100644 index 0000000..c09d2fd --- /dev/null +++ b/dependencies/pocketpy/tests/87_sys.py @@ -0,0 +1,4 @@ +import sys + +assert len(sys.argv) == 2 +assert sys.argv[1] == 'tests/87_sys.py' diff --git a/dependencies/pocketpy/tests/88_functools.py b/dependencies/pocketpy/tests/88_functools.py new file mode 100644 index 0000000..caad2c4 --- /dev/null +++ b/dependencies/pocketpy/tests/88_functools.py @@ -0,0 +1,25 @@ +# test reduce + +from functools import reduce, partial + +# test reduce +assert reduce(lambda x, y: x + y, [1, 2, 3, 4, 5]) == 15 +assert reduce(lambda x, y: x * y, [1, 2, 3, 4, 5]) == 120 +assert reduce(lambda x, y: x * y, [1, 2, 3, 4, 5], 10) == 1200 + +# test partial +def add(a, b): + return a + b + +add_1 = partial(add, 1) + +assert add_1(2) == 3 +assert add_1(3) == 4 + +def sub(a, b=1): + return a - b + +sub_10 = partial(sub, b=10) +assert sub_10(20) == 10 +assert sub_10(30) == 20 + diff --git a/dependencies/pocketpy/tests/94_compile.py b/dependencies/pocketpy/tests/94_compile.py new file mode 100644 index 0000000..fd90e88 --- /dev/null +++ b/dependencies/pocketpy/tests/94_compile.py @@ -0,0 +1,2 @@ +code = compile("1+2", "", "eval") +assert eval(code) == 3 diff --git a/dependencies/pocketpy/tests/95_pdb.py b/dependencies/pocketpy/tests/95_pdb.py new file mode 100644 index 0000000..f60ef89 --- /dev/null +++ b/dependencies/pocketpy/tests/95_pdb.py @@ -0,0 +1,19 @@ +# a = 1 +# b = 2 + +# print(a, b) + + +# def f(a, b): +# b = a + b +# print(a, b) +# return b + +# def g(a, b): +# breakpoint() +# c = f(a, b) +# return c + +# g(1, 2) +# f(3, 4) + diff --git a/dependencies/pocketpy/tests/96_prime.py b/dependencies/pocketpy/tests/96_prime.py new file mode 100644 index 0000000..727e324 --- /dev/null +++ b/dependencies/pocketpy/tests/96_prime.py @@ -0,0 +1,16 @@ +def is_prime(x): + if x<2: + return False + for i in range(2,x): + if x%i == 0: + return False + return True + +def test(n): + k = 0 + for i in range(n): + if is_prime(i): + k += 1 + return k + +assert test(100) == 25 \ No newline at end of file diff --git a/dependencies/pocketpy/tests/97_dna.py b/dependencies/pocketpy/tests/97_dna.py new file mode 100644 index 0000000..fbdc93c --- /dev/null +++ b/dependencies/pocketpy/tests/97_dna.py @@ -0,0 +1,120 @@ +import random +import builtins + +builtins.print = lambda *x: None + +def f(x): + return -x**2+10 + +def create_init_DNA(): +# out: DNA + ret = random.randint(-100,100) + return int_to_bin(ret) + +def int_to_bin(x): +# in: int_DNA +# out: DNA + ret = [] + if x >= 0: + ret.append(0) + else: + ret.append(1) + x = -x + for i in [4096,2048,1024,512,256,128,64,32,16,8,4,2,1] : + if x>=i : + ret.append(1) + x -= i + else : + ret.append(0) + return ret + +def bin_to_int(x): +# in: DNA +# out: int_DNA + ret = 0 + new_x = x[:] + flag = -(new_x[0]*2-1) + mul = 1 + new_x = reversed(new_x) + new_x.pop() + for i in new_x : + ret += flag * i * mul + mul *= 2 + return ret + +def reversed(x): + ret = [] + for i in range(0,len(x)): + ret.append(x[-i-1]) + return ret + +def create_DNAs(num): +# in: int +# out: DNAs + ret = [] + for i in range(num): + ret.append(create_init_DNA()) + return ret + +def bins_to_ints(x): +# in: DNAs +# out: int_DNAs + ret = [] + for i in x: + ret.append(bin_to_int(i)) + return ret + +def create_probabilitys(x): +# in: DNAs +# out: probabilitys + scores = survival_scores(x) + mid = [] + ret = [] + sum = 0 + for i in scores: + sum+=i + for i in scores: + mid.append(1/(i/sum)) + sum = 0 + for i in mid: + sum+=i + for i in mid: + ret.append(i/sum) + return ret + +def survival_scores(x): +# in: DNAs +# out: survival_scores + ret = [] + for i in x: + ret.append(f(bin_to_int(i))) + return ret + +def choose_DNA(DNAs,probabilitys): +# in: DNAs,probabilitys +# out: DNA +# probabilitys是由若干(0,1)之间的浮点数组成的数组,这些浮点数的和为1 + i = 0 # i记录取出元素的位置 + ran = random.random() +# a=0 + for max in probabilitys : + if i != 0 : + min = probabilitys[i-1] + else : + min = 0 + if ran < max and ran >= min : + return DNAs[i] + + +def next_gen_DNAs(DNAs,num=None): + num = num or len(DNAs) + ret = [] + for i in range(num) : + ret.append(choose_DNA(DNAs,create_probabilitys(DNAs))) + + +a = create_DNAs(10) +print(a) +print(bins_to_ints(a)) +print(survival_scores(a)) +print(create_probabilitys(a)) \ No newline at end of file diff --git a/dependencies/pocketpy/tests/98_misc.py b/dependencies/pocketpy/tests/98_misc.py new file mode 100644 index 0000000..9536d11 --- /dev/null +++ b/dependencies/pocketpy/tests/98_misc.py @@ -0,0 +1,36 @@ +a = 0 + +a += 2 +assert a == 2 + +a -= 1 +assert a == 1 + +a *= 2 +assert a == 2 + +a //= 2 +assert a == 1 + +a |= 0xff +assert a == 0xff + +a &= 0x0f +assert a == 0x0f + +a = 8 + +a %= 3 +assert a == 2 + +a ^= 0xf0 +assert a == 242 + +# incremental set +class A: pass + +for i in range(ord('a'), ord('z')+1): + setattr(A, chr(i), i) + +assert A.a == ord('a') +assert A.z == ord('z') diff --git a/dependencies/pocketpy/tests/99_bugs.py b/dependencies/pocketpy/tests/99_bugs.py new file mode 100644 index 0000000..1140442 --- /dev/null +++ b/dependencies/pocketpy/tests/99_bugs.py @@ -0,0 +1,103 @@ +# https://github.com/pocketpy/pocketpy/issues/37 + +mp = map(lambda x: x**2, [1, 2, 3, 4, 5] ) +assert list(mp) == [1, 4, 9, 16, 25] + + +assert not 3>4 + +def f(x): + if x>1: + return 1 + +assert f(2) == 1 +assert f(0) == None + +a = [1, 2] +b = [3, 4] +assert a.append == a.append +assert a.append is not a.append +assert a.append is not b.append +assert a.append != b.append + +inq = 0 +if not inq: + assert True +else: + assert False + +if inq is not 1: + assert True +if inq is not 0: + assert False + +def g(x): + return x +def f(x): + return x + +assert (g(1), 2) == (1, 2) +assert ( + g(1), + 2 +) == (1, 2) + +assert f(( + g(1), + 2 +)) == (1, 2) + +def f(): + for i in range(4): + _ = 0 + while i: --i +f() + +# class A: a=b=1 +# class A: a, b = 1, 2 + +bmi = 0.0 + +def test(a): + if a: + bmi = 1.4 + return f'{bmi:.2f}' + +assert test(1) == '1.40' + +try: + assert test(0) == '0.00' + exit(1) +except UnboundLocalError: + pass + + +g = 1 +def f(): + global g + ++g + +f(); f() +assert g == 3 + + +def f(**kw): + x = 1 + y = 2 + return kw, x, y +assert f(x=4, z=1) == ({'x': 4, 'z': 1}, 1, 2) + +def g(**kw): + x, y = 1, 2 + return kw + +ret = g( + a=1, b=2, c=3, d=4, e=5, f=6, g=7, h=8, i=9, + j=10, k=11, l=12, m=13, n=14, o=15, p=16, q=17, + r=18, s=19, t=20, u=21, v=22, w=23, x=24, y=25, + z=26 +) +assert ret == {chr(i+97): i+1 for i in range(26)} + +assert g(**ret) == ret +assert g(**g(**ret)) == ret diff --git a/dependencies/pocketpy/tests/99_builtin_func.py b/dependencies/pocketpy/tests/99_builtin_func.py new file mode 100644 index 0000000..084830a --- /dev/null +++ b/dependencies/pocketpy/tests/99_builtin_func.py @@ -0,0 +1,604 @@ +# test super: +class TestSuperBase(): + def __init__(self): + self.base_attr = 1 + + def base_method(self): + return self.base_attr + + def error(self): + raise Exception('未能拦截错误') + + +class TestSuperChild1(TestSuperBase): + def __init__(self): + super(TestSuperChild1, self).__init__() + + def child_method(self): + return super(TestSuperChild1, self).base_method() + + def error_handling(self): + try: + super(TestSuperChild1, self).error() + except: + pass + +class TestSuperChild2(TestSuperBase): + pass + + +test_base = TestSuperBase() +# 测试属性 +assert test_base.base_attr == 1 +# 测试方法 +assert test_base.base_method() == 1 + +test_child1 = TestSuperChild1() +# 测试继承的属性 +assert test_child1.base_attr == 1 +# 测试继承的方法 +assert test_child1.base_method() == 1 +# 测试子类添加的方法 +assert test_child1.child_method() == 1 +# 测试子类的错误拦截 +test_child1.error_handling() + +test_child2 = TestSuperChild2() +# 测试继承的属性 +assert test_child2.base_attr == 1 +# 测试继承的方法 +assert test_child2.base_method() == 1 + + +class TestSuperNoBaseMethod(TestSuperBase): + def __init__(self): + super(TestSuperNoBaseMethod, self).append(1) + +try: + t = TestSuperNoParent() + print('未能拦截错误') + exit(1) +except: + pass + +try: + t = TestSuperNoBaseMethod() + print('未能拦截错误') + exit(1) +except: + pass + +class B(): + pass + +class C(): + def method(self): + super(C, self).method() + +class D(): + def method(self): + super(B, self).method() + +try: + c = C() + c.method() + print('未能拦截错误') + exit(1) +except: + pass + +try: + d = D() + d.method() + print('未能拦截错误') + exit(1) +except: + pass + +# test hash: +# 测试整数类型的输入 +assert hash(0) == 0 +assert hash(123) == 123 +assert hash(-456) == -456 + +# 测试字符串类型的输入 +assert type(hash("hello")) is int + +# 测试浮点数类型的输入 +assert type(hash(3.14)) is int +assert type(hash(-2.71828)) is int + +# 测试边界情况 +assert type(hash(None)) is int +assert hash(True) == 1 +assert hash(False) == 0 + +# 测试元组 +assert type(hash((4, 5, 6, (1234,1122), 2.3983, 'abcd'))) is int + +# 测试自定义类和对象的输入 +class A(): + pass + +a = A() + +assert type(hash(A)) is int +assert type(hash(a)) is int + +# 测试函数的输入 +def f(): + pass +assert type(hash(a)) is int + +# 测试不可哈希对象 +try: + hash({1:1}) + print('未能拦截错误') + exit(1) +except: + pass + +try: + hash([1]) + print('未能拦截错误') + exit(1) +except: + pass + +# test chr +l = [] +for i in range(128): + l.append(f'{i} {chr(i)}') +assert l == ['0 \x00', '1 \x01', '2 \x02', '3 \x03', '4 \x04', '5 \x05', '6 \x06', '7 \x07', '8 \x08', '9 \t', '10 \n', '11 \x0b', '12 \x0c', '13 \r', '14 \x0e', '15 \x0f', '16 \x10', '17 \x11', '18 \x12', '19 \x13', '20 \x14', '21 \x15', '22 \x16', '23 \x17', '24 \x18', '25 \x19', '26 \x1a', '27 \x1b', '28 \x1c', '29 \x1d', '30 \x1e', '31 \x1f', '32 ', '33 !', '34 "', '35 #', '36 $', '37 %', '38 &', "39 '", '40 (', '41 )', '42 *', '43 +', '44 ,', '45 -', '46 .', '47 /', '48 0', '49 1', '50 2', '51 3', '52 4', '53 5', '54 6', '55 7', '56 8', '57 9', '58 :', '59 ;', '60 <', '61 =', '62 >', '63 ?', '64 @', '65 A', '66 B', '67 C', '68 D', '69 E', '70 F', '71 G', '72 H', '73 I', '74 J', '75 K', '76 L', '77 M', '78 N', '79 O', '80 P', '81 Q', '82 R', '83 S', '84 T', '85 U', '86 V', '87 W', '88 X', '89 Y', '90 Z', '91 [', '92 \\', '93 ]', '94 ^', '95 _', '96 `', '97 a', '98 b', '99 c', '100 d', '101 e', '102 f', '103 g', '104 h', '105 i', '106 j', '107 k', '108 l', '109 m', '110 n', '111 o', '112 p', '113 q', '114 r', '115 s', '116 t', '117 u', '118 v', '119 w', '120 x', '121 y', '122 z', '123 {', '124 |', '125 }', '126 ~', '127 \x7f'] + +assert type(bin(1234)) is str + +# test __repr__: +class A(): + def __init__(self): + self.attr = 0 + +repr(A()) + +try: + range(1,2,3,4) + print('未能拦截错误, 在测试 range') + exit(1) +except: + pass + +# /************ int ************/ +try: + int('asad') + print('未能拦截错误, 在测试 int') + exit(1) +except: + pass + +try: + int(123, 16) + print('未能拦截错误, 在测试 int') + exit(1) +except: + pass + +assert type(10//11) is int + +assert type(11%2) is int + +try: + float('asad') + print('未能拦截错误, 在测试 float') + exit(1) +except: + pass + +try: + float([]) + print('未能拦截错误, 在测试 float') + exit(1) +except: + pass + +# /************ str ************/ +# test str.__rmul__: +assert type(12 * '12') is str + +# 未完全测试准确性----------------------------------------------- +# test str.index: +assert type('25363546'.index('63')) is int +try: + '25363546'.index('err') + print('未能拦截错误, 在测试 str.index') + exit(1) +except: + pass + + +# 未完全测试准确性----------------------------------------------- +# test str.find: +assert '25363546'.find('63') == 3 +assert '25363546'.find('err') == -1 + + +# /************ list ************/ +try: + list(1,2) + print('未能拦截错误, 在测试 list') + exit(1) +except: + pass + +# 未完全测试准确性---------------------------------------------- +# test list.index: +assert type([1,2,3,4,5].index(4)) is int +try: + [1,2,3,4,5].index(6) + print('未能拦截错误, 在测试 list.index') + exit(1) +except: + pass + + + +# 未完全测试准确性---------------------------------------------- +# test list.remove: +try: + [1,2,3,4,5].remove(6) + print('未能拦截错误, 在测试 list.remove') + exit(1) +except: + pass + + +# 未完全测试准确性---------------------------------------------- +# test list.pop: +try: + [1,2,3,4,5].pop(1,2,3,4) + print('未能拦截错误, 在测试 list.pop') + exit(1) +except: + pass + + + +# 未完全测试准确性----------------------------------------------- +# test list.__rmul__: +assert type(12 * [12]) is list + + +# /************ tuple ************/ +# 未完全测试准确性----------------------------------------------- +# 180: 783: _vm->bind_constructor<-1>("tuple", [](VM* vm, ArgsView args) { +# 32: 784: if(args.size() == 1+0) return VAR(Tuple(0)); +# 32: 785: if(args.size() == 1+1){ +# 32: 786: List list = CAST(List, vm->py_list(args[1])); +# 32: 787: return VAR(Tuple(std::move(list))); +# 32: 788: } +# #####: 789: vm->TypeError("tuple() takes at most 1 argument"); +# #####: 790: return vm->None; +# 32: 791: }); +# -: 792: +# test tuple: +try: + tuple(1,2) + print('未能拦截错误, 在测试 tuple') + exit(1) +except: + pass + +assert (1,2,3).__contains__(5) == False + +assert (1,2,2,3,3,3).count(3) == 3 +assert (1,2,2,3,3,3).count(0) == 0 + +assert repr(True) == 'True' +assert repr(False) == 'False' + +assert True & True == 1 + +assert True | True == 1 + +assert (True ^ True) == 0 + +assert (True == True) == 1 + +assert type(hash(bytes([0x41, 0x42, 0x43]))) is int + + +# 未完全测试准确性----------------------------------------------- +# test bytes.__repr__: +assert type(repr(bytes([0x41, 0x42, 0x43]))) is str + + +# /************ slice ************/ +# 未完全测试准确性----------------------------------------------- +# 116: 953: _vm->bind_constructor<4>("slice", [](VM* vm, ArgsView args) { +# #####: 954: return VAR(Slice(args[1], args[2], args[3])); +# -: 955: }); +# test slice: +assert type(slice(0.1, 0.2, 0.3)) is slice + + +# 未完全测试准确性----------------------------------------------- +# 116: 1529: bind_property(_t(tp_slice), "start", [](VM* vm, ArgsView args){ +# #####: 1530: return CAST(Slice&, args[0]).start; +# -: 1531: }); +# 116: 1532: bind_property(_t(tp_slice), "stop", [](VM* vm, ArgsView args){ +# #####: 1533: return CAST(Slice&, args[0]).stop; +# -: 1534: }); +# 116: 1535: bind_property(_t(tp_slice), "step", [](VM* vm, ArgsView args){ +# #####: 1536: return CAST(Slice&, args[0]).step; +# -: 1537: }); +s = slice(1, 2, 3) +assert type(s) is slice +assert s.start == 1 +assert s.stop == 2 +assert s.step == 3 + +# 未完全测试准确性----------------------------------------------- +# test slice.__repr__ +assert type(repr(slice(1,1,1))) is str + +# /************ mappingproxy ************/ +# test mappingproxy.keys: +class A(): + def __init__(self): + self.a = 10 + def method(self): + pass + + +my_mappingproxy = A().__dict__ +assert type(my_mappingproxy.keys()) is list + + +# 未完全测试准确性----------------------------------------------- +# test mappingproxy.values: +class A(): + def __init__(self): + self.a = 10 + def method(self): + pass + + +my_mappingproxy = A().__dict__ +assert type(my_mappingproxy.values()) is list + + +class A(): + def __init__(self): + self.a = 10 + def method(self): + pass + + +my_mappingproxy = A().__dict__ +assert type(len(my_mappingproxy)) is int + + +class A(): + def __init__(self): + self.a = 10 + def method(self): + pass + + +my_mappingproxy = A().__dict__ + +try: + hash(my_mappingproxy) + print('未能拦截错误, 在测试 mappingproxy.__hash__') + exit(1) +except TypeError: + pass + +a = hash(object()) # object is hashable +a = hash(A()) # A is hashable +class B: + def __eq__(self, o): return True + +try: + hash(B()) + print('未能拦截错误, 在测试 B.__hash__') + exit(1) +except TypeError: + pass + +# 未完全测试准确性----------------------------------------------- +# test mappingproxy.__repr__: +class A(): + def __init__(self): + self.a = 10 + def method(self): + pass + + +my_mappingproxy = A().__dict__ +assert type(repr(my_mappingproxy)) is str + + +# /************ dict ************/ +# 未完全测试准确性----------------------------------------------- +# test dict: +assert type(dict([(1,2)])) is dict + +try: + dict([(1, 2, 3)]) + print('未能拦截错误, 在测试 dict') + exit(1) +except: + pass + +try: + dict([(1, 2)], 1) + print('未能拦截错误, 在测试 dict') + exit(1) +except: + pass + +try: + hash(dict([(1,2)])) + print('未能拦截错误, 在测试 dict.__hash__') + exit(1) +except: + pass + +# test dict.__iter__ +for k in {1:2, 2:3, 3:4}: + assert k in [1,2,3] + +# 未完全测试准确性----------------------------------------------- +# test dict.get + +assert {1:2, 3:4}.get(1) == 2 +assert {1:2, 3:4}.get(2) is None +assert {1:2, 3:4}.get(20, 100) == 100 + +try: + {1:2, 3:4}.get(1,1, 1) + print('未能拦截错误, 在测试 dict.get') + exit(1) +except: + pass + +# 未完全测试准确性----------------------------------------------- +# test dict.__repr__ +assert type(repr({1:2, 3:4})) is str + +# /************ property ************/ +class A(): + def __init__(self): + self._name = '123' + + @property + def value(self): + return 2 + + def get_name(self): + ''' + doc string 1 + ''' + return self._name + + def set_name(self, val): + ''' + doc string 2 + ''' + self._name = val + +assert A().value == 2 + +A.name = property(A.get_name, A.set_name) + +class Vector2: + def __init__(self) -> None: + self._x = 0 + + @property + def x(self): + return self._x + + @x.setter + def x(self, val): + self._x = val + +v = Vector2() +assert v.x == 0 +v.x = 10 +assert v.x == 10 + +# function.__doc__ +def aaa(): + '12345' + pass +assert type(aaa.__doc__) is str + + +# /************ module time ************/ +import time +# test time.time +assert type(time.time()) is float + +local_t = time.localtime() +assert type(local_t.tm_year) is int +assert type(local_t.tm_mon) is int +assert type(local_t.tm_mday) is int +assert type(local_t.tm_hour) is int +assert type(local_t.tm_min) is int +assert type(local_t.tm_sec) is int +assert type(local_t.tm_wday) is int +assert type(local_t.tm_yday) is int +assert type(local_t.tm_isdst) is int + +# test time.sleep +time.sleep(0.1) +# test time.localtime +assert type(time.localtime()) is time.struct_time + +# test min/max +assert min(1, 2) == 1 +assert min(1, 2, 3) == 1 +assert min([1, 2]) == 1 +assert min([1, 2], key=lambda x: -x) == 2 + +assert max(1, 2) == 2 +assert max(1, 2, 3) == 3 +assert max([1, 2]) == 2 +assert max([1, 2, 3], key=lambda x: -x) == 1 + +assert min([ + (1, 2), + (1, 3), + (1, 4), +]) == (1, 2) + +assert min(1, 2) == 1 +assert max(1, 2) == 2 + + +# test callable +assert callable(lambda: 1) is True # function +assert callable(1) is False # int +assert callable(object) is True # type +assert callable(object()) is False +assert callable([].append) is True # bound method +assert callable([].__getitem__) is True # bound method + +class A: + def __init__(self): + pass + + def __call__(self): + pass + +assert callable(A) is True # type +assert callable(A()) is True # instance with __call__ +assert callable(A.__call__) is True # bound method +assert callable(A.__init__) is True # bound method +assert callable(print) is True # builtin function +assert callable(isinstance) is True # builtin function + + +assert id(0) is None +assert id(2**62) is not None + +# test issubclass +assert issubclass(int, int) is True +assert issubclass(int, object) is True +assert issubclass(object, int) is False +assert issubclass(object, object) is True +assert issubclass(int, type) is False +assert issubclass(type, type) is True +assert issubclass(float, int) is False + + +def f(a, b): + c = a + del a + return sum([b, c]) + +assert f(1, 2) == 3 + +dir_int = dir(int) +assert dir_int[:4] == ['__add__', '__and__', '__base__', '__eq__'] \ No newline at end of file diff --git a/dependencies/pocketpy/tests/99_dis.py b/dependencies/pocketpy/tests/99_dis.py new file mode 100644 index 0000000..29dd330 --- /dev/null +++ b/dependencies/pocketpy/tests/99_dis.py @@ -0,0 +1,16 @@ +from dis import dis + +def f(a): + for i in range(100000): + a.append(i) + a = 0.5 + a = True + a = '123' + a = 123, 456 + a = [1, 2, 3] + return a, a, a + +def g(a): + return f([1,2,3] + a) + +assert dis(g) is None diff --git a/dependencies/pocketpy/tests/__init__.py b/dependencies/pocketpy/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/pocketpy/tests/test1/__init__.py b/dependencies/pocketpy/tests/test1/__init__.py new file mode 100644 index 0000000..eb5878c --- /dev/null +++ b/dependencies/pocketpy/tests/test1/__init__.py @@ -0,0 +1,6 @@ +from . import _a +add = _a.add + +from ._a import add as add2 + +assert add is add2 \ No newline at end of file diff --git a/dependencies/pocketpy/tests/test1/_a.py b/dependencies/pocketpy/tests/test1/_a.py new file mode 100644 index 0000000..cc4bbed --- /dev/null +++ b/dependencies/pocketpy/tests/test1/_a.py @@ -0,0 +1,4 @@ +from ._b import C + +def add(a, b): + return a + b + C \ No newline at end of file diff --git a/dependencies/pocketpy/tests/test1/_b.py b/dependencies/pocketpy/tests/test1/_b.py new file mode 100644 index 0000000..d05bf87 --- /dev/null +++ b/dependencies/pocketpy/tests/test1/_b.py @@ -0,0 +1 @@ +from test2 import D as C \ No newline at end of file diff --git a/dependencies/pocketpy/tests/test2/__init__.py b/dependencies/pocketpy/tests/test2/__init__.py new file mode 100644 index 0000000..62efa2a --- /dev/null +++ b/dependencies/pocketpy/tests/test2/__init__.py @@ -0,0 +1 @@ +from .a import D \ No newline at end of file diff --git a/dependencies/pocketpy/tests/test2/a/__init__.py b/dependencies/pocketpy/tests/test2/a/__init__.py new file mode 100644 index 0000000..d0396b1 --- /dev/null +++ b/dependencies/pocketpy/tests/test2/a/__init__.py @@ -0,0 +1 @@ +from ..b import D \ No newline at end of file diff --git a/dependencies/pocketpy/tests/test2/a/g/__init__.py b/dependencies/pocketpy/tests/test2/a/g/__init__.py new file mode 100644 index 0000000..1c8290b --- /dev/null +++ b/dependencies/pocketpy/tests/test2/a/g/__init__.py @@ -0,0 +1,6 @@ +ok = True + +from ...utils import r + +def get_value(): + return r.value \ No newline at end of file diff --git a/dependencies/pocketpy/tests/test2/b.py b/dependencies/pocketpy/tests/test2/b.py new file mode 100644 index 0000000..681054f --- /dev/null +++ b/dependencies/pocketpy/tests/test2/b.py @@ -0,0 +1,7 @@ +D = 10 + +try: + import abc # does not exist + exit(1) +except ImportError: + pass \ No newline at end of file diff --git a/dependencies/pocketpy/tests/test2/utils/__init__.py b/dependencies/pocketpy/tests/test2/utils/__init__.py new file mode 100644 index 0000000..cfdbb78 --- /dev/null +++ b/dependencies/pocketpy/tests/test2/utils/__init__.py @@ -0,0 +1,4 @@ +from .r import value + +def get_value_2(): + return value \ No newline at end of file diff --git a/dependencies/pocketpy/tests/test2/utils/r.py b/dependencies/pocketpy/tests/test2/utils/r.py new file mode 100644 index 0000000..91255f6 --- /dev/null +++ b/dependencies/pocketpy/tests/test2/utils/r.py @@ -0,0 +1,4 @@ +value = '123' + +from test2.a import g +assert g.ok diff --git a/dependencies/pocketpy/tests/test3/__init__.py b/dependencies/pocketpy/tests/test3/__init__.py new file mode 100644 index 0000000..b6acfe8 --- /dev/null +++ b/dependencies/pocketpy/tests/test3/__init__.py @@ -0,0 +1,3 @@ +raise ValueError( + "test3 should not be imported" +) \ No newline at end of file diff --git a/dependencies/pocketpy/tests/test3/a/__init__.py b/dependencies/pocketpy/tests/test3/a/__init__.py new file mode 100644 index 0000000..260dabc --- /dev/null +++ b/dependencies/pocketpy/tests/test3/a/__init__.py @@ -0,0 +1,3 @@ +raise ValueError( + "test3.a should not be imported" +) \ No newline at end of file diff --git a/dependencies/pocketpy/tests/test3/a/b.py b/dependencies/pocketpy/tests/test3/a/b.py new file mode 100644 index 0000000..b718125 --- /dev/null +++ b/dependencies/pocketpy/tests/test3/a/b.py @@ -0,0 +1 @@ +value = 1 \ No newline at end of file diff --git a/dependencies/pocketpy/web/index.html b/dependencies/pocketpy/web/index.html new file mode 100644 index 0000000..2562f49 --- /dev/null +++ b/dependencies/pocketpy/web/index.html @@ -0,0 +1,15 @@ + + + + + pocketpy demo + + + + + +
+ + + + \ No newline at end of file diff --git a/dependencies/pocketpy/web/index.js b/dependencies/pocketpy/web/index.js new file mode 100644 index 0000000..08c7cb7 --- /dev/null +++ b/dependencies/pocketpy/web/index.js @@ -0,0 +1,163 @@ +const MINIMUM_COLS = 2 +const MINIMUM_ROWS = 1 + +class FitAddon { + constructor() {} + + activate(terminal) { + this._terminal = terminal + } + + dispose() {} + + fit() { + const dims = this.proposeDimensions() + if (!dims || !this._terminal || isNaN(dims.cols) || isNaN(dims.rows)) { + return + } + + // TODO: Remove reliance on private API + const core = this._terminal._core + + // Force a full render + if ( + this._terminal.rows !== dims.rows || + this._terminal.cols !== dims.cols + ) { + core._renderService.clear() + this._terminal.resize(dims.cols, dims.rows) + } + } + + proposeDimensions() { + if (!this._terminal) { + return undefined + } + + if (!this._terminal.element || !this._terminal.element.parentElement) { + return undefined + } + + // TODO: Remove reliance on private API + const core = this._terminal._core + const dims = core._renderService.dimensions + + if (dims.actualCellWidth === 0 || dims.actualCellHeight === 0) { + return undefined + } + + const scrollbarWidth = + this._terminal.options.scrollback === 0 ? 0 : core.viewport.scrollBarWidth + + const parentElementStyle = window.getComputedStyle( + this._terminal.element.parentElement + ) + const parentElementHeight = parseInt( + parentElementStyle.getPropertyValue("height") + ) + const parentElementWidth = Math.max( + 0, + parseInt(parentElementStyle.getPropertyValue("width")) + ) + const elementStyle = window.getComputedStyle(this._terminal.element) + const elementPadding = { + top: parseInt(elementStyle.getPropertyValue("padding-top")), + bottom: parseInt(elementStyle.getPropertyValue("padding-bottom")), + right: parseInt(elementStyle.getPropertyValue("padding-right")), + left: parseInt(elementStyle.getPropertyValue("padding-left")) + } + const elementPaddingVer = elementPadding.top + elementPadding.bottom + const elementPaddingHor = elementPadding.right + elementPadding.left + const availableHeight = parentElementHeight - elementPaddingVer + const availableWidth = + parentElementWidth - elementPaddingHor - scrollbarWidth + const geometry = { + cols: Math.max( + MINIMUM_COLS, + Math.floor(availableWidth / dims.actualCellWidth) + ), + rows: Math.max( + MINIMUM_ROWS, + Math.floor(availableHeight / dims.actualCellHeight) + ) + } + return geometry + } +} + +/******************************************************/ + +const term = new Terminal( + { + cursorBlink: true, + fontSize: 16, + theme: { + background: '#282C34', + foreground: '#ffffff', + cursor: '#ffffff', + cursorAccent: '#282C34', + selection: '#41454E', + }, + } +); + +var command = ""; +var need_more_lines = false; +var stopped = false; +var repl = 0; + +var Module = { + 'print': function(text) { + term.write(text + "\r\n"); + }, + 'printErr': function(text) { + term.write(text + "\r\n"); + }, + 'onRuntimeInitialized': function(text) { + var vm = Module.ccall('pkpy_new_vm', 'number', ['boolean'], [true]); + repl = Module.ccall('pkpy_new_repl', 'number', ['number'], [vm]); + term.write(need_more_lines ? "... " : ">>> "); + }, + 'onAbort': function(text) { + stopped = true; + }, + }; + +function term_init() { + term.open(document.getElementById('terminal')); + const addon = new FitAddon(); + term.loadAddon(addon); + addon.fit(); + + // refit when window is resized + window.addEventListener('resize', () => { + addon.fit(); + }); + + term.onData(e => { + if (stopped) return; + switch (e) { + case '\r': // Enter + term.write("\r\n"); + need_more_lines = Module.ccall('pkpy_repl_input', 'bool', ['number', 'string'], [repl, command]); + command = ''; + term.write(need_more_lines ? "... " : ">>> "); + break; + case '\u007F': // Backspace (DEL) + var cnt = term._core.buffer.x-4; + if(cnt<=0 || command.length==0) break; + // delete the last unicode char + command = command.replace(/.$/u, ""); + // clear the whole line + term.write('\b \b'.repeat(cnt)); + // re-write the command + term.write(command); + break; + default: // Print all other characters for demo + if (e >= String.fromCharCode(0x20) && e <= String.fromCharCode(0x7E) || e >= '\u00a0') { + command += e; + term.write(e); + } + } + }); +} diff --git a/dependencies/pocketpy/web/xterm/xterm.css b/dependencies/pocketpy/web/xterm/xterm.css new file mode 100644 index 0000000..c8749c7 --- /dev/null +++ b/dependencies/pocketpy/web/xterm/xterm.css @@ -0,0 +1,174 @@ +.xterm { + cursor: text; + position: relative; + user-select: none; + -ms-user-select: none; + -webkit-user-select: none; +} + +.xterm.focus, +.xterm:focus { + outline: none; +} + +.xterm .xterm-helpers { + position: absolute; + top: 0; + /** + * The z-index of the helpers must be higher than the canvases in order for + * IMEs to appear on top. + */ + z-index: 5; +} + +.xterm .xterm-helper-textarea { + padding: 0; + border: 0; + margin: 0; + /* Move textarea out of the screen to the far left, so that the cursor is not visible */ + position: absolute; + opacity: 0; + left: -9999em; + top: 0; + width: 0; + height: 0; + z-index: -5; + /** Prevent wrapping so the IME appears against the textarea at the correct position */ + white-space: nowrap; + overflow: hidden; + resize: none; +} + +.xterm .composition-view { + /* TODO: Composition position got messed up somewhere */ + background: #000; + color: #FFF; + display: none; + position: absolute; + white-space: nowrap; + z-index: 1; +} + +.xterm .composition-view.active { + display: block; +} + +#terminal { + border: #FFF; + border-style: solid; + border-width: 1px; + padding: 4px; + /* zoom: 1.2 !important; */ +} + +body { + margin: 0px; + height: 100%; + width: 100%; + background-color: #282C34; + + overflow: hidden; +} + +.xterm .xterm-viewport { + /* On OS X this is required in order for the scroll bar to appear fully opaque */ + /* background-color: rgb(13,17,23) !important; */ + + /*overflow-y: scroll;*/ + overflow: hidden; + cursor: default; + position: absolute; + right: 0; + left: 0; + top: 0; + bottom: 0; +} + +.xterm .xterm-screen { + position: relative; +} + +.xterm .xterm-screen canvas { + position: absolute; + left: 0; + top: 0; +} + +.xterm .xterm-scroll-area { + visibility: hidden; +} + +.xterm-char-measure-element { + display: inline-block; + visibility: hidden; + position: absolute; + top: 0; + left: -9999em; + line-height: normal; +} + +.xterm.enable-mouse-events { + /* When mouse events are enabled (eg. tmux), revert to the standard pointer cursor */ + cursor: default; +} + +.xterm.xterm-cursor-pointer, +.xterm .xterm-cursor-pointer { + cursor: pointer; +} + +.xterm.column-select.focus { + /* Column selection mode */ + cursor: crosshair; +} + +.xterm .xterm-accessibility, +.xterm .xterm-message { + position: absolute; + left: 0; + top: 0; + bottom: 0; + right: 0; + z-index: 10; + color: transparent; +} + +.xterm .live-region { + position: absolute; + left: -9999px; + width: 1px; + height: 1px; + overflow: hidden; +} + +.xterm-dim { + opacity: 0.5; +} + +.xterm-underline-1 { text-decoration: underline; } +.xterm-underline-2 { text-decoration: double underline; } +.xterm-underline-3 { text-decoration: wavy underline; } +.xterm-underline-4 { text-decoration: dotted underline; } +.xterm-underline-5 { text-decoration: dashed underline; } + +.xterm-strikethrough { + text-decoration: line-through; +} + +.xterm-screen .xterm-decoration-container .xterm-decoration { + z-index: 6; + position: absolute; +} + +.xterm-decoration-overview-ruler { + z-index: 7; + position: absolute; + top: 0; + right: 0; + pointer-events: none; +} + +.xterm-decoration-top { + z-index: 2; + position: relative; +} diff --git a/dependencies/pocketpy/web/xterm/xterm.js b/dependencies/pocketpy/web/xterm/xterm.js new file mode 100644 index 0000000..61b3033 --- /dev/null +++ b/dependencies/pocketpy/web/xterm/xterm.js @@ -0,0 +1,2 @@ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i=t();for(var s in i)("object"==typeof exports?exports:e)[s]=i[s]}}(self,(function(){return(()=>{"use strict";var e={4567:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AccessibilityManager=void 0;const s=i(9042),r=i(6114),n=i(9924),o=i(3656),a=i(844),h=i(5596),c=i(9631);class l extends a.Disposable{constructor(e,t){super(),this._terminal=e,this._renderService=t,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="",this._accessibilityTreeRoot=document.createElement("div"),this._accessibilityTreeRoot.classList.add("xterm-accessibility"),this._accessibilityTreeRoot.tabIndex=0,this._rowContainer=document.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let e=0;ethis._onBoundaryFocus(e,0),this._bottomBoundaryFocusListener=e=>this._onBoundaryFocus(e,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityTreeRoot.appendChild(this._rowContainer),this._renderRowsDebouncer=new n.TimeBasedDebouncer(this._renderRows.bind(this)),this._refreshRows(),this._liveRegion=document.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityTreeRoot.appendChild(this._liveRegion),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityTreeRoot),this.register(this._renderRowsDebouncer),this.register(this._terminal.onResize((e=>this._onResize(e.rows)))),this.register(this._terminal.onRender((e=>this._refreshRows(e.start,e.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((e=>this._onChar(e)))),this.register(this._terminal.onLineFeed((()=>this._onChar("\n")))),this.register(this._terminal.onA11yTab((e=>this._onTab(e)))),this.register(this._terminal.onKey((e=>this._onKey(e.key)))),this.register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this.register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this._screenDprMonitor=new h.ScreenDprMonitor(window),this.register(this._screenDprMonitor),this._screenDprMonitor.setListener((()=>this._refreshRowsDimensions())),this.register((0,o.addDisposableDomListener)(window,"resize",(()=>this._refreshRowsDimensions())))}dispose(){super.dispose(),(0,c.removeElementFromParent)(this._accessibilityTreeRoot),this._rowElements.length=0}_onBoundaryFocus(e,t){const i=e.target,s=this._rowElements[0===t?1:this._rowElements.length-2];if(i.getAttribute("aria-posinset")===(0===t?"1":`${this._terminal.buffer.lines.length}`))return;if(e.relatedTarget!==s)return;let r,n;if(0===t?(r=i,n=this._rowElements.pop(),this._rowContainer.removeChild(n)):(r=this._rowElements.shift(),n=i,this._rowContainer.removeChild(r)),r.removeEventListener("focus",this._topBoundaryFocusListener),n.removeEventListener("focus",this._bottomBoundaryFocusListener),0===t){const e=this._createAccessibilityTreeNode();this._rowElements.unshift(e),this._rowContainer.insertAdjacentElement("afterbegin",e)}else{const e=this._createAccessibilityTreeNode();this._rowElements.push(e),this._rowContainer.appendChild(e)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===t?-1:1),this._rowElements[0===t?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_onResize(e){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let e=this._rowContainer.children.length;ee;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const e=document.createElement("div");return e.setAttribute("role","listitem"),e.tabIndex=-1,this._refreshRowDimensions(e),e}_onTab(e){for(let t=0;t0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,"\n"===e&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=s.tooMuchOutput)),r.isMac&&this._liveRegion.textContent&&this._liveRegion.textContent.length>0&&!this._liveRegion.parentNode&&setTimeout((()=>{this._accessibilityTreeRoot.appendChild(this._liveRegion)}),0))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0,r.isMac&&(0,c.removeElementFromParent)(this._liveRegion)}_onKey(e){this._clearLiveRegion(),this._charsToConsume.push(e)}_refreshRows(e,t){this._renderRowsDebouncer.refresh(e,t,this._terminal.rows)}_renderRows(e,t){const i=this._terminal.buffer,s=i.lines.length.toString();for(let r=e;r<=t;r++){const e=i.translateBufferLineToString(i.ydisp+r,!0),t=(i.ydisp+r+1).toString(),n=this._rowElements[r];n&&(0===e.length?n.innerText=" ":n.textContent=e,n.setAttribute("aria-posinset",t),n.setAttribute("aria-setsize",s))}this._announceCharacters()}_refreshRowsDimensions(){if(this._renderService.dimensions.actualCellHeight){this._rowElements.length!==this._terminal.rows&&this._onResize(this._terminal.rows);for(let e=0;e{function i(e){return e.replace(/\r?\n/g,"\r")}function s(e,t){return t?"[200~"+e+"[201~":e}function r(e,t,r){e=s(e=i(e),r.decPrivateModes.bracketedPasteMode),r.triggerDataEvent(e,!0),t.value=""}function n(e,t,i){const s=i.getBoundingClientRect(),r=e.clientX-s.left-10,n=e.clientY-s.top-10;t.style.width="20px",t.style.height="20px",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex="1000",t.focus()}Object.defineProperty(t,"__esModule",{value:!0}),t.rightClickHandler=t.moveTextAreaUnderMouseCursor=t.paste=t.handlePasteEvent=t.copyHandler=t.bracketTextForPaste=t.prepareTextForTerminal=void 0,t.prepareTextForTerminal=i,t.bracketTextForPaste=s,t.copyHandler=function(e,t){e.clipboardData&&e.clipboardData.setData("text/plain",t.selectionText),e.preventDefault()},t.handlePasteEvent=function(e,t,i){e.stopPropagation(),e.clipboardData&&r(e.clipboardData.getData("text/plain"),t,i)},t.paste=r,t.moveTextAreaUnderMouseCursor=n,t.rightClickHandler=function(e,t,i,s,r){n(e,t,i),r&&s.rightClickSelect(e),t.value=s.selectionText,t.select()}},7239:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorContrastCache=void 0;const s=i(1505);t.ColorContrastCache=class{constructor(){this._color=new s.TwoKeyMap,this._css=new s.TwoKeyMap}setCss(e,t,i){this._css.set(e,t,i)}getCss(e,t){return this._css.get(e,t)}setColor(e,t,i){this._color.set(e,t,i)}getColor(e,t){return this._color.get(e,t)}clear(){this._color.clear(),this._css.clear()}}},5680:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorManager=t.DEFAULT_ANSI_COLORS=void 0;const s=i(8055),r=i(7239),n=s.css.toColor("#ffffff"),o=s.css.toColor("#000000"),a=s.css.toColor("#ffffff"),h=s.css.toColor("#000000"),c={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117};t.DEFAULT_ANSI_COLORS=Object.freeze((()=>{const e=[s.css.toColor("#2e3436"),s.css.toColor("#cc0000"),s.css.toColor("#4e9a06"),s.css.toColor("#c4a000"),s.css.toColor("#3465a4"),s.css.toColor("#75507b"),s.css.toColor("#06989a"),s.css.toColor("#d3d7cf"),s.css.toColor("#555753"),s.css.toColor("#ef2929"),s.css.toColor("#8ae234"),s.css.toColor("#fce94f"),s.css.toColor("#729fcf"),s.css.toColor("#ad7fa8"),s.css.toColor("#34e2e2"),s.css.toColor("#eeeeec")],t=[0,95,135,175,215,255];for(let i=0;i<216;i++){const r=t[i/36%6|0],n=t[i/6%6|0],o=t[i%6];e.push({css:s.channels.toCss(r,n,o),rgba:s.channels.toRgba(r,n,o)})}for(let t=0;t<24;t++){const i=8+10*t;e.push({css:s.channels.toCss(i,i,i),rgba:s.channels.toRgba(i,i,i)})}return e})()),t.ColorManager=class{constructor(e,i){this.allowTransparency=i;const l=e.createElement("canvas");l.width=1,l.height=1;const d=l.getContext("2d");if(!d)throw new Error("Could not get rendering context");this._ctx=d,this._ctx.globalCompositeOperation="copy",this._litmusColor=this._ctx.createLinearGradient(0,0,1,1),this._contrastCache=new r.ColorContrastCache,this.colors={foreground:n,background:o,cursor:a,cursorAccent:h,selectionForeground:void 0,selectionBackgroundTransparent:c,selectionBackgroundOpaque:s.color.blend(o,c),selectionInactiveBackgroundTransparent:c,selectionInactiveBackgroundOpaque:s.color.blend(o,c),ansi:t.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache},this._updateRestoreColors()}onOptionsChange(e,t){switch(e){case"minimumContrastRatio":this._contrastCache.clear();break;case"allowTransparency":this.allowTransparency=t}}setTheme(e={}){this.colors.foreground=this._parseColor(e.foreground,n),this.colors.background=this._parseColor(e.background,o),this.colors.cursor=this._parseColor(e.cursor,a,!0),this.colors.cursorAccent=this._parseColor(e.cursorAccent,h,!0),this.colors.selectionBackgroundTransparent=this._parseColor(e.selectionBackground,c,!0),this.colors.selectionBackgroundOpaque=s.color.blend(this.colors.background,this.colors.selectionBackgroundTransparent),this.colors.selectionInactiveBackgroundTransparent=this._parseColor(e.selectionInactiveBackground,this.colors.selectionBackgroundTransparent,!0),this.colors.selectionInactiveBackgroundOpaque=s.color.blend(this.colors.background,this.colors.selectionInactiveBackgroundTransparent);const i={css:"",rgba:0};if(this.colors.selectionForeground=e.selectionForeground?this._parseColor(e.selectionForeground,i):void 0,this.colors.selectionForeground===i&&(this.colors.selectionForeground=void 0),s.color.isOpaque(this.colors.selectionBackgroundTransparent)){const e=.3;this.colors.selectionBackgroundTransparent=s.color.opacity(this.colors.selectionBackgroundTransparent,e)}if(s.color.isOpaque(this.colors.selectionInactiveBackgroundTransparent)){const e=.3;this.colors.selectionInactiveBackgroundTransparent=s.color.opacity(this.colors.selectionInactiveBackgroundTransparent,e)}if(this.colors.ansi=t.DEFAULT_ANSI_COLORS.slice(),this.colors.ansi[0]=this._parseColor(e.black,t.DEFAULT_ANSI_COLORS[0]),this.colors.ansi[1]=this._parseColor(e.red,t.DEFAULT_ANSI_COLORS[1]),this.colors.ansi[2]=this._parseColor(e.green,t.DEFAULT_ANSI_COLORS[2]),this.colors.ansi[3]=this._parseColor(e.yellow,t.DEFAULT_ANSI_COLORS[3]),this.colors.ansi[4]=this._parseColor(e.blue,t.DEFAULT_ANSI_COLORS[4]),this.colors.ansi[5]=this._parseColor(e.magenta,t.DEFAULT_ANSI_COLORS[5]),this.colors.ansi[6]=this._parseColor(e.cyan,t.DEFAULT_ANSI_COLORS[6]),this.colors.ansi[7]=this._parseColor(e.white,t.DEFAULT_ANSI_COLORS[7]),this.colors.ansi[8]=this._parseColor(e.brightBlack,t.DEFAULT_ANSI_COLORS[8]),this.colors.ansi[9]=this._parseColor(e.brightRed,t.DEFAULT_ANSI_COLORS[9]),this.colors.ansi[10]=this._parseColor(e.brightGreen,t.DEFAULT_ANSI_COLORS[10]),this.colors.ansi[11]=this._parseColor(e.brightYellow,t.DEFAULT_ANSI_COLORS[11]),this.colors.ansi[12]=this._parseColor(e.brightBlue,t.DEFAULT_ANSI_COLORS[12]),this.colors.ansi[13]=this._parseColor(e.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),this.colors.ansi[14]=this._parseColor(e.brightCyan,t.DEFAULT_ANSI_COLORS[14]),this.colors.ansi[15]=this._parseColor(e.brightWhite,t.DEFAULT_ANSI_COLORS[15]),e.extendedAnsi){const i=Math.min(this.colors.ansi.length-16,e.extendedAnsi.length);for(let s=0;sNumber(e))),h=Math.round(255*a);return{rgba:s.channels.toRgba(r,n,o,h),css:e}}return{css:this._ctx.fillStyle,rgba:s.channels.toRgba(r[0],r[1],r[2],r[3])}}}},9631:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.removeElementFromParent=void 0,t.removeElementFromParent=function(...e){var t;for(const i of e)null===(t=null==i?void 0:i.parentElement)||void 0===t||t.removeChild(i)}},3656:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(e,t,i,s){e.addEventListener(t,i,s);let r=!1;return{dispose:()=>{r||(r=!0,e.removeEventListener(t,i,s))}}}},6465:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Linkifier2=void 0;const n=i(2585),o=i(8460),a=i(844),h=i(3656);let c=class extends a.Disposable{constructor(e){super(),this._bufferService=e,this._linkProviders=[],this._linkCacheDisposables=[],this._isMouseOut=!0,this._activeLine=-1,this._onShowLinkUnderline=this.register(new o.EventEmitter),this._onHideLinkUnderline=this.register(new o.EventEmitter),this.register((0,a.getDisposeArrayDisposable)(this._linkCacheDisposables))}get currentLink(){return this._currentLink}get onShowLinkUnderline(){return this._onShowLinkUnderline.event}get onHideLinkUnderline(){return this._onHideLinkUnderline.event}dispose(){super.dispose(),this._lastMouseEvent=void 0}registerLinkProvider(e){return this._linkProviders.push(e),{dispose:()=>{const t=this._linkProviders.indexOf(e);-1!==t&&this._linkProviders.splice(t,1)}}}attachToDom(e,t,i){this._element=e,this._mouseService=t,this._renderService=i,this.register((0,h.addDisposableDomListener)(this._element,"mouseleave",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this.register((0,h.addDisposableDomListener)(this._element,"mousemove",this._onMouseMove.bind(this))),this.register((0,h.addDisposableDomListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this.register((0,h.addDisposableDomListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_onMouseMove(e){if(this._lastMouseEvent=e,!this._element||!this._mouseService)return;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;const i=e.composedPath();for(let e=0;e{null==e||e.forEach((e=>{e.link.dispose&&e.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=e.y);let r=!1;for(const[i,n]of this._linkProviders.entries())t?(null===(s=this._activeProviderReplies)||void 0===s?void 0:s.get(i))&&(r=this._checkLinkProviderResult(i,e,r)):n.provideLinks(e.y,(t=>{var s,n;if(this._isMouseOut)return;const o=null==t?void 0:t.map((e=>({link:e})));null===(s=this._activeProviderReplies)||void 0===s||s.set(i,o),r=this._checkLinkProviderResult(i,e,r),(null===(n=this._activeProviderReplies)||void 0===n?void 0:n.size)===this._linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)}))}_removeIntersectingLinks(e,t){const i=new Set;for(let s=0;se?this._bufferService.cols:s.link.range.end.x;for(let e=n;e<=o;e++){if(i.has(e)){r.splice(t--,1);break}i.add(e)}}}}_checkLinkProviderResult(e,t,i){var s;if(!this._activeProviderReplies)return i;const r=this._activeProviderReplies.get(e);let n=!1;for(let t=0;tthis._linkAtPosition(e.link,t)));e&&(i=!0,this._handleNewLink(e))}if(this._activeProviderReplies.size===this._linkProviders.length&&!i)for(let e=0;ethis._linkAtPosition(e.link,t)));if(r){i=!0,this._handleNewLink(r);break}}return i}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._element||!this._mouseService||!this._currentLink)return;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){this._element&&this._currentLink&&this._lastMouseEvent&&(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,a.disposeArray)(this._linkCacheDisposables))}_handleNewLink(e){if(!this._element||!this._lastMouseEvent||!this._mouseService)return;const t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:void 0===e.link.decorations||e.link.decorations.underline,pointerCursor:void 0===e.link.decorations||e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>{var e,t;return null===(t=null===(e=this._currentLink)||void 0===e?void 0:e.state)||void 0===t?void 0:t.decorations.pointerCursor},set:e=>{var t,i;(null===(t=this._currentLink)||void 0===t?void 0:t.state)&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&(null===(i=this._element)||void 0===i||i.classList.toggle("xterm-cursor-pointer",e)))}},underline:{get:()=>{var e,t;return null===(t=null===(e=this._currentLink)||void 0===e?void 0:e.state)||void 0===t?void 0:t.decorations.underline},set:t=>{var i,s,r;(null===(i=this._currentLink)||void 0===i?void 0:i.state)&&(null===(r=null===(s=this._currentLink)||void 0===s?void 0:s.state)||void 0===r?void 0:r.decorations.underline)!==t&&(this._currentLink.state.decorations.underline=t,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,t))}}}),this._renderService&&this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((e=>{const t=0===e.start?0:e.start+1+this._bufferService.buffer.ydisp;this._clearCurrentLink(t,e.end+1+this._bufferService.buffer.ydisp)}))))}_linkHover(e,t,i){var s;(null===(s=this._currentLink)||void 0===s?void 0:s.state)&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add("xterm-cursor-pointer")),t.hover&&t.hover(i,t.text)}_fireUnderlineEvent(e,t){const i=e.range,s=this._bufferService.buffer.ydisp,r=this._createLinkUnderlineEvent(i.start.x-1,i.start.y-s-1,i.end.x,i.end.y-s-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(r)}_linkLeave(e,t,i){var s;(null===(s=this._currentLink)||void 0===s?void 0:s.state)&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove("xterm-cursor-pointer")),t.leave&&t.leave(i,t.text)}_linkAtPosition(e,t){const i=e.range.start.y===e.range.end.y,s=e.range.start.yt.y;return(i&&e.range.start.x<=t.x&&e.range.end.x>=t.x||s&&e.range.end.x>=t.x||r&&e.range.start.x<=t.x||s&&r)&&e.range.start.y<=t.y&&e.range.end.y>=t.y}_positionFromMouseEvent(e,t,i){const s=i.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(s)return{x:s[0],y:s[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,i,s,r){return{x1:e,y1:t,x2:i,y2:s,cols:this._bufferService.cols,fg:r}}};c=s([r(0,n.IBufferService)],c),t.Linkifier2=c},9042:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tooMuchOutput=t.promptLabel=void 0,t.promptLabel="Terminal input",t.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},2962:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkProvider=void 0;const n=i(511),o=i(2585);let a=class{constructor(e,t,i){this._bufferService=e,this._optionsService=t,this._oscLinkService=i}provideLinks(e,t){var i;const s=this._bufferService.buffer.lines.get(e-1);if(!s)return void t(void 0);const r=[],o=this._optionsService.rawOptions.linkHandler,a=new n.CellData,c=s.getTrimmedLength();let l=-1,d=-1,_=!1;for(let t=0;to?o.activate(e,t,i):h(0,t),hover:(e,t)=>{var s;return null===(s=null==o?void 0:o.hover)||void 0===s?void 0:s.call(o,e,t,i)},leave:(e,t)=>{var s;return null===(s=null==o?void 0:o.leave)||void 0===s?void 0:s.call(o,e,t,i)}})}_=!1,a.hasExtendedAttrs()&&a.extended.urlId?(d=t,l=a.extended.urlId):(d=-1,l=-1)}}t(r)}};function h(e,t){if(confirm(`Do you want to navigate to ${t}?`)){const e=window.open();if(e){try{e.opener=null}catch(e){}e.location.href=t}else console.warn("Opening link blocked as opener could not be cleared")}}a=s([r(0,o.IBufferService),r(1,o.IOptionsService),r(2,o.IOscLinkService)],a),t.OscLinkProvider=a},6193:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RenderDebouncer=void 0,t.RenderDebouncer=class{constructor(e,t){this._parentWindow=e,this._renderCallback=t,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._parentWindow.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(e){return this._refreshCallbacks.push(e),this._animationFrame||(this._animationFrame=this._parentWindow.requestAnimationFrame((()=>this._innerRefresh()))),this._animationFrame}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t,this._animationFrame||(this._animationFrame=this._parentWindow.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._animationFrame=void 0,void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return void this._runRefreshCallbacks();const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(const e of this._refreshCallbacks)e(0);this._refreshCallbacks=[]}}},5596:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ScreenDprMonitor=void 0;const s=i(844);class r extends s.Disposable{constructor(e){super(),this._parentWindow=e,this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio}setListener(e){this._listener&&this.clearListener(),this._listener=e,this._outerListener=()=>{this._listener&&(this._listener(this._parentWindow.devicePixelRatio,this._currentDevicePixelRatio),this._updateDpr())},this._updateDpr()}dispose(){super.dispose(),this.clearListener()}_updateDpr(){var e;this._outerListener&&(null===(e=this._resolutionMediaMatchList)||void 0===e||e.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){this._resolutionMediaMatchList&&this._listener&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._listener=void 0,this._outerListener=void 0)}}t.ScreenDprMonitor=r},3236:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Terminal=void 0;const s=i(2950),r=i(1680),n=i(3614),o=i(2584),a=i(5435),h=i(9312),c=i(6114),l=i(3656),d=i(9042),_=i(4567),u=i(1296),f=i(7399),v=i(8460),g=i(8437),p=i(5680),S=i(3230),m=i(4725),C=i(428),b=i(8934),y=i(6465),w=i(5114),E=i(8969),L=i(8055),R=i(4269),k=i(5941),D=i(3107),A=i(5744),x=i(9074),B=i(2585),T=i(2962),M="undefined"!=typeof window?window.document:null;class O extends E.CoreTerminal{constructor(e={}){super(e),this.browser=c,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._onCursorMove=new v.EventEmitter,this._onKey=new v.EventEmitter,this._onRender=new v.EventEmitter,this._onSelectionChange=new v.EventEmitter,this._onTitleChange=new v.EventEmitter,this._onBell=new v.EventEmitter,this._onFocus=new v.EventEmitter,this._onBlur=new v.EventEmitter,this._onA11yCharEmitter=new v.EventEmitter,this._onA11yTabEmitter=new v.EventEmitter,this._setup(),this.linkifier2=this.register(this._instantiationService.createInstance(y.Linkifier2)),this.linkifier2.registerLinkProvider(this._instantiationService.createInstance(T.OscLinkProvider)),this._decorationService=this._instantiationService.createInstance(x.DecorationService),this._instantiationService.setService(B.IDecorationService,this._decorationService),this.register(this._inputHandler.onRequestBell((()=>this._onBell.fire()))),this.register(this._inputHandler.onRequestRefreshRows(((e,t)=>this.refresh(e,t)))),this.register(this._inputHandler.onRequestSendFocus((()=>this._reportFocus()))),this.register(this._inputHandler.onRequestReset((()=>this.reset()))),this.register(this._inputHandler.onRequestWindowsOptionsReport((e=>this._reportWindowsOptions(e)))),this.register(this._inputHandler.onColor((e=>this._handleColorEvent(e)))),this.register((0,v.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,v.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,v.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,v.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize((e=>this._afterResize(e.cols,e.rows))))}get onCursorMove(){return this._onCursorMove.event}get onKey(){return this._onKey.event}get onRender(){return this._onRender.event}get onSelectionChange(){return this._onSelectionChange.event}get onTitleChange(){return this._onTitleChange.event}get onBell(){return this._onBell.event}get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}_handleColorEvent(e){var t,i;if(this._colorManager){for(const t of e){let e,i="";switch(t.index){case 256:e="foreground",i="10";break;case 257:e="background",i="11";break;case 258:e="cursor",i="12";break;default:e="ansi",i="4;"+t.index}switch(t.type){case 0:const s=L.color.toColorRGB("ansi"===e?this._colorManager.colors.ansi[t.index]:this._colorManager.colors[e]);this.coreService.triggerDataEvent(`${o.C0.ESC}]${i};${(0,k.toRgbString)(s)}${o.C1_ESCAPED.ST}`);break;case 1:"ansi"===e?this._colorManager.colors.ansi[t.index]=L.rgba.toColor(...t.color):this._colorManager.colors[e]=L.rgba.toColor(...t.color);break;case 2:this._colorManager.restoreColor(t.index)}}null===(t=this._renderService)||void 0===t||t.setColors(this._colorManager.colors),null===(i=this.viewport)||void 0===i||i.onThemeChange(this._colorManager.colors)}}dispose(){var e,t,i;this._isDisposed||(super.dispose(),null===(e=this._renderService)||void 0===e||e.dispose(),this._customKeyEventHandler=void 0,this.write=()=>{},null===(i=null===(t=this.element)||void 0===t?void 0:t.parentNode)||void 0===i||i.removeChild(this.element))}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_updateOptions(e){var t,i,s,r;switch(super._updateOptions(e),e){case"fontFamily":case"fontSize":null===(t=this._renderService)||void 0===t||t.clear(),null===(i=this._charSizeService)||void 0===i||i.measure();break;case"cursorBlink":case"cursorStyle":this.refresh(this.buffer.y,this.buffer.y);break;case"customGlyphs":case"drawBoldTextInBrightColors":case"letterSpacing":case"lineHeight":case"fontWeight":case"fontWeightBold":case"minimumContrastRatio":this._renderService&&(this._renderService.clear(),this._renderService.onResize(this.cols,this.rows),this.refresh(0,this.rows-1));break;case"scrollback":null===(s=this.viewport)||void 0===s||s.syncScrollArea();break;case"screenReaderMode":this.optionsService.rawOptions.screenReaderMode?!this._accessibilityManager&&this._renderService&&(this._accessibilityManager=new _.AccessibilityManager(this,this._renderService)):(null===(r=this._accessibilityManager)||void 0===r||r.dispose(),this._accessibilityManager=void 0);break;case"tabStopWidth":this.buffers.setupTabStops();break;case"theme":this._setTheme(this.optionsService.rawOptions.theme)}}_onTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(o.C0.ESC+"[I"),this.updateCursorStyle(e),this.element.classList.add("focus"),this._showCursor(),this._onFocus.fire()}blur(){var e;return null===(e=this.textarea)||void 0===e?void 0:e.blur()}_onTextAreaBlur(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(o.C0.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;const e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;const i=Math.min(this.buffer.x,this.cols-1),s=this._renderService.dimensions.actualCellHeight,r=t.getWidth(i),n=this._renderService.dimensions.actualCellWidth*r,o=this.buffer.y*this._renderService.dimensions.actualCellHeight,a=i*this._renderService.dimensions.actualCellWidth;this.textarea.style.left=a+"px",this.textarea.style.top=o+"px",this.textarea.style.width=n+"px",this.textarea.style.height=s+"px",this.textarea.style.lineHeight=s+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this.register((0,l.addDisposableDomListener)(this.element,"copy",(e=>{this.hasSelection()&&(0,n.copyHandler)(e,this._selectionService)})));const e=e=>(0,n.handlePasteEvent)(e,this.textarea,this.coreService);this.register((0,l.addDisposableDomListener)(this.textarea,"paste",e)),this.register((0,l.addDisposableDomListener)(this.element,"paste",e)),c.isFirefox?this.register((0,l.addDisposableDomListener)(this.element,"mousedown",(e=>{2===e.button&&(0,n.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))):this.register((0,l.addDisposableDomListener)(this.element,"contextmenu",(e=>{(0,n.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))),c.isLinux&&this.register((0,l.addDisposableDomListener)(this.element,"auxclick",(e=>{1===e.button&&(0,n.moveTextAreaUnderMouseCursor)(e,this.textarea,this.screenElement)})))}_bindKeys(){this.register((0,l.addDisposableDomListener)(this.textarea,"keyup",(e=>this._keyUp(e)),!0)),this.register((0,l.addDisposableDomListener)(this.textarea,"keydown",(e=>this._keyDown(e)),!0)),this.register((0,l.addDisposableDomListener)(this.textarea,"keypress",(e=>this._keyPress(e)),!0)),this.register((0,l.addDisposableDomListener)(this.textarea,"compositionstart",(()=>this._compositionHelper.compositionstart()))),this.register((0,l.addDisposableDomListener)(this.textarea,"compositionupdate",(e=>this._compositionHelper.compositionupdate(e)))),this.register((0,l.addDisposableDomListener)(this.textarea,"compositionend",(()=>this._compositionHelper.compositionend()))),this.register((0,l.addDisposableDomListener)(this.textarea,"input",(e=>this._inputEvent(e)),!0)),this.register(this.onRender((()=>this._compositionHelper.updateCompositionElements())))}open(e){var t;if(!e)throw new Error("Terminal requires a parent element.");e.isConnected||this._logService.debug("Terminal.open was called on an element that was not attached to the DOM"),this._document=e.ownerDocument,this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),this.element.setAttribute("tabindex","0"),e.appendChild(this.element);const i=M.createDocumentFragment();this._viewportElement=M.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),i.appendChild(this._viewportElement),this._viewportScrollArea=M.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=M.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._helperContainer=M.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),i.appendChild(this.screenElement),this.textarea=M.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",d.promptLabel),this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this.register((0,l.addDisposableDomListener)(this.textarea,"focus",(e=>this._onTextAreaFocus(e)))),this.register((0,l.addDisposableDomListener)(this.textarea,"blur",(()=>this._onTextAreaBlur()))),this._helperContainer.appendChild(this.textarea),this._coreBrowserService=this._instantiationService.createInstance(w.CoreBrowserService,this.textarea,null!==(t=this._document.defaultView)&&void 0!==t?t:window),this._instantiationService.setService(m.ICoreBrowserService,this._coreBrowserService),this._charSizeService=this._instantiationService.createInstance(C.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(m.ICharSizeService,this._charSizeService),this._theme=this.options.theme||this._theme,this._colorManager=new p.ColorManager(M,this.options.allowTransparency),this.register(this.optionsService.onOptionChange((e=>this._colorManager.onOptionsChange(e,this.optionsService.rawOptions[e])))),this._colorManager.setTheme(this._theme),this._characterJoinerService=this._instantiationService.createInstance(R.CharacterJoinerService),this._instantiationService.setService(m.ICharacterJoinerService,this._characterJoinerService);const n=this._createRenderer();this._renderService=this.register(this._instantiationService.createInstance(S.RenderService,n,this.rows,this.screenElement)),this._instantiationService.setService(m.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange((e=>this._onRender.fire(e)))),this.onResize((e=>this._renderService.resize(e.cols,e.rows))),this._compositionView=M.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(s.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this.element.appendChild(i),this._mouseService=this._instantiationService.createInstance(b.MouseService),this._instantiationService.setService(m.IMouseService,this._mouseService),this.viewport=this._instantiationService.createInstance(r.Viewport,(e=>this.scrollLines(e,!0,1)),this._viewportElement,this._viewportScrollArea,this.element),this.viewport.onThemeChange(this._colorManager.colors),this.register(this._inputHandler.onRequestSyncScrollBar((()=>this.viewport.syncScrollArea()))),this.register(this.viewport),this.register(this.onCursorMove((()=>{this._renderService.onCursorMove(),this._syncTextArea()}))),this.register(this.onResize((()=>this._renderService.onResize(this.cols,this.rows)))),this.register(this.onBlur((()=>this._renderService.onBlur()))),this.register(this.onFocus((()=>this._renderService.onFocus()))),this.register(this._renderService.onDimensionsChange((()=>this.viewport.syncScrollArea()))),this._selectionService=this.register(this._instantiationService.createInstance(h.SelectionService,this.element,this.screenElement,this.linkifier2)),this._instantiationService.setService(m.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent)))),this.register(this._selectionService.onSelectionChange((()=>this._onSelectionChange.fire()))),this.register(this._selectionService.onRequestRedraw((e=>this._renderService.onSelectionChanged(e.start,e.end,e.columnSelectMode)))),this.register(this._selectionService.onLinuxMouseSelection((e=>{this.textarea.value=e,this.textarea.focus(),this.textarea.select()}))),this.register(this._onScroll.event((e=>{this.viewport.syncScrollArea(),this._selectionService.refresh()}))),this.register((0,l.addDisposableDomListener)(this._viewportElement,"scroll",(()=>this._selectionService.refresh()))),this.linkifier2.attachToDom(this.screenElement,this._mouseService,this._renderService),this.register(this._instantiationService.createInstance(D.BufferDecorationRenderer,this.screenElement)),this.register((0,l.addDisposableDomListener)(this.element,"mousedown",(e=>this._selectionService.onMouseDown(e)))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager=new _.AccessibilityManager(this,this._renderService)),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(A.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onOptionChange((()=>{!this._overviewRulerRenderer&&this.options.overviewRulerWidth&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(A.OverviewRulerRenderer,this._viewportElement,this.screenElement)))})),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(u.DomRenderer,this._colorManager.colors,this.element,this.screenElement,this._viewportElement,this.linkifier2)}_setTheme(e){var t,i,s;this._theme=e,null===(t=this._colorManager)||void 0===t||t.setTheme(e),null===(i=this._renderService)||void 0===i||i.setColors(this._colorManager.colors),null===(s=this.viewport)||void 0===s||s.onThemeChange(this._colorManager.colors)}bindMouse(){const e=this,t=this.element;function i(t){const i=e._mouseService.getMouseReportCoords(t,e.screenElement);if(!i)return!1;let s,r;switch(t.overrideType||t.type){case"mousemove":r=32,void 0===t.buttons?(s=3,void 0!==t.button&&(s=t.button<3?t.button:3)):s=1&t.buttons?0:4&t.buttons?1:2&t.buttons?2:3;break;case"mouseup":r=0,s=t.button<3?t.button:3;break;case"mousedown":r=1,s=t.button<3?t.button:3;break;case"wheel":if(0===e.viewport.getLinesScrolled(t))return!1;r=t.deltaY<0?0:1,s=4;break;default:return!1}return!(void 0===r||void 0===s||s>4)&&e.coreMouseService.triggerMouseEvent({col:i.col,row:i.row,x:i.x,y:i.y,button:s,action:r,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey})}const s={mouseup:null,wheel:null,mousedrag:null,mousemove:null},r={mouseup:e=>(i(e),e.buttons||(this._document.removeEventListener("mouseup",s.mouseup),s.mousedrag&&this._document.removeEventListener("mousemove",s.mousedrag)),this.cancel(e)),wheel:e=>(i(e),this.cancel(e,!0)),mousedrag:e=>{e.buttons&&i(e)},mousemove:e=>{e.buttons||i(e)}};this.register(this.coreMouseService.onProtocolChange((e=>{e?("debug"===this.optionsService.rawOptions.logLevel&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(e)),this.element.classList.add("enable-mouse-events"),this._selectionService.disable()):(this._logService.debug("Unbinding from mouse events."),this.element.classList.remove("enable-mouse-events"),this._selectionService.enable()),8&e?s.mousemove||(t.addEventListener("mousemove",r.mousemove),s.mousemove=r.mousemove):(t.removeEventListener("mousemove",s.mousemove),s.mousemove=null),16&e?s.wheel||(t.addEventListener("wheel",r.wheel,{passive:!1}),s.wheel=r.wheel):(t.removeEventListener("wheel",s.wheel),s.wheel=null),2&e?s.mouseup||(s.mouseup=r.mouseup):(this._document.removeEventListener("mouseup",s.mouseup),s.mouseup=null),4&e?s.mousedrag||(s.mousedrag=r.mousedrag):(this._document.removeEventListener("mousemove",s.mousedrag),s.mousedrag=null)}))),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,l.addDisposableDomListener)(t,"mousedown",(e=>{if(e.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(e))return i(e),s.mouseup&&this._document.addEventListener("mouseup",s.mouseup),s.mousedrag&&this._document.addEventListener("mousemove",s.mousedrag),this.cancel(e)}))),this.register((0,l.addDisposableDomListener)(t,"wheel",(e=>{if(!s.wheel){if(!this.buffer.hasScrollback){const t=this.viewport.getLinesScrolled(e);if(0===t)return;const i=o.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(e.deltaY<0?"A":"B");let s="";for(let e=0;e{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.onTouchStart(e),this.cancel(e)}),{passive:!0})),this.register((0,l.addDisposableDomListener)(t,"touchmove",(e=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.onTouchMove(e)?void 0:this.cancel(e)}),{passive:!1}))}refresh(e,t){var i;null===(i=this._renderService)||void 0===i||i.refreshRows(e,t)}updateCursorStyle(e){var t;(null===(t=this._selectionService)||void 0===t?void 0:t.shouldColumnSelect(e))?this.element.classList.add("column-select"):this.element.classList.remove("column-select")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t,i=0){super.scrollLines(e,t,i),this.refresh(0,this.rows-1)}paste(e){(0,n.paste)(e,this.textarea,this.coreService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}registerLinkProvider(e){return this.linkifier2.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");const t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}addMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(e,t,i){this._selectionService.setSelection(e,t,i)}getSelection(){return this._selectionService?this._selectionService.selectionText:""}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){var e;null===(e=this._selectionService)||void 0===e||e.clearSelection()}selectAll(){var e;null===(e=this._selectionService)||void 0===e||e.selectAll()}selectLines(e,t){var i;null===(i=this._selectionService)||void 0===i||i.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;const t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.buffer.ybase!==this.buffer.ydisp&&this._bufferService.scrollToBottom(),!1;t||"Dead"!==e.key&&"AltGraph"!==e.key||(this._unprocessedDeadKey=!0);const i=(0,f.evaluateKeyboardEvent)(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===i.type||2===i.type){const t=this.rows-1;return this.scrollLines(2===i.type?-t:t),this.cancel(e,!0)}return 1===i.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,e)||(i.cancel&&this.cancel(e,!0),!i.key||!!(e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&1===e.key.length&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(i.key!==o.C0.ETX&&i.key!==o.C0.CR||(this.textarea.value=""),this._onKey.fire({key:i.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(i.key,!0),this.optionsService.rawOptions.screenReaderMode?void(this._keyDownHandled=!0):this.cancel(e,!0))))}_isThirdLevelShift(e,t){const i=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState("AltGraph");return"keypress"===t.type?i:i&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e)||(function(e){return 16===e.keyCode||17===e.keyCode||18===e.keyCode}(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled)return!1;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(null===e.which||void 0===e.which)t=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;t=e.which}return!(!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)||(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(e){if(e.data&&"insertText"===e.inputType&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;const t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){e!==this.cols||t!==this.rows?super.resize(e,t):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(e,t){var i,s;null===(i=this._charSizeService)||void 0===i||i.measure(),null===(s=this.viewport)||void 0===s||s.syncScrollArea(!0)}clear(){if(0!==this.buffer.ybase||0!==this.buffer.y){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e{Object.defineProperty(t,"__esModule",{value:!0}),t.TimeBasedDebouncer=void 0,t.TimeBasedDebouncer=class{constructor(e,t=1e3){this._renderCallback=e,this._debounceThresholdMS=t,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t;const s=Date.now();if(s-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=s,this._innerRefresh();else if(!this._additionalRefreshRequested){const e=s-this._lastRefreshMs,t=this._debounceThresholdMS-e;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout((()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0}),t)}}_innerRefresh(){if(void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return;const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t)}}},1680:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Viewport=void 0;const n=i(844),o=i(3656),a=i(4725),h=i(2585);let c=class extends n.Disposable{constructor(e,t,i,s,r,n,a,h,c){super(),this._scrollLines=e,this._viewportElement=t,this._scrollArea=i,this._element=s,this._bufferService=r,this._optionsService=n,this._charSizeService=a,this._renderService=h,this._coreBrowserService=c,this.scrollBarWidth=0,this._currentRowHeight=0,this._currentScaledCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._wheelPartialScroll=0,this._refreshAnimationFrame=null,this._ignoreNextScrollEvent=!1,this._smoothScrollState={startTime:0,origin:-1,target:-1},this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,o.addDisposableDomListener)(this._viewportElement,"scroll",this._onScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange((e=>this._renderDimensions=e))),setTimeout((()=>this.syncScrollArea()),0)}onThemeChange(e){this._viewportElement.style.backgroundColor=e.background.css}_refresh(e){if(e)return this._innerRefresh(),void(null!==this._refreshAnimationFrame&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));null===this._refreshAnimationFrame&&(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderService.dimensions.scaledCellHeight/this._coreBrowserService.dpr,this._currentScaledCellHeight=this._renderService.dimensions.scaledCellHeight,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;const e=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderService.dimensions.canvasHeight);this._lastRecordedBufferHeight!==e&&(this._lastRecordedBufferHeight=e,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}const e=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==e&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=e),this._refreshAnimationFrame=null}syncScrollArea(e=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(e);this._lastRecordedViewportHeight===this._renderService.dimensions.canvasHeight&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.scaledCellHeight===this._currentScaledCellHeight||this._refresh(e)}_onScroll(e){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._scrollLines(0);const t=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._scrollLines(t)}_smoothScroll(){if(this._isDisposed||-1===this._smoothScrollState.origin||-1===this._smoothScrollState.target)return;const e=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(e*(this._smoothScrollState.target-this._smoothScrollState.origin)),e<1?this._coreBrowserService.window.requestAnimationFrame((()=>this._smoothScroll())):this._clearSmoothScrollState()}_smoothScrollPercent(){return this._optionsService.rawOptions.smoothScrollDuration&&this._smoothScrollState.startTime?Math.max(Math.min((Date.now()-this._smoothScrollState.startTime)/this._optionsService.rawOptions.smoothScrollDuration,1),0):1}_clearSmoothScrollState(){this._smoothScrollState.startTime=0,this._smoothScrollState.origin=-1,this._smoothScrollState.target=-1}_bubbleScroll(e,t){const i=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(t<0&&0!==this._viewportElement.scrollTop||t>0&&i0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._bufferService.rows),t}_applyScrollModifier(e,t){const i=this._optionsService.rawOptions.fastScrollModifier;return"alt"===i&&t.altKey||"ctrl"===i&&t.ctrlKey||"shift"===i&&t.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}onTouchStart(e){this._lastTouchY=e.touches[0].pageY}onTouchMove(e){const t=this._lastTouchY-e.touches[0].pageY;return this._lastTouchY=e.touches[0].pageY,0!==t&&(this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))}};c=s([r(4,h.IBufferService),r(5,h.IOptionsService),r(6,a.ICharSizeService),r(7,a.IRenderService),r(8,a.ICoreBrowserService)],c),t.Viewport=c},3107:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BufferDecorationRenderer=void 0;const n=i(3656),o=i(4725),a=i(844),h=i(2585);let c=class extends a.Disposable{constructor(e,t,i,s){super(),this._screenElement=e,this._bufferService=t,this._decorationService=i,this._renderService=s,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement("div"),this._container.classList.add("xterm-decoration-container"),this._screenElement.appendChild(this._container),this.register(this._renderService.onRenderedViewportChange((()=>this._queueRefresh()))),this.register(this._renderService.onDimensionsChange((()=>{this._dimensionsChanged=!0,this._queueRefresh()}))),this.register((0,n.addDisposableDomListener)(window,"resize",(()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt}))),this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh()))),this.register(this._decorationService.onDecorationRemoved((e=>this._removeDecoration(e))))}dispose(){this._container.remove(),this._decorationElements.clear(),super.dispose()}_queueRefresh(){void 0===this._animationFrame&&(this._animationFrame=this._renderService.addRefreshCallback((()=>{this.refreshDecorations(),this._animationFrame=void 0})))}refreshDecorations(){for(const e of this._decorationService.decorations)this._renderDecoration(e);this._dimensionsChanged=!1}_renderDecoration(e){this._refreshStyle(e),this._dimensionsChanged&&this._refreshXPosition(e)}_createElement(e){var t;const i=document.createElement("div");i.classList.add("xterm-decoration"),i.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.actualCellWidth)}px`,i.style.height=(e.options.height||1)*this._renderService.dimensions.actualCellHeight+"px",i.style.top=(e.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.actualCellHeight+"px",i.style.lineHeight=`${this._renderService.dimensions.actualCellHeight}px`;const s=null!==(t=e.options.x)&&void 0!==t?t:0;return s&&s>this._bufferService.cols&&(i.style.display="none"),this._refreshXPosition(e,i),i}_refreshStyle(e){const t=e.marker.line-this._bufferService.buffers.active.ydisp;if(t<0||t>=this._bufferService.rows)e.element&&(e.element.style.display="none",e.onRenderEmitter.fire(e.element));else{let i=this._decorationElements.get(e);i||(e.onDispose((()=>this._removeDecoration(e))),i=this._createElement(e),e.element=i,this._decorationElements.set(e,i),this._container.appendChild(i)),i.style.top=t*this._renderService.dimensions.actualCellHeight+"px",i.style.display=this._altBufferIsActive?"none":"block",e.onRenderEmitter.fire(i)}}_refreshXPosition(e,t=e.element){var i;if(!t)return;const s=null!==(i=e.options.x)&&void 0!==i?i:0;"right"===(e.options.anchor||"left")?t.style.right=s?s*this._renderService.dimensions.actualCellWidth+"px":"":t.style.left=s?s*this._renderService.dimensions.actualCellWidth+"px":""}_removeDecoration(e){var t;null===(t=this._decorationElements.get(e))||void 0===t||t.remove(),this._decorationElements.delete(e)}};c=s([r(1,h.IBufferService),r(2,h.IDecorationService),r(3,o.IRenderService)],c),t.BufferDecorationRenderer=c},5871:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorZoneStore=void 0,t.ColorZoneStore=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(e){if(e.options.overviewRulerOptions){for(const t of this._zones)if(t.color===e.options.overviewRulerOptions.color&&t.position===e.options.overviewRulerOptions.position){if(this._lineIntersectsZone(t,e.marker.line))return;if(this._lineAdjacentToZone(t,e.marker.line,e.options.overviewRulerOptions.position))return void this._addLineToZone(t,e.marker.line)}if(this._zonePoolIndex=e.startBufferLine&&t<=e.endBufferLine}_lineAdjacentToZone(e,t,i){return t>=e.startBufferLine-this._linePadding[i||"full"]&&t<=e.endBufferLine+this._linePadding[i||"full"]}_addLineToZone(e,t){e.startBufferLine=Math.min(e.startBufferLine,t),e.endBufferLine=Math.max(e.endBufferLine,t)}}},5744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OverviewRulerRenderer=void 0;const n=i(5871),o=i(3656),a=i(4725),h=i(844),c=i(2585),l={full:0,left:0,center:0,right:0},d={full:0,left:0,center:0,right:0},_={full:0,left:0,center:0,right:0};let u=class extends h.Disposable{constructor(e,t,i,s,r,o,a){var h;super(),this._viewportElement=e,this._screenElement=t,this._bufferService=i,this._decorationService=s,this._renderService=r,this._optionsService=o,this._coreBrowseService=a,this._colorZoneStore=new n.ColorZoneStore,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=document.createElement("canvas"),this._canvas.classList.add("xterm-decoration-overview-ruler"),this._refreshCanvasDimensions(),null===(h=this._viewportElement.parentElement)||void 0===h||h.insertBefore(this._canvas,this._viewportElement);const c=this._canvas.getContext("2d");if(!c)throw new Error("Ctx cannot be null");this._ctx=c,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners()}get _width(){return this._optionsService.options.overviewRulerWidth||0}_registerDecorationListeners(){this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh(void 0,!0)))),this.register(this._decorationService.onDecorationRemoved((()=>this._queueRefresh(void 0,!0))))}_registerBufferChangeListeners(){this.register(this._renderService.onRenderedViewportChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?"none":"block"}))),this.register(this._bufferService.onScroll((()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})))}_registerDimensionChangeListeners(){this.register(this._renderService.onRender((()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)}))),this.register(this._optionsService.onOptionChange((e=>{"overviewRulerWidth"===e&&this._queueRefresh(!0)}))),this.register((0,o.addDisposableDomListener)(this._coreBrowseService.window,"resize",(()=>{this._queueRefresh(!0)}))),this._queueRefresh(!0)}dispose(){var e;null===(e=this._canvas)||void 0===e||e.remove(),super.dispose()}_refreshDrawConstants(){const e=Math.floor(this._canvas.width/3),t=Math.ceil(this._canvas.width/3);d.full=this._canvas.width,d.left=e,d.center=t,d.right=e,this._refreshDrawHeightConstants(),_.full=0,_.left=0,_.center=d.left,_.right=d.left+d.center}_refreshDrawHeightConstants(){l.full=Math.round(2*this._coreBrowseService.dpr);const e=this._canvas.height/this._bufferService.buffer.lines.length,t=Math.round(Math.max(Math.min(e,12),6)*this._coreBrowseService.dpr);l.left=t,l.center=t,l.right=t}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*l.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*l.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*l.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*l.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowseService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowseService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(const e of this._decorationService.decorations)this._colorZoneStore.addDecoration(e);this._ctx.lineWidth=1;const e=this._colorZoneStore.zones;for(const t of e)"full"!==t.position&&this._renderColorZone(t);for(const t of e)"full"===t.position&&this._renderColorZone(t);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(e){this._ctx.fillStyle=e.color,this._ctx.fillRect(_[e.position||"full"],Math.round((this._canvas.height-1)*(e.startBufferLine/this._bufferService.buffers.active.lines.length)-l[e.position||"full"]/2),d[e.position||"full"],Math.round((this._canvas.height-1)*((e.endBufferLine-e.startBufferLine)/this._bufferService.buffers.active.lines.length)+l[e.position||"full"]))}_queueRefresh(e,t){this._shouldUpdateDimensions=e||this._shouldUpdateDimensions,this._shouldUpdateAnchor=t||this._shouldUpdateAnchor,void 0===this._animationFrame&&(this._animationFrame=this._coreBrowseService.window.requestAnimationFrame((()=>{this._refreshDecorations(),this._animationFrame=void 0})))}};u=s([r(2,c.IBufferService),r(3,c.IDecorationService),r(4,a.IRenderService),r(5,c.IOptionsService),r(6,a.ICoreBrowserService)],u),t.OverviewRulerRenderer=u},2950:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompositionHelper=void 0;const n=i(4725),o=i(2585),a=i(2584);let h=class{constructor(e,t,i,s,r,n){this._textarea=e,this._compositionView=t,this._bufferService=i,this._optionsService=s,this._coreService=r,this._renderService=n,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=""}get isComposing(){return this._isComposing}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent="",this._dataAlreadySent="",this._compositionView.classList.add("active")}compositionupdate(e){this._compositionView.textContent=e.data,this.updateCompositionElements(),setTimeout((()=>{this._compositionPosition.end=this._textarea.value.length}),0)}compositionend(){this._finalizeComposition(!0)}keydown(e){if(this._isComposing||this._isSendingComposition){if(229===e.keyCode)return!1;if(16===e.keyCode||17===e.keyCode||18===e.keyCode)return!1;this._finalizeComposition(!1)}return 229!==e.keyCode||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(e){if(this._compositionView.classList.remove("active"),this._isComposing=!1,e){const e={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout((()=>{if(this._isSendingComposition){let t;this._isSendingComposition=!1,e.start+=this._dataAlreadySent.length,t=this._isComposing?this._textarea.value.substring(e.start,e.end):this._textarea.value.substring(e.start),t.length>0&&this._coreService.triggerDataEvent(t,!0)}}),0)}else{this._isSendingComposition=!1;const e=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(e,!0)}}_handleAnyTextareaChanges(){const e=this._textarea.value;setTimeout((()=>{if(!this._isComposing){const t=this._textarea.value,i=t.replace(e,"");this._dataAlreadySent=i,t.length>e.length?this._coreService.triggerDataEvent(i,!0):t.lengththis.updateCompositionElements(!0)),0)}}};h=s([r(2,o.IBufferService),r(3,o.IOptionsService),r(4,o.ICoreService),r(5,n.IRenderService)],h),t.CompositionHelper=h},9806:(e,t)=>{function i(e,t,i){const s=i.getBoundingClientRect(),r=e.getComputedStyle(i),n=parseInt(r.getPropertyValue("padding-left")),o=parseInt(r.getPropertyValue("padding-top"));return[t.clientX-s.left-n,t.clientY-s.top-o]}Object.defineProperty(t,"__esModule",{value:!0}),t.getCoords=t.getCoordsRelativeToElement=void 0,t.getCoordsRelativeToElement=i,t.getCoords=function(e,t,s,r,n,o,a,h,c){if(!o)return;const l=i(e,t,s);return l?(l[0]=Math.ceil((l[0]+(c?a/2:0))/a),l[1]=Math.ceil(l[1]/h),l[0]=Math.min(Math.max(l[0],1),r+(c?1:0)),l[1]=Math.min(Math.max(l[1],1),n),l):void 0}},9504:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.moveToCellSequence=void 0;const s=i(2584);function r(e,t,i,s){const r=e-n(i,e),a=t-n(i,t),l=Math.abs(r-a)-function(e,t,i){let s=0;const r=e-n(i,e),a=t-n(i,t);for(let n=0;n=0&&tt?"A":"B"}function a(e,t,i,s,r,n){let o=e,a=t,h="";for(;o!==i||a!==s;)o+=r?1:-1,r&&o>n.cols-1?(h+=n.buffer.translateBufferLineToString(a,!1,e,o),o=0,e=0,a++):!r&&o<0&&(h+=n.buffer.translateBufferLineToString(a,!1,0,e+1),o=n.cols-1,e=o,a--);return h+n.buffer.translateBufferLineToString(a,!1,e,o)}function h(e,t){const i=t?"O":"[";return s.C0.ESC+i+e}function c(e,t){e=Math.floor(e);let i="";for(let s=0;s0?s-n(o,s):t;const _=s,u=function(e,t,i,s,o,a){let h;return h=r(i,s,o,a).length>0?s-n(o,s):t,e=i&&he?"D":"C",c(Math.abs(o-e),h(d,s));d=l>t?"D":"C";const _=Math.abs(l-t);return c(function(e,t){return t.cols-e}(l>t?e:o,i)+(_-1)*i.cols+1+((l>t?o:e)-1),h(d,s))}},8036:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;const s=i(6114);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=s.isFirefox||s.isLegacyEdge?"bottom":"ideographic"},1752:(e,t)=>{function i(e){return 57508<=e&&e<=57558}Object.defineProperty(t,"__esModule",{value:!0}),t.excludeFromContrastRatioDemands=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(e){if(!e)throw new Error("value must not be falsy");return e},t.isPowerlineGlyph=i,t.isRestrictedPowerlineGlyph=function(e){return 57520<=e&&e<=57527},t.excludeFromContrastRatioDemands=function(e){return i(e)||function(e){return 9472<=e&&e<=9631}(e)}},1296:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomRenderer=void 0;const n=i(3787),o=i(8036),a=i(844),h=i(4725),c=i(2585),l=i(8460),d=i(8055),_=i(9631),u="xterm-dom-renderer-owner-",f="xterm-focus";let v=1,g=class extends a.Disposable{constructor(e,t,i,s,r,o,a,h,c,l){super(),this._colors=e,this._element=t,this._screenElement=i,this._viewportElement=s,this._linkifier2=r,this._charSizeService=a,this._optionsService=h,this._bufferService=c,this._coreBrowserService=l,this._terminalClass=v++,this._rowElements=[],this._rowContainer=document.createElement("div"),this._rowContainer.classList.add("xterm-rows"),this._rowContainer.style.lineHeight="normal",this._rowContainer.setAttribute("aria-hidden","true"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=document.createElement("div"),this._selectionContainer.classList.add("xterm-selection"),this._selectionContainer.setAttribute("aria-hidden","true"),this.dimensions={scaledCharWidth:0,scaledCharHeight:0,scaledCellWidth:0,scaledCellHeight:0,scaledCharLeft:0,scaledCharTop:0,scaledCanvasWidth:0,scaledCanvasHeight:0,canvasWidth:0,canvasHeight:0,actualCellWidth:0,actualCellHeight:0},this._updateDimensions(),this._injectCss(),this._rowFactory=o.createInstance(n.DomRendererRowFactory,document,this._colors),this._element.classList.add(u+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline((e=>this._onLinkHover(e)))),this.register(this._linkifier2.onHideLinkUnderline((e=>this._onLinkLeave(e))))}get onRequestRedraw(){return(new l.EventEmitter).event}dispose(){this._element.classList.remove(u+this._terminalClass),(0,_.removeElementFromParent)(this._rowContainer,this._selectionContainer,this._themeStyleElement,this._dimensionsStyleElement),super.dispose()}_updateDimensions(){const e=this._coreBrowserService.dpr;this.dimensions.scaledCharWidth=this._charSizeService.width*e,this.dimensions.scaledCharHeight=Math.ceil(this._charSizeService.height*e),this.dimensions.scaledCellWidth=this.dimensions.scaledCharWidth+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.scaledCellHeight=Math.floor(this.dimensions.scaledCharHeight*this._optionsService.rawOptions.lineHeight),this.dimensions.scaledCharLeft=0,this.dimensions.scaledCharTop=0,this.dimensions.scaledCanvasWidth=this.dimensions.scaledCellWidth*this._bufferService.cols,this.dimensions.scaledCanvasHeight=this.dimensions.scaledCellHeight*this._bufferService.rows,this.dimensions.canvasWidth=Math.round(this.dimensions.scaledCanvasWidth/e),this.dimensions.canvasHeight=Math.round(this.dimensions.scaledCanvasHeight/e),this.dimensions.actualCellWidth=this.dimensions.canvasWidth/this._bufferService.cols,this.dimensions.actualCellHeight=this.dimensions.canvasHeight/this._bufferService.rows;for(const e of this._rowElements)e.style.width=`${this.dimensions.canvasWidth}px`,e.style.height=`${this.dimensions.actualCellHeight}px`,e.style.lineHeight=`${this.dimensions.actualCellHeight}px`,e.style.overflow="hidden";this._dimensionsStyleElement||(this._dimensionsStyleElement=document.createElement("style"),this._screenElement.appendChild(this._dimensionsStyleElement));const t=`${this._terminalSelector} .xterm-rows span { display: inline-block; height: 100%; vertical-align: top; width: ${this.dimensions.actualCellWidth}px}`;this._dimensionsStyleElement.textContent=t,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.canvasWidth}px`,this._screenElement.style.height=`${this.dimensions.canvasHeight}px`}setColors(e){this._colors=e,this._injectCss()}_injectCss(){this._themeStyleElement||(this._themeStyleElement=document.createElement("style"),this._screenElement.appendChild(this._themeStyleElement));let e=`${this._terminalSelector} .xterm-rows { color: ${this._colors.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px;}`;e+=`${this._terminalSelector} span:not(.${n.BOLD_CLASS}) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.${n.BOLD_CLASS} { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.${n.ITALIC_CLASS} { font-style: italic;}`,e+="@keyframes blink_box_shadow_"+this._terminalClass+" { 50% { box-shadow: none; }}",e+="@keyframes blink_block_"+this._terminalClass+" { 0% {"+` background-color: ${this._colors.cursor.css};`+` color: ${this._colors.cursorAccent.css}; } 50% {`+` background-color: ${this._colors.cursorAccent.css};`+` color: ${this._colors.cursor.css}; }}`,e+=`${this._terminalSelector} .xterm-rows:not(.xterm-focus) .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_BLOCK_CLASS} { outline: 1px solid ${this._colors.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .xterm-rows.xterm-focus .${n.CURSOR_CLASS}.${n.CURSOR_BLINK_CLASS}:not(.${n.CURSOR_STYLE_BLOCK_CLASS}) { animation: blink_box_shadow_`+this._terminalClass+" 1s step-end infinite;}"+`${this._terminalSelector} .xterm-rows.xterm-focus .${n.CURSOR_CLASS}.${n.CURSOR_BLINK_CLASS}.${n.CURSOR_STYLE_BLOCK_CLASS} { animation: blink_block_`+this._terminalClass+" 1s step-end infinite;}"+`${this._terminalSelector} .xterm-rows.xterm-focus .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_BLOCK_CLASS} {`+` background-color: ${this._colors.cursor.css};`+` color: ${this._colors.cursorAccent.css};}`+`${this._terminalSelector} .xterm-rows .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_BAR_CLASS} {`+` box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${this._colors.cursor.css} inset;}`+`${this._terminalSelector} .xterm-rows .${n.CURSOR_CLASS}.${n.CURSOR_STYLE_UNDERLINE_CLASS} {`+` box-shadow: 0 -1px 0 ${this._colors.cursor.css} inset;}`,e+=`${this._terminalSelector} .xterm-selection { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .xterm-selection div { position: absolute; background-color: ${this._colors.selectionBackgroundOpaque.css};}${this._terminalSelector} .xterm-selection div { position: absolute; background-color: ${this._colors.selectionInactiveBackgroundOpaque.css};}`,this._colors.ansi.forEach(((t,i)=>{e+=`${this._terminalSelector} .xterm-fg-${i} { color: ${t.css}; }${this._terminalSelector} .xterm-bg-${i} { background-color: ${t.css}; }`})),e+=`${this._terminalSelector} .xterm-fg-${o.INVERTED_DEFAULT_COLOR} { color: ${d.color.opaque(this._colors.background).css}; }${this._terminalSelector} .xterm-bg-${o.INVERTED_DEFAULT_COLOR} { background-color: ${this._colors.foreground.css}; }`,this._themeStyleElement.textContent=e}onDevicePixelRatioChange(){this._updateDimensions()}_refreshRowElements(e,t){for(let e=this._rowElements.length;e<=t;e++){const e=document.createElement("div");this._rowContainer.appendChild(e),this._rowElements.push(e)}for(;this._rowElements.length>t;)this._rowContainer.removeChild(this._rowElements.pop())}onResize(e,t){this._refreshRowElements(e,t),this._updateDimensions()}onCharSizeChanged(){this._updateDimensions()}onBlur(){this._rowContainer.classList.remove(f)}onFocus(){this._rowContainer.classList.add(f)}onSelectionChanged(e,t,i){for(;this._selectionContainer.children.length;)this._selectionContainer.removeChild(this._selectionContainer.children[0]);if(this._rowFactory.onSelectionChanged(e,t,i),this.renderRows(0,this._bufferService.rows-1),!e||!t)return;const s=e[1]-this._bufferService.buffer.ydisp,r=t[1]-this._bufferService.buffer.ydisp,n=Math.max(s,0),o=Math.min(r,this._bufferService.rows-1);if(n>=this._bufferService.rows||o<0)return;const a=document.createDocumentFragment();if(i){const i=e[0]>t[0];a.appendChild(this._createSelectionElement(n,i?t[0]:e[0],i?e[0]:t[0],o-n+1))}else{const i=s===n?e[0]:0,h=n===r?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(n,i,h));const c=o-n-1;if(a.appendChild(this._createSelectionElement(n+1,0,this._bufferService.cols,c)),n!==o){const e=r===o?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(o,0,e))}}this._selectionContainer.appendChild(a)}_createSelectionElement(e,t,i,s=1){const r=document.createElement("div");return r.style.height=s*this.dimensions.actualCellHeight+"px",r.style.top=e*this.dimensions.actualCellHeight+"px",r.style.left=t*this.dimensions.actualCellWidth+"px",r.style.width=this.dimensions.actualCellWidth*(i-t)+"px",r}onCursorMove(){}onOptionsChanged(){this._updateDimensions(),this._injectCss()}clear(){for(const e of this._rowElements)e.innerText=""}renderRows(e,t){const i=this._bufferService.buffer.ybase+this._bufferService.buffer.y,s=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),r=this._optionsService.rawOptions.cursorBlink;for(let n=e;n<=t;n++){const e=this._rowElements[n];e.innerText="";const t=n+this._bufferService.buffer.ydisp,o=this._bufferService.buffer.lines.get(t),a=this._optionsService.rawOptions.cursorStyle;e.appendChild(this._rowFactory.createRow(o,t,t===i,a,s,r,this.dimensions.actualCellWidth,this._bufferService.cols))}}get _terminalSelector(){return`.${u}${this._terminalClass}`}_onLinkHover(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)}_onLinkLeave(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)}_setCellUnderline(e,t,i,s,r,n){for(;e!==t||i!==s;){const t=this._rowElements[i];if(!t)return;const s=t.children[e];s&&(s.style.textDecoration=n?"underline":"none"),++e>=r&&(e=0,i++)}}};g=s([r(5,c.IInstantiationService),r(6,h.ICharSizeService),r(7,c.IOptionsService),r(8,c.IBufferService),r(9,h.ICoreBrowserService)],g),t.DomRenderer=g},3787:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomRendererRowFactory=t.CURSOR_STYLE_UNDERLINE_CLASS=t.CURSOR_STYLE_BAR_CLASS=t.CURSOR_STYLE_BLOCK_CLASS=t.CURSOR_BLINK_CLASS=t.CURSOR_CLASS=t.STRIKETHROUGH_CLASS=t.UNDERLINE_CLASS=t.ITALIC_CLASS=t.DIM_CLASS=t.BOLD_CLASS=void 0;const n=i(8036),o=i(643),a=i(511),h=i(2585),c=i(8055),l=i(4725),d=i(4269),_=i(1752),u=i(3734);t.BOLD_CLASS="xterm-bold",t.DIM_CLASS="xterm-dim",t.ITALIC_CLASS="xterm-italic",t.UNDERLINE_CLASS="xterm-underline",t.STRIKETHROUGH_CLASS="xterm-strikethrough",t.CURSOR_CLASS="xterm-cursor",t.CURSOR_BLINK_CLASS="xterm-cursor-blink",t.CURSOR_STYLE_BLOCK_CLASS="xterm-cursor-block",t.CURSOR_STYLE_BAR_CLASS="xterm-cursor-bar",t.CURSOR_STYLE_UNDERLINE_CLASS="xterm-cursor-underline";let f=class{constructor(e,t,i,s,r,n,o){this._document=e,this._colors=t,this._characterJoinerService=i,this._optionsService=s,this._coreBrowserService=r,this._coreService=n,this._decorationService=o,this._workCell=new a.CellData,this._columnSelectMode=!1}setColors(e){this._colors=e}onSelectionChanged(e,t,i){this._selectionStart=e,this._selectionEnd=t,this._columnSelectMode=i}createRow(e,i,s,r,a,h,l,_){const f=this._document.createDocumentFragment(),g=this._characterJoinerService.getJoinedCharacters(i);let p=0;for(let t=Math.min(e.length,_)-1;t>=0;t--)if(e.loadCell(t,this._workCell).getCode()!==o.NULL_CELL_CODE||s&&t===a){p=t+1;break}for(let _=0;_0&&_===g[0][0]){S=!0;const t=g.shift();C=new d.JoinedCellData(this._workCell,e.translateToString(!0,t[0],t[1]),t[1]-t[0]),m=t[1]-1,p=C.getWidth()}const b=this._document.createElement("span");if(p>1&&(b.style.width=l*p+"px"),S&&(b.style.display="inline",a>=_&&a<=m&&(a=_)),!this._coreService.isCursorHidden&&s&&_===a)switch(b.classList.add(t.CURSOR_CLASS),h&&b.classList.add(t.CURSOR_BLINK_CLASS),r){case"bar":b.classList.add(t.CURSOR_STYLE_BAR_CLASS);break;case"underline":b.classList.add(t.CURSOR_STYLE_UNDERLINE_CLASS);break;default:b.classList.add(t.CURSOR_STYLE_BLOCK_CLASS)}if(C.isBold()&&b.classList.add(t.BOLD_CLASS),C.isItalic()&&b.classList.add(t.ITALIC_CLASS),C.isDim()&&b.classList.add(t.DIM_CLASS),C.isInvisible()?b.textContent=o.WHITESPACE_CELL_CHAR:b.textContent=C.getChars()||o.WHITESPACE_CELL_CHAR,C.isUnderline()&&(b.classList.add(`${t.UNDERLINE_CLASS}-${C.extended.underlineStyle}`)," "===b.textContent&&(b.innerHTML=" "),!C.isUnderlineColorDefault()))if(C.isUnderlineColorRGB())b.style.textDecorationColor=`rgb(${u.AttributeData.toColorRGB(C.getUnderlineColor()).join(",")})`;else{let e=C.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&C.isBold()&&e<8&&(e+=8),b.style.textDecorationColor=this._colors.ansi[e].css}C.isStrikethrough()&&b.classList.add(t.STRIKETHROUGH_CLASS);let y=C.getFgColor(),w=C.getFgColorMode(),E=C.getBgColor(),L=C.getBgColorMode();const R=!!C.isInverse();if(R){const e=y;y=E,E=e;const t=w;w=L,L=t}let k,D,A=!1;this._decorationService.forEachDecorationAtCell(_,i,void 0,(e=>{"top"!==e.options.layer&&A||(e.backgroundColorRGB&&(L=50331648,E=e.backgroundColorRGB.rgba>>8&16777215,k=e.backgroundColorRGB),e.foregroundColorRGB&&(w=50331648,y=e.foregroundColorRGB.rgba>>8&16777215,D=e.foregroundColorRGB),A="top"===e.options.layer)}));const x=this._isCellInSelection(_,i);let B;switch(A||this._colors.selectionForeground&&x&&(w=50331648,y=this._colors.selectionForeground.rgba>>8&16777215,D=this._colors.selectionForeground),x&&(k=this._coreBrowserService.isFocused?this._colors.selectionBackgroundOpaque:this._colors.selectionInactiveBackgroundOpaque,A=!0),A&&b.classList.add("xterm-decoration-top"),L){case 16777216:case 33554432:B=this._colors.ansi[E],b.classList.add(`xterm-bg-${E}`);break;case 50331648:B=c.rgba.toColor(E>>16,E>>8&255,255&E),this._addStyle(b,`background-color:#${v((E>>>0).toString(16),"0",6)}`);break;default:R?(B=this._colors.foreground,b.classList.add(`xterm-bg-${n.INVERTED_DEFAULT_COLOR}`)):B=this._colors.background}switch(k||C.isDim()&&(k=c.color.multiplyOpacity(B,.5)),w){case 16777216:case 33554432:C.isBold()&&y<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(y+=8),this._applyMinimumContrast(b,B,this._colors.ansi[y],C,k,void 0)||b.classList.add(`xterm-fg-${y}`);break;case 50331648:const e=c.rgba.toColor(y>>16&255,y>>8&255,255&y);this._applyMinimumContrast(b,B,e,C,k,D)||this._addStyle(b,`color:#${v(y.toString(16),"0",6)}`);break;default:this._applyMinimumContrast(b,B,this._colors.foreground,C,k,void 0)||R&&b.classList.add(`xterm-fg-${n.INVERTED_DEFAULT_COLOR}`)}f.appendChild(b),_=m}return f}_applyMinimumContrast(e,t,i,s,r,n){if(1===this._optionsService.rawOptions.minimumContrastRatio||(0,_.excludeFromContrastRatioDemands)(s.getCode()))return!1;let o;return r||n||(o=this._colors.contrastCache.getColor(t.rgba,i.rgba)),void 0===o&&(o=c.color.ensureContrastRatio(r||t,n||i,this._optionsService.rawOptions.minimumContrastRatio),this._colors.contrastCache.setColor((r||t).rgba,(n||i).rgba,null!=o?o:null)),!!o&&(this._addStyle(e,`color:${o.css}`),!0)}_addStyle(e,t){e.setAttribute("style",`${e.getAttribute("style")||""}${t};`)}_isCellInSelection(e,t){const i=this._selectionStart,s=this._selectionEnd;return!(!i||!s)&&(this._columnSelectMode?i[0]<=s[0]?e>=i[0]&&t>=i[1]&&e=i[1]&&e>=s[0]&&t<=s[1]:t>i[1]&&t=i[0]&&e=i[0])}};function v(e,t,i){for(;e.length{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionModel=void 0,t.SelectionModel=class{constructor(e){this._bufferService=e,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?e%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)-1]:[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[e,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[Math.max(e,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){const e=this.selectionStart,t=this.selectionEnd;return!(!e||!t)&&(e[1]>t[1]||e[1]===t[1]&&e[0]>t[0])}onTrim(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharSizeService=void 0;const n=i(2585),o=i(8460);let a=class{constructor(e,t,i){this._optionsService=i,this.width=0,this.height=0,this._onCharSizeChange=new o.EventEmitter,this._measureStrategy=new h(e,t,this._optionsService)}get hasValidSize(){return this.width>0&&this.height>0}get onCharSizeChange(){return this._onCharSizeChange.event}measure(){const e=this._measureStrategy.measure();e.width===this.width&&e.height===this.height||(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())}};a=s([r(2,n.IOptionsService)],a),t.CharSizeService=a;class h{constructor(e,t,i){this._document=e,this._parentElement=t,this._optionsService=i,this._result={width:0,height:0},this._measureElement=this._document.createElement("span"),this._measureElement.classList.add("xterm-char-measure-element"),this._measureElement.textContent="W",this._measureElement.setAttribute("aria-hidden","true"),this._parentElement.appendChild(this._measureElement)}measure(){this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`;const e=this._measureElement.getBoundingClientRect();return 0!==e.width&&0!==e.height&&(this._result.width=e.width,this._result.height=Math.ceil(e.height)),this._result}}},4269:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharacterJoinerService=t.JoinedCellData=void 0;const n=i(3734),o=i(643),a=i(511),h=i(2585);class c extends n.AttributeData{constructor(e,t,i){super(),this.content=0,this.combinedData="",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=i}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.JoinedCellData=c;let l=class e{constructor(e){this._bufferService=e,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new a.CellData}register(e){const t={id:this._nextCharacterJoinerId++,handler:e};return this._characterJoiners.push(t),t.id}deregister(e){for(let t=0;t1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreBrowserService=void 0,t.CoreBrowserService=class{constructor(e,t){this._textarea=e,this.window=t}get dpr(){return this.window.devicePixelRatio}get isFocused(){return(this._textarea.getRootNode?this._textarea.getRootNode():this._textarea.ownerDocument).activeElement===this._textarea&&this._textarea.ownerDocument.hasFocus()}}},8934:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MouseService=void 0;const n=i(4725),o=i(9806);let a=class{constructor(e,t){this._renderService=e,this._charSizeService=t}getCoords(e,t,i,s,r){return(0,o.getCoords)(window,e,t,i,s,this._charSizeService.hasValidSize,this._renderService.dimensions.actualCellWidth,this._renderService.dimensions.actualCellHeight,r)}getMouseReportCoords(e,t){const i=(0,o.getCoordsRelativeToElement)(window,e,t);if(!(!this._charSizeService.hasValidSize||i[0]<0||i[1]<0||i[0]>=this._renderService.dimensions.canvasWidth||i[1]>=this._renderService.dimensions.canvasHeight))return{col:Math.floor(i[0]/this._renderService.dimensions.actualCellWidth),row:Math.floor(i[1]/this._renderService.dimensions.actualCellHeight),x:Math.floor(i[0]),y:Math.floor(i[1])}}};a=s([r(0,n.IRenderService),r(1,n.ICharSizeService)],a),t.MouseService=a},3230:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenderService=void 0;const n=i(6193),o=i(8460),a=i(844),h=i(5596),c=i(3656),l=i(2585),d=i(4725);let _=class extends a.Disposable{constructor(e,t,i,s,r,a,l,d){if(super(),this._renderer=e,this._rowCount=t,this._charSizeService=r,this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=new o.EventEmitter,this._onRenderedViewportChange=new o.EventEmitter,this._onRender=new o.EventEmitter,this._onRefreshRequest=new o.EventEmitter,this.register({dispose:()=>this._renderer.dispose()}),this._renderDebouncer=new n.RenderDebouncer(d.window,((e,t)=>this._renderRows(e,t))),this.register(this._renderDebouncer),this._screenDprMonitor=new h.ScreenDprMonitor(d.window),this._screenDprMonitor.setListener((()=>this.onDevicePixelRatioChange())),this.register(this._screenDprMonitor),this.register(l.onResize((()=>this._fullRefresh()))),this.register(l.buffers.onBufferActivate((()=>{var e;return null===(e=this._renderer)||void 0===e?void 0:e.clear()}))),this.register(s.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._charSizeService.onCharSizeChange((()=>this.onCharSizeChanged()))),this.register(a.onDecorationRegistered((()=>this._fullRefresh()))),this.register(a.onDecorationRemoved((()=>this._fullRefresh()))),this._renderer.onRequestRedraw((e=>this.refreshRows(e.start,e.end,!0))),this.register((0,c.addDisposableDomListener)(d.window,"resize",(()=>this.onDevicePixelRatioChange()))),"IntersectionObserver"in d.window){const e=new d.window.IntersectionObserver((e=>this._onIntersectionChange(e[e.length-1])),{threshold:0});e.observe(i),this.register({dispose:()=>e.disconnect()})}}get onDimensionsChange(){return this._onDimensionsChange.event}get onRenderedViewportChange(){return this._onRenderedViewportChange.event}get onRender(){return this._onRender.event}get onRefreshRequest(){return this._onRefreshRequest.event}get dimensions(){return this._renderer.dimensions}_onIntersectionChange(e){this._isPaused=void 0===e.isIntersecting?0===e.intersectionRatio:!e.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(e,t,i=!1){this._isPaused?this._needsFullRefresh=!0:(i||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(e,t,this._rowCount))}_renderRows(e,t){this._renderer.renderRows(e,t),this._needsSelectionRefresh&&(this._renderer.onSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:e,end:t}),this._onRender.fire({start:e,end:t}),this._isNextRenderRedrawOnly=!0}resize(e,t){this._rowCount=t,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.onOptionsChanged(),this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize()}_fireOnCanvasResize(){this._renderer.dimensions.canvasWidth===this._canvasWidth&&this._renderer.dimensions.canvasHeight===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.dimensions)}dispose(){super.dispose()}setRenderer(e){this._renderer.dispose(),this._renderer=e,this._renderer.onRequestRedraw((e=>this.refreshRows(e.start,e.end,!0))),this._needsSelectionRefresh=!0,this._fullRefresh()}addRefreshCallback(e){return this._renderDebouncer.addRefreshCallback(e)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){var e,t;null===(t=null===(e=this._renderer)||void 0===e?void 0:e.clearTextureAtlas)||void 0===t||t.call(e),this._fullRefresh()}setColors(e){this._renderer.setColors(e),this._fullRefresh()}onDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.onDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1)}onResize(e,t){this._renderer.onResize(e,t),this._fullRefresh()}onCharSizeChanged(){this._renderer.onCharSizeChanged()}onBlur(){this._renderer.onBlur()}onFocus(){this._renderer.onFocus()}onSelectionChanged(e,t,i){this._selectionState.start=e,this._selectionState.end=t,this._selectionState.columnSelectMode=i,this._renderer.onSelectionChanged(e,t,i)}onCursorMove(){this._renderer.onCursorMove()}clear(){this._renderer.clear()}};_=s([r(3,l.IOptionsService),r(4,d.ICharSizeService),r(5,l.IDecorationService),r(6,l.IBufferService),r(7,d.ICoreBrowserService)],_),t.RenderService=_},9312:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionService=void 0;const n=i(6114),o=i(456),a=i(511),h=i(8460),c=i(4725),l=i(2585),d=i(9806),_=i(9504),u=i(844),f=i(4841),v=String.fromCharCode(160),g=new RegExp(v,"g");let p=class extends u.Disposable{constructor(e,t,i,s,r,n,c,l,d){super(),this._element=e,this._screenElement=t,this._linkifier=i,this._bufferService=s,this._coreService=r,this._mouseService=n,this._optionsService=c,this._renderService=l,this._coreBrowserService=d,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new a.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new h.EventEmitter),this._onRedrawRequest=this.register(new h.EventEmitter),this._onSelectionChange=this.register(new h.EventEmitter),this._onRequestScrollLines=this.register(new h.EventEmitter),this._mouseMoveListener=e=>this._onMouseMove(e),this._mouseUpListener=e=>this._onMouseUp(e),this._coreService.onUserInput((()=>{this.hasSelection&&this.clearSelection()})),this._trimListener=this._bufferService.buffer.lines.onTrim((e=>this._onTrim(e))),this.register(this._bufferService.buffers.onBufferActivate((e=>this._onBufferActivate(e)))),this.enable(),this._model=new o.SelectionModel(this._bufferService),this._activeSelectionMode=0}get onLinuxMouseSelection(){return this._onLinuxMouseSelection.event}get onRequestRedraw(){return this._onRedrawRequest.event}get onSelectionChange(){return this._onSelectionChange.event}get onRequestScrollLines(){return this._onRequestScrollLines.event}dispose(){this._removeMouseDownListeners()}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!(!e||!t||e[0]===t[0]&&e[1]===t[1])}get selectionText(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return"";const i=this._bufferService.buffer,s=[];if(3===this._activeSelectionMode){if(e[0]===t[0])return"";const r=e[0]e.replace(g," "))).join(n.isWindows?"\r\n":"\n")}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._refresh()))),n.isLinux&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})}_isClickInSelection(e){const t=this._getMouseBufferCoords(e),i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!!(i&&s&&t)&&this._areCoordsInSelection(t,i,s)}isCellInSelection(e,t){const i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!(!i||!s)&&this._areCoordsInSelection([e,t],i,s)}_areCoordsInSelection(e,t,i){return e[1]>t[1]&&e[1]=t[0]&&e[0]=t[0]}_selectWordAtCursor(e,t){var i,s;const r=null===(s=null===(i=this._linkifier.currentLink)||void 0===i?void 0:i.link)||void 0===s?void 0:s.range;if(r)return this._model.selectionStart=[r.start.x-1,r.start.y-1],this._model.selectionStartLength=(0,f.getRangeLength)(r,this._bufferService.cols),this._model.selectionEnd=void 0,!0;const n=this._getMouseBufferCoords(e);return!!n&&(this._selectWordAt(n,t),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()}_onTrim(e){this._model.onTrim(e)&&this.refresh()}_getMouseBufferCoords(e){const t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t}_getMouseEventScrollAmount(e){let t=(0,d.getCoordsRelativeToElement)(this._coreBrowserService.window,e,this._screenElement)[1];const i=this._renderService.dimensions.canvasHeight;return t>=0&&t<=i?0:(t>i&&(t-=i),t=Math.min(Math.max(t,-50),50),t/=50,t/Math.abs(t)+Math.round(14*t))}shouldForceSelection(e){return n.isMac?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}onMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,(2!==e.button||!this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._onIncrementalClick(e):1===e.detail?this._onSingleClick(e):2===e.detail?this._onDoubleClick(e):3===e.detail&&this._onTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener("mouseup",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval((()=>this._dragScroll()),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_onIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_onSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;const t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&0===t.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}_onDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_onTripleClick(e){const t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))}shouldColumnSelect(e){return e.altKey&&!(n.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_onMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;const t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd)return void this.refresh(!0);2===this._activeSelectionMode?this._model.selectionEnd[1]0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));const i=this._bufferService.buffer;if(this._model.selectionEnd[1]0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_onMouseUp(e){const t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<500&&e.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){const t=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(t&&void 0!==t[0]&&void 0!==t[1]){const e=(0,_.moveToCellSequence)(t[0]-1,t[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(e,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd,i=!(!e||!t||e[0]===t[0]&&e[1]===t[1]);i?e&&t&&(this._oldSelectionStart&&this._oldSelectionEnd&&e[0]===this._oldSelectionStart[0]&&e[1]===this._oldSelectionStart[1]&&t[0]===this._oldSelectionEnd[0]&&t[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(e,t,i)):this._oldHasSelection&&this._fireOnSelectionChange(e,t,i)}_fireOnSelectionChange(e,t,i){this._oldSelectionStart=e,this._oldSelectionEnd=t,this._oldHasSelection=i,this._onSelectionChange.fire()}_onBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim((e=>this._onTrim(e)))}_convertViewportColToCharacterIndex(e,t){let i=t[0];for(let s=0;t[0]>=s;s++){const r=e.loadCell(s,this._workCell).getChars().length;0===this._workCell.getWidth()?i--:r>1&&t[0]!==s&&(i+=r-1)}return i}setSelection(e,t,i){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=i,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,t,i=!0,s=!0){if(e[0]>=this._bufferService.cols)return;const r=this._bufferService.buffer,n=r.lines.get(e[1]);if(!n)return;const o=r.translateBufferLineToString(e[1],!1);let a=this._convertViewportColToCharacterIndex(n,e),h=a;const c=e[0]-a;let l=0,d=0,_=0,u=0;if(" "===o.charAt(a)){for(;a>0&&" "===o.charAt(a-1);)a--;for(;h1&&(u+=s-1,h+=s-1);t>0&&a>0&&!this._isCharWordSeparator(n.loadCell(t-1,this._workCell));){n.loadCell(t-1,this._workCell);const e=this._workCell.getChars().length;0===this._workCell.getWidth()?(l++,t--):e>1&&(_+=e-1,a-=e-1),a--,t--}for(;i1&&(u+=e-1,h+=e-1),h++,i++}}h++;let f=a+c-l+_,v=Math.min(this._bufferService.cols,h-a+l+d-_-u);if(t||""!==o.slice(a,h).trim()){if(i&&0===f&&32!==n.getCodePoint(0)){const t=r.lines.get(e[1]-1);if(t&&n.isWrapped&&32!==t.getCodePoint(this._bufferService.cols-1)){const t=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(t){const e=this._bufferService.cols-t.start;f-=e,v+=e}}}if(s&&f+v===this._bufferService.cols&&32!==n.getCodePoint(this._bufferService.cols-1)){const t=r.lines.get(e[1]+1);if((null==t?void 0:t.isWrapped)&&32!==t.getCodePoint(0)){const t=this._getWordAt([0,e[1]+1],!1,!1,!0);t&&(v+=t.length)}}return{start:f,length:v}}}_selectWordAt(e,t){const i=this._getWordAt(e,t);if(i){for(;i.start<0;)i.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[i.start,e[1]],this._model.selectionStartLength=i.length}}_selectToWordAt(e){const t=this._getWordAt(e,!0);if(t){let i=e[1];for(;t.start<0;)t.start+=this._bufferService.cols,i--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,i++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,i]}}_isCharWordSeparator(e){return 0!==e.getWidth()&&this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){const t=this._bufferService.buffer.getWrappedRangeForLine(e),i={start:{x:0,y:t.first},end:{x:this._bufferService.cols-1,y:t.last}};this._model.selectionStart=[0,t.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,f.getRangeLength)(i,this._bufferService.cols)}};p=s([r(3,l.IBufferService),r(4,l.ICoreService),r(5,c.IMouseService),r(6,l.IOptionsService),r(7,c.IRenderService),r(8,c.ICoreBrowserService)],p),t.SelectionService=p},4725:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ICharacterJoinerService=t.ISelectionService=t.IRenderService=t.IMouseService=t.ICoreBrowserService=t.ICharSizeService=void 0;const s=i(8343);t.ICharSizeService=(0,s.createDecorator)("CharSizeService"),t.ICoreBrowserService=(0,s.createDecorator)("CoreBrowserService"),t.IMouseService=(0,s.createDecorator)("MouseService"),t.IRenderService=(0,s.createDecorator)("RenderService"),t.ISelectionService=(0,s.createDecorator)("SelectionService"),t.ICharacterJoinerService=(0,s.createDecorator)("CharacterJoinerService")},6349:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CircularList=void 0;const s=i(8460);t.CircularList=class{constructor(e){this._maxLength=e,this.onDeleteEmitter=new s.EventEmitter,this.onInsertEmitter=new s.EventEmitter,this.onTrimEmitter=new s.EventEmitter,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get onDelete(){return this.onDeleteEmitter.event}get onInsert(){return this.onInsertEmitter.event}get onTrim(){return this.onTrimEmitter.event}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;const t=new Array(e);for(let i=0;ithis._length)for(let t=this._length;t=e;t--)this._array[this._getCyclicIndex(t+i.length)]=this._array[this._getCyclicIndex(t)];for(let t=0;tthis._maxLength){const e=this._length+i.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=i.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,t,i){if(!(t<=0)){if(e<0||e>=this._length)throw new Error("start argument out of range");if(e+i<0)throw new Error("Cannot shift elements in list beyond index 0");if(i>0){for(let s=t-1;s>=0;s--)this.set(e+s+i,this.get(e+s));const s=e+t+i-this._length;if(s>0)for(this._length+=s;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let s=0;s{Object.defineProperty(t,"__esModule",{value:!0}),t.clone=void 0,t.clone=function e(t,i=5){if("object"!=typeof t)return t;const s=Array.isArray(t)?[]:{};for(const r in t)s[r]=i<=1?t[r]:t[r]&&e(t[r],i-1);return s}},8055:(e,t)=>{var i,s,r;function n(e){const t=e.toString(16);return t.length<2?"0"+t:t}function o(e,t){return e>>0}}(i=t.channels||(t.channels={})),function(e){function t(e,t){const s=Math.round(255*t),[n,o,a]=r.toChannels(e.rgba);return{css:i.toCss(n,o,a,s),rgba:i.toRgba(n,o,a,s)}}e.blend=function(e,t){const s=(255&t.rgba)/255;if(1===s)return{css:t.css,rgba:t.rgba};const r=t.rgba>>24&255,n=t.rgba>>16&255,o=t.rgba>>8&255,a=e.rgba>>24&255,h=e.rgba>>16&255,c=e.rgba>>8&255,l=a+Math.round((r-a)*s),d=h+Math.round((n-h)*s),_=c+Math.round((o-c)*s);return{css:i.toCss(l,d,_),rgba:i.toRgba(l,d,_)}},e.isOpaque=function(e){return 255==(255&e.rgba)},e.ensureContrastRatio=function(e,t,i){const s=r.ensureContrastRatio(e.rgba,t.rgba,i);if(s)return r.toColor(s>>24&255,s>>16&255,s>>8&255)},e.opaque=function(e){const t=(255|e.rgba)>>>0,[s,n,o]=r.toChannels(t);return{css:i.toCss(s,n,o),rgba:t}},e.opacity=t,e.multiplyOpacity=function(e,i){return t(e,(255&e.rgba)*i/255)},e.toColorRGB=function(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}}(t.color||(t.color={})),(t.css||(t.css={})).toColor=function(e){if(e.match(/#[0-9a-f]{3,8}/i))switch(e.length){case 4:{const t=parseInt(e.slice(1,2).repeat(2),16),i=parseInt(e.slice(2,3).repeat(2),16),s=parseInt(e.slice(3,4).repeat(2),16);return r.toColor(t,i,s)}case 5:{const t=parseInt(e.slice(1,2).repeat(2),16),i=parseInt(e.slice(2,3).repeat(2),16),s=parseInt(e.slice(3,4).repeat(2),16),n=parseInt(e.slice(4,5).repeat(2),16);return r.toColor(t,i,s,n)}case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}const t=e.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(t){const e=parseInt(t[1]),i=parseInt(t[2]),s=parseInt(t[3]),n=Math.round(255*(void 0===t[5]?1:parseFloat(t[5])));return r.toColor(e,i,s,n)}throw new Error("css.toColor: Unsupported css format")},function(e){function t(e,t,i){const s=e/255,r=t/255,n=i/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))}e.relativeLuminance=function(e){return t(e>>16&255,e>>8&255,255&e)},e.relativeLuminance2=t}(s=t.rgb||(t.rgb={})),function(e){function t(e,t,i){const r=e>>24&255,n=e>>16&255,a=e>>8&255;let h=t>>24&255,c=t>>16&255,l=t>>8&255,d=o(s.relativeLuminance2(h,c,l),s.relativeLuminance2(r,n,a));for(;d0||c>0||l>0);)h-=Math.max(0,Math.ceil(.1*h)),c-=Math.max(0,Math.ceil(.1*c)),l-=Math.max(0,Math.ceil(.1*l)),d=o(s.relativeLuminance2(h,c,l),s.relativeLuminance2(r,n,a));return(h<<24|c<<16|l<<8|255)>>>0}function r(e,t,i){const r=e>>24&255,n=e>>16&255,a=e>>8&255;let h=t>>24&255,c=t>>16&255,l=t>>8&255,d=o(s.relativeLuminance2(h,c,l),s.relativeLuminance2(r,n,a));for(;d>>0}e.ensureContrastRatio=function(e,i,n){const a=s.relativeLuminance(e>>8),h=s.relativeLuminance(i>>8);if(o(a,h)>8));if(co(a,s.relativeLuminance(t>>8))?h:t}return h}const c=r(e,i,n),l=o(a,s.relativeLuminance(c>>8));if(lo(a,s.relativeLuminance(r>>8))?c:r}return c}},e.reduceLuminance=t,e.increaseLuminance=r,e.toChannels=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},e.toColor=function(e,t,s,r){return{css:i.toCss(e,t,s,r),rgba:i.toRgba(e,t,s,r)}}}(r=t.rgba||(t.rgba={})),t.toPaddedHex=n,t.contrastRatio=o},8969:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreTerminal=void 0;const s=i(844),r=i(2585),n=i(4348),o=i(7866),a=i(744),h=i(7302),c=i(6975),l=i(8460),d=i(1753),_=i(3730),u=i(1480),f=i(7994),v=i(9282),g=i(5435),p=i(5981),S=i(2660);let m=!1;class C extends s.Disposable{constructor(e){super(),this._onBinary=new l.EventEmitter,this._onData=new l.EventEmitter,this._onLineFeed=new l.EventEmitter,this._onResize=new l.EventEmitter,this._onScroll=new l.EventEmitter,this._onWriteParsed=new l.EventEmitter,this._instantiationService=new n.InstantiationService,this.optionsService=new h.OptionsService(e),this._instantiationService.setService(r.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(a.BufferService)),this._instantiationService.setService(r.IBufferService,this._bufferService),this._logService=this._instantiationService.createInstance(o.LogService),this._instantiationService.setService(r.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(c.CoreService,(()=>this.scrollToBottom()))),this._instantiationService.setService(r.ICoreService,this.coreService),this.coreMouseService=this._instantiationService.createInstance(d.CoreMouseService),this._instantiationService.setService(r.ICoreMouseService,this.coreMouseService),this._dirtyRowService=this._instantiationService.createInstance(_.DirtyRowService),this._instantiationService.setService(r.IDirtyRowService,this._dirtyRowService),this.unicodeService=this._instantiationService.createInstance(u.UnicodeService),this._instantiationService.setService(r.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(f.CharsetService),this._instantiationService.setService(r.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(S.OscLinkService),this._instantiationService.setService(r.IOscLinkService,this._oscLinkService),this._inputHandler=new g.InputHandler(this._bufferService,this._charsetService,this.coreService,this._dirtyRowService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService),this.register((0,l.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,l.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,l.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,l.forwardEvent)(this.coreService.onBinary,this._onBinary)),this.register(this.optionsService.onOptionChange((e=>this._updateOptions(e)))),this.register(this._bufferService.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._dirtyRowService.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this.register(this._inputHandler.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._dirtyRowService.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this._writeBuffer=new p.WriteBuffer(((e,t)=>this._inputHandler.parse(e,t))),this.register((0,l.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed))}get onBinary(){return this._onBinary.event}get onData(){return this._onData.event}get onLineFeed(){return this._onLineFeed.event}get onResize(){return this._onResize.event}get onWriteParsed(){return this._onWriteParsed.event}get onScroll(){return this._onScrollApi||(this._onScrollApi=new l.EventEmitter,this.register(this._onScroll.event((e=>{var t;null===(t=this._onScrollApi)||void 0===t||t.fire(e.position)})))),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(const t in e)this.optionsService.options[t]=e[t]}dispose(){var e;this._isDisposed||(super.dispose(),null===(e=this._windowsMode)||void 0===e||e.dispose(),this._windowsMode=void 0)}write(e,t){this._writeBuffer.write(e,t)}writeSync(e,t){this._logService.logLevel<=r.LogLevelEnum.WARN&&!m&&(this._logService.warn("writeSync is unreliable and will be removed soon."),m=!0),this._writeBuffer.writeSync(e,t)}resize(e,t){isNaN(e)||isNaN(t)||(e=Math.max(e,a.MINIMUM_COLS),t=Math.max(t,a.MINIMUM_ROWS),this._bufferService.resize(e,t))}scroll(e,t=!1){this._bufferService.scroll(e,t)}scrollLines(e,t,i){this._bufferService.scrollLines(e,t,i)}scrollPages(e){this._bufferService.scrollPages(e)}scrollToTop(){this._bufferService.scrollToTop()}scrollToBottom(){this._bufferService.scrollToBottom()}scrollToLine(e){this._bufferService.scrollToLine(e)}registerEscHandler(e,t){return this._inputHandler.registerEscHandler(e,t)}registerDcsHandler(e,t){return this._inputHandler.registerDcsHandler(e,t)}registerCsiHandler(e,t){return this._inputHandler.registerCsiHandler(e,t)}registerOscHandler(e,t){return this._inputHandler.registerOscHandler(e,t)}_setup(){this.optionsService.rawOptions.windowsMode&&this._enableWindowsMode()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_updateOptions(e){var t;switch(e){case"scrollback":this.buffers.resize(this.cols,this.rows);break;case"windowsMode":this.optionsService.rawOptions.windowsMode?this._enableWindowsMode():(null===(t=this._windowsMode)||void 0===t||t.dispose(),this._windowsMode=void 0)}}_enableWindowsMode(){if(!this._windowsMode){const e=[];e.push(this.onLineFeed(v.updateWindowsModeWrappedState.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:"H"},(()=>((0,v.updateWindowsModeWrappedState)(this._bufferService),!1)))),this._windowsMode={dispose:()=>{for(const t of e)t.dispose()}}}}}t.CoreTerminal=C},8460:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;tt.fire(e)))}},5435:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InputHandler=t.WindowsOptionsReportType=void 0;const s=i(2584),r=i(7116),n=i(2015),o=i(844),a=i(482),h=i(8437),c=i(8460),l=i(643),d=i(511),_=i(3734),u=i(2585),f=i(6242),v=i(6351),g=i(5941),p={"(":0,")":1,"*":2,"+":3,"-":1,".":2},S=131072;function m(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var C;!function(e){e[e.GET_WIN_SIZE_PIXELS=0]="GET_WIN_SIZE_PIXELS",e[e.GET_CELL_SIZE_PIXELS=1]="GET_CELL_SIZE_PIXELS"}(C=t.WindowsOptionsReportType||(t.WindowsOptionsReportType={}));class b extends o.Disposable{constructor(e,t,i,o,l,_,u,g,p,S=new n.EscapeSequenceParser){super(),this._bufferService=e,this._charsetService=t,this._coreService=i,this._dirtyRowService=o,this._logService=l,this._optionsService=_,this._oscLinkService=u,this._coreMouseService=g,this._unicodeService=p,this._parser=S,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new a.StringToUtf32,this._utf8Decoder=new a.Utf8ToUtf32,this._workCell=new d.CellData,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=h.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=h.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=new c.EventEmitter,this._onRequestRefreshRows=new c.EventEmitter,this._onRequestReset=new c.EventEmitter,this._onRequestSendFocus=new c.EventEmitter,this._onRequestSyncScrollBar=new c.EventEmitter,this._onRequestWindowsOptionsReport=new c.EventEmitter,this._onA11yChar=new c.EventEmitter,this._onA11yTab=new c.EventEmitter,this._onCursorMove=new c.EventEmitter,this._onLineFeed=new c.EventEmitter,this._onScroll=new c.EventEmitter,this._onTitleChange=new c.EventEmitter,this._onColor=new c.EventEmitter,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this.register(this._parser),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._parser.setCsiHandlerFallback(((e,t)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(e),params:t.toArray()})})),this._parser.setEscHandlerFallback((e=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(e)})})),this._parser.setExecuteHandlerFallback((e=>{this._logService.debug("Unknown EXECUTE code: ",{code:e})})),this._parser.setOscHandlerFallback(((e,t,i)=>{this._logService.debug("Unknown OSC code: ",{identifier:e,action:t,data:i})})),this._parser.setDcsHandlerFallback(((e,t,i)=>{"HOOK"===t&&(i=i.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(e),action:t,payload:i})})),this._parser.setPrintHandler(((e,t,i)=>this.print(e,t,i))),this._parser.registerCsiHandler({final:"@"},(e=>this.insertChars(e))),this._parser.registerCsiHandler({intermediates:" ",final:"@"},(e=>this.scrollLeft(e))),this._parser.registerCsiHandler({final:"A"},(e=>this.cursorUp(e))),this._parser.registerCsiHandler({intermediates:" ",final:"A"},(e=>this.scrollRight(e))),this._parser.registerCsiHandler({final:"B"},(e=>this.cursorDown(e))),this._parser.registerCsiHandler({final:"C"},(e=>this.cursorForward(e))),this._parser.registerCsiHandler({final:"D"},(e=>this.cursorBackward(e))),this._parser.registerCsiHandler({final:"E"},(e=>this.cursorNextLine(e))),this._parser.registerCsiHandler({final:"F"},(e=>this.cursorPrecedingLine(e))),this._parser.registerCsiHandler({final:"G"},(e=>this.cursorCharAbsolute(e))),this._parser.registerCsiHandler({final:"H"},(e=>this.cursorPosition(e))),this._parser.registerCsiHandler({final:"I"},(e=>this.cursorForwardTab(e))),this._parser.registerCsiHandler({final:"J"},(e=>this.eraseInDisplay(e,!1))),this._parser.registerCsiHandler({prefix:"?",final:"J"},(e=>this.eraseInDisplay(e,!0))),this._parser.registerCsiHandler({final:"K"},(e=>this.eraseInLine(e,!1))),this._parser.registerCsiHandler({prefix:"?",final:"K"},(e=>this.eraseInLine(e,!0))),this._parser.registerCsiHandler({final:"L"},(e=>this.insertLines(e))),this._parser.registerCsiHandler({final:"M"},(e=>this.deleteLines(e))),this._parser.registerCsiHandler({final:"P"},(e=>this.deleteChars(e))),this._parser.registerCsiHandler({final:"S"},(e=>this.scrollUp(e))),this._parser.registerCsiHandler({final:"T"},(e=>this.scrollDown(e))),this._parser.registerCsiHandler({final:"X"},(e=>this.eraseChars(e))),this._parser.registerCsiHandler({final:"Z"},(e=>this.cursorBackwardTab(e))),this._parser.registerCsiHandler({final:"`"},(e=>this.charPosAbsolute(e))),this._parser.registerCsiHandler({final:"a"},(e=>this.hPositionRelative(e))),this._parser.registerCsiHandler({final:"b"},(e=>this.repeatPrecedingCharacter(e))),this._parser.registerCsiHandler({final:"c"},(e=>this.sendDeviceAttributesPrimary(e))),this._parser.registerCsiHandler({prefix:">",final:"c"},(e=>this.sendDeviceAttributesSecondary(e))),this._parser.registerCsiHandler({final:"d"},(e=>this.linePosAbsolute(e))),this._parser.registerCsiHandler({final:"e"},(e=>this.vPositionRelative(e))),this._parser.registerCsiHandler({final:"f"},(e=>this.hVPosition(e))),this._parser.registerCsiHandler({final:"g"},(e=>this.tabClear(e))),this._parser.registerCsiHandler({final:"h"},(e=>this.setMode(e))),this._parser.registerCsiHandler({prefix:"?",final:"h"},(e=>this.setModePrivate(e))),this._parser.registerCsiHandler({final:"l"},(e=>this.resetMode(e))),this._parser.registerCsiHandler({prefix:"?",final:"l"},(e=>this.resetModePrivate(e))),this._parser.registerCsiHandler({final:"m"},(e=>this.charAttributes(e))),this._parser.registerCsiHandler({final:"n"},(e=>this.deviceStatus(e))),this._parser.registerCsiHandler({prefix:"?",final:"n"},(e=>this.deviceStatusPrivate(e))),this._parser.registerCsiHandler({intermediates:"!",final:"p"},(e=>this.softReset(e))),this._parser.registerCsiHandler({intermediates:" ",final:"q"},(e=>this.setCursorStyle(e))),this._parser.registerCsiHandler({final:"r"},(e=>this.setScrollRegion(e))),this._parser.registerCsiHandler({final:"s"},(e=>this.saveCursor(e))),this._parser.registerCsiHandler({final:"t"},(e=>this.windowOptions(e))),this._parser.registerCsiHandler({final:"u"},(e=>this.restoreCursor(e))),this._parser.registerCsiHandler({intermediates:"'",final:"}"},(e=>this.insertColumns(e))),this._parser.registerCsiHandler({intermediates:"'",final:"~"},(e=>this.deleteColumns(e))),this._parser.registerCsiHandler({intermediates:'"',final:"q"},(e=>this.selectProtected(e))),this._parser.registerCsiHandler({intermediates:"$",final:"p"},(e=>this.requestMode(e,!0))),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},(e=>this.requestMode(e,!1))),this._parser.setExecuteHandler(s.C0.BEL,(()=>this.bell())),this._parser.setExecuteHandler(s.C0.LF,(()=>this.lineFeed())),this._parser.setExecuteHandler(s.C0.VT,(()=>this.lineFeed())),this._parser.setExecuteHandler(s.C0.FF,(()=>this.lineFeed())),this._parser.setExecuteHandler(s.C0.CR,(()=>this.carriageReturn())),this._parser.setExecuteHandler(s.C0.BS,(()=>this.backspace())),this._parser.setExecuteHandler(s.C0.HT,(()=>this.tab())),this._parser.setExecuteHandler(s.C0.SO,(()=>this.shiftOut())),this._parser.setExecuteHandler(s.C0.SI,(()=>this.shiftIn())),this._parser.setExecuteHandler(s.C1.IND,(()=>this.index())),this._parser.setExecuteHandler(s.C1.NEL,(()=>this.nextLine())),this._parser.setExecuteHandler(s.C1.HTS,(()=>this.tabSet())),this._parser.registerOscHandler(0,new f.OscHandler((e=>(this.setTitle(e),this.setIconName(e),!0)))),this._parser.registerOscHandler(1,new f.OscHandler((e=>this.setIconName(e)))),this._parser.registerOscHandler(2,new f.OscHandler((e=>this.setTitle(e)))),this._parser.registerOscHandler(4,new f.OscHandler((e=>this.setOrReportIndexedColor(e)))),this._parser.registerOscHandler(8,new f.OscHandler((e=>this.setHyperlink(e)))),this._parser.registerOscHandler(10,new f.OscHandler((e=>this.setOrReportFgColor(e)))),this._parser.registerOscHandler(11,new f.OscHandler((e=>this.setOrReportBgColor(e)))),this._parser.registerOscHandler(12,new f.OscHandler((e=>this.setOrReportCursorColor(e)))),this._parser.registerOscHandler(104,new f.OscHandler((e=>this.restoreIndexedColor(e)))),this._parser.registerOscHandler(110,new f.OscHandler((e=>this.restoreFgColor(e)))),this._parser.registerOscHandler(111,new f.OscHandler((e=>this.restoreBgColor(e)))),this._parser.registerOscHandler(112,new f.OscHandler((e=>this.restoreCursorColor(e)))),this._parser.registerEscHandler({final:"7"},(()=>this.saveCursor())),this._parser.registerEscHandler({final:"8"},(()=>this.restoreCursor())),this._parser.registerEscHandler({final:"D"},(()=>this.index())),this._parser.registerEscHandler({final:"E"},(()=>this.nextLine())),this._parser.registerEscHandler({final:"H"},(()=>this.tabSet())),this._parser.registerEscHandler({final:"M"},(()=>this.reverseIndex())),this._parser.registerEscHandler({final:"="},(()=>this.keypadApplicationMode())),this._parser.registerEscHandler({final:">"},(()=>this.keypadNumericMode())),this._parser.registerEscHandler({final:"c"},(()=>this.fullReset())),this._parser.registerEscHandler({final:"n"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:"o"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:"|"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:"}"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:"~"},(()=>this.setgLevel(1))),this._parser.registerEscHandler({intermediates:"%",final:"@"},(()=>this.selectDefaultCharset())),this._parser.registerEscHandler({intermediates:"%",final:"G"},(()=>this.selectDefaultCharset()));for(const e in r.CHARSETS)this._parser.registerEscHandler({intermediates:"(",final:e},(()=>this.selectCharset("("+e))),this._parser.registerEscHandler({intermediates:")",final:e},(()=>this.selectCharset(")"+e))),this._parser.registerEscHandler({intermediates:"*",final:e},(()=>this.selectCharset("*"+e))),this._parser.registerEscHandler({intermediates:"+",final:e},(()=>this.selectCharset("+"+e))),this._parser.registerEscHandler({intermediates:"-",final:e},(()=>this.selectCharset("-"+e))),this._parser.registerEscHandler({intermediates:".",final:e},(()=>this.selectCharset("."+e))),this._parser.registerEscHandler({intermediates:"/",final:e},(()=>this.selectCharset("/"+e)));this._parser.registerEscHandler({intermediates:"#",final:"8"},(()=>this.screenAlignmentPattern())),this._parser.setErrorHandler((e=>(this._logService.error("Parsing error: ",e),e))),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new v.DcsHandler(((e,t)=>this.requestStatusString(e,t))))}getAttrData(){return this._curAttrData}get onRequestBell(){return this._onRequestBell.event}get onRequestRefreshRows(){return this._onRequestRefreshRows.event}get onRequestReset(){return this._onRequestReset.event}get onRequestSendFocus(){return this._onRequestSendFocus.event}get onRequestSyncScrollBar(){return this._onRequestSyncScrollBar.event}get onRequestWindowsOptionsReport(){return this._onRequestWindowsOptionsReport.event}get onA11yChar(){return this._onA11yChar.event}get onA11yTab(){return this._onA11yTab.event}get onCursorMove(){return this._onCursorMove.event}get onLineFeed(){return this._onLineFeed.event}get onScroll(){return this._onScroll.event}get onTitleChange(){return this._onTitleChange.event}get onColor(){return this._onColor.event}dispose(){super.dispose()}_preserveStack(e,t,i,s){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=i,this._parseStack.position=s}_logSlowResolvingAsync(e){this._logService.logLevel<=u.LogLevelEnum.WARN&&Promise.race([e,new Promise(((e,t)=>setTimeout((()=>t("#SLOW_TIMEOUT")),5e3)))]).catch((e=>{if("#SLOW_TIMEOUT"!==e)throw e;console.warn("async parser handler taking longer than 5000 ms")}))}parse(e,t){let i,s=this._activeBuffer.x,r=this._activeBuffer.y,n=0;const o=this._parseStack.paused;if(o){if(i=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(i),i;s=this._parseStack.cursorStartX,r=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>S&&(n=this._parseStack.position+S)}if(this._logService.logLevel<=u.LogLevelEnum.DEBUG&&this._logService.debug("parsing data"+("string"==typeof e?` "${e}"`:` "${Array.prototype.map.call(e,(e=>String.fromCharCode(e))).join("")}"`),"string"==typeof e?e.split("").map((e=>e.charCodeAt(0))):e),this._parseBuffer.lengthS)for(let t=n;t0&&2===u.getWidth(this._activeBuffer.x-1)&&u.setCellFromCodePoint(this._activeBuffer.x-1,0,1,_.fg,_.bg,_.extended);for(let f=t;f=h)if(c){for(;this._activeBuffer.x=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),u=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)}else if(this._activeBuffer.x=h-1,2===r)continue;if(d&&(u.insertCells(this._activeBuffer.x,r,this._activeBuffer.getNullCell(_),_),2===u.getWidth(h-1)&&u.setCellFromCodePoint(h-1,l.NULL_CELL_CODE,l.NULL_CELL_WIDTH,_.fg,_.bg,_.extended)),u.setCellFromCodePoint(this._activeBuffer.x++,s,r,_.fg,_.bg,_.extended),r>0)for(;--r;)u.setCellFromCodePoint(this._activeBuffer.x++,0,0,_.fg,_.bg,_.extended)}else u.getWidth(this._activeBuffer.x-1)?u.addCodepointToCell(this._activeBuffer.x-1,s):u.addCodepointToCell(this._activeBuffer.x-2,s)}i-t>0&&(u.loadCell(this._activeBuffer.x-1,this._workCell),2===this._workCell.getWidth()||this._workCell.getCode()>65535?this._parser.precedingCodepoint=0:this._workCell.isCombined()?this._parser.precedingCodepoint=this._workCell.getChars().charCodeAt(0):this._parser.precedingCodepoint=this._workCell.content),this._activeBuffer.x0&&0===u.getWidth(this._activeBuffer.x)&&!u.hasContent(this._activeBuffer.x)&&u.setCellFromCodePoint(this._activeBuffer.x,0,1,_.fg,_.bg,_.extended),this._dirtyRowService.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return"t"!==e.final||e.prefix||e.intermediates?this._parser.registerCsiHandler(e,t):this._parser.registerCsiHandler(e,(e=>!m(e.params[0],this._optionsService.rawOptions.windowOptions)||t(e)))}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new v.DcsHandler(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new f.OscHandler(t))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowService.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowService.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){var e;if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(0===this._activeBuffer.x&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&(null===(e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y))||void 0===e?void 0:e.isWrapped)){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;const e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;const e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowService.markDirty(this._activeBuffer.y)}_setCursor(e,t){this._dirtyRowService.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+t):(this._activeBuffer.x=e,this._activeBuffer.y=t),this._restrictCursor(),this._dirtyRowService.markDirty(this._activeBuffer.y)}_moveCursor(e,t){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+t)}cursorUp(e){const t=this._activeBuffer.y-this._activeBuffer.scrollTop;return t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){const t=this._activeBuffer.scrollBottom-this._activeBuffer.y;return t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){const t=e.params[0];return 0===t?delete this._activeBuffer.tabs[this._activeBuffer.x]:3===t&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){const t=e.params[0];return 1===t&&(this._curAttrData.bg|=536870912),2!==t&&0!==t||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,t,i,s=!1,r=!1){const n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.replaceCells(t,i,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData(),r),s&&(n.isWrapped=!1)}_resetBufferLine(e,t=!1){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),t),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),i.isWrapped=!1}eraseInDisplay(e,t=!1){let i;switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:for(i=this._activeBuffer.y,this._dirtyRowService.markDirty(i),this._eraseInBufferLine(i++,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);i=this._bufferService.cols&&(this._activeBuffer.lines.get(i+1).isWrapped=!1);i--;)this._resetBufferLine(i,t);this._dirtyRowService.markDirty(0);break;case 2:for(i=this._bufferService.rows,this._dirtyRowService.markDirty(i-1);i--;)this._resetBufferLine(i,t);this._dirtyRowService.markDirty(0);break;case 3:const e=this._activeBuffer.lines.length-this._bufferService.rows;e>0&&(this._activeBuffer.lines.trimStart(e),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-e,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-e,0),this._onScroll.fire(0))}return!0}eraseInLine(e,t=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,t);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,t)}return this._dirtyRowService.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.y0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(s.C0.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(s.C0.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(s.C0.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(s.C0.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(e.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(s.C0.ESC+"[>83;40003;0c")),!0}_is(e){return 0===(this._optionsService.rawOptions.termName+"").indexOf(e)}setMode(e){for(let t=0;te?1:2,u=e.params[0];return f=u,v=t?2===u?3:4===u?_(o.modes.insertMode):12===u?4:20===u?_(d.convertEol):0:1===u?_(i.applicationCursorKeys):3===u?d.windowOptions.setWinLines?80===h?2:132===h?1:0:0:6===u?_(i.origin):7===u?_(i.wraparound):8===u?3:9===u?_("X10"===r):12===u?_(d.cursorBlink):25===u?_(!o.isCursorHidden):45===u?_(i.reverseWraparound):66===u?_(i.applicationKeypad):1e3===u?_("VT200"===r):1002===u?_("DRAG"===r):1003===u?_("ANY"===r):1004===u?_(i.sendFocus):1005===u?4:1006===u?_("SGR"===n):1015===u?4:1016===u?_("SGR_PIXELS"===n):1048===u?1:47===u||1047===u||1049===u?_(c===l):2004===u?_(i.bracketedPasteMode):0,o.triggerDataEvent(`${s.C0.ESC}[${t?"":"?"}${f};${v}$y`),!0;var f,v}_updateAttrColor(e,t,i,s,r){return 2===t?(e|=50331648,e&=-16777216,e|=_.AttributeData.fromColorRGB([i,s,r])):5===t&&(e&=-50331904,e|=33554432|255&i),e}_extractColor(e,t,i){const s=[0,0,-1,0,0,0];let r=0,n=0;do{if(s[n+r]=e.params[t+n],e.hasSubParams(t+n)){const i=e.getSubParams(t+n);let o=0;do{5===s[1]&&(r=1),s[n+o+1+r]=i[o]}while(++o=2||2===s[1]&&n+r>=5)break;s[1]&&(r=1)}while(++n+t5)&&(e=1),t.extended.underlineStyle=e,t.fg|=268435456,0===e&&(t.fg&=-268435457),t.updateExtended()}charAttributes(e){if(1===e.length&&0===e.params[0])return this._curAttrData.fg=h.DEFAULT_ATTR_DATA.fg,this._curAttrData.bg=h.DEFAULT_ATTR_DATA.bg,!0;const t=e.length;let i;const s=this._curAttrData;for(let r=0;r=30&&i<=37?(s.fg&=-50331904,s.fg|=16777216|i-30):i>=40&&i<=47?(s.bg&=-50331904,s.bg|=16777216|i-40):i>=90&&i<=97?(s.fg&=-50331904,s.fg|=16777224|i-90):i>=100&&i<=107?(s.bg&=-50331904,s.bg|=16777224|i-100):0===i?(s.fg=h.DEFAULT_ATTR_DATA.fg,s.bg=h.DEFAULT_ATTR_DATA.bg):1===i?s.fg|=134217728:3===i?s.bg|=67108864:4===i?(s.fg|=268435456,this._processUnderline(e.hasSubParams(r)?e.getSubParams(r)[0]:1,s)):5===i?s.fg|=536870912:7===i?s.fg|=67108864:8===i?s.fg|=1073741824:9===i?s.fg|=2147483648:2===i?s.bg|=134217728:21===i?this._processUnderline(2,s):22===i?(s.fg&=-134217729,s.bg&=-134217729):23===i?s.bg&=-67108865:24===i?(s.fg&=-268435457,this._processUnderline(0,s)):25===i?s.fg&=-536870913:27===i?s.fg&=-67108865:28===i?s.fg&=-1073741825:29===i?s.fg&=2147483647:39===i?(s.fg&=-67108864,s.fg|=16777215&h.DEFAULT_ATTR_DATA.fg):49===i?(s.bg&=-67108864,s.bg|=16777215&h.DEFAULT_ATTR_DATA.bg):38===i||48===i||58===i?r+=this._extractColor(e,r,s):59===i?(s.extended=s.extended.clone(),s.extended.underlineColor=-1,s.updateExtended()):100===i?(s.fg&=-67108864,s.fg|=16777215&h.DEFAULT_ATTR_DATA.fg,s.bg&=-67108864,s.bg|=16777215&h.DEFAULT_ATTR_DATA.bg):this._logService.debug("Unknown SGR attribute: %d.",i);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${s.C0.ESC}[0n`);break;case 6:const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${s.C0.ESC}[${e};${t}R`)}return!0}deviceStatusPrivate(e){if(6===e.params[0]){const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${s.C0.ESC}[?${e};${t}R`)}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=h.DEFAULT_ATTR_DATA.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){const t=e.params[0]||1;switch(t){case 1:case 2:this._optionsService.options.cursorStyle="block";break;case 3:case 4:this._optionsService.options.cursorStyle="underline";break;case 5:case 6:this._optionsService.options.cursorStyle="bar"}const i=t%2==1;return this._optionsService.options.cursorBlink=i,!0}setScrollRegion(e){const t=e.params[0]||1;let i;return(e.length<2||(i=e.params[1])>this._bufferService.rows||0===i)&&(i=this._bufferService.rows),i>t&&(this._activeBuffer.scrollTop=t-1,this._activeBuffer.scrollBottom=i-1,this._setCursor(0,0)),!0}windowOptions(e){if(!m(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;const t=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:2!==t&&this._onRequestWindowsOptionsReport.fire(C.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(C.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${s.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:0!==t&&2!==t||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),0!==t&&1!==t||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:0!==t&&2!==t||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),0!==t&&1!==t||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){const t=[],i=e.split(";");for(;i.length>1;){const e=i.shift(),s=i.shift();if(/^\d+$/.exec(e)){const i=parseInt(e);if(0<=i&&i<256)if("?"===s)t.push({type:0,index:i});else{const e=(0,g.parseColor)(s);e&&t.push({type:1,index:i,color:e})}}}return t.length&&this._onColor.fire(t),!0}setHyperlink(e){const t=e.split(";");return!(t.length<2)&&(t[1]?this._createHyperlink(t[0],t[1]):!t[0]&&this._finishHyperlink())}_createHyperlink(e,t){void 0!==this._currentLinkId&&this._finishHyperlink();const i=e.split(":");let s;const r=i.findIndex((e=>e.startsWith("id=")));return-1!==r&&(s=i[r].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._currentLinkId=this._oscLinkService.registerLink({id:s,uri:t}),this._curAttrData.extended.urlId=this._currentLinkId,this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),this._currentLinkId=void 0,!0}_setOrReportSpecialColor(e,t){const i=e.split(";");for(let e=0;e=this._specialColors.length);++e,++t)if("?"===i[e])this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{const s=(0,g.parseColor)(i[e]);s&&this._onColor.fire([{type:1,index:this._specialColors[t],color:s}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;const t=[],i=e.split(";");for(let e=0;e=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){const e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowService.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=h.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=h.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){const e=new d.CellData;e.content=1<<22|"E".charCodeAt(0),e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let t=0;t(this._coreService.triggerDataEvent(`${s.C0.ESC}${e}${s.C0.ESC}\\`),!0))('"q'===e?`P1$r${this._curAttrData.isProtected()?1:0}"q`:'"p'===e?'P1$r61;1"p':"r"===e?`P1$r${i.scrollTop+1};${i.scrollBottom+1}r`:"m"===e?"P1$r0m":" q"===e?`P1$r${{block:2,underline:4,bar:6}[r.cursorStyle]-(r.cursorBlink?1:0)} q`:"P0$r")}}t.InputHandler=b},844:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}},1505:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(e,t,i){this._data[e]||(this._data[e]={}),this._data[e][t]=i}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}}t.TwoKeyMap=i,t.FourKeyMap=class{constructor(){this._data=new i}set(e,t,s,r,n){this._data.get(e,t)||this._data.set(e,t,new i),this._data.get(e,t).set(s,r,n)}get(e,t,i,s){var r;return null===(r=this._data.get(e,t))||void 0===r?void 0:r.get(i,s)}clear(){this._data.clear()}}},6114:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.isSafari=t.isLegacyEdge=t.isFirefox=void 0;const i="undefined"==typeof navigator,s=i?"node":navigator.userAgent,r=i?"node":navigator.platform;t.isFirefox=s.includes("Firefox"),t.isLegacyEdge=s.includes("Edge"),t.isSafari=/^((?!chrome|android).)*safari/i.test(s),t.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(r),t.isIpad="iPad"===r,t.isIphone="iPhone"===r,t.isWindows=["Windows","Win16","Win32","WinCE"].includes(r),t.isLinux=r.indexOf("Linux")>=0},6106:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SortedList=void 0;let i=0;t.SortedList=class{constructor(e){this._getKey=e,this._array=[]}clear(){this._array.length=0}insert(e){0!==this._array.length?(i=this._search(this._getKey(e),0,this._array.length-1),this._array.splice(i,0,e)):this._array.push(e)}delete(e){if(0===this._array.length)return!1;const t=this._getKey(e);if(void 0===t)return!1;if(i=this._search(t,0,this._array.length-1),-1===i)return!1;if(this._getKey(this._array[i])!==t)return!1;do{if(this._array[i]===e)return this._array.splice(i,1),!0}while(++i=this._array.length)&&this._getKey(this._array[i])===e))do{yield this._array[i]}while(++i=this._array.length)&&this._getKey(this._array[i])===e))do{t(this._array[i])}while(++ie)return this._search(e,t,s-1);if(r0&&this._getKey(this._array[s-1])===e;)s--;return s}}},8273:(e,t)=>{function i(e,t,i=0,s=e.length){if(i>=e.length)return e;i=(e.length+i)%e.length,s=s>=e.length?e.length:(e.length+s)%e.length;for(let r=i;r{Object.defineProperty(t,"__esModule",{value:!0}),t.updateWindowsModeWrappedState=void 0;const s=i(643);t.updateWindowsModeWrappedState=function(e){const t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1),i=null==t?void 0:t.get(e.cols-1),r=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);r&&i&&(r.isWrapped=i[s.CHAR_DATA_CODE_INDEX]!==s.NULL_CELL_CODE&&i[s.CHAR_DATA_CODE_INDEX]!==s.WHITESPACE_CELL_CODE)}},3734:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(e){return[e>>>16&255,e>>>8&255,255&e]}static fromColorRGB(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]}clone(){const e=new i;return e.fg=this.fg,e.bg=this.bg,e.extended=this.extended.clone(),e}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return 50331648==(50331648&this.fg)}isBgRGB(){return 50331648==(50331648&this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return 0==(50331648&this.fg)}isBgDefault(){return 0==(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?50331648==(50331648&this.extended.underlineColor):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?0==(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}}t.AttributeData=i;class s{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(e){this._ext&=-67108864,this._ext|=67108863&e}get urlId(){return this._urlId}set urlId(e){this._urlId=e}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}t.ExtendedAttrs=s},9092:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferStringIterator=t.Buffer=t.MAX_BUFFER_SIZE=void 0;const s=i(6349),r=i(8437),n=i(511),o=i(643),a=i(4634),h=i(4863),c=i(7116),l=i(3734);t.MAX_BUFFER_SIZE=4294967295,t.Buffer=class{constructor(e,t,i){this._hasScrollback=e,this._optionsService=t,this._bufferService=i,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.savedY=0,this.savedX=0,this.savedCurAttrData=r.DEFAULT_ATTR_DATA.clone(),this.savedCharset=c.DEFAULT_CHARSET,this.markers=[],this._nullCell=n.CellData.fromCharData([0,o.NULL_CELL_CHAR,o.NULL_CELL_WIDTH,o.NULL_CELL_CODE]),this._whitespaceCell=n.CellData.fromCharData([0,o.WHITESPACE_CELL_CHAR,o.WHITESPACE_CELL_WIDTH,o.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg,this._nullCell.extended=e.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new l.ExtendedAttrs),this._nullCell}getWhitespaceCell(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg,this._whitespaceCell.extended=e.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new l.ExtendedAttrs),this._whitespaceCell}getBlankLine(e,t){return new r.BufferLine(this._bufferService.cols,this.getNullCell(e),t)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){const e=this.ybase+this.y-this.ydisp;return e>=0&&et.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:i}fillViewportRows(e){if(0===this.lines.length){void 0===e&&(e=r.DEFAULT_ATTR_DATA);let t=this._rows;for(;t--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){const i=this.getNullCell(r.DEFAULT_ATTR_DATA),s=this._getCorrectBufferLength(t);if(s>this.lines.maxLength&&(this.lines.maxLength=s),this.lines.length>0){if(this._cols0&&this.lines.length<=this.ybase+this.y+n+1?(this.ybase--,n++,this.ydisp>0&&this.ydisp--):this.lines.push(new r.BufferLine(e,i)));else for(let e=this._rows;e>t;e--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(s0&&(this.lines.trimStart(e),this.ybase=Math.max(this.ybase-e,0),this.ydisp=Math.max(this.ydisp-e,0),this.savedY=Math.max(this.savedY-e,0)),this.lines.maxLength=s}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),n&&(this.y+=n),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(let t=0;tthis._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))}_reflowLarger(e,t){const i=(0,a.reflowLargerGetLinesToRemove)(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(r.DEFAULT_ATTR_DATA));if(i.length>0){const s=(0,a.reflowLargerCreateNewLayout)(this.lines,i);(0,a.reflowLargerApplyNewLayout)(this.lines,s.layout),this._reflowLargerAdjustViewport(e,t,s.countRemoved)}}_reflowLargerAdjustViewport(e,t,i){const s=this.getNullCell(r.DEFAULT_ATTR_DATA);let n=i;for(;n-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length=0;o--){let h=this.lines.get(o);if(!h||!h.isWrapped&&h.getTrimmedLength()<=e)continue;const c=[h];for(;h.isWrapped&&o>0;)h=this.lines.get(--o),c.unshift(h);const l=this.ybase+this.y;if(l>=o&&l0&&(s.push({start:o+c.length+n,newLines:v}),n+=v.length),c.push(...v);let g=_.length-1,p=_[g];0===p&&(g--,p=_[g]);let S=c.length-u-1,m=d;for(;S>=0;){const e=Math.min(m,p);if(void 0===c[g])break;if(c[g].copyCellsFrom(c[S],m-e,p-e,e,!0),p-=e,0===p&&(g--,p=_[g]),m-=e,0===m){S--;const e=Math.max(S,0);m=(0,a.getWrappedLineTrimmedLength)(c,e,this._cols)}}for(let t=0;t0;)0===this.ybase?this.y0){const e=[],t=[];for(let e=0;e=0;c--)if(a&&a.start>r+h){for(let e=a.newLines.length-1;e>=0;e--)this.lines.set(c--,a.newLines[e]);c++,e.push({index:r+1,amount:a.newLines.length}),h+=a.newLines.length,a=s[++o]}else this.lines.set(c,t[r--]);let c=0;for(let t=e.length-1;t>=0;t--)e[t].index+=c,this.lines.onInsertEmitter.fire(e[t]),c+=e[t].amount;const l=Math.max(0,i+n-this.lines.maxLength);l>0&&this.lines.onTrimEmitter.fire(l)}}stringIndexToBufferIndex(e,t,i=!1){for(;t;){const s=this.lines.get(e);if(!s)return[-1,-1];const r=i?s.getTrimmedLength():s.length;for(let i=0;i0&&this.lines.get(t).isWrapped;)t--;for(;i+10;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e=this._cols?this._cols-1:e<0?0:e}clearMarkers(e){this._isClearing=!0;for(let t=0;t{t.line-=e,t.line<0&&t.dispose()}))),t.register(this.lines.onInsert((e=>{t.line>=e.index&&(t.line+=e.amount)}))),t.register(this.lines.onDelete((e=>{t.line>=e.index&&t.linee.index&&(t.line-=e.amount)}))),t.register(t.onDispose((()=>this._removeMarker(t)))),t}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}iterator(e,t,i,s,r){return new d(this,e,t,i,s,r)}};class d{constructor(e,t,i=0,s=e.lines.length,r=0,n=0){this._buffer=e,this._trimRight=t,this._startIndex=i,this._endIndex=s,this._startOverscan=r,this._endOverscan=n,this._startIndex<0&&(this._startIndex=0),this._endIndex>this._buffer.lines.length&&(this._endIndex=this._buffer.lines.length),this._current=this._startIndex}hasNext(){return this._currentthis._endIndex+this._endOverscan&&(e.last=this._endIndex+this._endOverscan),e.first=Math.max(e.first,0),e.last=Math.min(e.last,this._buffer.lines.length);let t="";for(let i=e.first;i<=e.last;++i)t+=this._buffer.translateBufferLineToString(i,this._trimRight);return this._current=e.last+1,{range:e,content:t}}}t.BufferStringIterator=d},8437:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferLine=t.DEFAULT_ATTR_DATA=void 0;const s=i(482),r=i(643),n=i(511),o=i(3734);t.DEFAULT_ATTR_DATA=Object.freeze(new o.AttributeData);const a={startIndex:0};class h{constructor(e,t,i=!1){this.isWrapped=i,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*e);const s=t||n.CellData.fromCharData([0,r.NULL_CELL_CHAR,r.NULL_CELL_WIDTH,r.NULL_CELL_CODE]);for(let t=0;t>22,2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):i]}set(e,t){this._data[3*e+1]=t[r.CHAR_DATA_ATTR_INDEX],t[r.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[e]=t[1],this._data[3*e+0]=2097152|e|t[r.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*e+0]=t[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|t[r.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(e){return this._data[3*e+0]>>22}hasWidth(e){return 12582912&this._data[3*e+0]}getFg(e){return this._data[3*e+1]}getBg(e){return this._data[3*e+2]}hasContent(e){return 4194303&this._data[3*e+0]}getCodePoint(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):2097151&t}isCombined(e){return 2097152&this._data[3*e+0]}getString(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e]:2097151&t?(0,s.stringFromCodePoint)(2097151&t):""}isProtected(e){return 536870912&this._data[3*e+2]}loadCell(e,t){return a.startIndex=3*e,t.content=this._data[a.startIndex+0],t.fg=this._data[a.startIndex+1],t.bg=this._data[a.startIndex+2],2097152&t.content&&(t.combinedData=this._combined[e]),268435456&t.bg&&(t.extended=this._extendedAttrs[e]),t}setCell(e,t){2097152&t.content&&(this._combined[e]=t.combinedData),268435456&t.bg&&(this._extendedAttrs[e]=t.extended),this._data[3*e+0]=t.content,this._data[3*e+1]=t.fg,this._data[3*e+2]=t.bg}setCellFromCodePoint(e,t,i,s,r,n){268435456&r&&(this._extendedAttrs[e]=n),this._data[3*e+0]=t|i<<22,this._data[3*e+1]=s,this._data[3*e+2]=r}addCodepointToCell(e,t){let i=this._data[3*e+0];2097152&i?this._combined[e]+=(0,s.stringFromCodePoint)(t):(2097151&i?(this._combined[e]=(0,s.stringFromCodePoint)(2097151&i)+(0,s.stringFromCodePoint)(t),i&=-2097152,i|=2097152):i=t|1<<22,this._data[3*e+0]=i)}insertCells(e,t,i,s){if((e%=this.length)&&2===this.getWidth(e-1)&&this.setCellFromCodePoint(e-1,0,1,(null==s?void 0:s.fg)||0,(null==s?void 0:s.bg)||0,(null==s?void 0:s.extended)||new o.ExtendedAttrs),t=0;--i)this.setCell(e+t+i,this.loadCell(e+i,s));for(let s=0;sthis.length){const i=new Uint32Array(3*e);this.length&&(3*e=e&&delete this._combined[s]}}else this._data=new Uint32Array(0),this._combined={};this.length=e}}fill(e,t=!1){if(t)for(let t=0;t=0;--e)if(4194303&this._data[3*e+0])return e+(this._data[3*e+0]>>22);return 0}copyCellsFrom(e,t,i,s,r){const n=e._data;if(r)for(let r=s-1;r>=0;r--){for(let e=0;e<3;e++)this._data[3*(i+r)+e]=n[3*(t+r)+e];268435456&n[3*(t+r)+2]&&(this._extendedAttrs[i+r]=e._extendedAttrs[t+r])}else for(let r=0;r=t&&(this._combined[r-t+i]=e._combined[r])}}translateToString(e=!1,t=0,i=this.length){e&&(i=Math.min(i,this.getTrimmedLength()));let n="";for(;t>22||1}return n}}t.BufferLine=h},4841:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRangeLength=void 0,t.getRangeLength=function(e,t){if(e.start.y>e.end.y)throw new Error(`Buffer range end (${e.end.x}, ${e.end.y}) cannot be before start (${e.start.x}, ${e.start.y})`);return t*(e.end.y-e.start.y)+(e.end.x-e.start.x+1)}},4634:(e,t)=>{function i(e,t,i){if(t===e.length-1)return e[t].getTrimmedLength();const s=!e[t].hasContent(i-1)&&1===e[t].getWidth(i-1),r=2===e[t+1].getWidth(0);return s&&r?i-1:i}Object.defineProperty(t,"__esModule",{value:!0}),t.getWrappedLineTrimmedLength=t.reflowSmallerGetNewLineLengths=t.reflowLargerApplyNewLayout=t.reflowLargerCreateNewLayout=t.reflowLargerGetLinesToRemove=void 0,t.reflowLargerGetLinesToRemove=function(e,t,s,r,n){const o=[];for(let a=0;a=a&&r0&&(e>d||0===l[e].getTrimmedLength());e--)v++;v>0&&(o.push(a+l.length-v),o.push(v)),a+=l.length-1}return o},t.reflowLargerCreateNewLayout=function(e,t){const i=[];let s=0,r=t[s],n=0;for(let o=0;oi(e,r,t))).reduce(((e,t)=>e+t));let o=0,a=0,h=0;for(;hc&&(o-=c,a++);const l=2===e[a].getWidth(o-1);l&&o--;const d=l?s-1:s;r.push(d),h+=d}return r},t.getWrappedLineTrimmedLength=i},5295:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferSet=void 0;const s=i(9092),r=i(8460),n=i(844);class o extends n.Disposable{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this.register(new r.EventEmitter),this.reset()}get onBufferActivate(){return this._onBufferActivate.event}reset(){this._normal=new s.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new s.Buffer(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,t){this._normal.resize(e,t),this._alt.resize(e,t)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}}t.BufferSet=o},511:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellData=void 0;const s=i(482),r=i(643),n=i(3734);class o extends n.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new n.ExtendedAttrs,this.combinedData=""}static fromCharData(e){const t=new o;return t.setFromCharData(e),t}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,s.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(e){this.fg=e[r.CHAR_DATA_ATTR_INDEX],this.bg=0;let t=!1;if(e[r.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[r.CHAR_DATA_CHAR_INDEX].length){const i=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){const s=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=s&&s<=57343?this.content=1024*(i-55296)+s-56320+65536|e[r.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[r.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[r.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[r.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=o},643:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=256,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},4863:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Marker=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this.line=e,this._id=n._nextId++,this.isDisposed=!1,this._onDispose=new s.EventEmitter}get id(){return this._id}get onDispose(){return this._onDispose.event}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),super.dispose())}}t.Marker=n,n._nextId=1},7116:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_CHARSET=t.CHARSETS=void 0,t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={"`":"◆",a:"▒",b:"␉",c:"␌",d:"␍",e:"␊",f:"°",g:"±",h:"␤",i:"␋",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"£","~":"·"},t.CHARSETS.A={"#":"£"},t.CHARSETS.B=void 0,t.CHARSETS[4]={"#":"£","@":"¾","[":"ij","\\":"½","]":"|","{":"¨","|":"f","}":"¼","~":"´"},t.CHARSETS.C=t.CHARSETS[5]={"[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS.R={"#":"£","@":"à","[":"°","\\":"ç","]":"§","{":"é","|":"ù","}":"è","~":"¨"},t.CHARSETS.Q={"@":"à","[":"â","\\":"ç","]":"ê","^":"î","`":"ô","{":"é","|":"ù","}":"è","~":"û"},t.CHARSETS.K={"@":"§","[":"Ä","\\":"Ö","]":"Ü","{":"ä","|":"ö","}":"ü","~":"ß"},t.CHARSETS.Y={"#":"£","@":"§","[":"°","\\":"ç","]":"é","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},t.CHARSETS.E=t.CHARSETS[6]={"@":"Ä","[":"Æ","\\":"Ø","]":"Å","^":"Ü","`":"ä","{":"æ","|":"ø","}":"å","~":"ü"},t.CHARSETS.Z={"#":"£","@":"§","[":"¡","\\":"Ñ","]":"¿","{":"°","|":"ñ","}":"ç"},t.CHARSETS.H=t.CHARSETS[7]={"@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS["="]={"#":"ù","@":"à","[":"é","\\":"ç","]":"ê","^":"î",_:"è","`":"ô","{":"ä","|":"ö","}":"ü","~":"û"}},2584:(e,t)=>{var i,s;Object.defineProperty(t,"__esModule",{value:!0}),t.C1_ESCAPED=t.C1=t.C0=void 0,function(e){e.NUL="\0",e.SOH="",e.STX="",e.ETX="",e.EOT="",e.ENQ="",e.ACK="",e.BEL="",e.BS="\b",e.HT="\t",e.LF="\n",e.VT="\v",e.FF="\f",e.CR="\r",e.SO="",e.SI="",e.DLE="",e.DC1="",e.DC2="",e.DC3="",e.DC4="",e.NAK="",e.SYN="",e.ETB="",e.CAN="",e.EM="",e.SUB="",e.ESC="",e.FS="",e.GS="",e.RS="",e.US="",e.SP=" ",e.DEL=""}(i=t.C0||(t.C0={})),(s=t.C1||(t.C1={})).PAD="€",s.HOP="",s.BPH="‚",s.NBH="ƒ",s.IND="„",s.NEL="…",s.SSA="†",s.ESA="‡",s.HTS="ˆ",s.HTJ="‰",s.VTS="Š",s.PLD="‹",s.PLU="Œ",s.RI="",s.SS2="Ž",s.SS3="",s.DCS="",s.PU1="‘",s.PU2="’",s.STS="“",s.CCH="”",s.MW="•",s.SPA="–",s.EPA="—",s.SOS="˜",s.SGCI="™",s.SCI="š",s.CSI="›",s.ST="œ",s.OSC="",s.PM="ž",s.APC="Ÿ",(t.C1_ESCAPED||(t.C1_ESCAPED={})).ST=`${i.ESC}\\`},7399:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.evaluateKeyboardEvent=void 0;const s=i(2584),r={48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"']};t.evaluateKeyboardEvent=function(e,t,i,n){const o={type:0,cancel:!1,key:void 0},a=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:"UIKeyInputUpArrow"===e.key?o.key=t?s.C0.ESC+"OA":s.C0.ESC+"[A":"UIKeyInputLeftArrow"===e.key?o.key=t?s.C0.ESC+"OD":s.C0.ESC+"[D":"UIKeyInputRightArrow"===e.key?o.key=t?s.C0.ESC+"OC":s.C0.ESC+"[C":"UIKeyInputDownArrow"===e.key&&(o.key=t?s.C0.ESC+"OB":s.C0.ESC+"[B");break;case 8:if(e.altKey){o.key=s.C0.ESC+s.C0.DEL;break}o.key=s.C0.DEL;break;case 9:if(e.shiftKey){o.key=s.C0.ESC+"[Z";break}o.key=s.C0.HT,o.cancel=!0;break;case 13:o.key=e.altKey?s.C0.ESC+s.C0.CR:s.C0.CR,o.cancel=!0;break;case 27:o.key=s.C0.ESC,e.altKey&&(o.key=s.C0.ESC+s.C0.ESC),o.cancel=!0;break;case 37:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"D",o.key===s.C0.ESC+"[1;3D"&&(o.key=s.C0.ESC+(i?"b":"[1;5D"))):o.key=t?s.C0.ESC+"OD":s.C0.ESC+"[D";break;case 39:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"C",o.key===s.C0.ESC+"[1;3C"&&(o.key=s.C0.ESC+(i?"f":"[1;5C"))):o.key=t?s.C0.ESC+"OC":s.C0.ESC+"[C";break;case 38:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"A",i||o.key!==s.C0.ESC+"[1;3A"||(o.key=s.C0.ESC+"[1;5A")):o.key=t?s.C0.ESC+"OA":s.C0.ESC+"[A";break;case 40:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"B",i||o.key!==s.C0.ESC+"[1;3B"||(o.key=s.C0.ESC+"[1;5B")):o.key=t?s.C0.ESC+"OB":s.C0.ESC+"[B";break;case 45:e.shiftKey||e.ctrlKey||(o.key=s.C0.ESC+"[2~");break;case 46:o.key=a?s.C0.ESC+"[3;"+(a+1)+"~":s.C0.ESC+"[3~";break;case 36:o.key=a?s.C0.ESC+"[1;"+(a+1)+"H":t?s.C0.ESC+"OH":s.C0.ESC+"[H";break;case 35:o.key=a?s.C0.ESC+"[1;"+(a+1)+"F":t?s.C0.ESC+"OF":s.C0.ESC+"[F";break;case 33:e.shiftKey?o.type=2:e.ctrlKey?o.key=s.C0.ESC+"[5;"+(a+1)+"~":o.key=s.C0.ESC+"[5~";break;case 34:e.shiftKey?o.type=3:e.ctrlKey?o.key=s.C0.ESC+"[6;"+(a+1)+"~":o.key=s.C0.ESC+"[6~";break;case 112:o.key=a?s.C0.ESC+"[1;"+(a+1)+"P":s.C0.ESC+"OP";break;case 113:o.key=a?s.C0.ESC+"[1;"+(a+1)+"Q":s.C0.ESC+"OQ";break;case 114:o.key=a?s.C0.ESC+"[1;"+(a+1)+"R":s.C0.ESC+"OR";break;case 115:o.key=a?s.C0.ESC+"[1;"+(a+1)+"S":s.C0.ESC+"OS";break;case 116:o.key=a?s.C0.ESC+"[15;"+(a+1)+"~":s.C0.ESC+"[15~";break;case 117:o.key=a?s.C0.ESC+"[17;"+(a+1)+"~":s.C0.ESC+"[17~";break;case 118:o.key=a?s.C0.ESC+"[18;"+(a+1)+"~":s.C0.ESC+"[18~";break;case 119:o.key=a?s.C0.ESC+"[19;"+(a+1)+"~":s.C0.ESC+"[19~";break;case 120:o.key=a?s.C0.ESC+"[20;"+(a+1)+"~":s.C0.ESC+"[20~";break;case 121:o.key=a?s.C0.ESC+"[21;"+(a+1)+"~":s.C0.ESC+"[21~";break;case 122:o.key=a?s.C0.ESC+"[23;"+(a+1)+"~":s.C0.ESC+"[23~";break;case 123:o.key=a?s.C0.ESC+"[24;"+(a+1)+"~":s.C0.ESC+"[24~";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if(i&&!n||!e.altKey||e.metaKey)!i||e.altKey||e.ctrlKey||e.shiftKey||!e.metaKey?e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&1===e.key.length?o.key=e.key:e.key&&e.ctrlKey&&("_"===e.key&&(o.key=s.C0.US),"@"===e.key&&(o.key=s.C0.NUL)):65===e.keyCode&&(o.type=1);else{const t=r[e.keyCode],i=null==t?void 0:t[e.shiftKey?1:0];if(i)o.key=s.C0.ESC+i;else if(e.keyCode>=65&&e.keyCode<=90){const t=e.ctrlKey?e.keyCode-64:e.keyCode+32;let i=String.fromCharCode(t);e.shiftKey&&(i=i.toUpperCase()),o.key=s.C0.ESC+i}else if("Dead"===e.key&&e.code.startsWith("Key")){let t=e.code.slice(3,4);e.shiftKey||(t=t.toLowerCase()),o.key=s.C0.ESC+t,o.cancel=!0}}else e.keyCode>=65&&e.keyCode<=90?o.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?o.key=s.C0.NUL:e.keyCode>=51&&e.keyCode<=55?o.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?o.key=s.C0.DEL:219===e.keyCode?o.key=s.C0.ESC:220===e.keyCode?o.key=s.C0.FS:221===e.keyCode&&(o.key=s.C0.GS)}return o}},482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t=0,i=e.length){let s="";for(let r=t;r65535?(t-=65536,s+=String.fromCharCode(55296+(t>>10))+String.fromCharCode(t%1024+56320)):s+=String.fromCharCode(t)}return s},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){const i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){const i=e.charCodeAt(r++);56320<=i&&i<=57343?t[s++]=1024*(this._interim-55296)+i-56320+65536:(t[s++]=this._interim,t[s++]=i),this._interim=0}for(let n=r;n=i)return this._interim=r,s;const o=e.charCodeAt(n);56320<=o&&o<=57343?t[s++]=1024*(r-55296)+o-56320+65536:(t[s++]=r,t[s++]=o)}else 65279!==r&&(t[s++]=r)}return s}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){const i=e.length;if(!i)return 0;let s,r,n,o,a=0,h=0,c=0;if(this.interim[0]){let s=!1,r=this.interim[0];r&=192==(224&r)?31:224==(240&r)?15:7;let n,o=0;for(;(n=63&this.interim[++o])&&o<4;)r<<=6,r|=n;const h=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,l=h-o;for(;c=i)return 0;if(n=e[c++],128!=(192&n)){c--,s=!0;break}this.interim[o++]=n,r<<=6,r|=63&n}s||(2===h?r<128?c--:t[a++]=r:3===h?r<2048||r>=55296&&r<=57343||65279===r||(t[a++]=r):r<65536||r>1114111||(t[a++]=r)),this.interim.fill(0)}const l=i-4;let d=c;for(;d=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(h=(31&s)<<6|63&r,h<128){d--;continue}t[a++]=h}else if(224==(240&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(h=(15&s)<<12|(63&r)<<6|63&n,h<2048||h>=55296&&h<=57343||65279===h)continue;t[a++]=h}else if(240==(248&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,this.interim[2]=n,a;if(o=e[d++],128!=(192&o)){d--;continue}if(h=(7&s)<<18|(63&r)<<12|(63&n)<<6|63&o,h<65536||h>1114111)continue;t[a++]=h}}return a}}},225:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV6=void 0;const s=i(8273),r=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],n=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];let o;t.UnicodeV6=class{constructor(){if(this.version="6",!o){o=new Uint8Array(65536),(0,s.fill)(o,1),o[0]=0,(0,s.fill)(o,0,1,32),(0,s.fill)(o,0,127,160),(0,s.fill)(o,2,4352,4448),o[9001]=2,o[9002]=2,(0,s.fill)(o,2,11904,42192),o[12351]=1,(0,s.fill)(o,2,44032,55204),(0,s.fill)(o,2,63744,64256),(0,s.fill)(o,2,65040,65050),(0,s.fill)(o,2,65072,65136),(0,s.fill)(o,2,65280,65377),(0,s.fill)(o,2,65504,65511);for(let e=0;et[r][1])return!1;for(;r>=s;)if(i=s+r>>1,e>t[i][1])s=i+1;else{if(!(e=131072&&e<=196605||e>=196608&&e<=262141?2:1}}},5981:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WriteBuffer=void 0;const s=i(8460),r="undefined"==typeof queueMicrotask?e=>{Promise.resolve().then(e)}:queueMicrotask;t.WriteBuffer=class{constructor(e){this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._onWriteParsed=new s.EventEmitter}get onWriteParsed(){return this._onWriteParsed.event}writeSync(e,t){if(void 0!==t&&this._syncCalls>t)return void(this._syncCalls=0);if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let i;for(this._isSyncWriting=!0;i=this._writeBuffer.shift();){this._action(i);const e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>5e7)throw new Error("write data discarded, use flow control to avoid losing data");this._writeBuffer.length||(this._bufferOffset=0,setTimeout((()=>this._innerWrite()))),this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)}_innerWrite(e=0,t=!0){const i=e||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){const e=this._writeBuffer[this._bufferOffset],s=this._action(e,t);if(s){const e=e=>Date.now()-i>=12?setTimeout((()=>this._innerWrite(0,e))):this._innerWrite(i,e);return void s.catch((e=>(r((()=>{throw e})),Promise.resolve(!1)))).then(e)}const n=this._callbacks[this._bufferOffset];if(n&&n(),this._bufferOffset++,this._pendingData-=e.length,Date.now()-i>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout((()=>this._innerWrite()))):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}}},5941:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.toRgbString=t.parseColor=void 0;const i=/^([\da-f])\/([\da-f])\/([\da-f])$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/,s=/^[\da-f]+$/;function r(e,t){const i=e.toString(16),s=i.length<2?"0"+i:i;switch(t){case 4:return i[0];case 8:return s;case 12:return(s+s).slice(0,3);default:return s+s}}t.parseColor=function(e){if(!e)return;let t=e.toLowerCase();if(0===t.indexOf("rgb:")){t=t.slice(4);const e=i.exec(t);if(e){const t=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/t*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/t*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/t*255)]}}else if(0===t.indexOf("#")&&(t=t.slice(1),s.exec(t)&&[3,6,9,12].includes(t.length))){const e=t.length/3,i=[0,0,0];for(let s=0;s<3;++s){const r=parseInt(t.slice(e*s,e*s+e),16);i[s]=1===e?r<<4:2===e?r:3===e?r>>4:r>>8}return i}},t.toRgbString=function(e,t=16){const[i,s,n]=e;return`rgb:${r(i,t)}/${r(s,t)}/${r(n,t)}`}},5770:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PAYLOAD_LIMIT=void 0,t.PAYLOAD_LIMIT=1e7},6351:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DcsHandler=t.DcsParser=void 0;const s=i(482),r=i(8742),n=i(5770),o=[];t.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=o,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=o}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}reset(){if(this._active.length)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].unhook(!1);this._stack.paused=!1,this._active=o,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||o,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].hook(t);else this._handlerFb(this._ident,"HOOK",t)}put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._ident,"PUT",(0,s.utf32ToString)(e,t,i))}unhook(e,t=!0){if(this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].unhook(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].unhook(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._ident,"UNHOOK",e);this._active=o,this._ident=0}};const a=new r.Params;a.addParam(0),t.DcsHandler=class{constructor(e){this._handler=e,this._data="",this._params=a,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():a,this._data="",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,s.utf32ToString)(e,t,i),this._data.length>n.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}unhook(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data,this._params),t instanceof Promise))return t.then((e=>(this._params=a,this._data="",this._hitLimit=!1,e)));return this._params=a,this._data="",this._hitLimit=!1,t}}},2015:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceParser=t.VT500_TRANSITION_TABLE=t.TransitionTable=void 0;const s=i(844),r=i(8273),n=i(8742),o=i(6242),a=i(6351);class h{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){(0,r.fill)(this.table,e<<4|t)}add(e,t,i,s){this.table[t<<8|e]=i<<4|s}addMany(e,t,i,s){for(let r=0;rt)),i=(e,i)=>t.slice(e,i),s=i(32,127),r=i(0,24);r.push(25),r.push.apply(r,i(28,32));const n=i(0,14);let o;for(o in e.setDefault(1,0),e.addMany(s,0,2,0),n)e.addMany([24,26,153,154],o,3,0),e.addMany(i(128,144),o,3,0),e.addMany(i(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(r,0,3,0),e.addMany(r,1,3,1),e.add(127,1,0,1),e.addMany(r,8,0,8),e.addMany(r,3,3,3),e.add(127,3,0,3),e.addMany(r,4,3,4),e.add(127,4,0,4),e.addMany(r,6,3,6),e.addMany(r,5,3,5),e.add(127,5,0,5),e.addMany(r,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(s,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(i(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(s,7,0,7),e.addMany(r,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(i(64,127),3,7,0),e.addMany(i(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(i(48,60),4,8,4),e.addMany(i(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(i(32,64),6,0,6),e.add(127,6,0,6),e.addMany(i(64,127),6,0,0),e.addMany(i(32,48),3,9,5),e.addMany(i(32,48),5,9,5),e.addMany(i(48,64),5,0,6),e.addMany(i(64,127),5,7,0),e.addMany(i(32,48),4,9,5),e.addMany(i(32,48),1,9,2),e.addMany(i(32,48),2,9,2),e.addMany(i(48,127),2,10,0),e.addMany(i(48,80),1,10,0),e.addMany(i(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(i(96,127),1,10,0),e.add(80,1,11,9),e.addMany(r,9,0,9),e.add(127,9,0,9),e.addMany(i(28,32),9,0,9),e.addMany(i(32,48),9,9,12),e.addMany(i(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(r,11,0,11),e.addMany(i(32,128),11,0,11),e.addMany(i(28,32),11,0,11),e.addMany(r,10,0,10),e.add(127,10,0,10),e.addMany(i(28,32),10,0,10),e.addMany(i(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(i(32,48),10,9,12),e.addMany(r,12,0,12),e.add(127,12,0,12),e.addMany(i(28,32),12,0,12),e.addMany(i(32,48),12,9,12),e.addMany(i(48,64),12,0,11),e.addMany(i(64,127),12,12,13),e.addMany(i(64,127),10,12,13),e.addMany(i(64,127),9,12,13),e.addMany(r,13,13,13),e.addMany(s,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(c,0,2,0),e.add(c,8,5,8),e.add(c,6,0,6),e.add(c,11,0,11),e.add(c,13,13,13),e}();class l extends s.Disposable{constructor(e=t.VT500_TRANSITION_TABLE){super(),this._transitions=e,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new n.Params,this._params.addParam(0),this._collect=0,this.precedingCodepoint=0,this._printHandlerFb=(e,t,i)=>{},this._executeHandlerFb=e=>{},this._csiHandlerFb=(e,t)=>{},this._escHandlerFb=e=>{},this._errorHandlerFb=e=>e,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this._oscParser=new o.OscParser,this._dcsParser=new a.DcsParser,this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:"\\"},(()=>!0))}_identifier(e,t=[64,126]){let i=0;if(e.prefix){if(e.prefix.length>1)throw new Error("only one byte as prefix supported");if(i=e.prefix.charCodeAt(0),i&&60>i||i>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(e.intermediates){if(e.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(let t=0;ts||s>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");i<<=8,i|=s}}if(1!==e.final.length)throw new Error("final must be a single byte");const s=e.final.charCodeAt(0);if(t[0]>s||s>t[1])throw new Error(`final must be in range ${t[0]} .. ${t[1]}`);return i<<=8,i|=s,i}identToString(e){const t=[];for(;e;)t.push(String.fromCharCode(255&e)),e>>=8;return t.reverse().join("")}dispose(){this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null),this._oscParser.dispose(),this._dcsParser.dispose()}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,t){const i=this._identifier(e,[48,126]);void 0===this._escHandlers[i]&&(this._escHandlers[i]=[]);const s=this._escHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,t){this._executeHandlers[e.charCodeAt(0)]=t}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,t){const i=this._identifier(e);void 0===this._csiHandlers[i]&&(this._csiHandlers[i]=[]);const s=this._csiHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,t){return this._dcsParser.registerHandler(this._identifier(e),t)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,t){return this._oscParser.registerHandler(e,t)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0,0!==this._parseStack.state&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,t,i,s,r){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=i,this._parseStack.transition=s,this._parseStack.chunkPos=r}parse(e,t,i){let s,r=0,n=0,o=0;if(this._parseStack.state)if(2===this._parseStack.state)this._parseStack.state=0,o=this._parseStack.chunkPos+1;else{if(void 0===i||1===this._parseStack.state)throw this._parseStack.state=1,new Error("improper continuation due to previous async handler, giving up parsing");const t=this._parseStack.handlers;let n=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](this._params),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 4:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 6:if(r=e[this._parseStack.chunkPos],s=this._dcsParser.unhook(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(r=e[this._parseStack.chunkPos],s=this._oscParser.end(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,o=this._parseStack.chunkPos+1,this.precedingCodepoint=0,this.currentState=15&this._parseStack.transition}for(let i=o;i>4){case 2:for(let s=i+1;;++s){if(s>=t||(r=e[s])<32||r>126&&r=t||(r=e[s])<32||r>126&&r=t||(r=e[s])<32||r>126&&r=t||(r=e[s])<32||r>126&&r=0&&(s=o[a](this._params),!0!==s);a--)if(s instanceof Promise)return this._preserveStack(3,o,a,n,i),s;a<0&&this._csiHandlerFb(this._collect<<8|r,this._params),this.precedingCodepoint=0;break;case 8:do{switch(r){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(r-48)}}while(++i47&&r<60);i--;break;case 9:this._collect<<=8,this._collect|=r;break;case 10:const h=this._escHandlers[this._collect<<8|r];let l=h?h.length-1:-1;for(;l>=0&&(s=h[l](),!0!==s);l--)if(s instanceof Promise)return this._preserveStack(4,h,l,n,i),s;l<0&&this._escHandlerFb(this._collect<<8|r),this.precedingCodepoint=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|r,this._params);break;case 13:for(let s=i+1;;++s)if(s>=t||24===(r=e[s])||26===r||27===r||r>127&&r=t||(r=e[s])<32||r>127&&r{Object.defineProperty(t,"__esModule",{value:!0}),t.OscHandler=t.OscParser=void 0;const s=i(5770),r=i(482),n=[];t.OscParser=class{constructor(){this._state=0,this._active=n,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=n}reset(){if(2===this._state)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].end(!1);this._stack.paused=!1,this._active=n,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||n,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].start();else this._handlerFb(this._id,"START")}_put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._id,"PUT",(0,r.utf32ToString)(e,t,i))}start(){this.reset(),this._state=1}put(e,t,i){if(3!==this._state){if(1===this._state)for(;t0&&this._put(e,t,i)}}end(e,t=!0){if(0!==this._state){if(3!==this._state)if(1===this._state&&this._start(),this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].end(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].end(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._id,"END",e);this._active=n,this._id=-1,this._state=0}}},t.OscHandler=class{constructor(e){this._handler=e,this._data="",this._hitLimit=!1}start(){this._data="",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,r.utf32ToString)(e,t,i),this._data.length>s.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}end(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data),t instanceof Promise))return t.then((e=>(this._data="",this._hitLimit=!1,e)));return this._data="",this._hitLimit=!1,t}}},8742:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Params=void 0;const i=2147483647;class s{constructor(e=32,t=32){if(this.maxLength=e,this.maxSubParamsLength=t,t>256)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}static fromArray(e){const t=new s;if(!e.length)return t;for(let i=Array.isArray(e[0])?1:0;i>8,s=255&this._subParamsIdx[t];s-i>0&&e.push(Array.prototype.slice.call(this._subParams,i,s))}return e}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(e){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(e<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>i?i:e}}addSubParam(e){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(e<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=e>i?i:e,this._subParamsIdx[this.length-1]++}}hasSubParams(e){return(255&this._subParamsIdx[e])-(this._subParamsIdx[e]>>8)>0}getSubParams(e){const t=this._subParamsIdx[e]>>8,i=255&this._subParamsIdx[e];return i-t>0?this._subParams.subarray(t,i):null}getSubParamsAll(){const e={};for(let t=0;t>8,s=255&this._subParamsIdx[t];s-i>0&&(e[t]=this._subParams.slice(i,s))}return e}addDigit(e){let t;if(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;const s=this._digitIsSub?this._subParams:this.params,r=s[t-1];s[t-1]=~r?Math.min(10*r+e,i):e}}t.Params=s},5741:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AddonManager=void 0,t.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){const i={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(i),t.dispose=()=>this._wrappedAddonDispose(i),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let i=0;i{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferApiView=void 0;const s=i(3785),r=i(511);t.BufferApiView=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){const t=this._buffer.lines.get(e);if(t)return new s.BufferLineApiView(t)}getNullCell(){return new r.CellData}}},3785:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferLineApiView=void 0;const s=i(511);t.BufferLineApiView=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,t){if(!(e<0||e>=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new s.CellData)}translateToString(e,t,i){return this._line.translateToString(e,t,i)}}},8285:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferNamespaceApi=void 0;const s=i(8771),r=i(8460);t.BufferNamespaceApi=class{constructor(e){this._core=e,this._onBufferChange=new r.EventEmitter,this._normal=new s.BufferApiView(this._core.buffers.normal,"normal"),this._alternate=new s.BufferApiView(this._core.buffers.alt,"alternate"),this._core.buffers.onBufferActivate((()=>this._onBufferChange.fire(this.active)))}get onBufferChange(){return this._onBufferChange.event}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error("Active buffer is neither normal nor alternate")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}}},7975:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ParserApi=void 0,t.ParserApi=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,(e=>t(e.toArray())))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,((e,i)=>t(e,i.toArray())))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}}},7090:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeApi=void 0,t.UnicodeApi=class{constructor(e){this._core=e}register(e){this._core.unicodeService.register(e)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(e){this._core.unicodeService.activeVersion=e}}},744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BufferService=t.MINIMUM_ROWS=t.MINIMUM_COLS=void 0;const n=i(2585),o=i(5295),a=i(8460),h=i(844);t.MINIMUM_COLS=2,t.MINIMUM_ROWS=1;let c=class extends h.Disposable{constructor(e){super(),this.isUserScrolling=!1,this._onResize=new a.EventEmitter,this._onScroll=new a.EventEmitter,this.cols=Math.max(e.rawOptions.cols||0,t.MINIMUM_COLS),this.rows=Math.max(e.rawOptions.rows||0,t.MINIMUM_ROWS),this.buffers=new o.BufferSet(e,this)}get onResize(){return this._onResize.event}get onScroll(){return this._onScroll.event}get buffer(){return this.buffers.active}dispose(){super.dispose(),this.buffers.dispose()}resize(e,t){this.cols=e,this.rows=t,this.buffers.resize(e,t),this.buffers.setupTabStops(this.cols),this._onResize.fire({cols:e,rows:t})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){const i=this.buffer;let s;s=this._cachedBlankLine,s&&s.length===this.cols&&s.getFg(0)===e.fg&&s.getBg(0)===e.bg||(s=i.getBlankLine(e,t),this._cachedBlankLine=s),s.isWrapped=t;const r=i.ybase+i.scrollTop,n=i.ybase+i.scrollBottom;if(0===i.scrollTop){const e=i.lines.isFull;n===i.lines.length-1?e?i.lines.recycle().copyFrom(s):i.lines.push(s.clone()):i.lines.splice(n+1,0,s.clone()),e?this.isUserScrolling&&(i.ydisp=Math.max(i.ydisp-1,0)):(i.ybase++,this.isUserScrolling||i.ydisp++)}else{const e=n-r+1;i.lines.shiftElements(r+1,e-1,-1),i.lines.set(n,s.clone())}this.isUserScrolling||(i.ydisp=i.ybase),this._onScroll.fire(i.ydisp)}scrollLines(e,t,i){const s=this.buffer;if(e<0){if(0===s.ydisp)return;this.isUserScrolling=!0}else e+s.ydisp>=s.ybase&&(this.isUserScrolling=!1);const r=s.ydisp;s.ydisp=Math.max(Math.min(s.ydisp+e,s.ybase),0),r!==s.ydisp&&(t||this._onScroll.fire(s.ydisp))}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this.buffer.ydisp)}scrollToBottom(){this.scrollLines(this.buffer.ybase-this.buffer.ydisp)}scrollToLine(e){const t=e-this.buffer.ydisp;0!==t&&this.scrollLines(t)}};c=s([r(0,n.IOptionsService)],c),t.BufferService=c},7994:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CharsetService=void 0,t.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(e){this.glevel=e,this.charset=this._charsets[e]}setgCharset(e,t){this._charsets[e]=t,this.glevel===e&&(this.charset=t)}}},1753:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreMouseService=void 0;const n=i(2585),o=i(8460),a={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>4!==e.button&&1===e.action&&(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>32!==e.action},DRAG:{events:23,restrict:e=>32!==e.action||3!==e.button},ANY:{events:31,restrict:e=>!0}};function h(e,t){let i=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return 4===e.button?(i|=64,i|=e.action):(i|=3&e.button,4&e.button&&(i|=64),8&e.button&&(i|=128),32===e.action?i|=32:0!==e.action||t||(i|=3)),i}const c=String.fromCharCode,l={DEFAULT:e=>{const t=[h(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?"":`${c(t[0])}${c(t[1])}${c(t[2])}`},SGR:e=>{const t=0===e.action&&4!==e.button?"m":"M";return`[<${h(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{const t=0===e.action&&4!==e.button?"m":"M";return`[<${h(e,!0)};${e.x};${e.y}${t}`}};let d=class{constructor(e,t){this._bufferService=e,this._coreService=t,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._onProtocolChange=new o.EventEmitter,this._lastEvent=null;for(const e of Object.keys(a))this.addProtocol(e,a[e]);for(const e of Object.keys(l))this.addEncoding(e,l[e]);this.reset()}addProtocol(e,t){this._protocols[e]=t}addEncoding(e,t){this._encodings[e]=t}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return 0!==this._protocols[this._activeProtocol].events}set activeProtocol(e){if(!this._protocols[e])throw new Error(`unknown protocol "${e}"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw new Error(`unknown encoding "${e}"`);this._activeEncoding=e}reset(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null}get onProtocolChange(){return this._onProtocolChange.event}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows)return!1;if(4===e.button&&32===e.action)return!1;if(3===e.button&&32!==e.action)return!1;if(4!==e.button&&(2===e.action||3===e.action))return!1;if(e.col++,e.row++,32===e.action&&this._lastEvent&&this._equalEvents(this._lastEvent,e,"SGR_PIXELS"===this._activeEncoding))return!1;if(!this._protocols[this._activeProtocol].restrict(e))return!1;const t=this._encodings[this._activeEncoding](e);return t&&("DEFAULT"===this._activeEncoding?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(1&e),up:!!(2&e),drag:!!(4&e),move:!!(8&e),wheel:!!(16&e)}}_equalEvents(e,t,i){if(i){if(e.x!==t.x)return!1;if(e.y!==t.y)return!1}else{if(e.col!==t.col)return!1;if(e.row!==t.row)return!1}return e.button===t.button&&e.action===t.action&&e.ctrl===t.ctrl&&e.alt===t.alt&&e.shift===t.shift}};d=s([r(0,n.IBufferService),r(1,n.ICoreService)],d),t.CoreMouseService=d},6975:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreService=void 0;const n=i(2585),o=i(8460),a=i(1439),h=i(844),c=Object.freeze({insertMode:!1}),l=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0});let d=class extends h.Disposable{constructor(e,t,i,s){super(),this._bufferService=t,this._logService=i,this._optionsService=s,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new o.EventEmitter),this._onUserInput=this.register(new o.EventEmitter),this._onBinary=this.register(new o.EventEmitter),this._scrollToBottom=e,this.register({dispose:()=>this._scrollToBottom=void 0}),this.modes=(0,a.clone)(c),this.decPrivateModes=(0,a.clone)(l)}get onData(){return this._onData.event}get onUserInput(){return this._onUserInput.event}get onBinary(){return this._onBinary.event}reset(){this.modes=(0,a.clone)(c),this.decPrivateModes=(0,a.clone)(l)}triggerDataEvent(e,t=!1){if(this._optionsService.rawOptions.disableStdin)return;const i=this._bufferService.buffer;i.ybase!==i.ydisp&&this._scrollToBottom(),t&&this._onUserInput.fire(),this._logService.debug(`sending data "${e}"`,(()=>e.split("").map((e=>e.charCodeAt(0))))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${e}"`,(()=>e.split("").map((e=>e.charCodeAt(0))))),this._onBinary.fire(e))}};d=s([r(1,n.IBufferService),r(2,n.ILogService),r(3,n.IOptionsService)],d),t.CoreService=d},9074:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DecorationService=void 0;const s=i(8055),r=i(8460),n=i(844),o=i(6106),a={xmin:0,xmax:0};class h extends n.Disposable{constructor(){super(...arguments),this._decorations=new o.SortedList((e=>null==e?void 0:e.marker.line)),this._onDecorationRegistered=this.register(new r.EventEmitter),this._onDecorationRemoved=this.register(new r.EventEmitter)}get onDecorationRegistered(){return this._onDecorationRegistered.event}get onDecorationRemoved(){return this._onDecorationRemoved.event}get decorations(){return this._decorations.values()}registerDecoration(e){if(e.marker.isDisposed)return;const t=new c(e);if(t){const e=t.marker.onDispose((()=>t.dispose()));t.onDispose((()=>{t&&(this._decorations.delete(t)&&this._onDecorationRemoved.fire(t),e.dispose())})),this._decorations.insert(t),this._onDecorationRegistered.fire(t)}return t}reset(){for(const e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,t,i){var s,r,n;let o=0,a=0;for(const h of this._decorations.getKeyIterator(t))o=null!==(s=h.options.x)&&void 0!==s?s:0,a=o+(null!==(r=h.options.width)&&void 0!==r?r:1),e>=o&&e{var r,n,o;a.xmin=null!==(r=t.options.x)&&void 0!==r?r:0,a.xmax=a.xmin+(null!==(n=t.options.width)&&void 0!==n?n:1),e>=a.xmin&&e=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DirtyRowService=void 0;const n=i(2585);let o=class{constructor(e){this._bufferService=e,this.clearRange()}get start(){return this._start}get end(){return this._end}clearRange(){this._start=this._bufferService.buffer.y,this._end=this._bufferService.buffer.y}markDirty(e){ethis._end&&(this._end=e)}markRangeDirty(e,t){if(e>t){const i=e;e=t,t=i}ethis._end&&(this._end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};o=s([r(0,n.IBufferService)],o),t.DirtyRowService=o},4348:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InstantiationService=t.ServiceCollection=void 0;const s=i(2585),r=i(8343);class n{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}forEach(e){this._entries.forEach(((t,i)=>e(i,t)))}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}}t.ServiceCollection=n,t.InstantiationService=class{constructor(){this._services=new n,this._services.set(s.IInstantiationService,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){const i=(0,r.getServiceDependencies)(e).sort(((e,t)=>e.index-t.index)),s=[];for(const t of i){const i=this._services.get(t.id);if(!i)throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${t.id}.`);s.push(i)}const n=i.length>0?i[0].index:t.length;if(t.length!==n)throw new Error(`[createInstance] First service dependency of ${e.name} at position ${n+1} conflicts with ${t.length} static arguments`);return new e(...[...t,...s])}}},7866:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogService=void 0;const n=i(2585),o={debug:n.LogLevelEnum.DEBUG,info:n.LogLevelEnum.INFO,warn:n.LogLevelEnum.WARN,error:n.LogLevelEnum.ERROR,off:n.LogLevelEnum.OFF};let a=class{constructor(e){this._optionsService=e,this.logLevel=n.LogLevelEnum.OFF,this._updateLogLevel(),this._optionsService.onOptionChange((e=>{"logLevel"===e&&this._updateLogLevel()}))}_updateLogLevel(){this.logLevel=o[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t{Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsService=t.DEFAULT_OPTIONS=void 0;const s=i(8460),r=i(6114);t.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:"block",cursorWidth:1,customGlyphs:!0,drawBoldTextInBrightColors:!0,fastScrollModifier:"alt",fastScrollSensitivity:5,fontFamily:"courier-new, courier, monospace",fontSize:15,fontWeight:"normal",fontWeightBold:"bold",lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:"info",scrollback:1e3,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rightClickSelectsWord:r.isMac,windowOptions:{},windowsMode:!1,wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRulerWidth:0};const n=["normal","bold","100","200","300","400","500","600","700","800","900"];t.OptionsService=class{constructor(e){this._onOptionChange=new s.EventEmitter;const i=Object.assign({},t.DEFAULT_OPTIONS);for(const t in e)if(t in i)try{const s=e[t];i[t]=this._sanitizeAndValidateOption(t,s)}catch(e){console.error(e)}this.rawOptions=i,this.options=Object.assign({},i),this._setupOptions()}get onOptionChange(){return this._onOptionChange.event}_setupOptions(){const e=e=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key "${e}"`);return this.rawOptions[e]},i=(e,i)=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key "${e}"`);i=this._sanitizeAndValidateOption(e,i),this.rawOptions[e]!==i&&(this.rawOptions[e]=i,this._onOptionChange.fire(e))};for(const t in this.rawOptions){const s={get:e.bind(this,t),set:i.bind(this,t)};Object.defineProperty(this.options,t,s)}}_sanitizeAndValidateOption(e,i){switch(e){case"cursorStyle":if(i||(i=t.DEFAULT_OPTIONS[e]),!function(e){return"block"===e||"underline"===e||"bar"===e}(i))throw new Error(`"${i}" is not a valid value for ${e}`);break;case"wordSeparator":i||(i=t.DEFAULT_OPTIONS[e]);break;case"fontWeight":case"fontWeightBold":if("number"==typeof i&&1<=i&&i<=1e3)break;i=n.includes(i)?i:t.DEFAULT_OPTIONS[e];break;case"cursorWidth":i=Math.floor(i);case"lineHeight":case"tabStopWidth":if(i<1)throw new Error(`${e} cannot be less than 1, value: ${i}`);break;case"minimumContrastRatio":i=Math.max(1,Math.min(21,Math.round(10*i)/10));break;case"scrollback":if((i=Math.min(i,4294967295))<0)throw new Error(`${e} cannot be less than 0, value: ${i}`);break;case"fastScrollSensitivity":case"scrollSensitivity":if(i<=0)throw new Error(`${e} cannot be less than or equal to 0, value: ${i}`);case"rows":case"cols":if(!i&&0!==i)throw new Error(`${e} must be numeric, value: ${i}`)}return i}}},2660:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkService=void 0;const n=i(2585);let o=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){const t=this._bufferService.buffer;if(void 0===e.id){const i=t.addMarker(t.ybase+t.y),s={data:e,id:this._nextId++,lines:[i]};return i.onDispose((()=>this._removeMarkerFromLink(s,i))),this._dataByLinkId.set(s.id,s),s.id}const i=e,s=this._getEntryIdKey(i),r=this._entriesWithId.get(s);if(r)return this.addLineToLink(r.id,t.ybase+t.y),r.id;const n=t.addMarker(t.ybase+t.y),o={id:this._nextId++,key:this._getEntryIdKey(i),data:i,lines:[n]};return n.onDispose((()=>this._removeMarkerFromLink(o,n))),this._entriesWithId.set(o.key,o),this._dataByLinkId.set(o.id,o),o.id}addLineToLink(e,t){const i=this._dataByLinkId.get(e);if(i&&i.lines.every((e=>e.line!==t))){const e=this._bufferService.buffer.addMarker(t);i.lines.push(e),e.onDispose((()=>this._removeMarkerFromLink(i,e)))}}getLinkData(e){var t;return null===(t=this._dataByLinkId.get(e))||void 0===t?void 0:t.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,t){const i=e.lines.indexOf(t);-1!==i&&(e.lines.splice(i,1),0===e.lines.length&&(void 0!==e.data.id&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};o=s([r(0,n.IBufferService)],o),t.OscLinkService=o},8343:(e,t)=>{function i(e,t,i){t.di$target===t?t.di$dependencies.push({id:e,index:i}):(t.di$dependencies=[{id:e,index:i}],t.di$target=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0,t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e.di$dependencies||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);const s=function(e,t,r){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");i(s,e,r)};return s.toString=()=>e,t.serviceRegistry.set(e,s),s}},2585:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.IDirtyRowService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;const s=i(8343);var r;t.IBufferService=(0,s.createDecorator)("BufferService"),t.ICoreMouseService=(0,s.createDecorator)("CoreMouseService"),t.ICoreService=(0,s.createDecorator)("CoreService"),t.ICharsetService=(0,s.createDecorator)("CharsetService"),t.IDirtyRowService=(0,s.createDecorator)("DirtyRowService"),t.IInstantiationService=(0,s.createDecorator)("InstantiationService"),(r=t.LogLevelEnum||(t.LogLevelEnum={}))[r.DEBUG=0]="DEBUG",r[r.INFO=1]="INFO",r[r.WARN=2]="WARN",r[r.ERROR=3]="ERROR",r[r.OFF=4]="OFF",t.ILogService=(0,s.createDecorator)("LogService"),t.IOptionsService=(0,s.createDecorator)("OptionsService"),t.IOscLinkService=(0,s.createDecorator)("OscLinkService"),t.IUnicodeService=(0,s.createDecorator)("UnicodeService"),t.IDecorationService=(0,s.createDecorator)("DecorationService")},1480:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeService=void 0;const s=i(8460),r=i(225);t.UnicodeService=class{constructor(){this._providers=Object.create(null),this._active="",this._onChange=new s.EventEmitter;const e=new r.UnicodeV6;this.register(e),this._active=e.version,this._activeProvider=e}get onChange(){return this._onChange.event}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw new Error(`unknown Unicode version "${e}"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(e){let t=0;const i=e.length;for(let s=0;s=i)return t+this.wcwidth(r);const n=e.charCodeAt(s);56320<=n&&n<=57343?r=1024*(r-55296)+n-56320+65536:t+=this.wcwidth(n)}t+=this.wcwidth(r)}return t}}}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,i),n.exports}var s={};return(()=>{var e=s;Object.defineProperty(e,"__esModule",{value:!0}),e.Terminal=void 0;const t=i(3236),r=i(9042),n=i(7975),o=i(7090),a=i(5741),h=i(8285),c=["cols","rows"];e.Terminal=class{constructor(e){this._core=new t.Terminal(e),this._addonManager=new a.AddonManager,this._publicOptions=Object.assign({},this._core.options);const i=e=>this._core.options[e],s=(e,t)=>{this._checkReadonlyOptions(e),this._core.options[e]=t};for(const e in this._core.options){const t={get:i.bind(this,e),set:s.bind(this,e)};Object.defineProperty(this._publicOptions,e,t)}}_checkReadonlyOptions(e){if(c.includes(e))throw new Error(`Option "${e}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error("You must set the allowProposedApi option to true to use proposed API")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._checkProposedApi(),this._parser||(this._parser=new n.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new o.UnicodeApi(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._checkProposedApi(),this._buffer||(this._buffer=new h.BufferNamespaceApi(this._core)),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){const e=this._core.coreService.decPrivateModes;let t="none";switch(this._core.coreMouseService.activeProtocol){case"X10":t="x10";break;case"VT200":t="vt200";break;case"DRAG":t="drag";break;case"ANY":t="any"}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(const t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}registerLinkProvider(e){return this._checkProposedApi(),this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.addMarker(e)}registerDecoration(e){var t,i,s;return this._checkProposedApi(),this._verifyPositiveIntegers(null!==(t=e.x)&&void 0!==t?t:0,null!==(i=e.width)&&void 0!==i?i:0,null!==(s=e.height)&&void 0!==s?s:0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,i){this._verifyIntegers(e,t,i),this._core.select(e,t,i)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){this._addonManager.dispose(),this._core.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write("\r\n",t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){return this._addonManager.loadAddon(this,e)}static get strings(){return r}_verifyIntegers(...e){for(const t of e)if(t===1/0||isNaN(t)||t%1!=0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(const t of e)if(t&&(t===1/0||isNaN(t)||t%1!=0||t<0))throw new Error("This API only accepts positive integers")}}})(),s})()})); +//# sourceMappingURL=xterm.js.map \ No newline at end of file diff --git a/dependencies/pocketpy/web/xterm/xterm.js.map b/dependencies/pocketpy/web/xterm/xterm.js.map new file mode 100644 index 0000000..bd60d6f --- /dev/null +++ b/dependencies/pocketpy/web/xterm/xterm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"xterm.js","mappings":"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AQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,M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","sources":["webpack://xterm/webpack/universalModuleDefinition","webpack://xterm/./src/browser/AccessibilityManager.ts","webpack://xterm/./src/browser/Clipboard.ts","webpack://xterm/./src/browser/ColorContrastCache.ts","webpack://xterm/./src/browser/ColorManager.ts","webpack://xterm/./src/browser/Dom.ts","webpack://xterm/./src/browser/Lifecycle.ts","webpack://xterm/./src/browser/Linkifier2.ts","webpack://xterm/./src/browser/LocalizableStrings.ts","webpack://xterm/./src/browser/OscLinkProvider.ts","webpack://xterm/./src/browser/RenderDebouncer.ts","webpack://xterm/./src/browser/ScreenDprMonitor.ts","webpack://xterm/./src/browser/Terminal.ts","webpack://xterm/./src/browser/TimeBasedDebouncer.ts","webpack://xterm/./src/browser/Viewport.ts","webpack://xterm/./src/browser/decorations/BufferDecorationRenderer.ts","webpack://xterm/./src/browser/decorations/ColorZoneStore.ts","webpack://xterm/./src/browser/decorations/OverviewRulerRenderer.ts","webpack://xterm/./src/browser/input/CompositionHelper.ts","webpack://xterm/./src/browser/input/Mouse.ts","webpack://xterm/./src/browser/input/MoveToCell.ts","webpack://xterm/./src/browser/renderer/Constants.ts","webpack://xterm/./src/browser/renderer/RendererUtils.ts","webpack://xterm/./src/browser/renderer/dom/DomRenderer.ts","webpack://xterm/./src/browser/renderer/dom/DomRendererRowFactory.ts","webpack://xterm/./src/browser/selection/SelectionModel.ts","webpack://xterm/./src/browser/services/CharSizeService.ts","webpack://xterm/./src/browser/services/CharacterJoinerService.ts","webpack://xterm/./src/browser/services/CoreBrowserService.ts","webpack://xterm/./src/browser/services/MouseService.ts","webpack://xterm/./src/browser/services/RenderService.ts","webpack://xterm/./src/browser/services/SelectionService.ts","webpack://xterm/./src/browser/services/Services.ts","webpack://xterm/./src/common/CircularList.ts","webpack://xterm/./src/common/Clone.ts","webpack://xterm/./src/common/Color.ts","webpack://xterm/./src/common/CoreTerminal.ts","webpack://xterm/./src/common/EventEmitter.ts","webpack://xterm/./src/common/InputHandler.ts","webpack://xterm/./src/common/Lifecycle.ts","webpack://xterm/./src/common/MultiKeyMap.ts","webpack://xterm/./src/common/Platform.ts","webpack://xterm/./src/common/SortedList.ts","webpack://xterm/./src/common/TypedArrayUtils.ts","webpack://xterm/./src/common/WindowsMode.ts","webpack://xterm/./src/common/buffer/AttributeData.ts","webpack://xterm/./src/common/buffer/Buffer.ts","webpack://xterm/./src/common/buffer/BufferLine.ts","webpack://xterm/./src/common/buffer/BufferRange.ts","webpack://xterm/./src/common/buffer/BufferReflow.ts","webpack://xterm/./src/common/buffer/BufferSet.ts","webpack://xterm/./src/common/buffer/CellData.ts","webpack://xterm/./src/common/buffer/Constants.ts","webpack://xterm/./src/common/buffer/Marker.ts","webpack://xterm/./src/common/data/Charsets.ts","webpack://xterm/./src/common/data/EscapeSequences.ts","webpack://xterm/./src/common/input/Keyboard.ts","webpack://xterm/./src/common/input/TextDecoder.ts","webpack://xterm/./src/common/input/UnicodeV6.ts","webpack://xterm/./src/common/input/WriteBuffer.ts","webpack://xterm/./src/common/input/XParseColor.ts","webpack://xterm/./src/common/parser/Constants.ts","webpack://xterm/./src/common/parser/DcsParser.ts","webpack://xterm/./src/common/parser/EscapeSequenceParser.ts","webpack://xterm/./src/common/parser/OscParser.ts","webpack://xterm/./src/common/parser/Params.ts","webpack://xterm/./src/common/public/AddonManager.ts","webpack://xterm/./src/common/public/BufferApiView.ts","webpack://xterm/./src/common/public/BufferLineApiView.ts","webpack://xterm/./src/common/public/BufferNamespaceApi.ts","webpack://xterm/./src/common/public/ParserApi.ts","webpack://xterm/./src/common/public/UnicodeApi.ts","webpack://xterm/./src/common/services/BufferService.ts","webpack://xterm/./src/common/services/CharsetService.ts","webpack://xterm/./src/common/services/CoreMouseService.ts","webpack://xterm/./src/common/services/CoreService.ts","webpack://xterm/./src/common/services/DecorationService.ts","webpack://xterm/./src/common/services/DirtyRowService.ts","webpack://xterm/./src/common/services/InstantiationService.ts","webpack://xterm/./src/common/services/LogService.ts","webpack://xterm/./src/common/services/OptionsService.ts","webpack://xterm/./src/common/services/OscLinkService.ts","webpack://xterm/./src/common/services/ServiceRegistry.ts","webpack://xterm/./src/common/services/Services.ts","webpack://xterm/./src/common/services/UnicodeService.ts","webpack://xterm/webpack/bootstrap","webpack://xterm/./src/browser/public/Terminal.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function() {\nreturn ","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport * as Strings from 'browser/LocalizableStrings';\nimport { ITerminal, IRenderDebouncer } from 'browser/Types';\nimport { IBuffer } from 'common/buffer/Types';\nimport { isMac } from 'common/Platform';\nimport { TimeBasedDebouncer } from 'browser/TimeBasedDebouncer';\nimport { addDisposableDomListener } from 'browser/Lifecycle';\nimport { Disposable } from 'common/Lifecycle';\nimport { ScreenDprMonitor } from 'browser/ScreenDprMonitor';\nimport { IRenderService } from 'browser/services/Services';\nimport { removeElementFromParent } from 'browser/Dom';\n\nconst MAX_ROWS_TO_READ = 20;\n\nconst enum BoundaryPosition {\n TOP,\n BOTTOM\n}\n\nexport class AccessibilityManager extends Disposable {\n private _accessibilityTreeRoot: HTMLElement;\n private _rowContainer: HTMLElement;\n private _rowElements: HTMLElement[];\n private _liveRegion: HTMLElement;\n private _liveRegionLineCount: number = 0;\n\n private _renderRowsDebouncer: IRenderDebouncer;\n private _screenDprMonitor: ScreenDprMonitor;\n\n private _topBoundaryFocusListener: (e: FocusEvent) => void;\n private _bottomBoundaryFocusListener: (e: FocusEvent) => void;\n\n /**\n * This queue has a character pushed to it for keys that are pressed, if the\n * next character added to the terminal is equal to the key char then it is\n * not announced (added to live region) because it has already been announced\n * by the textarea event (which cannot be canceled). There are some race\n * condition cases if there is typing while data is streaming, but this covers\n * the main case of typing into the prompt and inputting the answer to a\n * question (Y/N, etc.).\n */\n private _charsToConsume: string[] = [];\n\n private _charsToAnnounce: string = '';\n\n constructor(\n private readonly _terminal: ITerminal,\n private readonly _renderService: IRenderService\n ) {\n super();\n this._accessibilityTreeRoot = document.createElement('div');\n this._accessibilityTreeRoot.classList.add('xterm-accessibility');\n this._accessibilityTreeRoot.tabIndex = 0;\n\n this._rowContainer = document.createElement('div');\n this._rowContainer.setAttribute('role', 'list');\n this._rowContainer.classList.add('xterm-accessibility-tree');\n this._rowElements = [];\n for (let i = 0; i < this._terminal.rows; i++) {\n this._rowElements[i] = this._createAccessibilityTreeNode();\n this._rowContainer.appendChild(this._rowElements[i]);\n }\n\n this._topBoundaryFocusListener = e => this._onBoundaryFocus(e, BoundaryPosition.TOP);\n this._bottomBoundaryFocusListener = e => this._onBoundaryFocus(e, BoundaryPosition.BOTTOM);\n this._rowElements[0].addEventListener('focus', this._topBoundaryFocusListener);\n this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);\n\n this._refreshRowsDimensions();\n this._accessibilityTreeRoot.appendChild(this._rowContainer);\n\n this._renderRowsDebouncer = new TimeBasedDebouncer(this._renderRows.bind(this));\n this._refreshRows();\n\n this._liveRegion = document.createElement('div');\n this._liveRegion.classList.add('live-region');\n this._liveRegion.setAttribute('aria-live', 'assertive');\n this._accessibilityTreeRoot.appendChild(this._liveRegion);\n\n if (!this._terminal.element) {\n throw new Error('Cannot enable accessibility before Terminal.open');\n }\n this._terminal.element.insertAdjacentElement('afterbegin', this._accessibilityTreeRoot);\n\n this.register(this._renderRowsDebouncer);\n this.register(this._terminal.onResize(e => this._onResize(e.rows)));\n this.register(this._terminal.onRender(e => this._refreshRows(e.start, e.end)));\n this.register(this._terminal.onScroll(() => this._refreshRows()));\n // Line feed is an issue as the prompt won't be read out after a command is run\n this.register(this._terminal.onA11yChar(char => this._onChar(char)));\n this.register(this._terminal.onLineFeed(() => this._onChar('\\n')));\n this.register(this._terminal.onA11yTab(spaceCount => this._onTab(spaceCount)));\n this.register(this._terminal.onKey(e => this._onKey(e.key)));\n this.register(this._terminal.onBlur(() => this._clearLiveRegion()));\n this.register(this._renderService.onDimensionsChange(() => this._refreshRowsDimensions()));\n\n this._screenDprMonitor = new ScreenDprMonitor(window);\n this.register(this._screenDprMonitor);\n this._screenDprMonitor.setListener(() => this._refreshRowsDimensions());\n // This shouldn't be needed on modern browsers but is present in case the\n // media query that drives the ScreenDprMonitor isn't supported\n this.register(addDisposableDomListener(window, 'resize', () => this._refreshRowsDimensions()));\n }\n\n public dispose(): void {\n super.dispose();\n removeElementFromParent(this._accessibilityTreeRoot);\n this._rowElements.length = 0;\n }\n\n private _onBoundaryFocus(e: FocusEvent, position: BoundaryPosition): void {\n const boundaryElement = e.target as HTMLElement;\n const beforeBoundaryElement = this._rowElements[position === BoundaryPosition.TOP ? 1 : this._rowElements.length - 2];\n\n // Don't scroll if the buffer top has reached the end in that direction\n const posInSet = boundaryElement.getAttribute('aria-posinset');\n const lastRowPos = position === BoundaryPosition.TOP ? '1' : `${this._terminal.buffer.lines.length}`;\n if (posInSet === lastRowPos) {\n return;\n }\n\n // Don't scroll when the last focused item was not the second row (focus is going the other\n // direction)\n if (e.relatedTarget !== beforeBoundaryElement) {\n return;\n }\n\n // Remove old boundary element from array\n let topBoundaryElement: HTMLElement;\n let bottomBoundaryElement: HTMLElement;\n if (position === BoundaryPosition.TOP) {\n topBoundaryElement = boundaryElement;\n bottomBoundaryElement = this._rowElements.pop()!;\n this._rowContainer.removeChild(bottomBoundaryElement);\n } else {\n topBoundaryElement = this._rowElements.shift()!;\n bottomBoundaryElement = boundaryElement;\n this._rowContainer.removeChild(topBoundaryElement);\n }\n\n // Remove listeners from old boundary elements\n topBoundaryElement.removeEventListener('focus', this._topBoundaryFocusListener);\n bottomBoundaryElement.removeEventListener('focus', this._bottomBoundaryFocusListener);\n\n // Add new element to array/DOM\n if (position === BoundaryPosition.TOP) {\n const newElement = this._createAccessibilityTreeNode();\n this._rowElements.unshift(newElement);\n this._rowContainer.insertAdjacentElement('afterbegin', newElement);\n } else {\n const newElement = this._createAccessibilityTreeNode();\n this._rowElements.push(newElement);\n this._rowContainer.appendChild(newElement);\n }\n\n // Add listeners to new boundary elements\n this._rowElements[0].addEventListener('focus', this._topBoundaryFocusListener);\n this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);\n\n // Scroll up\n this._terminal.scrollLines(position === BoundaryPosition.TOP ? -1 : 1);\n\n // Focus new boundary before element\n this._rowElements[position === BoundaryPosition.TOP ? 1 : this._rowElements.length - 2].focus();\n\n // Prevent the standard behavior\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n private _onResize(rows: number): void {\n // Remove bottom boundary listener\n this._rowElements[this._rowElements.length - 1].removeEventListener('focus', this._bottomBoundaryFocusListener);\n\n // Grow rows as required\n for (let i = this._rowContainer.children.length; i < this._terminal.rows; i++) {\n this._rowElements[i] = this._createAccessibilityTreeNode();\n this._rowContainer.appendChild(this._rowElements[i]);\n }\n // Shrink rows as required\n while (this._rowElements.length > rows) {\n this._rowContainer.removeChild(this._rowElements.pop()!);\n }\n\n // Add bottom boundary listener\n this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);\n\n this._refreshRowsDimensions();\n }\n\n private _createAccessibilityTreeNode(): HTMLElement {\n const element = document.createElement('div');\n element.setAttribute('role', 'listitem');\n element.tabIndex = -1;\n this._refreshRowDimensions(element);\n return element;\n }\n\n private _onTab(spaceCount: number): void {\n for (let i = 0; i < spaceCount; i++) {\n this._onChar(' ');\n }\n }\n\n private _onChar(char: string): void {\n if (this._liveRegionLineCount < MAX_ROWS_TO_READ + 1) {\n if (this._charsToConsume.length > 0) {\n // Have the screen reader ignore the char if it was just input\n const shiftedChar = this._charsToConsume.shift();\n if (shiftedChar !== char) {\n this._charsToAnnounce += char;\n }\n } else {\n this._charsToAnnounce += char;\n }\n\n if (char === '\\n') {\n this._liveRegionLineCount++;\n if (this._liveRegionLineCount === MAX_ROWS_TO_READ + 1) {\n this._liveRegion.textContent += Strings.tooMuchOutput;\n }\n }\n\n // Only detach/attach on mac as otherwise messages can go unaccounced\n if (isMac) {\n if (this._liveRegion.textContent && this._liveRegion.textContent.length > 0 && !this._liveRegion.parentNode) {\n setTimeout(() => {\n this._accessibilityTreeRoot.appendChild(this._liveRegion);\n }, 0);\n }\n }\n }\n }\n\n private _clearLiveRegion(): void {\n this._liveRegion.textContent = '';\n this._liveRegionLineCount = 0;\n\n // Only detach/attach on mac as otherwise messages can go unaccounced\n if (isMac) {\n removeElementFromParent(this._liveRegion);\n }\n }\n\n private _onKey(keyChar: string): void {\n this._clearLiveRegion();\n this._charsToConsume.push(keyChar);\n }\n\n private _refreshRows(start?: number, end?: number): void {\n this._renderRowsDebouncer.refresh(start, end, this._terminal.rows);\n }\n\n private _renderRows(start: number, end: number): void {\n const buffer: IBuffer = this._terminal.buffer;\n const setSize = buffer.lines.length.toString();\n for (let i = start; i <= end; i++) {\n const lineData = buffer.translateBufferLineToString(buffer.ydisp + i, true);\n const posInSet = (buffer.ydisp + i + 1).toString();\n const element = this._rowElements[i];\n if (element) {\n if (lineData.length === 0) {\n element.innerText = '\\u00a0';\n } else {\n element.textContent = lineData;\n }\n element.setAttribute('aria-posinset', posInSet);\n element.setAttribute('aria-setsize', setSize);\n }\n }\n this._announceCharacters();\n }\n\n private _refreshRowsDimensions(): void {\n if (!this._renderService.dimensions.actualCellHeight) {\n return;\n }\n if (this._rowElements.length !== this._terminal.rows) {\n this._onResize(this._terminal.rows);\n }\n for (let i = 0; i < this._terminal.rows; i++) {\n this._refreshRowDimensions(this._rowElements[i]);\n }\n }\n\n private _refreshRowDimensions(element: HTMLElement): void {\n element.style.height = `${this._renderService.dimensions.actualCellHeight}px`;\n }\n\n private _announceCharacters(): void {\n if (this._charsToAnnounce.length === 0) {\n return;\n }\n this._liveRegion.textContent += this._charsToAnnounce;\n this._charsToAnnounce = '';\n }\n}\n","/**\n * Copyright (c) 2016 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ISelectionService } from 'browser/services/Services';\nimport { ICoreService } from 'common/services/Services';\n\n/**\n * Prepares text to be pasted into the terminal by normalizing the line endings\n * @param text The pasted text that needs processing before inserting into the terminal\n */\nexport function prepareTextForTerminal(text: string): string {\n return text.replace(/\\r?\\n/g, '\\r');\n}\n\n/**\n * Bracket text for paste, if necessary, as per https://cirw.in/blog/bracketed-paste\n * @param text The pasted text to bracket\n */\nexport function bracketTextForPaste(text: string, bracketedPasteMode: boolean): string {\n if (bracketedPasteMode) {\n return '\\x1b[200~' + text + '\\x1b[201~';\n }\n return text;\n}\n\n/**\n * Binds copy functionality to the given terminal.\n * @param ev The original copy event to be handled\n */\nexport function copyHandler(ev: ClipboardEvent, selectionService: ISelectionService): void {\n if (ev.clipboardData) {\n ev.clipboardData.setData('text/plain', selectionService.selectionText);\n }\n // Prevent or the original text will be copied.\n ev.preventDefault();\n}\n\n/**\n * Redirect the clipboard's data to the terminal's input handler.\n * @param ev The original paste event to be handled\n * @param term The terminal on which to apply the handled paste event\n */\nexport function handlePasteEvent(ev: ClipboardEvent, textarea: HTMLTextAreaElement, coreService: ICoreService): void {\n ev.stopPropagation();\n if (ev.clipboardData) {\n const text = ev.clipboardData.getData('text/plain');\n paste(text, textarea, coreService);\n }\n}\n\nexport function paste(text: string, textarea: HTMLTextAreaElement, coreService: ICoreService): void {\n text = prepareTextForTerminal(text);\n text = bracketTextForPaste(text, coreService.decPrivateModes.bracketedPasteMode);\n coreService.triggerDataEvent(text, true);\n textarea.value = '';\n}\n\n/**\n * Moves the textarea under the mouse cursor and focuses it.\n * @param ev The original right click event to be handled.\n * @param textarea The terminal's textarea.\n */\nexport function moveTextAreaUnderMouseCursor(ev: MouseEvent, textarea: HTMLTextAreaElement, screenElement: HTMLElement): void {\n\n // Calculate textarea position relative to the screen element\n const pos = screenElement.getBoundingClientRect();\n const left = ev.clientX - pos.left - 10;\n const top = ev.clientY - pos.top - 10;\n\n // Bring textarea at the cursor position\n textarea.style.width = '20px';\n textarea.style.height = '20px';\n textarea.style.left = `${left}px`;\n textarea.style.top = `${top}px`;\n textarea.style.zIndex = '1000';\n\n textarea.focus();\n}\n\n/**\n * Bind to right-click event and allow right-click copy and paste.\n * @param ev The original right click event to be handled.\n * @param textarea The terminal's textarea.\n * @param selectionService The terminal's selection manager.\n * @param shouldSelectWord If true and there is no selection the current word will be selected\n */\nexport function rightClickHandler(ev: MouseEvent, textarea: HTMLTextAreaElement, screenElement: HTMLElement, selectionService: ISelectionService, shouldSelectWord: boolean): void {\n moveTextAreaUnderMouseCursor(ev, textarea, screenElement);\n\n if (shouldSelectWord) {\n selectionService.rightClickSelect(ev);\n }\n\n // Get textarea ready to copy from the context menu\n textarea.value = selectionService.selectionText;\n textarea.select();\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IColorContrastCache } from 'browser/Types';\nimport { IColor } from 'common/Types';\nimport { TwoKeyMap } from 'common/MultiKeyMap';\n\nexport class ColorContrastCache implements IColorContrastCache {\n private _color: TwoKeyMap = new TwoKeyMap();\n private _css: TwoKeyMap = new TwoKeyMap();\n\n public setCss(bg: number, fg: number, value: string | null): void {\n this._css.set(bg, fg, value);\n }\n\n public getCss(bg: number, fg: number): string | null | undefined {\n return this._css.get(bg, fg);\n }\n\n public setColor(bg: number, fg: number, value: IColor | null): void {\n this._color.set(bg, fg, value);\n }\n\n public getColor(bg: number, fg: number): IColor | null | undefined {\n return this._color.get(bg, fg);\n }\n\n public clear(): void {\n this._color.clear();\n this._css.clear();\n }\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IColorManager, IColorSet, IColorContrastCache } from 'browser/Types';\nimport { ITheme } from 'common/services/Services';\nimport { channels, color, css } from 'common/Color';\nimport { ColorContrastCache } from 'browser/ColorContrastCache';\nimport { ColorIndex, IColor } from 'common/Types';\n\n\ninterface IRestoreColorSet {\n foreground: IColor;\n background: IColor;\n cursor: IColor;\n ansi: IColor[];\n}\n\n\nconst DEFAULT_FOREGROUND = css.toColor('#ffffff');\nconst DEFAULT_BACKGROUND = css.toColor('#000000');\nconst DEFAULT_CURSOR = css.toColor('#ffffff');\nconst DEFAULT_CURSOR_ACCENT = css.toColor('#000000');\nconst DEFAULT_SELECTION = {\n css: 'rgba(255, 255, 255, 0.3)',\n rgba: 0xFFFFFF4D\n};\n\n// An IIFE to generate DEFAULT_ANSI_COLORS.\nexport const DEFAULT_ANSI_COLORS = Object.freeze((() => {\n const colors = [\n // dark:\n css.toColor('#2e3436'),\n css.toColor('#cc0000'),\n css.toColor('#4e9a06'),\n css.toColor('#c4a000'),\n css.toColor('#3465a4'),\n css.toColor('#75507b'),\n css.toColor('#06989a'),\n css.toColor('#d3d7cf'),\n // bright:\n css.toColor('#555753'),\n css.toColor('#ef2929'),\n css.toColor('#8ae234'),\n css.toColor('#fce94f'),\n css.toColor('#729fcf'),\n css.toColor('#ad7fa8'),\n css.toColor('#34e2e2'),\n css.toColor('#eeeeec')\n ];\n\n // Fill in the remaining 240 ANSI colors.\n // Generate colors (16-231)\n const v = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff];\n for (let i = 0; i < 216; i++) {\n const r = v[(i / 36) % 6 | 0];\n const g = v[(i / 6) % 6 | 0];\n const b = v[i % 6];\n colors.push({\n css: channels.toCss(r, g, b),\n rgba: channels.toRgba(r, g, b)\n });\n }\n\n // Generate greys (232-255)\n for (let i = 0; i < 24; i++) {\n const c = 8 + i * 10;\n colors.push({\n css: channels.toCss(c, c, c),\n rgba: channels.toRgba(c, c, c)\n });\n }\n\n return colors;\n})());\n\n/**\n * Manages the source of truth for a terminal's colors.\n */\nexport class ColorManager implements IColorManager {\n public colors: IColorSet;\n private _ctx: CanvasRenderingContext2D;\n private _litmusColor: CanvasGradient;\n private _contrastCache: IColorContrastCache;\n private _restoreColors!: IRestoreColorSet;\n\n constructor(document: Document, public allowTransparency: boolean) {\n const canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('Could not get rendering context');\n }\n this._ctx = ctx;\n this._ctx.globalCompositeOperation = 'copy';\n this._litmusColor = this._ctx.createLinearGradient(0, 0, 1, 1);\n this._contrastCache = new ColorContrastCache();\n this.colors = {\n foreground: DEFAULT_FOREGROUND,\n background: DEFAULT_BACKGROUND,\n cursor: DEFAULT_CURSOR,\n cursorAccent: DEFAULT_CURSOR_ACCENT,\n selectionForeground: undefined,\n selectionBackgroundTransparent: DEFAULT_SELECTION,\n selectionBackgroundOpaque: color.blend(DEFAULT_BACKGROUND, DEFAULT_SELECTION),\n selectionInactiveBackgroundTransparent: DEFAULT_SELECTION,\n selectionInactiveBackgroundOpaque: color.blend(DEFAULT_BACKGROUND, DEFAULT_SELECTION),\n ansi: DEFAULT_ANSI_COLORS.slice(),\n contrastCache: this._contrastCache\n };\n this._updateRestoreColors();\n }\n\n public onOptionsChange(key: string, value: any): void {\n switch (key) {\n case 'minimumContrastRatio':\n this._contrastCache.clear();\n break;\n case 'allowTransparency':\n this.allowTransparency = value;\n break;\n }\n }\n\n /**\n * Sets the terminal's theme.\n * @param theme The theme to use. If a partial theme is provided then default\n * colors will be used where colors are not defined.\n */\n public setTheme(theme: ITheme = {}): void {\n this.colors.foreground = this._parseColor(theme.foreground, DEFAULT_FOREGROUND);\n this.colors.background = this._parseColor(theme.background, DEFAULT_BACKGROUND);\n this.colors.cursor = this._parseColor(theme.cursor, DEFAULT_CURSOR, true);\n this.colors.cursorAccent = this._parseColor(theme.cursorAccent, DEFAULT_CURSOR_ACCENT, true);\n this.colors.selectionBackgroundTransparent = this._parseColor(theme.selectionBackground, DEFAULT_SELECTION, true);\n this.colors.selectionBackgroundOpaque = color.blend(this.colors.background, this.colors.selectionBackgroundTransparent);\n this.colors.selectionInactiveBackgroundTransparent = this._parseColor(theme.selectionInactiveBackground, this.colors.selectionBackgroundTransparent, true);\n this.colors.selectionInactiveBackgroundOpaque = color.blend(this.colors.background, this.colors.selectionInactiveBackgroundTransparent);\n const nullColor: IColor = {\n css: '',\n rgba: 0\n };\n this.colors.selectionForeground = theme.selectionForeground ? this._parseColor(theme.selectionForeground, nullColor) : undefined;\n if (this.colors.selectionForeground === nullColor) {\n this.colors.selectionForeground = undefined;\n }\n\n /**\n * If selection color is opaque, blend it with background with 0.3 opacity\n * Issue #2737\n */\n if (color.isOpaque(this.colors.selectionBackgroundTransparent)) {\n const opacity = 0.3;\n this.colors.selectionBackgroundTransparent = color.opacity(this.colors.selectionBackgroundTransparent, opacity);\n }\n if (color.isOpaque(this.colors.selectionInactiveBackgroundTransparent)) {\n const opacity = 0.3;\n this.colors.selectionInactiveBackgroundTransparent = color.opacity(this.colors.selectionInactiveBackgroundTransparent, opacity);\n }\n this.colors.ansi = DEFAULT_ANSI_COLORS.slice();\n this.colors.ansi[0] = this._parseColor(theme.black, DEFAULT_ANSI_COLORS[0]);\n this.colors.ansi[1] = this._parseColor(theme.red, DEFAULT_ANSI_COLORS[1]);\n this.colors.ansi[2] = this._parseColor(theme.green, DEFAULT_ANSI_COLORS[2]);\n this.colors.ansi[3] = this._parseColor(theme.yellow, DEFAULT_ANSI_COLORS[3]);\n this.colors.ansi[4] = this._parseColor(theme.blue, DEFAULT_ANSI_COLORS[4]);\n this.colors.ansi[5] = this._parseColor(theme.magenta, DEFAULT_ANSI_COLORS[5]);\n this.colors.ansi[6] = this._parseColor(theme.cyan, DEFAULT_ANSI_COLORS[6]);\n this.colors.ansi[7] = this._parseColor(theme.white, DEFAULT_ANSI_COLORS[7]);\n this.colors.ansi[8] = this._parseColor(theme.brightBlack, DEFAULT_ANSI_COLORS[8]);\n this.colors.ansi[9] = this._parseColor(theme.brightRed, DEFAULT_ANSI_COLORS[9]);\n this.colors.ansi[10] = this._parseColor(theme.brightGreen, DEFAULT_ANSI_COLORS[10]);\n this.colors.ansi[11] = this._parseColor(theme.brightYellow, DEFAULT_ANSI_COLORS[11]);\n this.colors.ansi[12] = this._parseColor(theme.brightBlue, DEFAULT_ANSI_COLORS[12]);\n this.colors.ansi[13] = this._parseColor(theme.brightMagenta, DEFAULT_ANSI_COLORS[13]);\n this.colors.ansi[14] = this._parseColor(theme.brightCyan, DEFAULT_ANSI_COLORS[14]);\n this.colors.ansi[15] = this._parseColor(theme.brightWhite, DEFAULT_ANSI_COLORS[15]);\n if (theme.extendedAnsi) {\n const colorCount = Math.min(this.colors.ansi.length - 16, theme.extendedAnsi.length);\n for (let i = 0; i < colorCount; i++) {\n this.colors.ansi[i + 16] = this._parseColor(theme.extendedAnsi[i], DEFAULT_ANSI_COLORS[i + 16]);\n }\n }\n // Clear our the cache\n this._contrastCache.clear();\n this._updateRestoreColors();\n }\n\n public restoreColor(slot?: ColorIndex): void {\n // unset slot restores all ansi colors\n if (slot === undefined) {\n for (let i = 0; i < this._restoreColors.ansi.length; ++i) {\n this.colors.ansi[i] = this._restoreColors.ansi[i];\n }\n return;\n }\n switch (slot) {\n case ColorIndex.FOREGROUND:\n this.colors.foreground = this._restoreColors.foreground;\n break;\n case ColorIndex.BACKGROUND:\n this.colors.background = this._restoreColors.background;\n break;\n case ColorIndex.CURSOR:\n this.colors.cursor = this._restoreColors.cursor;\n break;\n default:\n this.colors.ansi[slot] = this._restoreColors.ansi[slot];\n }\n }\n\n private _updateRestoreColors(): void {\n this._restoreColors = {\n foreground: this.colors.foreground,\n background: this.colors.background,\n cursor: this.colors.cursor,\n ansi: this.colors.ansi.slice()\n };\n }\n\n private _parseColor(\n css: string | undefined,\n fallback: IColor,\n allowTransparency: boolean = this.allowTransparency\n ): IColor {\n if (css === undefined) {\n return fallback;\n }\n\n // If parsing the value results in failure, then it must be ignored, and the attribute must\n // retain its previous value.\n // -- https://html.spec.whatwg.org/multipage/canvas.html#fill-and-stroke-styles\n this._ctx.fillStyle = this._litmusColor;\n this._ctx.fillStyle = css;\n if (typeof this._ctx.fillStyle !== 'string') {\n console.warn(`Color: ${css} is invalid using fallback ${fallback.css}`);\n return fallback;\n }\n\n this._ctx.fillRect(0, 0, 1, 1);\n const data = this._ctx.getImageData(0, 0, 1, 1).data;\n\n // Check if the printed color was transparent\n if (data[3] !== 0xFF) {\n if (!allowTransparency) {\n // Ideally we'd just ignore the alpha channel, but...\n //\n // Browsers may not give back exactly the same RGB values we put in, because most/all\n // convert the color to a pre-multiplied representation. getImageData converts that back to\n // a un-premultipled representation, but the precision loss may make the RGB channels unuable\n // on their own.\n //\n // E.g. In Chrome #12345610 turns into #10305010, and in the extreme case, 0xFFFFFF00 turns\n // into 0x00000000.\n //\n // \"Note: Due to the lossy nature of converting to and from premultiplied alpha color values,\n // pixels that have just been set using putImageData() might be returned to an equivalent\n // getImageData() as different values.\"\n // -- https://html.spec.whatwg.org/multipage/canvas.html#pixel-manipulation\n //\n // So let's just use the fallback color in this case instead.\n console.warn(\n `Color: ${css} is using transparency, but allowTransparency is false. ` +\n `Using fallback ${fallback.css}.`\n );\n return fallback;\n }\n\n // https://html.spec.whatwg.org/multipage/canvas.html#serialisation-of-a-color\n // the color value has alpha less than 1.0, and the string is the color value in the CSS rgba()\n const [r, g, b, a] = this._ctx.fillStyle.substring(5, this._ctx.fillStyle.length - 1).split(',').map(component => Number(component));\n const alpha = Math.round(a * 255);\n const rgba: number = channels.toRgba(r, g, b, alpha);\n return {\n rgba,\n css\n };\n }\n\n return {\n // https://html.spec.whatwg.org/multipage/canvas.html#serialisation-of-a-color\n // if it has alpha equal to 1.0, then the string is a lowercase six-digit hex value, prefixed with a \"#\" character\n css: this._ctx.fillStyle,\n rgba: channels.toRgba(data[0], data[1], data[2], data[3])\n };\n }\n}\n","/**\n * Copyright (c) 2020 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nexport function removeElementFromParent(...elements: (HTMLElement | undefined)[]): void {\n for (const e of elements) {\n e?.parentElement?.removeChild(e);\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IDisposable } from 'common/Types';\n\n/**\n * Adds a disposable listener to a node in the DOM, returning the disposable.\n * @param type The event type.\n * @param handler The handler for the listener.\n */\nexport function addDisposableDomListener(\n node: Element | Window | Document,\n type: string,\n handler: (e: any) => void,\n options?: boolean | AddEventListenerOptions\n): IDisposable {\n node.addEventListener(type, handler, options);\n let disposed = false;\n return {\n dispose: () => {\n if (disposed) {\n return;\n }\n disposed = true;\n node.removeEventListener(type, handler, options);\n }\n };\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ILinkifier2, ILinkProvider, IBufferCellPosition, ILink, ILinkifierEvent, ILinkDecorations, ILinkWithState } from 'browser/Types';\nimport { IDisposable } from 'common/Types';\nimport { IMouseService, IRenderService } from './services/Services';\nimport { IBufferService } from 'common/services/Services';\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\nimport { Disposable, getDisposeArrayDisposable, disposeArray } from 'common/Lifecycle';\nimport { addDisposableDomListener } from 'browser/Lifecycle';\n\nexport class Linkifier2 extends Disposable implements ILinkifier2 {\n private _element: HTMLElement | undefined;\n private _mouseService: IMouseService | undefined;\n private _renderService: IRenderService | undefined;\n private _linkProviders: ILinkProvider[] = [];\n public get currentLink(): ILinkWithState | undefined { return this._currentLink; }\n protected _currentLink: ILinkWithState | undefined;\n private _mouseDownLink: ILinkWithState | undefined;\n private _lastMouseEvent: MouseEvent | undefined;\n private _linkCacheDisposables: IDisposable[] = [];\n private _lastBufferCell: IBufferCellPosition | undefined;\n private _isMouseOut: boolean = true;\n private _activeProviderReplies: Map | undefined;\n private _activeLine: number = -1;\n\n private _onShowLinkUnderline = this.register(new EventEmitter());\n public get onShowLinkUnderline(): IEvent { return this._onShowLinkUnderline.event; }\n private _onHideLinkUnderline = this.register(new EventEmitter());\n public get onHideLinkUnderline(): IEvent { return this._onHideLinkUnderline.event; }\n\n constructor(\n @IBufferService private readonly _bufferService: IBufferService\n ) {\n super();\n this.register(getDisposeArrayDisposable(this._linkCacheDisposables));\n }\n\n public dispose(): void {\n super.dispose();\n this._lastMouseEvent = undefined;\n }\n\n public registerLinkProvider(linkProvider: ILinkProvider): IDisposable {\n this._linkProviders.push(linkProvider);\n return {\n dispose: () => {\n // Remove the link provider from the list\n const providerIndex = this._linkProviders.indexOf(linkProvider);\n\n if (providerIndex !== -1) {\n this._linkProviders.splice(providerIndex, 1);\n }\n }\n };\n }\n\n public attachToDom(element: HTMLElement, mouseService: IMouseService, renderService: IRenderService): void {\n this._element = element;\n this._mouseService = mouseService;\n this._renderService = renderService;\n\n this.register(addDisposableDomListener(this._element, 'mouseleave', () => {\n this._isMouseOut = true;\n this._clearCurrentLink();\n }));\n this.register(addDisposableDomListener(this._element, 'mousemove', this._onMouseMove.bind(this)));\n this.register(addDisposableDomListener(this._element, 'mousedown', this._handleMouseDown.bind(this)));\n this.register(addDisposableDomListener(this._element, 'mouseup', this._handleMouseUp.bind(this)));\n }\n\n private _onMouseMove(event: MouseEvent): void {\n this._lastMouseEvent = event;\n\n if (!this._element || !this._mouseService) {\n return;\n }\n\n const position = this._positionFromMouseEvent(event, this._element, this._mouseService);\n if (!position) {\n return;\n }\n this._isMouseOut = false;\n\n // Ignore the event if it's an embedder created hover widget\n const composedPath = event.composedPath() as HTMLElement[];\n for (let i = 0; i < composedPath.length; i++) {\n const target = composedPath[i];\n // Hit Terminal.element, break and continue\n if (target.classList.contains('xterm')) {\n break;\n }\n // It's a hover, don't respect hover event\n if (target.classList.contains('xterm-hover')) {\n return;\n }\n }\n\n if (!this._lastBufferCell || (position.x !== this._lastBufferCell.x || position.y !== this._lastBufferCell.y)) {\n this._onHover(position);\n this._lastBufferCell = position;\n }\n }\n\n private _onHover(position: IBufferCellPosition): void {\n // TODO: This currently does not cache link provider results across wrapped lines, activeLine should be something like `activeRange: {startY, endY}`\n // Check if we need to clear the link\n if (this._activeLine !== position.y) {\n this._clearCurrentLink();\n this._askForLink(position, false);\n return;\n }\n\n // Check the if the link is in the mouse position\n const isCurrentLinkInPosition = this._currentLink && this._linkAtPosition(this._currentLink.link, position);\n if (!isCurrentLinkInPosition) {\n this._clearCurrentLink();\n this._askForLink(position, true);\n }\n }\n\n private _askForLink(position: IBufferCellPosition, useLineCache: boolean): void {\n if (!this._activeProviderReplies || !useLineCache) {\n this._activeProviderReplies?.forEach(reply => {\n reply?.forEach(linkWithState => {\n if (linkWithState.link.dispose) {\n linkWithState.link.dispose();\n }\n });\n });\n this._activeProviderReplies = new Map();\n this._activeLine = position.y;\n }\n let linkProvided = false;\n\n // There is no link cached, so ask for one\n for (const [i, linkProvider] of this._linkProviders.entries()) {\n if (useLineCache) {\n const existingReply = this._activeProviderReplies?.get(i);\n // If there isn't a reply, the provider hasn't responded yet.\n\n // TODO: If there isn't a reply yet it means that the provider is still resolving. Ensuring\n // provideLinks isn't triggered again saves ILink.hover firing twice though. This probably\n // needs promises to get fixed\n if (existingReply) {\n linkProvided = this._checkLinkProviderResult(i, position, linkProvided);\n }\n } else {\n linkProvider.provideLinks(position.y, (links: ILink[] | undefined) => {\n if (this._isMouseOut) {\n return;\n }\n const linksWithState: ILinkWithState[] | undefined = links?.map(link => ({ link }));\n this._activeProviderReplies?.set(i, linksWithState);\n linkProvided = this._checkLinkProviderResult(i, position, linkProvided);\n\n // If all providers have responded, remove lower priority links that intersect ranges of\n // higher priority links\n if (this._activeProviderReplies?.size === this._linkProviders.length) {\n this._removeIntersectingLinks(position.y, this._activeProviderReplies);\n }\n });\n }\n }\n }\n\n private _removeIntersectingLinks(y: number, replies: Map): void {\n const occupiedCells = new Set();\n for (let i = 0; i < replies.size; i++) {\n const providerReply = replies.get(i);\n if (!providerReply) {\n continue;\n }\n for (let i = 0; i < providerReply.length; i++) {\n const linkWithState = providerReply[i];\n const startX = linkWithState.link.range.start.y < y ? 0 : linkWithState.link.range.start.x;\n const endX = linkWithState.link.range.end.y > y ? this._bufferService.cols : linkWithState.link.range.end.x;\n for (let x = startX; x <= endX; x++) {\n if (occupiedCells.has(x)) {\n providerReply.splice(i--, 1);\n break;\n }\n occupiedCells.add(x);\n }\n }\n }\n }\n\n private _checkLinkProviderResult(index: number, position: IBufferCellPosition, linkProvided: boolean): boolean {\n if (!this._activeProviderReplies) {\n return linkProvided;\n }\n\n const links = this._activeProviderReplies.get(index);\n\n // Check if every provider before this one has come back undefined\n let hasLinkBefore = false;\n for (let j = 0; j < index; j++) {\n if (!this._activeProviderReplies.has(j) || this._activeProviderReplies.get(j)) {\n hasLinkBefore = true;\n }\n }\n\n // If all providers with higher priority came back undefined, then this provider's link for\n // the position should be used\n if (!hasLinkBefore && links) {\n const linkAtPosition = links.find(link => this._linkAtPosition(link.link, position));\n if (linkAtPosition) {\n linkProvided = true;\n this._handleNewLink(linkAtPosition);\n }\n }\n\n // Check if all the providers have responded\n if (this._activeProviderReplies.size === this._linkProviders.length && !linkProvided) {\n // Respect the order of the link providers\n for (let j = 0; j < this._activeProviderReplies.size; j++) {\n const currentLink = this._activeProviderReplies.get(j)?.find(link => this._linkAtPosition(link.link, position));\n if (currentLink) {\n linkProvided = true;\n this._handleNewLink(currentLink);\n break;\n }\n }\n }\n\n return linkProvided;\n }\n\n private _handleMouseDown(): void {\n this._mouseDownLink = this._currentLink;\n }\n\n private _handleMouseUp(event: MouseEvent): void {\n if (!this._element || !this._mouseService || !this._currentLink) {\n return;\n }\n\n const position = this._positionFromMouseEvent(event, this._element, this._mouseService);\n if (!position) {\n return;\n }\n\n if (this._mouseDownLink === this._currentLink && this._linkAtPosition(this._currentLink.link, position)) {\n this._currentLink.link.activate(event, this._currentLink.link.text);\n }\n }\n\n private _clearCurrentLink(startRow?: number, endRow?: number): void {\n if (!this._element || !this._currentLink || !this._lastMouseEvent) {\n return;\n }\n\n // If we have a start and end row, check that the link is within it\n if (!startRow || !endRow || (this._currentLink.link.range.start.y >= startRow && this._currentLink.link.range.end.y <= endRow)) {\n this._linkLeave(this._element, this._currentLink.link, this._lastMouseEvent);\n this._currentLink = undefined;\n disposeArray(this._linkCacheDisposables);\n }\n }\n\n private _handleNewLink(linkWithState: ILinkWithState): void {\n if (!this._element || !this._lastMouseEvent || !this._mouseService) {\n return;\n }\n\n const position = this._positionFromMouseEvent(this._lastMouseEvent, this._element, this._mouseService);\n\n if (!position) {\n return;\n }\n\n // Trigger hover if the we have a link at the position\n if (this._linkAtPosition(linkWithState.link, position)) {\n this._currentLink = linkWithState;\n this._currentLink.state = {\n decorations: {\n underline: linkWithState.link.decorations === undefined ? true : linkWithState.link.decorations.underline,\n pointerCursor: linkWithState.link.decorations === undefined ? true : linkWithState.link.decorations.pointerCursor\n },\n isHovered: true\n };\n this._linkHover(this._element, linkWithState.link, this._lastMouseEvent);\n\n // Add listener for tracking decorations changes\n linkWithState.link.decorations = {} as ILinkDecorations;\n Object.defineProperties(linkWithState.link.decorations, {\n pointerCursor: {\n get: () => this._currentLink?.state?.decorations.pointerCursor,\n set: v => {\n if (this._currentLink?.state && this._currentLink.state.decorations.pointerCursor !== v) {\n this._currentLink.state.decorations.pointerCursor = v;\n if (this._currentLink.state.isHovered) {\n this._element?.classList.toggle('xterm-cursor-pointer', v);\n }\n }\n }\n },\n underline: {\n get: () => this._currentLink?.state?.decorations.underline,\n set: v => {\n if (this._currentLink?.state && this._currentLink?.state?.decorations.underline !== v) {\n this._currentLink.state.decorations.underline = v;\n if (this._currentLink.state.isHovered) {\n this._fireUnderlineEvent(linkWithState.link, v);\n }\n }\n }\n }\n });\n\n // Add listener for rerendering\n if (this._renderService) {\n this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange(e => {\n // When start is 0 a scroll most likely occurred, make sure links above the fold also get\n // cleared.\n const start = e.start === 0 ? 0 : e.start + 1 + this._bufferService.buffer.ydisp;\n this._clearCurrentLink(start, e.end + 1 + this._bufferService.buffer.ydisp);\n }));\n }\n }\n }\n\n protected _linkHover(element: HTMLElement, link: ILink, event: MouseEvent): void {\n if (this._currentLink?.state) {\n this._currentLink.state.isHovered = true;\n if (this._currentLink.state.decorations.underline) {\n this._fireUnderlineEvent(link, true);\n }\n if (this._currentLink.state.decorations.pointerCursor) {\n element.classList.add('xterm-cursor-pointer');\n }\n }\n\n if (link.hover) {\n link.hover(event, link.text);\n }\n }\n\n private _fireUnderlineEvent(link: ILink, showEvent: boolean): void {\n const range = link.range;\n const scrollOffset = this._bufferService.buffer.ydisp;\n const event = this._createLinkUnderlineEvent(range.start.x - 1, range.start.y - scrollOffset - 1, range.end.x, range.end.y - scrollOffset - 1, undefined);\n const emitter = showEvent ? this._onShowLinkUnderline : this._onHideLinkUnderline;\n emitter.fire(event);\n }\n\n protected _linkLeave(element: HTMLElement, link: ILink, event: MouseEvent): void {\n if (this._currentLink?.state) {\n this._currentLink.state.isHovered = false;\n if (this._currentLink.state.decorations.underline) {\n this._fireUnderlineEvent(link, false);\n }\n if (this._currentLink.state.decorations.pointerCursor) {\n element.classList.remove('xterm-cursor-pointer');\n }\n }\n\n if (link.leave) {\n link.leave(event, link.text);\n }\n }\n\n /**\n * Check if the buffer position is within the link\n * @param link\n * @param position\n */\n private _linkAtPosition(link: ILink, position: IBufferCellPosition): boolean {\n const sameLine = link.range.start.y === link.range.end.y;\n const wrappedFromLeft = link.range.start.y < position.y;\n const wrappedToRight = link.range.end.y > position.y;\n\n // If the start and end have the same y, then the position must be between start and end x\n // If not, then handle each case seperately, depending on which way it wraps\n return ((sameLine && link.range.start.x <= position.x && link.range.end.x >= position.x) ||\n (wrappedFromLeft && link.range.end.x >= position.x) ||\n (wrappedToRight && link.range.start.x <= position.x) ||\n (wrappedFromLeft && wrappedToRight)) &&\n link.range.start.y <= position.y &&\n link.range.end.y >= position.y;\n }\n\n /**\n * Get the buffer position from a mouse event\n * @param event\n */\n private _positionFromMouseEvent(event: MouseEvent, element: HTMLElement, mouseService: IMouseService): IBufferCellPosition | undefined {\n const coords = mouseService.getCoords(event, element, this._bufferService.cols, this._bufferService.rows);\n if (!coords) {\n return;\n }\n\n return { x: coords[0], y: coords[1] + this._bufferService.buffer.ydisp };\n }\n\n private _createLinkUnderlineEvent(x1: number, y1: number, x2: number, y2: number, fg: number | undefined): ILinkifierEvent {\n return { x1, y1, x2, y2, cols: this._bufferService.cols, fg };\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\n// This file contains strings that get exported in the API so they can be localized\n\n// eslint-disable-next-line prefer-const\nexport let promptLabel = 'Terminal input';\n\n// eslint-disable-next-line prefer-const\nexport let tooMuchOutput = 'Too much output to announce, navigate to rows manually to read';\n","/**\n * Copyright (c) 2022 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferRange, ILink, ILinkProvider } from 'browser/Types';\nimport { CellData } from 'common/buffer/CellData';\nimport { IBufferService, IOptionsService, IOscLinkService } from 'common/services/Services';\n\nexport class OscLinkProvider implements ILinkProvider {\n constructor(\n @IBufferService private readonly _bufferService: IBufferService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @IOscLinkService private readonly _oscLinkService: IOscLinkService\n ) {\n }\n\n public provideLinks(y: number, callback: (links: ILink[] | undefined) => void): void {\n const line = this._bufferService.buffer.lines.get(y - 1);\n if (!line) {\n callback(undefined);\n return;\n }\n\n const result: ILink[] = [];\n const linkHandler = this._optionsService.rawOptions.linkHandler;\n const cell = new CellData();\n const lineLength = line.getTrimmedLength();\n let currentLinkId = -1;\n let currentStart = -1;\n let finishLink = false;\n for (let x = 0; x < lineLength; x++) {\n // Minor optimization, only check for content if there isn't a link in case the link ends with\n // a null cell\n if (currentStart === -1 && !line.hasContent(x)) {\n continue;\n }\n\n line.loadCell(x, cell);\n if (cell.hasExtendedAttrs() && cell.extended.urlId) {\n if (currentStart === -1) {\n currentStart = x;\n currentLinkId = cell.extended.urlId;\n continue;\n } else {\n finishLink = cell.extended.urlId !== currentLinkId;\n }\n } else {\n if (currentStart !== -1) {\n finishLink = true;\n }\n }\n\n if (finishLink || (currentStart !== -1 && x === lineLength - 1)) {\n const text = this._oscLinkService.getLinkData(currentLinkId)?.uri;\n if (text) {\n // These ranges are 1-based\n const range: IBufferRange = {\n start: {\n x: currentStart + 1,\n y\n },\n end: {\n // Offset end x if it's a link that ends on the last cell in the line\n x: x + (!finishLink && x === lineLength - 1 ? 1 : 0),\n y\n }\n };\n // OSC links always use underline and pointer decorations\n result.push({\n text,\n range,\n activate: (e, text) => (linkHandler ? linkHandler.activate(e, text, range) : defaultActivate(e, text)),\n hover: (e, text) => linkHandler?.hover?.(e, text, range),\n leave: (e, text) => linkHandler?.leave?.(e, text, range)\n });\n }\n finishLink = false;\n\n // Clear link or start a new link if one starts immediately\n if (cell.hasExtendedAttrs() && cell.extended.urlId) {\n currentStart = x;\n currentLinkId = cell.extended.urlId;\n } else {\n currentStart = -1;\n currentLinkId = -1;\n }\n }\n }\n\n // TODO: Handle fetching and returning other link ranges to underline other links with the same id\n callback(result);\n }\n}\n\nfunction defaultActivate(e: MouseEvent, uri: string): void {\n const answer = confirm(`Do you want to navigate to ${uri}?`);\n if (answer) {\n const newWindow = window.open();\n if (newWindow) {\n try {\n newWindow.opener = null;\n } catch {\n // no-op, Electron can throw\n }\n newWindow.location.href = uri;\n } else {\n console.warn('Opening link blocked as opener could not be cleared');\n }\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IRenderDebouncerWithCallback } from 'browser/Types';\n\n/**\n * Debounces calls to render terminal rows using animation frames.\n */\nexport class RenderDebouncer implements IRenderDebouncerWithCallback {\n private _rowStart: number | undefined;\n private _rowEnd: number | undefined;\n private _rowCount: number | undefined;\n private _animationFrame: number | undefined;\n private _refreshCallbacks: FrameRequestCallback[] = [];\n\n constructor(\n private _parentWindow: Window,\n private _renderCallback: (start: number, end: number) => void\n ) {\n }\n\n public dispose(): void {\n if (this._animationFrame) {\n this._parentWindow.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = undefined;\n }\n }\n\n public addRefreshCallback(callback: FrameRequestCallback): number {\n this._refreshCallbacks.push(callback);\n if (!this._animationFrame) {\n this._animationFrame = this._parentWindow.requestAnimationFrame(() => this._innerRefresh());\n }\n return this._animationFrame;\n }\n\n public refresh(rowStart: number | undefined, rowEnd: number | undefined, rowCount: number): void {\n this._rowCount = rowCount;\n // Get the min/max row start/end for the arg values\n rowStart = rowStart !== undefined ? rowStart : 0;\n rowEnd = rowEnd !== undefined ? rowEnd : this._rowCount - 1;\n // Set the properties to the updated values\n this._rowStart = this._rowStart !== undefined ? Math.min(this._rowStart, rowStart) : rowStart;\n this._rowEnd = this._rowEnd !== undefined ? Math.max(this._rowEnd, rowEnd) : rowEnd;\n\n if (this._animationFrame) {\n return;\n }\n\n this._animationFrame = this._parentWindow.requestAnimationFrame(() => this._innerRefresh());\n }\n\n private _innerRefresh(): void {\n this._animationFrame = undefined;\n\n // Make sure values are set\n if (this._rowStart === undefined || this._rowEnd === undefined || this._rowCount === undefined) {\n this._runRefreshCallbacks();\n return;\n }\n\n // Clamp values\n const start = Math.max(this._rowStart, 0);\n const end = Math.min(this._rowEnd, this._rowCount - 1);\n\n // Reset debouncer (this happens before render callback as the render could trigger it again)\n this._rowStart = undefined;\n this._rowEnd = undefined;\n\n // Run render callback\n this._renderCallback(start, end);\n this._runRefreshCallbacks();\n }\n\n private _runRefreshCallbacks(): void {\n for (const callback of this._refreshCallbacks) {\n callback(0);\n }\n this._refreshCallbacks = [];\n }\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { Disposable } from 'common/Lifecycle';\n\nexport type ScreenDprListener = (newDevicePixelRatio?: number, oldDevicePixelRatio?: number) => void;\n\n/**\n * The screen device pixel ratio monitor allows listening for when the\n * window.devicePixelRatio value changes. This is done not with polling but with\n * the use of window.matchMedia to watch media queries. When the event fires,\n * the listener will be reattached using a different media query to ensure that\n * any further changes will register.\n *\n * The listener should fire on both window zoom changes and switching to a\n * monitor with a different DPI.\n */\nexport class ScreenDprMonitor extends Disposable {\n private _currentDevicePixelRatio: number;\n private _outerListener: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | undefined;\n private _listener: ScreenDprListener | undefined;\n private _resolutionMediaMatchList: MediaQueryList | undefined;\n\n constructor(private _parentWindow: Window) {\n super();\n this._currentDevicePixelRatio = this._parentWindow.devicePixelRatio;\n }\n\n public setListener(listener: ScreenDprListener): void {\n if (this._listener) {\n this.clearListener();\n }\n this._listener = listener;\n this._outerListener = () => {\n if (!this._listener) {\n return;\n }\n this._listener(this._parentWindow.devicePixelRatio, this._currentDevicePixelRatio);\n this._updateDpr();\n };\n this._updateDpr();\n }\n\n public dispose(): void {\n super.dispose();\n this.clearListener();\n }\n\n private _updateDpr(): void {\n if (!this._outerListener) {\n return;\n }\n\n // Clear listeners for old DPR\n this._resolutionMediaMatchList?.removeListener(this._outerListener);\n\n // Add listeners for new DPR\n this._currentDevicePixelRatio = this._parentWindow.devicePixelRatio;\n this._resolutionMediaMatchList = this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`);\n this._resolutionMediaMatchList.addListener(this._outerListener);\n }\n\n public clearListener(): void {\n if (!this._resolutionMediaMatchList || !this._listener || !this._outerListener) {\n return;\n }\n this._resolutionMediaMatchList.removeListener(this._outerListener);\n this._resolutionMediaMatchList = undefined;\n this._listener = undefined;\n this._outerListener = undefined;\n }\n}\n","/**\n * Copyright (c) 2014 The xterm.js authors. All rights reserved.\n * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)\n * @license MIT\n *\n * Originally forked from (with the author's permission):\n * Fabrice Bellard's javascript vt100 for jslinux:\n * http://bellard.org/jslinux/\n * Copyright (c) 2011 Fabrice Bellard\n * The original design remains. The terminal itself\n * has been extended to include xterm CSI codes, among\n * other features.\n *\n * Terminal Emulation References:\n * http://vt100.net/\n * http://invisible-island.net/xterm/ctlseqs/ctlseqs.txt\n * http://invisible-island.net/xterm/ctlseqs/ctlseqs.html\n * http://invisible-island.net/vttest/\n * http://www.inwap.com/pdp10/ansicode.txt\n * http://linux.die.net/man/4/console_codes\n * http://linux.die.net/man/7/urxvt\n */\n\nimport { ICompositionHelper, ITerminal, IBrowser, CustomKeyEventHandler, IViewport, ILinkifier2, CharacterJoinerHandler, IBufferRange } from 'browser/Types';\nimport { IRenderer } from 'browser/renderer/Types';\nimport { CompositionHelper } from 'browser/input/CompositionHelper';\nimport { Viewport } from 'browser/Viewport';\nimport { rightClickHandler, moveTextAreaUnderMouseCursor, handlePasteEvent, copyHandler, paste } from 'browser/Clipboard';\nimport { C0, C1_ESCAPED } from 'common/data/EscapeSequences';\nimport { WindowsOptionsReportType } from '../common/InputHandler';\nimport { SelectionService } from 'browser/services/SelectionService';\nimport * as Browser from 'common/Platform';\nimport { addDisposableDomListener } from 'browser/Lifecycle';\nimport * as Strings from 'browser/LocalizableStrings';\nimport { AccessibilityManager } from './AccessibilityManager';\nimport { ITheme, IMarker, IDisposable, ILinkProvider, IDecorationOptions, IDecoration } from 'xterm';\nimport { DomRenderer } from 'browser/renderer/dom/DomRenderer';\nimport { KeyboardResultType, CoreMouseEventType, CoreMouseButton, CoreMouseAction, ITerminalOptions, ScrollSource, IColorEvent, ColorIndex, ColorRequestType } from 'common/Types';\nimport { evaluateKeyboardEvent } from 'common/input/Keyboard';\nimport { EventEmitter, IEvent, forwardEvent } from 'common/EventEmitter';\nimport { DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine';\nimport { ColorManager } from 'browser/ColorManager';\nimport { RenderService } from 'browser/services/RenderService';\nimport { ICharSizeService, IRenderService, IMouseService, ISelectionService, ICoreBrowserService, ICharacterJoinerService } from 'browser/services/Services';\nimport { CharSizeService } from 'browser/services/CharSizeService';\nimport { IBuffer } from 'common/buffer/Types';\nimport { MouseService } from 'browser/services/MouseService';\nimport { Linkifier2 } from 'browser/Linkifier2';\nimport { CoreBrowserService } from 'browser/services/CoreBrowserService';\nimport { CoreTerminal } from 'common/CoreTerminal';\nimport { color, rgba } from 'common/Color';\nimport { CharacterJoinerService } from 'browser/services/CharacterJoinerService';\nimport { toRgbString } from 'common/input/XParseColor';\nimport { BufferDecorationRenderer } from 'browser/decorations/BufferDecorationRenderer';\nimport { OverviewRulerRenderer } from 'browser/decorations/OverviewRulerRenderer';\nimport { DecorationService } from 'common/services/DecorationService';\nimport { IDecorationService } from 'common/services/Services';\nimport { OscLinkProvider } from 'browser/OscLinkProvider';\n\n// Let it work inside Node.js for automated testing purposes.\nconst document: Document = (typeof window !== 'undefined') ? window.document : null as any;\n\nexport class Terminal extends CoreTerminal implements ITerminal {\n public textarea: HTMLTextAreaElement | undefined;\n public element: HTMLElement | undefined;\n public screenElement: HTMLElement | undefined;\n\n private _document: Document | undefined;\n private _viewportScrollArea: HTMLElement | undefined;\n private _viewportElement: HTMLElement | undefined;\n private _helperContainer: HTMLElement | undefined;\n private _compositionView: HTMLElement | undefined;\n\n private _overviewRulerRenderer: OverviewRulerRenderer | undefined;\n\n // private _visualBellTimer: number;\n\n public browser: IBrowser = Browser as any;\n\n private _customKeyEventHandler: CustomKeyEventHandler | undefined;\n\n // browser services\n private _decorationService: DecorationService;\n private _charSizeService: ICharSizeService | undefined;\n private _coreBrowserService: ICoreBrowserService | undefined;\n private _mouseService: IMouseService | undefined;\n private _renderService: IRenderService | undefined;\n private _characterJoinerService: ICharacterJoinerService | undefined;\n private _selectionService: ISelectionService | undefined;\n\n /**\n * Records whether the keydown event has already been handled and triggered a data event, if so\n * the keypress event should not trigger a data event but should still print to the textarea so\n * screen readers will announce it.\n */\n private _keyDownHandled: boolean = false;\n\n /**\n * Records whether a keydown event has occured since the last keyup event, i.e. whether a key\n * is currently \"pressed\".\n */\n private _keyDownSeen: boolean = false;\n\n /**\n * Records whether the keypress event has already been handled and triggered a data event, if so\n * the input event should not trigger a data event but should still print to the textarea so\n * screen readers will announce it.\n */\n private _keyPressHandled: boolean = false;\n\n /**\n * Records whether there has been a keydown event for a dead key without a corresponding keydown\n * event for the composed/alternative character. If we cancel the keydown event for the dead key,\n * no events will be emitted for the final character.\n */\n private _unprocessedDeadKey: boolean = false;\n\n public linkifier2: ILinkifier2;\n public viewport: IViewport | undefined;\n private _compositionHelper: ICompositionHelper | undefined;\n private _accessibilityManager: AccessibilityManager | undefined;\n private _colorManager: ColorManager | undefined;\n private _theme: ITheme | undefined;\n\n private _onCursorMove = new EventEmitter();\n public get onCursorMove(): IEvent { return this._onCursorMove.event; }\n private _onKey = new EventEmitter<{ key: string, domEvent: KeyboardEvent }>();\n public get onKey(): IEvent<{ key: string, domEvent: KeyboardEvent }> { return this._onKey.event; }\n private _onRender = new EventEmitter<{ start: number, end: number }>();\n public get onRender(): IEvent<{ start: number, end: number }> { return this._onRender.event; }\n private _onSelectionChange = new EventEmitter();\n public get onSelectionChange(): IEvent { return this._onSelectionChange.event; }\n private _onTitleChange = new EventEmitter();\n public get onTitleChange(): IEvent { return this._onTitleChange.event; }\n private _onBell = new EventEmitter();\n public get onBell(): IEvent { return this._onBell.event; }\n\n private _onFocus = new EventEmitter();\n public get onFocus(): IEvent { return this._onFocus.event; }\n private _onBlur = new EventEmitter();\n public get onBlur(): IEvent { return this._onBlur.event; }\n private _onA11yCharEmitter = new EventEmitter();\n public get onA11yChar(): IEvent { return this._onA11yCharEmitter.event; }\n private _onA11yTabEmitter = new EventEmitter();\n public get onA11yTab(): IEvent { return this._onA11yTabEmitter.event; }\n\n /**\n * Creates a new `Terminal` object.\n *\n * @param options An object containing a set of options, the available options are:\n * - `cursorBlink` (boolean): Whether the terminal cursor blinks\n * - `cols` (number): The number of columns of the terminal (horizontal size)\n * - `rows` (number): The number of rows of the terminal (vertical size)\n *\n * @public\n * @class Xterm Xterm\n * @alias module:xterm/src/xterm\n */\n constructor(\n options: Partial = {}\n ) {\n super(options);\n\n this._setup();\n\n this.linkifier2 = this.register(this._instantiationService.createInstance(Linkifier2));\n this.linkifier2.registerLinkProvider(this._instantiationService.createInstance(OscLinkProvider));\n this._decorationService = this._instantiationService.createInstance(DecorationService);\n this._instantiationService.setService(IDecorationService, this._decorationService);\n\n // Setup InputHandler listeners\n this.register(this._inputHandler.onRequestBell(() => this._onBell.fire()));\n this.register(this._inputHandler.onRequestRefreshRows((start, end) => this.refresh(start, end)));\n this.register(this._inputHandler.onRequestSendFocus(() => this._reportFocus()));\n this.register(this._inputHandler.onRequestReset(() => this.reset()));\n this.register(this._inputHandler.onRequestWindowsOptionsReport(type => this._reportWindowsOptions(type)));\n this.register(this._inputHandler.onColor((event) => this._handleColorEvent(event)));\n this.register(forwardEvent(this._inputHandler.onCursorMove, this._onCursorMove));\n this.register(forwardEvent(this._inputHandler.onTitleChange, this._onTitleChange));\n this.register(forwardEvent(this._inputHandler.onA11yChar, this._onA11yCharEmitter));\n this.register(forwardEvent(this._inputHandler.onA11yTab, this._onA11yTabEmitter));\n\n // Setup listeners\n this.register(this._bufferService.onResize(e => this._afterResize(e.cols, e.rows)));\n }\n\n /**\n * Handle color event from inputhandler for OSC 4|104 | 10|110 | 11|111 | 12|112.\n * An event from OSC 4|104 may contain multiple set or report requests, and multiple\n * or none restore requests (resetting all),\n * while an event from OSC 10|110 | 11|111 | 12|112 always contains a single request.\n */\n private _handleColorEvent(event: IColorEvent): void {\n if (!this._colorManager) return;\n for (const req of event) {\n let acc: 'foreground' | 'background' | 'cursor' | 'ansi' | undefined = undefined;\n let ident = '';\n switch (req.index) {\n case ColorIndex.FOREGROUND: // OSC 10 | 110\n acc = 'foreground';\n ident = '10';\n break;\n case ColorIndex.BACKGROUND: // OSC 11 | 111\n acc = 'background';\n ident = '11';\n break;\n case ColorIndex.CURSOR: // OSC 12 | 112\n acc = 'cursor';\n ident = '12';\n break;\n default: // OSC 4 | 104\n // we can skip the [0..255] range check here (already done in inputhandler)\n acc = 'ansi';\n ident = '4;' + req.index;\n }\n switch (req.type) {\n case ColorRequestType.REPORT:\n const channels = color.toColorRGB(acc === 'ansi'\n ? this._colorManager.colors.ansi[req.index]\n : this._colorManager.colors[acc]);\n this.coreService.triggerDataEvent(`${C0.ESC}]${ident};${toRgbString(channels)}${C1_ESCAPED.ST}`);\n break;\n case ColorRequestType.SET:\n if (acc === 'ansi') this._colorManager.colors.ansi[req.index] = rgba.toColor(...req.color);\n else this._colorManager.colors[acc] = rgba.toColor(...req.color);\n break;\n case ColorRequestType.RESTORE:\n this._colorManager.restoreColor(req.index);\n break;\n }\n }\n this._renderService?.setColors(this._colorManager.colors);\n this.viewport?.onThemeChange(this._colorManager.colors);\n }\n\n public dispose(): void {\n if (this._isDisposed) {\n return;\n }\n super.dispose();\n this._renderService?.dispose();\n this._customKeyEventHandler = undefined;\n this.write = () => { };\n this.element?.parentNode?.removeChild(this.element);\n }\n\n protected _setup(): void {\n super._setup();\n\n this._customKeyEventHandler = undefined;\n }\n\n /**\n * Convenience property to active buffer.\n */\n public get buffer(): IBuffer {\n return this.buffers.active;\n }\n\n /**\n * Focus the terminal. Delegates focus handling to the terminal's DOM element.\n */\n public focus(): void {\n if (this.textarea) {\n this.textarea.focus({ preventScroll: true });\n }\n }\n\n protected _updateOptions(key: string): void {\n super._updateOptions(key);\n\n // TODO: These listeners should be owned by individual components\n switch (key) {\n case 'fontFamily':\n case 'fontSize':\n // When the font changes the size of the cells may change which requires a renderer clear\n this._renderService?.clear();\n this._charSizeService?.measure();\n break;\n case 'cursorBlink':\n case 'cursorStyle':\n // The DOM renderer needs a row refresh to update the cursor styles\n this.refresh(this.buffer.y, this.buffer.y);\n break;\n case 'customGlyphs':\n case 'drawBoldTextInBrightColors':\n case 'letterSpacing':\n case 'lineHeight':\n case 'fontWeight':\n case 'fontWeightBold':\n case 'minimumContrastRatio':\n // When the font changes the size of the cells may change which requires a renderer clear\n if (this._renderService) {\n this._renderService.clear();\n this._renderService.onResize(this.cols, this.rows);\n this.refresh(0, this.rows - 1);\n }\n break;\n case 'scrollback':\n this.viewport?.syncScrollArea();\n break;\n case 'screenReaderMode':\n if (this.optionsService.rawOptions.screenReaderMode) {\n if (!this._accessibilityManager && this._renderService) {\n this._accessibilityManager = new AccessibilityManager(this, this._renderService);\n }\n } else {\n this._accessibilityManager?.dispose();\n this._accessibilityManager = undefined;\n }\n break;\n case 'tabStopWidth': this.buffers.setupTabStops(); break;\n case 'theme':\n this._setTheme(this.optionsService.rawOptions.theme);\n break;\n }\n }\n\n /**\n * Binds the desired focus behavior on a given terminal object.\n */\n private _onTextAreaFocus(ev: KeyboardEvent): void {\n if (this.coreService.decPrivateModes.sendFocus) {\n this.coreService.triggerDataEvent(C0.ESC + '[I');\n }\n this.updateCursorStyle(ev);\n this.element!.classList.add('focus');\n this._showCursor();\n this._onFocus.fire();\n }\n\n /**\n * Blur the terminal, calling the blur function on the terminal's underlying\n * textarea.\n */\n public blur(): void {\n return this.textarea?.blur();\n }\n\n /**\n * Binds the desired blur behavior on a given terminal object.\n */\n private _onTextAreaBlur(): void {\n // Text can safely be removed on blur. Doing it earlier could interfere with\n // screen readers reading it out.\n this.textarea!.value = '';\n this.refresh(this.buffer.y, this.buffer.y);\n if (this.coreService.decPrivateModes.sendFocus) {\n this.coreService.triggerDataEvent(C0.ESC + '[O');\n }\n this.element!.classList.remove('focus');\n this._onBlur.fire();\n }\n\n private _syncTextArea(): void {\n if (!this.textarea || !this.buffer.isCursorInViewport || this._compositionHelper!.isComposing || !this._renderService) {\n return;\n }\n const cursorY = this.buffer.ybase + this.buffer.y;\n const bufferLine = this.buffer.lines.get(cursorY);\n if (!bufferLine) {\n return;\n }\n const cursorX = Math.min(this.buffer.x, this.cols - 1);\n const cellHeight = this._renderService.dimensions.actualCellHeight;\n const width = bufferLine.getWidth(cursorX);\n const cellWidth = this._renderService.dimensions.actualCellWidth * width;\n const cursorTop = this.buffer.y * this._renderService.dimensions.actualCellHeight;\n const cursorLeft = cursorX * this._renderService.dimensions.actualCellWidth;\n\n // Sync the textarea to the exact position of the composition view so the IME knows where the\n // text is.\n this.textarea.style.left = cursorLeft + 'px';\n this.textarea.style.top = cursorTop + 'px';\n this.textarea.style.width = cellWidth + 'px';\n this.textarea.style.height = cellHeight + 'px';\n this.textarea.style.lineHeight = cellHeight + 'px';\n this.textarea.style.zIndex = '-5';\n }\n\n /**\n * Initialize default behavior\n */\n private _initGlobal(): void {\n this._bindKeys();\n\n // Bind clipboard functionality\n this.register(addDisposableDomListener(this.element!, 'copy', (event: ClipboardEvent) => {\n // If mouse events are active it means the selection manager is disabled and\n // copy should be handled by the host program.\n if (!this.hasSelection()) {\n return;\n }\n copyHandler(event, this._selectionService!);\n }));\n const pasteHandlerWrapper = (event: ClipboardEvent): void => handlePasteEvent(event, this.textarea!, this.coreService);\n this.register(addDisposableDomListener(this.textarea!, 'paste', pasteHandlerWrapper));\n this.register(addDisposableDomListener(this.element!, 'paste', pasteHandlerWrapper));\n\n // Handle right click context menus\n if (Browser.isFirefox) {\n // Firefox doesn't appear to fire the contextmenu event on right click\n this.register(addDisposableDomListener(this.element!, 'mousedown', (event: MouseEvent) => {\n if (event.button === 2) {\n rightClickHandler(event, this.textarea!, this.screenElement!, this._selectionService!, this.options.rightClickSelectsWord);\n }\n }));\n } else {\n this.register(addDisposableDomListener(this.element!, 'contextmenu', (event: MouseEvent) => {\n rightClickHandler(event, this.textarea!, this.screenElement!, this._selectionService!, this.options.rightClickSelectsWord);\n }));\n }\n\n // Move the textarea under the cursor when middle clicking on Linux to ensure\n // middle click to paste selection works. This only appears to work in Chrome\n // at the time is writing.\n if (Browser.isLinux) {\n // Use auxclick event over mousedown the latter doesn't seem to work. Note\n // that the regular click event doesn't fire for the middle mouse button.\n this.register(addDisposableDomListener(this.element!, 'auxclick', (event: MouseEvent) => {\n if (event.button === 1) {\n moveTextAreaUnderMouseCursor(event, this.textarea!, this.screenElement!);\n }\n }));\n }\n }\n\n /**\n * Apply key handling to the terminal\n */\n private _bindKeys(): void {\n this.register(addDisposableDomListener(this.textarea!, 'keyup', (ev: KeyboardEvent) => this._keyUp(ev), true));\n this.register(addDisposableDomListener(this.textarea!, 'keydown', (ev: KeyboardEvent) => this._keyDown(ev), true));\n this.register(addDisposableDomListener(this.textarea!, 'keypress', (ev: KeyboardEvent) => this._keyPress(ev), true));\n this.register(addDisposableDomListener(this.textarea!, 'compositionstart', () => this._compositionHelper!.compositionstart()));\n this.register(addDisposableDomListener(this.textarea!, 'compositionupdate', (e: CompositionEvent) => this._compositionHelper!.compositionupdate(e)));\n this.register(addDisposableDomListener(this.textarea!, 'compositionend', () => this._compositionHelper!.compositionend()));\n this.register(addDisposableDomListener(this.textarea!, 'input', (ev: InputEvent) => this._inputEvent(ev), true));\n this.register(this.onRender(() => this._compositionHelper!.updateCompositionElements()));\n }\n\n /**\n * Opens the terminal within an element.\n *\n * @param parent The element to create the terminal within.\n */\n public open(parent: HTMLElement): void {\n if (!parent) {\n throw new Error('Terminal requires a parent element.');\n }\n\n if (!parent.isConnected) {\n this._logService.debug('Terminal.open was called on an element that was not attached to the DOM');\n }\n\n this._document = parent.ownerDocument!;\n\n // Create main element container\n this.element = this._document.createElement('div');\n this.element.dir = 'ltr'; // xterm.css assumes LTR\n this.element.classList.add('terminal');\n this.element.classList.add('xterm');\n this.element.setAttribute('tabindex', '0');\n parent.appendChild(this.element);\n\n // Performance: Use a document fragment to build the terminal\n // viewport and helper elements detached from the DOM\n const fragment = document.createDocumentFragment();\n this._viewportElement = document.createElement('div');\n this._viewportElement.classList.add('xterm-viewport');\n fragment.appendChild(this._viewportElement);\n\n this._viewportScrollArea = document.createElement('div');\n this._viewportScrollArea.classList.add('xterm-scroll-area');\n this._viewportElement.appendChild(this._viewportScrollArea);\n\n this.screenElement = document.createElement('div');\n this.screenElement.classList.add('xterm-screen');\n // Create the container that will hold helpers like the textarea for\n // capturing DOM Events. Then produce the helpers.\n this._helperContainer = document.createElement('div');\n this._helperContainer.classList.add('xterm-helpers');\n this.screenElement.appendChild(this._helperContainer);\n fragment.appendChild(this.screenElement);\n\n this.textarea = document.createElement('textarea');\n this.textarea.classList.add('xterm-helper-textarea');\n this.textarea.setAttribute('aria-label', Strings.promptLabel);\n this.textarea.setAttribute('aria-multiline', 'false');\n this.textarea.setAttribute('autocorrect', 'off');\n this.textarea.setAttribute('autocapitalize', 'off');\n this.textarea.setAttribute('spellcheck', 'false');\n this.textarea.tabIndex = 0;\n this.register(addDisposableDomListener(this.textarea, 'focus', (ev: KeyboardEvent) => this._onTextAreaFocus(ev)));\n this.register(addDisposableDomListener(this.textarea, 'blur', () => this._onTextAreaBlur()));\n this._helperContainer.appendChild(this.textarea);\n\n this._coreBrowserService = this._instantiationService.createInstance(CoreBrowserService, this.textarea, this._document.defaultView ?? window);\n this._instantiationService.setService(ICoreBrowserService, this._coreBrowserService);\n\n this._charSizeService = this._instantiationService.createInstance(CharSizeService, this._document, this._helperContainer);\n this._instantiationService.setService(ICharSizeService, this._charSizeService);\n\n this._theme = this.options.theme || this._theme;\n this._colorManager = new ColorManager(document, this.options.allowTransparency);\n this.register(this.optionsService.onOptionChange(e => this._colorManager!.onOptionsChange(e, this.optionsService.rawOptions[e])));\n this._colorManager.setTheme(this._theme);\n\n this._characterJoinerService = this._instantiationService.createInstance(CharacterJoinerService);\n this._instantiationService.setService(ICharacterJoinerService, this._characterJoinerService);\n\n const renderer = this._createRenderer();\n this._renderService = this.register(this._instantiationService.createInstance(RenderService, renderer, this.rows, this.screenElement));\n this._instantiationService.setService(IRenderService, this._renderService);\n this.register(this._renderService.onRenderedViewportChange(e => this._onRender.fire(e)));\n this.onResize(e => this._renderService!.resize(e.cols, e.rows));\n\n this._compositionView = document.createElement('div');\n this._compositionView.classList.add('composition-view');\n this._compositionHelper = this._instantiationService.createInstance(CompositionHelper, this.textarea, this._compositionView);\n this._helperContainer.appendChild(this._compositionView);\n\n // Performance: Add viewport and helper elements from the fragment\n this.element.appendChild(fragment);\n\n this._mouseService = this._instantiationService.createInstance(MouseService);\n this._instantiationService.setService(IMouseService, this._mouseService);\n\n this.viewport = this._instantiationService.createInstance(Viewport,\n (amount: number) => this.scrollLines(amount, true, ScrollSource.VIEWPORT),\n this._viewportElement,\n this._viewportScrollArea,\n this.element\n );\n this.viewport.onThemeChange(this._colorManager.colors);\n this.register(this._inputHandler.onRequestSyncScrollBar(() => this.viewport!.syncScrollArea()));\n this.register(this.viewport);\n\n this.register(this.onCursorMove(() => {\n this._renderService!.onCursorMove();\n this._syncTextArea();\n }));\n this.register(this.onResize(() => this._renderService!.onResize(this.cols, this.rows)));\n this.register(this.onBlur(() => this._renderService!.onBlur()));\n this.register(this.onFocus(() => this._renderService!.onFocus()));\n this.register(this._renderService.onDimensionsChange(() => this.viewport!.syncScrollArea()));\n\n this._selectionService = this.register(this._instantiationService.createInstance(SelectionService,\n this.element,\n this.screenElement,\n this.linkifier2\n ));\n this._instantiationService.setService(ISelectionService, this._selectionService);\n this.register(this._selectionService.onRequestScrollLines(e => this.scrollLines(e.amount, e.suppressScrollEvent)));\n this.register(this._selectionService.onSelectionChange(() => this._onSelectionChange.fire()));\n this.register(this._selectionService.onRequestRedraw(e => this._renderService!.onSelectionChanged(e.start, e.end, e.columnSelectMode)));\n this.register(this._selectionService.onLinuxMouseSelection(text => {\n // If there's a new selection, put it into the textarea, focus and select it\n // in order to register it as a selection on the OS. This event is fired\n // only on Linux to enable middle click to paste selection.\n this.textarea!.value = text;\n this.textarea!.focus();\n this.textarea!.select();\n }));\n this.register(this._onScroll.event(ev => {\n this.viewport!.syncScrollArea();\n this._selectionService!.refresh();\n }));\n this.register(addDisposableDomListener(this._viewportElement, 'scroll', () => this._selectionService!.refresh()));\n\n this.linkifier2.attachToDom(this.screenElement, this._mouseService, this._renderService);\n this.register(this._instantiationService.createInstance(BufferDecorationRenderer, this.screenElement));\n this.register(addDisposableDomListener(this.element, 'mousedown', (e: MouseEvent) => this._selectionService!.onMouseDown(e)));\n\n // apply mouse event classes set by escape codes before terminal was attached\n if (this.coreMouseService.areMouseEventsActive) {\n this._selectionService.disable();\n this.element.classList.add('enable-mouse-events');\n } else {\n this._selectionService.enable();\n }\n\n if (this.options.screenReaderMode) {\n // Note that this must be done *after* the renderer is created in order to\n // ensure the correct order of the dprchange event\n this._accessibilityManager = new AccessibilityManager(this, this._renderService);\n }\n\n if (this.options.overviewRulerWidth) {\n this._overviewRulerRenderer = this.register(this._instantiationService.createInstance(OverviewRulerRenderer, this._viewportElement, this.screenElement));\n }\n this.optionsService.onOptionChange(() => {\n if (!this._overviewRulerRenderer && this.options.overviewRulerWidth && this._viewportElement && this.screenElement) {\n this._overviewRulerRenderer = this.register(this._instantiationService.createInstance(OverviewRulerRenderer, this._viewportElement, this.screenElement));\n }\n });\n // Measure the character size\n this._charSizeService.measure();\n\n // Setup loop that draws to screen\n this.refresh(0, this.rows - 1);\n\n // Initialize global actions that need to be taken on the document.\n this._initGlobal();\n\n // Listen for mouse events and translate\n // them into terminal mouse protocols.\n this.bindMouse();\n }\n\n private _createRenderer(): IRenderer {\n return this._instantiationService.createInstance(DomRenderer, this._colorManager!.colors, this.element!, this.screenElement!, this._viewportElement!, this.linkifier2);\n }\n\n /**\n * Sets the theme on the renderer. The renderer must have been initialized.\n * @param theme The theme to set.\n */\n private _setTheme(theme: ITheme): void {\n this._theme = theme;\n this._colorManager?.setTheme(theme);\n this._renderService?.setColors(this._colorManager!.colors);\n this.viewport?.onThemeChange(this._colorManager!.colors);\n }\n\n /**\n * Bind certain mouse events to the terminal.\n * By default only 3 button + wheel up/down is ativated. For higher buttons\n * no mouse report will be created. Typically the standard actions will be active.\n *\n * There are several reasons not to enable support for higher buttons/wheel:\n * - Button 4 and 5 are typically used for history back and forward navigation,\n * there is no straight forward way to supress/intercept those standard actions.\n * - Support for higher buttons does not work in some platform/browser combinations.\n * - Left/right wheel was not tested.\n * - Emulators vary in mouse button support, typically only 3 buttons and\n * wheel up/down work reliable.\n *\n * TODO: Move mouse event code into its own file.\n */\n public bindMouse(): void {\n const self = this;\n const el = this.element!;\n\n // send event to CoreMouseService\n function sendEvent(ev: MouseEvent | WheelEvent): boolean {\n // get mouse coordinates\n const pos = self._mouseService!.getMouseReportCoords(ev, self.screenElement!);\n if (!pos) {\n return false;\n }\n\n let but: CoreMouseButton;\n let action: CoreMouseAction | undefined;\n switch ((ev as any).overrideType || ev.type) {\n case 'mousemove':\n action = CoreMouseAction.MOVE;\n if (ev.buttons === undefined) {\n // buttons is not supported on macOS, try to get a value from button instead\n but = CoreMouseButton.NONE;\n if (ev.button !== undefined) {\n but = ev.button < 3 ? ev.button : CoreMouseButton.NONE;\n }\n } else {\n // according to MDN buttons only reports up to button 5 (AUX2)\n but = ev.buttons & 1 ? CoreMouseButton.LEFT :\n ev.buttons & 4 ? CoreMouseButton.MIDDLE :\n ev.buttons & 2 ? CoreMouseButton.RIGHT :\n CoreMouseButton.NONE; // fallback to NONE\n }\n break;\n case 'mouseup':\n action = CoreMouseAction.UP;\n but = ev.button < 3 ? ev.button : CoreMouseButton.NONE;\n break;\n case 'mousedown':\n action = CoreMouseAction.DOWN;\n but = ev.button < 3 ? ev.button : CoreMouseButton.NONE;\n break;\n case 'wheel':\n const amount = self.viewport!.getLinesScrolled(ev as WheelEvent);\n\n if (amount === 0) {\n return false;\n }\n\n action = (ev as WheelEvent).deltaY < 0 ? CoreMouseAction.UP : CoreMouseAction.DOWN;\n but = CoreMouseButton.WHEEL;\n break;\n default:\n // dont handle other event types by accident\n return false;\n }\n\n // exit if we cannot determine valid button/action values\n // do nothing for higher buttons than wheel\n if (action === undefined || but === undefined || but > CoreMouseButton.WHEEL) {\n return false;\n }\n\n return self.coreMouseService.triggerMouseEvent({\n col: pos.col,\n row: pos.row,\n x: pos.x,\n y: pos.y,\n button: but,\n action,\n ctrl: ev.ctrlKey,\n alt: ev.altKey,\n shift: ev.shiftKey\n });\n }\n\n /**\n * Event listener state handling.\n * We listen to the onProtocolChange event of CoreMouseService and put\n * requested listeners in `requestedEvents`. With this the listeners\n * have all bits to do the event listener juggling.\n * Note: 'mousedown' currently is \"always on\" and not managed\n * by onProtocolChange.\n */\n const requestedEvents: { [key: string]: ((ev: Event) => void) | null } = {\n mouseup: null,\n wheel: null,\n mousedrag: null,\n mousemove: null\n };\n const eventListeners: { [key: string]: (ev: any) => void | boolean } = {\n mouseup: (ev: MouseEvent) => {\n sendEvent(ev);\n if (!ev.buttons) {\n // if no other button is held remove global handlers\n this._document!.removeEventListener('mouseup', requestedEvents.mouseup!);\n if (requestedEvents.mousedrag) {\n this._document!.removeEventListener('mousemove', requestedEvents.mousedrag);\n }\n }\n return this.cancel(ev);\n },\n wheel: (ev: WheelEvent) => {\n sendEvent(ev);\n return this.cancel(ev, true);\n },\n mousedrag: (ev: MouseEvent) => {\n // deal only with move while a button is held\n if (ev.buttons) {\n sendEvent(ev);\n }\n },\n mousemove: (ev: MouseEvent) => {\n // deal only with move without any button\n if (!ev.buttons) {\n sendEvent(ev);\n }\n }\n };\n this.register(this.coreMouseService.onProtocolChange(events => {\n // apply global changes on events\n if (events) {\n if (this.optionsService.rawOptions.logLevel === 'debug') {\n this._logService.debug('Binding to mouse events:', this.coreMouseService.explainEvents(events));\n }\n this.element!.classList.add('enable-mouse-events');\n this._selectionService!.disable();\n } else {\n this._logService.debug('Unbinding from mouse events.');\n this.element!.classList.remove('enable-mouse-events');\n this._selectionService!.enable();\n }\n\n // add/remove handlers from requestedEvents\n\n if (!(events & CoreMouseEventType.MOVE)) {\n el.removeEventListener('mousemove', requestedEvents.mousemove!);\n requestedEvents.mousemove = null;\n } else if (!requestedEvents.mousemove) {\n el.addEventListener('mousemove', eventListeners.mousemove);\n requestedEvents.mousemove = eventListeners.mousemove;\n }\n\n if (!(events & CoreMouseEventType.WHEEL)) {\n el.removeEventListener('wheel', requestedEvents.wheel!);\n requestedEvents.wheel = null;\n } else if (!requestedEvents.wheel) {\n el.addEventListener('wheel', eventListeners.wheel, { passive: false });\n requestedEvents.wheel = eventListeners.wheel;\n }\n\n if (!(events & CoreMouseEventType.UP)) {\n this._document!.removeEventListener('mouseup', requestedEvents.mouseup!);\n requestedEvents.mouseup = null;\n } else if (!requestedEvents.mouseup) {\n requestedEvents.mouseup = eventListeners.mouseup;\n }\n\n if (!(events & CoreMouseEventType.DRAG)) {\n this._document!.removeEventListener('mousemove', requestedEvents.mousedrag!);\n requestedEvents.mousedrag = null;\n } else if (!requestedEvents.mousedrag) {\n requestedEvents.mousedrag = eventListeners.mousedrag;\n }\n }));\n // force initial onProtocolChange so we dont miss early mouse requests\n this.coreMouseService.activeProtocol = this.coreMouseService.activeProtocol;\n\n /**\n * \"Always on\" event listeners.\n */\n this.register(addDisposableDomListener(el, 'mousedown', (ev: MouseEvent) => {\n ev.preventDefault();\n this.focus();\n\n // Don't send the mouse button to the pty if mouse events are disabled or\n // if the selection manager is having selection forced (ie. a modifier is\n // held).\n if (!this.coreMouseService.areMouseEventsActive || this._selectionService!.shouldForceSelection(ev)) {\n return;\n }\n\n sendEvent(ev);\n\n // Register additional global handlers which should keep reporting outside\n // of the terminal element.\n // Note: Other emulators also do this for 'mousedown' while a button\n // is held, we currently limit 'mousedown' to the terminal only.\n if (requestedEvents.mouseup) {\n this._document!.addEventListener('mouseup', requestedEvents.mouseup);\n }\n if (requestedEvents.mousedrag) {\n this._document!.addEventListener('mousemove', requestedEvents.mousedrag);\n }\n\n return this.cancel(ev);\n }));\n\n this.register(addDisposableDomListener(el, 'wheel', (ev: WheelEvent) => {\n // do nothing, if app side handles wheel itself\n if (requestedEvents.wheel) return;\n\n if (!this.buffer.hasScrollback) {\n // Convert wheel events into up/down events when the buffer does not have scrollback, this\n // enables scrolling in apps hosted in the alt buffer such as vim or tmux.\n const amount = this.viewport!.getLinesScrolled(ev);\n\n // Do nothing if there's no vertical scroll\n if (amount === 0) {\n return;\n }\n\n // Construct and send sequences\n const sequence = C0.ESC + (this.coreService.decPrivateModes.applicationCursorKeys ? 'O' : '[') + (ev.deltaY < 0 ? 'A' : 'B');\n let data = '';\n for (let i = 0; i < Math.abs(amount); i++) {\n data += sequence;\n }\n this.coreService.triggerDataEvent(data, true);\n return this.cancel(ev, true);\n }\n\n // normal viewport scrolling\n // conditionally stop event, if the viewport still had rows to scroll within\n if (this.viewport!.onWheel(ev)) {\n return this.cancel(ev);\n }\n }, { passive: false }));\n\n this.register(addDisposableDomListener(el, 'touchstart', (ev: TouchEvent) => {\n if (this.coreMouseService.areMouseEventsActive) return;\n this.viewport!.onTouchStart(ev);\n return this.cancel(ev);\n }, { passive: true }));\n\n this.register(addDisposableDomListener(el, 'touchmove', (ev: TouchEvent) => {\n if (this.coreMouseService.areMouseEventsActive) return;\n if (!this.viewport!.onTouchMove(ev)) {\n return this.cancel(ev);\n }\n }, { passive: false }));\n }\n\n\n /**\n * Tells the renderer to refresh terminal content between two rows (inclusive) at the next\n * opportunity.\n * @param start The row to start from (between 0 and this.rows - 1).\n * @param end The row to end at (between start and this.rows - 1).\n */\n public refresh(start: number, end: number): void {\n this._renderService?.refreshRows(start, end);\n }\n\n /**\n * Change the cursor style for different selection modes\n */\n public updateCursorStyle(ev: KeyboardEvent): void {\n if (this._selectionService?.shouldColumnSelect(ev)) {\n this.element!.classList.add('column-select');\n } else {\n this.element!.classList.remove('column-select');\n }\n }\n\n /**\n * Display the cursor element\n */\n private _showCursor(): void {\n if (!this.coreService.isCursorInitialized) {\n this.coreService.isCursorInitialized = true;\n this.refresh(this.buffer.y, this.buffer.y);\n }\n }\n\n public scrollLines(disp: number, suppressScrollEvent?: boolean, source = ScrollSource.TERMINAL): void {\n super.scrollLines(disp, suppressScrollEvent, source);\n this.refresh(0, this.rows - 1);\n }\n\n public paste(data: string): void {\n paste(data, this.textarea!, this.coreService);\n }\n\n /**\n * Attaches a custom key event handler which is run before keys are processed,\n * giving consumers of xterm.js ultimate control as to what keys should be\n * processed by the terminal and what keys should not.\n * @param customKeyEventHandler The custom KeyboardEvent handler to attach.\n * This is a function that takes a KeyboardEvent, allowing consumers to stop\n * propagation and/or prevent the default action. The function returns whether\n * the event should be processed by xterm.js.\n */\n public attachCustomKeyEventHandler(customKeyEventHandler: CustomKeyEventHandler): void {\n this._customKeyEventHandler = customKeyEventHandler;\n }\n\n public registerLinkProvider(linkProvider: ILinkProvider): IDisposable {\n return this.linkifier2.registerLinkProvider(linkProvider);\n }\n\n public registerCharacterJoiner(handler: CharacterJoinerHandler): number {\n if (!this._characterJoinerService) {\n throw new Error('Terminal must be opened first');\n }\n const joinerId = this._characterJoinerService.register(handler);\n this.refresh(0, this.rows - 1);\n return joinerId;\n }\n\n public deregisterCharacterJoiner(joinerId: number): void {\n if (!this._characterJoinerService) {\n throw new Error('Terminal must be opened first');\n }\n if (this._characterJoinerService.deregister(joinerId)) {\n this.refresh(0, this.rows - 1);\n }\n }\n\n public get markers(): IMarker[] {\n return this.buffer.markers;\n }\n\n public addMarker(cursorYOffset: number): IMarker | undefined {\n return this.buffer.addMarker(this.buffer.ybase + this.buffer.y + cursorYOffset);\n }\n\n public registerDecoration(decorationOptions: IDecorationOptions): IDecoration | undefined {\n return this._decorationService.registerDecoration(decorationOptions);\n }\n\n /**\n * Gets whether the terminal has an active selection.\n */\n public hasSelection(): boolean {\n return this._selectionService ? this._selectionService.hasSelection : false;\n }\n\n /**\n * Selects text within the terminal.\n * @param column The column the selection starts at..\n * @param row The row the selection starts at.\n * @param length The length of the selection.\n */\n public select(column: number, row: number, length: number): void {\n this._selectionService!.setSelection(column, row, length);\n }\n\n /**\n * Gets the terminal's current selection, this is useful for implementing copy\n * behavior outside of xterm.js.\n */\n public getSelection(): string {\n return this._selectionService ? this._selectionService.selectionText : '';\n }\n\n public getSelectionPosition(): IBufferRange | undefined {\n if (!this._selectionService || !this._selectionService.hasSelection) {\n return undefined;\n }\n\n return {\n start: {\n x: this._selectionService.selectionStart![0],\n y: this._selectionService.selectionStart![1]\n },\n end: {\n x: this._selectionService.selectionEnd![0],\n y: this._selectionService.selectionEnd![1]\n }\n };\n }\n\n /**\n * Clears the current terminal selection.\n */\n public clearSelection(): void {\n this._selectionService?.clearSelection();\n }\n\n /**\n * Selects all text within the terminal.\n */\n public selectAll(): void {\n this._selectionService?.selectAll();\n }\n\n public selectLines(start: number, end: number): void {\n this._selectionService?.selectLines(start, end);\n }\n\n /**\n * Handle a keydown event\n * Key Resources:\n * - https://developer.mozilla.org/en-US/docs/DOM/KeyboardEvent\n * @param ev The keydown event to be handled.\n */\n protected _keyDown(event: KeyboardEvent): boolean | undefined {\n this._keyDownHandled = false;\n this._keyDownSeen = true;\n\n if (this._customKeyEventHandler && this._customKeyEventHandler(event) === false) {\n return false;\n }\n\n // Ignore composing with Alt key on Mac when macOptionIsMeta is enabled\n const shouldIgnoreComposition = this.browser.isMac && this.options.macOptionIsMeta && event.altKey;\n\n if (!shouldIgnoreComposition && !this._compositionHelper!.keydown(event)) {\n if (this.buffer.ybase !== this.buffer.ydisp) {\n this._bufferService.scrollToBottom();\n }\n return false;\n }\n\n if (!shouldIgnoreComposition && (event.key === 'Dead' || event.key === 'AltGraph')) {\n this._unprocessedDeadKey = true;\n }\n\n const result = evaluateKeyboardEvent(event, this.coreService.decPrivateModes.applicationCursorKeys, this.browser.isMac, this.options.macOptionIsMeta);\n\n this.updateCursorStyle(event);\n\n if (result.type === KeyboardResultType.PAGE_DOWN || result.type === KeyboardResultType.PAGE_UP) {\n const scrollCount = this.rows - 1;\n this.scrollLines(result.type === KeyboardResultType.PAGE_UP ? -scrollCount : scrollCount);\n return this.cancel(event, true);\n }\n\n if (result.type === KeyboardResultType.SELECT_ALL) {\n this.selectAll();\n }\n\n if (this._isThirdLevelShift(this.browser, event)) {\n return true;\n }\n\n if (result.cancel) {\n // The event is canceled at the end already, is this necessary?\n this.cancel(event, true);\n }\n\n if (!result.key) {\n return true;\n }\n\n // HACK: Process A-Z in the keypress event to fix an issue with macOS IMEs where lower case\n // letters cannot be input while caps lock is on.\n if (event.key && !event.ctrlKey && !event.altKey && !event.metaKey && event.key.length === 1) {\n if (event.key.charCodeAt(0) >= 65 && event.key.charCodeAt(0) <= 90) {\n return true;\n }\n }\n\n if (this._unprocessedDeadKey) {\n this._unprocessedDeadKey = false;\n return true;\n }\n\n // If ctrl+c or enter is being sent, clear out the textarea. This is done so that screen readers\n // will announce deleted characters. This will not work 100% of the time but it should cover\n // most scenarios.\n if (result.key === C0.ETX || result.key === C0.CR) {\n this.textarea!.value = '';\n }\n\n this._onKey.fire({ key: result.key, domEvent: event });\n this._showCursor();\n this.coreService.triggerDataEvent(result.key, true);\n\n // Cancel events when not in screen reader mode so events don't get bubbled up and handled by\n // other listeners. When screen reader mode is enabled, this could cause issues if the event\n // is handled at a higher level, this is a compromise in order to echo keys to the screen\n // reader.\n if (!this.optionsService.rawOptions.screenReaderMode) {\n return this.cancel(event, true);\n }\n\n this._keyDownHandled = true;\n }\n\n private _isThirdLevelShift(browser: IBrowser, ev: KeyboardEvent): boolean {\n const thirdLevelKey =\n (browser.isMac && !this.options.macOptionIsMeta && ev.altKey && !ev.ctrlKey && !ev.metaKey) ||\n (browser.isWindows && ev.altKey && ev.ctrlKey && !ev.metaKey) ||\n (browser.isWindows && ev.getModifierState('AltGraph'));\n\n if (ev.type === 'keypress') {\n return thirdLevelKey;\n }\n\n // Don't invoke for arrows, pageDown, home, backspace, etc. (on non-keypress events)\n return thirdLevelKey && (!ev.keyCode || ev.keyCode > 47);\n }\n\n protected _keyUp(ev: KeyboardEvent): void {\n this._keyDownSeen = false;\n\n if (this._customKeyEventHandler && this._customKeyEventHandler(ev) === false) {\n return;\n }\n\n if (!wasModifierKeyOnlyEvent(ev)) {\n this.focus();\n }\n\n this.updateCursorStyle(ev);\n this._keyPressHandled = false;\n }\n\n /**\n * Handle a keypress event.\n * Key Resources:\n * - https://developer.mozilla.org/en-US/docs/DOM/KeyboardEvent\n * @param ev The keypress event to be handled.\n */\n protected _keyPress(ev: KeyboardEvent): boolean {\n let key;\n\n this._keyPressHandled = false;\n\n if (this._keyDownHandled) {\n return false;\n }\n\n if (this._customKeyEventHandler && this._customKeyEventHandler(ev) === false) {\n return false;\n }\n\n this.cancel(ev);\n\n if (ev.charCode) {\n key = ev.charCode;\n } else if (ev.which === null || ev.which === undefined) {\n key = ev.keyCode;\n } else if (ev.which !== 0 && ev.charCode !== 0) {\n key = ev.which;\n } else {\n return false;\n }\n\n if (!key || (\n (ev.altKey || ev.ctrlKey || ev.metaKey) && !this._isThirdLevelShift(this.browser, ev)\n )) {\n return false;\n }\n\n key = String.fromCharCode(key);\n\n this._onKey.fire({ key, domEvent: ev });\n this._showCursor();\n this.coreService.triggerDataEvent(key, true);\n\n this._keyPressHandled = true;\n\n // The key was handled so clear the dead key state, otherwise certain keystrokes like arrow\n // keys could be ignored\n this._unprocessedDeadKey = false;\n\n return true;\n }\n\n /**\n * Handle an input event.\n * Key Resources:\n * - https://developer.mozilla.org/en-US/docs/Web/API/InputEvent\n * @param ev The input event to be handled.\n */\n protected _inputEvent(ev: InputEvent): boolean {\n // Only support emoji IMEs when screen reader mode is disabled as the event must bubble up to\n // support reading out character input which can doubling up input characters\n // Based on these event traces: https://github.com/xtermjs/xterm.js/issues/3679\n if (ev.data && ev.inputType === 'insertText' && (!ev.composed || !this._keyDownSeen) && !this.optionsService.rawOptions.screenReaderMode) {\n if (this._keyPressHandled) {\n return false;\n }\n\n // The key was handled so clear the dead key state, otherwise certain keystrokes like arrow\n // keys could be ignored\n this._unprocessedDeadKey = false;\n\n const text = ev.data;\n this.coreService.triggerDataEvent(text, true);\n\n this.cancel(ev);\n return true;\n }\n\n return false;\n }\n\n /**\n * Resizes the terminal.\n *\n * @param x The number of columns to resize to.\n * @param y The number of rows to resize to.\n */\n public resize(x: number, y: number): void {\n if (x === this.cols && y === this.rows) {\n // Check if we still need to measure the char size (fixes #785).\n if (this._charSizeService && !this._charSizeService.hasValidSize) {\n this._charSizeService.measure();\n }\n return;\n }\n\n super.resize(x, y);\n }\n\n private _afterResize(x: number, y: number): void {\n this._charSizeService?.measure();\n\n // Sync the scroll area to make sure scroll events don't fire and scroll the viewport to an\n // invalid location\n this.viewport?.syncScrollArea(true);\n }\n\n /**\n * Clear the entire buffer, making the prompt line the new first line.\n */\n public clear(): void {\n if (this.buffer.ybase === 0 && this.buffer.y === 0) {\n // Don't clear if it's already clear\n return;\n }\n this.buffer.clearAllMarkers();\n this.buffer.lines.set(0, this.buffer.lines.get(this.buffer.ybase + this.buffer.y)!);\n this.buffer.lines.length = 1;\n this.buffer.ydisp = 0;\n this.buffer.ybase = 0;\n this.buffer.y = 0;\n for (let i = 1; i < this.rows; i++) {\n this.buffer.lines.push(this.buffer.getBlankLine(DEFAULT_ATTR_DATA));\n }\n this.refresh(0, this.rows - 1);\n this._onScroll.fire({ position: this.buffer.ydisp, source: ScrollSource.TERMINAL });\n }\n\n /**\n * Reset terminal.\n * Note: Calling this directly from JS is synchronous but does not clear\n * input buffers and does not reset the parser, thus the terminal will\n * continue to apply pending input data.\n * If you need in band reset (synchronous with input data) consider\n * using DECSTR (soft reset, CSI ! p) or RIS instead (hard reset, ESC c).\n */\n public reset(): void {\n /**\n * Since _setup handles a full terminal creation, we have to carry forward\n * a few things that should not reset.\n */\n this.options.rows = this.rows;\n this.options.cols = this.cols;\n const customKeyEventHandler = this._customKeyEventHandler;\n\n this._setup();\n super.reset();\n this._selectionService?.reset();\n this._decorationService.reset();\n\n // reattach\n this._customKeyEventHandler = customKeyEventHandler;\n\n // do a full screen refresh\n this.refresh(0, this.rows - 1);\n this.viewport?.syncScrollArea();\n }\n\n public clearTextureAtlas(): void {\n this._renderService?.clearTextureAtlas();\n }\n\n private _reportFocus(): void {\n if (this.element?.classList.contains('focus')) {\n this.coreService.triggerDataEvent(C0.ESC + '[I');\n } else {\n this.coreService.triggerDataEvent(C0.ESC + '[O');\n }\n }\n\n private _reportWindowsOptions(type: WindowsOptionsReportType): void {\n if (!this._renderService) {\n return;\n }\n\n switch (type) {\n case WindowsOptionsReportType.GET_WIN_SIZE_PIXELS:\n const canvasWidth = this._renderService.dimensions.canvasWidth.toFixed(0);\n const canvasHeight = this._renderService.dimensions.canvasHeight.toFixed(0);\n this.coreService.triggerDataEvent(`${C0.ESC}[4;${canvasHeight};${canvasWidth}t`);\n break;\n case WindowsOptionsReportType.GET_CELL_SIZE_PIXELS:\n const cellWidth = this._renderService.dimensions.actualCellWidth.toFixed(0);\n const cellHeight = this._renderService.dimensions.actualCellHeight.toFixed(0);\n this.coreService.triggerDataEvent(`${C0.ESC}[6;${cellHeight};${cellWidth}t`);\n break;\n }\n }\n\n // TODO: Remove cancel function and cancelEvents option\n public cancel(ev: Event, force?: boolean): boolean | undefined {\n if (!this.options.cancelEvents && !force) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n}\n\n/**\n * Helpers\n */\n\nfunction wasModifierKeyOnlyEvent(ev: KeyboardEvent): boolean {\n return ev.keyCode === 16 || // Shift\n ev.keyCode === 17 || // Ctrl\n ev.keyCode === 18; // Alt\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nconst RENDER_DEBOUNCE_THRESHOLD_MS = 1000; // 1 Second\n\nimport { IRenderDebouncer } from 'browser/Types';\n\n/**\n * Debounces calls to update screen readers to update at most once configurable interval of time.\n */\nexport class TimeBasedDebouncer implements IRenderDebouncer {\n private _rowStart: number | undefined;\n private _rowEnd: number | undefined;\n private _rowCount: number | undefined;\n\n // The last moment that the Terminal was refreshed at\n private _lastRefreshMs = 0;\n // Whether a trailing refresh should be triggered due to a refresh request that was throttled\n private _additionalRefreshRequested = false;\n\n private _refreshTimeoutID: number | undefined;\n\n constructor(\n private _renderCallback: (start: number, end: number) => void,\n private readonly _debounceThresholdMS = RENDER_DEBOUNCE_THRESHOLD_MS\n ) {\n }\n\n public dispose(): void {\n if (this._refreshTimeoutID) {\n clearTimeout(this._refreshTimeoutID);\n }\n }\n\n public refresh(rowStart: number | undefined, rowEnd: number | undefined, rowCount: number): void {\n this._rowCount = rowCount;\n // Get the min/max row start/end for the arg values\n rowStart = rowStart !== undefined ? rowStart : 0;\n rowEnd = rowEnd !== undefined ? rowEnd : this._rowCount - 1;\n // Set the properties to the updated values\n this._rowStart = this._rowStart !== undefined ? Math.min(this._rowStart, rowStart) : rowStart;\n this._rowEnd = this._rowEnd !== undefined ? Math.max(this._rowEnd, rowEnd) : rowEnd;\n\n // Only refresh if the time since last refresh is above a threshold, otherwise wait for\n // enough time to pass before refreshing again.\n const refreshRequestTime: number = Date.now();\n if (refreshRequestTime - this._lastRefreshMs >= this._debounceThresholdMS) {\n // Enough time has lapsed since the last refresh; refresh immediately\n this._lastRefreshMs = refreshRequestTime;\n this._innerRefresh();\n } else if (!this._additionalRefreshRequested) {\n // This is the first additional request throttled; set up trailing refresh\n const elapsed = refreshRequestTime - this._lastRefreshMs;\n const waitPeriodBeforeTrailingRefresh = this._debounceThresholdMS - elapsed;\n this._additionalRefreshRequested = true;\n\n this._refreshTimeoutID = window.setTimeout(() => {\n this._lastRefreshMs = Date.now();\n this._innerRefresh();\n this._additionalRefreshRequested = false;\n this._refreshTimeoutID = undefined; // No longer need to clear the timeout\n }, waitPeriodBeforeTrailingRefresh);\n }\n }\n\n private _innerRefresh(): void {\n // Make sure values are set\n if (this._rowStart === undefined || this._rowEnd === undefined || this._rowCount === undefined) {\n return;\n }\n\n // Clamp values\n const start = Math.max(this._rowStart, 0);\n const end = Math.min(this._rowEnd, this._rowCount - 1);\n\n // Reset debouncer (this happens before render callback as the render could trigger it again)\n this._rowStart = undefined;\n this._rowEnd = undefined;\n\n // Run render callback\n this._renderCallback(start, end);\n }\n}\n\n","/**\n * Copyright (c) 2016 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { Disposable } from 'common/Lifecycle';\nimport { addDisposableDomListener } from 'browser/Lifecycle';\nimport { IColorSet, IViewport } from 'browser/Types';\nimport { ICharSizeService, ICoreBrowserService, IRenderService } from 'browser/services/Services';\nimport { IBufferService, IOptionsService } from 'common/services/Services';\nimport { IBuffer } from 'common/buffer/Types';\nimport { IRenderDimensions } from 'browser/renderer/Types';\n\nconst FALLBACK_SCROLL_BAR_WIDTH = 15;\n\ninterface ISmoothScrollState {\n startTime: number;\n origin: number;\n target: number;\n}\n\n/**\n * Represents the viewport of a terminal, the visible area within the larger buffer of output.\n * Logic for the virtual scroll bar is included in this object.\n */\nexport class Viewport extends Disposable implements IViewport {\n public scrollBarWidth: number = 0;\n private _currentRowHeight: number = 0;\n private _currentScaledCellHeight: number = 0;\n private _lastRecordedBufferLength: number = 0;\n private _lastRecordedViewportHeight: number = 0;\n private _lastRecordedBufferHeight: number = 0;\n private _lastTouchY: number = 0;\n private _lastScrollTop: number = 0;\n private _activeBuffer: IBuffer;\n private _renderDimensions: IRenderDimensions;\n\n // Stores a partial line amount when scrolling, this is used to keep track of how much of a line\n // is scrolled so we can \"scroll\" over partial lines and feel natural on touchpads. This is a\n // quick fix and could have a more robust solution in place that reset the value when needed.\n private _wheelPartialScroll: number = 0;\n\n private _refreshAnimationFrame: number | null = null;\n private _ignoreNextScrollEvent: boolean = false;\n private _smoothScrollState: ISmoothScrollState = {\n startTime: 0,\n origin: -1,\n target: -1\n };\n\n constructor(\n private readonly _scrollLines: (amount: number) => void,\n private readonly _viewportElement: HTMLElement,\n private readonly _scrollArea: HTMLElement,\n private readonly _element: HTMLElement,\n @IBufferService private readonly _bufferService: IBufferService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @ICharSizeService private readonly _charSizeService: ICharSizeService,\n @IRenderService private readonly _renderService: IRenderService,\n @ICoreBrowserService private readonly _coreBrowserService: ICoreBrowserService\n ) {\n super();\n\n // Measure the width of the scrollbar. If it is 0 we can assume it's an OSX overlay scrollbar.\n // Unfortunately the overlay scrollbar would be hidden underneath the screen element in that case,\n // therefore we account for a standard amount to make it visible\n this.scrollBarWidth = (this._viewportElement.offsetWidth - this._scrollArea.offsetWidth) || FALLBACK_SCROLL_BAR_WIDTH;\n this.register(addDisposableDomListener(this._viewportElement, 'scroll', this._onScroll.bind(this)));\n\n // Track properties used in performance critical code manually to avoid using slow getters\n this._activeBuffer = this._bufferService.buffer;\n this.register(this._bufferService.buffers.onBufferActivate(e => this._activeBuffer = e.activeBuffer));\n this._renderDimensions = this._renderService.dimensions;\n this.register(this._renderService.onDimensionsChange(e => this._renderDimensions = e));\n\n // Perform this async to ensure the ICharSizeService is ready.\n setTimeout(() => this.syncScrollArea(), 0);\n }\n\n public onThemeChange(colors: IColorSet): void {\n this._viewportElement.style.backgroundColor = colors.background.css;\n }\n\n /**\n * Refreshes row height, setting line-height, viewport height and scroll area height if\n * necessary.\n */\n private _refresh(immediate: boolean): void {\n if (immediate) {\n this._innerRefresh();\n if (this._refreshAnimationFrame !== null) {\n this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame);\n }\n return;\n }\n if (this._refreshAnimationFrame === null) {\n this._refreshAnimationFrame = this._coreBrowserService.window.requestAnimationFrame(() => this._innerRefresh());\n }\n }\n\n private _innerRefresh(): void {\n if (this._charSizeService.height > 0) {\n this._currentRowHeight = this._renderService.dimensions.scaledCellHeight / this._coreBrowserService.dpr;\n this._currentScaledCellHeight = this._renderService.dimensions.scaledCellHeight;\n this._lastRecordedViewportHeight = this._viewportElement.offsetHeight;\n const newBufferHeight = Math.round(this._currentRowHeight * this._lastRecordedBufferLength) + (this._lastRecordedViewportHeight - this._renderService.dimensions.canvasHeight);\n if (this._lastRecordedBufferHeight !== newBufferHeight) {\n this._lastRecordedBufferHeight = newBufferHeight;\n this._scrollArea.style.height = this._lastRecordedBufferHeight + 'px';\n }\n }\n\n // Sync scrollTop\n const scrollTop = this._bufferService.buffer.ydisp * this._currentRowHeight;\n if (this._viewportElement.scrollTop !== scrollTop) {\n // Ignore the next scroll event which will be triggered by setting the scrollTop as we do not\n // want this event to scroll the terminal\n this._ignoreNextScrollEvent = true;\n this._viewportElement.scrollTop = scrollTop;\n }\n\n this._refreshAnimationFrame = null;\n }\n\n /**\n * Updates dimensions and synchronizes the scroll area if necessary.\n */\n public syncScrollArea(immediate: boolean = false): void {\n // If buffer height changed\n if (this._lastRecordedBufferLength !== this._bufferService.buffer.lines.length) {\n this._lastRecordedBufferLength = this._bufferService.buffer.lines.length;\n this._refresh(immediate);\n return;\n }\n\n // If viewport height changed\n if (this._lastRecordedViewportHeight !== this._renderService.dimensions.canvasHeight) {\n this._refresh(immediate);\n return;\n }\n\n // If the buffer position doesn't match last scroll top\n if (this._lastScrollTop !== this._activeBuffer.ydisp * this._currentRowHeight) {\n this._refresh(immediate);\n return;\n }\n\n // If row height changed\n if (this._renderDimensions.scaledCellHeight !== this._currentScaledCellHeight) {\n this._refresh(immediate);\n return;\n }\n }\n\n /**\n * Handles scroll events on the viewport, calculating the new viewport and requesting the\n * terminal to scroll to it.\n * @param ev The scroll event.\n */\n private _onScroll(ev: Event): void {\n // Record current scroll top position\n this._lastScrollTop = this._viewportElement.scrollTop;\n\n // Don't attempt to scroll if the element is not visible, otherwise scrollTop will be corrupt\n // which causes the terminal to scroll the buffer to the top\n if (!this._viewportElement.offsetParent) {\n return;\n }\n\n // Ignore the event if it was flagged to ignore (when the source of the event is from Viewport)\n if (this._ignoreNextScrollEvent) {\n this._ignoreNextScrollEvent = false;\n // Still trigger the scroll so lines get refreshed\n this._scrollLines(0);\n return;\n }\n\n const newRow = Math.round(this._lastScrollTop / this._currentRowHeight);\n const diff = newRow - this._bufferService.buffer.ydisp;\n this._scrollLines(diff);\n }\n\n private _smoothScroll(): void {\n // Check valid state\n if (this._isDisposed || this._smoothScrollState.origin === -1 || this._smoothScrollState.target === -1) {\n return;\n }\n\n // Calculate position complete\n const percent = this._smoothScrollPercent();\n this._viewportElement.scrollTop = this._smoothScrollState.origin + Math.round(percent * (this._smoothScrollState.target - this._smoothScrollState.origin));\n\n // Continue or finish smooth scroll\n if (percent < 1) {\n this._coreBrowserService.window.requestAnimationFrame(() => this._smoothScroll());\n } else {\n this._clearSmoothScrollState();\n }\n }\n\n private _smoothScrollPercent(): number {\n if (!this._optionsService.rawOptions.smoothScrollDuration || !this._smoothScrollState.startTime) {\n return 1;\n }\n return Math.max(Math.min((Date.now() - this._smoothScrollState.startTime) / this._optionsService.rawOptions.smoothScrollDuration, 1), 0);\n }\n\n private _clearSmoothScrollState(): void {\n this._smoothScrollState.startTime = 0;\n this._smoothScrollState.origin = -1;\n this._smoothScrollState.target = -1;\n }\n\n /**\n * Handles bubbling of scroll event in case the viewport has reached top or bottom\n * @param ev The scroll event.\n * @param amount The amount scrolled\n */\n private _bubbleScroll(ev: Event, amount: number): boolean {\n const scrollPosFromTop = this._viewportElement.scrollTop + this._lastRecordedViewportHeight;\n if ((amount < 0 && this._viewportElement.scrollTop !== 0) ||\n (amount > 0 && scrollPosFromTop < this._lastRecordedBufferHeight)) {\n if (ev.cancelable) {\n ev.preventDefault();\n }\n return false;\n }\n return true;\n }\n\n /**\n * Handles mouse wheel events by adjusting the viewport's scrollTop and delegating the actual\n * scrolling to `onScroll`, this event needs to be attached manually by the consumer of\n * `Viewport`.\n * @param ev The mouse wheel event.\n */\n public onWheel(ev: WheelEvent): boolean {\n const amount = this._getPixelsScrolled(ev);\n if (amount === 0) {\n return false;\n }\n if (!this._optionsService.rawOptions.smoothScrollDuration) {\n this._viewportElement.scrollTop += amount;\n } else {\n this._smoothScrollState.startTime = Date.now();\n if (this._smoothScrollPercent() < 1) {\n this._smoothScrollState.origin = this._viewportElement.scrollTop;\n if (this._smoothScrollState.target === -1) {\n this._smoothScrollState.target = this._viewportElement.scrollTop + amount;\n } else {\n this._smoothScrollState.target += amount;\n }\n this._smoothScrollState.target = Math.max(Math.min(this._smoothScrollState.target, this._viewportElement.scrollHeight), 0);\n this._smoothScroll();\n } else {\n this._clearSmoothScrollState();\n }\n }\n return this._bubbleScroll(ev, amount);\n }\n\n private _getPixelsScrolled(ev: WheelEvent): number {\n // Do nothing if it's not a vertical scroll event\n if (ev.deltaY === 0 || ev.shiftKey) {\n return 0;\n }\n\n // Fallback to WheelEvent.DOM_DELTA_PIXEL\n let amount = this._applyScrollModifier(ev.deltaY, ev);\n if (ev.deltaMode === WheelEvent.DOM_DELTA_LINE) {\n amount *= this._currentRowHeight;\n } else if (ev.deltaMode === WheelEvent.DOM_DELTA_PAGE) {\n amount *= this._currentRowHeight * this._bufferService.rows;\n }\n return amount;\n }\n\n /**\n * Gets the number of pixels scrolled by the mouse event taking into account what type of delta\n * is being used.\n * @param ev The mouse wheel event.\n */\n public getLinesScrolled(ev: WheelEvent): number {\n // Do nothing if it's not a vertical scroll event\n if (ev.deltaY === 0 || ev.shiftKey) {\n return 0;\n }\n\n // Fallback to WheelEvent.DOM_DELTA_LINE\n let amount = this._applyScrollModifier(ev.deltaY, ev);\n if (ev.deltaMode === WheelEvent.DOM_DELTA_PIXEL) {\n amount /= this._currentRowHeight + 0.0; // Prevent integer division\n this._wheelPartialScroll += amount;\n amount = Math.floor(Math.abs(this._wheelPartialScroll)) * (this._wheelPartialScroll > 0 ? 1 : -1);\n this._wheelPartialScroll %= 1;\n } else if (ev.deltaMode === WheelEvent.DOM_DELTA_PAGE) {\n amount *= this._bufferService.rows;\n }\n return amount;\n }\n\n private _applyScrollModifier(amount: number, ev: WheelEvent): number {\n const modifier = this._optionsService.rawOptions.fastScrollModifier;\n // Multiply the scroll speed when the modifier is down\n if ((modifier === 'alt' && ev.altKey) ||\n (modifier === 'ctrl' && ev.ctrlKey) ||\n (modifier === 'shift' && ev.shiftKey)) {\n return amount * this._optionsService.rawOptions.fastScrollSensitivity * this._optionsService.rawOptions.scrollSensitivity;\n }\n\n return amount * this._optionsService.rawOptions.scrollSensitivity;\n }\n\n /**\n * Handles the touchstart event, recording the touch occurred.\n * @param ev The touch event.\n */\n public onTouchStart(ev: TouchEvent): void {\n this._lastTouchY = ev.touches[0].pageY;\n }\n\n /**\n * Handles the touchmove event, scrolling the viewport if the position shifted.\n * @param ev The touch event.\n */\n public onTouchMove(ev: TouchEvent): boolean {\n const deltaY = this._lastTouchY - ev.touches[0].pageY;\n this._lastTouchY = ev.touches[0].pageY;\n if (deltaY === 0) {\n return false;\n }\n this._viewportElement.scrollTop += deltaY;\n return this._bubbleScroll(ev, deltaY);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { addDisposableDomListener } from 'browser/Lifecycle';\nimport { IRenderService } from 'browser/services/Services';\nimport { Disposable } from 'common/Lifecycle';\nimport { IBufferService, IDecorationService, IInternalDecoration } from 'common/services/Services';\n\nexport class BufferDecorationRenderer extends Disposable {\n private readonly _container: HTMLElement;\n private readonly _decorationElements: Map = new Map();\n\n private _animationFrame: number | undefined;\n private _altBufferIsActive: boolean = false;\n private _dimensionsChanged: boolean = false;\n\n constructor(\n private readonly _screenElement: HTMLElement,\n @IBufferService private readonly _bufferService: IBufferService,\n @IDecorationService private readonly _decorationService: IDecorationService,\n @IRenderService private readonly _renderService: IRenderService\n ) {\n super();\n\n this._container = document.createElement('div');\n this._container.classList.add('xterm-decoration-container');\n this._screenElement.appendChild(this._container);\n\n this.register(this._renderService.onRenderedViewportChange(() => this._queueRefresh()));\n this.register(this._renderService.onDimensionsChange(() => {\n this._dimensionsChanged = true;\n this._queueRefresh();\n }));\n this.register(addDisposableDomListener(window, 'resize', () => this._queueRefresh()));\n this.register(this._bufferService.buffers.onBufferActivate(() => {\n this._altBufferIsActive = this._bufferService.buffer === this._bufferService.buffers.alt;\n }));\n this.register(this._decorationService.onDecorationRegistered(() => this._queueRefresh()));\n this.register(this._decorationService.onDecorationRemoved(decoration => this._removeDecoration(decoration)));\n }\n\n public override dispose(): void {\n this._container.remove();\n this._decorationElements.clear();\n super.dispose();\n }\n\n private _queueRefresh(): void {\n if (this._animationFrame !== undefined) {\n return;\n }\n this._animationFrame = this._renderService.addRefreshCallback(() => {\n this.refreshDecorations();\n this._animationFrame = undefined;\n });\n }\n\n public refreshDecorations(): void {\n for (const decoration of this._decorationService.decorations) {\n this._renderDecoration(decoration);\n }\n this._dimensionsChanged = false;\n }\n\n private _renderDecoration(decoration: IInternalDecoration): void {\n this._refreshStyle(decoration);\n if (this._dimensionsChanged) {\n this._refreshXPosition(decoration);\n }\n }\n\n private _createElement(decoration: IInternalDecoration): HTMLElement {\n const element = document.createElement('div');\n element.classList.add('xterm-decoration');\n element.style.width = `${Math.round((decoration.options.width || 1) * this._renderService.dimensions.actualCellWidth)}px`;\n element.style.height = `${(decoration.options.height || 1) * this._renderService.dimensions.actualCellHeight}px`;\n element.style.top = `${(decoration.marker.line - this._bufferService.buffers.active.ydisp) * this._renderService.dimensions.actualCellHeight}px`;\n element.style.lineHeight = `${this._renderService.dimensions.actualCellHeight}px`;\n\n const x = decoration.options.x ?? 0;\n if (x && x > this._bufferService.cols) {\n // exceeded the container width, so hide\n element.style.display = 'none';\n }\n this._refreshXPosition(decoration, element);\n\n return element;\n }\n\n private _refreshStyle(decoration: IInternalDecoration): void {\n const line = decoration.marker.line - this._bufferService.buffers.active.ydisp;\n if (line < 0 || line >= this._bufferService.rows) {\n // outside of viewport\n if (decoration.element) {\n decoration.element.style.display = 'none';\n decoration.onRenderEmitter.fire(decoration.element);\n }\n } else {\n let element = this._decorationElements.get(decoration);\n if (!element) {\n decoration.onDispose(() => this._removeDecoration(decoration));\n element = this._createElement(decoration);\n decoration.element = element;\n this._decorationElements.set(decoration, element);\n this._container.appendChild(element);\n }\n element.style.top = `${line * this._renderService.dimensions.actualCellHeight}px`;\n element.style.display = this._altBufferIsActive ? 'none' : 'block';\n decoration.onRenderEmitter.fire(element);\n }\n }\n\n private _refreshXPosition(decoration: IInternalDecoration, element: HTMLElement | undefined = decoration.element): void {\n if (!element) {\n return;\n }\n const x = decoration.options.x ?? 0;\n if ((decoration.options.anchor || 'left') === 'right') {\n element.style.right = x ? `${x * this._renderService.dimensions.actualCellWidth}px` : '';\n } else {\n element.style.left = x ? `${x * this._renderService.dimensions.actualCellWidth}px` : '';\n }\n }\n\n private _removeDecoration(decoration: IInternalDecoration): void {\n this._decorationElements.get(decoration)?.remove();\n this._decorationElements.delete(decoration);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IInternalDecoration } from 'common/services/Services';\n\nexport interface IColorZoneStore {\n readonly zones: IColorZone[];\n clear(): void;\n addDecoration(decoration: IInternalDecoration): void;\n /**\n * Sets the amount of padding in lines that will be added between zones, if new lines intersect\n * the padding they will be merged into the same zone.\n */\n setPadding(padding: { [position: string]: number }): void;\n}\n\nexport interface IColorZone {\n /** Color in a format supported by canvas' fillStyle. */\n color: string;\n position: 'full' | 'left' | 'center' | 'right' | undefined;\n startBufferLine: number;\n endBufferLine: number;\n}\n\ninterface IMinimalDecorationForColorZone {\n marker: Pick;\n options: Pick;\n}\n\nexport class ColorZoneStore implements IColorZoneStore {\n private _zones: IColorZone[] = [];\n\n // The zone pool is used to keep zone objects from being freed between clearing the color zone\n // store and fetching the zones. This helps reduce GC pressure since the color zones are\n // accumulated on potentially every scroll event.\n private _zonePool: IColorZone[] = [];\n private _zonePoolIndex = 0;\n\n private _linePadding: { [position: string]: number } = {\n full: 0,\n left: 0,\n center: 0,\n right: 0\n };\n\n public get zones(): IColorZone[] {\n // Trim the zone pool to free unused memory\n this._zonePool.length = Math.min(this._zonePool.length, this._zones.length);\n return this._zones;\n }\n\n public clear(): void {\n this._zones.length = 0;\n this._zonePoolIndex = 0;\n }\n\n public addDecoration(decoration: IMinimalDecorationForColorZone): void {\n if (!decoration.options.overviewRulerOptions) {\n return;\n }\n for (const z of this._zones) {\n if (z.color === decoration.options.overviewRulerOptions.color &&\n z.position === decoration.options.overviewRulerOptions.position) {\n if (this._lineIntersectsZone(z, decoration.marker.line)) {\n return;\n }\n if (this._lineAdjacentToZone(z, decoration.marker.line, decoration.options.overviewRulerOptions.position)) {\n this._addLineToZone(z, decoration.marker.line);\n return;\n }\n }\n }\n // Create using zone pool if possible\n if (this._zonePoolIndex < this._zonePool.length) {\n this._zonePool[this._zonePoolIndex].color = decoration.options.overviewRulerOptions.color;\n this._zonePool[this._zonePoolIndex].position = decoration.options.overviewRulerOptions.position;\n this._zonePool[this._zonePoolIndex].startBufferLine = decoration.marker.line;\n this._zonePool[this._zonePoolIndex].endBufferLine = decoration.marker.line;\n this._zones.push(this._zonePool[this._zonePoolIndex++]);\n return;\n }\n // Create\n this._zones.push({\n color: decoration.options.overviewRulerOptions.color,\n position: decoration.options.overviewRulerOptions.position,\n startBufferLine: decoration.marker.line,\n endBufferLine: decoration.marker.line\n });\n this._zonePool.push(this._zones[this._zones.length - 1]);\n this._zonePoolIndex++;\n }\n\n public setPadding(padding: { [position: string]: number }): void {\n this._linePadding = padding;\n }\n\n private _lineIntersectsZone(zone: IColorZone, line: number): boolean {\n return (\n line >= zone.startBufferLine &&\n line <= zone.endBufferLine\n );\n }\n\n private _lineAdjacentToZone(zone: IColorZone, line: number, position: IColorZone['position']): boolean {\n return (\n (line >= zone.startBufferLine - this._linePadding[position || 'full']) &&\n (line <= zone.endBufferLine + this._linePadding[position || 'full'])\n );\n }\n\n private _addLineToZone(zone: IColorZone, line: number): void {\n zone.startBufferLine = Math.min(zone.startBufferLine, line);\n zone.endBufferLine = Math.max(zone.endBufferLine, line);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { ColorZoneStore, IColorZone, IColorZoneStore } from 'browser/decorations/ColorZoneStore';\nimport { addDisposableDomListener } from 'browser/Lifecycle';\nimport { ICoreBrowserService, IRenderService } from 'browser/services/Services';\nimport { Disposable } from 'common/Lifecycle';\nimport { IBufferService, IDecorationService, IOptionsService } from 'common/services/Services';\n\n// Helper objects to avoid excessive calculation and garbage collection during rendering. These are\n// static values for each render and can be accessed using the decoration position as the key.\nconst drawHeight = {\n full: 0,\n left: 0,\n center: 0,\n right: 0\n};\nconst drawWidth = {\n full: 0,\n left: 0,\n center: 0,\n right: 0\n};\nconst drawX = {\n full: 0,\n left: 0,\n center: 0,\n right: 0\n};\n\nexport class OverviewRulerRenderer extends Disposable {\n private readonly _canvas: HTMLCanvasElement;\n private readonly _ctx: CanvasRenderingContext2D;\n private readonly _colorZoneStore: IColorZoneStore = new ColorZoneStore();\n private get _width(): number {\n return this._optionsService.options.overviewRulerWidth || 0;\n }\n private _animationFrame: number | undefined;\n\n private _shouldUpdateDimensions: boolean | undefined = true;\n private _shouldUpdateAnchor: boolean | undefined = true;\n private _lastKnownBufferLength: number = 0;\n\n private _containerHeight: number | undefined;\n\n constructor(\n private readonly _viewportElement: HTMLElement,\n private readonly _screenElement: HTMLElement,\n @IBufferService private readonly _bufferService: IBufferService,\n @IDecorationService private readonly _decorationService: IDecorationService,\n @IRenderService private readonly _renderService: IRenderService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @ICoreBrowserService private readonly _coreBrowseService: ICoreBrowserService\n ) {\n super();\n this._canvas = document.createElement('canvas');\n this._canvas.classList.add('xterm-decoration-overview-ruler');\n this._refreshCanvasDimensions();\n this._viewportElement.parentElement?.insertBefore(this._canvas, this._viewportElement);\n const ctx = this._canvas.getContext('2d');\n if (!ctx) {\n throw new Error('Ctx cannot be null');\n } else {\n this._ctx = ctx;\n }\n this._registerDecorationListeners();\n this._registerBufferChangeListeners();\n this._registerDimensionChangeListeners();\n }\n\n /**\n * On decoration add or remove, redraw\n */\n private _registerDecorationListeners(): void {\n this.register(this._decorationService.onDecorationRegistered(() => this._queueRefresh(undefined, true)));\n this.register(this._decorationService.onDecorationRemoved(() => this._queueRefresh(undefined, true)));\n }\n\n /**\n * On buffer change, redraw\n * and hide the canvas if the alt buffer is active\n */\n private _registerBufferChangeListeners(): void {\n this.register(this._renderService.onRenderedViewportChange(() => this._queueRefresh()));\n this.register(this._bufferService.buffers.onBufferActivate(() => {\n this._canvas!.style.display = this._bufferService.buffer === this._bufferService.buffers.alt ? 'none' : 'block';\n }));\n this.register(this._bufferService.onScroll(() => {\n if (this._lastKnownBufferLength !== this._bufferService.buffers.normal.lines.length) {\n this._refreshDrawHeightConstants();\n this._refreshColorZonePadding();\n }\n }));\n }\n /**\n * On dimension change, update canvas dimensions\n * and then redraw\n */\n private _registerDimensionChangeListeners(): void {\n // container height changed\n this.register(this._renderService.onRender((): void => {\n if (!this._containerHeight || this._containerHeight !== this._screenElement.clientHeight) {\n this._queueRefresh(true);\n this._containerHeight = this._screenElement.clientHeight;\n }\n }));\n // overview ruler width changed\n this.register(this._optionsService.onOptionChange(o => {\n if (o === 'overviewRulerWidth') {\n this._queueRefresh(true);\n }\n }));\n // device pixel ratio changed\n this.register(addDisposableDomListener(this._coreBrowseService.window, 'resize', () => {\n this._queueRefresh(true);\n }));\n // set the canvas dimensions\n this._queueRefresh(true);\n }\n\n public override dispose(): void {\n this._canvas?.remove();\n super.dispose();\n }\n\n private _refreshDrawConstants(): void {\n // width\n const outerWidth = Math.floor(this._canvas.width / 3);\n const innerWidth = Math.ceil(this._canvas.width / 3);\n drawWidth.full = this._canvas.width;\n drawWidth.left = outerWidth;\n drawWidth.center = innerWidth;\n drawWidth.right = outerWidth;\n // height\n this._refreshDrawHeightConstants();\n // x\n drawX.full = 0;\n drawX.left = 0;\n drawX.center = drawWidth.left;\n drawX.right = drawWidth.left + drawWidth.center;\n }\n\n private _refreshDrawHeightConstants(): void {\n drawHeight.full = Math.round(2 * this._coreBrowseService.dpr);\n // Calculate actual pixels per line\n const pixelsPerLine = this._canvas.height / this._bufferService.buffer.lines.length;\n // Clamp actual pixels within a range\n const nonFullHeight = Math.round(Math.max(Math.min(pixelsPerLine, 12), 6) * this._coreBrowseService.dpr);\n drawHeight.left = nonFullHeight;\n drawHeight.center = nonFullHeight;\n drawHeight.right = nonFullHeight;\n }\n\n private _refreshColorZonePadding(): void {\n this._colorZoneStore.setPadding({\n full: Math.floor(this._bufferService.buffers.active.lines.length / (this._canvas.height - 1) * drawHeight.full),\n left: Math.floor(this._bufferService.buffers.active.lines.length / (this._canvas.height - 1) * drawHeight.left),\n center: Math.floor(this._bufferService.buffers.active.lines.length / (this._canvas.height - 1) * drawHeight.center),\n right: Math.floor(this._bufferService.buffers.active.lines.length / (this._canvas.height - 1) * drawHeight.right)\n });\n this._lastKnownBufferLength = this._bufferService.buffers.normal.lines.length;\n }\n\n private _refreshCanvasDimensions(): void {\n this._canvas.style.width = `${this._width}px`;\n this._canvas.width = Math.round(this._width * this._coreBrowseService.dpr);\n this._canvas.style.height = `${this._screenElement.clientHeight}px`;\n this._canvas.height = Math.round(this._screenElement.clientHeight * this._coreBrowseService.dpr);\n this._refreshDrawConstants();\n this._refreshColorZonePadding();\n }\n\n private _refreshDecorations(): void {\n if (this._shouldUpdateDimensions) {\n this._refreshCanvasDimensions();\n }\n this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);\n this._colorZoneStore.clear();\n for (const decoration of this._decorationService.decorations) {\n this._colorZoneStore.addDecoration(decoration);\n }\n this._ctx.lineWidth = 1;\n const zones = this._colorZoneStore.zones;\n for (const zone of zones) {\n if (zone.position !== 'full') {\n this._renderColorZone(zone);\n }\n }\n for (const zone of zones) {\n if (zone.position === 'full') {\n this._renderColorZone(zone);\n }\n }\n this._shouldUpdateDimensions = false;\n this._shouldUpdateAnchor = false;\n }\n\n private _renderColorZone(zone: IColorZone): void {\n // TODO: Is _decorationElements needed?\n\n this._ctx.fillStyle = zone.color;\n this._ctx.fillRect(\n /* x */ drawX[zone.position || 'full'],\n /* y */ Math.round(\n (this._canvas.height - 1) * // -1 to ensure at least 2px are allowed for decoration on last line\n (zone.startBufferLine / this._bufferService.buffers.active.lines.length) - drawHeight[zone.position || 'full'] / 2\n ),\n /* w */ drawWidth[zone.position || 'full'],\n /* h */ Math.round(\n (this._canvas.height - 1) * // -1 to ensure at least 2px are allowed for decoration on last line\n ((zone.endBufferLine - zone.startBufferLine) / this._bufferService.buffers.active.lines.length) + drawHeight[zone.position || 'full']\n )\n );\n }\n\n private _queueRefresh(updateCanvasDimensions?: boolean, updateAnchor?: boolean): void {\n this._shouldUpdateDimensions = updateCanvasDimensions || this._shouldUpdateDimensions;\n this._shouldUpdateAnchor = updateAnchor || this._shouldUpdateAnchor;\n if (this._animationFrame !== undefined) {\n return;\n }\n this._animationFrame = this._coreBrowseService.window.requestAnimationFrame(() => {\n this._refreshDecorations();\n this._animationFrame = undefined;\n });\n }\n}\n","/**\n * Copyright (c) 2016 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IRenderService } from 'browser/services/Services';\nimport { IBufferService, ICoreService, IOptionsService } from 'common/services/Services';\nimport { C0 } from 'common/data/EscapeSequences';\n\ninterface IPosition {\n start: number;\n end: number;\n}\n\n/**\n * Encapsulates the logic for handling compositionstart, compositionupdate and compositionend\n * events, displaying the in-progress composition to the UI and forwarding the final composition\n * to the handler.\n */\nexport class CompositionHelper {\n /**\n * Whether input composition is currently happening, eg. via a mobile keyboard, speech input or\n * IME. This variable determines whether the compositionText should be displayed on the UI.\n */\n private _isComposing: boolean;\n public get isComposing(): boolean { return this._isComposing; }\n\n /**\n * The position within the input textarea's value of the current composition.\n */\n private _compositionPosition: IPosition;\n\n /**\n * Whether a composition is in the process of being sent, setting this to false will cancel any\n * in-progress composition.\n */\n private _isSendingComposition: boolean;\n\n /**\n * Data already sent due to keydown event.\n */\n private _dataAlreadySent: string;\n\n constructor(\n private readonly _textarea: HTMLTextAreaElement,\n private readonly _compositionView: HTMLElement,\n @IBufferService private readonly _bufferService: IBufferService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @ICoreService private readonly _coreService: ICoreService,\n @IRenderService private readonly _renderService: IRenderService\n ) {\n this._isComposing = false;\n this._isSendingComposition = false;\n this._compositionPosition = { start: 0, end: 0 };\n this._dataAlreadySent = '';\n }\n\n /**\n * Handles the compositionstart event, activating the composition view.\n */\n public compositionstart(): void {\n this._isComposing = true;\n this._compositionPosition.start = this._textarea.value.length;\n this._compositionView.textContent = '';\n this._dataAlreadySent = '';\n this._compositionView.classList.add('active');\n }\n\n /**\n * Handles the compositionupdate event, updating the composition view.\n * @param ev The event.\n */\n public compositionupdate(ev: Pick): void {\n this._compositionView.textContent = ev.data;\n this.updateCompositionElements();\n setTimeout(() => {\n this._compositionPosition.end = this._textarea.value.length;\n }, 0);\n }\n\n /**\n * Handles the compositionend event, hiding the composition view and sending the composition to\n * the handler.\n */\n public compositionend(): void {\n this._finalizeComposition(true);\n }\n\n /**\n * Handles the keydown event, routing any necessary events to the CompositionHelper functions.\n * @param ev The keydown event.\n * @return Whether the Terminal should continue processing the keydown event.\n */\n public keydown(ev: KeyboardEvent): boolean {\n if (this._isComposing || this._isSendingComposition) {\n if (ev.keyCode === 229) {\n // Continue composing if the keyCode is the \"composition character\"\n return false;\n }\n if (ev.keyCode === 16 || ev.keyCode === 17 || ev.keyCode === 18) {\n // Continue composing if the keyCode is a modifier key\n return false;\n }\n // Finish composition immediately. This is mainly here for the case where enter is\n // pressed and the handler needs to be triggered before the command is executed.\n this._finalizeComposition(false);\n }\n\n if (ev.keyCode === 229) {\n // If the \"composition character\" is used but gets to this point it means a non-composition\n // character (eg. numbers and punctuation) was pressed when the IME was active.\n this._handleAnyTextareaChanges();\n return false;\n }\n\n return true;\n }\n\n /**\n * Finalizes the composition, resuming regular input actions. This is called when a composition\n * is ending.\n * @param waitForPropagation Whether to wait for events to propagate before sending\n * the input. This should be false if a non-composition keystroke is entered before the\n * compositionend event is triggered, such as enter, so that the composition is sent before\n * the command is executed.\n */\n private _finalizeComposition(waitForPropagation: boolean): void {\n this._compositionView.classList.remove('active');\n this._isComposing = false;\n\n if (!waitForPropagation) {\n // Cancel any delayed composition send requests and send the input immediately.\n this._isSendingComposition = false;\n const input = this._textarea.value.substring(this._compositionPosition.start, this._compositionPosition.end);\n this._coreService.triggerDataEvent(input, true);\n } else {\n // Make a deep copy of the composition position here as a new compositionstart event may\n // fire before the setTimeout executes.\n const currentCompositionPosition = {\n start: this._compositionPosition.start,\n end: this._compositionPosition.end\n };\n\n // Since composition* events happen before the changes take place in the textarea on most\n // browsers, use a setTimeout with 0ms time to allow the native compositionend event to\n // complete. This ensures the correct character is retrieved.\n // This solution was used because:\n // - The compositionend event's data property is unreliable, at least on Chromium\n // - The last compositionupdate event's data property does not always accurately describe\n // the character, a counter example being Korean where an ending consonsant can move to\n // the following character if the following input is a vowel.\n this._isSendingComposition = true;\n setTimeout(() => {\n // Ensure that the input has not already been sent\n if (this._isSendingComposition) {\n this._isSendingComposition = false;\n let input;\n // Add length of data already sent due to keydown event,\n // otherwise input characters can be duplicated. (Issue #3191)\n currentCompositionPosition.start += this._dataAlreadySent.length;\n if (this._isComposing) {\n // Use the end position to get the string if a new composition has started.\n input = this._textarea.value.substring(currentCompositionPosition.start, currentCompositionPosition.end);\n } else {\n // Don't use the end position here in order to pick up any characters after the\n // composition has finished, for example when typing a non-composition character\n // (eg. 2) after a composition character.\n input = this._textarea.value.substring(currentCompositionPosition.start);\n }\n if (input.length > 0) {\n this._coreService.triggerDataEvent(input, true);\n }\n }\n }, 0);\n }\n }\n\n /**\n * Apply any changes made to the textarea after the current event chain is allowed to complete.\n * This should be called when not currently composing but a keydown event with the \"composition\n * character\" (229) is triggered, in order to allow non-composition text to be entered when an\n * IME is active.\n */\n private _handleAnyTextareaChanges(): void {\n const oldValue = this._textarea.value;\n setTimeout(() => {\n // Ignore if a composition has started since the timeout\n if (!this._isComposing) {\n const newValue = this._textarea.value;\n\n const diff = newValue.replace(oldValue, '');\n\n this._dataAlreadySent = diff;\n\n if (newValue.length > oldValue.length) {\n this._coreService.triggerDataEvent(diff, true);\n } else if (newValue.length < oldValue.length) {\n this._coreService.triggerDataEvent(`${C0.DEL}`, true);\n } else if ((newValue.length === oldValue.length) && (newValue !== oldValue)) {\n this._coreService.triggerDataEvent(newValue, true);\n }\n\n }\n }, 0);\n }\n\n /**\n * Positions the composition view on top of the cursor and the textarea just below it (so the\n * IME helper dialog is positioned correctly).\n * @param dontRecurse Whether to use setTimeout to recursively trigger another update, this is\n * necessary as the IME events across browsers are not consistently triggered.\n */\n public updateCompositionElements(dontRecurse?: boolean): void {\n if (!this._isComposing) {\n return;\n }\n\n if (this._bufferService.buffer.isCursorInViewport) {\n const cursorX = Math.min(this._bufferService.buffer.x, this._bufferService.cols - 1);\n\n const cellHeight = this._renderService.dimensions.actualCellHeight;\n const cursorTop = this._bufferService.buffer.y * this._renderService.dimensions.actualCellHeight;\n const cursorLeft = cursorX * this._renderService.dimensions.actualCellWidth;\n\n this._compositionView.style.left = cursorLeft + 'px';\n this._compositionView.style.top = cursorTop + 'px';\n this._compositionView.style.height = cellHeight + 'px';\n this._compositionView.style.lineHeight = cellHeight + 'px';\n this._compositionView.style.fontFamily = this._optionsService.rawOptions.fontFamily;\n this._compositionView.style.fontSize = this._optionsService.rawOptions.fontSize + 'px';\n // Sync the textarea to the exact position of the composition view so the IME knows where the\n // text is.\n const compositionViewBounds = this._compositionView.getBoundingClientRect();\n this._textarea.style.left = cursorLeft + 'px';\n this._textarea.style.top = cursorTop + 'px';\n // Ensure the text area is at least 1x1, otherwise certain IMEs may break\n this._textarea.style.width = Math.max(compositionViewBounds.width, 1) + 'px';\n this._textarea.style.height = Math.max(compositionViewBounds.height, 1) + 'px';\n this._textarea.style.lineHeight = compositionViewBounds.height + 'px';\n }\n\n if (!dontRecurse) {\n setTimeout(() => this.updateCompositionElements(true), 0);\n }\n }\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nexport function getCoordsRelativeToElement(window: Pick, event: {clientX: number, clientY: number}, element: HTMLElement): [number, number] {\n const rect = element.getBoundingClientRect();\n const elementStyle = window.getComputedStyle(element);\n const leftPadding = parseInt(elementStyle.getPropertyValue('padding-left'));\n const topPadding = parseInt(elementStyle.getPropertyValue('padding-top'));\n return [\n event.clientX - rect.left - leftPadding,\n event.clientY - rect.top - topPadding\n ];\n}\n\n/**\n * Gets coordinates within the terminal for a particular mouse event. The result\n * is returned as an array in the form [x, y] instead of an object as it's a\n * little faster and this function is used in some low level code.\n * @param event The mouse event.\n * @param element The terminal's container element.\n * @param colCount The number of columns in the terminal.\n * @param rowCount The number of rows n the terminal.\n * @param isSelection Whether the request is for the selection or not. This will\n * apply an offset to the x value such that the left half of the cell will\n * select that cell and the right half will select the next cell.\n */\nexport function getCoords(window: Pick, event: {clientX: number, clientY: number}, element: HTMLElement, colCount: number, rowCount: number, hasValidCharSize: boolean, actualCellWidth: number, actualCellHeight: number, isSelection?: boolean): [number, number] | undefined {\n // Coordinates cannot be measured if there are no valid\n if (!hasValidCharSize) {\n return undefined;\n }\n\n const coords = getCoordsRelativeToElement(window, event, element);\n if (!coords) {\n return undefined;\n }\n\n coords[0] = Math.ceil((coords[0] + (isSelection ? actualCellWidth / 2 : 0)) / actualCellWidth);\n coords[1] = Math.ceil(coords[1] / actualCellHeight);\n\n // Ensure coordinates are within the terminal viewport. Note that selections\n // need an addition point of precision to cover the end point (as characters\n // cover half of one char and half of the next).\n coords[0] = Math.min(Math.max(coords[0], 1), colCount + (isSelection ? 1 : 0));\n coords[1] = Math.min(Math.max(coords[1], 1), rowCount);\n\n return coords;\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { C0 } from 'common/data/EscapeSequences';\nimport { IBufferService } from 'common/services/Services';\n\nconst enum Direction {\n UP = 'A',\n DOWN = 'B',\n RIGHT = 'C',\n LEFT = 'D'\n}\n\n/**\n * Concatenates all the arrow sequences together.\n * Resets the starting row to an unwrapped row, moves to the requested row,\n * then moves to requested col.\n */\nexport function moveToCellSequence(targetX: number, targetY: number, bufferService: IBufferService, applicationCursor: boolean): string {\n const startX = bufferService.buffer.x;\n const startY = bufferService.buffer.y;\n\n // The alt buffer should try to navigate between rows\n if (!bufferService.buffer.hasScrollback) {\n return resetStartingRow(startX, startY, targetX, targetY, bufferService, applicationCursor) +\n moveToRequestedRow(startY, targetY, bufferService, applicationCursor) +\n moveToRequestedCol(startX, startY, targetX, targetY, bufferService, applicationCursor);\n }\n\n // Only move horizontally for the normal buffer\n let direction;\n if (startY === targetY) {\n direction = startX > targetX ? Direction.LEFT : Direction.RIGHT;\n return repeat(Math.abs(startX - targetX), sequence(direction, applicationCursor));\n }\n direction = startY > targetY ? Direction.LEFT : Direction.RIGHT;\n const rowDifference = Math.abs(startY - targetY);\n const cellsToMove = colsFromRowEnd(startY > targetY ? targetX : startX, bufferService) +\n (rowDifference - 1) * bufferService.cols + 1 /* wrap around 1 row */ +\n colsFromRowBeginning(startY > targetY ? startX : targetX, bufferService);\n return repeat(cellsToMove, sequence(direction, applicationCursor));\n}\n\n/**\n * Find the number of cols from a row beginning to a col.\n */\nfunction colsFromRowBeginning(currX: number, bufferService: IBufferService): number {\n return currX - 1;\n}\n\n/**\n * Find the number of cols from a col to row end.\n */\nfunction colsFromRowEnd(currX: number, bufferService: IBufferService): number {\n return bufferService.cols - currX;\n}\n\n/**\n * If the initial position of the cursor is on a row that is wrapped, move the\n * cursor up to the first row that is not wrapped to have accurate vertical\n * positioning.\n */\nfunction resetStartingRow(startX: number, startY: number, targetX: number, targetY: number, bufferService: IBufferService, applicationCursor: boolean): string {\n if (moveToRequestedRow(startY, targetY, bufferService, applicationCursor).length === 0) {\n return '';\n }\n return repeat(bufferLine(\n startX, startY, startX,\n startY - wrappedRowsForRow(bufferService, startY), false, bufferService\n ).length, sequence(Direction.LEFT, applicationCursor));\n}\n\n/**\n * Using the reset starting and ending row, move to the requested row,\n * ignoring wrapped rows\n */\nfunction moveToRequestedRow(startY: number, targetY: number, bufferService: IBufferService, applicationCursor: boolean): string {\n const startRow = startY - wrappedRowsForRow(bufferService, startY);\n const endRow = targetY - wrappedRowsForRow(bufferService, targetY);\n\n const rowsToMove = Math.abs(startRow - endRow) - wrappedRowsCount(startY, targetY, bufferService);\n\n return repeat(rowsToMove, sequence(verticalDirection(startY, targetY), applicationCursor));\n}\n\n/**\n * Move to the requested col on the ending row\n */\nfunction moveToRequestedCol(startX: number, startY: number, targetX: number, targetY: number, bufferService: IBufferService, applicationCursor: boolean): string {\n let startRow;\n if (moveToRequestedRow(startY, targetY, bufferService, applicationCursor).length > 0) {\n startRow = targetY - wrappedRowsForRow(bufferService, targetY);\n } else {\n startRow = startY;\n }\n\n const endRow = targetY;\n const direction = horizontalDirection(startX, startY, targetX, targetY, bufferService, applicationCursor);\n\n return repeat(bufferLine(\n startX, startRow, targetX, endRow,\n direction === Direction.RIGHT, bufferService\n ).length, sequence(direction, applicationCursor));\n}\n\n/**\n * Utility functions\n */\n\n/**\n * Calculates the number of wrapped rows between the unwrapped starting and\n * ending rows. These rows need to ignored since the cursor skips over them.\n */\nfunction wrappedRowsCount(startY: number, targetY: number, bufferService: IBufferService): number {\n let wrappedRows = 0;\n const startRow = startY - wrappedRowsForRow(bufferService, startY);\n const endRow = targetY - wrappedRowsForRow(bufferService, targetY);\n\n for (let i = 0; i < Math.abs(startRow - endRow); i++) {\n const direction = verticalDirection(startY, targetY) === Direction.UP ? -1 : 1;\n const line = bufferService.buffer.lines.get(startRow + (direction * i));\n if (line?.isWrapped) {\n wrappedRows++;\n }\n }\n\n return wrappedRows;\n}\n\n/**\n * Calculates the number of wrapped rows that make up a given row.\n * @param currentRow The row to determine how many wrapped rows make it up\n */\nfunction wrappedRowsForRow(bufferService: IBufferService, currentRow: number): number {\n let rowCount = 0;\n let line = bufferService.buffer.lines.get(currentRow);\n let lineWraps = line?.isWrapped;\n\n while (lineWraps && currentRow >= 0 && currentRow < bufferService.rows) {\n rowCount++;\n line = bufferService.buffer.lines.get(--currentRow);\n lineWraps = line?.isWrapped;\n }\n\n return rowCount;\n}\n\n/**\n * Direction determiners\n */\n\n/**\n * Determines if the right or left arrow is needed\n */\nfunction horizontalDirection(startX: number, startY: number, targetX: number, targetY: number, bufferService: IBufferService, applicationCursor: boolean): Direction {\n let startRow;\n if (moveToRequestedRow(targetX, targetY, bufferService, applicationCursor).length > 0) {\n startRow = targetY - wrappedRowsForRow(bufferService, targetY);\n } else {\n startRow = startY;\n }\n\n if ((startX < targetX &&\n startRow <= targetY) || // down/right or same y/right\n (startX >= targetX &&\n startRow < targetY)) { // down/left or same y/left\n return Direction.RIGHT;\n }\n return Direction.LEFT;\n}\n\n/**\n * Determines if the up or down arrow is needed\n */\nfunction verticalDirection(startY: number, targetY: number): Direction {\n return startY > targetY ? Direction.UP : Direction.DOWN;\n}\n\n/**\n * Constructs the string of chars in the buffer from a starting row and col\n * to an ending row and col\n * @param startCol The starting column position\n * @param startRow The starting row position\n * @param endCol The ending column position\n * @param endRow The ending row position\n * @param forward Direction to move\n */\nfunction bufferLine(\n startCol: number,\n startRow: number,\n endCol: number,\n endRow: number,\n forward: boolean,\n bufferService: IBufferService\n): string {\n let currentCol = startCol;\n let currentRow = startRow;\n let bufferStr = '';\n\n while (currentCol !== endCol || currentRow !== endRow) {\n currentCol += forward ? 1 : -1;\n\n if (forward && currentCol > bufferService.cols - 1) {\n bufferStr += bufferService.buffer.translateBufferLineToString(\n currentRow, false, startCol, currentCol\n );\n currentCol = 0;\n startCol = 0;\n currentRow++;\n } else if (!forward && currentCol < 0) {\n bufferStr += bufferService.buffer.translateBufferLineToString(\n currentRow, false, 0, startCol + 1\n );\n currentCol = bufferService.cols - 1;\n startCol = currentCol;\n currentRow--;\n }\n }\n\n return bufferStr + bufferService.buffer.translateBufferLineToString(\n currentRow, false, startCol, currentCol\n );\n}\n\n/**\n * Constructs the escape sequence for clicking an arrow\n * @param direction The direction to move\n */\nfunction sequence(direction: Direction, applicationCursor: boolean): string {\n const mod = applicationCursor ? 'O' : '[';\n return C0.ESC + mod + direction;\n}\n\n/**\n * Returns a string repeated a given number of times\n * Polyfill from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n * @param count The number of times to repeat the string\n * @param string The string that is to be repeated\n */\nfunction repeat(count: number, str: string): string {\n count = Math.floor(count);\n let rpt = '';\n for (let i = 0; i < count; i++) {\n rpt += str;\n }\n return rpt;\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { isFirefox, isLegacyEdge } from 'common/Platform';\n\nexport const INVERTED_DEFAULT_COLOR = 257;\n\nexport const DIM_OPACITY = 0.5;\n// The text baseline is set conditionally by browser. Using 'ideographic' for Firefox or Legacy Edge would\n// result in truncated text (Issue 3353). Using 'bottom' for Chrome would result in slightly\n// unaligned Powerline fonts (PR 3356#issuecomment-850928179).\nexport const TEXT_BASELINE: CanvasTextBaseline = isFirefox || isLegacyEdge ? 'bottom' : 'ideographic';\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nexport function throwIfFalsy(value: T | undefined | null): T {\n if (!value) {\n throw new Error('value must not be falsy');\n }\n return value;\n}\n\nexport function isPowerlineGlyph(codepoint: number): boolean {\n // Only return true for Powerline symbols which require\n // different padding and should be excluded from minimum contrast\n // ratio standards\n return 0xE0A4 <= codepoint && codepoint <= 0xE0D6;\n}\n\nexport function isRestrictedPowerlineGlyph(codepoint: number): boolean {\n return 0xE0B0 <= codepoint && codepoint <= 0xE0B7;\n}\n\nfunction isBoxOrBlockGlyph(codepoint: number): boolean {\n return 0x2500 <= codepoint && codepoint <= 0x259F;\n}\n\nexport function excludeFromContrastRatioDemands(codepoint: number): boolean {\n return isPowerlineGlyph(codepoint) || isBoxOrBlockGlyph(codepoint);\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IRenderer, IRenderDimensions, IRequestRedrawEvent } from 'browser/renderer/Types';\nimport { BOLD_CLASS, ITALIC_CLASS, CURSOR_CLASS, CURSOR_STYLE_BLOCK_CLASS, CURSOR_BLINK_CLASS, CURSOR_STYLE_BAR_CLASS, CURSOR_STYLE_UNDERLINE_CLASS, DomRendererRowFactory } from 'browser/renderer/dom/DomRendererRowFactory';\nimport { INVERTED_DEFAULT_COLOR } from 'browser/renderer/Constants';\nimport { Disposable } from 'common/Lifecycle';\nimport { IColorSet, ILinkifierEvent, ILinkifier2 } from 'browser/Types';\nimport { ICharSizeService, ICoreBrowserService } from 'browser/services/Services';\nimport { IOptionsService, IBufferService, IInstantiationService } from 'common/services/Services';\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\nimport { color } from 'common/Color';\nimport { removeElementFromParent } from 'browser/Dom';\n\nconst TERMINAL_CLASS_PREFIX = 'xterm-dom-renderer-owner-';\nconst ROW_CONTAINER_CLASS = 'xterm-rows';\nconst FG_CLASS_PREFIX = 'xterm-fg-';\nconst BG_CLASS_PREFIX = 'xterm-bg-';\nconst FOCUS_CLASS = 'xterm-focus';\nconst SELECTION_CLASS = 'xterm-selection';\n\nlet nextTerminalId = 1;\n\n/**\n * A fallback renderer for when canvas is slow. This is not meant to be\n * particularly fast or feature complete, more just stable and usable for when\n * canvas is not an option.\n */\nexport class DomRenderer extends Disposable implements IRenderer {\n private _rowFactory: DomRendererRowFactory;\n private _terminalClass: number = nextTerminalId++;\n\n private _themeStyleElement!: HTMLStyleElement;\n private _dimensionsStyleElement!: HTMLStyleElement;\n private _rowContainer: HTMLElement;\n private _rowElements: HTMLElement[] = [];\n private _selectionContainer: HTMLElement;\n\n public dimensions: IRenderDimensions;\n\n public get onRequestRedraw(): IEvent { return new EventEmitter().event; }\n\n constructor(\n private _colors: IColorSet,\n private readonly _element: HTMLElement,\n private readonly _screenElement: HTMLElement,\n private readonly _viewportElement: HTMLElement,\n private readonly _linkifier2: ILinkifier2,\n @IInstantiationService instantiationService: IInstantiationService,\n @ICharSizeService private readonly _charSizeService: ICharSizeService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @IBufferService private readonly _bufferService: IBufferService,\n @ICoreBrowserService private readonly _coreBrowserService: ICoreBrowserService\n ) {\n super();\n this._rowContainer = document.createElement('div');\n this._rowContainer.classList.add(ROW_CONTAINER_CLASS);\n this._rowContainer.style.lineHeight = 'normal';\n this._rowContainer.setAttribute('aria-hidden', 'true');\n this._refreshRowElements(this._bufferService.cols, this._bufferService.rows);\n this._selectionContainer = document.createElement('div');\n this._selectionContainer.classList.add(SELECTION_CLASS);\n this._selectionContainer.setAttribute('aria-hidden', 'true');\n\n this.dimensions = {\n scaledCharWidth: 0,\n scaledCharHeight: 0,\n scaledCellWidth: 0,\n scaledCellHeight: 0,\n scaledCharLeft: 0,\n scaledCharTop: 0,\n scaledCanvasWidth: 0,\n scaledCanvasHeight: 0,\n canvasWidth: 0,\n canvasHeight: 0,\n actualCellWidth: 0,\n actualCellHeight: 0\n };\n this._updateDimensions();\n this._injectCss();\n\n this._rowFactory = instantiationService.createInstance(DomRendererRowFactory, document, this._colors);\n\n this._element.classList.add(TERMINAL_CLASS_PREFIX + this._terminalClass);\n this._screenElement.appendChild(this._rowContainer);\n this._screenElement.appendChild(this._selectionContainer);\n\n this.register(this._linkifier2.onShowLinkUnderline(e => this._onLinkHover(e)));\n this.register(this._linkifier2.onHideLinkUnderline(e => this._onLinkLeave(e)));\n }\n\n public dispose(): void {\n this._element.classList.remove(TERMINAL_CLASS_PREFIX + this._terminalClass);\n\n // Outside influences such as React unmounts may manipulate the DOM before our disposal.\n // https://github.com/xtermjs/xterm.js/issues/2960\n removeElementFromParent(this._rowContainer, this._selectionContainer, this._themeStyleElement, this._dimensionsStyleElement);\n\n super.dispose();\n }\n\n private _updateDimensions(): void {\n const dpr = this._coreBrowserService.dpr;\n this.dimensions.scaledCharWidth = this._charSizeService.width * dpr;\n this.dimensions.scaledCharHeight = Math.ceil(this._charSizeService.height * dpr);\n this.dimensions.scaledCellWidth = this.dimensions.scaledCharWidth + Math.round(this._optionsService.rawOptions.letterSpacing);\n this.dimensions.scaledCellHeight = Math.floor(this.dimensions.scaledCharHeight * this._optionsService.rawOptions.lineHeight);\n this.dimensions.scaledCharLeft = 0;\n this.dimensions.scaledCharTop = 0;\n this.dimensions.scaledCanvasWidth = this.dimensions.scaledCellWidth * this._bufferService.cols;\n this.dimensions.scaledCanvasHeight = this.dimensions.scaledCellHeight * this._bufferService.rows;\n this.dimensions.canvasWidth = Math.round(this.dimensions.scaledCanvasWidth / dpr);\n this.dimensions.canvasHeight = Math.round(this.dimensions.scaledCanvasHeight / dpr);\n this.dimensions.actualCellWidth = this.dimensions.canvasWidth / this._bufferService.cols;\n this.dimensions.actualCellHeight = this.dimensions.canvasHeight / this._bufferService.rows;\n\n for (const element of this._rowElements) {\n element.style.width = `${this.dimensions.canvasWidth}px`;\n element.style.height = `${this.dimensions.actualCellHeight}px`;\n element.style.lineHeight = `${this.dimensions.actualCellHeight}px`;\n // Make sure rows don't overflow onto following row\n element.style.overflow = 'hidden';\n }\n\n if (!this._dimensionsStyleElement) {\n this._dimensionsStyleElement = document.createElement('style');\n this._screenElement.appendChild(this._dimensionsStyleElement);\n }\n\n const styles =\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS} span {` +\n ` display: inline-block;` +\n ` height: 100%;` +\n ` vertical-align: top;` +\n ` width: ${this.dimensions.actualCellWidth}px` +\n `}`;\n\n this._dimensionsStyleElement.textContent = styles;\n\n this._selectionContainer.style.height = this._viewportElement.style.height;\n this._screenElement.style.width = `${this.dimensions.canvasWidth}px`;\n this._screenElement.style.height = `${this.dimensions.canvasHeight}px`;\n }\n\n public setColors(colors: IColorSet): void {\n this._colors = colors;\n this._injectCss();\n }\n\n private _injectCss(): void {\n if (!this._themeStyleElement) {\n this._themeStyleElement = document.createElement('style');\n this._screenElement.appendChild(this._themeStyleElement);\n }\n\n // Base CSS\n let styles =\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS} {` +\n ` color: ${this._colors.foreground.css};` +\n ` font-family: ${this._optionsService.rawOptions.fontFamily};` +\n ` font-size: ${this._optionsService.rawOptions.fontSize}px;` +\n `}`;\n // Text styles\n styles +=\n `${this._terminalSelector} span:not(.${BOLD_CLASS}) {` +\n ` font-weight: ${this._optionsService.rawOptions.fontWeight};` +\n `}` +\n `${this._terminalSelector} span.${BOLD_CLASS} {` +\n ` font-weight: ${this._optionsService.rawOptions.fontWeightBold};` +\n `}` +\n `${this._terminalSelector} span.${ITALIC_CLASS} {` +\n ` font-style: italic;` +\n `}`;\n // Blink animation\n styles +=\n `@keyframes blink_box_shadow` + `_` + this._terminalClass + ` {` +\n ` 50% {` +\n ` box-shadow: none;` +\n ` }` +\n `}`;\n styles +=\n `@keyframes blink_block` + `_` + this._terminalClass + ` {` +\n ` 0% {` +\n ` background-color: ${this._colors.cursor.css};` +\n ` color: ${this._colors.cursorAccent.css};` +\n ` }` +\n ` 50% {` +\n ` background-color: ${this._colors.cursorAccent.css};` +\n ` color: ${this._colors.cursor.css};` +\n ` }` +\n `}`;\n // Cursor\n styles +=\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS}:not(.${FOCUS_CLASS}) .${CURSOR_CLASS}.${CURSOR_STYLE_BLOCK_CLASS} {` +\n ` outline: 1px solid ${this._colors.cursor.css};` +\n ` outline-offset: -1px;` +\n `}` +\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS}.${FOCUS_CLASS} .${CURSOR_CLASS}.${CURSOR_BLINK_CLASS}:not(.${CURSOR_STYLE_BLOCK_CLASS}) {` +\n ` animation: blink_box_shadow` + `_` + this._terminalClass + ` 1s step-end infinite;` +\n `}` +\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS}.${FOCUS_CLASS} .${CURSOR_CLASS}.${CURSOR_BLINK_CLASS}.${CURSOR_STYLE_BLOCK_CLASS} {` +\n ` animation: blink_block` + `_` + this._terminalClass + ` 1s step-end infinite;` +\n `}` +\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS}.${FOCUS_CLASS} .${CURSOR_CLASS}.${CURSOR_STYLE_BLOCK_CLASS} {` +\n ` background-color: ${this._colors.cursor.css};` +\n ` color: ${this._colors.cursorAccent.css};` +\n `}` +\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS} .${CURSOR_CLASS}.${CURSOR_STYLE_BAR_CLASS} {` +\n ` box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${this._colors.cursor.css} inset;` +\n `}` +\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS} .${CURSOR_CLASS}.${CURSOR_STYLE_UNDERLINE_CLASS} {` +\n ` box-shadow: 0 -1px 0 ${this._colors.cursor.css} inset;` +\n `}`;\n // Selection\n styles +=\n `${this._terminalSelector} .${SELECTION_CLASS} {` +\n ` position: absolute;` +\n ` top: 0;` +\n ` left: 0;` +\n ` z-index: 1;` +\n ` pointer-events: none;` +\n `}` +\n `${this._terminalSelector}.focus .${SELECTION_CLASS} div {` +\n ` position: absolute;` +\n ` background-color: ${this._colors.selectionBackgroundOpaque.css};` +\n `}` +\n `${this._terminalSelector} .${SELECTION_CLASS} div {` +\n ` position: absolute;` +\n ` background-color: ${this._colors.selectionInactiveBackgroundOpaque.css};` +\n `}`;\n // Colors\n this._colors.ansi.forEach((c, i) => {\n styles +=\n `${this._terminalSelector} .${FG_CLASS_PREFIX}${i} { color: ${c.css}; }` +\n `${this._terminalSelector} .${BG_CLASS_PREFIX}${i} { background-color: ${c.css}; }`;\n });\n styles +=\n `${this._terminalSelector} .${FG_CLASS_PREFIX}${INVERTED_DEFAULT_COLOR} { color: ${color.opaque(this._colors.background).css}; }` +\n `${this._terminalSelector} .${BG_CLASS_PREFIX}${INVERTED_DEFAULT_COLOR} { background-color: ${this._colors.foreground.css}; }`;\n\n this._themeStyleElement.textContent = styles;\n }\n\n public onDevicePixelRatioChange(): void {\n this._updateDimensions();\n }\n\n private _refreshRowElements(cols: number, rows: number): void {\n // Add missing elements\n for (let i = this._rowElements.length; i <= rows; i++) {\n const row = document.createElement('div');\n this._rowContainer.appendChild(row);\n this._rowElements.push(row);\n }\n // Remove excess elements\n while (this._rowElements.length > rows) {\n this._rowContainer.removeChild(this._rowElements.pop()!);\n }\n }\n\n public onResize(cols: number, rows: number): void {\n this._refreshRowElements(cols, rows);\n this._updateDimensions();\n }\n\n public onCharSizeChanged(): void {\n this._updateDimensions();\n }\n\n public onBlur(): void {\n this._rowContainer.classList.remove(FOCUS_CLASS);\n }\n\n public onFocus(): void {\n this._rowContainer.classList.add(FOCUS_CLASS);\n }\n\n public onSelectionChanged(start: [number, number] | undefined, end: [number, number] | undefined, columnSelectMode: boolean): void {\n // Remove all selections\n while (this._selectionContainer.children.length) {\n this._selectionContainer.removeChild(this._selectionContainer.children[0]);\n }\n\n this._rowFactory.onSelectionChanged(start, end, columnSelectMode);\n this.renderRows(0, this._bufferService.rows - 1);\n\n // Selection does not exist\n if (!start || !end) {\n return;\n }\n\n // Translate from buffer position to viewport position\n const viewportStartRow = start[1] - this._bufferService.buffer.ydisp;\n const viewportEndRow = end[1] - this._bufferService.buffer.ydisp;\n const viewportCappedStartRow = Math.max(viewportStartRow, 0);\n const viewportCappedEndRow = Math.min(viewportEndRow, this._bufferService.rows - 1);\n\n // No need to draw the selection\n if (viewportCappedStartRow >= this._bufferService.rows || viewportCappedEndRow < 0) {\n return;\n }\n\n // Create the selections\n const documentFragment = document.createDocumentFragment();\n\n if (columnSelectMode) {\n const isXFlipped = start[0] > end[0];\n documentFragment.appendChild(\n this._createSelectionElement(viewportCappedStartRow, isXFlipped ? end[0] : start[0], isXFlipped ? start[0] : end[0], viewportCappedEndRow - viewportCappedStartRow + 1)\n );\n } else {\n // Draw first row\n const startCol = viewportStartRow === viewportCappedStartRow ? start[0] : 0;\n const endCol = viewportCappedStartRow === viewportEndRow ? end[0] : this._bufferService.cols;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow, startCol, endCol));\n // Draw middle rows\n const middleRowsCount = viewportCappedEndRow - viewportCappedStartRow - 1;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow + 1, 0, this._bufferService.cols, middleRowsCount));\n // Draw final row\n if (viewportCappedStartRow !== viewportCappedEndRow) {\n // Only draw viewportEndRow if it's not the same as viewporttartRow\n const endCol = viewportEndRow === viewportCappedEndRow ? end[0] : this._bufferService.cols;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedEndRow, 0, endCol));\n }\n }\n this._selectionContainer.appendChild(documentFragment);\n }\n\n /**\n * Creates a selection element at the specified position.\n * @param row The row of the selection.\n * @param colStart The start column.\n * @param colEnd The end columns.\n */\n private _createSelectionElement(row: number, colStart: number, colEnd: number, rowCount: number = 1): HTMLElement {\n const element = document.createElement('div');\n element.style.height = `${rowCount * this.dimensions.actualCellHeight}px`;\n element.style.top = `${row * this.dimensions.actualCellHeight}px`;\n element.style.left = `${colStart * this.dimensions.actualCellWidth}px`;\n element.style.width = `${this.dimensions.actualCellWidth * (colEnd - colStart)}px`;\n return element;\n }\n\n public onCursorMove(): void {\n // No-op, the cursor is drawn when rows are drawn\n }\n\n public onOptionsChanged(): void {\n // Force a refresh\n this._updateDimensions();\n this._injectCss();\n }\n\n public clear(): void {\n for (const e of this._rowElements) {\n e.innerText = '';\n }\n }\n\n public renderRows(start: number, end: number): void {\n const cursorAbsoluteY = this._bufferService.buffer.ybase + this._bufferService.buffer.y;\n const cursorX = Math.min(this._bufferService.buffer.x, this._bufferService.cols - 1);\n const cursorBlink = this._optionsService.rawOptions.cursorBlink;\n\n for (let y = start; y <= end; y++) {\n const rowElement = this._rowElements[y];\n rowElement.innerText = '';\n const row = y + this._bufferService.buffer.ydisp;\n const lineData = this._bufferService.buffer.lines.get(row);\n const cursorStyle = this._optionsService.rawOptions.cursorStyle;\n rowElement.appendChild(this._rowFactory.createRow(lineData!, row, row === cursorAbsoluteY, cursorStyle, cursorX, cursorBlink, this.dimensions.actualCellWidth, this._bufferService.cols));\n }\n }\n\n private get _terminalSelector(): string {\n return `.${TERMINAL_CLASS_PREFIX}${this._terminalClass}`;\n }\n\n private _onLinkHover(e: ILinkifierEvent): void {\n this._setCellUnderline(e.x1, e.x2, e.y1, e.y2, e.cols, true);\n }\n\n private _onLinkLeave(e: ILinkifierEvent): void {\n this._setCellUnderline(e.x1, e.x2, e.y1, e.y2, e.cols, false);\n }\n\n private _setCellUnderline(x: number, x2: number, y: number, y2: number, cols: number, enabled: boolean): void {\n while (x !== x2 || y !== y2) {\n const row = this._rowElements[y];\n if (!row) {\n return;\n }\n const span = row.children[x] as HTMLElement;\n if (span) {\n span.style.textDecoration = enabled ? 'underline' : 'none';\n }\n if (++x >= cols) {\n x = 0;\n y++;\n }\n }\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferLine, ICellData, IColor } from 'common/Types';\nimport { INVERTED_DEFAULT_COLOR } from 'browser/renderer/Constants';\nimport { NULL_CELL_CODE, WHITESPACE_CELL_CHAR, Attributes } from 'common/buffer/Constants';\nimport { CellData } from 'common/buffer/CellData';\nimport { ICoreService, IDecorationService, IOptionsService } from 'common/services/Services';\nimport { color, rgba } from 'common/Color';\nimport { IColorSet } from 'browser/Types';\nimport { ICharacterJoinerService, ICoreBrowserService } from 'browser/services/Services';\nimport { JoinedCellData } from 'browser/services/CharacterJoinerService';\nimport { excludeFromContrastRatioDemands } from 'browser/renderer/RendererUtils';\nimport { AttributeData } from 'common/buffer/AttributeData';\n\nexport const BOLD_CLASS = 'xterm-bold';\nexport const DIM_CLASS = 'xterm-dim';\nexport const ITALIC_CLASS = 'xterm-italic';\nexport const UNDERLINE_CLASS = 'xterm-underline';\nexport const STRIKETHROUGH_CLASS = 'xterm-strikethrough';\nexport const CURSOR_CLASS = 'xterm-cursor';\nexport const CURSOR_BLINK_CLASS = 'xterm-cursor-blink';\nexport const CURSOR_STYLE_BLOCK_CLASS = 'xterm-cursor-block';\nexport const CURSOR_STYLE_BAR_CLASS = 'xterm-cursor-bar';\nexport const CURSOR_STYLE_UNDERLINE_CLASS = 'xterm-cursor-underline';\n\nexport class DomRendererRowFactory {\n private _workCell: CellData = new CellData();\n\n private _selectionStart: [number, number] | undefined;\n private _selectionEnd: [number, number] | undefined;\n private _columnSelectMode: boolean = false;\n\n constructor(\n private readonly _document: Document,\n private _colors: IColorSet,\n @ICharacterJoinerService private readonly _characterJoinerService: ICharacterJoinerService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @ICoreBrowserService private readonly _coreBrowserService: ICoreBrowserService,\n @ICoreService private readonly _coreService: ICoreService,\n @IDecorationService private readonly _decorationService: IDecorationService\n ) {\n }\n\n public setColors(colors: IColorSet): void {\n this._colors = colors;\n }\n\n public onSelectionChanged(start: [number, number] | undefined, end: [number, number] | undefined, columnSelectMode: boolean): void {\n this._selectionStart = start;\n this._selectionEnd = end;\n this._columnSelectMode = columnSelectMode;\n }\n\n public createRow(lineData: IBufferLine, row: number, isCursorRow: boolean, cursorStyle: string | undefined, cursorX: number, cursorBlink: boolean, cellWidth: number, cols: number): DocumentFragment {\n const fragment = this._document.createDocumentFragment();\n\n const joinedRanges = this._characterJoinerService.getJoinedCharacters(row);\n // Find the line length first, this prevents the need to output a bunch of\n // empty cells at the end. This cannot easily be integrated into the main\n // loop below because of the colCount feature (which can be removed after we\n // properly support reflow and disallow data to go beyond the right-side of\n // the viewport).\n let lineLength = 0;\n for (let x = Math.min(lineData.length, cols) - 1; x >= 0; x--) {\n if (lineData.loadCell(x, this._workCell).getCode() !== NULL_CELL_CODE || (isCursorRow && x === cursorX)) {\n lineLength = x + 1;\n break;\n }\n }\n\n for (let x = 0; x < lineLength; x++) {\n lineData.loadCell(x, this._workCell);\n let width = this._workCell.getWidth();\n\n // The character to the left is a wide character, drawing is owned by the char at x-1\n if (width === 0) {\n continue;\n }\n\n // If true, indicates that the current character(s) to draw were joined.\n let isJoined = false;\n let lastCharX = x;\n\n // Process any joined character ranges as needed. Because of how the\n // ranges are produced, we know that they are valid for the characters\n // and attributes of our input.\n let cell = this._workCell;\n if (joinedRanges.length > 0 && x === joinedRanges[0][0]) {\n isJoined = true;\n const range = joinedRanges.shift()!;\n\n // We already know the exact start and end column of the joined range,\n // so we get the string and width representing it directly\n cell = new JoinedCellData(\n this._workCell,\n lineData.translateToString(true, range[0], range[1]),\n range[1] - range[0]\n );\n\n // Skip over the cells occupied by this range in the loop\n lastCharX = range[1] - 1;\n\n // Recalculate width\n width = cell.getWidth();\n }\n\n const charElement = this._document.createElement('span');\n if (width > 1) {\n charElement.style.width = `${cellWidth * width}px`;\n }\n\n if (isJoined) {\n // Ligatures in the DOM renderer must use display inline, as they may not show with\n // inline-block if they are outside the bounds of the element\n charElement.style.display = 'inline';\n\n // The DOM renderer colors the background of the cursor but for ligatures all cells are\n // joined. The workaround here is to show a cursor around the whole ligature so it shows up,\n // the cursor looks the same when on any character of the ligature though\n if (cursorX >= x && cursorX <= lastCharX) {\n cursorX = x;\n }\n }\n\n if (!this._coreService.isCursorHidden && isCursorRow && x === cursorX) {\n charElement.classList.add(CURSOR_CLASS);\n\n if (cursorBlink) {\n charElement.classList.add(CURSOR_BLINK_CLASS);\n }\n\n switch (cursorStyle) {\n case 'bar':\n charElement.classList.add(CURSOR_STYLE_BAR_CLASS);\n break;\n case 'underline':\n charElement.classList.add(CURSOR_STYLE_UNDERLINE_CLASS);\n break;\n default:\n charElement.classList.add(CURSOR_STYLE_BLOCK_CLASS);\n break;\n }\n }\n\n if (cell.isBold()) {\n charElement.classList.add(BOLD_CLASS);\n }\n\n if (cell.isItalic()) {\n charElement.classList.add(ITALIC_CLASS);\n }\n\n if (cell.isDim()) {\n charElement.classList.add(DIM_CLASS);\n }\n\n if (cell.isInvisible()) {\n charElement.textContent = WHITESPACE_CELL_CHAR;\n } else {\n charElement.textContent = cell.getChars() || WHITESPACE_CELL_CHAR;\n }\n\n if (cell.isUnderline()) {\n charElement.classList.add(`${UNDERLINE_CLASS}-${cell.extended.underlineStyle}`);\n if (charElement.textContent === ' ') {\n charElement.innerHTML = ' ';\n }\n if (!cell.isUnderlineColorDefault()) {\n if (cell.isUnderlineColorRGB()) {\n charElement.style.textDecorationColor = `rgb(${AttributeData.toColorRGB(cell.getUnderlineColor()).join(',')})`;\n } else {\n let fg = cell.getUnderlineColor();\n if (this._optionsService.rawOptions.drawBoldTextInBrightColors && cell.isBold() && fg < 8) {\n fg += 8;\n }\n charElement.style.textDecorationColor = this._colors.ansi[fg].css;\n }\n }\n }\n\n if (cell.isStrikethrough()) {\n charElement.classList.add(STRIKETHROUGH_CLASS);\n }\n\n let fg = cell.getFgColor();\n let fgColorMode = cell.getFgColorMode();\n let bg = cell.getBgColor();\n let bgColorMode = cell.getBgColorMode();\n const isInverse = !!cell.isInverse();\n if (isInverse) {\n const temp = fg;\n fg = bg;\n bg = temp;\n const temp2 = fgColorMode;\n fgColorMode = bgColorMode;\n bgColorMode = temp2;\n }\n\n // Apply any decoration foreground/background overrides, this must happen after inverse has\n // been applied\n let bgOverride: IColor | undefined;\n let fgOverride: IColor | undefined;\n let isTop = false;\n this._decorationService.forEachDecorationAtCell(x, row, undefined, d => {\n if (d.options.layer !== 'top' && isTop) {\n return;\n }\n if (d.backgroundColorRGB) {\n bgColorMode = Attributes.CM_RGB;\n bg = d.backgroundColorRGB.rgba >> 8 & 0xFFFFFF;\n bgOverride = d.backgroundColorRGB;\n }\n if (d.foregroundColorRGB) {\n fgColorMode = Attributes.CM_RGB;\n fg = d.foregroundColorRGB.rgba >> 8 & 0xFFFFFF;\n fgOverride = d.foregroundColorRGB;\n }\n isTop = d.options.layer === 'top';\n });\n\n // Apply selection foreground if applicable\n const isInSelection = this._isCellInSelection(x, row);\n if (!isTop) {\n if (this._colors.selectionForeground && isInSelection) {\n fgColorMode = Attributes.CM_RGB;\n fg = this._colors.selectionForeground.rgba >> 8 & 0xFFFFFF;\n fgOverride = this._colors.selectionForeground;\n }\n }\n\n // If in the selection, force the element to be above the selection to improve contrast and\n // support opaque selections\n if (isInSelection) {\n bgOverride = this._coreBrowserService.isFocused ? this._colors.selectionBackgroundOpaque : this._colors.selectionInactiveBackgroundOpaque;\n isTop = true;\n }\n\n // If it's a top decoration, render above the selection\n if (isTop) {\n charElement.classList.add(`xterm-decoration-top`);\n }\n\n // Background\n let resolvedBg: IColor;\n switch (bgColorMode) {\n case Attributes.CM_P16:\n case Attributes.CM_P256:\n resolvedBg = this._colors.ansi[bg];\n charElement.classList.add(`xterm-bg-${bg}`);\n break;\n case Attributes.CM_RGB:\n resolvedBg = rgba.toColor(bg >> 16, bg >> 8 & 0xFF, bg & 0xFF);\n this._addStyle(charElement, `background-color:#${padStart((bg >>> 0).toString(16), '0', 6)}`);\n break;\n case Attributes.CM_DEFAULT:\n default:\n if (isInverse) {\n resolvedBg = this._colors.foreground;\n charElement.classList.add(`xterm-bg-${INVERTED_DEFAULT_COLOR}`);\n } else {\n resolvedBg = this._colors.background;\n }\n }\n\n // If there is no background override by now it's the original color, so apply dim if needed\n if (!bgOverride) {\n if (cell.isDim()) {\n bgOverride = color.multiplyOpacity(resolvedBg, 0.5);\n }\n }\n\n // Foreground\n switch (fgColorMode) {\n case Attributes.CM_P16:\n case Attributes.CM_P256:\n if (cell.isBold() && fg < 8 && this._optionsService.rawOptions.drawBoldTextInBrightColors) {\n fg += 8;\n }\n if (!this._applyMinimumContrast(charElement, resolvedBg, this._colors.ansi[fg], cell, bgOverride, undefined)) {\n charElement.classList.add(`xterm-fg-${fg}`);\n }\n break;\n case Attributes.CM_RGB:\n const color = rgba.toColor(\n (fg >> 16) & 0xFF,\n (fg >> 8) & 0xFF,\n (fg ) & 0xFF\n );\n if (!this._applyMinimumContrast(charElement, resolvedBg, color, cell, bgOverride, fgOverride)) {\n this._addStyle(charElement, `color:#${padStart(fg.toString(16), '0', 6)}`);\n }\n break;\n case Attributes.CM_DEFAULT:\n default:\n if (!this._applyMinimumContrast(charElement, resolvedBg, this._colors.foreground, cell, bgOverride, undefined)) {\n if (isInverse) {\n charElement.classList.add(`xterm-fg-${INVERTED_DEFAULT_COLOR}`);\n }\n }\n }\n\n fragment.appendChild(charElement);\n\n x = lastCharX;\n }\n return fragment;\n }\n\n private _applyMinimumContrast(element: HTMLElement, bg: IColor, fg: IColor, cell: ICellData, bgOverride: IColor | undefined, fgOverride: IColor | undefined): boolean {\n if (this._optionsService.rawOptions.minimumContrastRatio === 1 || excludeFromContrastRatioDemands(cell.getCode())) {\n return false;\n }\n\n // Try get from cache first, only use the cache when there are no decoration overrides\n let adjustedColor: IColor | undefined | null = undefined;\n if (!bgOverride && !fgOverride) {\n adjustedColor = this._colors.contrastCache.getColor(bg.rgba, fg.rgba);\n }\n\n // Calculate and store in cache\n if (adjustedColor === undefined) {\n adjustedColor = color.ensureContrastRatio(bgOverride || bg, fgOverride || fg, this._optionsService.rawOptions.minimumContrastRatio);\n this._colors.contrastCache.setColor((bgOverride || bg).rgba, (fgOverride || fg).rgba, adjustedColor ?? null);\n }\n\n if (adjustedColor) {\n this._addStyle(element, `color:${adjustedColor.css}`);\n return true;\n }\n\n return false;\n }\n\n private _addStyle(element: HTMLElement, style: string): void {\n element.setAttribute('style', `${element.getAttribute('style') || ''}${style};`);\n }\n\n private _isCellInSelection(x: number, y: number): boolean {\n const start = this._selectionStart;\n const end = this._selectionEnd;\n if (!start || !end) {\n return false;\n }\n if (this._columnSelectMode) {\n if (start[0] <= end[0]) {\n return x >= start[0] && y >= start[1] &&\n x < end[0] && y <= end[1];\n }\n return x < start[0] && y >= start[1] &&\n x >= end[0] && y <= end[1];\n }\n return (y > start[1] && y < end[1]) ||\n (start[1] === end[1] && y === start[1] && x >= start[0] && x < end[0]) ||\n (start[1] < end[1] && y === end[1] && x < end[0]) ||\n (start[1] < end[1] && y === start[1] && x >= start[0]);\n }\n}\n\nfunction padStart(text: string, padChar: string, length: number): string {\n while (text.length < length) {\n text = padChar + text;\n }\n return text;\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferService } from 'common/services/Services';\n\n/**\n * Represents a selection within the buffer. This model only cares about column\n * and row coordinates, not wide characters.\n */\nexport class SelectionModel {\n /**\n * Whether select all is currently active.\n */\n public isSelectAllActive: boolean = false;\n\n /**\n * The minimal length of the selection from the start position. When double\n * clicking on a word, the word will be selected which makes the selection\n * start at the start of the word and makes this variable the length.\n */\n public selectionStartLength: number = 0;\n\n /**\n * The [x, y] position the selection starts at.\n */\n public selectionStart: [number, number] | undefined;\n\n /**\n * The [x, y] position the selection ends at.\n */\n public selectionEnd: [number, number] | undefined;\n\n constructor(\n private _bufferService: IBufferService\n ) {\n }\n\n /**\n * Clears the current selection.\n */\n public clearSelection(): void {\n this.selectionStart = undefined;\n this.selectionEnd = undefined;\n this.isSelectAllActive = false;\n this.selectionStartLength = 0;\n }\n\n /**\n * The final selection start, taking into consideration select all.\n */\n public get finalSelectionStart(): [number, number] | undefined {\n if (this.isSelectAllActive) {\n return [0, 0];\n }\n\n if (!this.selectionEnd || !this.selectionStart) {\n return this.selectionStart;\n }\n\n return this.areSelectionValuesReversed() ? this.selectionEnd : this.selectionStart;\n }\n\n /**\n * The final selection end, taking into consideration select all, double click\n * word selection and triple click line selection.\n */\n public get finalSelectionEnd(): [number, number] | undefined {\n if (this.isSelectAllActive) {\n return [this._bufferService.cols, this._bufferService.buffer.ybase + this._bufferService.rows - 1];\n }\n\n if (!this.selectionStart) {\n return undefined;\n }\n\n // Use the selection start + length if the end doesn't exist or they're reversed\n if (!this.selectionEnd || this.areSelectionValuesReversed()) {\n const startPlusLength = this.selectionStart[0] + this.selectionStartLength;\n if (startPlusLength > this._bufferService.cols) {\n // Ensure the trailing EOL isn't included when the selection ends on the right edge\n if (startPlusLength % this._bufferService.cols === 0) {\n return [this._bufferService.cols, this.selectionStart[1] + Math.floor(startPlusLength / this._bufferService.cols) - 1];\n }\n return [startPlusLength % this._bufferService.cols, this.selectionStart[1] + Math.floor(startPlusLength / this._bufferService.cols)];\n }\n return [startPlusLength, this.selectionStart[1]];\n }\n\n // Ensure the the word/line is selected after a double/triple click\n if (this.selectionStartLength) {\n // Select the larger of the two when start and end are on the same line\n if (this.selectionEnd[1] === this.selectionStart[1]) {\n // Keep the whole wrapped word/line selected if the content wraps multiple lines\n const startPlusLength = this.selectionStart[0] + this.selectionStartLength;\n if (startPlusLength > this._bufferService.cols) {\n return [startPlusLength % this._bufferService.cols, this.selectionStart[1] + Math.floor(startPlusLength / this._bufferService.cols)];\n }\n return [Math.max(startPlusLength, this.selectionEnd[0]), this.selectionEnd[1]];\n }\n }\n return this.selectionEnd;\n }\n\n /**\n * Returns whether the selection start and end are reversed.\n */\n public areSelectionValuesReversed(): boolean {\n const start = this.selectionStart;\n const end = this.selectionEnd;\n if (!start || !end) {\n return false;\n }\n return start[1] > end[1] || (start[1] === end[1] && start[0] > end[0]);\n }\n\n /**\n * Handle the buffer being trimmed, adjust the selection position.\n * @param amount The amount the buffer is being trimmed.\n * @return Whether a refresh is necessary.\n */\n public onTrim(amount: number): boolean {\n // Adjust the selection position based on the trimmed amount.\n if (this.selectionStart) {\n this.selectionStart[1] -= amount;\n }\n if (this.selectionEnd) {\n this.selectionEnd[1] -= amount;\n }\n\n // The selection has moved off the buffer, clear it.\n if (this.selectionEnd && this.selectionEnd[1] < 0) {\n this.clearSelection();\n return true;\n }\n\n // If the selection start is trimmed, ensure the start column is 0.\n if (this.selectionStart && this.selectionStart[1] < 0) {\n this.selectionStart[1] = 0;\n }\n return false;\n }\n}\n","/**\n * Copyright (c) 2016 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IOptionsService } from 'common/services/Services';\nimport { IEvent, EventEmitter } from 'common/EventEmitter';\nimport { ICharSizeService } from 'browser/services/Services';\n\nexport class CharSizeService implements ICharSizeService {\n public serviceBrand: undefined;\n\n public width: number = 0;\n public height: number = 0;\n private _measureStrategy: IMeasureStrategy;\n\n public get hasValidSize(): boolean { return this.width > 0 && this.height > 0; }\n\n private _onCharSizeChange = new EventEmitter();\n public get onCharSizeChange(): IEvent { return this._onCharSizeChange.event; }\n\n constructor(\n document: Document,\n parentElement: HTMLElement,\n @IOptionsService private readonly _optionsService: IOptionsService\n ) {\n this._measureStrategy = new DomMeasureStrategy(document, parentElement, this._optionsService);\n }\n\n public measure(): void {\n const result = this._measureStrategy.measure();\n if (result.width !== this.width || result.height !== this.height) {\n this.width = result.width;\n this.height = result.height;\n this._onCharSizeChange.fire();\n }\n }\n}\n\ninterface IMeasureStrategy {\n measure(): IReadonlyMeasureResult;\n}\n\ninterface IReadonlyMeasureResult {\n readonly width: number;\n readonly height: number;\n}\n\ninterface IMeasureResult {\n width: number;\n height: number;\n}\n\n// TODO: For supporting browsers we should also provide a CanvasCharDimensionsProvider that uses ctx.measureText\nclass DomMeasureStrategy implements IMeasureStrategy {\n private _result: IMeasureResult = { width: 0, height: 0 };\n private _measureElement: HTMLElement;\n\n constructor(\n private _document: Document,\n private _parentElement: HTMLElement,\n private _optionsService: IOptionsService\n ) {\n this._measureElement = this._document.createElement('span');\n this._measureElement.classList.add('xterm-char-measure-element');\n this._measureElement.textContent = 'W';\n this._measureElement.setAttribute('aria-hidden', 'true');\n this._parentElement.appendChild(this._measureElement);\n }\n\n public measure(): IReadonlyMeasureResult {\n this._measureElement.style.fontFamily = this._optionsService.rawOptions.fontFamily;\n this._measureElement.style.fontSize = `${this._optionsService.rawOptions.fontSize}px`;\n\n // Note that this triggers a synchronous layout\n const geometry = this._measureElement.getBoundingClientRect();\n\n // If values are 0 then the element is likely currently display:none, in which case we should\n // retain the previous value.\n if (geometry.width !== 0 && geometry.height !== 0) {\n this._result.width = geometry.width;\n this._result.height = Math.ceil(geometry.height);\n }\n\n return this._result;\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferLine, ICellData, CharData } from 'common/Types';\nimport { ICharacterJoiner } from 'browser/Types';\nimport { AttributeData } from 'common/buffer/AttributeData';\nimport { WHITESPACE_CELL_CHAR, Content } from 'common/buffer/Constants';\nimport { CellData } from 'common/buffer/CellData';\nimport { IBufferService } from 'common/services/Services';\nimport { ICharacterJoinerService } from 'browser/services/Services';\n\nexport class JoinedCellData extends AttributeData implements ICellData {\n private _width: number;\n // .content carries no meaning for joined CellData, simply nullify it\n // thus we have to overload all other .content accessors\n public content: number = 0;\n public fg: number;\n public bg: number;\n public combinedData: string = '';\n\n constructor(firstCell: ICellData, chars: string, width: number) {\n super();\n this.fg = firstCell.fg;\n this.bg = firstCell.bg;\n this.combinedData = chars;\n this._width = width;\n }\n\n public isCombined(): number {\n // always mark joined cell data as combined\n return Content.IS_COMBINED_MASK;\n }\n\n public getWidth(): number {\n return this._width;\n }\n\n public getChars(): string {\n return this.combinedData;\n }\n\n public getCode(): number {\n // code always gets the highest possible fake codepoint (read as -1)\n // this is needed as code is used by caches as identifier\n return 0x1FFFFF;\n }\n\n public setFromCharData(value: CharData): void {\n throw new Error('not implemented');\n }\n\n public getAsCharData(): CharData {\n return [this.fg, this.getChars(), this.getWidth(), this.getCode()];\n }\n}\n\nexport class CharacterJoinerService implements ICharacterJoinerService {\n public serviceBrand: undefined;\n\n private _characterJoiners: ICharacterJoiner[] = [];\n private _nextCharacterJoinerId: number = 0;\n private _workCell: CellData = new CellData();\n\n constructor(\n @IBufferService private _bufferService: IBufferService\n ) { }\n\n public register(handler: (text: string) => [number, number][]): number {\n const joiner: ICharacterJoiner = {\n id: this._nextCharacterJoinerId++,\n handler\n };\n\n this._characterJoiners.push(joiner);\n return joiner.id;\n }\n\n public deregister(joinerId: number): boolean {\n for (let i = 0; i < this._characterJoiners.length; i++) {\n if (this._characterJoiners[i].id === joinerId) {\n this._characterJoiners.splice(i, 1);\n return true;\n }\n }\n\n return false;\n }\n\n public getJoinedCharacters(row: number): [number, number][] {\n if (this._characterJoiners.length === 0) {\n return [];\n }\n\n const line = this._bufferService.buffer.lines.get(row);\n if (!line || line.length === 0) {\n return [];\n }\n\n const ranges: [number, number][] = [];\n const lineStr = line.translateToString(true);\n\n // Because some cells can be represented by multiple javascript characters,\n // we track the cell and the string indexes separately. This allows us to\n // translate the string ranges we get from the joiners back into cell ranges\n // for use when rendering\n let rangeStartColumn = 0;\n let currentStringIndex = 0;\n let rangeStartStringIndex = 0;\n let rangeAttrFG = line.getFg(0);\n let rangeAttrBG = line.getBg(0);\n\n for (let x = 0; x < line.getTrimmedLength(); x++) {\n line.loadCell(x, this._workCell);\n\n if (this._workCell.getWidth() === 0) {\n // If this character is of width 0, skip it.\n continue;\n }\n\n // End of range\n if (this._workCell.fg !== rangeAttrFG || this._workCell.bg !== rangeAttrBG) {\n // If we ended up with a sequence of more than one character,\n // look for ranges to join.\n if (x - rangeStartColumn > 1) {\n const joinedRanges = this._getJoinedRanges(\n lineStr,\n rangeStartStringIndex,\n currentStringIndex,\n line,\n rangeStartColumn\n );\n for (let i = 0; i < joinedRanges.length; i++) {\n ranges.push(joinedRanges[i]);\n }\n }\n\n // Reset our markers for a new range.\n rangeStartColumn = x;\n rangeStartStringIndex = currentStringIndex;\n rangeAttrFG = this._workCell.fg;\n rangeAttrBG = this._workCell.bg;\n }\n\n currentStringIndex += this._workCell.getChars().length || WHITESPACE_CELL_CHAR.length;\n }\n\n // Process any trailing ranges.\n if (this._bufferService.cols - rangeStartColumn > 1) {\n const joinedRanges = this._getJoinedRanges(\n lineStr,\n rangeStartStringIndex,\n currentStringIndex,\n line,\n rangeStartColumn\n );\n for (let i = 0; i < joinedRanges.length; i++) {\n ranges.push(joinedRanges[i]);\n }\n }\n\n return ranges;\n }\n\n /**\n * Given a segment of a line of text, find all ranges of text that should be\n * joined in a single rendering unit. Ranges are internally converted to\n * column ranges, rather than string ranges.\n * @param line String representation of the full line of text\n * @param startIndex Start position of the range to search in the string (inclusive)\n * @param endIndex End position of the range to search in the string (exclusive)\n */\n private _getJoinedRanges(line: string, startIndex: number, endIndex: number, lineData: IBufferLine, startCol: number): [number, number][] {\n const text = line.substring(startIndex, endIndex);\n // At this point we already know that there is at least one joiner so\n // we can just pull its value and assign it directly rather than\n // merging it into an empty array, which incurs unnecessary writes.\n let allJoinedRanges: [number, number][] = [];\n try {\n allJoinedRanges = this._characterJoiners[0].handler(text);\n } catch (error) {\n console.error(error);\n }\n for (let i = 1; i < this._characterJoiners.length; i++) {\n // We merge any overlapping ranges across the different joiners\n try {\n const joinerRanges = this._characterJoiners[i].handler(text);\n for (let j = 0; j < joinerRanges.length; j++) {\n CharacterJoinerService._mergeRanges(allJoinedRanges, joinerRanges[j]);\n }\n } catch (error) {\n console.error(error);\n }\n }\n this._stringRangesToCellRanges(allJoinedRanges, lineData, startCol);\n return allJoinedRanges;\n }\n\n /**\n * Modifies the provided ranges in-place to adjust for variations between\n * string length and cell width so that the range represents a cell range,\n * rather than the string range the joiner provides.\n * @param ranges String ranges containing start (inclusive) and end (exclusive) index\n * @param line Cell data for the relevant line in the terminal\n * @param startCol Offset within the line to start from\n */\n private _stringRangesToCellRanges(ranges: [number, number][], line: IBufferLine, startCol: number): void {\n let currentRangeIndex = 0;\n let currentRangeStarted = false;\n let currentStringIndex = 0;\n let currentRange = ranges[currentRangeIndex];\n\n // If we got through all of the ranges, stop searching\n if (!currentRange) {\n return;\n }\n\n for (let x = startCol; x < this._bufferService.cols; x++) {\n const width = line.getWidth(x);\n const length = line.getString(x).length || WHITESPACE_CELL_CHAR.length;\n\n // We skip zero-width characters when creating the string to join the text\n // so we do the same here\n if (width === 0) {\n continue;\n }\n\n // Adjust the start of the range\n if (!currentRangeStarted && currentRange[0] <= currentStringIndex) {\n currentRange[0] = x;\n currentRangeStarted = true;\n }\n\n // Adjust the end of the range\n if (currentRange[1] <= currentStringIndex) {\n currentRange[1] = x;\n\n // We're finished with this range, so we move to the next one\n currentRange = ranges[++currentRangeIndex];\n\n // If there are no more ranges left, stop searching\n if (!currentRange) {\n break;\n }\n\n // Ranges can be on adjacent characters. Because the end index of the\n // ranges are exclusive, this means that the index for the start of a\n // range can be the same as the end index of the previous range. To\n // account for the start of the next range, we check here just in case.\n if (currentRange[0] <= currentStringIndex) {\n currentRange[0] = x;\n currentRangeStarted = true;\n } else {\n currentRangeStarted = false;\n }\n }\n\n // Adjust the string index based on the character length to line up with\n // the column adjustment\n currentStringIndex += length;\n }\n\n // If there is still a range left at the end, it must extend all the way to\n // the end of the line.\n if (currentRange) {\n currentRange[1] = this._bufferService.cols;\n }\n }\n\n /**\n * Merges the range defined by the provided start and end into the list of\n * existing ranges. The merge is done in place on the existing range for\n * performance and is also returned.\n * @param ranges Existing range list\n * @param newRange Tuple of two numbers representing the new range to merge in.\n * @returns The ranges input with the new range merged in place\n */\n private static _mergeRanges(ranges: [number, number][], newRange: [number, number]): [number, number][] {\n let inRange = false;\n for (let i = 0; i < ranges.length; i++) {\n const range = ranges[i];\n if (!inRange) {\n if (newRange[1] <= range[0]) {\n // Case 1: New range is before the search range\n ranges.splice(i, 0, newRange);\n return ranges;\n }\n\n if (newRange[1] <= range[1]) {\n // Case 2: New range is either wholly contained within the\n // search range or overlaps with the front of it\n range[0] = Math.min(newRange[0], range[0]);\n return ranges;\n }\n\n if (newRange[0] < range[1]) {\n // Case 3: New range either wholly contains the search range\n // or overlaps with the end of it\n range[0] = Math.min(newRange[0], range[0]);\n inRange = true;\n }\n\n // Case 4: New range starts after the search range\n continue;\n } else {\n if (newRange[1] <= range[0]) {\n // Case 5: New range extends from previous range but doesn't\n // reach the current one\n ranges[i - 1][1] = newRange[1];\n return ranges;\n }\n\n if (newRange[1] <= range[1]) {\n // Case 6: New range extends from prvious range into the\n // current range\n ranges[i - 1][1] = Math.max(newRange[1], range[1]);\n ranges.splice(i, 1);\n return ranges;\n }\n\n // Case 7: New range extends from previous range past the\n // end of the current range\n ranges.splice(i, 1);\n i--;\n }\n }\n\n if (inRange) {\n // Case 8: New range extends past the last existing range\n ranges[ranges.length - 1][1] = newRange[1];\n } else {\n // Case 9: New range starts after the last existing range\n ranges.push(newRange);\n }\n\n return ranges;\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ICoreBrowserService } from './Services';\n\nexport class CoreBrowserService implements ICoreBrowserService {\n public serviceBrand: undefined;\n\n constructor(\n private _textarea: HTMLTextAreaElement,\n public readonly window: Window & typeof globalThis\n ) {\n }\n\n public get dpr(): number {\n return this.window.devicePixelRatio;\n }\n\n public get isFocused(): boolean {\n const docOrShadowRoot = this._textarea.getRootNode ? this._textarea.getRootNode() as Document | ShadowRoot : this._textarea.ownerDocument;\n return docOrShadowRoot.activeElement === this._textarea && this._textarea.ownerDocument.hasFocus();\n }\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ICharSizeService, IRenderService, IMouseService } from './Services';\nimport { getCoords, getCoordsRelativeToElement } from 'browser/input/Mouse';\n\nexport class MouseService implements IMouseService {\n public serviceBrand: undefined;\n\n constructor(\n @IRenderService private readonly _renderService: IRenderService,\n @ICharSizeService private readonly _charSizeService: ICharSizeService\n ) {\n }\n\n public getCoords(event: {clientX: number, clientY: number}, element: HTMLElement, colCount: number, rowCount: number, isSelection?: boolean): [number, number] | undefined {\n return getCoords(\n window,\n event,\n element,\n colCount,\n rowCount,\n this._charSizeService.hasValidSize,\n this._renderService.dimensions.actualCellWidth,\n this._renderService.dimensions.actualCellHeight,\n isSelection\n );\n }\n\n public getMouseReportCoords(event: MouseEvent, element: HTMLElement): { col: number, row: number, x: number, y: number } | undefined {\n const coords = getCoordsRelativeToElement(window, event, element);\n\n // due to rounding issues in zoom states pixel values might be negative or overflow actual canvas\n // ignore those events effectively narrowing mouse area a tiny bit at the edges\n if (!this._charSizeService.hasValidSize\n || coords[0] < 0\n || coords[1] < 0\n || coords[0] >= this._renderService.dimensions.canvasWidth\n || coords[1] >= this._renderService.dimensions.canvasHeight) {\n return undefined;\n }\n\n return {\n col: Math.floor(coords[0] / this._renderService.dimensions.actualCellWidth),\n row: Math.floor(coords[1] / this._renderService.dimensions.actualCellHeight),\n x: Math.floor(coords[0]),\n y: Math.floor(coords[1])\n };\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IRenderer, IRenderDimensions } from 'browser/renderer/Types';\nimport { RenderDebouncer } from 'browser/RenderDebouncer';\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\nimport { Disposable } from 'common/Lifecycle';\nimport { ScreenDprMonitor } from 'browser/ScreenDprMonitor';\nimport { addDisposableDomListener } from 'browser/Lifecycle';\nimport { IColorSet, IRenderDebouncerWithCallback } from 'browser/Types';\nimport { IOptionsService, IBufferService, IDecorationService } from 'common/services/Services';\nimport { ICharSizeService, ICoreBrowserService, IRenderService } from 'browser/services/Services';\n\ninterface ISelectionState {\n start: [number, number] | undefined;\n end: [number, number] | undefined;\n columnSelectMode: boolean;\n}\n\nexport class RenderService extends Disposable implements IRenderService {\n public serviceBrand: undefined;\n\n private _renderDebouncer: IRenderDebouncerWithCallback;\n private _screenDprMonitor: ScreenDprMonitor;\n\n private _isPaused: boolean = false;\n private _needsFullRefresh: boolean = false;\n private _isNextRenderRedrawOnly: boolean = true;\n private _needsSelectionRefresh: boolean = false;\n private _canvasWidth: number = 0;\n private _canvasHeight: number = 0;\n private _selectionState: ISelectionState = {\n start: undefined,\n end: undefined,\n columnSelectMode: false\n };\n\n private _onDimensionsChange = new EventEmitter();\n public get onDimensionsChange(): IEvent { return this._onDimensionsChange.event; }\n private _onRenderedViewportChange = new EventEmitter<{ start: number, end: number }>();\n public get onRenderedViewportChange(): IEvent<{ start: number, end: number }> { return this._onRenderedViewportChange.event; }\n private _onRender = new EventEmitter<{ start: number, end: number }>();\n public get onRender(): IEvent<{ start: number, end: number }> { return this._onRender.event; }\n private _onRefreshRequest = new EventEmitter<{ start: number, end: number }>();\n public get onRefreshRequest(): IEvent<{ start: number, end: number }> { return this._onRefreshRequest.event; }\n\n public get dimensions(): IRenderDimensions { return this._renderer.dimensions; }\n\n constructor(\n private _renderer: IRenderer,\n private _rowCount: number,\n screenElement: HTMLElement,\n @IOptionsService optionsService: IOptionsService,\n @ICharSizeService private readonly _charSizeService: ICharSizeService,\n @IDecorationService decorationService: IDecorationService,\n @IBufferService bufferService: IBufferService,\n @ICoreBrowserService coreBrowserService: ICoreBrowserService\n ) {\n super();\n\n this.register({ dispose: () => this._renderer.dispose() });\n\n this._renderDebouncer = new RenderDebouncer(coreBrowserService.window, (start, end) => this._renderRows(start, end));\n this.register(this._renderDebouncer);\n\n this._screenDprMonitor = new ScreenDprMonitor(coreBrowserService.window);\n this._screenDprMonitor.setListener(() => this.onDevicePixelRatioChange());\n this.register(this._screenDprMonitor);\n\n this.register(bufferService.onResize(() => this._fullRefresh()));\n this.register(bufferService.buffers.onBufferActivate(() => this._renderer?.clear()));\n this.register(optionsService.onOptionChange(() => this._handleOptionsChanged()));\n this.register(this._charSizeService.onCharSizeChange(() => this.onCharSizeChanged()));\n\n // Do a full refresh whenever any decoration is added or removed. This may not actually result\n // in changes but since decorations should be used sparingly or added/removed all in the same\n // frame this should have minimal performance impact.\n this.register(decorationService.onDecorationRegistered(() => this._fullRefresh()));\n this.register(decorationService.onDecorationRemoved(() => this._fullRefresh()));\n\n // No need to register this as renderer is explicitly disposed in RenderService.dispose\n this._renderer.onRequestRedraw(e => this.refreshRows(e.start, e.end, true));\n\n // dprchange should handle this case, we need this as well for browsers that don't support the\n // matchMedia query.\n this.register(addDisposableDomListener(coreBrowserService.window, 'resize', () => this.onDevicePixelRatioChange()));\n\n // Detect whether IntersectionObserver is detected and enable renderer pause\n // and resume based on terminal visibility if so\n if ('IntersectionObserver' in coreBrowserService.window) {\n const observer = new coreBrowserService.window.IntersectionObserver(e => this._onIntersectionChange(e[e.length - 1]), { threshold: 0 });\n observer.observe(screenElement);\n this.register({ dispose: () => observer.disconnect() });\n }\n }\n\n private _onIntersectionChange(entry: IntersectionObserverEntry): void {\n this._isPaused = entry.isIntersecting === undefined ? (entry.intersectionRatio === 0) : !entry.isIntersecting;\n\n // Terminal was hidden on open\n if (!this._isPaused && !this._charSizeService.hasValidSize) {\n this._charSizeService.measure();\n }\n\n if (!this._isPaused && this._needsFullRefresh) {\n this.refreshRows(0, this._rowCount - 1);\n this._needsFullRefresh = false;\n }\n }\n\n public refreshRows(start: number, end: number, isRedrawOnly: boolean = false): void {\n if (this._isPaused) {\n this._needsFullRefresh = true;\n return;\n }\n if (!isRedrawOnly) {\n this._isNextRenderRedrawOnly = false;\n }\n this._renderDebouncer.refresh(start, end, this._rowCount);\n }\n\n private _renderRows(start: number, end: number): void {\n this._renderer.renderRows(start, end);\n\n // Update selection if needed\n if (this._needsSelectionRefresh) {\n this._renderer.onSelectionChanged(this._selectionState.start, this._selectionState.end, this._selectionState.columnSelectMode);\n this._needsSelectionRefresh = false;\n }\n\n // Fire render event only if it was not a redraw\n if (!this._isNextRenderRedrawOnly) {\n this._onRenderedViewportChange.fire({ start, end });\n }\n this._onRender.fire({ start, end });\n this._isNextRenderRedrawOnly = true;\n }\n\n public resize(cols: number, rows: number): void {\n this._rowCount = rows;\n this._fireOnCanvasResize();\n }\n\n private _handleOptionsChanged(): void {\n this._renderer.onOptionsChanged();\n this.refreshRows(0, this._rowCount - 1);\n this._fireOnCanvasResize();\n }\n\n private _fireOnCanvasResize(): void {\n // Don't fire the event if the dimensions haven't changed\n if (this._renderer.dimensions.canvasWidth === this._canvasWidth && this._renderer.dimensions.canvasHeight === this._canvasHeight) {\n return;\n }\n this._onDimensionsChange.fire(this._renderer.dimensions);\n }\n\n public dispose(): void {\n super.dispose();\n }\n\n public setRenderer(renderer: IRenderer): void {\n // TODO: RenderService should be the only one to dispose the renderer\n this._renderer.dispose();\n this._renderer = renderer;\n this._renderer.onRequestRedraw(e => this.refreshRows(e.start, e.end, true));\n\n // Force a refresh\n this._needsSelectionRefresh = true;\n this._fullRefresh();\n }\n\n public addRefreshCallback(callback: FrameRequestCallback): number {\n return this._renderDebouncer.addRefreshCallback(callback);\n }\n\n private _fullRefresh(): void {\n if (this._isPaused) {\n this._needsFullRefresh = true;\n } else {\n this.refreshRows(0, this._rowCount - 1);\n }\n }\n\n public clearTextureAtlas(): void {\n this._renderer?.clearTextureAtlas?.();\n this._fullRefresh();\n }\n\n public setColors(colors: IColorSet): void {\n this._renderer.setColors(colors);\n this._fullRefresh();\n }\n\n public onDevicePixelRatioChange(): void {\n // Force char size measurement as DomMeasureStrategy(getBoundingClientRect) is not stable\n // when devicePixelRatio changes\n this._charSizeService.measure();\n\n this._renderer.onDevicePixelRatioChange();\n this.refreshRows(0, this._rowCount - 1);\n }\n\n public onResize(cols: number, rows: number): void {\n this._renderer.onResize(cols, rows);\n this._fullRefresh();\n }\n\n // TODO: Is this useful when we have onResize?\n public onCharSizeChanged(): void {\n this._renderer.onCharSizeChanged();\n }\n\n public onBlur(): void {\n this._renderer.onBlur();\n }\n\n public onFocus(): void {\n this._renderer.onFocus();\n }\n\n public onSelectionChanged(start: [number, number] | undefined, end: [number, number] | undefined, columnSelectMode: boolean): void {\n this._selectionState.start = start;\n this._selectionState.end = end;\n this._selectionState.columnSelectMode = columnSelectMode;\n this._renderer.onSelectionChanged(start, end, columnSelectMode);\n }\n\n public onCursorMove(): void {\n this._renderer.onCursorMove();\n }\n\n public clear(): void {\n this._renderer.clear();\n }\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ISelectionRedrawRequestEvent, ISelectionRequestScrollLinesEvent } from 'browser/selection/Types';\nimport { IBuffer } from 'common/buffer/Types';\nimport { IBufferLine, IDisposable } from 'common/Types';\nimport * as Browser from 'common/Platform';\nimport { SelectionModel } from 'browser/selection/SelectionModel';\nimport { CellData } from 'common/buffer/CellData';\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\nimport { IMouseService, ISelectionService, IRenderService, ICoreBrowserService } from 'browser/services/Services';\nimport { IBufferRange, ILinkifier2 } from 'browser/Types';\nimport { IBufferService, IOptionsService, ICoreService } from 'common/services/Services';\nimport { getCoordsRelativeToElement } from 'browser/input/Mouse';\nimport { moveToCellSequence } from 'browser/input/MoveToCell';\nimport { Disposable } from 'common/Lifecycle';\nimport { getRangeLength } from 'common/buffer/BufferRange';\n\n/**\n * The number of pixels the mouse needs to be above or below the viewport in\n * order to scroll at the maximum speed.\n */\nconst DRAG_SCROLL_MAX_THRESHOLD = 50;\n\n/**\n * The maximum scrolling speed\n */\nconst DRAG_SCROLL_MAX_SPEED = 15;\n\n/**\n * The number of milliseconds between drag scroll updates.\n */\nconst DRAG_SCROLL_INTERVAL = 50;\n\n/**\n * The maximum amount of time that can have elapsed for an alt click to move the\n * cursor.\n */\nconst ALT_CLICK_MOVE_CURSOR_TIME = 500;\n\nconst NON_BREAKING_SPACE_CHAR = String.fromCharCode(160);\nconst ALL_NON_BREAKING_SPACE_REGEX = new RegExp(NON_BREAKING_SPACE_CHAR, 'g');\n\n/**\n * Represents a position of a word on a line.\n */\ninterface IWordPosition {\n start: number;\n length: number;\n}\n\n/**\n * A selection mode, this drives how the selection behaves on mouse move.\n */\nexport const enum SelectionMode {\n NORMAL,\n WORD,\n LINE,\n COLUMN\n}\n\n/**\n * A class that manages the selection of the terminal. With help from\n * SelectionModel, SelectionService handles with all logic associated with\n * dealing with the selection, including handling mouse interaction, wide\n * characters and fetching the actual text within the selection. Rendering is\n * not handled by the SelectionService but the onRedrawRequest event is fired\n * when the selection is ready to be redrawn (on an animation frame).\n */\nexport class SelectionService extends Disposable implements ISelectionService {\n public serviceBrand: undefined;\n\n protected _model: SelectionModel;\n\n /**\n * The amount to scroll every drag scroll update (depends on how far the mouse\n * drag is above or below the terminal).\n */\n private _dragScrollAmount: number = 0;\n\n /**\n * The current selection mode.\n */\n protected _activeSelectionMode: SelectionMode;\n\n /**\n * A setInterval timer that is active while the mouse is down whose callback\n * scrolls the viewport when necessary.\n */\n private _dragScrollIntervalTimer: number | undefined;\n\n /**\n * The animation frame ID used for refreshing the selection.\n */\n private _refreshAnimationFrame: number | undefined;\n\n /**\n * Whether selection is enabled.\n */\n private _enabled = true;\n\n private _mouseMoveListener: EventListener;\n private _mouseUpListener: EventListener;\n private _trimListener: IDisposable;\n private _workCell: CellData = new CellData();\n\n private _mouseDownTimeStamp: number = 0;\n private _oldHasSelection: boolean = false;\n private _oldSelectionStart: [number, number] | undefined = undefined;\n private _oldSelectionEnd: [number, number] | undefined = undefined;\n\n private _onLinuxMouseSelection = this.register(new EventEmitter());\n public get onLinuxMouseSelection(): IEvent { return this._onLinuxMouseSelection.event; }\n private _onRedrawRequest = this.register(new EventEmitter());\n public get onRequestRedraw(): IEvent { return this._onRedrawRequest.event; }\n private _onSelectionChange = this.register(new EventEmitter());\n public get onSelectionChange(): IEvent { return this._onSelectionChange.event; }\n private _onRequestScrollLines = this.register(new EventEmitter());\n public get onRequestScrollLines(): IEvent { return this._onRequestScrollLines.event; }\n\n constructor(\n private readonly _element: HTMLElement,\n private readonly _screenElement: HTMLElement,\n private readonly _linkifier: ILinkifier2,\n @IBufferService private readonly _bufferService: IBufferService,\n @ICoreService private readonly _coreService: ICoreService,\n @IMouseService private readonly _mouseService: IMouseService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @IRenderService private readonly _renderService: IRenderService,\n @ICoreBrowserService private readonly _coreBrowserService: ICoreBrowserService\n ) {\n super();\n\n // Init listeners\n this._mouseMoveListener = event => this._onMouseMove(event as MouseEvent);\n this._mouseUpListener = event => this._onMouseUp(event as MouseEvent);\n this._coreService.onUserInput(() => {\n if (this.hasSelection) {\n this.clearSelection();\n }\n });\n this._trimListener = this._bufferService.buffer.lines.onTrim(amount => this._onTrim(amount));\n this.register(this._bufferService.buffers.onBufferActivate(e => this._onBufferActivate(e)));\n\n this.enable();\n\n this._model = new SelectionModel(this._bufferService);\n this._activeSelectionMode = SelectionMode.NORMAL;\n }\n\n public dispose(): void {\n this._removeMouseDownListeners();\n }\n\n public reset(): void {\n this.clearSelection();\n }\n\n /**\n * Disables the selection manager. This is useful for when terminal mouse\n * are enabled.\n */\n public disable(): void {\n this.clearSelection();\n this._enabled = false;\n }\n\n /**\n * Enable the selection manager.\n */\n public enable(): void {\n this._enabled = true;\n }\n\n public get selectionStart(): [number, number] | undefined { return this._model.finalSelectionStart; }\n public get selectionEnd(): [number, number] | undefined { return this._model.finalSelectionEnd; }\n\n /**\n * Gets whether there is an active text selection.\n */\n public get hasSelection(): boolean {\n const start = this._model.finalSelectionStart;\n const end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return false;\n }\n return start[0] !== end[0] || start[1] !== end[1];\n }\n\n /**\n * Gets the text currently selected.\n */\n public get selectionText(): string {\n const start = this._model.finalSelectionStart;\n const end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return '';\n }\n\n const buffer = this._bufferService.buffer;\n const result: string[] = [];\n\n if (this._activeSelectionMode === SelectionMode.COLUMN) {\n // Ignore zero width selections\n if (start[0] === end[0]) {\n return '';\n }\n\n // For column selection it's not enough to rely on final selection's swapping of reversed\n // values, it also needs the x coordinates to swap independently of the y coordinate is needed\n const startCol = start[0] < end[0] ? start[0] : end[0];\n const endCol = start[0] < end[0] ? end[0] : start[0];\n for (let i = start[1]; i <= end[1]; i++) {\n const lineText = buffer.translateBufferLineToString(i, true, startCol, endCol);\n result.push(lineText);\n }\n } else {\n // Get first row\n const startRowEndCol = start[1] === end[1] ? end[0] : undefined;\n result.push(buffer.translateBufferLineToString(start[1], true, start[0], startRowEndCol));\n\n // Get middle rows\n for (let i = start[1] + 1; i <= end[1] - 1; i++) {\n const bufferLine = buffer.lines.get(i);\n const lineText = buffer.translateBufferLineToString(i, true);\n if (bufferLine?.isWrapped) {\n result[result.length - 1] += lineText;\n } else {\n result.push(lineText);\n }\n }\n\n // Get final row\n if (start[1] !== end[1]) {\n const bufferLine = buffer.lines.get(end[1]);\n const lineText = buffer.translateBufferLineToString(end[1], true, 0, end[0]);\n if (bufferLine && bufferLine!.isWrapped) {\n result[result.length - 1] += lineText;\n } else {\n result.push(lineText);\n }\n }\n }\n\n // Format string by replacing non-breaking space chars with regular spaces\n // and joining the array into a multi-line string.\n const formattedResult = result.map(line => {\n return line.replace(ALL_NON_BREAKING_SPACE_REGEX, ' ');\n }).join(Browser.isWindows ? '\\r\\n' : '\\n');\n\n return formattedResult;\n }\n\n /**\n * Clears the current terminal selection.\n */\n public clearSelection(): void {\n this._model.clearSelection();\n this._removeMouseDownListeners();\n this.refresh();\n this._onSelectionChange.fire();\n }\n\n /**\n * Queues a refresh, redrawing the selection on the next opportunity.\n * @param isLinuxMouseSelection Whether the selection should be registered as a new\n * selection on Linux.\n */\n public refresh(isLinuxMouseSelection?: boolean): void {\n // Queue the refresh for the renderer\n if (!this._refreshAnimationFrame) {\n this._refreshAnimationFrame = this._coreBrowserService.window.requestAnimationFrame(() => this._refresh());\n }\n\n // If the platform is Linux and the refresh call comes from a mouse event,\n // we need to update the selection for middle click to paste selection.\n if (Browser.isLinux && isLinuxMouseSelection) {\n const selectionText = this.selectionText;\n if (selectionText.length) {\n this._onLinuxMouseSelection.fire(this.selectionText);\n }\n }\n }\n\n /**\n * Fires the refresh event, causing consumers to pick it up and redraw the\n * selection state.\n */\n private _refresh(): void {\n this._refreshAnimationFrame = undefined;\n this._onRedrawRequest.fire({\n start: this._model.finalSelectionStart,\n end: this._model.finalSelectionEnd,\n columnSelectMode: this._activeSelectionMode === SelectionMode.COLUMN\n });\n }\n\n /**\n * Checks if the current click was inside the current selection\n * @param event The mouse event\n */\n private _isClickInSelection(event: MouseEvent): boolean {\n const coords = this._getMouseBufferCoords(event);\n const start = this._model.finalSelectionStart;\n const end = this._model.finalSelectionEnd;\n\n if (!start || !end || !coords) {\n return false;\n }\n\n return this._areCoordsInSelection(coords, start, end);\n }\n\n public isCellInSelection(x: number, y: number): boolean {\n const start = this._model.finalSelectionStart;\n const end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return false;\n }\n return this._areCoordsInSelection([x, y], start, end);\n }\n\n protected _areCoordsInSelection(coords: [number, number], start: [number, number], end: [number, number]): boolean {\n return (coords[1] > start[1] && coords[1] < end[1]) ||\n (start[1] === end[1] && coords[1] === start[1] && coords[0] >= start[0] && coords[0] < end[0]) ||\n (start[1] < end[1] && coords[1] === end[1] && coords[0] < end[0]) ||\n (start[1] < end[1] && coords[1] === start[1] && coords[0] >= start[0]);\n }\n\n /**\n * Selects word at the current mouse event coordinates.\n * @param event The mouse event.\n */\n private _selectWordAtCursor(event: MouseEvent, allowWhitespaceOnlySelection: boolean): boolean {\n // Check if there is a link under the cursor first and select that if so\n const range = this._linkifier.currentLink?.link?.range;\n if (range) {\n this._model.selectionStart = [range.start.x - 1, range.start.y - 1];\n this._model.selectionStartLength = getRangeLength(range, this._bufferService.cols);\n this._model.selectionEnd = undefined;\n return true;\n }\n\n const coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._selectWordAt(coords, allowWhitespaceOnlySelection);\n this._model.selectionEnd = undefined;\n return true;\n }\n return false;\n }\n\n /**\n * Selects all text within the terminal.\n */\n public selectAll(): void {\n this._model.isSelectAllActive = true;\n this.refresh();\n this._onSelectionChange.fire();\n }\n\n public selectLines(start: number, end: number): void {\n this._model.clearSelection();\n start = Math.max(start, 0);\n end = Math.min(end, this._bufferService.buffer.lines.length - 1);\n this._model.selectionStart = [0, start];\n this._model.selectionEnd = [this._bufferService.cols, end];\n this.refresh();\n this._onSelectionChange.fire();\n }\n\n /**\n * Handle the buffer being trimmed, adjust the selection position.\n * @param amount The amount the buffer is being trimmed.\n */\n private _onTrim(amount: number): void {\n const needsRefresh = this._model.onTrim(amount);\n if (needsRefresh) {\n this.refresh();\n }\n }\n\n /**\n * Gets the 0-based [x, y] buffer coordinates of the current mouse event.\n * @param event The mouse event.\n */\n private _getMouseBufferCoords(event: MouseEvent): [number, number] | undefined {\n const coords = this._mouseService.getCoords(event, this._screenElement, this._bufferService.cols, this._bufferService.rows, true);\n if (!coords) {\n return undefined;\n }\n\n // Convert to 0-based\n coords[0]--;\n coords[1]--;\n\n // Convert viewport coords to buffer coords\n coords[1] += this._bufferService.buffer.ydisp;\n return coords;\n }\n\n /**\n * Gets the amount the viewport should be scrolled based on how far out of the\n * terminal the mouse is.\n * @param event The mouse event.\n */\n private _getMouseEventScrollAmount(event: MouseEvent): number {\n let offset = getCoordsRelativeToElement(this._coreBrowserService.window, event, this._screenElement)[1];\n const terminalHeight = this._renderService.dimensions.canvasHeight;\n if (offset >= 0 && offset <= terminalHeight) {\n return 0;\n }\n if (offset > terminalHeight) {\n offset -= terminalHeight;\n }\n\n offset = Math.min(Math.max(offset, -DRAG_SCROLL_MAX_THRESHOLD), DRAG_SCROLL_MAX_THRESHOLD);\n offset /= DRAG_SCROLL_MAX_THRESHOLD;\n return (offset / Math.abs(offset)) + Math.round(offset * (DRAG_SCROLL_MAX_SPEED - 1));\n }\n\n /**\n * Returns whether the selection manager should force selection, regardless of\n * whether the terminal is in mouse events mode.\n * @param event The mouse event.\n */\n public shouldForceSelection(event: MouseEvent): boolean {\n if (Browser.isMac) {\n return event.altKey && this._optionsService.rawOptions.macOptionClickForcesSelection;\n }\n\n return event.shiftKey;\n }\n\n /**\n * Handles te mousedown event, setting up for a new selection.\n * @param event The mousedown event.\n */\n public onMouseDown(event: MouseEvent): void {\n this._mouseDownTimeStamp = event.timeStamp;\n // If we have selection, we want the context menu on right click even if the\n // terminal is in mouse mode.\n if (event.button === 2 && this.hasSelection) {\n return;\n }\n\n // Only action the primary button\n if (event.button !== 0) {\n return;\n }\n\n // Allow selection when using a specific modifier key, even when disabled\n if (!this._enabled) {\n if (!this.shouldForceSelection(event)) {\n return;\n }\n\n // Don't send the mouse down event to the current process, we want to select\n event.stopPropagation();\n }\n\n // Tell the browser not to start a regular selection\n event.preventDefault();\n\n // Reset drag scroll state\n this._dragScrollAmount = 0;\n\n if (this._enabled && event.shiftKey) {\n this._onIncrementalClick(event);\n } else {\n if (event.detail === 1) {\n this._onSingleClick(event);\n } else if (event.detail === 2) {\n this._onDoubleClick(event);\n } else if (event.detail === 3) {\n this._onTripleClick(event);\n }\n }\n\n this._addMouseDownListeners();\n this.refresh(true);\n }\n\n /**\n * Adds listeners when mousedown is triggered.\n */\n private _addMouseDownListeners(): void {\n // Listen on the document so that dragging outside of viewport works\n if (this._screenElement.ownerDocument) {\n this._screenElement.ownerDocument.addEventListener('mousemove', this._mouseMoveListener);\n this._screenElement.ownerDocument.addEventListener('mouseup', this._mouseUpListener);\n }\n this._dragScrollIntervalTimer = this._coreBrowserService.window.setInterval(() => this._dragScroll(), DRAG_SCROLL_INTERVAL);\n }\n\n /**\n * Removes the listeners that are registered when mousedown is triggered.\n */\n private _removeMouseDownListeners(): void {\n if (this._screenElement.ownerDocument) {\n this._screenElement.ownerDocument.removeEventListener('mousemove', this._mouseMoveListener);\n this._screenElement.ownerDocument.removeEventListener('mouseup', this._mouseUpListener);\n }\n this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer);\n this._dragScrollIntervalTimer = undefined;\n }\n\n /**\n * Performs an incremental click, setting the selection end position to the mouse\n * position.\n * @param event The mouse event.\n */\n private _onIncrementalClick(event: MouseEvent): void {\n if (this._model.selectionStart) {\n this._model.selectionEnd = this._getMouseBufferCoords(event);\n }\n }\n\n /**\n * Performs a single click, resetting relevant state and setting the selection\n * start position.\n * @param event The mouse event.\n */\n private _onSingleClick(event: MouseEvent): void {\n this._model.selectionStartLength = 0;\n this._model.isSelectAllActive = false;\n this._activeSelectionMode = this.shouldColumnSelect(event) ? SelectionMode.COLUMN : SelectionMode.NORMAL;\n\n // Initialize the new selection\n this._model.selectionStart = this._getMouseBufferCoords(event);\n if (!this._model.selectionStart) {\n return;\n }\n this._model.selectionEnd = undefined;\n\n // Ensure the line exists\n const line = this._bufferService.buffer.lines.get(this._model.selectionStart[1]);\n if (!line) {\n return;\n }\n\n // Return early if the click event is not in the buffer (eg. in scroll bar)\n if (line.length === this._model.selectionStart[0]) {\n return;\n }\n\n // If the mouse is over the second half of a wide character, adjust the\n // selection to cover the whole character\n if (line.hasWidth(this._model.selectionStart[0]) === 0) {\n this._model.selectionStart[0]++;\n }\n }\n\n /**\n * Performs a double click, selecting the current word.\n * @param event The mouse event.\n */\n private _onDoubleClick(event: MouseEvent): void {\n if (this._selectWordAtCursor(event, true)) {\n this._activeSelectionMode = SelectionMode.WORD;\n }\n }\n\n /**\n * Performs a triple click, selecting the current line and activating line\n * select mode.\n * @param event The mouse event.\n */\n private _onTripleClick(event: MouseEvent): void {\n const coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._activeSelectionMode = SelectionMode.LINE;\n this._selectLineAt(coords[1]);\n }\n }\n\n /**\n * Returns whether the selection manager should operate in column select mode\n * @param event the mouse or keyboard event\n */\n public shouldColumnSelect(event: KeyboardEvent | MouseEvent): boolean {\n return event.altKey && !(Browser.isMac && this._optionsService.rawOptions.macOptionClickForcesSelection);\n }\n\n /**\n * Handles the mousemove event when the mouse button is down, recording the\n * end of the selection and refreshing the selection.\n * @param event The mousemove event.\n */\n private _onMouseMove(event: MouseEvent): void {\n // If the mousemove listener is active it means that a selection is\n // currently being made, we should stop propagation to prevent mouse events\n // to be sent to the pty.\n event.stopImmediatePropagation();\n\n // Do nothing if there is no selection start, this can happen if the first\n // click in the terminal is an incremental click\n if (!this._model.selectionStart) {\n return;\n }\n\n // Record the previous position so we know whether to redraw the selection\n // at the end.\n const previousSelectionEnd = this._model.selectionEnd ? [this._model.selectionEnd[0], this._model.selectionEnd[1]] : null;\n\n // Set the initial selection end based on the mouse coordinates\n this._model.selectionEnd = this._getMouseBufferCoords(event);\n if (!this._model.selectionEnd) {\n this.refresh(true);\n return;\n }\n\n // Select the entire line if line select mode is active.\n if (this._activeSelectionMode === SelectionMode.LINE) {\n if (this._model.selectionEnd[1] < this._model.selectionStart[1]) {\n this._model.selectionEnd[0] = 0;\n } else {\n this._model.selectionEnd[0] = this._bufferService.cols;\n }\n } else if (this._activeSelectionMode === SelectionMode.WORD) {\n this._selectToWordAt(this._model.selectionEnd);\n }\n\n // Determine the amount of scrolling that will happen.\n this._dragScrollAmount = this._getMouseEventScrollAmount(event);\n\n // If the cursor was above or below the viewport, make sure it's at the\n // start or end of the viewport respectively. This should only happen when\n // NOT in column select mode.\n if (this._activeSelectionMode !== SelectionMode.COLUMN) {\n if (this._dragScrollAmount > 0) {\n this._model.selectionEnd[0] = this._bufferService.cols;\n } else if (this._dragScrollAmount < 0) {\n this._model.selectionEnd[0] = 0;\n }\n }\n\n // If the character is a wide character include the cell to the right in the\n // selection. Note that selections at the very end of the line will never\n // have a character.\n const buffer = this._bufferService.buffer;\n if (this._model.selectionEnd[1] < buffer.lines.length) {\n const line = buffer.lines.get(this._model.selectionEnd[1]);\n if (line && line.hasWidth(this._model.selectionEnd[0]) === 0) {\n this._model.selectionEnd[0]++;\n }\n }\n\n // Only draw here if the selection changes.\n if (!previousSelectionEnd ||\n previousSelectionEnd[0] !== this._model.selectionEnd[0] ||\n previousSelectionEnd[1] !== this._model.selectionEnd[1]) {\n this.refresh(true);\n }\n }\n\n /**\n * The callback that occurs every DRAG_SCROLL_INTERVAL ms that does the\n * scrolling of the viewport.\n */\n private _dragScroll(): void {\n if (!this._model.selectionEnd || !this._model.selectionStart) {\n return;\n }\n if (this._dragScrollAmount) {\n this._onRequestScrollLines.fire({ amount: this._dragScrollAmount, suppressScrollEvent: false });\n // Re-evaluate selection\n // If the cursor was above or below the viewport, make sure it's at the\n // start or end of the viewport respectively. This should only happen when\n // NOT in column select mode.\n const buffer = this._bufferService.buffer;\n if (this._dragScrollAmount > 0) {\n if (this._activeSelectionMode !== SelectionMode.COLUMN) {\n this._model.selectionEnd[0] = this._bufferService.cols;\n }\n this._model.selectionEnd[1] = Math.min(buffer.ydisp + this._bufferService.rows, buffer.lines.length - 1);\n } else {\n if (this._activeSelectionMode !== SelectionMode.COLUMN) {\n this._model.selectionEnd[0] = 0;\n }\n this._model.selectionEnd[1] = buffer.ydisp;\n }\n this.refresh();\n }\n }\n\n /**\n * Handles the mouseup event, removing the mousedown listeners.\n * @param event The mouseup event.\n */\n private _onMouseUp(event: MouseEvent): void {\n const timeElapsed = event.timeStamp - this._mouseDownTimeStamp;\n\n this._removeMouseDownListeners();\n\n if (this.selectionText.length <= 1 && timeElapsed < ALT_CLICK_MOVE_CURSOR_TIME && event.altKey && this._optionsService.rawOptions.altClickMovesCursor) {\n if (this._bufferService.buffer.ybase === this._bufferService.buffer.ydisp) {\n const coordinates = this._mouseService.getCoords(\n event,\n this._element,\n this._bufferService.cols,\n this._bufferService.rows,\n false\n );\n if (coordinates && coordinates[0] !== undefined && coordinates[1] !== undefined) {\n const sequence = moveToCellSequence(coordinates[0] - 1, coordinates[1] - 1, this._bufferService, this._coreService.decPrivateModes.applicationCursorKeys);\n this._coreService.triggerDataEvent(sequence, true);\n }\n }\n } else {\n this._fireEventIfSelectionChanged();\n }\n }\n\n private _fireEventIfSelectionChanged(): void {\n const start = this._model.finalSelectionStart;\n const end = this._model.finalSelectionEnd;\n const hasSelection = !!start && !!end && (start[0] !== end[0] || start[1] !== end[1]);\n\n if (!hasSelection) {\n if (this._oldHasSelection) {\n this._fireOnSelectionChange(start, end, hasSelection);\n }\n return;\n }\n\n // Sanity check, these should not be undefined as there is a selection\n if (!start || !end) {\n return;\n }\n\n if (!this._oldSelectionStart || !this._oldSelectionEnd || (\n start[0] !== this._oldSelectionStart[0] || start[1] !== this._oldSelectionStart[1] ||\n end[0] !== this._oldSelectionEnd[0] || end[1] !== this._oldSelectionEnd[1])) {\n\n this._fireOnSelectionChange(start, end, hasSelection);\n }\n }\n\n private _fireOnSelectionChange(start: [number, number] | undefined, end: [number, number] | undefined, hasSelection: boolean): void {\n this._oldSelectionStart = start;\n this._oldSelectionEnd = end;\n this._oldHasSelection = hasSelection;\n this._onSelectionChange.fire();\n }\n\n private _onBufferActivate(e: {activeBuffer: IBuffer, inactiveBuffer: IBuffer}): void {\n this.clearSelection();\n // Only adjust the selection on trim, shiftElements is rarely used (only in\n // reverseIndex) and delete in a splice is only ever used when the same\n // number of elements was just added. Given this is could actually be\n // beneficial to leave the selection as is for these cases.\n this._trimListener.dispose();\n this._trimListener = e.activeBuffer.lines.onTrim(amount => this._onTrim(amount));\n }\n\n /**\n * Converts a viewport column to the character index on the buffer line, the\n * latter takes into account wide characters.\n * @param coords The coordinates to find the 2 index for.\n */\n private _convertViewportColToCharacterIndex(bufferLine: IBufferLine, coords: [number, number]): number {\n let charIndex = coords[0];\n for (let i = 0; coords[0] >= i; i++) {\n const length = bufferLine.loadCell(i, this._workCell).getChars().length;\n if (this._workCell.getWidth() === 0) {\n // Wide characters aren't included in the line string so decrement the\n // index so the index is back on the wide character.\n charIndex--;\n } else if (length > 1 && coords[0] !== i) {\n // Emojis take up multiple characters, so adjust accordingly. For these\n // we don't want ot include the character at the column as we're\n // returning the start index in the string, not the end index.\n charIndex += length - 1;\n }\n }\n return charIndex;\n }\n\n public setSelection(col: number, row: number, length: number): void {\n this._model.clearSelection();\n this._removeMouseDownListeners();\n this._model.selectionStart = [col, row];\n this._model.selectionStartLength = length;\n this.refresh();\n this._fireEventIfSelectionChanged();\n }\n\n public rightClickSelect(ev: MouseEvent): void {\n if (!this._isClickInSelection(ev)) {\n if (this._selectWordAtCursor(ev, false)) {\n this.refresh(true);\n }\n this._fireEventIfSelectionChanged();\n }\n }\n\n /**\n * Gets positional information for the word at the coordinated specified.\n * @param coords The coordinates to get the word at.\n */\n private _getWordAt(coords: [number, number], allowWhitespaceOnlySelection: boolean, followWrappedLinesAbove: boolean = true, followWrappedLinesBelow: boolean = true): IWordPosition | undefined {\n // Ensure coords are within viewport (eg. not within scroll bar)\n if (coords[0] >= this._bufferService.cols) {\n return undefined;\n }\n\n const buffer = this._bufferService.buffer;\n const bufferLine = buffer.lines.get(coords[1]);\n if (!bufferLine) {\n return undefined;\n }\n\n const line = buffer.translateBufferLineToString(coords[1], false);\n\n // Get actual index, taking into consideration wide characters\n let startIndex = this._convertViewportColToCharacterIndex(bufferLine, coords);\n let endIndex = startIndex;\n\n // Record offset to be used later\n const charOffset = coords[0] - startIndex;\n let leftWideCharCount = 0;\n let rightWideCharCount = 0;\n let leftLongCharOffset = 0;\n let rightLongCharOffset = 0;\n\n if (line.charAt(startIndex) === ' ') {\n // Expand until non-whitespace is hit\n while (startIndex > 0 && line.charAt(startIndex - 1) === ' ') {\n startIndex--;\n }\n while (endIndex < line.length && line.charAt(endIndex + 1) === ' ') {\n endIndex++;\n }\n } else {\n // Expand until whitespace is hit. This algorithm works by scanning left\n // and right from the starting position, keeping both the index format\n // (line) and the column format (bufferLine) in sync. When a wide\n // character is hit, it is recorded and the column index is adjusted.\n let startCol = coords[0];\n let endCol = coords[0];\n\n // Consider the initial position, skip it and increment the wide char\n // variable\n if (bufferLine.getWidth(startCol) === 0) {\n leftWideCharCount++;\n startCol--;\n }\n if (bufferLine.getWidth(endCol) === 2) {\n rightWideCharCount++;\n endCol++;\n }\n\n // Adjust the end index for characters whose length are > 1 (emojis)\n const length = bufferLine.getString(endCol).length;\n if (length > 1) {\n rightLongCharOffset += length - 1;\n endIndex += length - 1;\n }\n\n // Expand the string in both directions until a space is hit\n while (startCol > 0 && startIndex > 0 && !this._isCharWordSeparator(bufferLine.loadCell(startCol - 1, this._workCell))) {\n bufferLine.loadCell(startCol - 1, this._workCell);\n const length = this._workCell.getChars().length;\n if (this._workCell.getWidth() === 0) {\n // If the next character is a wide char, record it and skip the column\n leftWideCharCount++;\n startCol--;\n } else if (length > 1) {\n // If the next character's string is longer than 1 char (eg. emoji),\n // adjust the index\n leftLongCharOffset += length - 1;\n startIndex -= length - 1;\n }\n startIndex--;\n startCol--;\n }\n while (endCol < bufferLine.length && endIndex + 1 < line.length && !this._isCharWordSeparator(bufferLine.loadCell(endCol + 1, this._workCell))) {\n bufferLine.loadCell(endCol + 1, this._workCell);\n const length = this._workCell.getChars().length;\n if (this._workCell.getWidth() === 2) {\n // If the next character is a wide char, record it and skip the column\n rightWideCharCount++;\n endCol++;\n } else if (length > 1) {\n // If the next character's string is longer than 1 char (eg. emoji),\n // adjust the index\n rightLongCharOffset += length - 1;\n endIndex += length - 1;\n }\n endIndex++;\n endCol++;\n }\n }\n\n // Incremenet the end index so it is at the start of the next character\n endIndex++;\n\n // Calculate the start _column_, converting the the string indexes back to\n // column coordinates.\n let start =\n startIndex // The index of the selection's start char in the line string\n + charOffset // The difference between the initial char's column and index\n - leftWideCharCount // The number of wide chars left of the initial char\n + leftLongCharOffset; // The number of additional chars left of the initial char added by columns with strings longer than 1 (emojis)\n\n // Calculate the length in _columns_, converting the the string indexes back\n // to column coordinates.\n let length = Math.min(this._bufferService.cols, // Disallow lengths larger than the terminal cols\n endIndex // The index of the selection's end char in the line string\n - startIndex // The index of the selection's start char in the line string\n + leftWideCharCount // The number of wide chars left of the initial char\n + rightWideCharCount // The number of wide chars right of the initial char (inclusive)\n - leftLongCharOffset // The number of additional chars left of the initial char added by columns with strings longer than 1 (emojis)\n - rightLongCharOffset); // The number of additional chars right of the initial char (inclusive) added by columns with strings longer than 1 (emojis)\n\n if (!allowWhitespaceOnlySelection && line.slice(startIndex, endIndex).trim() === '') {\n return undefined;\n }\n\n // Recurse upwards if the line is wrapped and the word wraps to the above line\n if (followWrappedLinesAbove) {\n if (start === 0 && bufferLine.getCodePoint(0) !== 32 /* ' ' */) {\n const previousBufferLine = buffer.lines.get(coords[1] - 1);\n if (previousBufferLine && bufferLine.isWrapped && previousBufferLine.getCodePoint(this._bufferService.cols - 1) !== 32 /* ' ' */) {\n const previousLineWordPosition = this._getWordAt([this._bufferService.cols - 1, coords[1] - 1], false, true, false);\n if (previousLineWordPosition) {\n const offset = this._bufferService.cols - previousLineWordPosition.start;\n start -= offset;\n length += offset;\n }\n }\n }\n }\n\n // Recurse downwards if the line is wrapped and the word wraps to the next line\n if (followWrappedLinesBelow) {\n if (start + length === this._bufferService.cols && bufferLine.getCodePoint(this._bufferService.cols - 1) !== 32 /* ' ' */) {\n const nextBufferLine = buffer.lines.get(coords[1] + 1);\n if (nextBufferLine?.isWrapped && nextBufferLine.getCodePoint(0) !== 32 /* ' ' */) {\n const nextLineWordPosition = this._getWordAt([0, coords[1] + 1], false, false, true);\n if (nextLineWordPosition) {\n length += nextLineWordPosition.length;\n }\n }\n }\n }\n\n return { start, length };\n }\n\n /**\n * Selects the word at the coordinates specified.\n * @param coords The coordinates to get the word at.\n * @param allowWhitespaceOnlySelection If whitespace should be selected\n */\n protected _selectWordAt(coords: [number, number], allowWhitespaceOnlySelection: boolean): void {\n const wordPosition = this._getWordAt(coords, allowWhitespaceOnlySelection);\n if (wordPosition) {\n // Adjust negative start value\n while (wordPosition.start < 0) {\n wordPosition.start += this._bufferService.cols;\n coords[1]--;\n }\n this._model.selectionStart = [wordPosition.start, coords[1]];\n this._model.selectionStartLength = wordPosition.length;\n }\n }\n\n /**\n * Sets the selection end to the word at the coordinated specified.\n * @param coords The coordinates to get the word at.\n */\n private _selectToWordAt(coords: [number, number]): void {\n const wordPosition = this._getWordAt(coords, true);\n if (wordPosition) {\n let endRow = coords[1];\n\n // Adjust negative start value\n while (wordPosition.start < 0) {\n wordPosition.start += this._bufferService.cols;\n endRow--;\n }\n\n // Adjust wrapped length value, this only needs to happen when values are reversed as in that\n // case we're interested in the start of the word, not the end\n if (!this._model.areSelectionValuesReversed()) {\n while (wordPosition.start + wordPosition.length > this._bufferService.cols) {\n wordPosition.length -= this._bufferService.cols;\n endRow++;\n }\n }\n\n this._model.selectionEnd = [this._model.areSelectionValuesReversed() ? wordPosition.start : wordPosition.start + wordPosition.length, endRow];\n }\n }\n\n /**\n * Gets whether the character is considered a word separator by the select\n * word logic.\n * @param char The character to check.\n */\n private _isCharWordSeparator(cell: CellData): boolean {\n // Zero width characters are never separators as they are always to the\n // right of wide characters\n if (cell.getWidth() === 0) {\n return false;\n }\n return this._optionsService.rawOptions.wordSeparator.indexOf(cell.getChars()) >= 0;\n }\n\n /**\n * Selects the line specified.\n * @param line The line index.\n */\n protected _selectLineAt(line: number): void {\n const wrappedRange = this._bufferService.buffer.getWrappedRangeForLine(line);\n const range: IBufferRange = {\n start: { x: 0, y: wrappedRange.first },\n end: { x: this._bufferService.cols - 1, y: wrappedRange.last }\n };\n this._model.selectionStart = [0, wrappedRange.first];\n this._model.selectionEnd = undefined;\n this._model.selectionStartLength = getRangeLength(range, this._bufferService.cols);\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IEvent } from 'common/EventEmitter';\nimport { IRenderDimensions, IRenderer } from 'browser/renderer/Types';\nimport { IColorSet } from 'browser/Types';\nimport { ISelectionRedrawRequestEvent as ISelectionRequestRedrawEvent, ISelectionRequestScrollLinesEvent } from 'browser/selection/Types';\nimport { createDecorator } from 'common/services/ServiceRegistry';\nimport { IDisposable } from 'common/Types';\n\nexport const ICharSizeService = createDecorator('CharSizeService');\nexport interface ICharSizeService {\n serviceBrand: undefined;\n\n readonly width: number;\n readonly height: number;\n readonly hasValidSize: boolean;\n\n readonly onCharSizeChange: IEvent;\n\n measure(): void;\n}\n\nexport const ICoreBrowserService = createDecorator('CoreBrowserService');\nexport interface ICoreBrowserService {\n serviceBrand: undefined;\n\n readonly isFocused: boolean;\n /**\n * Parent window that the terminal is rendered into. DOM and rendering APIs\n * (e.g. requestAnimationFrame) should be invoked in the context of this\n * window.\n */\n readonly window: Window & typeof globalThis;\n /**\n * Helper for getting the devicePixelRatio of the parent window.\n */\n readonly dpr: number;\n}\n\nexport const IMouseService = createDecorator('MouseService');\nexport interface IMouseService {\n serviceBrand: undefined;\n\n getCoords(event: {clientX: number, clientY: number}, element: HTMLElement, colCount: number, rowCount: number, isSelection?: boolean): [number, number] | undefined;\n getMouseReportCoords(event: MouseEvent, element: HTMLElement): { col: number, row: number, x: number, y: number } | undefined;\n}\n\nexport const IRenderService = createDecorator('RenderService');\nexport interface IRenderService extends IDisposable {\n serviceBrand: undefined;\n\n onDimensionsChange: IEvent;\n /**\n * Fires when buffer changes are rendered. This does not fire when only cursor\n * or selections are rendered.\n */\n onRenderedViewportChange: IEvent<{ start: number, end: number }>;\n /**\n * Fires on render\n */\n onRender: IEvent<{ start: number, end: number }>;\n onRefreshRequest: IEvent<{ start: number, end: number }>;\n\n dimensions: IRenderDimensions;\n\n addRefreshCallback(callback: FrameRequestCallback): number;\n\n refreshRows(start: number, end: number): void;\n clearTextureAtlas(): void;\n resize(cols: number, rows: number): void;\n setRenderer(renderer: IRenderer): void;\n setColors(colors: IColorSet): void;\n onDevicePixelRatioChange(): void;\n onResize(cols: number, rows: number): void;\n // TODO: Is this useful when we have onResize?\n onCharSizeChanged(): void;\n onBlur(): void;\n onFocus(): void;\n onSelectionChanged(start: [number, number] | undefined, end: [number, number] | undefined, columnSelectMode: boolean): void;\n onCursorMove(): void;\n clear(): void;\n}\n\nexport const ISelectionService = createDecorator('SelectionService');\nexport interface ISelectionService {\n serviceBrand: undefined;\n\n readonly selectionText: string;\n readonly hasSelection: boolean;\n readonly selectionStart: [number, number] | undefined;\n readonly selectionEnd: [number, number] | undefined;\n\n readonly onLinuxMouseSelection: IEvent;\n readonly onRequestRedraw: IEvent;\n readonly onRequestScrollLines: IEvent;\n readonly onSelectionChange: IEvent;\n\n disable(): void;\n enable(): void;\n reset(): void;\n setSelection(row: number, col: number, length: number): void;\n selectAll(): void;\n selectLines(start: number, end: number): void;\n clearSelection(): void;\n rightClickSelect(event: MouseEvent): void;\n shouldColumnSelect(event: KeyboardEvent | MouseEvent): boolean;\n shouldForceSelection(event: MouseEvent): boolean;\n refresh(isLinuxMouseSelection?: boolean): void;\n onMouseDown(event: MouseEvent): void;\n isCellInSelection(x: number, y: number): boolean;\n}\n\nexport const ICharacterJoinerService = createDecorator('CharacterJoinerService');\nexport interface ICharacterJoinerService {\n serviceBrand: undefined;\n\n register(handler: (text: string) => [number, number][]): number;\n deregister(joinerId: number): boolean;\n getJoinedCharacters(row: number): [number, number][];\n}\n","/**\n * Copyright (c) 2016 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ICircularList } from 'common/Types';\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\n\nexport interface IInsertEvent {\n index: number;\n amount: number;\n}\n\nexport interface IDeleteEvent {\n index: number;\n amount: number;\n}\n\n/**\n * Represents a circular list; a list with a maximum size that wraps around when push is called,\n * overriding values at the start of the list.\n */\nexport class CircularList implements ICircularList {\n protected _array: (T | undefined)[];\n private _startIndex: number;\n private _length: number;\n\n public onDeleteEmitter = new EventEmitter();\n public get onDelete(): IEvent { return this.onDeleteEmitter.event; }\n public onInsertEmitter = new EventEmitter();\n public get onInsert(): IEvent { return this.onInsertEmitter.event; }\n public onTrimEmitter = new EventEmitter();\n public get onTrim(): IEvent { return this.onTrimEmitter.event; }\n\n constructor(\n private _maxLength: number\n ) {\n this._array = new Array(this._maxLength);\n this._startIndex = 0;\n this._length = 0;\n }\n\n public get maxLength(): number {\n return this._maxLength;\n }\n\n public set maxLength(newMaxLength: number) {\n // There was no change in maxLength, return early.\n if (this._maxLength === newMaxLength) {\n return;\n }\n\n // Reconstruct array, starting at index 0. Only transfer values from the\n // indexes 0 to length.\n const newArray = new Array(newMaxLength);\n for (let i = 0; i < Math.min(newMaxLength, this.length); i++) {\n newArray[i] = this._array[this._getCyclicIndex(i)];\n }\n this._array = newArray;\n this._maxLength = newMaxLength;\n this._startIndex = 0;\n }\n\n public get length(): number {\n return this._length;\n }\n\n public set length(newLength: number) {\n if (newLength > this._length) {\n for (let i = this._length; i < newLength; i++) {\n this._array[i] = undefined;\n }\n }\n this._length = newLength;\n }\n\n /**\n * Gets the value at an index.\n *\n * Note that for performance reasons there is no bounds checking here, the index reference is\n * circular so this should always return a value and never throw.\n * @param index The index of the value to get.\n * @return The value corresponding to the index.\n */\n public get(index: number): T | undefined {\n return this._array[this._getCyclicIndex(index)];\n }\n\n /**\n * Sets the value at an index.\n *\n * Note that for performance reasons there is no bounds checking here, the index reference is\n * circular so this should always return a value and never throw.\n * @param index The index to set.\n * @param value The value to set.\n */\n public set(index: number, value: T | undefined): void {\n this._array[this._getCyclicIndex(index)] = value;\n }\n\n /**\n * Pushes a new value onto the list, wrapping around to the start of the array, overriding index 0\n * if the maximum length is reached.\n * @param value The value to push onto the list.\n */\n public push(value: T): void {\n this._array[this._getCyclicIndex(this._length)] = value;\n if (this._length === this._maxLength) {\n this._startIndex = ++this._startIndex % this._maxLength;\n this.onTrimEmitter.fire(1);\n } else {\n this._length++;\n }\n }\n\n /**\n * Advance ringbuffer index and return current element for recycling.\n * Note: The buffer must be full for this method to work.\n * @throws When the buffer is not full.\n */\n public recycle(): T {\n if (this._length !== this._maxLength) {\n throw new Error('Can only recycle when the buffer is full');\n }\n this._startIndex = ++this._startIndex % this._maxLength;\n this.onTrimEmitter.fire(1);\n return this._array[this._getCyclicIndex(this._length - 1)]!;\n }\n\n /**\n * Ringbuffer is at max length.\n */\n public get isFull(): boolean {\n return this._length === this._maxLength;\n }\n\n /**\n * Removes and returns the last value on the list.\n * @return The popped value.\n */\n public pop(): T | undefined {\n return this._array[this._getCyclicIndex(this._length-- - 1)];\n }\n\n /**\n * Deletes and/or inserts items at a particular index (in that order). Unlike\n * Array.prototype.splice, this operation does not return the deleted items as a new array in\n * order to save creating a new array. Note that this operation may shift all values in the list\n * in the worst case.\n * @param start The index to delete and/or insert.\n * @param deleteCount The number of elements to delete.\n * @param items The items to insert.\n */\n public splice(start: number, deleteCount: number, ...items: T[]): void {\n // Delete items\n if (deleteCount) {\n for (let i = start; i < this._length - deleteCount; i++) {\n this._array[this._getCyclicIndex(i)] = this._array[this._getCyclicIndex(i + deleteCount)];\n }\n this._length -= deleteCount;\n this.onDeleteEmitter.fire({ index: start, amount: deleteCount });\n }\n\n // Add items\n for (let i = this._length - 1; i >= start; i--) {\n this._array[this._getCyclicIndex(i + items.length)] = this._array[this._getCyclicIndex(i)];\n }\n for (let i = 0; i < items.length; i++) {\n this._array[this._getCyclicIndex(start + i)] = items[i];\n }\n if (items.length) {\n this.onInsertEmitter.fire({ index: start, amount: items.length });\n }\n\n // Adjust length as needed\n if (this._length + items.length > this._maxLength) {\n const countToTrim = (this._length + items.length) - this._maxLength;\n this._startIndex += countToTrim;\n this._length = this._maxLength;\n this.onTrimEmitter.fire(countToTrim);\n } else {\n this._length += items.length;\n }\n }\n\n /**\n * Trims a number of items from the start of the list.\n * @param count The number of items to remove.\n */\n public trimStart(count: number): void {\n if (count > this._length) {\n count = this._length;\n }\n this._startIndex += count;\n this._length -= count;\n this.onTrimEmitter.fire(count);\n }\n\n public shiftElements(start: number, count: number, offset: number): void {\n if (count <= 0) {\n return;\n }\n if (start < 0 || start >= this._length) {\n throw new Error('start argument out of range');\n }\n if (start + offset < 0) {\n throw new Error('Cannot shift elements in list beyond index 0');\n }\n\n if (offset > 0) {\n for (let i = count - 1; i >= 0; i--) {\n this.set(start + i + offset, this.get(start + i));\n }\n const expandListBy = (start + count + offset) - this._length;\n if (expandListBy > 0) {\n this._length += expandListBy;\n while (this._length > this._maxLength) {\n this._length--;\n this._startIndex++;\n this.onTrimEmitter.fire(1);\n }\n }\n } else {\n for (let i = 0; i < count; i++) {\n this.set(start + i + offset, this.get(start + i));\n }\n }\n }\n\n /**\n * Gets the cyclic index for the specified regular index. The cyclic index can then be used on the\n * backing array to get the element associated with the regular index.\n * @param index The regular index.\n * @returns The cyclic index.\n */\n private _getCyclicIndex(index: number): number {\n return (this._startIndex + index) % this._maxLength;\n }\n}\n","/**\n * Copyright (c) 2016 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\n/*\n * A simple utility for cloning values\n */\nexport function clone(val: T, depth: number = 5): T {\n if (typeof val !== 'object') {\n return val;\n }\n\n // If we're cloning an array, use an array as the base, otherwise use an object\n const clonedObject: any = Array.isArray(val) ? [] : {};\n\n for (const key in val) {\n // Recursively clone eack item unless we're at the maximum depth\n clonedObject[key] = depth <= 1 ? val[key] : (val[key] && clone(val[key], depth - 1));\n }\n\n return clonedObject as T;\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IColor, IColorRGB } from 'common/Types';\n\n/**\n * Helper functions where the source type is \"channels\" (individual color channels as numbers).\n */\nexport namespace channels {\n export function toCss(r: number, g: number, b: number, a?: number): string {\n if (a !== undefined) {\n return `#${toPaddedHex(r)}${toPaddedHex(g)}${toPaddedHex(b)}${toPaddedHex(a)}`;\n }\n return `#${toPaddedHex(r)}${toPaddedHex(g)}${toPaddedHex(b)}`;\n }\n\n export function toRgba(r: number, g: number, b: number, a: number = 0xFF): number {\n // Note: The aggregated number is RGBA32 (BE), thus needs to be converted to ABGR32\n // on LE systems, before it can be used for direct 32-bit buffer writes.\n // >>> 0 forces an unsigned int\n return (r << 24 | g << 16 | b << 8 | a) >>> 0;\n }\n}\n\n/**\n * Helper functions where the source type is `IColor`.\n */\nexport namespace color {\n export function blend(bg: IColor, fg: IColor): IColor {\n const a = (fg.rgba & 0xFF) / 255;\n if (a === 1) {\n return {\n css: fg.css,\n rgba: fg.rgba\n };\n }\n const fgR = (fg.rgba >> 24) & 0xFF;\n const fgG = (fg.rgba >> 16) & 0xFF;\n const fgB = (fg.rgba >> 8) & 0xFF;\n const bgR = (bg.rgba >> 24) & 0xFF;\n const bgG = (bg.rgba >> 16) & 0xFF;\n const bgB = (bg.rgba >> 8) & 0xFF;\n const r = bgR + Math.round((fgR - bgR) * a);\n const g = bgG + Math.round((fgG - bgG) * a);\n const b = bgB + Math.round((fgB - bgB) * a);\n const css = channels.toCss(r, g, b);\n const rgba = channels.toRgba(r, g, b);\n return { css, rgba };\n }\n\n export function isOpaque(color: IColor): boolean {\n return (color.rgba & 0xFF) === 0xFF;\n }\n\n export function ensureContrastRatio(bg: IColor, fg: IColor, ratio: number): IColor | undefined {\n const result = rgba.ensureContrastRatio(bg.rgba, fg.rgba, ratio);\n if (!result) {\n return undefined;\n }\n return rgba.toColor(\n (result >> 24 & 0xFF),\n (result >> 16 & 0xFF),\n (result >> 8 & 0xFF)\n );\n }\n\n export function opaque(color: IColor): IColor {\n const rgbaColor = (color.rgba | 0xFF) >>> 0;\n const [r, g, b] = rgba.toChannels(rgbaColor);\n return {\n css: channels.toCss(r, g, b),\n rgba: rgbaColor\n };\n }\n\n export function opacity(color: IColor, opacity: number): IColor {\n const a = Math.round(opacity * 0xFF);\n const [r, g, b] = rgba.toChannels(color.rgba);\n return {\n css: channels.toCss(r, g, b, a),\n rgba: channels.toRgba(r, g, b, a)\n };\n }\n\n export function multiplyOpacity(color: IColor, factor: number): IColor {\n const a = color.rgba & 0xFF;\n return opacity(color, (a * factor) / 0xFF);\n }\n\n export function toColorRGB(color: IColor): IColorRGB {\n return [(color.rgba >> 24) & 0xFF, (color.rgba >> 16) & 0xFF, (color.rgba >> 8) & 0xFF];\n }\n}\n\n/**\n * Helper functions where the source type is \"css\" (string: '#rgb', '#rgba', '#rrggbb', '#rrggbbaa').\n */\nexport namespace css {\n export function toColor(css: string): IColor {\n if (css.match(/#[0-9a-f]{3,8}/i)) {\n switch (css.length) {\n case 4: { // #rgb\n const r = parseInt(css.slice(1, 2).repeat(2), 16);\n const g = parseInt(css.slice(2, 3).repeat(2), 16);\n const b = parseInt(css.slice(3, 4).repeat(2), 16);\n return rgba.toColor(r, g, b);\n }\n case 5: { // #rgba\n const r = parseInt(css.slice(1, 2).repeat(2), 16);\n const g = parseInt(css.slice(2, 3).repeat(2), 16);\n const b = parseInt(css.slice(3, 4).repeat(2), 16);\n const a = parseInt(css.slice(4, 5).repeat(2), 16);\n return rgba.toColor(r, g, b, a);\n }\n case 7: // #rrggbb\n return {\n css,\n rgba: (parseInt(css.slice(1), 16) << 8 | 0xFF) >>> 0\n };\n case 9: // #rrggbbaa\n return {\n css,\n rgba: parseInt(css.slice(1), 16) >>> 0\n };\n }\n }\n const rgbaMatch = css.match(/rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(,\\s*(0|1|\\d?\\.(\\d+))\\s*)?\\)/);\n if (rgbaMatch) { // rgb() or rgba()\n const r = parseInt(rgbaMatch[1]);\n const g = parseInt(rgbaMatch[2]);\n const b = parseInt(rgbaMatch[3]);\n const a = Math.round((rgbaMatch[5] === undefined ? 1 : parseFloat(rgbaMatch[5])) * 0xFF);\n return rgba.toColor(r, g, b, a);\n }\n throw new Error('css.toColor: Unsupported css format');\n }\n}\n\n/**\n * Helper functions where the source type is \"rgb\" (number: 0xrrggbb).\n */\nexport namespace rgb {\n /**\n * Gets the relative luminance of an RGB color, this is useful in determining the contrast ratio\n * between two colors.\n * @param rgb The color to use.\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\n export function relativeLuminance(rgb: number): number {\n return relativeLuminance2(\n (rgb >> 16) & 0xFF,\n (rgb >> 8 ) & 0xFF,\n (rgb ) & 0xFF);\n }\n\n /**\n * Gets the relative luminance of an RGB color, this is useful in determining the contrast ratio\n * between two colors.\n * @param r The red channel (0x00 to 0xFF).\n * @param g The green channel (0x00 to 0xFF).\n * @param b The blue channel (0x00 to 0xFF).\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\n export function relativeLuminance2(r: number, g: number, b: number): number {\n const rs = r / 255;\n const gs = g / 255;\n const bs = b / 255;\n const rr = rs <= 0.03928 ? rs / 12.92 : Math.pow((rs + 0.055) / 1.055, 2.4);\n const rg = gs <= 0.03928 ? gs / 12.92 : Math.pow((gs + 0.055) / 1.055, 2.4);\n const rb = bs <= 0.03928 ? bs / 12.92 : Math.pow((bs + 0.055) / 1.055, 2.4);\n return rr * 0.2126 + rg * 0.7152 + rb * 0.0722;\n }\n}\n\n/**\n * Helper functions where the source type is \"rgba\" (number: 0xrrggbbaa).\n */\nexport namespace rgba {\n /**\n * Given a foreground color and a background color, either increase or reduce the luminance of the\n * foreground color until the specified contrast ratio is met. If pure white or black is hit\n * without the contrast ratio being met, go the other direction using the background color as the\n * foreground color and take either the first or second result depending on which has the higher\n * contrast ratio.\n *\n * `undefined` will be returned if the contrast ratio is already met.\n *\n * @param bgRgba The background color in rgba format.\n * @param fgRgba The foreground color in rgba format.\n * @param ratio The contrast ratio to achieve.\n */\n export function ensureContrastRatio(bgRgba: number, fgRgba: number, ratio: number): number | undefined {\n const bgL = rgb.relativeLuminance(bgRgba >> 8);\n const fgL = rgb.relativeLuminance(fgRgba >> 8);\n const cr = contrastRatio(bgL, fgL);\n if (cr < ratio) {\n if (fgL < bgL) {\n const resultA = reduceLuminance(bgRgba, fgRgba, ratio);\n const resultARatio = contrastRatio(bgL, rgb.relativeLuminance(resultA >> 8));\n if (resultARatio < ratio) {\n const resultB = increaseLuminance(bgRgba, fgRgba, ratio);\n const resultBRatio = contrastRatio(bgL, rgb.relativeLuminance(resultB >> 8));\n return resultARatio > resultBRatio ? resultA : resultB;\n }\n return resultA;\n }\n const resultA = increaseLuminance(bgRgba, fgRgba, ratio);\n const resultARatio = contrastRatio(bgL, rgb.relativeLuminance(resultA >> 8));\n if (resultARatio < ratio) {\n const resultB = reduceLuminance(bgRgba, fgRgba, ratio);\n const resultBRatio = contrastRatio(bgL, rgb.relativeLuminance(resultB >> 8));\n return resultARatio > resultBRatio ? resultA : resultB;\n }\n return resultA;\n }\n return undefined;\n }\n\n export function reduceLuminance(bgRgba: number, fgRgba: number, ratio: number): number {\n // This is a naive but fast approach to reducing luminance as converting to\n // HSL and back is expensive\n const bgR = (bgRgba >> 24) & 0xFF;\n const bgG = (bgRgba >> 16) & 0xFF;\n const bgB = (bgRgba >> 8) & 0xFF;\n let fgR = (fgRgba >> 24) & 0xFF;\n let fgG = (fgRgba >> 16) & 0xFF;\n let fgB = (fgRgba >> 8) & 0xFF;\n let cr = contrastRatio(rgb.relativeLuminance2(fgR, fgG, fgB), rgb.relativeLuminance2(bgR, bgG, bgB));\n while (cr < ratio && (fgR > 0 || fgG > 0 || fgB > 0)) {\n // Reduce by 10% until the ratio is hit\n fgR -= Math.max(0, Math.ceil(fgR * 0.1));\n fgG -= Math.max(0, Math.ceil(fgG * 0.1));\n fgB -= Math.max(0, Math.ceil(fgB * 0.1));\n cr = contrastRatio(rgb.relativeLuminance2(fgR, fgG, fgB), rgb.relativeLuminance2(bgR, bgG, bgB));\n }\n return (fgR << 24 | fgG << 16 | fgB << 8 | 0xFF) >>> 0;\n }\n\n export function increaseLuminance(bgRgba: number, fgRgba: number, ratio: number): number {\n // This is a naive but fast approach to increasing luminance as converting to\n // HSL and back is expensive\n const bgR = (bgRgba >> 24) & 0xFF;\n const bgG = (bgRgba >> 16) & 0xFF;\n const bgB = (bgRgba >> 8) & 0xFF;\n let fgR = (fgRgba >> 24) & 0xFF;\n let fgG = (fgRgba >> 16) & 0xFF;\n let fgB = (fgRgba >> 8) & 0xFF;\n let cr = contrastRatio(rgb.relativeLuminance2(fgR, fgG, fgB), rgb.relativeLuminance2(bgR, bgG, bgB));\n while (cr < ratio && (fgR < 0xFF || fgG < 0xFF || fgB < 0xFF)) {\n // Increase by 10% until the ratio is hit\n fgR = Math.min(0xFF, fgR + Math.ceil((255 - fgR) * 0.1));\n fgG = Math.min(0xFF, fgG + Math.ceil((255 - fgG) * 0.1));\n fgB = Math.min(0xFF, fgB + Math.ceil((255 - fgB) * 0.1));\n cr = contrastRatio(rgb.relativeLuminance2(fgR, fgG, fgB), rgb.relativeLuminance2(bgR, bgG, bgB));\n }\n return (fgR << 24 | fgG << 16 | fgB << 8 | 0xFF) >>> 0;\n }\n\n // FIXME: Move this to channels NS?\n export function toChannels(value: number): [number, number, number, number] {\n return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF];\n }\n\n export function toColor(r: number, g: number, b: number, a?: number): IColor {\n return {\n css: channels.toCss(r, g, b, a),\n rgba: channels.toRgba(r, g, b, a)\n };\n }\n}\n\nexport function toPaddedHex(c: number): string {\n const s = c.toString(16);\n return s.length < 2 ? '0' + s : s;\n}\n\n/**\n * Gets the contrast ratio between two relative luminance values.\n * @param l1 The first relative luminance.\n * @param l2 The first relative luminance.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function contrastRatio(l1: number, l2: number): number {\n if (l1 < l2) {\n return (l2 + 0.05) / (l1 + 0.05);\n }\n return (l1 + 0.05) / (l2 + 0.05);\n}\n","/**\n * Copyright (c) 2014-2020 The xterm.js authors. All rights reserved.\n * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)\n * @license MIT\n *\n * Originally forked from (with the author's permission):\n * Fabrice Bellard's javascript vt100 for jslinux:\n * http://bellard.org/jslinux/\n * Copyright (c) 2011 Fabrice Bellard\n * The original design remains. The terminal itself\n * has been extended to include xterm CSI codes, among\n * other features.\n *\n * Terminal Emulation References:\n * http://vt100.net/\n * http://invisible-island.net/xterm/ctlseqs/ctlseqs.txt\n * http://invisible-island.net/xterm/ctlseqs/ctlseqs.html\n * http://invisible-island.net/vttest/\n * http://www.inwap.com/pdp10/ansicode.txt\n * http://linux.die.net/man/4/console_codes\n * http://linux.die.net/man/7/urxvt\n */\n\nimport { Disposable } from 'common/Lifecycle';\nimport { IInstantiationService, IOptionsService, IBufferService, ILogService, ICharsetService, ICoreService, ICoreMouseService, IUnicodeService, IDirtyRowService, LogLevelEnum, ITerminalOptions, IOscLinkService } from 'common/services/Services';\nimport { InstantiationService } from 'common/services/InstantiationService';\nimport { LogService } from 'common/services/LogService';\nimport { BufferService, MINIMUM_COLS, MINIMUM_ROWS } from 'common/services/BufferService';\nimport { OptionsService } from 'common/services/OptionsService';\nimport { IDisposable, IAttributeData, ICoreTerminal, IScrollEvent, ScrollSource } from 'common/Types';\nimport { CoreService } from 'common/services/CoreService';\nimport { EventEmitter, IEvent, forwardEvent } from 'common/EventEmitter';\nimport { CoreMouseService } from 'common/services/CoreMouseService';\nimport { DirtyRowService } from 'common/services/DirtyRowService';\nimport { UnicodeService } from 'common/services/UnicodeService';\nimport { CharsetService } from 'common/services/CharsetService';\nimport { updateWindowsModeWrappedState } from 'common/WindowsMode';\nimport { IFunctionIdentifier, IParams } from 'common/parser/Types';\nimport { IBufferSet } from 'common/buffer/Types';\nimport { InputHandler } from 'common/InputHandler';\nimport { WriteBuffer } from 'common/input/WriteBuffer';\nimport { OscLinkService } from 'common/services/OscLinkService';\n\n// Only trigger this warning a single time per session\nlet hasWriteSyncWarnHappened = false;\n\nexport abstract class CoreTerminal extends Disposable implements ICoreTerminal {\n protected readonly _instantiationService: IInstantiationService;\n protected readonly _bufferService: IBufferService;\n protected readonly _logService: ILogService;\n protected readonly _charsetService: ICharsetService;\n protected readonly _dirtyRowService: IDirtyRowService;\n protected readonly _oscLinkService: IOscLinkService;\n\n public readonly coreMouseService: ICoreMouseService;\n public readonly coreService: ICoreService;\n public readonly unicodeService: IUnicodeService;\n public readonly optionsService: IOptionsService;\n\n protected _inputHandler: InputHandler;\n private _writeBuffer: WriteBuffer;\n private _windowsMode: IDisposable | undefined;\n\n private _onBinary = new EventEmitter();\n public get onBinary(): IEvent { return this._onBinary.event; }\n private _onData = new EventEmitter();\n public get onData(): IEvent { return this._onData.event; }\n protected _onLineFeed = new EventEmitter();\n public get onLineFeed(): IEvent { return this._onLineFeed.event; }\n private _onResize = new EventEmitter<{ cols: number, rows: number }>();\n public get onResize(): IEvent<{ cols: number, rows: number }> { return this._onResize.event; }\n protected _onScroll = new EventEmitter();\n public get onWriteParsed(): IEvent { return this._onWriteParsed.event; }\n protected _onWriteParsed = new EventEmitter();\n /**\n * Internally we track the source of the scroll but this is meaningless outside the library so\n * it's filtered out.\n */\n protected _onScrollApi?: EventEmitter;\n public get onScroll(): IEvent {\n if (!this._onScrollApi) {\n this._onScrollApi = new EventEmitter();\n this.register(this._onScroll.event(ev => {\n this._onScrollApi?.fire(ev.position);\n }));\n }\n return this._onScrollApi.event;\n }\n\n public get cols(): number { return this._bufferService.cols; }\n public get rows(): number { return this._bufferService.rows; }\n public get buffers(): IBufferSet { return this._bufferService.buffers; }\n public get options(): Required { return this.optionsService.options; }\n public set options(options: ITerminalOptions) {\n for (const key in options) {\n this.optionsService.options[key] = options[key];\n }\n }\n\n constructor(\n options: Partial\n ) {\n super();\n\n // Setup and initialize services\n this._instantiationService = new InstantiationService();\n this.optionsService = new OptionsService(options);\n this._instantiationService.setService(IOptionsService, this.optionsService);\n this._bufferService = this.register(this._instantiationService.createInstance(BufferService));\n this._instantiationService.setService(IBufferService, this._bufferService);\n this._logService = this._instantiationService.createInstance(LogService);\n this._instantiationService.setService(ILogService, this._logService);\n this.coreService = this.register(this._instantiationService.createInstance(CoreService, () => this.scrollToBottom()));\n this._instantiationService.setService(ICoreService, this.coreService);\n this.coreMouseService = this._instantiationService.createInstance(CoreMouseService);\n this._instantiationService.setService(ICoreMouseService, this.coreMouseService);\n this._dirtyRowService = this._instantiationService.createInstance(DirtyRowService);\n this._instantiationService.setService(IDirtyRowService, this._dirtyRowService);\n this.unicodeService = this._instantiationService.createInstance(UnicodeService);\n this._instantiationService.setService(IUnicodeService, this.unicodeService);\n this._charsetService = this._instantiationService.createInstance(CharsetService);\n this._instantiationService.setService(ICharsetService, this._charsetService);\n this._oscLinkService = this._instantiationService.createInstance(OscLinkService);\n this._instantiationService.setService(IOscLinkService, this._oscLinkService);\n\n // Register input handler and handle/forward events\n this._inputHandler = new InputHandler(this._bufferService, this._charsetService, this.coreService, this._dirtyRowService, this._logService, this.optionsService, this._oscLinkService, this.coreMouseService, this.unicodeService);\n this.register(forwardEvent(this._inputHandler.onLineFeed, this._onLineFeed));\n this.register(this._inputHandler);\n\n // Setup listeners\n this.register(forwardEvent(this._bufferService.onResize, this._onResize));\n this.register(forwardEvent(this.coreService.onData, this._onData));\n this.register(forwardEvent(this.coreService.onBinary, this._onBinary));\n this.register(this.optionsService.onOptionChange(key => this._updateOptions(key)));\n this.register(this._bufferService.onScroll(event => {\n this._onScroll.fire({ position: this._bufferService.buffer.ydisp, source: ScrollSource.TERMINAL });\n this._dirtyRowService.markRangeDirty(this._bufferService.buffer.scrollTop, this._bufferService.buffer.scrollBottom);\n }));\n this.register(this._inputHandler.onScroll(event => {\n this._onScroll.fire({ position: this._bufferService.buffer.ydisp, source: ScrollSource.TERMINAL });\n this._dirtyRowService.markRangeDirty(this._bufferService.buffer.scrollTop, this._bufferService.buffer.scrollBottom);\n }));\n\n // Setup WriteBuffer\n this._writeBuffer = new WriteBuffer((data, promiseResult) => this._inputHandler.parse(data, promiseResult));\n this.register(forwardEvent(this._writeBuffer.onWriteParsed, this._onWriteParsed));\n }\n\n public dispose(): void {\n if (this._isDisposed) {\n return;\n }\n super.dispose();\n this._windowsMode?.dispose();\n this._windowsMode = undefined;\n }\n\n public write(data: string | Uint8Array, callback?: () => void): void {\n this._writeBuffer.write(data, callback);\n }\n\n /**\n * Write data to terminal synchonously.\n *\n * This method is unreliable with async parser handlers, thus should not\n * be used anymore. If you need blocking semantics on data input consider\n * `write` with a callback instead.\n *\n * @deprecated Unreliable, will be removed soon.\n */\n public writeSync(data: string | Uint8Array, maxSubsequentCalls?: number): void {\n if (this._logService.logLevel <= LogLevelEnum.WARN && !hasWriteSyncWarnHappened) {\n this._logService.warn('writeSync is unreliable and will be removed soon.');\n hasWriteSyncWarnHappened = true;\n }\n this._writeBuffer.writeSync(data, maxSubsequentCalls);\n }\n\n public resize(x: number, y: number): void {\n if (isNaN(x) || isNaN(y)) {\n return;\n }\n\n x = Math.max(x, MINIMUM_COLS);\n y = Math.max(y, MINIMUM_ROWS);\n\n this._bufferService.resize(x, y);\n }\n\n /**\n * Scroll the terminal down 1 row, creating a blank line.\n * @param isWrapped Whether the new line is wrapped from the previous line.\n */\n public scroll(eraseAttr: IAttributeData, isWrapped: boolean = false): void {\n this._bufferService.scroll(eraseAttr, isWrapped);\n }\n\n /**\n * Scroll the display of the terminal\n * @param disp The number of lines to scroll down (negative scroll up).\n * @param suppressScrollEvent Don't emit the scroll event as scrollLines. This is used\n * to avoid unwanted events being handled by the viewport when the event was triggered from the\n * viewport originally.\n */\n public scrollLines(disp: number, suppressScrollEvent?: boolean, source?: ScrollSource): void {\n this._bufferService.scrollLines(disp, suppressScrollEvent, source);\n }\n\n /**\n * Scroll the display of the terminal by a number of pages.\n * @param pageCount The number of pages to scroll (negative scrolls up).\n */\n public scrollPages(pageCount: number): void {\n this._bufferService.scrollPages(pageCount);\n }\n\n /**\n * Scrolls the display of the terminal to the top.\n */\n public scrollToTop(): void {\n this._bufferService.scrollToTop();\n }\n\n /**\n * Scrolls the display of the terminal to the bottom.\n */\n public scrollToBottom(): void {\n this._bufferService.scrollToBottom();\n }\n\n public scrollToLine(line: number): void {\n this._bufferService.scrollToLine(line);\n }\n\n /** Add handler for ESC escape sequence. See xterm.d.ts for details. */\n public registerEscHandler(id: IFunctionIdentifier, callback: () => boolean | Promise): IDisposable {\n return this._inputHandler.registerEscHandler(id, callback);\n }\n\n /** Add handler for DCS escape sequence. See xterm.d.ts for details. */\n public registerDcsHandler(id: IFunctionIdentifier, callback: (data: string, param: IParams) => boolean | Promise): IDisposable {\n return this._inputHandler.registerDcsHandler(id, callback);\n }\n\n /** Add handler for CSI escape sequence. See xterm.d.ts for details. */\n public registerCsiHandler(id: IFunctionIdentifier, callback: (params: IParams) => boolean | Promise): IDisposable {\n return this._inputHandler.registerCsiHandler(id, callback);\n }\n\n /** Add handler for OSC escape sequence. See xterm.d.ts for details. */\n public registerOscHandler(ident: number, callback: (data: string) => boolean | Promise): IDisposable {\n return this._inputHandler.registerOscHandler(ident, callback);\n }\n\n protected _setup(): void {\n if (this.optionsService.rawOptions.windowsMode) {\n this._enableWindowsMode();\n }\n }\n\n public reset(): void {\n this._inputHandler.reset();\n this._bufferService.reset();\n this._charsetService.reset();\n this.coreService.reset();\n this.coreMouseService.reset();\n }\n\n protected _updateOptions(key: string): void {\n // TODO: These listeners should be owned by individual components\n switch (key) {\n case 'scrollback':\n this.buffers.resize(this.cols, this.rows);\n break;\n case 'windowsMode':\n if (this.optionsService.rawOptions.windowsMode) {\n this._enableWindowsMode();\n } else {\n this._windowsMode?.dispose();\n this._windowsMode = undefined;\n }\n break;\n }\n }\n\n protected _enableWindowsMode(): void {\n if (!this._windowsMode) {\n const disposables: IDisposable[] = [];\n disposables.push(this.onLineFeed(updateWindowsModeWrappedState.bind(null, this._bufferService)));\n disposables.push(this.registerCsiHandler({ final: 'H' }, () => {\n updateWindowsModeWrappedState(this._bufferService);\n return false;\n }));\n this._windowsMode = {\n dispose: () => {\n for (const d of disposables) {\n d.dispose();\n }\n }\n };\n }\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IDisposable } from 'common/Types';\n\ninterface IListener {\n (arg1: T, arg2: U): void;\n}\n\nexport interface IEvent {\n (listener: (arg1: T, arg2: U) => any): IDisposable;\n}\n\nexport interface IEventEmitter {\n event: IEvent;\n fire(arg1: T, arg2: U): void;\n dispose(): void;\n}\n\nexport class EventEmitter implements IEventEmitter {\n private _listeners: IListener[] = [];\n private _event?: IEvent;\n private _disposed: boolean = false;\n\n public get event(): IEvent {\n if (!this._event) {\n this._event = (listener: (arg1: T, arg2: U) => any) => {\n this._listeners.push(listener);\n const disposable = {\n dispose: () => {\n if (!this._disposed) {\n for (let i = 0; i < this._listeners.length; i++) {\n if (this._listeners[i] === listener) {\n this._listeners.splice(i, 1);\n return;\n }\n }\n }\n }\n };\n return disposable;\n };\n }\n return this._event;\n }\n\n public fire(arg1: T, arg2: U): void {\n const queue: IListener[] = [];\n for (let i = 0; i < this._listeners.length; i++) {\n queue.push(this._listeners[i]);\n }\n for (let i = 0; i < queue.length; i++) {\n queue[i].call(undefined, arg1, arg2);\n }\n }\n\n public dispose(): void {\n if (this._listeners) {\n this._listeners.length = 0;\n }\n this._disposed = true;\n }\n}\n\nexport function forwardEvent(from: IEvent, to: IEventEmitter): IDisposable {\n return from(e => to.fire(e));\n}\n","/**\n * Copyright (c) 2014 The xterm.js authors. All rights reserved.\n * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)\n * @license MIT\n */\n\nimport { IInputHandler, IAttributeData, IDisposable, IWindowOptions, IColorEvent, IParseStack, ColorIndex, ColorRequestType } from 'common/Types';\nimport { C0, C1 } from 'common/data/EscapeSequences';\nimport { CHARSETS, DEFAULT_CHARSET } from 'common/data/Charsets';\nimport { EscapeSequenceParser } from 'common/parser/EscapeSequenceParser';\nimport { Disposable } from 'common/Lifecycle';\nimport { StringToUtf32, stringFromCodePoint, Utf8ToUtf32 } from 'common/input/TextDecoder';\nimport { DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine';\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\nimport { IParsingState, IDcsHandler, IEscapeSequenceParser, IParams, IFunctionIdentifier } from 'common/parser/Types';\nimport { NULL_CELL_CODE, NULL_CELL_WIDTH, Attributes, FgFlags, BgFlags, Content, UnderlineStyle } from 'common/buffer/Constants';\nimport { CellData } from 'common/buffer/CellData';\nimport { AttributeData } from 'common/buffer/AttributeData';\nimport { ICoreService, IBufferService, IOptionsService, ILogService, IDirtyRowService, ICoreMouseService, ICharsetService, IUnicodeService, LogLevelEnum, IOscLinkService } from 'common/services/Services';\nimport { OscHandler } from 'common/parser/OscParser';\nimport { DcsHandler } from 'common/parser/DcsParser';\nimport { IBuffer } from 'common/buffer/Types';\nimport { parseColor } from 'common/input/XParseColor';\n\n/**\n * Map collect to glevel. Used in `selectCharset`.\n */\nconst GLEVEL: { [key: string]: number } = { '(': 0, ')': 1, '*': 2, '+': 3, '-': 1, '.': 2 };\n\n/**\n * VT commands done by the parser - FIXME: move this to the parser?\n */\n// @vt: #Y ESC CSI \"Control Sequence Introducer\" \"ESC [\" \"Start of a CSI sequence.\"\n// @vt: #Y ESC OSC \"Operating System Command\" \"ESC ]\" \"Start of an OSC sequence.\"\n// @vt: #Y ESC DCS \"Device Control String\" \"ESC P\" \"Start of a DCS sequence.\"\n// @vt: #Y ESC ST \"String Terminator\" \"ESC \\\" \"Terminator used for string type sequences.\"\n// @vt: #Y ESC PM \"Privacy Message\" \"ESC ^\" \"Start of a privacy message.\"\n// @vt: #Y ESC APC \"Application Program Command\" \"ESC _\" \"Start of an APC sequence.\"\n// @vt: #Y C1 CSI \"Control Sequence Introducer\" \"\\x9B\" \"Start of a CSI sequence.\"\n// @vt: #Y C1 OSC \"Operating System Command\" \"\\x9D\" \"Start of an OSC sequence.\"\n// @vt: #Y C1 DCS \"Device Control String\" \"\\x90\" \"Start of a DCS sequence.\"\n// @vt: #Y C1 ST \"String Terminator\" \"\\x9C\" \"Terminator used for string type sequences.\"\n// @vt: #Y C1 PM \"Privacy Message\" \"\\x9E\" \"Start of a privacy message.\"\n// @vt: #Y C1 APC \"Application Program Command\" \"\\x9F\" \"Start of an APC sequence.\"\n// @vt: #Y C0 NUL \"Null\" \"\\0, \\x00\" \"NUL is ignored.\"\n// @vt: #Y C0 ESC \"Escape\" \"\\e, \\x1B\" \"Start of a sequence. Cancels any other sequence.\"\n\n/**\n * Document xterm VT features here that are currently unsupported\n */\n// @vt: #E[Supported via xterm-addon-image.] DCS SIXEL \"SIXEL Graphics\" \"DCS Ps ; Ps ; Ps ; q \tPt ST\" \"Draw SIXEL image.\"\n// @vt: #N DCS DECUDK \"User Defined Keys\" \"DCS Ps ; Ps \\| Pt ST\" \"Definitions for user-defined keys.\"\n// @vt: #N DCS XTGETTCAP \"Request Terminfo String\" \"DCS + q Pt ST\" \"Request Terminfo String.\"\n// @vt: #N DCS XTSETTCAP \"Set Terminfo Data\" \"DCS + p Pt ST\" \"Set Terminfo Data.\"\n// @vt: #N OSC 1 \"Set Icon Name\" \"OSC 1 ; Pt BEL\" \"Set icon name.\"\n\n/**\n * Max length of the UTF32 input buffer. Real memory consumption is 4 times higher.\n */\nconst MAX_PARSEBUFFER_LENGTH = 131072;\n\n/**\n * Limit length of title and icon name stacks.\n */\nconst STACK_LIMIT = 10;\n\n// map params to window option\nfunction paramToWindowOption(n: number, opts: IWindowOptions): boolean {\n if (n > 24) {\n return opts.setWinLines || false;\n }\n switch (n) {\n case 1: return !!opts.restoreWin;\n case 2: return !!opts.minimizeWin;\n case 3: return !!opts.setWinPosition;\n case 4: return !!opts.setWinSizePixels;\n case 5: return !!opts.raiseWin;\n case 6: return !!opts.lowerWin;\n case 7: return !!opts.refreshWin;\n case 8: return !!opts.setWinSizeChars;\n case 9: return !!opts.maximizeWin;\n case 10: return !!opts.fullscreenWin;\n case 11: return !!opts.getWinState;\n case 13: return !!opts.getWinPosition;\n case 14: return !!opts.getWinSizePixels;\n case 15: return !!opts.getScreenSizePixels;\n case 16: return !!opts.getCellSizePixels;\n case 18: return !!opts.getWinSizeChars;\n case 19: return !!opts.getScreenSizeChars;\n case 20: return !!opts.getIconTitle;\n case 21: return !!opts.getWinTitle;\n case 22: return !!opts.pushTitle;\n case 23: return !!opts.popTitle;\n case 24: return !!opts.setWinLines;\n }\n return false;\n}\n\nexport enum WindowsOptionsReportType {\n GET_WIN_SIZE_PIXELS = 0,\n GET_CELL_SIZE_PIXELS = 1\n}\n\n// create a warning log if an async handler takes longer than the limit (in ms)\nconst SLOW_ASYNC_LIMIT = 5000;\n\n\n/**\n * The terminal's standard implementation of IInputHandler, this handles all\n * input from the Parser.\n *\n * Refer to http://invisible-island.net/xterm/ctlseqs/ctlseqs.html to understand\n * each function's header comment.\n */\nexport class InputHandler extends Disposable implements IInputHandler {\n private _parseBuffer: Uint32Array = new Uint32Array(4096);\n private _stringDecoder: StringToUtf32 = new StringToUtf32();\n private _utf8Decoder: Utf8ToUtf32 = new Utf8ToUtf32();\n private _workCell: CellData = new CellData();\n private _windowTitle = '';\n private _iconName = '';\n private _currentLinkId?: number;\n protected _windowTitleStack: string[] = [];\n protected _iconNameStack: string[] = [];\n\n private _curAttrData: IAttributeData = DEFAULT_ATTR_DATA.clone();\n public getAttrData(): IAttributeData { return this._curAttrData; }\n private _eraseAttrDataInternal: IAttributeData = DEFAULT_ATTR_DATA.clone();\n\n private _activeBuffer: IBuffer;\n\n private _onRequestBell = new EventEmitter();\n public get onRequestBell(): IEvent { return this._onRequestBell.event; }\n private _onRequestRefreshRows = new EventEmitter();\n public get onRequestRefreshRows(): IEvent { return this._onRequestRefreshRows.event; }\n private _onRequestReset = new EventEmitter();\n public get onRequestReset(): IEvent { return this._onRequestReset.event; }\n private _onRequestSendFocus = new EventEmitter();\n public get onRequestSendFocus(): IEvent { return this._onRequestSendFocus.event; }\n private _onRequestSyncScrollBar = new EventEmitter();\n public get onRequestSyncScrollBar(): IEvent { return this._onRequestSyncScrollBar.event; }\n private _onRequestWindowsOptionsReport = new EventEmitter();\n public get onRequestWindowsOptionsReport(): IEvent { return this._onRequestWindowsOptionsReport.event; }\n\n private _onA11yChar = new EventEmitter();\n public get onA11yChar(): IEvent { return this._onA11yChar.event; }\n private _onA11yTab = new EventEmitter();\n public get onA11yTab(): IEvent { return this._onA11yTab.event; }\n private _onCursorMove = new EventEmitter();\n public get onCursorMove(): IEvent { return this._onCursorMove.event; }\n private _onLineFeed = new EventEmitter();\n public get onLineFeed(): IEvent { return this._onLineFeed.event; }\n private _onScroll = new EventEmitter();\n public get onScroll(): IEvent { return this._onScroll.event; }\n private _onTitleChange = new EventEmitter();\n public get onTitleChange(): IEvent { return this._onTitleChange.event; }\n private _onColor = new EventEmitter();\n public get onColor(): IEvent { return this._onColor.event; }\n\n private _parseStack: IParseStack = {\n paused: false,\n cursorStartX: 0,\n cursorStartY: 0,\n decodedLength: 0,\n position: 0\n };\n\n constructor(\n private readonly _bufferService: IBufferService,\n private readonly _charsetService: ICharsetService,\n private readonly _coreService: ICoreService,\n private readonly _dirtyRowService: IDirtyRowService,\n private readonly _logService: ILogService,\n private readonly _optionsService: IOptionsService,\n private readonly _oscLinkService: IOscLinkService,\n private readonly _coreMouseService: ICoreMouseService,\n private readonly _unicodeService: IUnicodeService,\n private readonly _parser: IEscapeSequenceParser = new EscapeSequenceParser()\n ) {\n super();\n this.register(this._parser);\n\n // Track properties used in performance critical code manually to avoid using slow getters\n this._activeBuffer = this._bufferService.buffer;\n this.register(this._bufferService.buffers.onBufferActivate(e => this._activeBuffer = e.activeBuffer));\n\n /**\n * custom fallback handlers\n */\n this._parser.setCsiHandlerFallback((ident, params) => {\n this._logService.debug('Unknown CSI code: ', { identifier: this._parser.identToString(ident), params: params.toArray() });\n });\n this._parser.setEscHandlerFallback(ident => {\n this._logService.debug('Unknown ESC code: ', { identifier: this._parser.identToString(ident) });\n });\n this._parser.setExecuteHandlerFallback(code => {\n this._logService.debug('Unknown EXECUTE code: ', { code });\n });\n this._parser.setOscHandlerFallback((identifier, action, data) => {\n this._logService.debug('Unknown OSC code: ', { identifier, action, data });\n });\n this._parser.setDcsHandlerFallback((ident, action, payload) => {\n if (action === 'HOOK') {\n payload = payload.toArray();\n }\n this._logService.debug('Unknown DCS code: ', { identifier: this._parser.identToString(ident), action, payload });\n });\n\n /**\n * print handler\n */\n this._parser.setPrintHandler((data, start, end) => this.print(data, start, end));\n\n /**\n * CSI handler\n */\n this._parser.registerCsiHandler({ final: '@' }, params => this.insertChars(params));\n this._parser.registerCsiHandler({ intermediates: ' ', final: '@' }, params => this.scrollLeft(params));\n this._parser.registerCsiHandler({ final: 'A' }, params => this.cursorUp(params));\n this._parser.registerCsiHandler({ intermediates: ' ', final: 'A' }, params => this.scrollRight(params));\n this._parser.registerCsiHandler({ final: 'B' }, params => this.cursorDown(params));\n this._parser.registerCsiHandler({ final: 'C' }, params => this.cursorForward(params));\n this._parser.registerCsiHandler({ final: 'D' }, params => this.cursorBackward(params));\n this._parser.registerCsiHandler({ final: 'E' }, params => this.cursorNextLine(params));\n this._parser.registerCsiHandler({ final: 'F' }, params => this.cursorPrecedingLine(params));\n this._parser.registerCsiHandler({ final: 'G' }, params => this.cursorCharAbsolute(params));\n this._parser.registerCsiHandler({ final: 'H' }, params => this.cursorPosition(params));\n this._parser.registerCsiHandler({ final: 'I' }, params => this.cursorForwardTab(params));\n this._parser.registerCsiHandler({ final: 'J' }, params => this.eraseInDisplay(params, false));\n this._parser.registerCsiHandler({ prefix: '?', final: 'J' }, params => this.eraseInDisplay(params, true));\n this._parser.registerCsiHandler({ final: 'K' }, params => this.eraseInLine(params, false));\n this._parser.registerCsiHandler({ prefix: '?', final: 'K' }, params => this.eraseInLine(params, true));\n this._parser.registerCsiHandler({ final: 'L' }, params => this.insertLines(params));\n this._parser.registerCsiHandler({ final: 'M' }, params => this.deleteLines(params));\n this._parser.registerCsiHandler({ final: 'P' }, params => this.deleteChars(params));\n this._parser.registerCsiHandler({ final: 'S' }, params => this.scrollUp(params));\n this._parser.registerCsiHandler({ final: 'T' }, params => this.scrollDown(params));\n this._parser.registerCsiHandler({ final: 'X' }, params => this.eraseChars(params));\n this._parser.registerCsiHandler({ final: 'Z' }, params => this.cursorBackwardTab(params));\n this._parser.registerCsiHandler({ final: '`' }, params => this.charPosAbsolute(params));\n this._parser.registerCsiHandler({ final: 'a' }, params => this.hPositionRelative(params));\n this._parser.registerCsiHandler({ final: 'b' }, params => this.repeatPrecedingCharacter(params));\n this._parser.registerCsiHandler({ final: 'c' }, params => this.sendDeviceAttributesPrimary(params));\n this._parser.registerCsiHandler({ prefix: '>', final: 'c' }, params => this.sendDeviceAttributesSecondary(params));\n this._parser.registerCsiHandler({ final: 'd' }, params => this.linePosAbsolute(params));\n this._parser.registerCsiHandler({ final: 'e' }, params => this.vPositionRelative(params));\n this._parser.registerCsiHandler({ final: 'f' }, params => this.hVPosition(params));\n this._parser.registerCsiHandler({ final: 'g' }, params => this.tabClear(params));\n this._parser.registerCsiHandler({ final: 'h' }, params => this.setMode(params));\n this._parser.registerCsiHandler({ prefix: '?', final: 'h' }, params => this.setModePrivate(params));\n this._parser.registerCsiHandler({ final: 'l' }, params => this.resetMode(params));\n this._parser.registerCsiHandler({ prefix: '?', final: 'l' }, params => this.resetModePrivate(params));\n this._parser.registerCsiHandler({ final: 'm' }, params => this.charAttributes(params));\n this._parser.registerCsiHandler({ final: 'n' }, params => this.deviceStatus(params));\n this._parser.registerCsiHandler({ prefix: '?', final: 'n' }, params => this.deviceStatusPrivate(params));\n this._parser.registerCsiHandler({ intermediates: '!', final: 'p' }, params => this.softReset(params));\n this._parser.registerCsiHandler({ intermediates: ' ', final: 'q' }, params => this.setCursorStyle(params));\n this._parser.registerCsiHandler({ final: 'r' }, params => this.setScrollRegion(params));\n this._parser.registerCsiHandler({ final: 's' }, params => this.saveCursor(params));\n this._parser.registerCsiHandler({ final: 't' }, params => this.windowOptions(params));\n this._parser.registerCsiHandler({ final: 'u' }, params => this.restoreCursor(params));\n this._parser.registerCsiHandler({ intermediates: '\\'', final: '}' }, params => this.insertColumns(params));\n this._parser.registerCsiHandler({ intermediates: '\\'', final: '~' }, params => this.deleteColumns(params));\n this._parser.registerCsiHandler({ intermediates: '\"', final: 'q' }, params => this.selectProtected(params));\n this._parser.registerCsiHandler({ intermediates: '$', final: 'p' }, params => this.requestMode(params, true));\n this._parser.registerCsiHandler({ prefix: '?', intermediates: '$', final: 'p' }, params => this.requestMode(params, false));\n\n /**\n * execute handler\n */\n this._parser.setExecuteHandler(C0.BEL, () => this.bell());\n this._parser.setExecuteHandler(C0.LF, () => this.lineFeed());\n this._parser.setExecuteHandler(C0.VT, () => this.lineFeed());\n this._parser.setExecuteHandler(C0.FF, () => this.lineFeed());\n this._parser.setExecuteHandler(C0.CR, () => this.carriageReturn());\n this._parser.setExecuteHandler(C0.BS, () => this.backspace());\n this._parser.setExecuteHandler(C0.HT, () => this.tab());\n this._parser.setExecuteHandler(C0.SO, () => this.shiftOut());\n this._parser.setExecuteHandler(C0.SI, () => this.shiftIn());\n // FIXME: What do to with missing? Old code just added those to print.\n\n this._parser.setExecuteHandler(C1.IND, () => this.index());\n this._parser.setExecuteHandler(C1.NEL, () => this.nextLine());\n this._parser.setExecuteHandler(C1.HTS, () => this.tabSet());\n\n /**\n * OSC handler\n */\n // 0 - icon name + title\n this._parser.registerOscHandler(0, new OscHandler(data => { this.setTitle(data); this.setIconName(data); return true; }));\n // 1 - icon name\n this._parser.registerOscHandler(1, new OscHandler(data => this.setIconName(data)));\n // 2 - title\n this._parser.registerOscHandler(2, new OscHandler(data => this.setTitle(data)));\n // 3 - set property X in the form \"prop=value\"\n // 4 - Change Color Number\n this._parser.registerOscHandler(4, new OscHandler(data => this.setOrReportIndexedColor(data)));\n // 5 - Change Special Color Number\n // 6 - Enable/disable Special Color Number c\n // 7 - current directory? (not in xterm spec, see https://gitlab.com/gnachman/iterm2/issues/3939)\n // 8 - create hyperlink (not in xterm spec, see https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda)\n this._parser.registerOscHandler(8, new OscHandler(data => this.setHyperlink(data)));\n // 10 - Change VT100 text foreground color to Pt.\n this._parser.registerOscHandler(10, new OscHandler(data => this.setOrReportFgColor(data)));\n // 11 - Change VT100 text background color to Pt.\n this._parser.registerOscHandler(11, new OscHandler(data => this.setOrReportBgColor(data)));\n // 12 - Change text cursor color to Pt.\n this._parser.registerOscHandler(12, new OscHandler(data => this.setOrReportCursorColor(data)));\n // 13 - Change mouse foreground color to Pt.\n // 14 - Change mouse background color to Pt.\n // 15 - Change Tektronix foreground color to Pt.\n // 16 - Change Tektronix background color to Pt.\n // 17 - Change highlight background color to Pt.\n // 18 - Change Tektronix cursor color to Pt.\n // 19 - Change highlight foreground color to Pt.\n // 46 - Change Log File to Pt.\n // 50 - Set Font to Pt.\n // 51 - reserved for Emacs shell.\n // 52 - Manipulate Selection Data.\n // 104 ; c - Reset Color Number c.\n this._parser.registerOscHandler(104, new OscHandler(data => this.restoreIndexedColor(data)));\n // 105 ; c - Reset Special Color Number c.\n // 106 ; c; f - Enable/disable Special Color Number c.\n // 110 - Reset VT100 text foreground color.\n this._parser.registerOscHandler(110, new OscHandler(data => this.restoreFgColor(data)));\n // 111 - Reset VT100 text background color.\n this._parser.registerOscHandler(111, new OscHandler(data => this.restoreBgColor(data)));\n // 112 - Reset text cursor color.\n this._parser.registerOscHandler(112, new OscHandler(data => this.restoreCursorColor(data)));\n // 113 - Reset mouse foreground color.\n // 114 - Reset mouse background color.\n // 115 - Reset Tektronix foreground color.\n // 116 - Reset Tektronix background color.\n // 117 - Reset highlight color.\n // 118 - Reset Tektronix cursor color.\n // 119 - Reset highlight foreground color.\n\n /**\n * ESC handlers\n */\n this._parser.registerEscHandler({ final: '7' }, () => this.saveCursor());\n this._parser.registerEscHandler({ final: '8' }, () => this.restoreCursor());\n this._parser.registerEscHandler({ final: 'D' }, () => this.index());\n this._parser.registerEscHandler({ final: 'E' }, () => this.nextLine());\n this._parser.registerEscHandler({ final: 'H' }, () => this.tabSet());\n this._parser.registerEscHandler({ final: 'M' }, () => this.reverseIndex());\n this._parser.registerEscHandler({ final: '=' }, () => this.keypadApplicationMode());\n this._parser.registerEscHandler({ final: '>' }, () => this.keypadNumericMode());\n this._parser.registerEscHandler({ final: 'c' }, () => this.fullReset());\n this._parser.registerEscHandler({ final: 'n' }, () => this.setgLevel(2));\n this._parser.registerEscHandler({ final: 'o' }, () => this.setgLevel(3));\n this._parser.registerEscHandler({ final: '|' }, () => this.setgLevel(3));\n this._parser.registerEscHandler({ final: '}' }, () => this.setgLevel(2));\n this._parser.registerEscHandler({ final: '~' }, () => this.setgLevel(1));\n this._parser.registerEscHandler({ intermediates: '%', final: '@' }, () => this.selectDefaultCharset());\n this._parser.registerEscHandler({ intermediates: '%', final: 'G' }, () => this.selectDefaultCharset());\n for (const flag in CHARSETS) {\n this._parser.registerEscHandler({ intermediates: '(', final: flag }, () => this.selectCharset('(' + flag));\n this._parser.registerEscHandler({ intermediates: ')', final: flag }, () => this.selectCharset(')' + flag));\n this._parser.registerEscHandler({ intermediates: '*', final: flag }, () => this.selectCharset('*' + flag));\n this._parser.registerEscHandler({ intermediates: '+', final: flag }, () => this.selectCharset('+' + flag));\n this._parser.registerEscHandler({ intermediates: '-', final: flag }, () => this.selectCharset('-' + flag));\n this._parser.registerEscHandler({ intermediates: '.', final: flag }, () => this.selectCharset('.' + flag));\n this._parser.registerEscHandler({ intermediates: '/', final: flag }, () => this.selectCharset('/' + flag)); // TODO: supported?\n }\n this._parser.registerEscHandler({ intermediates: '#', final: '8' }, () => this.screenAlignmentPattern());\n\n /**\n * error handler\n */\n this._parser.setErrorHandler((state: IParsingState) => {\n this._logService.error('Parsing error: ', state);\n return state;\n });\n\n /**\n * DCS handler\n */\n this._parser.registerDcsHandler({ intermediates: '$', final: 'q' }, new DcsHandler((data, params) => this.requestStatusString(data, params)));\n }\n\n public dispose(): void {\n super.dispose();\n }\n\n /**\n * Async parse support.\n */\n private _preserveStack(cursorStartX: number, cursorStartY: number, decodedLength: number, position: number): void {\n this._parseStack.paused = true;\n this._parseStack.cursorStartX = cursorStartX;\n this._parseStack.cursorStartY = cursorStartY;\n this._parseStack.decodedLength = decodedLength;\n this._parseStack.position = position;\n }\n\n private _logSlowResolvingAsync(p: Promise): void {\n // log a limited warning about an async handler taking too long\n if (this._logService.logLevel <= LogLevelEnum.WARN) {\n Promise.race([p, new Promise((res, rej) => setTimeout(() => rej('#SLOW_TIMEOUT'), SLOW_ASYNC_LIMIT))])\n .catch(err => {\n if (err !== '#SLOW_TIMEOUT') {\n throw err;\n }\n console.warn(`async parser handler taking longer than ${SLOW_ASYNC_LIMIT} ms`);\n });\n }\n }\n\n /**\n * Parse call with async handler support.\n *\n * Whether the stack state got preserved for the next call, is indicated by the return value:\n * - undefined (void):\n * all handlers were sync, no stack save, continue normally with next chunk\n * - Promise\\:\n * execution stopped at async handler, stack saved, continue with\n * same chunk and the promise resolve value as `promiseResult` until the method returns `undefined`\n *\n * Note: This method should only be called by `Terminal.write` to ensure correct execution order and\n * proper continuation of async parser handlers.\n */\n public parse(data: string | Uint8Array, promiseResult?: boolean): void | Promise {\n let result: void | Promise;\n let cursorStartX = this._activeBuffer.x;\n let cursorStartY = this._activeBuffer.y;\n let start = 0;\n const wasPaused = this._parseStack.paused;\n\n if (wasPaused) {\n // assumption: _parseBuffer never mutates between async calls\n if (result = this._parser.parse(this._parseBuffer, this._parseStack.decodedLength, promiseResult)) {\n this._logSlowResolvingAsync(result);\n return result;\n }\n cursorStartX = this._parseStack.cursorStartX;\n cursorStartY = this._parseStack.cursorStartY;\n this._parseStack.paused = false;\n if (data.length > MAX_PARSEBUFFER_LENGTH) {\n start = this._parseStack.position + MAX_PARSEBUFFER_LENGTH;\n }\n }\n\n // Log debug data, the log level gate is to prevent extra work in this hot path\n if (this._logService.logLevel <= LogLevelEnum.DEBUG) {\n this._logService.debug(`parsing data${typeof data === 'string' ? ` \"${data}\"` : ` \"${Array.prototype.map.call(data, e => String.fromCharCode(e)).join('')}\"`}`, typeof data === 'string'\n ? data.split('').map(e => e.charCodeAt(0))\n : data\n );\n }\n\n // resize input buffer if needed\n if (this._parseBuffer.length < data.length) {\n if (this._parseBuffer.length < MAX_PARSEBUFFER_LENGTH) {\n this._parseBuffer = new Uint32Array(Math.min(data.length, MAX_PARSEBUFFER_LENGTH));\n }\n }\n\n // Clear the dirty row service so we know which lines changed as a result of parsing\n // Important: do not clear between async calls, otherwise we lost pending update information.\n if (!wasPaused) {\n this._dirtyRowService.clearRange();\n }\n\n // process big data in smaller chunks\n if (data.length > MAX_PARSEBUFFER_LENGTH) {\n for (let i = start; i < data.length; i += MAX_PARSEBUFFER_LENGTH) {\n const end = i + MAX_PARSEBUFFER_LENGTH < data.length ? i + MAX_PARSEBUFFER_LENGTH : data.length;\n const len = (typeof data === 'string')\n ? this._stringDecoder.decode(data.substring(i, end), this._parseBuffer)\n : this._utf8Decoder.decode(data.subarray(i, end), this._parseBuffer);\n if (result = this._parser.parse(this._parseBuffer, len)) {\n this._preserveStack(cursorStartX, cursorStartY, len, i);\n this._logSlowResolvingAsync(result);\n return result;\n }\n }\n } else {\n if (!wasPaused) {\n const len = (typeof data === 'string')\n ? this._stringDecoder.decode(data, this._parseBuffer)\n : this._utf8Decoder.decode(data, this._parseBuffer);\n if (result = this._parser.parse(this._parseBuffer, len)) {\n this._preserveStack(cursorStartX, cursorStartY, len, 0);\n this._logSlowResolvingAsync(result);\n return result;\n }\n }\n }\n\n if (this._activeBuffer.x !== cursorStartX || this._activeBuffer.y !== cursorStartY) {\n this._onCursorMove.fire();\n }\n\n // Refresh any dirty rows accumulated as part of parsing\n this._onRequestRefreshRows.fire(this._dirtyRowService.start, this._dirtyRowService.end);\n }\n\n public print(data: Uint32Array, start: number, end: number): void {\n let code: number;\n let chWidth: number;\n const charset = this._charsetService.charset;\n const screenReaderMode = this._optionsService.rawOptions.screenReaderMode;\n const cols = this._bufferService.cols;\n const wraparoundMode = this._coreService.decPrivateModes.wraparound;\n const insertMode = this._coreService.modes.insertMode;\n const curAttr = this._curAttrData;\n let bufferRow = this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y)!;\n\n this._dirtyRowService.markDirty(this._activeBuffer.y);\n\n // handle wide chars: reset start_cell-1 if we would overwrite the second cell of a wide char\n if (this._activeBuffer.x && end - start > 0 && bufferRow.getWidth(this._activeBuffer.x - 1) === 2) {\n bufferRow.setCellFromCodePoint(this._activeBuffer.x - 1, 0, 1, curAttr.fg, curAttr.bg, curAttr.extended);\n }\n\n for (let pos = start; pos < end; ++pos) {\n code = data[pos];\n\n // calculate print space\n // expensive call, therefore we save width in line buffer\n chWidth = this._unicodeService.wcwidth(code);\n\n // get charset replacement character\n // charset is only defined for ASCII, therefore we only\n // search for an replacement char if code < 127\n if (code < 127 && charset) {\n const ch = charset[String.fromCharCode(code)];\n if (ch) {\n code = ch.charCodeAt(0);\n }\n }\n\n if (screenReaderMode) {\n this._onA11yChar.fire(stringFromCodePoint(code));\n }\n if (this._currentLinkId !== undefined) {\n this._oscLinkService.addLineToLink(this._currentLinkId, this._activeBuffer.ybase + this._activeBuffer.y);\n }\n\n // insert combining char at last cursor position\n // this._activeBuffer.x should never be 0 for a combining char\n // since they always follow a cell consuming char\n // therefore we can test for this._activeBuffer.x to avoid overflow left\n if (!chWidth && this._activeBuffer.x) {\n if (!bufferRow.getWidth(this._activeBuffer.x - 1)) {\n // found empty cell after fullwidth, need to go 2 cells back\n // it is save to step 2 cells back here\n // since an empty cell is only set by fullwidth chars\n bufferRow.addCodepointToCell(this._activeBuffer.x - 2, code);\n } else {\n bufferRow.addCodepointToCell(this._activeBuffer.x - 1, code);\n }\n continue;\n }\n\n // goto next line if ch would overflow\n // NOTE: To avoid costly width checks here,\n // the terminal does not allow a cols < 2.\n if (this._activeBuffer.x + chWidth - 1 >= cols) {\n // autowrap - DECAWM\n // automatically wraps to the beginning of the next line\n if (wraparoundMode) {\n // clear left over cells to the right\n while (this._activeBuffer.x < cols) {\n bufferRow.setCellFromCodePoint(this._activeBuffer.x++, 0, 1, curAttr.fg, curAttr.bg, curAttr.extended);\n }\n this._activeBuffer.x = 0;\n this._activeBuffer.y++;\n if (this._activeBuffer.y === this._activeBuffer.scrollBottom + 1) {\n this._activeBuffer.y--;\n this._bufferService.scroll(this._eraseAttrData(), true);\n } else {\n if (this._activeBuffer.y >= this._bufferService.rows) {\n this._activeBuffer.y = this._bufferService.rows - 1;\n }\n // The line already exists (eg. the initial viewport), mark it as a\n // wrapped line\n this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y)!.isWrapped = true;\n }\n // row changed, get it again\n bufferRow = this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y)!;\n } else {\n this._activeBuffer.x = cols - 1;\n if (chWidth === 2) {\n // FIXME: check for xterm behavior\n // What to do here? We got a wide char that does not fit into last cell\n continue;\n }\n }\n }\n\n // insert mode: move characters to right\n if (insertMode) {\n // right shift cells according to the width\n bufferRow.insertCells(this._activeBuffer.x, chWidth, this._activeBuffer.getNullCell(curAttr), curAttr);\n // test last cell - since the last cell has only room for\n // a halfwidth char any fullwidth shifted there is lost\n // and will be set to empty cell\n if (bufferRow.getWidth(cols - 1) === 2) {\n bufferRow.setCellFromCodePoint(cols - 1, NULL_CELL_CODE, NULL_CELL_WIDTH, curAttr.fg, curAttr.bg, curAttr.extended);\n }\n }\n\n // write current char to buffer and advance cursor\n bufferRow.setCellFromCodePoint(this._activeBuffer.x++, code, chWidth, curAttr.fg, curAttr.bg, curAttr.extended);\n\n // fullwidth char - also set next cell to placeholder stub and advance cursor\n // for graphemes bigger than fullwidth we can simply loop to zero\n // we already made sure above, that this._activeBuffer.x + chWidth will not overflow right\n if (chWidth > 0) {\n while (--chWidth) {\n // other than a regular empty cell a cell following a wide char has no width\n bufferRow.setCellFromCodePoint(this._activeBuffer.x++, 0, 0, curAttr.fg, curAttr.bg, curAttr.extended);\n }\n }\n }\n // store last char in Parser.precedingCodepoint for REP to work correctly\n // This needs to check whether:\n // - fullwidth + surrogates: reset\n // - combining: only base char gets carried on (bug in xterm?)\n if (end - start > 0) {\n bufferRow.loadCell(this._activeBuffer.x - 1, this._workCell);\n if (this._workCell.getWidth() === 2 || this._workCell.getCode() > 0xFFFF) {\n this._parser.precedingCodepoint = 0;\n } else if (this._workCell.isCombined()) {\n this._parser.precedingCodepoint = this._workCell.getChars().charCodeAt(0);\n } else {\n this._parser.precedingCodepoint = this._workCell.content;\n }\n }\n\n // handle wide chars: reset cell to the right if it is second cell of a wide char\n if (this._activeBuffer.x < cols && end - start > 0 && bufferRow.getWidth(this._activeBuffer.x) === 0 && !bufferRow.hasContent(this._activeBuffer.x)) {\n bufferRow.setCellFromCodePoint(this._activeBuffer.x, 0, 1, curAttr.fg, curAttr.bg, curAttr.extended);\n }\n\n this._dirtyRowService.markDirty(this._activeBuffer.y);\n }\n\n /**\n * Forward registerCsiHandler from parser.\n */\n public registerCsiHandler(id: IFunctionIdentifier, callback: (params: IParams) => boolean | Promise): IDisposable {\n if (id.final === 't' && !id.prefix && !id.intermediates) {\n // security: always check whether window option is allowed\n return this._parser.registerCsiHandler(id, params => {\n if (!paramToWindowOption(params.params[0], this._optionsService.rawOptions.windowOptions)) {\n return true;\n }\n return callback(params);\n });\n }\n return this._parser.registerCsiHandler(id, callback);\n }\n\n /**\n * Forward registerDcsHandler from parser.\n */\n public registerDcsHandler(id: IFunctionIdentifier, callback: (data: string, param: IParams) => boolean | Promise): IDisposable {\n return this._parser.registerDcsHandler(id, new DcsHandler(callback));\n }\n\n /**\n * Forward registerEscHandler from parser.\n */\n public registerEscHandler(id: IFunctionIdentifier, callback: () => boolean | Promise): IDisposable {\n return this._parser.registerEscHandler(id, callback);\n }\n\n /**\n * Forward registerOscHandler from parser.\n */\n public registerOscHandler(ident: number, callback: (data: string) => boolean | Promise): IDisposable {\n return this._parser.registerOscHandler(ident, new OscHandler(callback));\n }\n\n /**\n * BEL\n * Bell (Ctrl-G).\n *\n * @vt: #Y C0 BEL \"Bell\" \"\\a, \\x07\" \"Ring the bell.\"\n * The behavior of the bell is further customizable with `ITerminalOptions.bellStyle`\n * and `ITerminalOptions.bellSound`.\n */\n public bell(): boolean {\n this._onRequestBell.fire();\n return true;\n }\n\n /**\n * LF\n * Line Feed or New Line (NL). (LF is Ctrl-J).\n *\n * @vt: #Y C0 LF \"Line Feed\" \"\\n, \\x0A\" \"Move the cursor one row down, scrolling if needed.\"\n * Scrolling is restricted to scroll margins and will only happen on the bottom line.\n *\n * @vt: #Y C0 VT \"Vertical Tabulation\" \"\\v, \\x0B\" \"Treated as LF.\"\n * @vt: #Y C0 FF \"Form Feed\" \"\\f, \\x0C\" \"Treated as LF.\"\n */\n public lineFeed(): boolean {\n this._dirtyRowService.markDirty(this._activeBuffer.y);\n if (this._optionsService.rawOptions.convertEol) {\n this._activeBuffer.x = 0;\n }\n this._activeBuffer.y++;\n if (this._activeBuffer.y === this._activeBuffer.scrollBottom + 1) {\n this._activeBuffer.y--;\n this._bufferService.scroll(this._eraseAttrData());\n } else if (this._activeBuffer.y >= this._bufferService.rows) {\n this._activeBuffer.y = this._bufferService.rows - 1;\n }\n // If the end of the line is hit, prevent this action from wrapping around to the next line.\n if (this._activeBuffer.x >= this._bufferService.cols) {\n this._activeBuffer.x--;\n }\n this._dirtyRowService.markDirty(this._activeBuffer.y);\n\n this._onLineFeed.fire();\n return true;\n }\n\n /**\n * CR\n * Carriage Return (Ctrl-M).\n *\n * @vt: #Y C0 CR \"Carriage Return\" \"\\r, \\x0D\" \"Move the cursor to the beginning of the row.\"\n */\n public carriageReturn(): boolean {\n this._activeBuffer.x = 0;\n return true;\n }\n\n /**\n * BS\n * Backspace (Ctrl-H).\n *\n * @vt: #Y C0 BS \"Backspace\" \"\\b, \\x08\" \"Move the cursor one position to the left.\"\n * By default it is not possible to move the cursor past the leftmost position.\n * If `reverse wrap-around` (`CSI ? 45 h`) is set, a previous soft line wrap (DECAWM)\n * can be undone with BS within the scroll margins. In that case the cursor will wrap back\n * to the end of the previous row. Note that it is not possible to peek back into the scrollbuffer\n * with the cursor, thus at the home position (top-leftmost cell) this has no effect.\n */\n public backspace(): boolean {\n // reverse wrap-around is disabled\n if (!this._coreService.decPrivateModes.reverseWraparound) {\n this._restrictCursor();\n if (this._activeBuffer.x > 0) {\n this._activeBuffer.x--;\n }\n return true;\n }\n\n // reverse wrap-around is enabled\n // other than for normal operation mode, reverse wrap-around allows the cursor\n // to be at x=cols to be able to address the last cell of a row by BS\n this._restrictCursor(this._bufferService.cols);\n\n if (this._activeBuffer.x > 0) {\n this._activeBuffer.x--;\n } else {\n /**\n * reverse wrap-around handling:\n * Our implementation deviates from xterm on purpose. Details:\n * - only previous soft NLs can be reversed (isWrapped=true)\n * - only works within scrollborders (top/bottom, left/right not yet supported)\n * - cannot peek into scrollbuffer\n * - any cursor movement sequence keeps working as expected\n */\n if (this._activeBuffer.x === 0\n && this._activeBuffer.y > this._activeBuffer.scrollTop\n && this._activeBuffer.y <= this._activeBuffer.scrollBottom\n && this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y)?.isWrapped) {\n this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y)!.isWrapped = false;\n this._activeBuffer.y--;\n this._activeBuffer.x = this._bufferService.cols - 1;\n // find last taken cell - last cell can have 3 different states:\n // - hasContent(true) + hasWidth(1): narrow char - we are done\n // - hasWidth(0): second part of wide char - we are done\n // - hasContent(false) + hasWidth(1): empty cell due to early wrapping wide char, go one cell further back\n const line = this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y)!;\n if (line.hasWidth(this._activeBuffer.x) && !line.hasContent(this._activeBuffer.x)) {\n this._activeBuffer.x--;\n // We do this only once, since width=1 + hasContent=false currently happens only once before\n // early wrapping of a wide char.\n // This needs to be fixed once we support graphemes taking more than 2 cells.\n }\n }\n }\n this._restrictCursor();\n return true;\n }\n\n /**\n * TAB\n * Horizontal Tab (HT) (Ctrl-I).\n *\n * @vt: #Y C0 HT \"Horizontal Tabulation\" \"\\t, \\x09\" \"Move the cursor to the next character tab stop.\"\n */\n public tab(): boolean {\n if (this._activeBuffer.x >= this._bufferService.cols) {\n return true;\n }\n const originalX = this._activeBuffer.x;\n this._activeBuffer.x = this._activeBuffer.nextStop();\n if (this._optionsService.rawOptions.screenReaderMode) {\n this._onA11yTab.fire(this._activeBuffer.x - originalX);\n }\n return true;\n }\n\n /**\n * SO\n * Shift Out (Ctrl-N) -> Switch to Alternate Character Set. This invokes the\n * G1 character set.\n *\n * @vt: #P[Only limited ISO-2022 charset support.] C0 SO \"Shift Out\" \"\\x0E\" \"Switch to an alternative character set.\"\n */\n public shiftOut(): boolean {\n this._charsetService.setgLevel(1);\n return true;\n }\n\n /**\n * SI\n * Shift In (Ctrl-O) -> Switch to Standard Character Set. This invokes the G0\n * character set (the default).\n *\n * @vt: #Y C0 SI \"Shift In\" \"\\x0F\" \"Return to regular character set after Shift Out.\"\n */\n public shiftIn(): boolean {\n this._charsetService.setgLevel(0);\n return true;\n }\n\n /**\n * Restrict cursor to viewport size / scroll margin (origin mode).\n */\n private _restrictCursor(maxCol: number = this._bufferService.cols - 1): void {\n this._activeBuffer.x = Math.min(maxCol, Math.max(0, this._activeBuffer.x));\n this._activeBuffer.y = this._coreService.decPrivateModes.origin\n ? Math.min(this._activeBuffer.scrollBottom, Math.max(this._activeBuffer.scrollTop, this._activeBuffer.y))\n : Math.min(this._bufferService.rows - 1, Math.max(0, this._activeBuffer.y));\n this._dirtyRowService.markDirty(this._activeBuffer.y);\n }\n\n /**\n * Set absolute cursor position.\n */\n private _setCursor(x: number, y: number): void {\n this._dirtyRowService.markDirty(this._activeBuffer.y);\n if (this._coreService.decPrivateModes.origin) {\n this._activeBuffer.x = x;\n this._activeBuffer.y = this._activeBuffer.scrollTop + y;\n } else {\n this._activeBuffer.x = x;\n this._activeBuffer.y = y;\n }\n this._restrictCursor();\n this._dirtyRowService.markDirty(this._activeBuffer.y);\n }\n\n /**\n * Set relative cursor position.\n */\n private _moveCursor(x: number, y: number): void {\n // for relative changes we have to make sure we are within 0 .. cols/rows - 1\n // before calculating the new position\n this._restrictCursor();\n this._setCursor(this._activeBuffer.x + x, this._activeBuffer.y + y);\n }\n\n /**\n * CSI Ps A\n * Cursor Up Ps Times (default = 1) (CUU).\n *\n * @vt: #Y CSI CUU \"Cursor Up\" \"CSI Ps A\" \"Move cursor `Ps` times up (default=1).\"\n * If the cursor would pass the top scroll margin, it will stop there.\n */\n public cursorUp(params: IParams): boolean {\n // stop at scrollTop\n const diffToTop = this._activeBuffer.y - this._activeBuffer.scrollTop;\n if (diffToTop >= 0) {\n this._moveCursor(0, -Math.min(diffToTop, params.params[0] || 1));\n } else {\n this._moveCursor(0, -(params.params[0] || 1));\n }\n return true;\n }\n\n /**\n * CSI Ps B\n * Cursor Down Ps Times (default = 1) (CUD).\n *\n * @vt: #Y CSI CUD \"Cursor Down\" \"CSI Ps B\" \"Move cursor `Ps` times down (default=1).\"\n * If the cursor would pass the bottom scroll margin, it will stop there.\n */\n public cursorDown(params: IParams): boolean {\n // stop at scrollBottom\n const diffToBottom = this._activeBuffer.scrollBottom - this._activeBuffer.y;\n if (diffToBottom >= 0) {\n this._moveCursor(0, Math.min(diffToBottom, params.params[0] || 1));\n } else {\n this._moveCursor(0, params.params[0] || 1);\n }\n return true;\n }\n\n /**\n * CSI Ps C\n * Cursor Forward Ps Times (default = 1) (CUF).\n *\n * @vt: #Y CSI CUF \"Cursor Forward\" \"CSI Ps C\" \"Move cursor `Ps` times forward (default=1).\"\n */\n public cursorForward(params: IParams): boolean {\n this._moveCursor(params.params[0] || 1, 0);\n return true;\n }\n\n /**\n * CSI Ps D\n * Cursor Backward Ps Times (default = 1) (CUB).\n *\n * @vt: #Y CSI CUB \"Cursor Backward\" \"CSI Ps D\" \"Move cursor `Ps` times backward (default=1).\"\n */\n public cursorBackward(params: IParams): boolean {\n this._moveCursor(-(params.params[0] || 1), 0);\n return true;\n }\n\n /**\n * CSI Ps E\n * Cursor Next Line Ps Times (default = 1) (CNL).\n * Other than cursorDown (CUD) also set the cursor to first column.\n *\n * @vt: #Y CSI CNL \"Cursor Next Line\" \"CSI Ps E\" \"Move cursor `Ps` times down (default=1) and to the first column.\"\n * Same as CUD, additionally places the cursor at the first column.\n */\n public cursorNextLine(params: IParams): boolean {\n this.cursorDown(params);\n this._activeBuffer.x = 0;\n return true;\n }\n\n /**\n * CSI Ps F\n * Cursor Previous Line Ps Times (default = 1) (CPL).\n * Other than cursorUp (CUU) also set the cursor to first column.\n *\n * @vt: #Y CSI CPL \"Cursor Backward\" \"CSI Ps F\" \"Move cursor `Ps` times up (default=1) and to the first column.\"\n * Same as CUU, additionally places the cursor at the first column.\n */\n public cursorPrecedingLine(params: IParams): boolean {\n this.cursorUp(params);\n this._activeBuffer.x = 0;\n return true;\n }\n\n /**\n * CSI Ps G\n * Cursor Character Absolute [column] (default = [row,1]) (CHA).\n *\n * @vt: #Y CSI CHA \"Cursor Horizontal Absolute\" \"CSI Ps G\" \"Move cursor to `Ps`-th column of the active row (default=1).\"\n */\n public cursorCharAbsolute(params: IParams): boolean {\n this._setCursor((params.params[0] || 1) - 1, this._activeBuffer.y);\n return true;\n }\n\n /**\n * CSI Ps ; Ps H\n * Cursor Position [row;column] (default = [1,1]) (CUP).\n *\n * @vt: #Y CSI CUP \"Cursor Position\" \"CSI Ps ; Ps H\" \"Set cursor to position [`Ps`, `Ps`] (default = [1, 1]).\"\n * If ORIGIN mode is set, places the cursor to the absolute position within the scroll margins.\n * If ORIGIN mode is not set, places the cursor to the absolute position within the viewport.\n * Note that the coordinates are 1-based, thus the top left position starts at `1 ; 1`.\n */\n public cursorPosition(params: IParams): boolean {\n this._setCursor(\n // col\n (params.length >= 2) ? (params.params[1] || 1) - 1 : 0,\n // row\n (params.params[0] || 1) - 1\n );\n return true;\n }\n\n /**\n * CSI Pm ` Character Position Absolute\n * [column] (default = [row,1]) (HPA).\n * Currently same functionality as CHA.\n *\n * @vt: #Y CSI HPA \"Horizontal Position Absolute\" \"CSI Ps ` \" \"Same as CHA.\"\n */\n public charPosAbsolute(params: IParams): boolean {\n this._setCursor((params.params[0] || 1) - 1, this._activeBuffer.y);\n return true;\n }\n\n /**\n * CSI Pm a Character Position Relative\n * [columns] (default = [row,col+1]) (HPR)\n *\n * @vt: #Y CSI HPR \"Horizontal Position Relative\" \"CSI Ps a\" \"Same as CUF.\"\n */\n public hPositionRelative(params: IParams): boolean {\n this._moveCursor(params.params[0] || 1, 0);\n return true;\n }\n\n /**\n * CSI Pm d Vertical Position Absolute (VPA)\n * [row] (default = [1,column])\n *\n * @vt: #Y CSI VPA \"Vertical Position Absolute\" \"CSI Ps d\" \"Move cursor to `Ps`-th row (default=1).\"\n */\n public linePosAbsolute(params: IParams): boolean {\n this._setCursor(this._activeBuffer.x, (params.params[0] || 1) - 1);\n return true;\n }\n\n /**\n * CSI Pm e Vertical Position Relative (VPR)\n * [rows] (default = [row+1,column])\n * reuse CSI Ps B ?\n *\n * @vt: #Y CSI VPR \"Vertical Position Relative\" \"CSI Ps e\" \"Move cursor `Ps` times down (default=1).\"\n */\n public vPositionRelative(params: IParams): boolean {\n this._moveCursor(0, params.params[0] || 1);\n return true;\n }\n\n /**\n * CSI Ps ; Ps f\n * Horizontal and Vertical Position [row;column] (default =\n * [1,1]) (HVP).\n * Same as CUP.\n *\n * @vt: #Y CSI HVP \"Horizontal and Vertical Position\" \"CSI Ps ; Ps f\" \"Same as CUP.\"\n */\n public hVPosition(params: IParams): boolean {\n this.cursorPosition(params);\n return true;\n }\n\n /**\n * CSI Ps g Tab Clear (TBC).\n * Ps = 0 -> Clear Current Column (default).\n * Ps = 3 -> Clear All.\n * Potentially:\n * Ps = 2 -> Clear Stops on Line.\n * http://vt100.net/annarbor/aaa-ug/section6.html\n *\n * @vt: #Y CSI TBC \"Tab Clear\" \"CSI Ps g\" \"Clear tab stops at current position (0) or all (3) (default=0).\"\n * Clearing tabstops off the active row (Ps = 2, VT100) is currently not supported.\n */\n public tabClear(params: IParams): boolean {\n const param = params.params[0];\n if (param === 0) {\n delete this._activeBuffer.tabs[this._activeBuffer.x];\n } else if (param === 3) {\n this._activeBuffer.tabs = {};\n }\n return true;\n }\n\n /**\n * CSI Ps I\n * Cursor Forward Tabulation Ps tab stops (default = 1) (CHT).\n *\n * @vt: #Y CSI CHT \"Cursor Horizontal Tabulation\" \"CSI Ps I\" \"Move cursor `Ps` times tabs forward (default=1).\"\n */\n public cursorForwardTab(params: IParams): boolean {\n if (this._activeBuffer.x >= this._bufferService.cols) {\n return true;\n }\n let param = params.params[0] || 1;\n while (param--) {\n this._activeBuffer.x = this._activeBuffer.nextStop();\n }\n return true;\n }\n\n /**\n * CSI Ps Z Cursor Backward Tabulation Ps tab stops (default = 1) (CBT).\n *\n * @vt: #Y CSI CBT \"Cursor Backward Tabulation\" \"CSI Ps Z\" \"Move cursor `Ps` tabs backward (default=1).\"\n */\n public cursorBackwardTab(params: IParams): boolean {\n if (this._activeBuffer.x >= this._bufferService.cols) {\n return true;\n }\n let param = params.params[0] || 1;\n\n while (param--) {\n this._activeBuffer.x = this._activeBuffer.prevStop();\n }\n return true;\n }\n\n /**\n * CSI Ps \" q Select Character Protection Attribute (DECSCA).\n *\n * @vt: #Y CSI DECSCA \"Select Character Protection Attribute\" \"CSI Ps \" q\" \"Whether DECSED and DECSEL can erase (0=default, 2) or not (1).\"\n */\n public selectProtected(params: IParams): boolean {\n const p = params.params[0];\n if (p === 1) this._curAttrData.bg |= BgFlags.PROTECTED;\n if (p === 2 || p === 0) this._curAttrData.bg &= ~BgFlags.PROTECTED;\n return true;\n }\n\n\n /**\n * Helper method to erase cells in a terminal row.\n * The cell gets replaced with the eraseChar of the terminal.\n * @param y row index\n * @param start first cell index to be erased\n * @param end end - 1 is last erased cell\n * @param cleanWrap clear the isWrapped flag\n */\n private _eraseInBufferLine(y: number, start: number, end: number, clearWrap: boolean = false, respectProtect: boolean = false): void {\n const line = this._activeBuffer.lines.get(this._activeBuffer.ybase + y)!;\n line.replaceCells(\n start,\n end,\n this._activeBuffer.getNullCell(this._eraseAttrData()),\n this._eraseAttrData(),\n respectProtect\n );\n if (clearWrap) {\n line.isWrapped = false;\n }\n }\n\n /**\n * Helper method to reset cells in a terminal row.\n * The cell gets replaced with the eraseChar of the terminal and the isWrapped property is set to false.\n * @param y row index\n */\n private _resetBufferLine(y: number, respectProtect: boolean = false): void {\n const line = this._activeBuffer.lines.get(this._activeBuffer.ybase + y)!;\n line.fill(this._activeBuffer.getNullCell(this._eraseAttrData()), respectProtect);\n this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase + y);\n line.isWrapped = false;\n }\n\n /**\n * CSI Ps J Erase in Display (ED).\n * Ps = 0 -> Erase Below (default).\n * Ps = 1 -> Erase Above.\n * Ps = 2 -> Erase All.\n * Ps = 3 -> Erase Saved Lines (xterm).\n * CSI ? Ps J\n * Erase in Display (DECSED).\n * Ps = 0 -> Selective Erase Below (default).\n * Ps = 1 -> Selective Erase Above.\n * Ps = 2 -> Selective Erase All.\n *\n * @vt: #Y CSI ED \"Erase In Display\" \"CSI Ps J\" \"Erase various parts of the viewport.\"\n * Supported param values:\n *\n * | Ps | Effect |\n * | -- | ------------------------------------------------------------ |\n * | 0 | Erase from the cursor through the end of the viewport. |\n * | 1 | Erase from the beginning of the viewport through the cursor. |\n * | 2 | Erase complete viewport. |\n * | 3 | Erase scrollback. |\n *\n * @vt: #Y CSI DECSED \"Selective Erase In Display\" \"CSI ? Ps J\" \"Same as ED with respecting protection flag.\"\n */\n public eraseInDisplay(params: IParams, respectProtect: boolean = false): boolean {\n this._restrictCursor(this._bufferService.cols);\n let j;\n switch (params.params[0]) {\n case 0:\n j = this._activeBuffer.y;\n this._dirtyRowService.markDirty(j);\n this._eraseInBufferLine(j++, this._activeBuffer.x, this._bufferService.cols, this._activeBuffer.x === 0, respectProtect);\n for (; j < this._bufferService.rows; j++) {\n this._resetBufferLine(j, respectProtect);\n }\n this._dirtyRowService.markDirty(j);\n break;\n case 1:\n j = this._activeBuffer.y;\n this._dirtyRowService.markDirty(j);\n // Deleted front part of line and everything before. This line will no longer be wrapped.\n this._eraseInBufferLine(j, 0, this._activeBuffer.x + 1, true, respectProtect);\n if (this._activeBuffer.x + 1 >= this._bufferService.cols) {\n // Deleted entire previous line. This next line can no longer be wrapped.\n this._activeBuffer.lines.get(j + 1)!.isWrapped = false;\n }\n while (j--) {\n this._resetBufferLine(j, respectProtect);\n }\n this._dirtyRowService.markDirty(0);\n break;\n case 2:\n j = this._bufferService.rows;\n this._dirtyRowService.markDirty(j - 1);\n while (j--) {\n this._resetBufferLine(j, respectProtect);\n }\n this._dirtyRowService.markDirty(0);\n break;\n case 3:\n // Clear scrollback (everything not in viewport)\n const scrollBackSize = this._activeBuffer.lines.length - this._bufferService.rows;\n if (scrollBackSize > 0) {\n this._activeBuffer.lines.trimStart(scrollBackSize);\n this._activeBuffer.ybase = Math.max(this._activeBuffer.ybase - scrollBackSize, 0);\n this._activeBuffer.ydisp = Math.max(this._activeBuffer.ydisp - scrollBackSize, 0);\n // Force a scroll event to refresh viewport\n this._onScroll.fire(0);\n }\n break;\n }\n return true;\n }\n\n /**\n * CSI Ps K Erase in Line (EL).\n * Ps = 0 -> Erase to Right (default).\n * Ps = 1 -> Erase to Left.\n * Ps = 2 -> Erase All.\n * CSI ? Ps K\n * Erase in Line (DECSEL).\n * Ps = 0 -> Selective Erase to Right (default).\n * Ps = 1 -> Selective Erase to Left.\n * Ps = 2 -> Selective Erase All.\n *\n * @vt: #Y CSI EL \"Erase In Line\" \"CSI Ps K\" \"Erase various parts of the active row.\"\n * Supported param values:\n *\n * | Ps | Effect |\n * | -- | -------------------------------------------------------- |\n * | 0 | Erase from the cursor through the end of the row. |\n * | 1 | Erase from the beginning of the line through the cursor. |\n * | 2 | Erase complete line. |\n *\n * @vt: #Y CSI DECSEL \"Selective Erase In Line\" \"CSI ? Ps K\" \"Same as EL with respecting protecting flag.\"\n */\n public eraseInLine(params: IParams, respectProtect: boolean = false): boolean {\n this._restrictCursor(this._bufferService.cols);\n switch (params.params[0]) {\n case 0:\n this._eraseInBufferLine(this._activeBuffer.y, this._activeBuffer.x, this._bufferService.cols, this._activeBuffer.x === 0, respectProtect);\n break;\n case 1:\n this._eraseInBufferLine(this._activeBuffer.y, 0, this._activeBuffer.x + 1, false, respectProtect);\n break;\n case 2:\n this._eraseInBufferLine(this._activeBuffer.y, 0, this._bufferService.cols, true, respectProtect);\n break;\n }\n this._dirtyRowService.markDirty(this._activeBuffer.y);\n return true;\n }\n\n /**\n * CSI Ps L\n * Insert Ps Line(s) (default = 1) (IL).\n *\n * @vt: #Y CSI IL \"Insert Line\" \"CSI Ps L\" \"Insert `Ps` blank lines at active row (default=1).\"\n * For every inserted line at the scroll top one line at the scroll bottom gets removed.\n * The cursor is set to the first column.\n * IL has no effect if the cursor is outside the scroll margins.\n */\n public insertLines(params: IParams): boolean {\n this._restrictCursor();\n let param = params.params[0] || 1;\n\n if (this._activeBuffer.y > this._activeBuffer.scrollBottom || this._activeBuffer.y < this._activeBuffer.scrollTop) {\n return true;\n }\n\n const row: number = this._activeBuffer.ybase + this._activeBuffer.y;\n\n const scrollBottomRowsOffset = this._bufferService.rows - 1 - this._activeBuffer.scrollBottom;\n const scrollBottomAbsolute = this._bufferService.rows - 1 + this._activeBuffer.ybase - scrollBottomRowsOffset + 1;\n while (param--) {\n // test: echo -e '\\e[44m\\e[1L\\e[0m'\n // blankLine(true) - xterm/linux behavior\n this._activeBuffer.lines.splice(scrollBottomAbsolute - 1, 1);\n this._activeBuffer.lines.splice(row, 0, this._activeBuffer.getBlankLine(this._eraseAttrData()));\n }\n\n this._dirtyRowService.markRangeDirty(this._activeBuffer.y, this._activeBuffer.scrollBottom);\n this._activeBuffer.x = 0; // see https://vt100.net/docs/vt220-rm/chapter4.html - vt220 only?\n return true;\n }\n\n /**\n * CSI Ps M\n * Delete Ps Line(s) (default = 1) (DL).\n *\n * @vt: #Y CSI DL \"Delete Line\" \"CSI Ps M\" \"Delete `Ps` lines at active row (default=1).\"\n * For every deleted line at the scroll top one blank line at the scroll bottom gets appended.\n * The cursor is set to the first column.\n * DL has no effect if the cursor is outside the scroll margins.\n */\n public deleteLines(params: IParams): boolean {\n this._restrictCursor();\n let param = params.params[0] || 1;\n\n if (this._activeBuffer.y > this._activeBuffer.scrollBottom || this._activeBuffer.y < this._activeBuffer.scrollTop) {\n return true;\n }\n\n const row: number = this._activeBuffer.ybase + this._activeBuffer.y;\n\n let j: number;\n j = this._bufferService.rows - 1 - this._activeBuffer.scrollBottom;\n j = this._bufferService.rows - 1 + this._activeBuffer.ybase - j;\n while (param--) {\n // test: echo -e '\\e[44m\\e[1M\\e[0m'\n // blankLine(true) - xterm/linux behavior\n this._activeBuffer.lines.splice(row, 1);\n this._activeBuffer.lines.splice(j, 0, this._activeBuffer.getBlankLine(this._eraseAttrData()));\n }\n\n this._dirtyRowService.markRangeDirty(this._activeBuffer.y, this._activeBuffer.scrollBottom);\n this._activeBuffer.x = 0; // see https://vt100.net/docs/vt220-rm/chapter4.html - vt220 only?\n return true;\n }\n\n /**\n * CSI Ps @\n * Insert Ps (Blank) Character(s) (default = 1) (ICH).\n *\n * @vt: #Y CSI ICH \"Insert Characters\" \"CSI Ps @\" \"Insert `Ps` (blank) characters (default = 1).\"\n * The ICH sequence inserts `Ps` blank characters. The cursor remains at the beginning of the blank characters.\n * Text between the cursor and right margin moves to the right. Characters moved past the right margin are lost.\n *\n *\n * FIXME: check against xterm - should not work outside of scroll margins (see VT520 manual)\n */\n public insertChars(params: IParams): boolean {\n this._restrictCursor();\n const line = this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y);\n if (line) {\n line.insertCells(\n this._activeBuffer.x,\n params.params[0] || 1,\n this._activeBuffer.getNullCell(this._eraseAttrData()),\n this._eraseAttrData()\n );\n this._dirtyRowService.markDirty(this._activeBuffer.y);\n }\n return true;\n }\n\n /**\n * CSI Ps P\n * Delete Ps Character(s) (default = 1) (DCH).\n *\n * @vt: #Y CSI DCH \"Delete Character\" \"CSI Ps P\" \"Delete `Ps` characters (default=1).\"\n * As characters are deleted, the remaining characters between the cursor and right margin move to the left.\n * Character attributes move with the characters. The terminal adds blank characters at the right margin.\n *\n *\n * FIXME: check against xterm - should not work outside of scroll margins (see VT520 manual)\n */\n public deleteChars(params: IParams): boolean {\n this._restrictCursor();\n const line = this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y);\n if (line) {\n line.deleteCells(\n this._activeBuffer.x,\n params.params[0] || 1,\n this._activeBuffer.getNullCell(this._eraseAttrData()),\n this._eraseAttrData()\n );\n this._dirtyRowService.markDirty(this._activeBuffer.y);\n }\n return true;\n }\n\n /**\n * CSI Ps S Scroll up Ps lines (default = 1) (SU).\n *\n * @vt: #Y CSI SU \"Scroll Up\" \"CSI Ps S\" \"Scroll `Ps` lines up (default=1).\"\n *\n *\n * FIXME: scrolled out lines at top = 1 should add to scrollback (xterm)\n */\n public scrollUp(params: IParams): boolean {\n let param = params.params[0] || 1;\n\n while (param--) {\n this._activeBuffer.lines.splice(this._activeBuffer.ybase + this._activeBuffer.scrollTop, 1);\n this._activeBuffer.lines.splice(this._activeBuffer.ybase + this._activeBuffer.scrollBottom, 0, this._activeBuffer.getBlankLine(this._eraseAttrData()));\n }\n this._dirtyRowService.markRangeDirty(this._activeBuffer.scrollTop, this._activeBuffer.scrollBottom);\n return true;\n }\n\n /**\n * CSI Ps T Scroll down Ps lines (default = 1) (SD).\n *\n * @vt: #Y CSI SD \"Scroll Down\" \"CSI Ps T\" \"Scroll `Ps` lines down (default=1).\"\n */\n public scrollDown(params: IParams): boolean {\n let param = params.params[0] || 1;\n\n while (param--) {\n this._activeBuffer.lines.splice(this._activeBuffer.ybase + this._activeBuffer.scrollBottom, 1);\n this._activeBuffer.lines.splice(this._activeBuffer.ybase + this._activeBuffer.scrollTop, 0, this._activeBuffer.getBlankLine(DEFAULT_ATTR_DATA));\n }\n this._dirtyRowService.markRangeDirty(this._activeBuffer.scrollTop, this._activeBuffer.scrollBottom);\n return true;\n }\n\n /**\n * CSI Ps SP @ Scroll left Ps columns (default = 1) (SL) ECMA-48\n *\n * Notation: (Pn)\n * Representation: CSI Pn 02/00 04/00\n * Parameter default value: Pn = 1\n * SL causes the data in the presentation component to be moved by n character positions\n * if the line orientation is horizontal, or by n line positions if the line orientation\n * is vertical, such that the data appear to move to the left; where n equals the value of Pn.\n * The active presentation position is not affected by this control function.\n *\n * Supported:\n * - always left shift (no line orientation setting respected)\n *\n * @vt: #Y CSI SL \"Scroll Left\" \"CSI Ps SP @\" \"Scroll viewport `Ps` times to the left.\"\n * SL moves the content of all lines within the scroll margins `Ps` times to the left.\n * SL has no effect outside of the scroll margins.\n */\n public scrollLeft(params: IParams): boolean {\n if (this._activeBuffer.y > this._activeBuffer.scrollBottom || this._activeBuffer.y < this._activeBuffer.scrollTop) {\n return true;\n }\n const param = params.params[0] || 1;\n for (let y = this._activeBuffer.scrollTop; y <= this._activeBuffer.scrollBottom; ++y) {\n const line = this._activeBuffer.lines.get(this._activeBuffer.ybase + y)!;\n line.deleteCells(0, param, this._activeBuffer.getNullCell(this._eraseAttrData()), this._eraseAttrData());\n line.isWrapped = false;\n }\n this._dirtyRowService.markRangeDirty(this._activeBuffer.scrollTop, this._activeBuffer.scrollBottom);\n return true;\n }\n\n /**\n * CSI Ps SP A Scroll right Ps columns (default = 1) (SR) ECMA-48\n *\n * Notation: (Pn)\n * Representation: CSI Pn 02/00 04/01\n * Parameter default value: Pn = 1\n * SR causes the data in the presentation component to be moved by n character positions\n * if the line orientation is horizontal, or by n line positions if the line orientation\n * is vertical, such that the data appear to move to the right; where n equals the value of Pn.\n * The active presentation position is not affected by this control function.\n *\n * Supported:\n * - always right shift (no line orientation setting respected)\n *\n * @vt: #Y CSI SR \"Scroll Right\" \"CSI Ps SP A\" \"Scroll viewport `Ps` times to the right.\"\n * SL moves the content of all lines within the scroll margins `Ps` times to the right.\n * Content at the right margin is lost.\n * SL has no effect outside of the scroll margins.\n */\n public scrollRight(params: IParams): boolean {\n if (this._activeBuffer.y > this._activeBuffer.scrollBottom || this._activeBuffer.y < this._activeBuffer.scrollTop) {\n return true;\n }\n const param = params.params[0] || 1;\n for (let y = this._activeBuffer.scrollTop; y <= this._activeBuffer.scrollBottom; ++y) {\n const line = this._activeBuffer.lines.get(this._activeBuffer.ybase + y)!;\n line.insertCells(0, param, this._activeBuffer.getNullCell(this._eraseAttrData()), this._eraseAttrData());\n line.isWrapped = false;\n }\n this._dirtyRowService.markRangeDirty(this._activeBuffer.scrollTop, this._activeBuffer.scrollBottom);\n return true;\n }\n\n /**\n * CSI Pm ' }\n * Insert Ps Column(s) (default = 1) (DECIC), VT420 and up.\n *\n * @vt: #Y CSI DECIC \"Insert Columns\" \"CSI Ps ' }\" \"Insert `Ps` columns at cursor position.\"\n * DECIC inserts `Ps` times blank columns at the cursor position for all lines with the scroll margins,\n * moving content to the right. Content at the right margin is lost.\n * DECIC has no effect outside the scrolling margins.\n */\n public insertColumns(params: IParams): boolean {\n if (this._activeBuffer.y > this._activeBuffer.scrollBottom || this._activeBuffer.y < this._activeBuffer.scrollTop) {\n return true;\n }\n const param = params.params[0] || 1;\n for (let y = this._activeBuffer.scrollTop; y <= this._activeBuffer.scrollBottom; ++y) {\n const line = this._activeBuffer.lines.get(this._activeBuffer.ybase + y)!;\n line.insertCells(this._activeBuffer.x, param, this._activeBuffer.getNullCell(this._eraseAttrData()), this._eraseAttrData());\n line.isWrapped = false;\n }\n this._dirtyRowService.markRangeDirty(this._activeBuffer.scrollTop, this._activeBuffer.scrollBottom);\n return true;\n }\n\n /**\n * CSI Pm ' ~\n * Delete Ps Column(s) (default = 1) (DECDC), VT420 and up.\n *\n * @vt: #Y CSI DECDC \"Delete Columns\" \"CSI Ps ' ~\" \"Delete `Ps` columns at cursor position.\"\n * DECDC deletes `Ps` times columns at the cursor position for all lines with the scroll margins,\n * moving content to the left. Blank columns are added at the right margin.\n * DECDC has no effect outside the scrolling margins.\n */\n public deleteColumns(params: IParams): boolean {\n if (this._activeBuffer.y > this._activeBuffer.scrollBottom || this._activeBuffer.y < this._activeBuffer.scrollTop) {\n return true;\n }\n const param = params.params[0] || 1;\n for (let y = this._activeBuffer.scrollTop; y <= this._activeBuffer.scrollBottom; ++y) {\n const line = this._activeBuffer.lines.get(this._activeBuffer.ybase + y)!;\n line.deleteCells(this._activeBuffer.x, param, this._activeBuffer.getNullCell(this._eraseAttrData()), this._eraseAttrData());\n line.isWrapped = false;\n }\n this._dirtyRowService.markRangeDirty(this._activeBuffer.scrollTop, this._activeBuffer.scrollBottom);\n return true;\n }\n\n /**\n * CSI Ps X\n * Erase Ps Character(s) (default = 1) (ECH).\n *\n * @vt: #Y CSI ECH \"Erase Character\" \"CSI Ps X\" \"Erase `Ps` characters from current cursor position to the right (default=1).\"\n * ED erases `Ps` characters from current cursor position to the right.\n * ED works inside or outside the scrolling margins.\n */\n public eraseChars(params: IParams): boolean {\n this._restrictCursor();\n const line = this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y);\n if (line) {\n line.replaceCells(\n this._activeBuffer.x,\n this._activeBuffer.x + (params.params[0] || 1),\n this._activeBuffer.getNullCell(this._eraseAttrData()),\n this._eraseAttrData()\n );\n this._dirtyRowService.markDirty(this._activeBuffer.y);\n }\n return true;\n }\n\n /**\n * CSI Ps b Repeat the preceding graphic character Ps times (REP).\n * From ECMA 48 (@see http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf)\n * Notation: (Pn)\n * Representation: CSI Pn 06/02\n * Parameter default value: Pn = 1\n * REP is used to indicate that the preceding character in the data stream,\n * if it is a graphic character (represented by one or more bit combinations) including SPACE,\n * is to be repeated n times, where n equals the value of Pn.\n * If the character preceding REP is a control function or part of a control function,\n * the effect of REP is not defined by this Standard.\n *\n * Since we propagate the terminal as xterm-256color we have to follow xterm's behavior:\n * - fullwidth + surrogate chars are ignored\n * - for combining chars only the base char gets repeated\n * - text attrs are applied normally\n * - wrap around is respected\n * - any valid sequence resets the carried forward char\n *\n * Note: To get reset on a valid sequence working correctly without much runtime penalty,\n * the preceding codepoint is stored on the parser in `this.print` and reset during `parser.parse`.\n *\n * @vt: #Y CSI REP \"Repeat Preceding Character\" \"CSI Ps b\" \"Repeat preceding character `Ps` times (default=1).\"\n * REP repeats the previous character `Ps` times advancing the cursor, also wrapping if DECAWM is set.\n * REP has no effect if the sequence does not follow a printable ASCII character\n * (NOOP for any other sequence in between or NON ASCII characters).\n */\n public repeatPrecedingCharacter(params: IParams): boolean {\n if (!this._parser.precedingCodepoint) {\n return true;\n }\n // call print to insert the chars and handle correct wrapping\n const length = params.params[0] || 1;\n const data = new Uint32Array(length);\n for (let i = 0; i < length; ++i) {\n data[i] = this._parser.precedingCodepoint;\n }\n this.print(data, 0, data.length);\n return true;\n }\n\n /**\n * CSI Ps c Send Device Attributes (Primary DA).\n * Ps = 0 or omitted -> request attributes from terminal. The\n * response depends on the decTerminalID resource setting.\n * -> CSI ? 1 ; 2 c (``VT100 with Advanced Video Option'')\n * -> CSI ? 1 ; 0 c (``VT101 with No Options'')\n * -> CSI ? 6 c (``VT102'')\n * -> CSI ? 6 0 ; 1 ; 2 ; 6 ; 8 ; 9 ; 1 5 ; c (``VT220'')\n * The VT100-style response parameters do not mean anything by\n * themselves. VT220 parameters do, telling the host what fea-\n * tures the terminal supports:\n * Ps = 1 -> 132-columns.\n * Ps = 2 -> Printer.\n * Ps = 6 -> Selective erase.\n * Ps = 8 -> User-defined keys.\n * Ps = 9 -> National replacement character sets.\n * Ps = 1 5 -> Technical characters.\n * Ps = 2 2 -> ANSI color, e.g., VT525.\n * Ps = 2 9 -> ANSI text locator (i.e., DEC Locator mode).\n *\n * @vt: #Y CSI DA1 \"Primary Device Attributes\" \"CSI c\" \"Send primary device attributes.\"\n *\n *\n * TODO: fix and cleanup response\n */\n public sendDeviceAttributesPrimary(params: IParams): boolean {\n if (params.params[0] > 0) {\n return true;\n }\n if (this._is('xterm') || this._is('rxvt-unicode') || this._is('screen')) {\n this._coreService.triggerDataEvent(C0.ESC + '[?1;2c');\n } else if (this._is('linux')) {\n this._coreService.triggerDataEvent(C0.ESC + '[?6c');\n }\n return true;\n }\n\n /**\n * CSI > Ps c\n * Send Device Attributes (Secondary DA).\n * Ps = 0 or omitted -> request the terminal's identification\n * code. The response depends on the decTerminalID resource set-\n * ting. It should apply only to VT220 and up, but xterm extends\n * this to VT100.\n * -> CSI > Pp ; Pv ; Pc c\n * where Pp denotes the terminal type\n * Pp = 0 -> ``VT100''.\n * Pp = 1 -> ``VT220''.\n * and Pv is the firmware version (for xterm, this was originally\n * the XFree86 patch number, starting with 95). In a DEC termi-\n * nal, Pc indicates the ROM cartridge registration number and is\n * always zero.\n * More information:\n * xterm/charproc.c - line 2012, for more information.\n * vim responds with ^[[?0c or ^[[?1c after the terminal's response (?)\n *\n * @vt: #Y CSI DA2 \"Secondary Device Attributes\" \"CSI > c\" \"Send primary device attributes.\"\n *\n *\n * TODO: fix and cleanup response\n */\n public sendDeviceAttributesSecondary(params: IParams): boolean {\n if (params.params[0] > 0) {\n return true;\n }\n // xterm and urxvt\n // seem to spit this\n // out around ~370 times (?).\n if (this._is('xterm')) {\n this._coreService.triggerDataEvent(C0.ESC + '[>0;276;0c');\n } else if (this._is('rxvt-unicode')) {\n this._coreService.triggerDataEvent(C0.ESC + '[>85;95;0c');\n } else if (this._is('linux')) {\n // not supported by linux console.\n // linux console echoes parameters.\n this._coreService.triggerDataEvent(params.params[0] + 'c');\n } else if (this._is('screen')) {\n this._coreService.triggerDataEvent(C0.ESC + '[>83;40003;0c');\n }\n return true;\n }\n\n /**\n * Evaluate if the current terminal is the given argument.\n * @param term The terminal name to evaluate\n */\n private _is(term: string): boolean {\n return (this._optionsService.rawOptions.termName + '').indexOf(term) === 0;\n }\n\n /**\n * CSI Pm h Set Mode (SM).\n * Ps = 2 -> Keyboard Action Mode (AM).\n * Ps = 4 -> Insert Mode (IRM).\n * Ps = 1 2 -> Send/receive (SRM).\n * Ps = 2 0 -> Automatic Newline (LNM).\n *\n * @vt: #P[Only IRM is supported.] CSI SM \"Set Mode\" \"CSI Pm h\" \"Set various terminal modes.\"\n * Supported param values by SM:\n *\n * | Param | Action | Support |\n * | ----- | -------------------------------------- | ------- |\n * | 2 | Keyboard Action Mode (KAM). Always on. | #N |\n * | 4 | Insert Mode (IRM). | #Y |\n * | 12 | Send/receive (SRM). Always off. | #N |\n * | 20 | Automatic Newline (LNM). | #Y |\n */\n public setMode(params: IParams): boolean {\n for (let i = 0; i < params.length; i++) {\n switch (params.params[i]) {\n case 4:\n this._coreService.modes.insertMode = true;\n break;\n case 20:\n this._optionsService.options.convertEol = true;\n break;\n }\n }\n return true;\n }\n\n /**\n * CSI ? Pm h\n * DEC Private Mode Set (DECSET).\n * Ps = 1 -> Application Cursor Keys (DECCKM).\n * Ps = 2 -> Designate USASCII for character sets G0-G3\n * (DECANM), and set VT100 mode.\n * Ps = 3 -> 132 Column Mode (DECCOLM).\n * Ps = 4 -> Smooth (Slow) Scroll (DECSCLM).\n * Ps = 5 -> Reverse Video (DECSCNM).\n * Ps = 6 -> Origin Mode (DECOM).\n * Ps = 7 -> Wraparound Mode (DECAWM).\n * Ps = 8 -> Auto-repeat Keys (DECARM).\n * Ps = 9 -> Send Mouse X & Y on button press. See the sec-\n * tion Mouse Tracking.\n * Ps = 1 0 -> Show toolbar (rxvt).\n * Ps = 1 2 -> Start Blinking Cursor (att610).\n * Ps = 1 8 -> Print form feed (DECPFF).\n * Ps = 1 9 -> Set print extent to full screen (DECPEX).\n * Ps = 2 5 -> Show Cursor (DECTCEM).\n * Ps = 3 0 -> Show scrollbar (rxvt).\n * Ps = 3 5 -> Enable font-shifting functions (rxvt).\n * Ps = 3 8 -> Enter Tektronix Mode (DECTEK).\n * Ps = 4 0 -> Allow 80 -> 132 Mode.\n * Ps = 4 1 -> more(1) fix (see curses resource).\n * Ps = 4 2 -> Enable Nation Replacement Character sets (DECN-\n * RCM).\n * Ps = 4 4 -> Turn On Margin Bell.\n * Ps = 4 5 -> Reverse-wraparound Mode.\n * Ps = 4 6 -> Start Logging. This is normally disabled by a\n * compile-time option.\n * Ps = 4 7 -> Use Alternate Screen Buffer. (This may be dis-\n * abled by the titeInhibit resource).\n * Ps = 6 6 -> Application keypad (DECNKM).\n * Ps = 6 7 -> Backarrow key sends backspace (DECBKM).\n * Ps = 1 0 0 0 -> Send Mouse X & Y on button press and\n * release. See the section Mouse Tracking.\n * Ps = 1 0 0 1 -> Use Hilite Mouse Tracking.\n * Ps = 1 0 0 2 -> Use Cell Motion Mouse Tracking.\n * Ps = 1 0 0 3 -> Use All Motion Mouse Tracking.\n * Ps = 1 0 0 4 -> Send FocusIn/FocusOut events.\n * Ps = 1 0 0 5 -> Enable Extended Mouse Mode.\n * Ps = 1 0 1 0 -> Scroll to bottom on tty output (rxvt).\n * Ps = 1 0 1 1 -> Scroll to bottom on key press (rxvt).\n * Ps = 1 0 3 4 -> Interpret \"meta\" key, sets eighth bit.\n * (enables the eightBitInput resource).\n * Ps = 1 0 3 5 -> Enable special modifiers for Alt and Num-\n * Lock keys. (This enables the numLock resource).\n * Ps = 1 0 3 6 -> Send ESC when Meta modifies a key. (This\n * enables the metaSendsEscape resource).\n * Ps = 1 0 3 7 -> Send DEL from the editing-keypad Delete\n * key.\n * Ps = 1 0 3 9 -> Send ESC when Alt modifies a key. (This\n * enables the altSendsEscape resource).\n * Ps = 1 0 4 0 -> Keep selection even if not highlighted.\n * (This enables the keepSelection resource).\n * Ps = 1 0 4 1 -> Use the CLIPBOARD selection. (This enables\n * the selectToClipboard resource).\n * Ps = 1 0 4 2 -> Enable Urgency window manager hint when\n * Control-G is received. (This enables the bellIsUrgent\n * resource).\n * Ps = 1 0 4 3 -> Enable raising of the window when Control-G\n * is received. (enables the popOnBell resource).\n * Ps = 1 0 4 7 -> Use Alternate Screen Buffer. (This may be\n * disabled by the titeInhibit resource).\n * Ps = 1 0 4 8 -> Save cursor as in DECSC. (This may be dis-\n * abled by the titeInhibit resource).\n * Ps = 1 0 4 9 -> Save cursor as in DECSC and use Alternate\n * Screen Buffer, clearing it first. (This may be disabled by\n * the titeInhibit resource). This combines the effects of the 1\n * 0 4 7 and 1 0 4 8 modes. Use this with terminfo-based\n * applications rather than the 4 7 mode.\n * Ps = 1 0 5 0 -> Set terminfo/termcap function-key mode.\n * Ps = 1 0 5 1 -> Set Sun function-key mode.\n * Ps = 1 0 5 2 -> Set HP function-key mode.\n * Ps = 1 0 5 3 -> Set SCO function-key mode.\n * Ps = 1 0 6 0 -> Set legacy keyboard emulation (X11R6).\n * Ps = 1 0 6 1 -> Set VT220 keyboard emulation.\n * Ps = 2 0 0 4 -> Set bracketed paste mode.\n * Modes:\n * http: *vt100.net/docs/vt220-rm/chapter4.html\n *\n * @vt: #P[See below for supported modes.] CSI DECSET \"DEC Private Set Mode\" \"CSI ? Pm h\" \"Set various terminal attributes.\"\n * Supported param values by DECSET:\n *\n * | param | Action | Support |\n * | ----- | ------------------------------------------------------- | --------|\n * | 1 | Application Cursor Keys (DECCKM). | #Y |\n * | 2 | Designate US-ASCII for character sets G0-G3 (DECANM). | #Y |\n * | 3 | 132 Column Mode (DECCOLM). | #Y |\n * | 6 | Origin Mode (DECOM). | #Y |\n * | 7 | Auto-wrap Mode (DECAWM). | #Y |\n * | 8 | Auto-repeat Keys (DECARM). Always on. | #N |\n * | 9 | X10 xterm mouse protocol. | #Y |\n * | 12 | Start Blinking Cursor. | #Y |\n * | 25 | Show Cursor (DECTCEM). | #Y |\n * | 45 | Reverse wrap-around. | #Y |\n * | 47 | Use Alternate Screen Buffer. | #Y |\n * | 66 | Application keypad (DECNKM). | #Y |\n * | 1000 | X11 xterm mouse protocol. | #Y |\n * | 1002 | Use Cell Motion Mouse Tracking. | #Y |\n * | 1003 | Use All Motion Mouse Tracking. | #Y |\n * | 1004 | Send FocusIn/FocusOut events | #Y |\n * | 1005 | Enable UTF-8 Mouse Mode. | #N |\n * | 1006 | Enable SGR Mouse Mode. | #Y |\n * | 1015 | Enable urxvt Mouse Mode. | #N |\n * | 1016 | Enable SGR-Pixels Mouse Mode. | #Y |\n * | 1047 | Use Alternate Screen Buffer. | #Y |\n * | 1048 | Save cursor as in DECSC. | #Y |\n * | 1049 | Save cursor and switch to alternate buffer clearing it. | #P[Does not clear the alternate buffer.] |\n * | 2004 | Set bracketed paste mode. | #Y |\n *\n *\n * FIXME: implement DECSCNM, 1049 should clear altbuffer\n */\n public setModePrivate(params: IParams): boolean {\n for (let i = 0; i < params.length; i++) {\n switch (params.params[i]) {\n case 1:\n this._coreService.decPrivateModes.applicationCursorKeys = true;\n break;\n case 2:\n this._charsetService.setgCharset(0, DEFAULT_CHARSET);\n this._charsetService.setgCharset(1, DEFAULT_CHARSET);\n this._charsetService.setgCharset(2, DEFAULT_CHARSET);\n this._charsetService.setgCharset(3, DEFAULT_CHARSET);\n // set VT100 mode here\n break;\n case 3:\n /**\n * DECCOLM - 132 column mode.\n * This is only active if 'SetWinLines' (24) is enabled\n * through `options.windowsOptions`.\n */\n if (this._optionsService.rawOptions.windowOptions.setWinLines) {\n this._bufferService.resize(132, this._bufferService.rows);\n this._onRequestReset.fire();\n }\n break;\n case 6:\n this._coreService.decPrivateModes.origin = true;\n this._setCursor(0, 0);\n break;\n case 7:\n this._coreService.decPrivateModes.wraparound = true;\n break;\n case 12:\n this._optionsService.options.cursorBlink = true;\n break;\n case 45:\n this._coreService.decPrivateModes.reverseWraparound = true;\n break;\n case 66:\n this._logService.debug('Serial port requested application keypad.');\n this._coreService.decPrivateModes.applicationKeypad = true;\n this._onRequestSyncScrollBar.fire();\n break;\n case 9: // X10 Mouse\n // no release, no motion, no wheel, no modifiers.\n this._coreMouseService.activeProtocol = 'X10';\n break;\n case 1000: // vt200 mouse\n // no motion.\n this._coreMouseService.activeProtocol = 'VT200';\n break;\n case 1002: // button event mouse\n this._coreMouseService.activeProtocol = 'DRAG';\n break;\n case 1003: // any event mouse\n // any event - sends motion events,\n // even if there is no button held down.\n this._coreMouseService.activeProtocol = 'ANY';\n break;\n case 1004: // send focusin/focusout events\n // focusin: ^[[I\n // focusout: ^[[O\n this._coreService.decPrivateModes.sendFocus = true;\n this._onRequestSendFocus.fire();\n break;\n case 1005: // utf8 ext mode mouse - removed in #2507\n this._logService.debug('DECSET 1005 not supported (see #2507)');\n break;\n case 1006: // sgr ext mode mouse\n this._coreMouseService.activeEncoding = 'SGR';\n break;\n case 1015: // urxvt ext mode mouse - removed in #2507\n this._logService.debug('DECSET 1015 not supported (see #2507)');\n break;\n case 1016: // sgr pixels mode mouse\n this._coreMouseService.activeEncoding = 'SGR_PIXELS';\n break;\n case 25: // show cursor\n this._coreService.isCursorHidden = false;\n break;\n case 1048: // alt screen cursor\n this.saveCursor();\n break;\n case 1049: // alt screen buffer cursor\n this.saveCursor();\n // FALL-THROUGH\n case 47: // alt screen buffer\n case 1047: // alt screen buffer\n this._bufferService.buffers.activateAltBuffer(this._eraseAttrData());\n this._coreService.isCursorInitialized = true;\n this._onRequestRefreshRows.fire(0, this._bufferService.rows - 1);\n this._onRequestSyncScrollBar.fire();\n break;\n case 2004: // bracketed paste mode (https://cirw.in/blog/bracketed-paste)\n this._coreService.decPrivateModes.bracketedPasteMode = true;\n break;\n }\n }\n return true;\n }\n\n\n /**\n * CSI Pm l Reset Mode (RM).\n * Ps = 2 -> Keyboard Action Mode (AM).\n * Ps = 4 -> Replace Mode (IRM).\n * Ps = 1 2 -> Send/receive (SRM).\n * Ps = 2 0 -> Normal Linefeed (LNM).\n *\n * @vt: #P[Only IRM is supported.] CSI RM \"Reset Mode\" \"CSI Pm l\" \"Set various terminal attributes.\"\n * Supported param values by RM:\n *\n * | Param | Action | Support |\n * | ----- | -------------------------------------- | ------- |\n * | 2 | Keyboard Action Mode (KAM). Always on. | #N |\n * | 4 | Replace Mode (IRM). (default) | #Y |\n * | 12 | Send/receive (SRM). Always off. | #N |\n * | 20 | Normal Linefeed (LNM). | #Y |\n *\n *\n * FIXME: why is LNM commented out?\n */\n public resetMode(params: IParams): boolean {\n for (let i = 0; i < params.length; i++) {\n switch (params.params[i]) {\n case 4:\n this._coreService.modes.insertMode = false;\n break;\n case 20:\n this._optionsService.options.convertEol = false;\n break;\n }\n }\n return true;\n }\n\n /**\n * CSI ? Pm l\n * DEC Private Mode Reset (DECRST).\n * Ps = 1 -> Normal Cursor Keys (DECCKM).\n * Ps = 2 -> Designate VT52 mode (DECANM).\n * Ps = 3 -> 80 Column Mode (DECCOLM).\n * Ps = 4 -> Jump (Fast) Scroll (DECSCLM).\n * Ps = 5 -> Normal Video (DECSCNM).\n * Ps = 6 -> Normal Cursor Mode (DECOM).\n * Ps = 7 -> No Wraparound Mode (DECAWM).\n * Ps = 8 -> No Auto-repeat Keys (DECARM).\n * Ps = 9 -> Don't send Mouse X & Y on button press.\n * Ps = 1 0 -> Hide toolbar (rxvt).\n * Ps = 1 2 -> Stop Blinking Cursor (att610).\n * Ps = 1 8 -> Don't print form feed (DECPFF).\n * Ps = 1 9 -> Limit print to scrolling region (DECPEX).\n * Ps = 2 5 -> Hide Cursor (DECTCEM).\n * Ps = 3 0 -> Don't show scrollbar (rxvt).\n * Ps = 3 5 -> Disable font-shifting functions (rxvt).\n * Ps = 4 0 -> Disallow 80 -> 132 Mode.\n * Ps = 4 1 -> No more(1) fix (see curses resource).\n * Ps = 4 2 -> Disable Nation Replacement Character sets (DEC-\n * NRCM).\n * Ps = 4 4 -> Turn Off Margin Bell.\n * Ps = 4 5 -> No Reverse-wraparound Mode.\n * Ps = 4 6 -> Stop Logging. (This is normally disabled by a\n * compile-time option).\n * Ps = 4 7 -> Use Normal Screen Buffer.\n * Ps = 6 6 -> Numeric keypad (DECNKM).\n * Ps = 6 7 -> Backarrow key sends delete (DECBKM).\n * Ps = 1 0 0 0 -> Don't send Mouse X & Y on button press and\n * release. See the section Mouse Tracking.\n * Ps = 1 0 0 1 -> Don't use Hilite Mouse Tracking.\n * Ps = 1 0 0 2 -> Don't use Cell Motion Mouse Tracking.\n * Ps = 1 0 0 3 -> Don't use All Motion Mouse Tracking.\n * Ps = 1 0 0 4 -> Don't send FocusIn/FocusOut events.\n * Ps = 1 0 0 5 -> Disable Extended Mouse Mode.\n * Ps = 1 0 1 0 -> Don't scroll to bottom on tty output\n * (rxvt).\n * Ps = 1 0 1 1 -> Don't scroll to bottom on key press (rxvt).\n * Ps = 1 0 3 4 -> Don't interpret \"meta\" key. (This disables\n * the eightBitInput resource).\n * Ps = 1 0 3 5 -> Disable special modifiers for Alt and Num-\n * Lock keys. (This disables the numLock resource).\n * Ps = 1 0 3 6 -> Don't send ESC when Meta modifies a key.\n * (This disables the metaSendsEscape resource).\n * Ps = 1 0 3 7 -> Send VT220 Remove from the editing-keypad\n * Delete key.\n * Ps = 1 0 3 9 -> Don't send ESC when Alt modifies a key.\n * (This disables the altSendsEscape resource).\n * Ps = 1 0 4 0 -> Do not keep selection when not highlighted.\n * (This disables the keepSelection resource).\n * Ps = 1 0 4 1 -> Use the PRIMARY selection. (This disables\n * the selectToClipboard resource).\n * Ps = 1 0 4 2 -> Disable Urgency window manager hint when\n * Control-G is received. (This disables the bellIsUrgent\n * resource).\n * Ps = 1 0 4 3 -> Disable raising of the window when Control-\n * G is received. (This disables the popOnBell resource).\n * Ps = 1 0 4 7 -> Use Normal Screen Buffer, clearing screen\n * first if in the Alternate Screen. (This may be disabled by\n * the titeInhibit resource).\n * Ps = 1 0 4 8 -> Restore cursor as in DECRC. (This may be\n * disabled by the titeInhibit resource).\n * Ps = 1 0 4 9 -> Use Normal Screen Buffer and restore cursor\n * as in DECRC. (This may be disabled by the titeInhibit\n * resource). This combines the effects of the 1 0 4 7 and 1 0\n * 4 8 modes. Use this with terminfo-based applications rather\n * than the 4 7 mode.\n * Ps = 1 0 5 0 -> Reset terminfo/termcap function-key mode.\n * Ps = 1 0 5 1 -> Reset Sun function-key mode.\n * Ps = 1 0 5 2 -> Reset HP function-key mode.\n * Ps = 1 0 5 3 -> Reset SCO function-key mode.\n * Ps = 1 0 6 0 -> Reset legacy keyboard emulation (X11R6).\n * Ps = 1 0 6 1 -> Reset keyboard emulation to Sun/PC style.\n * Ps = 2 0 0 4 -> Reset bracketed paste mode.\n *\n * @vt: #P[See below for supported modes.] CSI DECRST \"DEC Private Reset Mode\" \"CSI ? Pm l\" \"Reset various terminal attributes.\"\n * Supported param values by DECRST:\n *\n * | param | Action | Support |\n * | ----- | ------------------------------------------------------- | ------- |\n * | 1 | Normal Cursor Keys (DECCKM). | #Y |\n * | 2 | Designate VT52 mode (DECANM). | #N |\n * | 3 | 80 Column Mode (DECCOLM). | #B[Switches to old column width instead of 80.] |\n * | 6 | Normal Cursor Mode (DECOM). | #Y |\n * | 7 | No Wraparound Mode (DECAWM). | #Y |\n * | 8 | No Auto-repeat Keys (DECARM). | #N |\n * | 9 | Don't send Mouse X & Y on button press. | #Y |\n * | 12 | Stop Blinking Cursor. | #Y |\n * | 25 | Hide Cursor (DECTCEM). | #Y |\n * | 45 | No reverse wrap-around. | #Y |\n * | 47 | Use Normal Screen Buffer. | #Y |\n * | 66 | Numeric keypad (DECNKM). | #Y |\n * | 1000 | Don't send Mouse reports. | #Y |\n * | 1002 | Don't use Cell Motion Mouse Tracking. | #Y |\n * | 1003 | Don't use All Motion Mouse Tracking. | #Y |\n * | 1004 | Don't send FocusIn/FocusOut events. | #Y |\n * | 1005 | Disable UTF-8 Mouse Mode. | #N |\n * | 1006 | Disable SGR Mouse Mode. | #Y |\n * | 1015 | Disable urxvt Mouse Mode. | #N |\n * | 1016 | Disable SGR-Pixels Mouse Mode. | #Y |\n * | 1047 | Use Normal Screen Buffer (clearing screen if in alt). | #Y |\n * | 1048 | Restore cursor as in DECRC. | #Y |\n * | 1049 | Use Normal Screen Buffer and restore cursor. | #Y |\n * | 2004 | Reset bracketed paste mode. | #Y |\n *\n *\n * FIXME: DECCOLM is currently broken (already fixed in window options PR)\n */\n public resetModePrivate(params: IParams): boolean {\n for (let i = 0; i < params.length; i++) {\n switch (params.params[i]) {\n case 1:\n this._coreService.decPrivateModes.applicationCursorKeys = false;\n break;\n case 3:\n /**\n * DECCOLM - 80 column mode.\n * This is only active if 'SetWinLines' (24) is enabled\n * through `options.windowsOptions`.\n */\n if (this._optionsService.rawOptions.windowOptions.setWinLines) {\n this._bufferService.resize(80, this._bufferService.rows);\n this._onRequestReset.fire();\n }\n break;\n case 6:\n this._coreService.decPrivateModes.origin = false;\n this._setCursor(0, 0);\n break;\n case 7:\n this._coreService.decPrivateModes.wraparound = false;\n break;\n case 12:\n this._optionsService.options.cursorBlink = false;\n break;\n case 45:\n this._coreService.decPrivateModes.reverseWraparound = false;\n break;\n case 66:\n this._logService.debug('Switching back to normal keypad.');\n this._coreService.decPrivateModes.applicationKeypad = false;\n this._onRequestSyncScrollBar.fire();\n break;\n case 9: // X10 Mouse\n case 1000: // vt200 mouse\n case 1002: // button event mouse\n case 1003: // any event mouse\n this._coreMouseService.activeProtocol = 'NONE';\n break;\n case 1004: // send focusin/focusout events\n this._coreService.decPrivateModes.sendFocus = false;\n break;\n case 1005: // utf8 ext mode mouse - removed in #2507\n this._logService.debug('DECRST 1005 not supported (see #2507)');\n break;\n case 1006: // sgr ext mode mouse\n this._coreMouseService.activeEncoding = 'DEFAULT';\n break;\n case 1015: // urxvt ext mode mouse - removed in #2507\n this._logService.debug('DECRST 1015 not supported (see #2507)');\n break;\n case 1016: // sgr pixels mode mouse\n this._coreMouseService.activeEncoding = 'DEFAULT';\n break;\n case 25: // hide cursor\n this._coreService.isCursorHidden = true;\n break;\n case 1048: // alt screen cursor\n this.restoreCursor();\n break;\n case 1049: // alt screen buffer cursor\n // FALL-THROUGH\n case 47: // normal screen buffer\n case 1047: // normal screen buffer - clearing it first\n // Ensure the selection manager has the correct buffer\n this._bufferService.buffers.activateNormalBuffer();\n if (params.params[i] === 1049) {\n this.restoreCursor();\n }\n this._coreService.isCursorInitialized = true;\n this._onRequestRefreshRows.fire(0, this._bufferService.rows - 1);\n this._onRequestSyncScrollBar.fire();\n break;\n case 2004: // bracketed paste mode (https://cirw.in/blog/bracketed-paste)\n this._coreService.decPrivateModes.bracketedPasteMode = false;\n break;\n }\n }\n return true;\n }\n\n /**\n * CSI Ps $ p Request ANSI Mode (DECRQM).\n *\n * Reports CSI Ps; Pm $ y (DECRPM), where Ps is the mode number as in SM/RM,\n * and Pm is the mode value:\n * 0 - not recognized\n * 1 - set\n * 2 - reset\n * 3 - permanently set\n * 4 - permanently reset\n *\n * @vt: #Y CSI DECRQM \"Request Mode\" \"CSI Ps $p\" \"Request mode state.\"\n * Returns a report as `CSI Ps; Pm $ y` (DECRPM), where `Ps` is the mode number as in SM/RM\n * or DECSET/DECRST, and `Pm` is the mode value:\n * - 0: not recognized\n * - 1: set\n * - 2: reset\n * - 3: permanently set\n * - 4: permanently reset\n *\n * For modes not understood xterm.js always returns `notRecognized`. In general this means,\n * that a certain operation mode is not implemented and cannot be used.\n *\n * Modes changing the active terminal buffer (47, 1047, 1049) are not subqueried\n * and only report, whether the alternate buffer is set.\n *\n * Mouse encodings and mouse protocols are handled mutual exclusive,\n * thus only one of each of those can be set at a given time.\n *\n * There is a chance, that some mode reports are not fully in line with xterm.js' behavior,\n * e.g. if the default implementation already exposes a certain behavior. If you find\n * discrepancies in the mode reports, please file a bug.\n */\n public requestMode(params: IParams, ansi: boolean): boolean {\n // return value as in DECRPM\n const enum V {\n NOT_RECOGNIZED = 0,\n SET = 1,\n RESET = 2,\n PERMANENTLY_SET = 3,\n PERMANENTLY_RESET = 4\n }\n\n // access helpers\n const dm = this._coreService.decPrivateModes;\n const { activeProtocol: mouseProtocol, activeEncoding: mouseEncoding } = this._coreMouseService;\n const cs = this._coreService;\n const { buffers, cols } = this._bufferService;\n const { active, alt } = buffers;\n const opts = this._optionsService.rawOptions;\n\n const f = (m: number, v: V): boolean => {\n cs.triggerDataEvent(`${C0.ESC}[${ansi ? '' : '?'}${m};${v}$y`);\n return true;\n };\n const b2v = (value: boolean): V => value ? V.SET : V.RESET;\n\n const p = params.params[0];\n\n if (ansi) {\n if (p === 2) return f(p, V.PERMANENTLY_SET);\n if (p === 4) return f(p, b2v(cs.modes.insertMode));\n if (p === 12) return f(p, V.PERMANENTLY_RESET);\n if (p === 20) return f(p, b2v(opts.convertEol));\n return f(p, V.NOT_RECOGNIZED);\n }\n\n if (p === 1) return f(p, b2v(dm.applicationCursorKeys));\n if (p === 3) return f(p, opts.windowOptions.setWinLines ? (cols === 80 ? V.RESET : cols === 132 ? V.SET : V.NOT_RECOGNIZED) : V.NOT_RECOGNIZED);\n if (p === 6) return f(p, b2v(dm.origin));\n if (p === 7) return f(p, b2v(dm.wraparound));\n if (p === 8) return f(p, V.PERMANENTLY_SET);\n if (p === 9) return f(p, b2v(mouseProtocol === 'X10'));\n if (p === 12) return f(p, b2v(opts.cursorBlink));\n if (p === 25) return f(p, b2v(!cs.isCursorHidden));\n if (p === 45) return f(p, b2v(dm.reverseWraparound));\n if (p === 66) return f(p, b2v(dm.applicationKeypad));\n if (p === 1000) return f(p, b2v(mouseProtocol === 'VT200'));\n if (p === 1002) return f(p, b2v(mouseProtocol === 'DRAG'));\n if (p === 1003) return f(p, b2v(mouseProtocol === 'ANY'));\n if (p === 1004) return f(p, b2v(dm.sendFocus));\n if (p === 1005) return f(p, V.PERMANENTLY_RESET);\n if (p === 1006) return f(p, b2v(mouseEncoding === 'SGR'));\n if (p === 1015) return f(p, V.PERMANENTLY_RESET);\n if (p === 1016) return f(p, b2v(mouseEncoding === 'SGR_PIXELS'));\n if (p === 1048) return f(p, V.SET); // xterm always returns SET here\n if (p === 47 || p === 1047 || p === 1049) return f(p, b2v(active === alt));\n if (p === 2004) return f(p, b2v(dm.bracketedPasteMode));\n return f(p, V.NOT_RECOGNIZED);\n }\n\n /**\n * Helper to write color information packed with color mode.\n */\n private _updateAttrColor(color: number, mode: number, c1: number, c2: number, c3: number): number {\n if (mode === 2) {\n color |= Attributes.CM_RGB;\n color &= ~Attributes.RGB_MASK;\n color |= AttributeData.fromColorRGB([c1, c2, c3]);\n } else if (mode === 5) {\n color &= ~(Attributes.CM_MASK | Attributes.PCOLOR_MASK);\n color |= Attributes.CM_P256 | (c1 & 0xff);\n }\n return color;\n }\n\n /**\n * Helper to extract and apply color params/subparams.\n * Returns advance for params index.\n */\n private _extractColor(params: IParams, pos: number, attr: IAttributeData): number {\n // normalize params\n // meaning: [target, CM, ign, val, val, val]\n // RGB : [ 38/48, 2, ign, r, g, b]\n // P256 : [ 38/48, 5, ign, v, ign, ign]\n const accu = [0, 0, -1, 0, 0, 0];\n\n // alignment placeholder for non color space sequences\n let cSpace = 0;\n\n // return advance we took in params\n let advance = 0;\n\n do {\n accu[advance + cSpace] = params.params[pos + advance];\n if (params.hasSubParams(pos + advance)) {\n const subparams = params.getSubParams(pos + advance)!;\n let i = 0;\n do {\n if (accu[1] === 5) {\n cSpace = 1;\n }\n accu[advance + i + 1 + cSpace] = subparams[i];\n } while (++i < subparams.length && i + advance + 1 + cSpace < accu.length);\n break;\n }\n // exit early if can decide color mode with semicolons\n if ((accu[1] === 5 && advance + cSpace >= 2)\n || (accu[1] === 2 && advance + cSpace >= 5)) {\n break;\n }\n // offset colorSpace slot for semicolon mode\n if (accu[1]) {\n cSpace = 1;\n }\n } while (++advance + pos < params.length && advance + cSpace < accu.length);\n\n // set default values to 0\n for (let i = 2; i < accu.length; ++i) {\n if (accu[i] === -1) {\n accu[i] = 0;\n }\n }\n\n // apply colors\n switch (accu[0]) {\n case 38:\n attr.fg = this._updateAttrColor(attr.fg, accu[1], accu[3], accu[4], accu[5]);\n break;\n case 48:\n attr.bg = this._updateAttrColor(attr.bg, accu[1], accu[3], accu[4], accu[5]);\n break;\n case 58:\n attr.extended = attr.extended.clone();\n attr.extended.underlineColor = this._updateAttrColor(attr.extended.underlineColor, accu[1], accu[3], accu[4], accu[5]);\n }\n\n return advance;\n }\n\n /**\n * SGR 4 subparams:\n * 4:0 - equal to SGR 24 (turn off all underline)\n * 4:1 - equal to SGR 4 (single underline)\n * 4:2 - equal to SGR 21 (double underline)\n * 4:3 - curly underline\n * 4:4 - dotted underline\n * 4:5 - dashed underline\n */\n private _processUnderline(style: number, attr: IAttributeData): void {\n // treat extended attrs as immutable, thus always clone from old one\n // this is needed since the buffer only holds references to it\n attr.extended = attr.extended.clone();\n\n // default to 1 == single underline\n if (!~style || style > 5) {\n style = 1;\n }\n attr.extended.underlineStyle = style;\n attr.fg |= FgFlags.UNDERLINE;\n\n // 0 deactivates underline\n if (style === 0) {\n attr.fg &= ~FgFlags.UNDERLINE;\n }\n\n // update HAS_EXTENDED in BG\n attr.updateExtended();\n }\n\n /**\n * CSI Pm m Character Attributes (SGR).\n *\n * @vt: #P[See below for supported attributes.] CSI SGR \"Select Graphic Rendition\" \"CSI Pm m\" \"Set/Reset various text attributes.\"\n * SGR selects one or more character attributes at the same time. Multiple params (up to 32)\n * are applied in order from left to right. The changed attributes are applied to all new\n * characters received. If you move characters in the viewport by scrolling or any other means,\n * then the attributes move with the characters.\n *\n * Supported param values by SGR:\n *\n * | Param | Meaning | Support |\n * | --------- | -------------------------------------------------------- | ------- |\n * | 0 | Normal (default). Resets any other preceding SGR. | #Y |\n * | 1 | Bold. (also see `options.drawBoldTextInBrightColors`) | #Y |\n * | 2 | Faint, decreased intensity. | #Y |\n * | 3 | Italic. | #Y |\n * | 4 | Underlined (see below for style support). | #Y |\n * | 5 | Slowly blinking. | #N |\n * | 6 | Rapidly blinking. | #N |\n * | 7 | Inverse. Flips foreground and background color. | #Y |\n * | 8 | Invisible (hidden). | #Y |\n * | 9 | Crossed-out characters (strikethrough). | #Y |\n * | 21 | Doubly underlined. | #Y |\n * | 22 | Normal (neither bold nor faint). | #Y |\n * | 23 | No italic. | #Y |\n * | 24 | Not underlined. | #Y |\n * | 25 | Steady (not blinking). | #Y |\n * | 27 | Positive (not inverse). | #Y |\n * | 28 | Visible (not hidden). | #Y |\n * | 29 | Not Crossed-out (strikethrough). | #Y |\n * | 30 | Foreground color: Black. | #Y |\n * | 31 | Foreground color: Red. | #Y |\n * | 32 | Foreground color: Green. | #Y |\n * | 33 | Foreground color: Yellow. | #Y |\n * | 34 | Foreground color: Blue. | #Y |\n * | 35 | Foreground color: Magenta. | #Y |\n * | 36 | Foreground color: Cyan. | #Y |\n * | 37 | Foreground color: White. | #Y |\n * | 38 | Foreground color: Extended color. | #P[Support for RGB and indexed colors, see below.] |\n * | 39 | Foreground color: Default (original). | #Y |\n * | 40 | Background color: Black. | #Y |\n * | 41 | Background color: Red. | #Y |\n * | 42 | Background color: Green. | #Y |\n * | 43 | Background color: Yellow. | #Y |\n * | 44 | Background color: Blue. | #Y |\n * | 45 | Background color: Magenta. | #Y |\n * | 46 | Background color: Cyan. | #Y |\n * | 47 | Background color: White. | #Y |\n * | 48 | Background color: Extended color. | #P[Support for RGB and indexed colors, see below.] |\n * | 49 | Background color: Default (original). | #Y |\n * | 58 | Underline color: Extended color. | #P[Support for RGB and indexed colors, see below.] |\n * | 90 - 97 | Bright foreground color (analogous to 30 - 37). | #Y |\n * | 100 - 107 | Bright background color (analogous to 40 - 47). | #Y |\n *\n * Underline supports subparams to denote the style in the form `4 : x`:\n *\n * | x | Meaning | Support |\n * | ------ | ------------------------------------------------------------- | ------- |\n * | 0 | No underline. Same as `SGR 24 m`. | #Y |\n * | 1 | Single underline. Same as `SGR 4 m`. | #Y |\n * | 2 | Double underline. | #Y |\n * | 3 | Curly underline. | #Y |\n * | 4 | Dotted underline. | #Y |\n * | 5 | Dashed underline. | #Y |\n * | other | Single underline. Same as `SGR 4 m`. | #Y |\n *\n * Extended colors are supported for foreground (Ps=38), background (Ps=48) and underline (Ps=58) as follows:\n *\n * | Ps + 1 | Meaning | Support |\n * | ------ | ------------------------------------------------------------- | ------- |\n * | 0 | Implementation defined. | #N |\n * | 1 | Transparent. | #N |\n * | 2 | RGB color as `Ps ; 2 ; R ; G ; B` or `Ps : 2 : : R : G : B`. | #Y |\n * | 3 | CMY color. | #N |\n * | 4 | CMYK color. | #N |\n * | 5 | Indexed (256 colors) as `Ps ; 5 ; INDEX` or `Ps : 5 : INDEX`. | #Y |\n *\n *\n * FIXME: blinking is implemented in attrs, but not working in renderers?\n * FIXME: remove dead branch for p=100\n */\n public charAttributes(params: IParams): boolean {\n // Optimize a single SGR0.\n if (params.length === 1 && params.params[0] === 0) {\n this._curAttrData.fg = DEFAULT_ATTR_DATA.fg;\n this._curAttrData.bg = DEFAULT_ATTR_DATA.bg;\n return true;\n }\n\n const l = params.length;\n let p;\n const attr = this._curAttrData;\n\n for (let i = 0; i < l; i++) {\n p = params.params[i];\n if (p >= 30 && p <= 37) {\n // fg color 8\n attr.fg &= ~(Attributes.CM_MASK | Attributes.PCOLOR_MASK);\n attr.fg |= Attributes.CM_P16 | (p - 30);\n } else if (p >= 40 && p <= 47) {\n // bg color 8\n attr.bg &= ~(Attributes.CM_MASK | Attributes.PCOLOR_MASK);\n attr.bg |= Attributes.CM_P16 | (p - 40);\n } else if (p >= 90 && p <= 97) {\n // fg color 16\n attr.fg &= ~(Attributes.CM_MASK | Attributes.PCOLOR_MASK);\n attr.fg |= Attributes.CM_P16 | (p - 90) | 8;\n } else if (p >= 100 && p <= 107) {\n // bg color 16\n attr.bg &= ~(Attributes.CM_MASK | Attributes.PCOLOR_MASK);\n attr.bg |= Attributes.CM_P16 | (p - 100) | 8;\n } else if (p === 0) {\n // default\n attr.fg = DEFAULT_ATTR_DATA.fg;\n attr.bg = DEFAULT_ATTR_DATA.bg;\n } else if (p === 1) {\n // bold text\n attr.fg |= FgFlags.BOLD;\n } else if (p === 3) {\n // italic text\n attr.bg |= BgFlags.ITALIC;\n } else if (p === 4) {\n // underlined text\n attr.fg |= FgFlags.UNDERLINE;\n this._processUnderline(params.hasSubParams(i) ? params.getSubParams(i)![0] : UnderlineStyle.SINGLE, attr);\n } else if (p === 5) {\n // blink\n attr.fg |= FgFlags.BLINK;\n } else if (p === 7) {\n // inverse and positive\n // test with: echo -e '\\e[31m\\e[42mhello\\e[7mworld\\e[27mhi\\e[m'\n attr.fg |= FgFlags.INVERSE;\n } else if (p === 8) {\n // invisible\n attr.fg |= FgFlags.INVISIBLE;\n } else if (p === 9) {\n // strikethrough\n attr.fg |= FgFlags.STRIKETHROUGH;\n } else if (p === 2) {\n // dimmed text\n attr.bg |= BgFlags.DIM;\n } else if (p === 21) {\n // double underline\n this._processUnderline(UnderlineStyle.DOUBLE, attr);\n } else if (p === 22) {\n // not bold nor faint\n attr.fg &= ~FgFlags.BOLD;\n attr.bg &= ~BgFlags.DIM;\n } else if (p === 23) {\n // not italic\n attr.bg &= ~BgFlags.ITALIC;\n } else if (p === 24) {\n // not underlined\n attr.fg &= ~FgFlags.UNDERLINE;\n this._processUnderline(UnderlineStyle.NONE, attr);\n } else if (p === 25) {\n // not blink\n attr.fg &= ~FgFlags.BLINK;\n } else if (p === 27) {\n // not inverse\n attr.fg &= ~FgFlags.INVERSE;\n } else if (p === 28) {\n // not invisible\n attr.fg &= ~FgFlags.INVISIBLE;\n } else if (p === 29) {\n // not strikethrough\n attr.fg &= ~FgFlags.STRIKETHROUGH;\n } else if (p === 39) {\n // reset fg\n attr.fg &= ~(Attributes.CM_MASK | Attributes.RGB_MASK);\n attr.fg |= DEFAULT_ATTR_DATA.fg & (Attributes.PCOLOR_MASK | Attributes.RGB_MASK);\n } else if (p === 49) {\n // reset bg\n attr.bg &= ~(Attributes.CM_MASK | Attributes.RGB_MASK);\n attr.bg |= DEFAULT_ATTR_DATA.bg & (Attributes.PCOLOR_MASK | Attributes.RGB_MASK);\n } else if (p === 38 || p === 48 || p === 58) {\n // fg color 256 and RGB\n i += this._extractColor(params, i, attr);\n } else if (p === 59) {\n attr.extended = attr.extended.clone();\n attr.extended.underlineColor = -1;\n attr.updateExtended();\n } else if (p === 100) { // FIXME: dead branch, p=100 already handled above!\n // reset fg/bg\n attr.fg &= ~(Attributes.CM_MASK | Attributes.RGB_MASK);\n attr.fg |= DEFAULT_ATTR_DATA.fg & (Attributes.PCOLOR_MASK | Attributes.RGB_MASK);\n attr.bg &= ~(Attributes.CM_MASK | Attributes.RGB_MASK);\n attr.bg |= DEFAULT_ATTR_DATA.bg & (Attributes.PCOLOR_MASK | Attributes.RGB_MASK);\n } else {\n this._logService.debug('Unknown SGR attribute: %d.', p);\n }\n }\n return true;\n }\n\n /**\n * CSI Ps n Device Status Report (DSR).\n * Ps = 5 -> Status Report. Result (``OK'') is\n * CSI 0 n\n * Ps = 6 -> Report Cursor Position (CPR) [row;column].\n * Result is\n * CSI r ; c R\n * CSI ? Ps n\n * Device Status Report (DSR, DEC-specific).\n * Ps = 6 -> Report Cursor Position (CPR) [row;column] as CSI\n * ? r ; c R (assumes page is zero).\n * Ps = 1 5 -> Report Printer status as CSI ? 1 0 n (ready).\n * or CSI ? 1 1 n (not ready).\n * Ps = 2 5 -> Report UDK status as CSI ? 2 0 n (unlocked)\n * or CSI ? 2 1 n (locked).\n * Ps = 2 6 -> Report Keyboard status as\n * CSI ? 2 7 ; 1 ; 0 ; 0 n (North American).\n * The last two parameters apply to VT400 & up, and denote key-\n * board ready and LK01 respectively.\n * Ps = 5 3 -> Report Locator status as\n * CSI ? 5 3 n Locator available, if compiled-in, or\n * CSI ? 5 0 n No Locator, if not.\n *\n * @vt: #Y CSI DSR \"Device Status Report\" \"CSI Ps n\" \"Request cursor position (CPR) with `Ps` = 6.\"\n */\n public deviceStatus(params: IParams): boolean {\n switch (params.params[0]) {\n case 5:\n // status report\n this._coreService.triggerDataEvent(`${C0.ESC}[0n`);\n break;\n case 6:\n // cursor position\n const y = this._activeBuffer.y + 1;\n const x = this._activeBuffer.x + 1;\n this._coreService.triggerDataEvent(`${C0.ESC}[${y};${x}R`);\n break;\n }\n return true;\n }\n\n // @vt: #P[Only CPR is supported.] CSI DECDSR \"DEC Device Status Report\" \"CSI ? Ps n\" \"Only CPR is supported (same as DSR).\"\n public deviceStatusPrivate(params: IParams): boolean {\n // modern xterm doesnt seem to\n // respond to any of these except ?6, 6, and 5\n switch (params.params[0]) {\n case 6:\n // cursor position\n const y = this._activeBuffer.y + 1;\n const x = this._activeBuffer.x + 1;\n this._coreService.triggerDataEvent(`${C0.ESC}[?${y};${x}R`);\n break;\n case 15:\n // no printer\n // this.handler(C0.ESC + '[?11n');\n break;\n case 25:\n // dont support user defined keys\n // this.handler(C0.ESC + '[?21n');\n break;\n case 26:\n // north american keyboard\n // this.handler(C0.ESC + '[?27;1;0;0n');\n break;\n case 53:\n // no dec locator/mouse\n // this.handler(C0.ESC + '[?50n');\n break;\n }\n return true;\n }\n\n /**\n * CSI ! p Soft terminal reset (DECSTR).\n * http://vt100.net/docs/vt220-rm/table4-10.html\n *\n * @vt: #Y CSI DECSTR \"Soft Terminal Reset\" \"CSI ! p\" \"Reset several terminal attributes to initial state.\"\n * There are two terminal reset sequences - RIS and DECSTR. While RIS performs almost a full terminal bootstrap,\n * DECSTR only resets certain attributes. For most needs DECSTR should be sufficient.\n *\n * The following terminal attributes are reset to default values:\n * - IRM is reset (dafault = false)\n * - scroll margins are reset (default = viewport size)\n * - erase attributes are reset to default\n * - charsets are reset\n * - DECSC data is reset to initial values\n * - DECOM is reset to absolute mode\n *\n *\n * FIXME: there are several more attributes missing (see VT520 manual)\n */\n public softReset(params: IParams): boolean {\n this._coreService.isCursorHidden = false;\n this._onRequestSyncScrollBar.fire();\n this._activeBuffer.scrollTop = 0;\n this._activeBuffer.scrollBottom = this._bufferService.rows - 1;\n this._curAttrData = DEFAULT_ATTR_DATA.clone();\n this._coreService.reset();\n this._charsetService.reset();\n\n // reset DECSC data\n this._activeBuffer.savedX = 0;\n this._activeBuffer.savedY = this._activeBuffer.ybase;\n this._activeBuffer.savedCurAttrData.fg = this._curAttrData.fg;\n this._activeBuffer.savedCurAttrData.bg = this._curAttrData.bg;\n this._activeBuffer.savedCharset = this._charsetService.charset;\n\n // reset DECOM\n this._coreService.decPrivateModes.origin = false;\n return true;\n }\n\n /**\n * CSI Ps SP q Set cursor style (DECSCUSR, VT520).\n * Ps = 0 -> blinking block.\n * Ps = 1 -> blinking block (default).\n * Ps = 2 -> steady block.\n * Ps = 3 -> blinking underline.\n * Ps = 4 -> steady underline.\n * Ps = 5 -> blinking bar (xterm).\n * Ps = 6 -> steady bar (xterm).\n *\n * @vt: #Y CSI DECSCUSR \"Set Cursor Style\" \"CSI Ps SP q\" \"Set cursor style.\"\n * Supported cursor styles:\n * - empty, 0 or 1: steady block\n * - 2: blink block\n * - 3: steady underline\n * - 4: blink underline\n * - 5: steady bar\n * - 6: blink bar\n */\n public setCursorStyle(params: IParams): boolean {\n const param = params.params[0] || 1;\n switch (param) {\n case 1:\n case 2:\n this._optionsService.options.cursorStyle = 'block';\n break;\n case 3:\n case 4:\n this._optionsService.options.cursorStyle = 'underline';\n break;\n case 5:\n case 6:\n this._optionsService.options.cursorStyle = 'bar';\n break;\n }\n const isBlinking = param % 2 === 1;\n this._optionsService.options.cursorBlink = isBlinking;\n return true;\n }\n\n /**\n * CSI Ps ; Ps r\n * Set Scrolling Region [top;bottom] (default = full size of win-\n * dow) (DECSTBM).\n *\n * @vt: #Y CSI DECSTBM \"Set Top and Bottom Margin\" \"CSI Ps ; Ps r\" \"Set top and bottom margins of the viewport [top;bottom] (default = viewport size).\"\n */\n public setScrollRegion(params: IParams): boolean {\n const top = params.params[0] || 1;\n let bottom: number;\n\n if (params.length < 2 || (bottom = params.params[1]) > this._bufferService.rows || bottom === 0) {\n bottom = this._bufferService.rows;\n }\n\n if (bottom > top) {\n this._activeBuffer.scrollTop = top - 1;\n this._activeBuffer.scrollBottom = bottom - 1;\n this._setCursor(0, 0);\n }\n return true;\n }\n\n /**\n * CSI Ps ; Ps ; Ps t - Various window manipulations and reports (xterm)\n *\n * Note: Only those listed below are supported. All others are left to integrators and\n * need special treatment based on the embedding environment.\n *\n * Ps = 1 4 supported\n * Report xterm text area size in pixels.\n * Result is CSI 4 ; height ; width t\n * Ps = 14 ; 2 not implemented\n * Ps = 16 supported\n * Report xterm character cell size in pixels.\n * Result is CSI 6 ; height ; width t\n * Ps = 18 supported\n * Report the size of the text area in characters.\n * Result is CSI 8 ; height ; width t\n * Ps = 20 supported\n * Report xterm window's icon label.\n * Result is OSC L label ST\n * Ps = 21 supported\n * Report xterm window's title.\n * Result is OSC l label ST\n * Ps = 22 ; 0 -> Save xterm icon and window title on stack. supported\n * Ps = 22 ; 1 -> Save xterm icon title on stack. supported\n * Ps = 22 ; 2 -> Save xterm window title on stack. supported\n * Ps = 23 ; 0 -> Restore xterm icon and window title from stack. supported\n * Ps = 23 ; 1 -> Restore xterm icon title from stack. supported\n * Ps = 23 ; 2 -> Restore xterm window title from stack. supported\n * Ps >= 24 not implemented\n */\n public windowOptions(params: IParams): boolean {\n if (!paramToWindowOption(params.params[0], this._optionsService.rawOptions.windowOptions)) {\n return true;\n }\n const second = (params.length > 1) ? params.params[1] : 0;\n switch (params.params[0]) {\n case 14: // GetWinSizePixels, returns CSI 4 ; height ; width t\n if (second !== 2) {\n this._onRequestWindowsOptionsReport.fire(WindowsOptionsReportType.GET_WIN_SIZE_PIXELS);\n }\n break;\n case 16: // GetCellSizePixels, returns CSI 6 ; height ; width t\n this._onRequestWindowsOptionsReport.fire(WindowsOptionsReportType.GET_CELL_SIZE_PIXELS);\n break;\n case 18: // GetWinSizeChars, returns CSI 8 ; height ; width t\n if (this._bufferService) {\n this._coreService.triggerDataEvent(`${C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);\n }\n break;\n case 22: // PushTitle\n if (second === 0 || second === 2) {\n this._windowTitleStack.push(this._windowTitle);\n if (this._windowTitleStack.length > STACK_LIMIT) {\n this._windowTitleStack.shift();\n }\n }\n if (second === 0 || second === 1) {\n this._iconNameStack.push(this._iconName);\n if (this._iconNameStack.length > STACK_LIMIT) {\n this._iconNameStack.shift();\n }\n }\n break;\n case 23: // PopTitle\n if (second === 0 || second === 2) {\n if (this._windowTitleStack.length) {\n this.setTitle(this._windowTitleStack.pop()!);\n }\n }\n if (second === 0 || second === 1) {\n if (this._iconNameStack.length) {\n this.setIconName(this._iconNameStack.pop()!);\n }\n }\n break;\n }\n return true;\n }\n\n\n /**\n * CSI s\n * ESC 7\n * Save cursor (ANSI.SYS).\n *\n * @vt: #P[TODO...] CSI SCOSC \"Save Cursor\" \"CSI s\" \"Save cursor position, charmap and text attributes.\"\n * @vt: #Y ESC SC \"Save Cursor\" \"ESC 7\" \"Save cursor position, charmap and text attributes.\"\n */\n public saveCursor(params?: IParams): boolean {\n this._activeBuffer.savedX = this._activeBuffer.x;\n this._activeBuffer.savedY = this._activeBuffer.ybase + this._activeBuffer.y;\n this._activeBuffer.savedCurAttrData.fg = this._curAttrData.fg;\n this._activeBuffer.savedCurAttrData.bg = this._curAttrData.bg;\n this._activeBuffer.savedCharset = this._charsetService.charset;\n return true;\n }\n\n\n /**\n * CSI u\n * ESC 8\n * Restore cursor (ANSI.SYS).\n *\n * @vt: #P[TODO...] CSI SCORC \"Restore Cursor\" \"CSI u\" \"Restore cursor position, charmap and text attributes.\"\n * @vt: #Y ESC RC \"Restore Cursor\" \"ESC 8\" \"Restore cursor position, charmap and text attributes.\"\n */\n public restoreCursor(params?: IParams): boolean {\n this._activeBuffer.x = this._activeBuffer.savedX || 0;\n this._activeBuffer.y = Math.max(this._activeBuffer.savedY - this._activeBuffer.ybase, 0);\n this._curAttrData.fg = this._activeBuffer.savedCurAttrData.fg;\n this._curAttrData.bg = this._activeBuffer.savedCurAttrData.bg;\n this._charsetService.charset = (this as any)._savedCharset;\n if (this._activeBuffer.savedCharset) {\n this._charsetService.charset = this._activeBuffer.savedCharset;\n }\n this._restrictCursor();\n return true;\n }\n\n\n /**\n * OSC 2; ST (set window title)\n * Proxy to set window title.\n *\n * @vt: #P[Icon name is not exposed.] OSC 0 \"Set Windows Title and Icon Name\" \"OSC 0 ; Pt BEL\" \"Set window title and icon name.\"\n * Icon name is not supported. For Window Title see below.\n *\n * @vt: #Y OSC 2 \"Set Windows Title\" \"OSC 2 ; Pt BEL\" \"Set window title.\"\n * xterm.js does not manipulate the title directly, instead exposes changes via the event `Terminal.onTitleChange`.\n */\n public setTitle(data: string): boolean {\n this._windowTitle = data;\n this._onTitleChange.fire(data);\n return true;\n }\n\n /**\n * OSC 1; ST\n * Note: Icon name is not exposed.\n */\n public setIconName(data: string): boolean {\n this._iconName = data;\n return true;\n }\n\n /**\n * OSC 4; ; ST (set ANSI color to )\n *\n * @vt: #Y OSC 4 \"Set ANSI color\" \"OSC 4 ; c ; spec BEL\" \"Change color number `c` to the color specified by `spec`.\"\n * `c` is the color index between 0 and 255. The color format of `spec` is derived from `XParseColor` (see OSC 10 for supported formats).\n * There may be multipe `c ; spec` pairs present in the same instruction.\n * If `spec` contains `?` the terminal returns a sequence with the currently set color.\n */\n public setOrReportIndexedColor(data: string): boolean {\n const event: IColorEvent = [];\n const slots = data.split(';');\n while (slots.length > 1) {\n const idx = slots.shift() as string;\n const spec = slots.shift() as string;\n if (/^\\d+$/.exec(idx)) {\n const index = parseInt(idx);\n if (0 <= index && index < 256) {\n if (spec === '?') {\n event.push({ type: ColorRequestType.REPORT, index });\n } else {\n const color = parseColor(spec);\n if (color) {\n event.push({ type: ColorRequestType.SET, index, color });\n }\n }\n }\n }\n }\n if (event.length) {\n this._onColor.fire(event);\n }\n return true;\n }\n\n /**\n * OSC 8 ; ; ST - create hyperlink\n * OSC 8 ; ; ST - finish hyperlink\n *\n * Test case:\n *\n * ```sh\n * printf '\\e]8;;http://example.com\\e\\\\This is a link\\e]8;;\\e\\\\\\n'\n * ```\n *\n * @vt: #Y OSC 8 \"Create hyperlink\" \"OSC 8 ; params ; uri BEL\" \"Create a hyperlink to `uri` using `params`.\"\n * `uri` is a hyperlink starting with `http://`, `https://`, `ftp://`, `file://` or `mailto://`. `params` is an\n * optional list of key=value assignments, separated by the : character. Example: `id=xyz123:foo=bar:baz=quux`.\n * Currently only the id key is defined. Cells that share the same ID and URI share hover feedback.\n * Use `OSC 8 ; ; BEL` to finish the current hyperlink.\n */\n public setHyperlink(data: string): boolean {\n const args = data.split(';');\n if (args.length < 2) {\n return false;\n }\n if (args[1]) {\n return this._createHyperlink(args[0], args[1]);\n }\n if (args[0]) {\n return false;\n }\n return this._finishHyperlink();\n }\n\n private _createHyperlink(params: string, uri: string): boolean {\n // It's legal to open a new hyperlink without explicitly finishing the previous one\n if (this._currentLinkId !== undefined) {\n this._finishHyperlink();\n }\n const parsedParams = params.split(':');\n let id: string | undefined;\n const idParamIndex = parsedParams.findIndex(e => e.startsWith('id='));\n if (idParamIndex !== -1) {\n id = parsedParams[idParamIndex].slice(3) || undefined;\n }\n this._curAttrData.extended = this._curAttrData.extended.clone();\n this._currentLinkId = this._oscLinkService.registerLink({ id, uri });\n this._curAttrData.extended.urlId = this._currentLinkId;\n this._curAttrData.updateExtended();\n return true;\n }\n\n private _finishHyperlink(): boolean {\n this._curAttrData.extended = this._curAttrData.extended.clone();\n this._curAttrData.extended.urlId = 0;\n this._curAttrData.updateExtended();\n this._currentLinkId = undefined;\n return true;\n }\n\n // special colors - OSC 10 | 11 | 12\n private _specialColors = [ColorIndex.FOREGROUND, ColorIndex.BACKGROUND, ColorIndex.CURSOR];\n\n /**\n * Apply colors requests for special colors in OSC 10 | 11 | 12.\n * Since these commands are stacking from multiple parameters,\n * we handle them in a loop with an entry offset to `_specialColors`.\n */\n private _setOrReportSpecialColor(data: string, offset: number): boolean {\n const slots = data.split(';');\n for (let i = 0; i < slots.length; ++i, ++offset) {\n if (offset >= this._specialColors.length) break;\n if (slots[i] === '?') {\n this._onColor.fire([{ type: ColorRequestType.REPORT, index: this._specialColors[offset] }]);\n } else {\n const color = parseColor(slots[i]);\n if (color) {\n this._onColor.fire([{ type: ColorRequestType.SET, index: this._specialColors[offset], color }]);\n }\n }\n }\n return true;\n }\n\n /**\n * OSC 10 ; | ST - set or query default foreground color\n *\n * @vt: #Y OSC 10 \"Set or query default foreground color\" \"OSC 10 ; Pt BEL\" \"Set or query default foreground color.\"\n * To set the color, the following color specification formats are supported:\n * - `rgb://` for `, , ` in `h | hh | hhh | hhhh`, where\n * `h` is a single hexadecimal digit (case insignificant). The different widths scale\n * from 4 bit (`h`) to 16 bit (`hhhh`) and get converted to 8 bit (`hh`).\n * - `#RGB` - 4 bits per channel, expanded to `#R0G0B0`\n * - `#RRGGBB` - 8 bits per channel\n * - `#RRRGGGBBB` - 12 bits per channel, truncated to `#RRGGBB`\n * - `#RRRRGGGGBBBB` - 16 bits per channel, truncated to `#RRGGBB`\n *\n * **Note:** X11 named colors are currently unsupported.\n *\n * If `Pt` contains `?` instead of a color specification, the terminal\n * returns a sequence with the current default foreground color\n * (use that sequence to restore the color after changes).\n *\n * **Note:** Other than xterm, xterm.js does not support OSC 12 - 19.\n * Therefore stacking multiple `Pt` separated by `;` only works for the first two entries.\n */\n public setOrReportFgColor(data: string): boolean {\n return this._setOrReportSpecialColor(data, 0);\n }\n\n /**\n * OSC 11 ; | ST - set or query default background color\n *\n * @vt: #Y OSC 11 \"Set or query default background color\" \"OSC 11 ; Pt BEL\" \"Same as OSC 10, but for default background.\"\n */\n public setOrReportBgColor(data: string): boolean {\n return this._setOrReportSpecialColor(data, 1);\n }\n\n /**\n * OSC 12 ; | ST - set or query default cursor color\n *\n * @vt: #Y OSC 12 \"Set or query default cursor color\" \"OSC 12 ; Pt BEL\" \"Same as OSC 10, but for default cursor color.\"\n */\n public setOrReportCursorColor(data: string): boolean {\n return this._setOrReportSpecialColor(data, 2);\n }\n\n /**\n * OSC 104 ; ST - restore ANSI color \n *\n * @vt: #Y OSC 104 \"Reset ANSI color\" \"OSC 104 ; c BEL\" \"Reset color number `c` to themed color.\"\n * `c` is the color index between 0 and 255. This function restores the default color for `c` as\n * specified by the loaded theme. Any number of `c` parameters may be given.\n * If no parameters are given, the entire indexed color table will be reset.\n */\n public restoreIndexedColor(data: string): boolean {\n if (!data) {\n this._onColor.fire([{ type: ColorRequestType.RESTORE }]);\n return true;\n }\n const event: IColorEvent = [];\n const slots = data.split(';');\n for (let i = 0; i < slots.length; ++i) {\n if (/^\\d+$/.exec(slots[i])) {\n const index = parseInt(slots[i]);\n if (0 <= index && index < 256) {\n event.push({ type: ColorRequestType.RESTORE, index });\n }\n }\n }\n if (event.length) {\n this._onColor.fire(event);\n }\n return true;\n }\n\n /**\n * OSC 110 ST - restore default foreground color\n *\n * @vt: #Y OSC 110 \"Restore default foreground color\" \"OSC 110 BEL\" \"Restore default foreground to themed color.\"\n */\n public restoreFgColor(data: string): boolean {\n this._onColor.fire([{ type: ColorRequestType.RESTORE, index: ColorIndex.FOREGROUND }]);\n return true;\n }\n\n /**\n * OSC 111 ST - restore default background color\n *\n * @vt: #Y OSC 111 \"Restore default background color\" \"OSC 111 BEL\" \"Restore default background to themed color.\"\n */\n public restoreBgColor(data: string): boolean {\n this._onColor.fire([{ type: ColorRequestType.RESTORE, index: ColorIndex.BACKGROUND }]);\n return true;\n }\n\n /**\n * OSC 112 ST - restore default cursor color\n *\n * @vt: #Y OSC 112 \"Restore default cursor color\" \"OSC 112 BEL\" \"Restore default cursor to themed color.\"\n */\n public restoreCursorColor(data: string): boolean {\n this._onColor.fire([{ type: ColorRequestType.RESTORE, index: ColorIndex.CURSOR }]);\n return true;\n }\n\n /**\n * ESC E\n * C1.NEL\n * DEC mnemonic: NEL (https://vt100.net/docs/vt510-rm/NEL)\n * Moves cursor to first position on next line.\n *\n * @vt: #Y C1 NEL \"Next Line\" \"\\x85\" \"Move the cursor to the beginning of the next row.\"\n * @vt: #Y ESC NEL \"Next Line\" \"ESC E\" \"Move the cursor to the beginning of the next row.\"\n */\n public nextLine(): boolean {\n this._activeBuffer.x = 0;\n this.index();\n return true;\n }\n\n /**\n * ESC =\n * DEC mnemonic: DECKPAM (https://vt100.net/docs/vt510-rm/DECKPAM.html)\n * Enables the numeric keypad to send application sequences to the host.\n */\n public keypadApplicationMode(): boolean {\n this._logService.debug('Serial port requested application keypad.');\n this._coreService.decPrivateModes.applicationKeypad = true;\n this._onRequestSyncScrollBar.fire();\n return true;\n }\n\n /**\n * ESC >\n * DEC mnemonic: DECKPNM (https://vt100.net/docs/vt510-rm/DECKPNM.html)\n * Enables the keypad to send numeric characters to the host.\n */\n public keypadNumericMode(): boolean {\n this._logService.debug('Switching back to normal keypad.');\n this._coreService.decPrivateModes.applicationKeypad = false;\n this._onRequestSyncScrollBar.fire();\n return true;\n }\n\n /**\n * ESC % @\n * ESC % G\n * Select default character set. UTF-8 is not supported (string are unicode anyways)\n * therefore ESC % G does the same.\n */\n public selectDefaultCharset(): boolean {\n this._charsetService.setgLevel(0);\n this._charsetService.setgCharset(0, DEFAULT_CHARSET); // US (default)\n return true;\n }\n\n /**\n * ESC ( C\n * Designate G0 Character Set, VT100, ISO 2022.\n * ESC ) C\n * Designate G1 Character Set (ISO 2022, VT100).\n * ESC * C\n * Designate G2 Character Set (ISO 2022, VT220).\n * ESC + C\n * Designate G3 Character Set (ISO 2022, VT220).\n * ESC - C\n * Designate G1 Character Set (VT300).\n * ESC . C\n * Designate G2 Character Set (VT300).\n * ESC / C\n * Designate G3 Character Set (VT300). C = A -> ISO Latin-1 Supplemental. - Supported?\n */\n public selectCharset(collectAndFlag: string): boolean {\n if (collectAndFlag.length !== 2) {\n this.selectDefaultCharset();\n return true;\n }\n if (collectAndFlag[0] === '/') {\n return true; // TODO: Is this supported?\n }\n this._charsetService.setgCharset(GLEVEL[collectAndFlag[0]], CHARSETS[collectAndFlag[1]] || DEFAULT_CHARSET);\n return true;\n }\n\n /**\n * ESC D\n * C1.IND\n * DEC mnemonic: IND (https://vt100.net/docs/vt510-rm/IND.html)\n * Moves the cursor down one line in the same column.\n *\n * @vt: #Y C1 IND \"Index\" \"\\x84\" \"Move the cursor one line down scrolling if needed.\"\n * @vt: #Y ESC IND \"Index\" \"ESC D\" \"Move the cursor one line down scrolling if needed.\"\n */\n public index(): boolean {\n this._restrictCursor();\n this._activeBuffer.y++;\n if (this._activeBuffer.y === this._activeBuffer.scrollBottom + 1) {\n this._activeBuffer.y--;\n this._bufferService.scroll(this._eraseAttrData());\n } else if (this._activeBuffer.y >= this._bufferService.rows) {\n this._activeBuffer.y = this._bufferService.rows - 1;\n }\n this._restrictCursor();\n return true;\n }\n\n /**\n * ESC H\n * C1.HTS\n * DEC mnemonic: HTS (https://vt100.net/docs/vt510-rm/HTS.html)\n * Sets a horizontal tab stop at the column position indicated by\n * the value of the active column when the terminal receives an HTS.\n *\n * @vt: #Y C1 HTS \"Horizontal Tabulation Set\" \"\\x88\" \"Places a tab stop at the current cursor position.\"\n * @vt: #Y ESC HTS \"Horizontal Tabulation Set\" \"ESC H\" \"Places a tab stop at the current cursor position.\"\n */\n public tabSet(): boolean {\n this._activeBuffer.tabs[this._activeBuffer.x] = true;\n return true;\n }\n\n /**\n * ESC M\n * C1.RI\n * DEC mnemonic: HTS\n * Moves the cursor up one line in the same column. If the cursor is at the top margin,\n * the page scrolls down.\n *\n * @vt: #Y ESC IR \"Reverse Index\" \"ESC M\" \"Move the cursor one line up scrolling if needed.\"\n */\n public reverseIndex(): boolean {\n this._restrictCursor();\n if (this._activeBuffer.y === this._activeBuffer.scrollTop) {\n // possibly move the code below to term.reverseScroll();\n // test: echo -ne '\\e[1;1H\\e[44m\\eM\\e[0m'\n // blankLine(true) is xterm/linux behavior\n const scrollRegionHeight = this._activeBuffer.scrollBottom - this._activeBuffer.scrollTop;\n this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase + this._activeBuffer.y, scrollRegionHeight, 1);\n this._activeBuffer.lines.set(this._activeBuffer.ybase + this._activeBuffer.y, this._activeBuffer.getBlankLine(this._eraseAttrData()));\n this._dirtyRowService.markRangeDirty(this._activeBuffer.scrollTop, this._activeBuffer.scrollBottom);\n } else {\n this._activeBuffer.y--;\n this._restrictCursor(); // quickfix to not run out of bounds\n }\n return true;\n }\n\n /**\n * ESC c\n * DEC mnemonic: RIS (https://vt100.net/docs/vt510-rm/RIS.html)\n * Reset to initial state.\n */\n public fullReset(): boolean {\n this._parser.reset();\n this._onRequestReset.fire();\n return true;\n }\n\n public reset(): void {\n this._curAttrData = DEFAULT_ATTR_DATA.clone();\n this._eraseAttrDataInternal = DEFAULT_ATTR_DATA.clone();\n }\n\n /**\n * back_color_erase feature for xterm.\n */\n private _eraseAttrData(): IAttributeData {\n this._eraseAttrDataInternal.bg &= ~(Attributes.CM_MASK | 0xFFFFFF);\n this._eraseAttrDataInternal.bg |= this._curAttrData.bg & ~0xFC000000;\n return this._eraseAttrDataInternal;\n }\n\n /**\n * ESC n\n * ESC o\n * ESC |\n * ESC }\n * ESC ~\n * DEC mnemonic: LS (https://vt100.net/docs/vt510-rm/LS.html)\n * When you use a locking shift, the character set remains in GL or GR until\n * you use another locking shift. (partly supported)\n */\n public setgLevel(level: number): boolean {\n this._charsetService.setgLevel(level);\n return true;\n }\n\n /**\n * ESC # 8\n * DEC mnemonic: DECALN (https://vt100.net/docs/vt510-rm/DECALN.html)\n * This control function fills the complete screen area with\n * a test pattern (E) used for adjusting screen alignment.\n *\n * @vt: #Y ESC DECALN \"Screen Alignment Pattern\" \"ESC # 8\" \"Fill viewport with a test pattern (E).\"\n */\n public screenAlignmentPattern(): boolean {\n // prepare cell data\n const cell = new CellData();\n cell.content = 1 << Content.WIDTH_SHIFT | 'E'.charCodeAt(0);\n cell.fg = this._curAttrData.fg;\n cell.bg = this._curAttrData.bg;\n\n\n this._setCursor(0, 0);\n for (let yOffset = 0; yOffset < this._bufferService.rows; ++yOffset) {\n const row = this._activeBuffer.ybase + this._activeBuffer.y + yOffset;\n const line = this._activeBuffer.lines.get(row);\n if (line) {\n line.fill(cell);\n line.isWrapped = false;\n }\n }\n this._dirtyRowService.markAllDirty();\n this._setCursor(0, 0);\n return true;\n }\n\n\n /**\n * DCS $ q Pt ST\n * DECRQSS (https://vt100.net/docs/vt510-rm/DECRQSS.html)\n * Request Status String (DECRQSS), VT420 and up.\n * Response: DECRPSS (https://vt100.net/docs/vt510-rm/DECRPSS.html)\n *\n * @vt: #P[Limited support, see below.] DCS DECRQSS \"Request Selection or Setting\" \"DCS $ q Pt ST\" \"Request several terminal settings.\"\n * Response is in the form `ESC P 1 $ r Pt ST` for valid requests, where `Pt` contains the corresponding CSI string,\n * `ESC P 0 ST` for invalid requests.\n *\n * Supported requests and responses:\n *\n * | Type | Request | Response (`Pt`) |\n * | -------------------------------- | ----------------- | ----------------------------------------------------- |\n * | Graphic Rendition (SGR) | `DCS $ q m ST` | always reporting `0m` (currently broken) |\n * | Top and Bottom Margins (DECSTBM) | `DCS $ q r ST` | `Ps ; Ps r` |\n * | Cursor Style (DECSCUSR) | `DCS $ q SP q ST` | `Ps SP q` |\n * | Protection Attribute (DECSCA) | `DCS $ q \" q ST` | `Ps \" q` (DECSCA 2 is reported as Ps = 0) |\n * | Conformance Level (DECSCL) | `DCS $ q \" p ST` | always reporting `61 ; 1 \" p` (DECSCL is unsupported) |\n *\n *\n * TODO:\n * - fix SGR report\n * - either check which conformance is better suited or remove the report completely\n * --> we are currently a mixture of all up to VT400 but dont follow anyone strictly\n */\n public requestStatusString(data: string, params: IParams): boolean {\n const f = (s: string): boolean => {\n this._coreService.triggerDataEvent(`${C0.ESC}${s}${C0.ESC}\\\\`);\n return true;\n };\n\n // access helpers\n const b = this._bufferService.buffer;\n const opts = this._optionsService.rawOptions;\n const STYLES: { [key: string]: number } = { 'block': 2, 'underline': 4, 'bar': 6 };\n\n if (data === '\"q') return f(`P1$r${this._curAttrData.isProtected() ? 1 : 0}\"q`);\n if (data === '\"p') return f(`P1$r61;1\"p`);\n if (data === 'r') return f(`P1$r${b.scrollTop + 1};${b.scrollBottom + 1}r`);\n // FIXME: report real SGR settings instead of 0m\n if (data === 'm') return f(`P1$r0m`);\n if (data === ' q') return f(`P1$r${STYLES[opts.cursorStyle] - (opts.cursorBlink ? 1 : 0)} q`);\n return f(`P0$r`);\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IDisposable } from 'common/Types';\n\n/**\n * A base class that can be extended to provide convenience methods for managing the lifecycle of an\n * object and its components.\n */\nexport abstract class Disposable implements IDisposable {\n protected _disposables: IDisposable[] = [];\n protected _isDisposed: boolean = false;\n\n constructor() {\n }\n\n /**\n * Disposes the object, triggering the `dispose` method on all registered IDisposables.\n */\n public dispose(): void {\n this._isDisposed = true;\n for (const d of this._disposables) {\n d.dispose();\n }\n this._disposables.length = 0;\n }\n\n /**\n * Registers a disposable object.\n * @param d The disposable to register.\n * @returns The disposable.\n */\n public register(d: T): T {\n this._disposables.push(d);\n return d;\n }\n\n /**\n * Unregisters a disposable object if it has been registered, if not do\n * nothing.\n * @param d The disposable to unregister.\n */\n public unregister(d: T): void {\n const index = this._disposables.indexOf(d);\n if (index !== -1) {\n this._disposables.splice(index, 1);\n }\n }\n}\n\n/**\n * Wrap a function in a disposable.\n */\nexport function toDisposable(f: () => void): IDisposable {\n return { dispose: f };\n}\n\n/**\n * Dispose of all disposables in an array and set its length to 0.\n */\nexport function disposeArray(disposables: IDisposable[]): void {\n for (const d of disposables) {\n d.dispose();\n }\n disposables.length = 0;\n}\n\n/**\n * Creates a disposable that will dispose of an array of disposables when disposed.\n */\nexport function getDisposeArrayDisposable(array: IDisposable[]): IDisposable {\n return { dispose: () => disposeArray(array) };\n}\n","/**\n * Copyright (c) 2022 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nexport class TwoKeyMap {\n private _data: { [bg: string | number]: { [fg: string | number]: TValue | undefined } | undefined } = {};\n\n public set(first: TFirst, second: TSecond, value: TValue): void {\n if (!this._data[first]) {\n this._data[first] = {};\n }\n this._data[first as string | number]![second] = value;\n }\n\n public get(first: TFirst, second: TSecond): TValue | undefined {\n return this._data[first as string | number] ? this._data[first as string | number]![second] : undefined;\n }\n\n public clear(): void {\n this._data = {};\n }\n}\n\nexport class FourKeyMap {\n private _data: TwoKeyMap> = new TwoKeyMap();\n\n public set(first: TFirst, second: TSecond, third: TThird, fourth: TFourth, value: TValue): void {\n if (!this._data.get(first, second)) {\n this._data.set(first, second, new TwoKeyMap());\n }\n this._data.get(first, second)!.set(third, fourth, value);\n }\n\n public get(first: TFirst, second: TSecond, third: TThird, fourth: TFourth): TValue | undefined {\n return this._data.get(first, second)?.get(third, fourth);\n }\n\n public clear(): void {\n this._data.clear();\n }\n}\n","/**\n * Copyright (c) 2016 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\ninterface INavigator {\n userAgent: string;\n language: string;\n platform: string;\n}\n\n// We're declaring a navigator global here as we expect it in all runtimes (node and browser), but\n// we want this module to live in common.\ndeclare const navigator: INavigator;\n\nconst isNode = (typeof navigator === 'undefined') ? true : false;\nconst userAgent = (isNode) ? 'node' : navigator.userAgent;\nconst platform = (isNode) ? 'node' : navigator.platform;\n\nexport const isFirefox = userAgent.includes('Firefox');\nexport const isLegacyEdge = userAgent.includes('Edge');\nexport const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\n\n// Find the users platform. We use this to interpret the meta key\n// and ISO third level shifts.\n// http://stackoverflow.com/q/19877924/577598\nexport const isMac = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'].includes(platform);\nexport const isIpad = platform === 'iPad';\nexport const isIphone = platform === 'iPhone';\nexport const isWindows = ['Windows', 'Win16', 'Win32', 'WinCE'].includes(platform);\nexport const isLinux = platform.indexOf('Linux') >= 0;\n","/**\n * Copyright (c) 2022 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\n// Work variables to avoid garbage collection.\nlet i = 0;\n\n/**\n * A generic list that is maintained in sorted order and allows values with duplicate keys. This\n * list is based on binary search and as such locating a key will take O(log n) amortized, this\n * includes the by key iterator.\n */\nexport class SortedList {\n private readonly _array: T[] = [];\n\n constructor(\n private readonly _getKey: (value: T) => number\n ) {\n }\n\n public clear(): void {\n this._array.length = 0;\n }\n\n public insert(value: T): void {\n if (this._array.length === 0) {\n this._array.push(value);\n return;\n }\n i = this._search(this._getKey(value), 0, this._array.length - 1);\n this._array.splice(i, 0, value);\n }\n\n public delete(value: T): boolean {\n if (this._array.length === 0) {\n return false;\n }\n const key = this._getKey(value);\n if (key === undefined) {\n return false;\n }\n i = this._search(key, 0, this._array.length - 1);\n if (i === -1) {\n return false;\n }\n if (this._getKey(this._array[i]) !== key) {\n return false;\n }\n do {\n if (this._array[i] === value) {\n this._array.splice(i, 1);\n return true;\n }\n } while (++i < this._array.length && this._getKey(this._array[i]) === key);\n return false;\n }\n\n public *getKeyIterator(key: number): IterableIterator {\n if (this._array.length === 0) {\n return;\n }\n i = this._search(key, 0, this._array.length - 1);\n if (i < 0 || i >= this._array.length) {\n return;\n }\n if (this._getKey(this._array[i]) !== key) {\n return;\n }\n do {\n yield this._array[i];\n } while (++i < this._array.length && this._getKey(this._array[i]) === key);\n }\n\n public forEachByKey(key: number, callback: (value: T) => void): void {\n if (this._array.length === 0) {\n return;\n }\n i = this._search(key, 0, this._array.length - 1);\n if (i < 0 || i >= this._array.length) {\n return;\n }\n if (this._getKey(this._array[i]) !== key) {\n return;\n }\n do {\n callback(this._array[i]);\n } while (++i < this._array.length && this._getKey(this._array[i]) === key);\n }\n\n public values(): IterableIterator {\n return this._array.values();\n }\n\n private _search(key: number, min: number, max: number): number {\n if (max < min) {\n return min;\n }\n let mid = Math.floor((min + max) / 2);\n const midKey = this._getKey(this._array[mid]);\n if (midKey > key) {\n return this._search(key, min, mid - 1);\n }\n if (midKey < key) {\n return this._search(key, mid + 1, max);\n }\n // Value found! Since keys can be duplicates, move the result index back to the lowest index\n // that matches the key.\n while (mid > 0 && this._getKey(this._array[mid - 1]) === key) {\n mid--;\n }\n return mid;\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nexport type TypedArray = Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Int8Array | Int16Array | Int32Array | Float32Array | Float64Array;\n\n\n/**\n * polyfill for TypedArray.fill\n * This is needed to support .fill in all safari versions and IE 11.\n */\nexport function fill(array: T, value: number, start?: number, end?: number): T {\n // all modern engines that support .fill\n if (array.fill) {\n return array.fill(value, start, end) as T;\n }\n return fillFallback(array, value, start, end);\n}\n\nexport function fillFallback(array: T, value: number, start: number = 0, end: number = array.length): T {\n // safari and IE 11\n // since IE 11 does not support Array.prototype.fill either\n // we cannot use the suggested polyfill from MDN\n // instead we simply fall back to looping\n if (start >= array.length) {\n return array;\n }\n start = (array.length + start) % array.length;\n if (end >= array.length) {\n end = array.length;\n } else {\n end = (array.length + end) % array.length;\n }\n for (let i = start; i < end; ++i) {\n array[i] = value;\n }\n return array;\n}\n\n/**\n * Concat two typed arrays `a` and `b`.\n * Returns a new typed array.\n */\nexport function concat(a: T, b: T): T {\n const result = new (a.constructor as any)(a.length + b.length);\n result.set(a);\n result.set(b, a.length);\n return result;\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { CHAR_DATA_CODE_INDEX, NULL_CELL_CODE, WHITESPACE_CELL_CODE } from 'common/buffer/Constants';\nimport { IBufferService } from 'common/services/Services';\n\nexport function updateWindowsModeWrappedState(bufferService: IBufferService): void {\n // Winpty does not support wraparound mode which means that lines will never\n // be marked as wrapped. This causes issues for things like copying a line\n // retaining the wrapped new line characters or if consumers are listening\n // in on the data stream.\n //\n // The workaround for this is to listen to every incoming line feed and mark\n // the line as wrapped if the last character in the previous line is not a\n // space. This is certainly not without its problems, but generally on\n // Windows when text reaches the end of the terminal it's likely going to be\n // wrapped.\n const line = bufferService.buffer.lines.get(bufferService.buffer.ybase + bufferService.buffer.y - 1);\n const lastChar = line?.get(bufferService.cols - 1);\n\n const nextLine = bufferService.buffer.lines.get(bufferService.buffer.ybase + bufferService.buffer.y);\n if (nextLine && lastChar) {\n nextLine.isWrapped = (lastChar[CHAR_DATA_CODE_INDEX] !== NULL_CELL_CODE && lastChar[CHAR_DATA_CODE_INDEX] !== WHITESPACE_CELL_CODE);\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IAttributeData, IColorRGB, IExtendedAttrs } from 'common/Types';\nimport { Attributes, FgFlags, BgFlags, UnderlineStyle, ExtFlags } from 'common/buffer/Constants';\n\nexport class AttributeData implements IAttributeData {\n public static toColorRGB(value: number): IColorRGB {\n return [\n value >>> Attributes.RED_SHIFT & 255,\n value >>> Attributes.GREEN_SHIFT & 255,\n value & 255\n ];\n }\n\n public static fromColorRGB(value: IColorRGB): number {\n return (value[0] & 255) << Attributes.RED_SHIFT | (value[1] & 255) << Attributes.GREEN_SHIFT | value[2] & 255;\n }\n\n public clone(): IAttributeData {\n const newObj = new AttributeData();\n newObj.fg = this.fg;\n newObj.bg = this.bg;\n newObj.extended = this.extended.clone();\n return newObj;\n }\n\n // data\n public fg = 0;\n public bg = 0;\n public extended: IExtendedAttrs = new ExtendedAttrs();\n\n // flags\n public isInverse(): number { return this.fg & FgFlags.INVERSE; }\n public isBold(): number { return this.fg & FgFlags.BOLD; }\n public isUnderline(): number {\n if (this.hasExtendedAttrs() && this.extended.underlineStyle !== UnderlineStyle.NONE) {\n return 1;\n }\n return this.fg & FgFlags.UNDERLINE;\n }\n public isBlink(): number { return this.fg & FgFlags.BLINK; }\n public isInvisible(): number { return this.fg & FgFlags.INVISIBLE; }\n public isItalic(): number { return this.bg & BgFlags.ITALIC; }\n public isDim(): number { return this.bg & BgFlags.DIM; }\n public isStrikethrough(): number { return this.fg & FgFlags.STRIKETHROUGH; }\n public isProtected(): number { return this.bg & BgFlags.PROTECTED; }\n\n // color modes\n public getFgColorMode(): number { return this.fg & Attributes.CM_MASK; }\n public getBgColorMode(): number { return this.bg & Attributes.CM_MASK; }\n public isFgRGB(): boolean { return (this.fg & Attributes.CM_MASK) === Attributes.CM_RGB; }\n public isBgRGB(): boolean { return (this.bg & Attributes.CM_MASK) === Attributes.CM_RGB; }\n public isFgPalette(): boolean { return (this.fg & Attributes.CM_MASK) === Attributes.CM_P16 || (this.fg & Attributes.CM_MASK) === Attributes.CM_P256; }\n public isBgPalette(): boolean { return (this.bg & Attributes.CM_MASK) === Attributes.CM_P16 || (this.bg & Attributes.CM_MASK) === Attributes.CM_P256; }\n public isFgDefault(): boolean { return (this.fg & Attributes.CM_MASK) === 0; }\n public isBgDefault(): boolean { return (this.bg & Attributes.CM_MASK) === 0; }\n public isAttributeDefault(): boolean { return this.fg === 0 && this.bg === 0; }\n\n // colors\n public getFgColor(): number {\n switch (this.fg & Attributes.CM_MASK) {\n case Attributes.CM_P16:\n case Attributes.CM_P256: return this.fg & Attributes.PCOLOR_MASK;\n case Attributes.CM_RGB: return this.fg & Attributes.RGB_MASK;\n default: return -1; // CM_DEFAULT defaults to -1\n }\n }\n public getBgColor(): number {\n switch (this.bg & Attributes.CM_MASK) {\n case Attributes.CM_P16:\n case Attributes.CM_P256: return this.bg & Attributes.PCOLOR_MASK;\n case Attributes.CM_RGB: return this.bg & Attributes.RGB_MASK;\n default: return -1; // CM_DEFAULT defaults to -1\n }\n }\n\n // extended attrs\n public hasExtendedAttrs(): number {\n return this.bg & BgFlags.HAS_EXTENDED;\n }\n public updateExtended(): void {\n if (this.extended.isEmpty()) {\n this.bg &= ~BgFlags.HAS_EXTENDED;\n } else {\n this.bg |= BgFlags.HAS_EXTENDED;\n }\n }\n public getUnderlineColor(): number {\n if ((this.bg & BgFlags.HAS_EXTENDED) && ~this.extended.underlineColor) {\n switch (this.extended.underlineColor & Attributes.CM_MASK) {\n case Attributes.CM_P16:\n case Attributes.CM_P256: return this.extended.underlineColor & Attributes.PCOLOR_MASK;\n case Attributes.CM_RGB: return this.extended.underlineColor & Attributes.RGB_MASK;\n default: return this.getFgColor();\n }\n }\n return this.getFgColor();\n }\n public getUnderlineColorMode(): number {\n return (this.bg & BgFlags.HAS_EXTENDED) && ~this.extended.underlineColor\n ? this.extended.underlineColor & Attributes.CM_MASK\n : this.getFgColorMode();\n }\n public isUnderlineColorRGB(): boolean {\n return (this.bg & BgFlags.HAS_EXTENDED) && ~this.extended.underlineColor\n ? (this.extended.underlineColor & Attributes.CM_MASK) === Attributes.CM_RGB\n : this.isFgRGB();\n }\n public isUnderlineColorPalette(): boolean {\n return (this.bg & BgFlags.HAS_EXTENDED) && ~this.extended.underlineColor\n ? (this.extended.underlineColor & Attributes.CM_MASK) === Attributes.CM_P16\n || (this.extended.underlineColor & Attributes.CM_MASK) === Attributes.CM_P256\n : this.isFgPalette();\n }\n public isUnderlineColorDefault(): boolean {\n return (this.bg & BgFlags.HAS_EXTENDED) && ~this.extended.underlineColor\n ? (this.extended.underlineColor & Attributes.CM_MASK) === 0\n : this.isFgDefault();\n }\n public getUnderlineStyle(): UnderlineStyle {\n return this.fg & FgFlags.UNDERLINE\n ? (this.bg & BgFlags.HAS_EXTENDED ? this.extended.underlineStyle : UnderlineStyle.SINGLE)\n : UnderlineStyle.NONE;\n }\n}\n\n\n/**\n * Extended attributes for a cell.\n * Holds information about different underline styles and color.\n */\nexport class ExtendedAttrs implements IExtendedAttrs {\n private _ext: number = 0;\n public get ext(): number {\n if (this._urlId) {\n return (\n (this._ext & ~ExtFlags.UNDERLINE_STYLE) |\n (this.underlineStyle << 26)\n );\n }\n return this._ext;\n }\n public set ext(value: number) { this._ext = value; }\n\n public get underlineStyle(): UnderlineStyle {\n // Always return the URL style if it has one\n if (this._urlId) {\n return UnderlineStyle.DASHED;\n }\n return (this._ext & ExtFlags.UNDERLINE_STYLE) >> 26;\n }\n public set underlineStyle(value: UnderlineStyle) {\n this._ext &= ~ExtFlags.UNDERLINE_STYLE;\n this._ext |= (value << 26) & ExtFlags.UNDERLINE_STYLE;\n }\n\n public get underlineColor(): number {\n return this._ext & (Attributes.CM_MASK | Attributes.RGB_MASK);\n }\n public set underlineColor(value: number) {\n this._ext &= ~(Attributes.CM_MASK | Attributes.RGB_MASK);\n this._ext |= value & (Attributes.CM_MASK | Attributes.RGB_MASK);\n }\n\n private _urlId: number = 0;\n public get urlId(): number {\n return this._urlId;\n }\n public set urlId(value: number) {\n this._urlId = value;\n }\n\n constructor(\n ext: number = 0,\n urlId: number = 0\n ) {\n this._ext = ext;\n this._urlId = urlId;\n }\n\n public clone(): IExtendedAttrs {\n return new ExtendedAttrs(this._ext, this._urlId);\n }\n\n /**\n * Convenient method to indicate whether the object holds no additional information,\n * that needs to be persistant in the buffer.\n */\n public isEmpty(): boolean {\n return this.underlineStyle === UnderlineStyle.NONE && this._urlId === 0;\n }\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { CircularList, IInsertEvent } from 'common/CircularList';\nimport { IBuffer, BufferIndex, IBufferStringIterator, IBufferStringIteratorResult } from 'common/buffer/Types';\nimport { IBufferLine, ICellData, IAttributeData, ICharset } from 'common/Types';\nimport { BufferLine, DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine';\nimport { CellData } from 'common/buffer/CellData';\nimport { NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE, WHITESPACE_CELL_CHAR, WHITESPACE_CELL_WIDTH, WHITESPACE_CELL_CODE, CHAR_DATA_WIDTH_INDEX, CHAR_DATA_CHAR_INDEX } from 'common/buffer/Constants';\nimport { reflowLargerApplyNewLayout, reflowLargerCreateNewLayout, reflowLargerGetLinesToRemove, reflowSmallerGetNewLineLengths, getWrappedLineTrimmedLength } from 'common/buffer/BufferReflow';\nimport { Marker } from 'common/buffer/Marker';\nimport { IOptionsService, IBufferService } from 'common/services/Services';\nimport { DEFAULT_CHARSET } from 'common/data/Charsets';\nimport { ExtendedAttrs } from 'common/buffer/AttributeData';\n\nexport const MAX_BUFFER_SIZE = 4294967295; // 2^32 - 1\n\n/**\n * This class represents a terminal buffer (an internal state of the terminal), where the\n * following information is stored (in high-level):\n * - text content of this particular buffer\n * - cursor position\n * - scroll position\n */\nexport class Buffer implements IBuffer {\n public lines: CircularList;\n public ydisp: number = 0;\n public ybase: number = 0;\n public y: number = 0;\n public x: number = 0;\n public scrollBottom: number;\n public scrollTop: number;\n // TODO: Type me\n public tabs: any;\n public savedY: number = 0;\n public savedX: number = 0;\n public savedCurAttrData = DEFAULT_ATTR_DATA.clone();\n public savedCharset: ICharset | undefined = DEFAULT_CHARSET;\n public markers: Marker[] = [];\n private _nullCell: ICellData = CellData.fromCharData([0, NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE]);\n private _whitespaceCell: ICellData = CellData.fromCharData([0, WHITESPACE_CELL_CHAR, WHITESPACE_CELL_WIDTH, WHITESPACE_CELL_CODE]);\n private _cols: number;\n private _rows: number;\n private _isClearing: boolean = false;\n\n constructor(\n private _hasScrollback: boolean,\n private _optionsService: IOptionsService,\n private _bufferService: IBufferService\n ) {\n this._cols = this._bufferService.cols;\n this._rows = this._bufferService.rows;\n this.lines = new CircularList(this._getCorrectBufferLength(this._rows));\n this.scrollTop = 0;\n this.scrollBottom = this._rows - 1;\n this.setupTabStops();\n }\n\n public getNullCell(attr?: IAttributeData): ICellData {\n if (attr) {\n this._nullCell.fg = attr.fg;\n this._nullCell.bg = attr.bg;\n this._nullCell.extended = attr.extended;\n } else {\n this._nullCell.fg = 0;\n this._nullCell.bg = 0;\n this._nullCell.extended = new ExtendedAttrs();\n }\n return this._nullCell;\n }\n\n public getWhitespaceCell(attr?: IAttributeData): ICellData {\n if (attr) {\n this._whitespaceCell.fg = attr.fg;\n this._whitespaceCell.bg = attr.bg;\n this._whitespaceCell.extended = attr.extended;\n } else {\n this._whitespaceCell.fg = 0;\n this._whitespaceCell.bg = 0;\n this._whitespaceCell.extended = new ExtendedAttrs();\n }\n return this._whitespaceCell;\n }\n\n public getBlankLine(attr: IAttributeData, isWrapped?: boolean): IBufferLine {\n return new BufferLine(this._bufferService.cols, this.getNullCell(attr), isWrapped);\n }\n\n public get hasScrollback(): boolean {\n return this._hasScrollback && this.lines.maxLength > this._rows;\n }\n\n public get isCursorInViewport(): boolean {\n const absoluteY = this.ybase + this.y;\n const relativeY = absoluteY - this.ydisp;\n return (relativeY >= 0 && relativeY < this._rows);\n }\n\n /**\n * Gets the correct buffer length based on the rows provided, the terminal's\n * scrollback and whether this buffer is flagged to have scrollback or not.\n * @param rows The terminal rows to use in the calculation.\n */\n private _getCorrectBufferLength(rows: number): number {\n if (!this._hasScrollback) {\n return rows;\n }\n\n const correctBufferLength = rows + this._optionsService.rawOptions.scrollback;\n\n return correctBufferLength > MAX_BUFFER_SIZE ? MAX_BUFFER_SIZE : correctBufferLength;\n }\n\n /**\n * Fills the buffer's viewport with blank lines.\n */\n public fillViewportRows(fillAttr?: IAttributeData): void {\n if (this.lines.length === 0) {\n if (fillAttr === undefined) {\n fillAttr = DEFAULT_ATTR_DATA;\n }\n let i = this._rows;\n while (i--) {\n this.lines.push(this.getBlankLine(fillAttr));\n }\n }\n }\n\n /**\n * Clears the buffer to it's initial state, discarding all previous data.\n */\n public clear(): void {\n this.ydisp = 0;\n this.ybase = 0;\n this.y = 0;\n this.x = 0;\n this.lines = new CircularList(this._getCorrectBufferLength(this._rows));\n this.scrollTop = 0;\n this.scrollBottom = this._rows - 1;\n this.setupTabStops();\n }\n\n /**\n * Resizes the buffer, adjusting its data accordingly.\n * @param newCols The new number of columns.\n * @param newRows The new number of rows.\n */\n public resize(newCols: number, newRows: number): void {\n // store reference to null cell with default attrs\n const nullCell = this.getNullCell(DEFAULT_ATTR_DATA);\n\n // Increase max length if needed before adjustments to allow space to fill\n // as required.\n const newMaxLength = this._getCorrectBufferLength(newRows);\n if (newMaxLength > this.lines.maxLength) {\n this.lines.maxLength = newMaxLength;\n }\n\n // The following adjustments should only happen if the buffer has been\n // initialized/filled.\n if (this.lines.length > 0) {\n // Deal with columns increasing (reducing needs to happen after reflow)\n if (this._cols < newCols) {\n for (let i = 0; i < this.lines.length; i++) {\n this.lines.get(i)!.resize(newCols, nullCell);\n }\n }\n\n // Resize rows in both directions as needed\n let addToY = 0;\n if (this._rows < newRows) {\n for (let y = this._rows; y < newRows; y++) {\n if (this.lines.length < newRows + this.ybase) {\n if (this._optionsService.rawOptions.windowsMode) {\n // Just add the new missing rows on Windows as conpty reprints the screen with it's\n // view of the world. Once a line enters scrollback for conpty it remains there\n this.lines.push(new BufferLine(newCols, nullCell));\n } else {\n if (this.ybase > 0 && this.lines.length <= this.ybase + this.y + addToY + 1) {\n // There is room above the buffer and there are no empty elements below the line,\n // scroll up\n this.ybase--;\n addToY++;\n if (this.ydisp > 0) {\n // Viewport is at the top of the buffer, must increase downwards\n this.ydisp--;\n }\n } else {\n // Add a blank line if there is no buffer left at the top to scroll to, or if there\n // are blank lines after the cursor\n this.lines.push(new BufferLine(newCols, nullCell));\n }\n }\n }\n }\n } else { // (this._rows >= newRows)\n for (let y = this._rows; y > newRows; y--) {\n if (this.lines.length > newRows + this.ybase) {\n if (this.lines.length > this.ybase + this.y + 1) {\n // The line is a blank line below the cursor, remove it\n this.lines.pop();\n } else {\n // The line is the cursor, scroll down\n this.ybase++;\n this.ydisp++;\n }\n }\n }\n }\n\n // Reduce max length if needed after adjustments, this is done after as it\n // would otherwise cut data from the bottom of the buffer.\n if (newMaxLength < this.lines.maxLength) {\n // Trim from the top of the buffer and adjust ybase and ydisp.\n const amountToTrim = this.lines.length - newMaxLength;\n if (amountToTrim > 0) {\n this.lines.trimStart(amountToTrim);\n this.ybase = Math.max(this.ybase - amountToTrim, 0);\n this.ydisp = Math.max(this.ydisp - amountToTrim, 0);\n this.savedY = Math.max(this.savedY - amountToTrim, 0);\n }\n this.lines.maxLength = newMaxLength;\n }\n\n // Make sure that the cursor stays on screen\n this.x = Math.min(this.x, newCols - 1);\n this.y = Math.min(this.y, newRows - 1);\n if (addToY) {\n this.y += addToY;\n }\n this.savedX = Math.min(this.savedX, newCols - 1);\n\n this.scrollTop = 0;\n }\n\n this.scrollBottom = newRows - 1;\n\n if (this._isReflowEnabled) {\n this._reflow(newCols, newRows);\n\n // Trim the end of the line off if cols shrunk\n if (this._cols > newCols) {\n for (let i = 0; i < this.lines.length; i++) {\n this.lines.get(i)!.resize(newCols, nullCell);\n }\n }\n }\n\n this._cols = newCols;\n this._rows = newRows;\n }\n\n private get _isReflowEnabled(): boolean {\n return this._hasScrollback && !this._optionsService.rawOptions.windowsMode;\n }\n\n private _reflow(newCols: number, newRows: number): void {\n if (this._cols === newCols) {\n return;\n }\n\n // Iterate through rows, ignore the last one as it cannot be wrapped\n if (newCols > this._cols) {\n this._reflowLarger(newCols, newRows);\n } else {\n this._reflowSmaller(newCols, newRows);\n }\n }\n\n private _reflowLarger(newCols: number, newRows: number): void {\n const toRemove: number[] = reflowLargerGetLinesToRemove(this.lines, this._cols, newCols, this.ybase + this.y, this.getNullCell(DEFAULT_ATTR_DATA));\n if (toRemove.length > 0) {\n const newLayoutResult = reflowLargerCreateNewLayout(this.lines, toRemove);\n reflowLargerApplyNewLayout(this.lines, newLayoutResult.layout);\n this._reflowLargerAdjustViewport(newCols, newRows, newLayoutResult.countRemoved);\n }\n }\n\n private _reflowLargerAdjustViewport(newCols: number, newRows: number, countRemoved: number): void {\n const nullCell = this.getNullCell(DEFAULT_ATTR_DATA);\n // Adjust viewport based on number of items removed\n let viewportAdjustments = countRemoved;\n while (viewportAdjustments-- > 0) {\n if (this.ybase === 0) {\n if (this.y > 0) {\n this.y--;\n }\n if (this.lines.length < newRows) {\n // Add an extra row at the bottom of the viewport\n this.lines.push(new BufferLine(newCols, nullCell));\n }\n } else {\n if (this.ydisp === this.ybase) {\n this.ydisp--;\n }\n this.ybase--;\n }\n }\n this.savedY = Math.max(this.savedY - countRemoved, 0);\n }\n\n private _reflowSmaller(newCols: number, newRows: number): void {\n const nullCell = this.getNullCell(DEFAULT_ATTR_DATA);\n // Gather all BufferLines that need to be inserted into the Buffer here so that they can be\n // batched up and only committed once\n const toInsert = [];\n let countToInsert = 0;\n // Go backwards as many lines may be trimmed and this will avoid considering them\n for (let y = this.lines.length - 1; y >= 0; y--) {\n // Check whether this line is a problem\n let nextLine = this.lines.get(y) as BufferLine;\n if (!nextLine || !nextLine.isWrapped && nextLine.getTrimmedLength() <= newCols) {\n continue;\n }\n\n // Gather wrapped lines and adjust y to be the starting line\n const wrappedLines: BufferLine[] = [nextLine];\n while (nextLine.isWrapped && y > 0) {\n nextLine = this.lines.get(--y) as BufferLine;\n wrappedLines.unshift(nextLine);\n }\n\n // If these lines contain the cursor don't touch them, the program will handle fixing up\n // wrapped lines with the cursor\n const absoluteY = this.ybase + this.y;\n if (absoluteY >= y && absoluteY < y + wrappedLines.length) {\n continue;\n }\n\n const lastLineLength = wrappedLines[wrappedLines.length - 1].getTrimmedLength();\n const destLineLengths = reflowSmallerGetNewLineLengths(wrappedLines, this._cols, newCols);\n const linesToAdd = destLineLengths.length - wrappedLines.length;\n let trimmedLines: number;\n if (this.ybase === 0 && this.y !== this.lines.length - 1) {\n // If the top section of the buffer is not yet filled\n trimmedLines = Math.max(0, this.y - this.lines.maxLength + linesToAdd);\n } else {\n trimmedLines = Math.max(0, this.lines.length - this.lines.maxLength + linesToAdd);\n }\n\n // Add the new lines\n const newLines: BufferLine[] = [];\n for (let i = 0; i < linesToAdd; i++) {\n const newLine = this.getBlankLine(DEFAULT_ATTR_DATA, true) as BufferLine;\n newLines.push(newLine);\n }\n if (newLines.length > 0) {\n toInsert.push({\n // countToInsert here gets the actual index, taking into account other inserted items.\n // using this we can iterate through the list forwards\n start: y + wrappedLines.length + countToInsert,\n newLines\n });\n countToInsert += newLines.length;\n }\n wrappedLines.push(...newLines);\n\n // Copy buffer data to new locations, this needs to happen backwards to do in-place\n let destLineIndex = destLineLengths.length - 1; // Math.floor(cellsNeeded / newCols);\n let destCol = destLineLengths[destLineIndex]; // cellsNeeded % newCols;\n if (destCol === 0) {\n destLineIndex--;\n destCol = destLineLengths[destLineIndex];\n }\n let srcLineIndex = wrappedLines.length - linesToAdd - 1;\n let srcCol = lastLineLength;\n while (srcLineIndex >= 0) {\n const cellsToCopy = Math.min(srcCol, destCol);\n if (wrappedLines[destLineIndex] === undefined) {\n // Sanity check that the line exists, this has been known to fail for an unknown reason\n // which would stop the reflow from happening if an exception would throw.\n break;\n }\n wrappedLines[destLineIndex].copyCellsFrom(wrappedLines[srcLineIndex], srcCol - cellsToCopy, destCol - cellsToCopy, cellsToCopy, true);\n destCol -= cellsToCopy;\n if (destCol === 0) {\n destLineIndex--;\n destCol = destLineLengths[destLineIndex];\n }\n srcCol -= cellsToCopy;\n if (srcCol === 0) {\n srcLineIndex--;\n const wrappedLinesIndex = Math.max(srcLineIndex, 0);\n srcCol = getWrappedLineTrimmedLength(wrappedLines, wrappedLinesIndex, this._cols);\n }\n }\n\n // Null out the end of the line ends if a wide character wrapped to the following line\n for (let i = 0; i < wrappedLines.length; i++) {\n if (destLineLengths[i] < newCols) {\n wrappedLines[i].setCell(destLineLengths[i], nullCell);\n }\n }\n\n // Adjust viewport as needed\n let viewportAdjustments = linesToAdd - trimmedLines;\n while (viewportAdjustments-- > 0) {\n if (this.ybase === 0) {\n if (this.y < newRows - 1) {\n this.y++;\n this.lines.pop();\n } else {\n this.ybase++;\n this.ydisp++;\n }\n } else {\n // Ensure ybase does not exceed its maximum value\n if (this.ybase < Math.min(this.lines.maxLength, this.lines.length + countToInsert) - newRows) {\n if (this.ybase === this.ydisp) {\n this.ydisp++;\n }\n this.ybase++;\n }\n }\n }\n this.savedY = Math.min(this.savedY + linesToAdd, this.ybase + newRows - 1);\n }\n\n // Rearrange lines in the buffer if there are any insertions, this is done at the end rather\n // than earlier so that it's a single O(n) pass through the buffer, instead of O(n^2) from many\n // costly calls to CircularList.splice.\n if (toInsert.length > 0) {\n // Record buffer insert events and then play them back backwards so that the indexes are\n // correct\n const insertEvents: IInsertEvent[] = [];\n\n // Record original lines so they don't get overridden when we rearrange the list\n const originalLines: BufferLine[] = [];\n for (let i = 0; i < this.lines.length; i++) {\n originalLines.push(this.lines.get(i) as BufferLine);\n }\n const originalLinesLength = this.lines.length;\n\n let originalLineIndex = originalLinesLength - 1;\n let nextToInsertIndex = 0;\n let nextToInsert = toInsert[nextToInsertIndex];\n this.lines.length = Math.min(this.lines.maxLength, this.lines.length + countToInsert);\n let countInsertedSoFar = 0;\n for (let i = Math.min(this.lines.maxLength - 1, originalLinesLength + countToInsert - 1); i >= 0; i--) {\n if (nextToInsert && nextToInsert.start > originalLineIndex + countInsertedSoFar) {\n // Insert extra lines here, adjusting i as needed\n for (let nextI = nextToInsert.newLines.length - 1; nextI >= 0; nextI--) {\n this.lines.set(i--, nextToInsert.newLines[nextI]);\n }\n i++;\n\n // Create insert events for later\n insertEvents.push({\n index: originalLineIndex + 1,\n amount: nextToInsert.newLines.length\n });\n\n countInsertedSoFar += nextToInsert.newLines.length;\n nextToInsert = toInsert[++nextToInsertIndex];\n } else {\n this.lines.set(i, originalLines[originalLineIndex--]);\n }\n }\n\n // Update markers\n let insertCountEmitted = 0;\n for (let i = insertEvents.length - 1; i >= 0; i--) {\n insertEvents[i].index += insertCountEmitted;\n this.lines.onInsertEmitter.fire(insertEvents[i]);\n insertCountEmitted += insertEvents[i].amount;\n }\n const amountToTrim = Math.max(0, originalLinesLength + countToInsert - this.lines.maxLength);\n if (amountToTrim > 0) {\n this.lines.onTrimEmitter.fire(amountToTrim);\n }\n }\n }\n\n // private _reflowSmallerGetLinesNeeded()\n\n /**\n * Translates a string index back to a BufferIndex.\n * To get the correct buffer position the string must start at `startCol` 0\n * (default in translateBufferLineToString).\n * The method also works on wrapped line strings given rows were not trimmed.\n * The method operates on the CharData string length, there are no\n * additional content or boundary checks. Therefore the string and the buffer\n * should not be altered in between.\n * TODO: respect trim flag after fixing #1685\n * @param lineIndex line index the string was retrieved from\n * @param stringIndex index within the string\n * @param startCol column offset the string was retrieved from\n */\n public stringIndexToBufferIndex(lineIndex: number, stringIndex: number, trimRight: boolean = false): BufferIndex {\n while (stringIndex) {\n const line = this.lines.get(lineIndex);\n if (!line) {\n return [-1, -1];\n }\n const length = (trimRight) ? line.getTrimmedLength() : line.length;\n for (let i = 0; i < length; ++i) {\n if (line.get(i)[CHAR_DATA_WIDTH_INDEX]) {\n // empty cells report a string length of 0, but get replaced\n // with a whitespace in translateToString, thus replace with 1\n stringIndex -= line.get(i)[CHAR_DATA_CHAR_INDEX].length || 1;\n }\n if (stringIndex < 0) {\n return [lineIndex, i];\n }\n }\n lineIndex++;\n }\n return [lineIndex, 0];\n }\n\n /**\n * Translates a buffer line to a string, with optional start and end columns.\n * Wide characters will count as two columns in the resulting string. This\n * function is useful for getting the actual text underneath the raw selection\n * position.\n * @param line The line being translated.\n * @param trimRight Whether to trim whitespace to the right.\n * @param startCol The column to start at.\n * @param endCol The column to end at.\n */\n public translateBufferLineToString(lineIndex: number, trimRight: boolean, startCol: number = 0, endCol?: number): string {\n const line = this.lines.get(lineIndex);\n if (!line) {\n return '';\n }\n return line.translateToString(trimRight, startCol, endCol);\n }\n\n public getWrappedRangeForLine(y: number): { first: number, last: number } {\n let first = y;\n let last = y;\n // Scan upwards for wrapped lines\n while (first > 0 && this.lines.get(first)!.isWrapped) {\n first--;\n }\n // Scan downwards for wrapped lines\n while (last + 1 < this.lines.length && this.lines.get(last + 1)!.isWrapped) {\n last++;\n }\n return { first, last };\n }\n\n /**\n * Setup the tab stops.\n * @param i The index to start setting up tab stops from.\n */\n public setupTabStops(i?: number): void {\n if (i !== null && i !== undefined) {\n if (!this.tabs[i]) {\n i = this.prevStop(i);\n }\n } else {\n this.tabs = {};\n i = 0;\n }\n\n for (; i < this._cols; i += this._optionsService.rawOptions.tabStopWidth) {\n this.tabs[i] = true;\n }\n }\n\n /**\n * Move the cursor to the previous tab stop from the given position (default is current).\n * @param x The position to move the cursor to the previous tab stop.\n */\n public prevStop(x?: number): number {\n if (x === null || x === undefined) {\n x = this.x;\n }\n while (!this.tabs[--x] && x > 0);\n return x >= this._cols ? this._cols - 1 : x < 0 ? 0 : x;\n }\n\n /**\n * Move the cursor one tab stop forward from the given position (default is current).\n * @param x The position to move the cursor one tab stop forward.\n */\n public nextStop(x?: number): number {\n if (x === null || x === undefined) {\n x = this.x;\n }\n while (!this.tabs[++x] && x < this._cols);\n return x >= this._cols ? this._cols - 1 : x < 0 ? 0 : x;\n }\n\n /**\n * Clears markers on single line.\n * @param y The line to clear.\n */\n public clearMarkers(y: number): void {\n this._isClearing = true;\n for (let i = 0; i < this.markers.length; i++) {\n if (this.markers[i].line === y) {\n this.markers[i].dispose();\n this.markers.splice(i--, 1);\n }\n }\n this._isClearing = false;\n }\n\n /**\n * Clears markers on all lines\n */\n public clearAllMarkers(): void {\n this._isClearing = true;\n for (let i = 0; i < this.markers.length; i++) {\n this.markers[i].dispose();\n this.markers.splice(i--, 1);\n }\n this._isClearing = false;\n }\n\n public addMarker(y: number): Marker {\n const marker = new Marker(y);\n this.markers.push(marker);\n marker.register(this.lines.onTrim(amount => {\n marker.line -= amount;\n // The marker should be disposed when the line is trimmed from the buffer\n if (marker.line < 0) {\n marker.dispose();\n }\n }));\n marker.register(this.lines.onInsert(event => {\n if (marker.line >= event.index) {\n marker.line += event.amount;\n }\n }));\n marker.register(this.lines.onDelete(event => {\n // Delete the marker if it's within the range\n if (marker.line >= event.index && marker.line < event.index + event.amount) {\n marker.dispose();\n }\n\n // Shift the marker if it's after the deleted range\n if (marker.line > event.index) {\n marker.line -= event.amount;\n }\n }));\n marker.register(marker.onDispose(() => this._removeMarker(marker)));\n return marker;\n }\n\n private _removeMarker(marker: Marker): void {\n if (!this._isClearing) {\n this.markers.splice(this.markers.indexOf(marker), 1);\n }\n }\n\n public iterator(trimRight: boolean, startIndex?: number, endIndex?: number, startOverscan?: number, endOverscan?: number): IBufferStringIterator {\n return new BufferStringIterator(this, trimRight, startIndex, endIndex, startOverscan, endOverscan);\n }\n}\n\n/**\n * Iterator to get unwrapped content strings from the buffer.\n * The iterator returns at least the string data between the borders\n * `startIndex` and `endIndex` (exclusive) and will expand the lines\n * by `startOverscan` to the top and by `endOverscan` to the bottom,\n * if no new line was found in between.\n * It will never read/return string data beyond `startIndex - startOverscan`\n * or `endIndex + endOverscan`. Therefore the first and last line might be truncated.\n * It is possible to always get the full string for the first and last line as well\n * by setting the overscan values to the actual buffer length. This not recommended\n * since it might return the whole buffer within a single string in a worst case scenario.\n */\nexport class BufferStringIterator implements IBufferStringIterator {\n private _current: number;\n\n constructor(\n private _buffer: IBuffer,\n private _trimRight: boolean,\n private _startIndex: number = 0,\n private _endIndex: number = _buffer.lines.length,\n private _startOverscan: number = 0,\n private _endOverscan: number = 0\n ) {\n if (this._startIndex < 0) {\n this._startIndex = 0;\n }\n if (this._endIndex > this._buffer.lines.length) {\n this._endIndex = this._buffer.lines.length;\n }\n this._current = this._startIndex;\n }\n\n public hasNext(): boolean {\n return this._current < this._endIndex;\n }\n\n public next(): IBufferStringIteratorResult {\n const range = this._buffer.getWrappedRangeForLine(this._current);\n // limit search window to overscan value at both borders\n if (range.first < this._startIndex - this._startOverscan) {\n range.first = this._startIndex - this._startOverscan;\n }\n if (range.last > this._endIndex + this._endOverscan) {\n range.last = this._endIndex + this._endOverscan;\n }\n // limit to current buffer length\n range.first = Math.max(range.first, 0);\n range.last = Math.min(range.last, this._buffer.lines.length);\n let content = '';\n for (let i = range.first; i <= range.last; ++i) {\n content += this._buffer.translateBufferLineToString(i, this._trimRight);\n }\n this._current = range.last + 1;\n return { range, content };\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { CharData, IBufferLine, ICellData, IAttributeData, IExtendedAttrs } from 'common/Types';\nimport { stringFromCodePoint } from 'common/input/TextDecoder';\nimport { CHAR_DATA_CHAR_INDEX, CHAR_DATA_WIDTH_INDEX, CHAR_DATA_ATTR_INDEX, NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE, WHITESPACE_CELL_CHAR, Content, BgFlags, FgFlags } from 'common/buffer/Constants';\nimport { CellData } from 'common/buffer/CellData';\nimport { AttributeData, ExtendedAttrs } from 'common/buffer/AttributeData';\n\n/**\n * buffer memory layout:\n *\n * | uint32_t | uint32_t | uint32_t |\n * | `content` | `FG` | `BG` |\n * | wcwidth(2) comb(1) codepoint(21) | flags(8) R(8) G(8) B(8) | flags(8) R(8) G(8) B(8) |\n */\n\n\n/** typed array slots taken by one cell */\nconst CELL_SIZE = 3;\n\n/**\n * Cell member indices.\n *\n * Direct access:\n * `content = data[column * CELL_SIZE + Cell.CONTENT];`\n * `fg = data[column * CELL_SIZE + Cell.FG];`\n * `bg = data[column * CELL_SIZE + Cell.BG];`\n */\nconst enum Cell {\n CONTENT = 0,\n FG = 1, // currently simply holds all known attrs\n BG = 2 // currently unused\n}\n\nexport const DEFAULT_ATTR_DATA = Object.freeze(new AttributeData());\n\n/** Work variables to avoid garbage collection. */\nconst w: { startIndex: number } = {\n startIndex: 0\n};\n\n/**\n * Typed array based bufferline implementation.\n *\n * There are 2 ways to insert data into the cell buffer:\n * - `setCellFromCodepoint` + `addCodepointToCell`\n * Use these for data that is already UTF32.\n * Used during normal input in `InputHandler` for faster buffer access.\n * - `setCell`\n * This method takes a CellData object and stores the data in the buffer.\n * Use `CellData.fromCharData` to create the CellData object (e.g. from JS string).\n *\n * To retrieve data from the buffer use either one of the primitive methods\n * (if only one particular value is needed) or `loadCell`. For `loadCell` in a loop\n * memory allocs / GC pressure can be greatly reduced by reusing the CellData object.\n */\nexport class BufferLine implements IBufferLine {\n protected _data: Uint32Array;\n protected _combined: {[index: number]: string} = {};\n protected _extendedAttrs: {[index: number]: IExtendedAttrs | undefined} = {};\n public length: number;\n\n constructor(cols: number, fillCellData?: ICellData, public isWrapped: boolean = false) {\n this._data = new Uint32Array(cols * CELL_SIZE);\n const cell = fillCellData || CellData.fromCharData([0, NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE]);\n for (let i = 0; i < cols; ++i) {\n this.setCell(i, cell);\n }\n this.length = cols;\n }\n\n /**\n * Get cell data CharData.\n * @deprecated\n */\n public get(index: number): CharData {\n const content = this._data[index * CELL_SIZE + Cell.CONTENT];\n const cp = content & Content.CODEPOINT_MASK;\n return [\n this._data[index * CELL_SIZE + Cell.FG],\n (content & Content.IS_COMBINED_MASK)\n ? this._combined[index]\n : (cp) ? stringFromCodePoint(cp) : '',\n content >> Content.WIDTH_SHIFT,\n (content & Content.IS_COMBINED_MASK)\n ? this._combined[index].charCodeAt(this._combined[index].length - 1)\n : cp\n ];\n }\n\n /**\n * Set cell data from CharData.\n * @deprecated\n */\n public set(index: number, value: CharData): void {\n this._data[index * CELL_SIZE + Cell.FG] = value[CHAR_DATA_ATTR_INDEX];\n if (value[CHAR_DATA_CHAR_INDEX].length > 1) {\n this._combined[index] = value[1];\n this._data[index * CELL_SIZE + Cell.CONTENT] = index | Content.IS_COMBINED_MASK | (value[CHAR_DATA_WIDTH_INDEX] << Content.WIDTH_SHIFT);\n } else {\n this._data[index * CELL_SIZE + Cell.CONTENT] = value[CHAR_DATA_CHAR_INDEX].charCodeAt(0) | (value[CHAR_DATA_WIDTH_INDEX] << Content.WIDTH_SHIFT);\n }\n }\n\n /**\n * primitive getters\n * use these when only one value is needed, otherwise use `loadCell`\n */\n public getWidth(index: number): number {\n return this._data[index * CELL_SIZE + Cell.CONTENT] >> Content.WIDTH_SHIFT;\n }\n\n /** Test whether content has width. */\n public hasWidth(index: number): number {\n return this._data[index * CELL_SIZE + Cell.CONTENT] & Content.WIDTH_MASK;\n }\n\n /** Get FG cell component. */\n public getFg(index: number): number {\n return this._data[index * CELL_SIZE + Cell.FG];\n }\n\n /** Get BG cell component. */\n public getBg(index: number): number {\n return this._data[index * CELL_SIZE + Cell.BG];\n }\n\n /**\n * Test whether contains any chars.\n * Basically an empty has no content, but other cells might differ in FG/BG\n * from real empty cells.\n * */\n public hasContent(index: number): number {\n return this._data[index * CELL_SIZE + Cell.CONTENT] & Content.HAS_CONTENT_MASK;\n }\n\n /**\n * Get codepoint of the cell.\n * To be in line with `code` in CharData this either returns\n * a single UTF32 codepoint or the last codepoint of a combined string.\n */\n public getCodePoint(index: number): number {\n const content = this._data[index * CELL_SIZE + Cell.CONTENT];\n if (content & Content.IS_COMBINED_MASK) {\n return this._combined[index].charCodeAt(this._combined[index].length - 1);\n }\n return content & Content.CODEPOINT_MASK;\n }\n\n /** Test whether the cell contains a combined string. */\n public isCombined(index: number): number {\n return this._data[index * CELL_SIZE + Cell.CONTENT] & Content.IS_COMBINED_MASK;\n }\n\n /** Returns the string content of the cell. */\n public getString(index: number): string {\n const content = this._data[index * CELL_SIZE + Cell.CONTENT];\n if (content & Content.IS_COMBINED_MASK) {\n return this._combined[index];\n }\n if (content & Content.CODEPOINT_MASK) {\n return stringFromCodePoint(content & Content.CODEPOINT_MASK);\n }\n // return empty string for empty cells\n return '';\n }\n\n /** Get state of protected flag. */\n public isProtected(index: number): number {\n return this._data[index * CELL_SIZE + Cell.BG] & BgFlags.PROTECTED;\n }\n\n /**\n * Load data at `index` into `cell`. This is used to access cells in a way that's more friendly\n * to GC as it significantly reduced the amount of new objects/references needed.\n */\n public loadCell(index: number, cell: ICellData): ICellData {\n w.startIndex = index * CELL_SIZE;\n cell.content = this._data[w.startIndex + Cell.CONTENT];\n cell.fg = this._data[w.startIndex + Cell.FG];\n cell.bg = this._data[w.startIndex + Cell.BG];\n if (cell.content & Content.IS_COMBINED_MASK) {\n cell.combinedData = this._combined[index];\n }\n if (cell.bg & BgFlags.HAS_EXTENDED) {\n cell.extended = this._extendedAttrs[index]!;\n }\n return cell;\n }\n\n /**\n * Set data at `index` to `cell`.\n */\n public setCell(index: number, cell: ICellData): void {\n if (cell.content & Content.IS_COMBINED_MASK) {\n this._combined[index] = cell.combinedData;\n }\n if (cell.bg & BgFlags.HAS_EXTENDED) {\n this._extendedAttrs[index] = cell.extended;\n }\n this._data[index * CELL_SIZE + Cell.CONTENT] = cell.content;\n this._data[index * CELL_SIZE + Cell.FG] = cell.fg;\n this._data[index * CELL_SIZE + Cell.BG] = cell.bg;\n }\n\n /**\n * Set cell data from input handler.\n * Since the input handler see the incoming chars as UTF32 codepoints,\n * it gets an optimized access method.\n */\n public setCellFromCodePoint(index: number, codePoint: number, width: number, fg: number, bg: number, eAttrs: IExtendedAttrs): void {\n if (bg & BgFlags.HAS_EXTENDED) {\n this._extendedAttrs[index] = eAttrs;\n }\n this._data[index * CELL_SIZE + Cell.CONTENT] = codePoint | (width << Content.WIDTH_SHIFT);\n this._data[index * CELL_SIZE + Cell.FG] = fg;\n this._data[index * CELL_SIZE + Cell.BG] = bg;\n }\n\n /**\n * Add a codepoint to a cell from input handler.\n * During input stage combining chars with a width of 0 follow and stack\n * onto a leading char. Since we already set the attrs\n * by the previous `setDataFromCodePoint` call, we can omit it here.\n */\n public addCodepointToCell(index: number, codePoint: number): void {\n let content = this._data[index * CELL_SIZE + Cell.CONTENT];\n if (content & Content.IS_COMBINED_MASK) {\n // we already have a combined string, simply add\n this._combined[index] += stringFromCodePoint(codePoint);\n } else {\n if (content & Content.CODEPOINT_MASK) {\n // normal case for combining chars:\n // - move current leading char + new one into combined string\n // - set combined flag\n this._combined[index] = stringFromCodePoint(content & Content.CODEPOINT_MASK) + stringFromCodePoint(codePoint);\n content &= ~Content.CODEPOINT_MASK; // set codepoint in buffer to 0\n content |= Content.IS_COMBINED_MASK;\n } else {\n // should not happen - we actually have no data in the cell yet\n // simply set the data in the cell buffer with a width of 1\n content = codePoint | (1 << Content.WIDTH_SHIFT);\n }\n this._data[index * CELL_SIZE + Cell.CONTENT] = content;\n }\n }\n\n public insertCells(pos: number, n: number, fillCellData: ICellData, eraseAttr?: IAttributeData): void {\n pos %= this.length;\n\n // handle fullwidth at pos: reset cell one to the left if pos is second cell of a wide char\n if (pos && this.getWidth(pos - 1) === 2) {\n this.setCellFromCodePoint(pos - 1, 0, 1, eraseAttr?.fg || 0, eraseAttr?.bg || 0, eraseAttr?.extended || new ExtendedAttrs());\n }\n\n if (n < this.length - pos) {\n const cell = new CellData();\n for (let i = this.length - pos - n - 1; i >= 0; --i) {\n this.setCell(pos + n + i, this.loadCell(pos + i, cell));\n }\n for (let i = 0; i < n; ++i) {\n this.setCell(pos + i, fillCellData);\n }\n } else {\n for (let i = pos; i < this.length; ++i) {\n this.setCell(i, fillCellData);\n }\n }\n\n // handle fullwidth at line end: reset last cell if it is first cell of a wide char\n if (this.getWidth(this.length - 1) === 2) {\n this.setCellFromCodePoint(this.length - 1, 0, 1, eraseAttr?.fg || 0, eraseAttr?.bg || 0, eraseAttr?.extended || new ExtendedAttrs());\n }\n }\n\n public deleteCells(pos: number, n: number, fillCellData: ICellData, eraseAttr?: IAttributeData): void {\n pos %= this.length;\n if (n < this.length - pos) {\n const cell = new CellData();\n for (let i = 0; i < this.length - pos - n; ++i) {\n this.setCell(pos + i, this.loadCell(pos + n + i, cell));\n }\n for (let i = this.length - n; i < this.length; ++i) {\n this.setCell(i, fillCellData);\n }\n } else {\n for (let i = pos; i < this.length; ++i) {\n this.setCell(i, fillCellData);\n }\n }\n\n // handle fullwidth at pos:\n // - reset pos-1 if wide char\n // - reset pos if width==0 (previous second cell of a wide char)\n if (pos && this.getWidth(pos - 1) === 2) {\n this.setCellFromCodePoint(pos - 1, 0, 1, eraseAttr?.fg || 0, eraseAttr?.bg || 0, eraseAttr?.extended || new ExtendedAttrs());\n }\n if (this.getWidth(pos) === 0 && !this.hasContent(pos)) {\n this.setCellFromCodePoint(pos, 0, 1, eraseAttr?.fg || 0, eraseAttr?.bg || 0, eraseAttr?.extended || new ExtendedAttrs());\n }\n }\n\n public replaceCells(start: number, end: number, fillCellData: ICellData, eraseAttr?: IAttributeData, respectProtect: boolean = false): void {\n // full branching on respectProtect==true, hopefully getting fast JIT for standard case\n if (respectProtect) {\n if (start && this.getWidth(start - 1) === 2 && !this.isProtected(start - 1)) {\n this.setCellFromCodePoint(start - 1, 0, 1, eraseAttr?.fg || 0, eraseAttr?.bg || 0, eraseAttr?.extended || new ExtendedAttrs());\n }\n if (end < this.length && this.getWidth(end - 1) === 2 && !this.isProtected(end)) {\n this.setCellFromCodePoint(end, 0, 1, eraseAttr?.fg || 0, eraseAttr?.bg || 0, eraseAttr?.extended || new ExtendedAttrs());\n }\n while (start < end && start < this.length) {\n if (!this.isProtected(start)) {\n this.setCell(start, fillCellData);\n }\n start++;\n }\n return;\n }\n\n // handle fullwidth at start: reset cell one to the left if start is second cell of a wide char\n if (start && this.getWidth(start - 1) === 2) {\n this.setCellFromCodePoint(start - 1, 0, 1, eraseAttr?.fg || 0, eraseAttr?.bg || 0, eraseAttr?.extended || new ExtendedAttrs());\n }\n // handle fullwidth at last cell + 1: reset to empty cell if it is second part of a wide char\n if (end < this.length && this.getWidth(end - 1) === 2) {\n this.setCellFromCodePoint(end, 0, 1, eraseAttr?.fg || 0, eraseAttr?.bg || 0, eraseAttr?.extended || new ExtendedAttrs());\n }\n\n while (start < end && start < this.length) {\n this.setCell(start++, fillCellData);\n }\n }\n\n public resize(cols: number, fillCellData: ICellData): void {\n if (cols === this.length) {\n return;\n }\n if (cols > this.length) {\n const data = new Uint32Array(cols * CELL_SIZE);\n if (this.length) {\n if (cols * CELL_SIZE < this._data.length) {\n data.set(this._data.subarray(0, cols * CELL_SIZE));\n } else {\n data.set(this._data);\n }\n }\n this._data = data;\n for (let i = this.length; i < cols; ++i) {\n this.setCell(i, fillCellData);\n }\n } else {\n if (cols) {\n const data = new Uint32Array(cols * CELL_SIZE);\n data.set(this._data.subarray(0, cols * CELL_SIZE));\n this._data = data;\n // Remove any cut off combined data, FIXME: repeat this for extended attrs\n const keys = Object.keys(this._combined);\n for (let i = 0; i < keys.length; i++) {\n const key = parseInt(keys[i], 10);\n if (key >= cols) {\n delete this._combined[key];\n }\n }\n } else {\n this._data = new Uint32Array(0);\n this._combined = {};\n }\n }\n this.length = cols;\n }\n\n /** fill a line with fillCharData */\n public fill(fillCellData: ICellData, respectProtect: boolean = false): void {\n // full branching on respectProtect==true, hopefully getting fast JIT for standard case\n if (respectProtect) {\n for (let i = 0; i < this.length; ++i) {\n if (!this.isProtected(i)) {\n this.setCell(i, fillCellData);\n }\n }\n return;\n }\n this._combined = {};\n this._extendedAttrs = {};\n for (let i = 0; i < this.length; ++i) {\n this.setCell(i, fillCellData);\n }\n }\n\n /** alter to a full copy of line */\n public copyFrom(line: BufferLine): void {\n if (this.length !== line.length) {\n this._data = new Uint32Array(line._data);\n } else {\n // use high speed copy if lengths are equal\n this._data.set(line._data);\n }\n this.length = line.length;\n this._combined = {};\n for (const el in line._combined) {\n this._combined[el] = line._combined[el];\n }\n this._extendedAttrs = {};\n for (const el in line._extendedAttrs) {\n this._extendedAttrs[el] = line._extendedAttrs[el];\n }\n this.isWrapped = line.isWrapped;\n }\n\n /** create a new clone */\n public clone(): IBufferLine {\n const newLine = new BufferLine(0);\n newLine._data = new Uint32Array(this._data);\n newLine.length = this.length;\n for (const el in this._combined) {\n newLine._combined[el] = this._combined[el];\n }\n for (const el in this._extendedAttrs) {\n newLine._extendedAttrs[el] = this._extendedAttrs[el];\n }\n newLine.isWrapped = this.isWrapped;\n return newLine;\n }\n\n public getTrimmedLength(): number {\n for (let i = this.length - 1; i >= 0; --i) {\n if ((this._data[i * CELL_SIZE + Cell.CONTENT] & Content.HAS_CONTENT_MASK)) {\n return i + (this._data[i * CELL_SIZE + Cell.CONTENT] >> Content.WIDTH_SHIFT);\n }\n }\n return 0;\n }\n\n public copyCellsFrom(src: BufferLine, srcCol: number, destCol: number, length: number, applyInReverse: boolean): void {\n const srcData = src._data;\n if (applyInReverse) {\n for (let cell = length - 1; cell >= 0; cell--) {\n for (let i = 0; i < CELL_SIZE; i++) {\n this._data[(destCol + cell) * CELL_SIZE + i] = srcData[(srcCol + cell) * CELL_SIZE + i];\n }\n if (srcData[(srcCol + cell) * CELL_SIZE + Cell.BG] & BgFlags.HAS_EXTENDED) {\n this._extendedAttrs[destCol + cell] = src._extendedAttrs[srcCol + cell];\n }\n }\n } else {\n for (let cell = 0; cell < length; cell++) {\n for (let i = 0; i < CELL_SIZE; i++) {\n this._data[(destCol + cell) * CELL_SIZE + i] = srcData[(srcCol + cell) * CELL_SIZE + i];\n }\n if (srcData[(srcCol + cell) * CELL_SIZE + Cell.BG] & BgFlags.HAS_EXTENDED) {\n this._extendedAttrs[destCol + cell] = src._extendedAttrs[srcCol + cell];\n }\n }\n }\n\n // Move any combined data over as needed, FIXME: repeat for extended attrs\n const srcCombinedKeys = Object.keys(src._combined);\n for (let i = 0; i < srcCombinedKeys.length; i++) {\n const key = parseInt(srcCombinedKeys[i], 10);\n if (key >= srcCol) {\n this._combined[key - srcCol + destCol] = src._combined[key];\n }\n }\n }\n\n public translateToString(trimRight: boolean = false, startCol: number = 0, endCol: number = this.length): string {\n if (trimRight) {\n endCol = Math.min(endCol, this.getTrimmedLength());\n }\n let result = '';\n while (startCol < endCol) {\n const content = this._data[startCol * CELL_SIZE + Cell.CONTENT];\n const cp = content & Content.CODEPOINT_MASK;\n result += (content & Content.IS_COMBINED_MASK) ? this._combined[startCol] : (cp) ? stringFromCodePoint(cp) : WHITESPACE_CELL_CHAR;\n startCol += (content >> Content.WIDTH_SHIFT) || 1; // always advance by 1\n }\n return result;\n }\n}\n","/**\n * Copyright (c) 2021 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferRange } from 'xterm';\n\nexport function getRangeLength(range: IBufferRange, bufferCols: number): number {\n if (range.start.y > range.end.y) {\n throw new Error(`Buffer range end (${range.end.x}, ${range.end.y}) cannot be before start (${range.start.x}, ${range.start.y})`);\n }\n return bufferCols * (range.end.y - range.start.y) + (range.end.x - range.start.x + 1);\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { BufferLine } from 'common/buffer/BufferLine';\nimport { CircularList } from 'common/CircularList';\nimport { IBufferLine, ICellData } from 'common/Types';\n\nexport interface INewLayoutResult {\n layout: number[];\n countRemoved: number;\n}\n\n/**\n * Evaluates and returns indexes to be removed after a reflow larger occurs. Lines will be removed\n * when a wrapped line unwraps.\n * @param lines The buffer lines.\n * @param newCols The columns after resize.\n */\nexport function reflowLargerGetLinesToRemove(lines: CircularList, oldCols: number, newCols: number, bufferAbsoluteY: number, nullCell: ICellData): number[] {\n // Gather all BufferLines that need to be removed from the Buffer here so that they can be\n // batched up and only committed once\n const toRemove: number[] = [];\n\n for (let y = 0; y < lines.length - 1; y++) {\n // Check if this row is wrapped\n let i = y;\n let nextLine = lines.get(++i) as BufferLine;\n if (!nextLine.isWrapped) {\n continue;\n }\n\n // Check how many lines it's wrapped for\n const wrappedLines: BufferLine[] = [lines.get(y) as BufferLine];\n while (i < lines.length && nextLine.isWrapped) {\n wrappedLines.push(nextLine);\n nextLine = lines.get(++i) as BufferLine;\n }\n\n // If these lines contain the cursor don't touch them, the program will handle fixing up wrapped\n // lines with the cursor\n if (bufferAbsoluteY >= y && bufferAbsoluteY < i) {\n y += wrappedLines.length - 1;\n continue;\n }\n\n // Copy buffer data to new locations\n let destLineIndex = 0;\n let destCol = getWrappedLineTrimmedLength(wrappedLines, destLineIndex, oldCols);\n let srcLineIndex = 1;\n let srcCol = 0;\n while (srcLineIndex < wrappedLines.length) {\n const srcTrimmedTineLength = getWrappedLineTrimmedLength(wrappedLines, srcLineIndex, oldCols);\n const srcRemainingCells = srcTrimmedTineLength - srcCol;\n const destRemainingCells = newCols - destCol;\n const cellsToCopy = Math.min(srcRemainingCells, destRemainingCells);\n\n wrappedLines[destLineIndex].copyCellsFrom(wrappedLines[srcLineIndex], srcCol, destCol, cellsToCopy, false);\n\n destCol += cellsToCopy;\n if (destCol === newCols) {\n destLineIndex++;\n destCol = 0;\n }\n srcCol += cellsToCopy;\n if (srcCol === srcTrimmedTineLength) {\n srcLineIndex++;\n srcCol = 0;\n }\n\n // Make sure the last cell isn't wide, if it is copy it to the current dest\n if (destCol === 0 && destLineIndex !== 0) {\n if (wrappedLines[destLineIndex - 1].getWidth(newCols - 1) === 2) {\n wrappedLines[destLineIndex].copyCellsFrom(wrappedLines[destLineIndex - 1], newCols - 1, destCol++, 1, false);\n // Null out the end of the last row\n wrappedLines[destLineIndex - 1].setCell(newCols - 1, nullCell);\n }\n }\n }\n\n // Clear out remaining cells or fragments could remain;\n wrappedLines[destLineIndex].replaceCells(destCol, newCols, nullCell);\n\n // Work backwards and remove any rows at the end that only contain null cells\n let countToRemove = 0;\n for (let i = wrappedLines.length - 1; i > 0; i--) {\n if (i > destLineIndex || wrappedLines[i].getTrimmedLength() === 0) {\n countToRemove++;\n } else {\n break;\n }\n }\n\n if (countToRemove > 0) {\n toRemove.push(y + wrappedLines.length - countToRemove); // index\n toRemove.push(countToRemove);\n }\n\n y += wrappedLines.length - 1;\n }\n return toRemove;\n}\n\n/**\n * Creates and return the new layout for lines given an array of indexes to be removed.\n * @param lines The buffer lines.\n * @param toRemove The indexes to remove.\n */\nexport function reflowLargerCreateNewLayout(lines: CircularList, toRemove: number[]): INewLayoutResult {\n const layout: number[] = [];\n // First iterate through the list and get the actual indexes to use for rows\n let nextToRemoveIndex = 0;\n let nextToRemoveStart = toRemove[nextToRemoveIndex];\n let countRemovedSoFar = 0;\n for (let i = 0; i < lines.length; i++) {\n if (nextToRemoveStart === i) {\n const countToRemove = toRemove[++nextToRemoveIndex];\n\n // Tell markers that there was a deletion\n lines.onDeleteEmitter.fire({\n index: i - countRemovedSoFar,\n amount: countToRemove\n });\n\n i += countToRemove - 1;\n countRemovedSoFar += countToRemove;\n nextToRemoveStart = toRemove[++nextToRemoveIndex];\n } else {\n layout.push(i);\n }\n }\n return {\n layout,\n countRemoved: countRemovedSoFar\n };\n}\n\n/**\n * Applies a new layout to the buffer. This essentially does the same as many splice calls but it's\n * done all at once in a single iteration through the list since splice is very expensive.\n * @param lines The buffer lines.\n * @param newLayout The new layout to apply.\n */\nexport function reflowLargerApplyNewLayout(lines: CircularList, newLayout: number[]): void {\n // Record original lines so they don't get overridden when we rearrange the list\n const newLayoutLines: BufferLine[] = [];\n for (let i = 0; i < newLayout.length; i++) {\n newLayoutLines.push(lines.get(newLayout[i]) as BufferLine);\n }\n\n // Rearrange the list\n for (let i = 0; i < newLayoutLines.length; i++) {\n lines.set(i, newLayoutLines[i]);\n }\n lines.length = newLayout.length;\n}\n\n/**\n * Gets the new line lengths for a given wrapped line. The purpose of this function it to pre-\n * compute the wrapping points since wide characters may need to be wrapped onto the following line.\n * This function will return an array of numbers of where each line wraps to, the resulting array\n * will only contain the values `newCols` (when the line does not end with a wide character) and\n * `newCols - 1` (when the line does end with a wide character), except for the last value which\n * will contain the remaining items to fill the line.\n *\n * Calling this with a `newCols` value of `1` will lock up.\n *\n * @param wrappedLines The wrapped lines to evaluate.\n * @param oldCols The columns before resize.\n * @param newCols The columns after resize.\n */\nexport function reflowSmallerGetNewLineLengths(wrappedLines: BufferLine[], oldCols: number, newCols: number): number[] {\n const newLineLengths: number[] = [];\n const cellsNeeded = wrappedLines.map((l, i) => getWrappedLineTrimmedLength(wrappedLines, i, oldCols)).reduce((p, c) => p + c);\n\n // Use srcCol and srcLine to find the new wrapping point, use that to get the cellsAvailable and\n // linesNeeded\n let srcCol = 0;\n let srcLine = 0;\n let cellsAvailable = 0;\n while (cellsAvailable < cellsNeeded) {\n if (cellsNeeded - cellsAvailable < newCols) {\n // Add the final line and exit the loop\n newLineLengths.push(cellsNeeded - cellsAvailable);\n break;\n }\n srcCol += newCols;\n const oldTrimmedLength = getWrappedLineTrimmedLength(wrappedLines, srcLine, oldCols);\n if (srcCol > oldTrimmedLength) {\n srcCol -= oldTrimmedLength;\n srcLine++;\n }\n const endsWithWide = wrappedLines[srcLine].getWidth(srcCol - 1) === 2;\n if (endsWithWide) {\n srcCol--;\n }\n const lineLength = endsWithWide ? newCols - 1 : newCols;\n newLineLengths.push(lineLength);\n cellsAvailable += lineLength;\n }\n\n return newLineLengths;\n}\n\nexport function getWrappedLineTrimmedLength(lines: BufferLine[], i: number, cols: number): number {\n // If this is the last row in the wrapped line, get the actual trimmed length\n if (i === lines.length - 1) {\n return lines[i].getTrimmedLength();\n }\n // Detect whether the following line starts with a wide character and the end of the current line\n // is null, if so then we can be pretty sure the null character should be excluded from the line\n // length]\n const endsInNull = !(lines[i].hasContent(cols - 1)) && lines[i].getWidth(cols - 1) === 1;\n const followingLineStartsWithWide = lines[i + 1].getWidth(0) === 2;\n if (endsInNull && followingLineStartsWithWide) {\n return cols - 1;\n }\n return cols;\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBuffer, IBufferSet } from 'common/buffer/Types';\nimport { IAttributeData } from 'common/Types';\nimport { Buffer } from 'common/buffer/Buffer';\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\nimport { IOptionsService, IBufferService } from 'common/services/Services';\nimport { Disposable } from 'common/Lifecycle';\n\n/**\n * The BufferSet represents the set of two buffers used by xterm terminals (normal and alt) and\n * provides also utilities for working with them.\n */\nexport class BufferSet extends Disposable implements IBufferSet {\n private _normal!: Buffer;\n private _alt!: Buffer;\n private _activeBuffer!: Buffer;\n\n private _onBufferActivate = this.register(new EventEmitter<{activeBuffer: IBuffer, inactiveBuffer: IBuffer}>());\n public get onBufferActivate(): IEvent<{activeBuffer: IBuffer, inactiveBuffer: IBuffer}> { return this._onBufferActivate.event; }\n\n /**\n * Create a new BufferSet for the given terminal.\n * @param _terminal - The terminal the BufferSet will belong to\n */\n constructor(\n private readonly _optionsService: IOptionsService,\n private readonly _bufferService: IBufferService\n ) {\n super();\n this.reset();\n }\n\n public reset(): void {\n this._normal = new Buffer(true, this._optionsService, this._bufferService);\n this._normal.fillViewportRows();\n\n // The alt buffer should never have scrollback.\n // See http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-The-Alternate-Screen-Buffer\n this._alt = new Buffer(false, this._optionsService, this._bufferService);\n this._activeBuffer = this._normal;\n this._onBufferActivate.fire({\n activeBuffer: this._normal,\n inactiveBuffer: this._alt\n });\n\n this.setupTabStops();\n }\n\n /**\n * Returns the alt Buffer of the BufferSet\n */\n public get alt(): Buffer {\n return this._alt;\n }\n\n /**\n * Returns the currently active Buffer of the BufferSet\n */\n public get active(): Buffer {\n return this._activeBuffer;\n }\n\n /**\n * Returns the normal Buffer of the BufferSet\n */\n public get normal(): Buffer {\n return this._normal;\n }\n\n /**\n * Sets the normal Buffer of the BufferSet as its currently active Buffer\n */\n public activateNormalBuffer(): void {\n if (this._activeBuffer === this._normal) {\n return;\n }\n this._normal.x = this._alt.x;\n this._normal.y = this._alt.y;\n // The alt buffer should always be cleared when we switch to the normal\n // buffer. This frees up memory since the alt buffer should always be new\n // when activated.\n this._alt.clearAllMarkers();\n this._alt.clear();\n this._activeBuffer = this._normal;\n this._onBufferActivate.fire({\n activeBuffer: this._normal,\n inactiveBuffer: this._alt\n });\n }\n\n /**\n * Sets the alt Buffer of the BufferSet as its currently active Buffer\n */\n public activateAltBuffer(fillAttr?: IAttributeData): void {\n if (this._activeBuffer === this._alt) {\n return;\n }\n // Since the alt buffer is always cleared when the normal buffer is\n // activated, we want to fill it when switching to it.\n this._alt.fillViewportRows(fillAttr);\n this._alt.x = this._normal.x;\n this._alt.y = this._normal.y;\n this._activeBuffer = this._alt;\n this._onBufferActivate.fire({\n activeBuffer: this._alt,\n inactiveBuffer: this._normal\n });\n }\n\n /**\n * Resizes both normal and alt buffers, adjusting their data accordingly.\n * @param newCols The new number of columns.\n * @param newRows The new number of rows.\n */\n public resize(newCols: number, newRows: number): void {\n this._normal.resize(newCols, newRows);\n this._alt.resize(newCols, newRows);\n }\n\n /**\n * Setup the tab stops.\n * @param i The index to start setting up tab stops from.\n */\n public setupTabStops(i?: number): void {\n this._normal.setupTabStops(i);\n this._alt.setupTabStops(i);\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { CharData, ICellData, IExtendedAttrs } from 'common/Types';\nimport { stringFromCodePoint } from 'common/input/TextDecoder';\nimport { CHAR_DATA_CHAR_INDEX, CHAR_DATA_WIDTH_INDEX, CHAR_DATA_ATTR_INDEX, Content } from 'common/buffer/Constants';\nimport { AttributeData, ExtendedAttrs } from 'common/buffer/AttributeData';\n\n/**\n * CellData - represents a single Cell in the terminal buffer.\n */\nexport class CellData extends AttributeData implements ICellData {\n /** Helper to create CellData from CharData. */\n public static fromCharData(value: CharData): CellData {\n const obj = new CellData();\n obj.setFromCharData(value);\n return obj;\n }\n /** Primitives from terminal buffer. */\n public content = 0;\n public fg = 0;\n public bg = 0;\n public extended: IExtendedAttrs = new ExtendedAttrs();\n public combinedData = '';\n /** Whether cell contains a combined string. */\n public isCombined(): number {\n return this.content & Content.IS_COMBINED_MASK;\n }\n /** Width of the cell. */\n public getWidth(): number {\n return this.content >> Content.WIDTH_SHIFT;\n }\n /** JS string of the content. */\n public getChars(): string {\n if (this.content & Content.IS_COMBINED_MASK) {\n return this.combinedData;\n }\n if (this.content & Content.CODEPOINT_MASK) {\n return stringFromCodePoint(this.content & Content.CODEPOINT_MASK);\n }\n return '';\n }\n /**\n * Codepoint of cell\n * Note this returns the UTF32 codepoint of single chars,\n * if content is a combined string it returns the codepoint\n * of the last char in string to be in line with code in CharData.\n * */\n public getCode(): number {\n return (this.isCombined())\n ? this.combinedData.charCodeAt(this.combinedData.length - 1)\n : this.content & Content.CODEPOINT_MASK;\n }\n /** Set data from CharData */\n public setFromCharData(value: CharData): void {\n this.fg = value[CHAR_DATA_ATTR_INDEX];\n this.bg = 0;\n let combined = false;\n // surrogates and combined strings need special treatment\n if (value[CHAR_DATA_CHAR_INDEX].length > 2) {\n combined = true;\n }\n else if (value[CHAR_DATA_CHAR_INDEX].length === 2) {\n const code = value[CHAR_DATA_CHAR_INDEX].charCodeAt(0);\n // if the 2-char string is a surrogate create single codepoint\n // everything else is combined\n if (0xD800 <= code && code <= 0xDBFF) {\n const second = value[CHAR_DATA_CHAR_INDEX].charCodeAt(1);\n if (0xDC00 <= second && second <= 0xDFFF) {\n this.content = ((code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000) | (value[CHAR_DATA_WIDTH_INDEX] << Content.WIDTH_SHIFT);\n }\n else {\n combined = true;\n }\n }\n else {\n combined = true;\n }\n }\n else {\n this.content = value[CHAR_DATA_CHAR_INDEX].charCodeAt(0) | (value[CHAR_DATA_WIDTH_INDEX] << Content.WIDTH_SHIFT);\n }\n if (combined) {\n this.combinedData = value[CHAR_DATA_CHAR_INDEX];\n this.content = Content.IS_COMBINED_MASK | (value[CHAR_DATA_WIDTH_INDEX] << Content.WIDTH_SHIFT);\n }\n }\n /** Get data as CharData. */\n public getAsCharData(): CharData {\n return [this.fg, this.getChars(), this.getWidth(), this.getCode()];\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nexport const DEFAULT_COLOR = 256;\nexport const DEFAULT_ATTR = (0 << 18) | (DEFAULT_COLOR << 9) | (256 << 0);\nexport const DEFAULT_EXT = 0;\n\nexport const CHAR_DATA_ATTR_INDEX = 0;\nexport const CHAR_DATA_CHAR_INDEX = 1;\nexport const CHAR_DATA_WIDTH_INDEX = 2;\nexport const CHAR_DATA_CODE_INDEX = 3;\n\n/**\n * Null cell - a real empty cell (containing nothing).\n * Note that code should always be 0 for a null cell as\n * several test condition of the buffer line rely on this.\n */\nexport const NULL_CELL_CHAR = '';\nexport const NULL_CELL_WIDTH = 1;\nexport const NULL_CELL_CODE = 0;\n\n/**\n * Whitespace cell.\n * This is meant as a replacement for empty cells when needed\n * during rendering lines to preserve correct aligment.\n */\nexport const WHITESPACE_CELL_CHAR = ' ';\nexport const WHITESPACE_CELL_WIDTH = 1;\nexport const WHITESPACE_CELL_CODE = 32;\n\n/**\n * Bitmasks for accessing data in `content`.\n */\nexport const enum Content {\n /**\n * bit 1..21 codepoint, max allowed in UTF32 is 0x10FFFF (21 bits taken)\n * read: `codepoint = content & Content.codepointMask;`\n * write: `content |= codepoint & Content.codepointMask;`\n * shortcut if precondition `codepoint <= 0x10FFFF` is met:\n * `content |= codepoint;`\n */\n CODEPOINT_MASK = 0x1FFFFF,\n\n /**\n * bit 22 flag indication whether a cell contains combined content\n * read: `isCombined = content & Content.isCombined;`\n * set: `content |= Content.isCombined;`\n * clear: `content &= ~Content.isCombined;`\n */\n IS_COMBINED_MASK = 0x200000, // 1 << 21\n\n /**\n * bit 1..22 mask to check whether a cell contains any string data\n * we need to check for codepoint and isCombined bits to see\n * whether a cell contains anything\n * read: `isEmpty = !(content & Content.hasContent)`\n */\n HAS_CONTENT_MASK = 0x3FFFFF,\n\n /**\n * bit 23..24 wcwidth value of cell, takes 2 bits (ranges from 0..2)\n * read: `width = (content & Content.widthMask) >> Content.widthShift;`\n * `hasWidth = content & Content.widthMask;`\n * as long as wcwidth is highest value in `content`:\n * `width = content >> Content.widthShift;`\n * write: `content |= (width << Content.widthShift) & Content.widthMask;`\n * shortcut if precondition `0 <= width <= 3` is met:\n * `content |= width << Content.widthShift;`\n */\n WIDTH_MASK = 0xC00000, // 3 << 22\n WIDTH_SHIFT = 22\n}\n\nexport const enum Attributes {\n /**\n * bit 1..8 blue in RGB, color in P256 and P16\n */\n BLUE_MASK = 0xFF,\n BLUE_SHIFT = 0,\n PCOLOR_MASK = 0xFF,\n PCOLOR_SHIFT = 0,\n\n /**\n * bit 9..16 green in RGB\n */\n GREEN_MASK = 0xFF00,\n GREEN_SHIFT = 8,\n\n /**\n * bit 17..24 red in RGB\n */\n RED_MASK = 0xFF0000,\n RED_SHIFT = 16,\n\n /**\n * bit 25..26 color mode: DEFAULT (0) | P16 (1) | P256 (2) | RGB (3)\n */\n CM_MASK = 0x3000000,\n CM_DEFAULT = 0,\n CM_P16 = 0x1000000,\n CM_P256 = 0x2000000,\n CM_RGB = 0x3000000,\n\n /**\n * bit 1..24 RGB room\n */\n RGB_MASK = 0xFFFFFF\n}\n\nexport const enum FgFlags {\n /**\n * bit 27..32\n */\n INVERSE = 0x4000000,\n BOLD = 0x8000000,\n UNDERLINE = 0x10000000,\n BLINK = 0x20000000,\n INVISIBLE = 0x40000000,\n STRIKETHROUGH = 0x80000000,\n}\n\nexport const enum BgFlags {\n /**\n * bit 27..32 (upper 2 unused)\n */\n ITALIC = 0x4000000,\n DIM = 0x8000000,\n HAS_EXTENDED = 0x10000000,\n PROTECTED = 0x20000000\n}\n\nexport const enum ExtFlags {\n /**\n * bit 27..32 (upper 3 unused)\n */\n UNDERLINE_STYLE = 0x1C000000\n}\n\nexport const enum UnderlineStyle {\n NONE = 0,\n SINGLE = 1,\n DOUBLE = 2,\n CURLY = 3,\n DOTTED = 4,\n DASHED = 5\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\nimport { Disposable } from 'common/Lifecycle';\nimport { IMarker } from 'common/Types';\n\nexport class Marker extends Disposable implements IMarker {\n private static _nextId = 1;\n\n private _id: number = Marker._nextId++;\n public isDisposed: boolean = false;\n\n public get id(): number { return this._id; }\n\n private _onDispose = new EventEmitter();\n public get onDispose(): IEvent { return this._onDispose.event; }\n\n constructor(\n public line: number\n ) {\n super();\n }\n\n public dispose(): void {\n if (this.isDisposed) {\n return;\n }\n this.isDisposed = true;\n this.line = -1;\n // Emit before super.dispose such that dispose listeners get a change to react\n this._onDispose.fire();\n super.dispose();\n }\n}\n","/**\n * Copyright (c) 2016 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ICharset } from 'common/Types';\n\n/**\n * The character sets supported by the terminal. These enable several languages\n * to be represented within the terminal with only 8-bit encoding. See ISO 2022\n * for a discussion on character sets. Only VT100 character sets are supported.\n */\nexport const CHARSETS: { [key: string]: ICharset | undefined } = {};\n\n/**\n * The default character set, US.\n */\nexport const DEFAULT_CHARSET: ICharset | undefined = CHARSETS['B'];\n\n/**\n * DEC Special Character and Line Drawing Set.\n * Reference: http://vt100.net/docs/vt102-ug/table5-13.html\n * A lot of curses apps use this if they see TERM=xterm.\n * testing: echo -e '\\e(0a\\e(B'\n * The xterm output sometimes seems to conflict with the\n * reference above. xterm seems in line with the reference\n * when running vttest however.\n * The table below now uses xterm's output from vttest.\n */\nCHARSETS['0'] = {\n '`': '\\u25c6', // '◆'\n 'a': '\\u2592', // '▒'\n 'b': '\\u2409', // '␉' (HT)\n 'c': '\\u240c', // '␌' (FF)\n 'd': '\\u240d', // '␍' (CR)\n 'e': '\\u240a', // '␊' (LF)\n 'f': '\\u00b0', // '°'\n 'g': '\\u00b1', // '±'\n 'h': '\\u2424', // '␤' (NL)\n 'i': '\\u240b', // '␋' (VT)\n 'j': '\\u2518', // '┘'\n 'k': '\\u2510', // '┐'\n 'l': '\\u250c', // '┌'\n 'm': '\\u2514', // '└'\n 'n': '\\u253c', // '┼'\n 'o': '\\u23ba', // '⎺'\n 'p': '\\u23bb', // '⎻'\n 'q': '\\u2500', // '─'\n 'r': '\\u23bc', // '⎼'\n 's': '\\u23bd', // '⎽'\n 't': '\\u251c', // '├'\n 'u': '\\u2524', // '┤'\n 'v': '\\u2534', // '┴'\n 'w': '\\u252c', // '┬'\n 'x': '\\u2502', // '│'\n 'y': '\\u2264', // '≤'\n 'z': '\\u2265', // '≥'\n '{': '\\u03c0', // 'π'\n '|': '\\u2260', // '≠'\n '}': '\\u00a3', // '£'\n '~': '\\u00b7' // '·'\n};\n\n/**\n * British character set\n * ESC (A\n * Reference: http://vt100.net/docs/vt220-rm/table2-5.html\n */\nCHARSETS['A'] = {\n '#': '£'\n};\n\n/**\n * United States character set\n * ESC (B\n */\nCHARSETS['B'] = undefined;\n\n/**\n * Dutch character set\n * ESC (4\n * Reference: http://vt100.net/docs/vt220-rm/table2-6.html\n */\nCHARSETS['4'] = {\n '#': '£',\n '@': '¾',\n '[': 'ij',\n '\\\\': '½',\n ']': '|',\n '{': '¨',\n '|': 'f',\n '}': '¼',\n '~': '´'\n};\n\n/**\n * Finnish character set\n * ESC (C or ESC (5\n * Reference: http://vt100.net/docs/vt220-rm/table2-7.html\n */\nCHARSETS['C'] =\nCHARSETS['5'] = {\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Å',\n '^': 'Ü',\n '`': 'é',\n '{': 'ä',\n '|': 'ö',\n '}': 'å',\n '~': 'ü'\n};\n\n/**\n * French character set\n * ESC (R\n * Reference: http://vt100.net/docs/vt220-rm/table2-8.html\n */\nCHARSETS['R'] = {\n '#': '£',\n '@': 'à',\n '[': '°',\n '\\\\': 'ç',\n ']': '§',\n '{': 'é',\n '|': 'ù',\n '}': 'è',\n '~': '¨'\n};\n\n/**\n * French Canadian character set\n * ESC (Q\n * Reference: http://vt100.net/docs/vt220-rm/table2-9.html\n */\nCHARSETS['Q'] = {\n '@': 'à',\n '[': 'â',\n '\\\\': 'ç',\n ']': 'ê',\n '^': 'î',\n '`': 'ô',\n '{': 'é',\n '|': 'ù',\n '}': 'è',\n '~': 'û'\n};\n\n/**\n * German character set\n * ESC (K\n * Reference: http://vt100.net/docs/vt220-rm/table2-10.html\n */\nCHARSETS['K'] = {\n '@': '§',\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Ü',\n '{': 'ä',\n '|': 'ö',\n '}': 'ü',\n '~': 'ß'\n};\n\n/**\n * Italian character set\n * ESC (Y\n * Reference: http://vt100.net/docs/vt220-rm/table2-11.html\n */\nCHARSETS['Y'] = {\n '#': '£',\n '@': '§',\n '[': '°',\n '\\\\': 'ç',\n ']': 'é',\n '`': 'ù',\n '{': 'à',\n '|': 'ò',\n '}': 'è',\n '~': 'ì'\n};\n\n/**\n * Norwegian/Danish character set\n * ESC (E or ESC (6\n * Reference: http://vt100.net/docs/vt220-rm/table2-12.html\n */\nCHARSETS['E'] =\nCHARSETS['6'] = {\n '@': 'Ä',\n '[': 'Æ',\n '\\\\': 'Ø',\n ']': 'Å',\n '^': 'Ü',\n '`': 'ä',\n '{': 'æ',\n '|': 'ø',\n '}': 'å',\n '~': 'ü'\n};\n\n/**\n * Spanish character set\n * ESC (Z\n * Reference: http://vt100.net/docs/vt220-rm/table2-13.html\n */\nCHARSETS['Z'] = {\n '#': '£',\n '@': '§',\n '[': '¡',\n '\\\\': 'Ñ',\n ']': '¿',\n '{': '°',\n '|': 'ñ',\n '}': 'ç'\n};\n\n/**\n * Swedish character set\n * ESC (H or ESC (7\n * Reference: http://vt100.net/docs/vt220-rm/table2-14.html\n */\nCHARSETS['H'] =\nCHARSETS['7'] = {\n '@': 'É',\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Å',\n '^': 'Ü',\n '`': 'é',\n '{': 'ä',\n '|': 'ö',\n '}': 'å',\n '~': 'ü'\n};\n\n/**\n * Swiss character set\n * ESC (=\n * Reference: http://vt100.net/docs/vt220-rm/table2-15.html\n */\nCHARSETS['='] = {\n '#': 'ù',\n '@': 'à',\n '[': 'é',\n '\\\\': 'ç',\n ']': 'ê',\n '^': 'î',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '_': 'è',\n '`': 'ô',\n '{': 'ä',\n '|': 'ö',\n '}': 'ü',\n '~': 'û'\n};\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\n/**\n * C0 control codes\n * See = https://en.wikipedia.org/wiki/C0_and_C1_control_codes\n */\nexport namespace C0 {\n /** Null (Caret = ^@, C = \\0) */\n export const NUL = '\\x00';\n /** Start of Heading (Caret = ^A) */\n export const SOH = '\\x01';\n /** Start of Text (Caret = ^B) */\n export const STX = '\\x02';\n /** End of Text (Caret = ^C) */\n export const ETX = '\\x03';\n /** End of Transmission (Caret = ^D) */\n export const EOT = '\\x04';\n /** Enquiry (Caret = ^E) */\n export const ENQ = '\\x05';\n /** Acknowledge (Caret = ^F) */\n export const ACK = '\\x06';\n /** Bell (Caret = ^G, C = \\a) */\n export const BEL = '\\x07';\n /** Backspace (Caret = ^H, C = \\b) */\n export const BS = '\\x08';\n /** Character Tabulation, Horizontal Tabulation (Caret = ^I, C = \\t) */\n export const HT = '\\x09';\n /** Line Feed (Caret = ^J, C = \\n) */\n export const LF = '\\x0a';\n /** Line Tabulation, Vertical Tabulation (Caret = ^K, C = \\v) */\n export const VT = '\\x0b';\n /** Form Feed (Caret = ^L, C = \\f) */\n export const FF = '\\x0c';\n /** Carriage Return (Caret = ^M, C = \\r) */\n export const CR = '\\x0d';\n /** Shift Out (Caret = ^N) */\n export const SO = '\\x0e';\n /** Shift In (Caret = ^O) */\n export const SI = '\\x0f';\n /** Data Link Escape (Caret = ^P) */\n export const DLE = '\\x10';\n /** Device Control One (XON) (Caret = ^Q) */\n export const DC1 = '\\x11';\n /** Device Control Two (Caret = ^R) */\n export const DC2 = '\\x12';\n /** Device Control Three (XOFF) (Caret = ^S) */\n export const DC3 = '\\x13';\n /** Device Control Four (Caret = ^T) */\n export const DC4 = '\\x14';\n /** Negative Acknowledge (Caret = ^U) */\n export const NAK = '\\x15';\n /** Synchronous Idle (Caret = ^V) */\n export const SYN = '\\x16';\n /** End of Transmission Block (Caret = ^W) */\n export const ETB = '\\x17';\n /** Cancel (Caret = ^X) */\n export const CAN = '\\x18';\n /** End of Medium (Caret = ^Y) */\n export const EM = '\\x19';\n /** Substitute (Caret = ^Z) */\n export const SUB = '\\x1a';\n /** Escape (Caret = ^[, C = \\e) */\n export const ESC = '\\x1b';\n /** File Separator (Caret = ^\\) */\n export const FS = '\\x1c';\n /** Group Separator (Caret = ^]) */\n export const GS = '\\x1d';\n /** Record Separator (Caret = ^^) */\n export const RS = '\\x1e';\n /** Unit Separator (Caret = ^_) */\n export const US = '\\x1f';\n /** Space */\n export const SP = '\\x20';\n /** Delete (Caret = ^?) */\n export const DEL = '\\x7f';\n}\n\n/**\n * C1 control codes\n * See = https://en.wikipedia.org/wiki/C0_and_C1_control_codes\n */\nexport namespace C1 {\n /** padding character */\n export const PAD = '\\x80';\n /** High Octet Preset */\n export const HOP = '\\x81';\n /** Break Permitted Here */\n export const BPH = '\\x82';\n /** No Break Here */\n export const NBH = '\\x83';\n /** Index */\n export const IND = '\\x84';\n /** Next Line */\n export const NEL = '\\x85';\n /** Start of Selected Area */\n export const SSA = '\\x86';\n /** End of Selected Area */\n export const ESA = '\\x87';\n /** Horizontal Tabulation Set */\n export const HTS = '\\x88';\n /** Horizontal Tabulation With Justification */\n export const HTJ = '\\x89';\n /** Vertical Tabulation Set */\n export const VTS = '\\x8a';\n /** Partial Line Down */\n export const PLD = '\\x8b';\n /** Partial Line Up */\n export const PLU = '\\x8c';\n /** Reverse Index */\n export const RI = '\\x8d';\n /** Single-Shift 2 */\n export const SS2 = '\\x8e';\n /** Single-Shift 3 */\n export const SS3 = '\\x8f';\n /** Device Control String */\n export const DCS = '\\x90';\n /** Private Use 1 */\n export const PU1 = '\\x91';\n /** Private Use 2 */\n export const PU2 = '\\x92';\n /** Set Transmit State */\n export const STS = '\\x93';\n /** Destructive backspace, intended to eliminate ambiguity about meaning of BS. */\n export const CCH = '\\x94';\n /** Message Waiting */\n export const MW = '\\x95';\n /** Start of Protected Area */\n export const SPA = '\\x96';\n /** End of Protected Area */\n export const EPA = '\\x97';\n /** Start of String */\n export const SOS = '\\x98';\n /** Single Graphic Character Introducer */\n export const SGCI = '\\x99';\n /** Single Character Introducer */\n export const SCI = '\\x9a';\n /** Control Sequence Introducer */\n export const CSI = '\\x9b';\n /** String Terminator */\n export const ST = '\\x9c';\n /** Operating System Command */\n export const OSC = '\\x9d';\n /** Privacy Message */\n export const PM = '\\x9e';\n /** Application Program Command */\n export const APC = '\\x9f';\n}\nexport namespace C1_ESCAPED {\n export const ST = `${C0.ESC}\\\\`;\n}\n","/**\n * Copyright (c) 2014 The xterm.js authors. All rights reserved.\n * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)\n * @license MIT\n */\n\nimport { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from 'common/Types';\nimport { C0 } from 'common/data/EscapeSequences';\n\n// reg + shift key mappings for digits and special chars\nconst KEYCODE_KEY_MAPPINGS: { [key: number]: [string, string]} = {\n // digits 0-9\n 48: ['0', ')'],\n 49: ['1', '!'],\n 50: ['2', '@'],\n 51: ['3', '#'],\n 52: ['4', '$'],\n 53: ['5', '%'],\n 54: ['6', '^'],\n 55: ['7', '&'],\n 56: ['8', '*'],\n 57: ['9', '('],\n\n // special chars\n 186: [';', ':'],\n 187: ['=', '+'],\n 188: [',', '<'],\n 189: ['-', '_'],\n 190: ['.', '>'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: ['\\'', '\"']\n};\n\nexport function evaluateKeyboardEvent(\n ev: IKeyboardEvent,\n applicationCursorMode: boolean,\n isMac: boolean,\n macOptionIsMeta: boolean\n): IKeyboardResult {\n const result: IKeyboardResult = {\n type: KeyboardResultType.SEND_KEY,\n // Whether to cancel event propagation (NOTE: this may not be needed since the event is\n // canceled at the end of keyDown\n cancel: false,\n // The new key even to emit\n key: undefined\n };\n const modifiers = (ev.shiftKey ? 1 : 0) | (ev.altKey ? 2 : 0) | (ev.ctrlKey ? 4 : 0) | (ev.metaKey ? 8 : 0);\n switch (ev.keyCode) {\n case 0:\n if (ev.key === 'UIKeyInputUpArrow') {\n if (applicationCursorMode) {\n result.key = C0.ESC + 'OA';\n } else {\n result.key = C0.ESC + '[A';\n }\n }\n else if (ev.key === 'UIKeyInputLeftArrow') {\n if (applicationCursorMode) {\n result.key = C0.ESC + 'OD';\n } else {\n result.key = C0.ESC + '[D';\n }\n }\n else if (ev.key === 'UIKeyInputRightArrow') {\n if (applicationCursorMode) {\n result.key = C0.ESC + 'OC';\n } else {\n result.key = C0.ESC + '[C';\n }\n }\n else if (ev.key === 'UIKeyInputDownArrow') {\n if (applicationCursorMode) {\n result.key = C0.ESC + 'OB';\n } else {\n result.key = C0.ESC + '[B';\n }\n }\n break;\n case 8:\n // backspace\n if (ev.altKey) {\n result.key = C0.ESC + C0.DEL; // \\e ^?\n break;\n }\n result.key = C0.DEL; // ^?\n break;\n case 9:\n // tab\n if (ev.shiftKey) {\n result.key = C0.ESC + '[Z';\n break;\n }\n result.key = C0.HT;\n result.cancel = true;\n break;\n case 13:\n // return/enter\n result.key = ev.altKey ? C0.ESC + C0.CR : C0.CR;\n result.cancel = true;\n break;\n case 27:\n // escape\n result.key = C0.ESC;\n if (ev.altKey) {\n result.key = C0.ESC + C0.ESC;\n }\n result.cancel = true;\n break;\n case 37:\n // left-arrow\n if (ev.metaKey) {\n break;\n }\n if (modifiers) {\n result.key = C0.ESC + '[1;' + (modifiers + 1) + 'D';\n // HACK: Make Alt + left-arrow behave like Ctrl + left-arrow: move one word backwards\n // http://unix.stackexchange.com/a/108106\n // macOS uses different escape sequences than linux\n if (result.key === C0.ESC + '[1;3D') {\n result.key = C0.ESC + (isMac ? 'b' : '[1;5D');\n }\n } else if (applicationCursorMode) {\n result.key = C0.ESC + 'OD';\n } else {\n result.key = C0.ESC + '[D';\n }\n break;\n case 39:\n // right-arrow\n if (ev.metaKey) {\n break;\n }\n if (modifiers) {\n result.key = C0.ESC + '[1;' + (modifiers + 1) + 'C';\n // HACK: Make Alt + right-arrow behave like Ctrl + right-arrow: move one word forward\n // http://unix.stackexchange.com/a/108106\n // macOS uses different escape sequences than linux\n if (result.key === C0.ESC + '[1;3C') {\n result.key = C0.ESC + (isMac ? 'f' : '[1;5C');\n }\n } else if (applicationCursorMode) {\n result.key = C0.ESC + 'OC';\n } else {\n result.key = C0.ESC + '[C';\n }\n break;\n case 38:\n // up-arrow\n if (ev.metaKey) {\n break;\n }\n if (modifiers) {\n result.key = C0.ESC + '[1;' + (modifiers + 1) + 'A';\n // HACK: Make Alt + up-arrow behave like Ctrl + up-arrow\n // http://unix.stackexchange.com/a/108106\n // macOS uses different escape sequences than linux\n if (!isMac && result.key === C0.ESC + '[1;3A') {\n result.key = C0.ESC + '[1;5A';\n }\n } else if (applicationCursorMode) {\n result.key = C0.ESC + 'OA';\n } else {\n result.key = C0.ESC + '[A';\n }\n break;\n case 40:\n // down-arrow\n if (ev.metaKey) {\n break;\n }\n if (modifiers) {\n result.key = C0.ESC + '[1;' + (modifiers + 1) + 'B';\n // HACK: Make Alt + down-arrow behave like Ctrl + down-arrow\n // http://unix.stackexchange.com/a/108106\n // macOS uses different escape sequences than linux\n if (!isMac && result.key === C0.ESC + '[1;3B') {\n result.key = C0.ESC + '[1;5B';\n }\n } else if (applicationCursorMode) {\n result.key = C0.ESC + 'OB';\n } else {\n result.key = C0.ESC + '[B';\n }\n break;\n case 45:\n // insert\n if (!ev.shiftKey && !ev.ctrlKey) {\n // or + are used to\n // copy-paste on some systems.\n result.key = C0.ESC + '[2~';\n }\n break;\n case 46:\n // delete\n if (modifiers) {\n result.key = C0.ESC + '[3;' + (modifiers + 1) + '~';\n } else {\n result.key = C0.ESC + '[3~';\n }\n break;\n case 36:\n // home\n if (modifiers) {\n result.key = C0.ESC + '[1;' + (modifiers + 1) + 'H';\n } else if (applicationCursorMode) {\n result.key = C0.ESC + 'OH';\n } else {\n result.key = C0.ESC + '[H';\n }\n break;\n case 35:\n // end\n if (modifiers) {\n result.key = C0.ESC + '[1;' + (modifiers + 1) + 'F';\n } else if (applicationCursorMode) {\n result.key = C0.ESC + 'OF';\n } else {\n result.key = C0.ESC + '[F';\n }\n break;\n case 33:\n // page up\n if (ev.shiftKey) {\n result.type = KeyboardResultType.PAGE_UP;\n } else if (ev.ctrlKey) {\n result.key = C0.ESC + '[5;' + (modifiers + 1) + '~';\n } else {\n result.key = C0.ESC + '[5~';\n }\n break;\n case 34:\n // page down\n if (ev.shiftKey) {\n result.type = KeyboardResultType.PAGE_DOWN;\n } else if (ev.ctrlKey) {\n result.key = C0.ESC + '[6;' + (modifiers + 1) + '~';\n } else {\n result.key = C0.ESC + '[6~';\n }\n break;\n case 112:\n // F1-F12\n if (modifiers) {\n result.key = C0.ESC + '[1;' + (modifiers + 1) + 'P';\n } else {\n result.key = C0.ESC + 'OP';\n }\n break;\n case 113:\n if (modifiers) {\n result.key = C0.ESC + '[1;' + (modifiers + 1) + 'Q';\n } else {\n result.key = C0.ESC + 'OQ';\n }\n break;\n case 114:\n if (modifiers) {\n result.key = C0.ESC + '[1;' + (modifiers + 1) + 'R';\n } else {\n result.key = C0.ESC + 'OR';\n }\n break;\n case 115:\n if (modifiers) {\n result.key = C0.ESC + '[1;' + (modifiers + 1) + 'S';\n } else {\n result.key = C0.ESC + 'OS';\n }\n break;\n case 116:\n if (modifiers) {\n result.key = C0.ESC + '[15;' + (modifiers + 1) + '~';\n } else {\n result.key = C0.ESC + '[15~';\n }\n break;\n case 117:\n if (modifiers) {\n result.key = C0.ESC + '[17;' + (modifiers + 1) + '~';\n } else {\n result.key = C0.ESC + '[17~';\n }\n break;\n case 118:\n if (modifiers) {\n result.key = C0.ESC + '[18;' + (modifiers + 1) + '~';\n } else {\n result.key = C0.ESC + '[18~';\n }\n break;\n case 119:\n if (modifiers) {\n result.key = C0.ESC + '[19;' + (modifiers + 1) + '~';\n } else {\n result.key = C0.ESC + '[19~';\n }\n break;\n case 120:\n if (modifiers) {\n result.key = C0.ESC + '[20;' + (modifiers + 1) + '~';\n } else {\n result.key = C0.ESC + '[20~';\n }\n break;\n case 121:\n if (modifiers) {\n result.key = C0.ESC + '[21;' + (modifiers + 1) + '~';\n } else {\n result.key = C0.ESC + '[21~';\n }\n break;\n case 122:\n if (modifiers) {\n result.key = C0.ESC + '[23;' + (modifiers + 1) + '~';\n } else {\n result.key = C0.ESC + '[23~';\n }\n break;\n case 123:\n if (modifiers) {\n result.key = C0.ESC + '[24;' + (modifiers + 1) + '~';\n } else {\n result.key = C0.ESC + '[24~';\n }\n break;\n default:\n // a-z and space\n if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) {\n if (ev.keyCode >= 65 && ev.keyCode <= 90) {\n result.key = String.fromCharCode(ev.keyCode - 64);\n } else if (ev.keyCode === 32) {\n result.key = C0.NUL;\n } else if (ev.keyCode >= 51 && ev.keyCode <= 55) {\n // escape, file sep, group sep, record sep, unit sep\n result.key = String.fromCharCode(ev.keyCode - 51 + 27);\n } else if (ev.keyCode === 56) {\n result.key = C0.DEL;\n } else if (ev.keyCode === 219) {\n result.key = C0.ESC;\n } else if (ev.keyCode === 220) {\n result.key = C0.FS;\n } else if (ev.keyCode === 221) {\n result.key = C0.GS;\n }\n } else if ((!isMac || macOptionIsMeta) && ev.altKey && !ev.metaKey) {\n // On macOS this is a third level shift when !macOptionIsMeta. Use instead.\n const keyMapping = KEYCODE_KEY_MAPPINGS[ev.keyCode];\n const key = keyMapping?.[!ev.shiftKey ? 0 : 1];\n if (key) {\n result.key = C0.ESC + key;\n } else if (ev.keyCode >= 65 && ev.keyCode <= 90) {\n const keyCode = ev.ctrlKey ? ev.keyCode - 64 : ev.keyCode + 32;\n let keyString = String.fromCharCode(keyCode);\n if (ev.shiftKey) {\n keyString = keyString.toUpperCase();\n }\n result.key = C0.ESC + keyString;\n } else if (ev.key === 'Dead' && ev.code.startsWith('Key')) {\n // Reference: https://github.com/xtermjs/xterm.js/issues/3725\n // Alt will produce a \"dead key\" (initate composition) with some\n // of the letters in US layout (e.g. N/E/U).\n // It's safe to match against Key* since no other `code` values begin with \"Key\".\n // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values#code_values_on_mac\n let keyString = ev.code.slice(3, 4);\n if (!ev.shiftKey) {\n keyString = keyString.toLowerCase();\n }\n result.key = C0.ESC + keyString;\n result.cancel = true;\n }\n } else if (isMac && !ev.altKey && !ev.ctrlKey && !ev.shiftKey && ev.metaKey) {\n if (ev.keyCode === 65) { // cmd + a\n result.type = KeyboardResultType.SELECT_ALL;\n }\n } else if (ev.key && !ev.ctrlKey && !ev.altKey && !ev.metaKey && ev.keyCode >= 48 && ev.key.length === 1) {\n // Include only keys that that result in a _single_ character; don't include num lock, volume up, etc.\n result.key = ev.key;\n } else if (ev.key && ev.ctrlKey) {\n if (ev.key === '_') { // ^_\n result.key = C0.US;\n }\n if (ev.key === '@') { // ^ + shift + 2 = ^ + @\n result.key = C0.NUL;\n }\n }\n break;\n }\n\n return result;\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\n/**\n * Polyfill - Convert UTF32 codepoint into JS string.\n * Note: The built-in String.fromCodePoint happens to be much slower\n * due to additional sanity checks. We can avoid them since\n * we always operate on legal UTF32 (granted by the input decoders)\n * and use this faster version instead.\n */\nexport function stringFromCodePoint(codePoint: number): string {\n if (codePoint > 0xFFFF) {\n codePoint -= 0x10000;\n return String.fromCharCode((codePoint >> 10) + 0xD800) + String.fromCharCode((codePoint % 0x400) + 0xDC00);\n }\n return String.fromCharCode(codePoint);\n}\n\n/**\n * Convert UTF32 char codes into JS string.\n * Basically the same as `stringFromCodePoint` but for multiple codepoints\n * in a loop (which is a lot faster).\n */\nexport function utf32ToString(data: Uint32Array, start: number = 0, end: number = data.length): string {\n let result = '';\n for (let i = start; i < end; ++i) {\n let codepoint = data[i];\n if (codepoint > 0xFFFF) {\n // JS strings are encoded as UTF16, thus a non BMP codepoint gets converted into a surrogate pair\n // conversion rules:\n // - subtract 0x10000 from code point, leaving a 20 bit number\n // - add high 10 bits to 0xD800 --> first surrogate\n // - add low 10 bits to 0xDC00 --> second surrogate\n codepoint -= 0x10000;\n result += String.fromCharCode((codepoint >> 10) + 0xD800) + String.fromCharCode((codepoint % 0x400) + 0xDC00);\n } else {\n result += String.fromCharCode(codepoint);\n }\n }\n return result;\n}\n\n/**\n * StringToUtf32 - decodes UTF16 sequences into UTF32 codepoints.\n * To keep the decoder in line with JS strings it handles single surrogates as UCS2.\n */\nexport class StringToUtf32 {\n private _interim: number = 0;\n\n /**\n * Clears interim and resets decoder to clean state.\n */\n public clear(): void {\n this._interim = 0;\n }\n\n /**\n * Decode JS string to UTF32 codepoints.\n * The methods assumes stream input and will store partly transmitted\n * surrogate pairs and decode them with the next data chunk.\n * Note: The method does no bound checks for target, therefore make sure\n * the provided input data does not exceed the size of `target`.\n * Returns the number of written codepoints in `target`.\n */\n public decode(input: string, target: Uint32Array): number {\n const length = input.length;\n\n if (!length) {\n return 0;\n }\n\n let size = 0;\n let startPos = 0;\n\n // handle leftover surrogate high\n if (this._interim) {\n const second = input.charCodeAt(startPos++);\n if (0xDC00 <= second && second <= 0xDFFF) {\n target[size++] = (this._interim - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n } else {\n // illegal codepoint (USC2 handling)\n target[size++] = this._interim;\n target[size++] = second;\n }\n this._interim = 0;\n }\n\n for (let i = startPos; i < length; ++i) {\n const code = input.charCodeAt(i);\n // surrogate pair first\n if (0xD800 <= code && code <= 0xDBFF) {\n if (++i >= length) {\n this._interim = code;\n return size;\n }\n const second = input.charCodeAt(i);\n if (0xDC00 <= second && second <= 0xDFFF) {\n target[size++] = (code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n } else {\n // illegal codepoint (USC2 handling)\n target[size++] = code;\n target[size++] = second;\n }\n continue;\n }\n if (code === 0xFEFF) {\n // BOM\n continue;\n }\n target[size++] = code;\n }\n return size;\n }\n}\n\n/**\n * Utf8Decoder - decodes UTF8 byte sequences into UTF32 codepoints.\n */\nexport class Utf8ToUtf32 {\n public interim: Uint8Array = new Uint8Array(3);\n\n /**\n * Clears interim bytes and resets decoder to clean state.\n */\n public clear(): void {\n this.interim.fill(0);\n }\n\n /**\n * Decodes UTF8 byte sequences in `input` to UTF32 codepoints in `target`.\n * The methods assumes stream input and will store partly transmitted bytes\n * and decode them with the next data chunk.\n * Note: The method does no bound checks for target, therefore make sure\n * the provided data chunk does not exceed the size of `target`.\n * Returns the number of written codepoints in `target`.\n */\n public decode(input: Uint8Array, target: Uint32Array): number {\n const length = input.length;\n\n if (!length) {\n return 0;\n }\n\n let size = 0;\n let byte1: number;\n let byte2: number;\n let byte3: number;\n let byte4: number;\n let codepoint = 0;\n let startPos = 0;\n\n // handle leftover bytes\n if (this.interim[0]) {\n let discardInterim = false;\n let cp = this.interim[0];\n cp &= ((((cp & 0xE0) === 0xC0)) ? 0x1F : (((cp & 0xF0) === 0xE0)) ? 0x0F : 0x07);\n let pos = 0;\n let tmp: number;\n while ((tmp = this.interim[++pos] & 0x3F) && pos < 4) {\n cp <<= 6;\n cp |= tmp;\n }\n // missing bytes - read ahead from input\n const type = (((this.interim[0] & 0xE0) === 0xC0)) ? 2 : (((this.interim[0] & 0xF0) === 0xE0)) ? 3 : 4;\n const missing = type - pos;\n while (startPos < missing) {\n if (startPos >= length) {\n return 0;\n }\n tmp = input[startPos++];\n if ((tmp & 0xC0) !== 0x80) {\n // wrong continuation, discard interim bytes completely\n startPos--;\n discardInterim = true;\n break;\n } else {\n // need to save so we can continue short inputs in next call\n this.interim[pos++] = tmp;\n cp <<= 6;\n cp |= tmp & 0x3F;\n }\n }\n if (!discardInterim) {\n // final test is type dependent\n if (type === 2) {\n if (cp < 0x80) {\n // wrong starter byte\n startPos--;\n } else {\n target[size++] = cp;\n }\n } else if (type === 3) {\n if (cp < 0x0800 || (cp >= 0xD800 && cp <= 0xDFFF) || cp === 0xFEFF) {\n // illegal codepoint or BOM\n } else {\n target[size++] = cp;\n }\n } else {\n if (cp < 0x010000 || cp > 0x10FFFF) {\n // illegal codepoint\n } else {\n target[size++] = cp;\n }\n }\n }\n this.interim.fill(0);\n }\n\n // loop through input\n const fourStop = length - 4;\n let i = startPos;\n while (i < length) {\n /**\n * ASCII shortcut with loop unrolled to 4 consecutive ASCII chars.\n * This is a compromise between speed gain for ASCII\n * and penalty for non ASCII:\n * For best ASCII performance the char should be stored directly into target,\n * but even a single attempt to write to target and compare afterwards\n * penalizes non ASCII really bad (-50%), thus we load the char into byteX first,\n * which reduces ASCII performance by ~15%.\n * This trial for ASCII reduces non ASCII performance by ~10% which seems acceptible\n * compared to the gains.\n * Note that this optimization only takes place for 4 consecutive ASCII chars,\n * for any shorter it bails out. Worst case - all 4 bytes being read but\n * thrown away due to the last being a non ASCII char (-10% performance).\n */\n while (i < fourStop\n && !((byte1 = input[i]) & 0x80)\n && !((byte2 = input[i + 1]) & 0x80)\n && !((byte3 = input[i + 2]) & 0x80)\n && !((byte4 = input[i + 3]) & 0x80))\n {\n target[size++] = byte1;\n target[size++] = byte2;\n target[size++] = byte3;\n target[size++] = byte4;\n i += 4;\n }\n\n // reread byte1\n byte1 = input[i++];\n\n // 1 byte\n if (byte1 < 0x80) {\n target[size++] = byte1;\n\n // 2 bytes\n } else if ((byte1 & 0xE0) === 0xC0) {\n if (i >= length) {\n this.interim[0] = byte1;\n return size;\n }\n byte2 = input[i++];\n if ((byte2 & 0xC0) !== 0x80) {\n // wrong continuation\n i--;\n continue;\n }\n codepoint = (byte1 & 0x1F) << 6 | (byte2 & 0x3F);\n if (codepoint < 0x80) {\n // wrong starter byte\n i--;\n continue;\n }\n target[size++] = codepoint;\n\n // 3 bytes\n } else if ((byte1 & 0xF0) === 0xE0) {\n if (i >= length) {\n this.interim[0] = byte1;\n return size;\n }\n byte2 = input[i++];\n if ((byte2 & 0xC0) !== 0x80) {\n // wrong continuation\n i--;\n continue;\n }\n if (i >= length) {\n this.interim[0] = byte1;\n this.interim[1] = byte2;\n return size;\n }\n byte3 = input[i++];\n if ((byte3 & 0xC0) !== 0x80) {\n // wrong continuation\n i--;\n continue;\n }\n codepoint = (byte1 & 0x0F) << 12 | (byte2 & 0x3F) << 6 | (byte3 & 0x3F);\n if (codepoint < 0x0800 || (codepoint >= 0xD800 && codepoint <= 0xDFFF) || codepoint === 0xFEFF) {\n // illegal codepoint or BOM, no i-- here\n continue;\n }\n target[size++] = codepoint;\n\n // 4 bytes\n } else if ((byte1 & 0xF8) === 0xF0) {\n if (i >= length) {\n this.interim[0] = byte1;\n return size;\n }\n byte2 = input[i++];\n if ((byte2 & 0xC0) !== 0x80) {\n // wrong continuation\n i--;\n continue;\n }\n if (i >= length) {\n this.interim[0] = byte1;\n this.interim[1] = byte2;\n return size;\n }\n byte3 = input[i++];\n if ((byte3 & 0xC0) !== 0x80) {\n // wrong continuation\n i--;\n continue;\n }\n if (i >= length) {\n this.interim[0] = byte1;\n this.interim[1] = byte2;\n this.interim[2] = byte3;\n return size;\n }\n byte4 = input[i++];\n if ((byte4 & 0xC0) !== 0x80) {\n // wrong continuation\n i--;\n continue;\n }\n codepoint = (byte1 & 0x07) << 18 | (byte2 & 0x3F) << 12 | (byte3 & 0x3F) << 6 | (byte4 & 0x3F);\n if (codepoint < 0x010000 || codepoint > 0x10FFFF) {\n // illegal codepoint, no i-- here\n continue;\n }\n target[size++] = codepoint;\n } else {\n // illegal byte, just skip\n }\n }\n return size;\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\nimport { IUnicodeVersionProvider } from 'common/services/Services';\nimport { fill } from 'common/TypedArrayUtils';\n\ntype CharWidth = 0 | 1 | 2;\n\nconst BMP_COMBINING = [\n [0x0300, 0x036F], [0x0483, 0x0486], [0x0488, 0x0489],\n [0x0591, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2],\n [0x05C4, 0x05C5], [0x05C7, 0x05C7], [0x0600, 0x0603],\n [0x0610, 0x0615], [0x064B, 0x065E], [0x0670, 0x0670],\n [0x06D6, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED],\n [0x070F, 0x070F], [0x0711, 0x0711], [0x0730, 0x074A],\n [0x07A6, 0x07B0], [0x07EB, 0x07F3], [0x0901, 0x0902],\n [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D],\n [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981],\n [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD],\n [0x09E2, 0x09E3], [0x0A01, 0x0A02], [0x0A3C, 0x0A3C],\n [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D],\n [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC],\n [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD],\n [0x0AE2, 0x0AE3], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C],\n [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D],\n [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0],\n [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48],\n [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBC, 0x0CBC],\n [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD],\n [0x0CE2, 0x0CE3], [0x0D41, 0x0D43], [0x0D4D, 0x0D4D],\n [0x0DCA, 0x0DCA], [0x0DD2, 0x0DD4], [0x0DD6, 0x0DD6],\n [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E],\n [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC],\n [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35],\n [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E],\n [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F97],\n [0x0F99, 0x0FBC], [0x0FC6, 0x0FC6], [0x102D, 0x1030],\n [0x1032, 0x1032], [0x1036, 0x1037], [0x1039, 0x1039],\n [0x1058, 0x1059], [0x1160, 0x11FF], [0x135F, 0x135F],\n [0x1712, 0x1714], [0x1732, 0x1734], [0x1752, 0x1753],\n [0x1772, 0x1773], [0x17B4, 0x17B5], [0x17B7, 0x17BD],\n [0x17C6, 0x17C6], [0x17C9, 0x17D3], [0x17DD, 0x17DD],\n [0x180B, 0x180D], [0x18A9, 0x18A9], [0x1920, 0x1922],\n [0x1927, 0x1928], [0x1932, 0x1932], [0x1939, 0x193B],\n [0x1A17, 0x1A18], [0x1B00, 0x1B03], [0x1B34, 0x1B34],\n [0x1B36, 0x1B3A], [0x1B3C, 0x1B3C], [0x1B42, 0x1B42],\n [0x1B6B, 0x1B73], [0x1DC0, 0x1DCA], [0x1DFE, 0x1DFF],\n [0x200B, 0x200F], [0x202A, 0x202E], [0x2060, 0x2063],\n [0x206A, 0x206F], [0x20D0, 0x20EF], [0x302A, 0x302F],\n [0x3099, 0x309A], [0xA806, 0xA806], [0xA80B, 0xA80B],\n [0xA825, 0xA826], [0xFB1E, 0xFB1E], [0xFE00, 0xFE0F],\n [0xFE20, 0xFE23], [0xFEFF, 0xFEFF], [0xFFF9, 0xFFFB]\n];\nconst HIGH_COMBINING = [\n [0x10A01, 0x10A03], [0x10A05, 0x10A06], [0x10A0C, 0x10A0F],\n [0x10A38, 0x10A3A], [0x10A3F, 0x10A3F], [0x1D167, 0x1D169],\n [0x1D173, 0x1D182], [0x1D185, 0x1D18B], [0x1D1AA, 0x1D1AD],\n [0x1D242, 0x1D244], [0xE0001, 0xE0001], [0xE0020, 0xE007F],\n [0xE0100, 0xE01EF]\n];\n\n// BMP lookup table, lazy initialized during first addon loading\nlet table: Uint8Array;\n\nfunction bisearch(ucs: number, data: number[][]): boolean {\n let min = 0;\n let max = data.length - 1;\n let mid;\n if (ucs < data[0][0] || ucs > data[max][1]) {\n return false;\n }\n while (max >= min) {\n mid = (min + max) >> 1;\n if (ucs > data[mid][1]) {\n min = mid + 1;\n } else if (ucs < data[mid][0]) {\n max = mid - 1;\n } else {\n return true;\n }\n }\n return false;\n}\n\nexport class UnicodeV6 implements IUnicodeVersionProvider {\n public readonly version = '6';\n\n constructor() {\n // init lookup table once\n if (!table) {\n table = new Uint8Array(65536);\n fill(table, 1);\n table[0] = 0;\n // control chars\n fill(table, 0, 1, 32);\n fill(table, 0, 0x7f, 0xa0);\n\n // apply wide char rules first\n // wide chars\n fill(table, 2, 0x1100, 0x1160);\n table[0x2329] = 2;\n table[0x232a] = 2;\n fill(table, 2, 0x2e80, 0xa4d0);\n table[0x303f] = 1; // wrongly in last line\n\n fill(table, 2, 0xac00, 0xd7a4);\n fill(table, 2, 0xf900, 0xfb00);\n fill(table, 2, 0xfe10, 0xfe1a);\n fill(table, 2, 0xfe30, 0xfe70);\n fill(table, 2, 0xff00, 0xff61);\n fill(table, 2, 0xffe0, 0xffe7);\n\n // apply combining last to ensure we overwrite\n // wrongly wide set chars:\n // the original algo evals combining first and falls\n // through to wide check so we simply do here the opposite\n // combining 0\n for (let r = 0; r < BMP_COMBINING.length; ++r) {\n fill(table, 0, BMP_COMBINING[r][0], BMP_COMBINING[r][1] + 1);\n }\n }\n }\n\n public wcwidth(num: number): CharWidth {\n if (num < 32) return 0;\n if (num < 127) return 1;\n if (num < 65536) return table[num] as CharWidth;\n if (bisearch(num, HIGH_COMBINING)) return 0;\n if ((num >= 0x20000 && num <= 0x2fffd) || (num >= 0x30000 && num <= 0x3fffd)) return 2;\n return 1;\n }\n}\n","\n/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\n\ndeclare const setTimeout: (handler: () => void, timeout?: number) => void;\n\n/**\n * Safety watermark to avoid memory exhaustion and browser engine crash on fast data input.\n * Enable flow control to avoid this limit and make sure that your backend correctly\n * propagates this to the underlying pty. (see docs for further instructions)\n * Since this limit is meant as a safety parachute to prevent browser crashs,\n * it is set to a very high number. Typically xterm.js gets unresponsive with\n * a 100 times lower number (>500 kB).\n */\nconst DISCARD_WATERMARK = 50000000; // ~50 MB\n\n/**\n * The max number of ms to spend on writes before allowing the renderer to\n * catch up with a 0ms setTimeout. A value of < 33 to keep us close to\n * 30fps, and a value of < 16 to try to run at 60fps. Of course, the real FPS\n * depends on the time it takes for the renderer to draw the frame.\n */\nconst WRITE_TIMEOUT_MS = 12;\n\n/**\n * Threshold of max held chunks in the write buffer, that were already processed.\n * This is a tradeoff between extensive write buffer shifts (bad runtime) and high\n * memory consumption by data thats not used anymore.\n */\nconst WRITE_BUFFER_LENGTH_THRESHOLD = 50;\n\n// queueMicrotask polyfill for nodejs < v11\nconst qmt: (cb: () => void) => void = (typeof queueMicrotask === 'undefined')\n ? (cb: () => void) => { Promise.resolve().then(cb); }\n : queueMicrotask;\n\n\nexport class WriteBuffer {\n private _writeBuffer: (string | Uint8Array)[] = [];\n private _callbacks: ((() => void) | undefined)[] = [];\n private _pendingData = 0;\n private _bufferOffset = 0;\n private _isSyncWriting = false;\n private _syncCalls = 0;\n public get onWriteParsed(): IEvent { return this._onWriteParsed.event; }\n private _onWriteParsed = new EventEmitter();\n\n constructor(private _action: (data: string | Uint8Array, promiseResult?: boolean) => void | Promise) { }\n\n /**\n * @deprecated Unreliable, to be removed soon.\n */\n public writeSync(data: string | Uint8Array, maxSubsequentCalls?: number): void {\n // stop writeSync recursions with maxSubsequentCalls argument\n // This is dangerous to use as it will lose the current data chunk\n // and return immediately.\n if (maxSubsequentCalls !== undefined && this._syncCalls > maxSubsequentCalls) {\n // comment next line if a whole loop block should only contain x `writeSync` calls\n // (total flat vs. deep nested limit)\n this._syncCalls = 0;\n return;\n }\n // append chunk to buffer\n this._pendingData += data.length;\n this._writeBuffer.push(data);\n this._callbacks.push(undefined);\n\n // increase recursion counter\n this._syncCalls++;\n // exit early if another writeSync loop is active\n if (this._isSyncWriting) {\n return;\n }\n this._isSyncWriting = true;\n\n // force sync processing on pending data chunks to avoid in-band data scrambling\n // does the same as innerWrite but without event loop\n // we have to do it here as single loop steps to not corrupt loop subject\n // by another writeSync call triggered from _action\n let chunk: string | Uint8Array | undefined;\n while (chunk = this._writeBuffer.shift()) {\n this._action(chunk);\n const cb = this._callbacks.shift();\n if (cb) cb();\n }\n // reset to avoid reprocessing of chunks with scheduled innerWrite call\n // stopping scheduled innerWrite by offset > length condition\n this._pendingData = 0;\n this._bufferOffset = 0x7FFFFFFF;\n\n // allow another writeSync to loop\n this._isSyncWriting = false;\n this._syncCalls = 0;\n }\n\n public write(data: string | Uint8Array, callback?: () => void): void {\n if (this._pendingData > DISCARD_WATERMARK) {\n throw new Error('write data discarded, use flow control to avoid losing data');\n }\n\n // schedule chunk processing for next event loop run\n if (!this._writeBuffer.length) {\n this._bufferOffset = 0;\n setTimeout(() => this._innerWrite());\n }\n\n this._pendingData += data.length;\n this._writeBuffer.push(data);\n this._callbacks.push(callback);\n }\n\n /**\n * Inner write call, that enters the sliced chunk processing by timing.\n *\n * `lastTime` indicates, when the last _innerWrite call had started.\n * It is used to aggregate async handler execution under a timeout constraint\n * effectively lowering the redrawing needs, schematically:\n *\n * macroTask _innerWrite:\n * if (Date.now() - (lastTime | 0) < WRITE_TIMEOUT_MS):\n * schedule microTask _innerWrite(lastTime)\n * else:\n * schedule macroTask _innerWrite(0)\n *\n * overall execution order on task queues:\n *\n * macrotasks: [...] --> _innerWrite(0) --> [...] --> screenUpdate --> [...]\n * m t: |\n * i a: [...]\n * c s: |\n * r k: while < timeout:\n * o s: _innerWrite(timeout)\n *\n * `promiseResult` depicts the promise resolve value of an async handler.\n * This value gets carried forward through all saved stack states of the\n * paused parser for proper continuation.\n *\n * Note, for pure sync code `lastTime` and `promiseResult` have no meaning.\n */\n protected _innerWrite(lastTime: number = 0, promiseResult: boolean = true): void {\n const startTime = lastTime || Date.now();\n while (this._writeBuffer.length > this._bufferOffset) {\n const data = this._writeBuffer[this._bufferOffset];\n const result = this._action(data, promiseResult);\n if (result) {\n /**\n * If we get a promise as return value, we re-schedule the continuation\n * as thenable on the promise and exit right away.\n *\n * The exit here means, that we block input processing at the current active chunk,\n * the exact execution position within the chunk is preserved by the saved\n * stack content in InputHandler and EscapeSequenceParser.\n *\n * Resuming happens automatically from that saved stack state.\n * Also the resolved promise value is passed along the callstack to\n * `EscapeSequenceParser.parse` to correctly resume the stopped handler loop.\n *\n * Exceptions on async handlers will be logged to console async, but do not interrupt\n * the input processing (continues with next handler at the current input position).\n */\n\n /**\n * If a promise takes long to resolve, we should schedule continuation behind setTimeout.\n * This might already be too late, if our .then enters really late (executor + prev thens took very long).\n * This cannot be solved here for the handler itself (it is the handlers responsibility to slice hard work),\n * but we can at least schedule a screen update as we gain control.\n */\n const continuation: (r: boolean) => void = (r: boolean) => Date.now() - startTime >= WRITE_TIMEOUT_MS\n ? setTimeout(() => this._innerWrite(0, r))\n : this._innerWrite(startTime, r);\n\n /**\n * Optimization considerations:\n * The continuation above favors FPS over throughput by eval'ing `startTime` on resolve.\n * This might schedule too many screen updates with bad throughput drops (in case a slow\n * resolving handler sliced its work properly behind setTimeout calls). We cannot spot\n * this condition here, also the renderer has no way to spot nonsense updates either.\n * FIXME: A proper fix for this would track the FPS at the renderer entry level separately.\n *\n * If favoring of FPS shows bad throughtput impact, use the following instead. It favors\n * throughput by eval'ing `startTime` upfront pulling at least one more chunk into the\n * current microtask queue (executed before setTimeout).\n */\n // const continuation: (r: boolean) => void = Date.now() - startTime >= WRITE_TIMEOUT_MS\n // ? r => setTimeout(() => this._innerWrite(0, r))\n // : r => this._innerWrite(startTime, r);\n\n // Handle exceptions synchronously to current band position, idea:\n // 1. spawn a single microtask which we allow to throw hard\n // 2. spawn a promise immediately resolving to `true`\n // (executed on the same queue, thus properly aligned before continuation happens)\n result.catch(err => {\n qmt(() => {throw err;});\n return Promise.resolve(false);\n }).then(continuation);\n return;\n }\n\n const cb = this._callbacks[this._bufferOffset];\n if (cb) cb();\n this._bufferOffset++;\n this._pendingData -= data.length;\n\n if (Date.now() - startTime >= WRITE_TIMEOUT_MS) {\n break;\n }\n }\n if (this._writeBuffer.length > this._bufferOffset) {\n // Allow renderer to catch up before processing the next batch\n // trim already processed chunks if we are above threshold\n if (this._bufferOffset > WRITE_BUFFER_LENGTH_THRESHOLD) {\n this._writeBuffer = this._writeBuffer.slice(this._bufferOffset);\n this._callbacks = this._callbacks.slice(this._bufferOffset);\n this._bufferOffset = 0;\n }\n setTimeout(() => this._innerWrite());\n } else {\n this._writeBuffer.length = 0;\n this._callbacks.length = 0;\n this._pendingData = 0;\n this._bufferOffset = 0;\n }\n this._onWriteParsed.fire();\n }\n}\n","/**\n * Copyright (c) 2021 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\n\n// 'rgb:' rule - matching: r/g/b | rr/gg/bb | rrr/ggg/bbb | rrrr/gggg/bbbb (hex digits)\nconst RGB_REX = /^([\\da-f])\\/([\\da-f])\\/([\\da-f])$|^([\\da-f]{2})\\/([\\da-f]{2})\\/([\\da-f]{2})$|^([\\da-f]{3})\\/([\\da-f]{3})\\/([\\da-f]{3})$|^([\\da-f]{4})\\/([\\da-f]{4})\\/([\\da-f]{4})$/;\n// '#...' rule - matching any hex digits\nconst HASH_REX = /^[\\da-f]+$/;\n\n/**\n * Parse color spec to RGB values (8 bit per channel).\n * See `man xparsecolor` for details about certain format specifications.\n *\n * Supported formats:\n * - rgb:// with , , in h | hh | hhh | hhhh\n * - #RGB, #RRGGBB, #RRRGGGBBB, #RRRRGGGGBBBB\n *\n * All other formats like rgbi: or device-independent string specifications\n * with float numbering are not supported.\n */\nexport function parseColor(data: string): [number, number, number] | undefined {\n if (!data) return;\n // also handle uppercases\n let low = data.toLowerCase();\n if (low.indexOf('rgb:') === 0) {\n // 'rgb:' specifier\n low = low.slice(4);\n const m = RGB_REX.exec(low);\n if (m) {\n const base = m[1] ? 15 : m[4] ? 255 : m[7] ? 4095 : 65535;\n return [\n Math.round(parseInt(m[1] || m[4] || m[7] || m[10], 16) / base * 255),\n Math.round(parseInt(m[2] || m[5] || m[8] || m[11], 16) / base * 255),\n Math.round(parseInt(m[3] || m[6] || m[9] || m[12], 16) / base * 255)\n ];\n }\n } else if (low.indexOf('#') === 0) {\n // '#' specifier\n low = low.slice(1);\n if (HASH_REX.exec(low) && [3, 6, 9, 12].includes(low.length)) {\n const adv = low.length / 3;\n const result: [number, number, number] = [0, 0, 0];\n for (let i = 0; i < 3; ++i) {\n const c = parseInt(low.slice(adv * i, adv * i + adv), 16);\n result[i] = adv === 1 ? c << 4 : adv === 2 ? c : adv === 3 ? c >> 4 : c >> 8;\n }\n return result;\n }\n }\n\n // Named colors are currently not supported due to the large addition to the xterm.js bundle size\n // they would add. In order to support named colors, we would need some way of optionally loading\n // additional payloads so startup/download time is not bloated (see #3530).\n}\n\n// pad hex output to requested bit width\nfunction pad(n: number, bits: number): string {\n const s = n.toString(16);\n const s2 = s.length < 2 ? '0' + s : s;\n switch (bits) {\n case 4:\n return s[0];\n case 8:\n return s2;\n case 12:\n return (s2 + s2).slice(0, 3);\n default:\n return s2 + s2;\n }\n}\n\n/**\n * Convert a given color to rgb:../../.. string of `bits` depth.\n */\nexport function toRgbString(color: [number, number, number], bits: number = 16): string {\n const [r, g, b] = color;\n return `rgb:${pad(r, bits)}/${pad(g, bits)}/${pad(b, bits)}`;\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\n/**\n * Internal states of EscapeSequenceParser.\n */\nexport const enum ParserState {\n GROUND = 0,\n ESCAPE = 1,\n ESCAPE_INTERMEDIATE = 2,\n CSI_ENTRY = 3,\n CSI_PARAM = 4,\n CSI_INTERMEDIATE = 5,\n CSI_IGNORE = 6,\n SOS_PM_APC_STRING = 7,\n OSC_STRING = 8,\n DCS_ENTRY = 9,\n DCS_PARAM = 10,\n DCS_IGNORE = 11,\n DCS_INTERMEDIATE = 12,\n DCS_PASSTHROUGH = 13\n}\n\n/**\n* Internal actions of EscapeSequenceParser.\n*/\nexport const enum ParserAction {\n IGNORE = 0,\n ERROR = 1,\n PRINT = 2,\n EXECUTE = 3,\n OSC_START = 4,\n OSC_PUT = 5,\n OSC_END = 6,\n CSI_DISPATCH = 7,\n PARAM = 8,\n COLLECT = 9,\n ESC_DISPATCH = 10,\n CLEAR = 11,\n DCS_HOOK = 12,\n DCS_PUT = 13,\n DCS_UNHOOK = 14\n}\n\n/**\n * Internal states of OscParser.\n */\nexport const enum OscState {\n START = 0,\n ID = 1,\n PAYLOAD = 2,\n ABORT = 3\n}\n\n// payload limit for OSC and DCS\nexport const PAYLOAD_LIMIT = 10000000;\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IDisposable } from 'common/Types';\nimport { IDcsHandler, IParams, IHandlerCollection, IDcsParser, DcsFallbackHandlerType, ISubParserStackState } from 'common/parser/Types';\nimport { utf32ToString } from 'common/input/TextDecoder';\nimport { Params } from 'common/parser/Params';\nimport { PAYLOAD_LIMIT } from 'common/parser/Constants';\n\nconst EMPTY_HANDLERS: IDcsHandler[] = [];\n\nexport class DcsParser implements IDcsParser {\n private _handlers: IHandlerCollection = Object.create(null);\n private _active: IDcsHandler[] = EMPTY_HANDLERS;\n private _ident: number = 0;\n private _handlerFb: DcsFallbackHandlerType = () => { };\n private _stack: ISubParserStackState = {\n paused: false,\n loopPosition: 0,\n fallThrough: false\n };\n\n public dispose(): void {\n this._handlers = Object.create(null);\n this._handlerFb = () => { };\n this._active = EMPTY_HANDLERS;\n }\n\n public registerHandler(ident: number, handler: IDcsHandler): IDisposable {\n if (this._handlers[ident] === undefined) {\n this._handlers[ident] = [];\n }\n const handlerList = this._handlers[ident];\n handlerList.push(handler);\n return {\n dispose: () => {\n const handlerIndex = handlerList.indexOf(handler);\n if (handlerIndex !== -1) {\n handlerList.splice(handlerIndex, 1);\n }\n }\n };\n }\n\n public clearHandler(ident: number): void {\n if (this._handlers[ident]) delete this._handlers[ident];\n }\n\n public setHandlerFallback(handler: DcsFallbackHandlerType): void {\n this._handlerFb = handler;\n }\n\n public reset(): void {\n // force cleanup leftover handlers\n if (this._active.length) {\n for (let j = this._stack.paused ? this._stack.loopPosition - 1 : this._active.length - 1; j >= 0; --j) {\n this._active[j].unhook(false);\n }\n }\n this._stack.paused = false;\n this._active = EMPTY_HANDLERS;\n this._ident = 0;\n }\n\n public hook(ident: number, params: IParams): void {\n // always reset leftover handlers\n this.reset();\n this._ident = ident;\n this._active = this._handlers[ident] || EMPTY_HANDLERS;\n if (!this._active.length) {\n this._handlerFb(this._ident, 'HOOK', params);\n } else {\n for (let j = this._active.length - 1; j >= 0; j--) {\n this._active[j].hook(params);\n }\n }\n }\n\n public put(data: Uint32Array, start: number, end: number): void {\n if (!this._active.length) {\n this._handlerFb(this._ident, 'PUT', utf32ToString(data, start, end));\n } else {\n for (let j = this._active.length - 1; j >= 0; j--) {\n this._active[j].put(data, start, end);\n }\n }\n }\n\n public unhook(success: boolean, promiseResult: boolean = true): void | Promise {\n if (!this._active.length) {\n this._handlerFb(this._ident, 'UNHOOK', success);\n } else {\n let handlerResult: boolean | Promise = false;\n let j = this._active.length - 1;\n let fallThrough = false;\n if (this._stack.paused) {\n j = this._stack.loopPosition - 1;\n handlerResult = promiseResult;\n fallThrough = this._stack.fallThrough;\n this._stack.paused = false;\n }\n if (!fallThrough && handlerResult === false) {\n for (; j >= 0; j--) {\n handlerResult = this._active[j].unhook(success);\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._stack.paused = true;\n this._stack.loopPosition = j;\n this._stack.fallThrough = false;\n return handlerResult;\n }\n }\n j--;\n }\n // cleanup left over handlers (fallThrough for async)\n for (; j >= 0; j--) {\n handlerResult = this._active[j].unhook(false);\n if (handlerResult instanceof Promise) {\n this._stack.paused = true;\n this._stack.loopPosition = j;\n this._stack.fallThrough = true;\n return handlerResult;\n }\n }\n }\n this._active = EMPTY_HANDLERS;\n this._ident = 0;\n }\n}\n\n// predefine empty params as [0] (ZDM)\nconst EMPTY_PARAMS = new Params();\nEMPTY_PARAMS.addParam(0);\n\n/**\n * Convenient class to create a DCS handler from a single callback function.\n * Note: The payload is currently limited to 50 MB (hardcoded).\n */\nexport class DcsHandler implements IDcsHandler {\n private _data = '';\n private _params: IParams = EMPTY_PARAMS;\n private _hitLimit: boolean = false;\n\n constructor(private _handler: (data: string, params: IParams) => boolean | Promise) { }\n\n public hook(params: IParams): void {\n // since we need to preserve params until `unhook`, we have to clone it\n // (only borrowed from parser and spans multiple parser states)\n // perf optimization:\n // clone only, if we have non empty params, otherwise stick with default\n this._params = (params.length > 1 || params.params[0]) ? params.clone() : EMPTY_PARAMS;\n this._data = '';\n this._hitLimit = false;\n }\n\n public put(data: Uint32Array, start: number, end: number): void {\n if (this._hitLimit) {\n return;\n }\n this._data += utf32ToString(data, start, end);\n if (this._data.length > PAYLOAD_LIMIT) {\n this._data = '';\n this._hitLimit = true;\n }\n }\n\n public unhook(success: boolean): boolean | Promise {\n let ret: boolean | Promise = false;\n if (this._hitLimit) {\n ret = false;\n } else if (success) {\n ret = this._handler(this._data, this._params);\n if (ret instanceof Promise) {\n // need to hold data and params until `ret` got resolved\n // dont care for errors, data will be freed anyway on next start\n return ret.then(res => {\n this._params = EMPTY_PARAMS;\n this._data = '';\n this._hitLimit = false;\n return res;\n });\n }\n }\n this._params = EMPTY_PARAMS;\n this._data = '';\n this._hitLimit = false;\n return ret;\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IParsingState, IDcsHandler, IEscapeSequenceParser, IParams, IOscHandler, IHandlerCollection, CsiHandlerType, OscFallbackHandlerType, IOscParser, EscHandlerType, IDcsParser, DcsFallbackHandlerType, IFunctionIdentifier, ExecuteFallbackHandlerType, CsiFallbackHandlerType, EscFallbackHandlerType, PrintHandlerType, PrintFallbackHandlerType, ExecuteHandlerType, IParserStackState, ParserStackType, ResumableHandlersType } from 'common/parser/Types';\nimport { ParserState, ParserAction } from 'common/parser/Constants';\nimport { Disposable } from 'common/Lifecycle';\nimport { IDisposable } from 'common/Types';\nimport { fill } from 'common/TypedArrayUtils';\nimport { Params } from 'common/parser/Params';\nimport { OscParser } from 'common/parser/OscParser';\nimport { DcsParser } from 'common/parser/DcsParser';\n\n/**\n * Table values are generated like this:\n * index: currentState << TableValue.INDEX_STATE_SHIFT | charCode\n * value: action << TableValue.TRANSITION_ACTION_SHIFT | nextState\n */\nconst enum TableAccess {\n TRANSITION_ACTION_SHIFT = 4,\n TRANSITION_STATE_MASK = 15,\n INDEX_STATE_SHIFT = 8\n}\n\n/**\n * Transition table for EscapeSequenceParser.\n */\nexport class TransitionTable {\n public table: Uint8Array;\n\n constructor(length: number) {\n this.table = new Uint8Array(length);\n }\n\n /**\n * Set default transition.\n * @param action default action\n * @param next default next state\n */\n public setDefault(action: ParserAction, next: ParserState): void {\n fill(this.table, action << TableAccess.TRANSITION_ACTION_SHIFT | next);\n }\n\n /**\n * Add a transition to the transition table.\n * @param code input character code\n * @param state current parser state\n * @param action parser action to be done\n * @param next next parser state\n */\n public add(code: number, state: ParserState, action: ParserAction, next: ParserState): void {\n this.table[state << TableAccess.INDEX_STATE_SHIFT | code] = action << TableAccess.TRANSITION_ACTION_SHIFT | next;\n }\n\n /**\n * Add transitions for multiple input character codes.\n * @param codes input character code array\n * @param state current parser state\n * @param action parser action to be done\n * @param next next parser state\n */\n public addMany(codes: number[], state: ParserState, action: ParserAction, next: ParserState): void {\n for (let i = 0; i < codes.length; i++) {\n this.table[state << TableAccess.INDEX_STATE_SHIFT | codes[i]] = action << TableAccess.TRANSITION_ACTION_SHIFT | next;\n }\n }\n}\n\n\n// Pseudo-character placeholder for printable non-ascii characters (unicode).\nconst NON_ASCII_PRINTABLE = 0xA0;\n\n\n/**\n * VT500 compatible transition table.\n * Taken from https://vt100.net/emu/dec_ansi_parser.\n */\nexport const VT500_TRANSITION_TABLE = (function (): TransitionTable {\n const table: TransitionTable = new TransitionTable(4095);\n\n // range macro for byte\n const BYTE_VALUES = 256;\n const blueprint = Array.apply(null, Array(BYTE_VALUES)).map((unused: any, i: number) => i);\n const r = (start: number, end: number): number[] => blueprint.slice(start, end);\n\n // Default definitions.\n const PRINTABLES = r(0x20, 0x7f); // 0x20 (SP) included, 0x7F (DEL) excluded\n const EXECUTABLES = r(0x00, 0x18);\n EXECUTABLES.push(0x19);\n EXECUTABLES.push.apply(EXECUTABLES, r(0x1c, 0x20));\n\n const states: number[] = r(ParserState.GROUND, ParserState.DCS_PASSTHROUGH + 1);\n let state: any;\n\n // set default transition\n table.setDefault(ParserAction.ERROR, ParserState.GROUND);\n // printables\n table.addMany(PRINTABLES, ParserState.GROUND, ParserAction.PRINT, ParserState.GROUND);\n // global anywhere rules\n for (state in states) {\n table.addMany([0x18, 0x1a, 0x99, 0x9a], state, ParserAction.EXECUTE, ParserState.GROUND);\n table.addMany(r(0x80, 0x90), state, ParserAction.EXECUTE, ParserState.GROUND);\n table.addMany(r(0x90, 0x98), state, ParserAction.EXECUTE, ParserState.GROUND);\n table.add(0x9c, state, ParserAction.IGNORE, ParserState.GROUND); // ST as terminator\n table.add(0x1b, state, ParserAction.CLEAR, ParserState.ESCAPE); // ESC\n table.add(0x9d, state, ParserAction.OSC_START, ParserState.OSC_STRING); // OSC\n table.addMany([0x98, 0x9e, 0x9f], state, ParserAction.IGNORE, ParserState.SOS_PM_APC_STRING);\n table.add(0x9b, state, ParserAction.CLEAR, ParserState.CSI_ENTRY); // CSI\n table.add(0x90, state, ParserAction.CLEAR, ParserState.DCS_ENTRY); // DCS\n }\n // rules for executables and 7f\n table.addMany(EXECUTABLES, ParserState.GROUND, ParserAction.EXECUTE, ParserState.GROUND);\n table.addMany(EXECUTABLES, ParserState.ESCAPE, ParserAction.EXECUTE, ParserState.ESCAPE);\n table.add(0x7f, ParserState.ESCAPE, ParserAction.IGNORE, ParserState.ESCAPE);\n table.addMany(EXECUTABLES, ParserState.OSC_STRING, ParserAction.IGNORE, ParserState.OSC_STRING);\n table.addMany(EXECUTABLES, ParserState.CSI_ENTRY, ParserAction.EXECUTE, ParserState.CSI_ENTRY);\n table.add(0x7f, ParserState.CSI_ENTRY, ParserAction.IGNORE, ParserState.CSI_ENTRY);\n table.addMany(EXECUTABLES, ParserState.CSI_PARAM, ParserAction.EXECUTE, ParserState.CSI_PARAM);\n table.add(0x7f, ParserState.CSI_PARAM, ParserAction.IGNORE, ParserState.CSI_PARAM);\n table.addMany(EXECUTABLES, ParserState.CSI_IGNORE, ParserAction.EXECUTE, ParserState.CSI_IGNORE);\n table.addMany(EXECUTABLES, ParserState.CSI_INTERMEDIATE, ParserAction.EXECUTE, ParserState.CSI_INTERMEDIATE);\n table.add(0x7f, ParserState.CSI_INTERMEDIATE, ParserAction.IGNORE, ParserState.CSI_INTERMEDIATE);\n table.addMany(EXECUTABLES, ParserState.ESCAPE_INTERMEDIATE, ParserAction.EXECUTE, ParserState.ESCAPE_INTERMEDIATE);\n table.add(0x7f, ParserState.ESCAPE_INTERMEDIATE, ParserAction.IGNORE, ParserState.ESCAPE_INTERMEDIATE);\n // osc\n table.add(0x5d, ParserState.ESCAPE, ParserAction.OSC_START, ParserState.OSC_STRING);\n table.addMany(PRINTABLES, ParserState.OSC_STRING, ParserAction.OSC_PUT, ParserState.OSC_STRING);\n table.add(0x7f, ParserState.OSC_STRING, ParserAction.OSC_PUT, ParserState.OSC_STRING);\n table.addMany([0x9c, 0x1b, 0x18, 0x1a, 0x07], ParserState.OSC_STRING, ParserAction.OSC_END, ParserState.GROUND);\n table.addMany(r(0x1c, 0x20), ParserState.OSC_STRING, ParserAction.IGNORE, ParserState.OSC_STRING);\n // sos/pm/apc does nothing\n table.addMany([0x58, 0x5e, 0x5f], ParserState.ESCAPE, ParserAction.IGNORE, ParserState.SOS_PM_APC_STRING);\n table.addMany(PRINTABLES, ParserState.SOS_PM_APC_STRING, ParserAction.IGNORE, ParserState.SOS_PM_APC_STRING);\n table.addMany(EXECUTABLES, ParserState.SOS_PM_APC_STRING, ParserAction.IGNORE, ParserState.SOS_PM_APC_STRING);\n table.add(0x9c, ParserState.SOS_PM_APC_STRING, ParserAction.IGNORE, ParserState.GROUND);\n table.add(0x7f, ParserState.SOS_PM_APC_STRING, ParserAction.IGNORE, ParserState.SOS_PM_APC_STRING);\n // csi entries\n table.add(0x5b, ParserState.ESCAPE, ParserAction.CLEAR, ParserState.CSI_ENTRY);\n table.addMany(r(0x40, 0x7f), ParserState.CSI_ENTRY, ParserAction.CSI_DISPATCH, ParserState.GROUND);\n table.addMany(r(0x30, 0x3c), ParserState.CSI_ENTRY, ParserAction.PARAM, ParserState.CSI_PARAM);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], ParserState.CSI_ENTRY, ParserAction.COLLECT, ParserState.CSI_PARAM);\n table.addMany(r(0x30, 0x3c), ParserState.CSI_PARAM, ParserAction.PARAM, ParserState.CSI_PARAM);\n table.addMany(r(0x40, 0x7f), ParserState.CSI_PARAM, ParserAction.CSI_DISPATCH, ParserState.GROUND);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], ParserState.CSI_PARAM, ParserAction.IGNORE, ParserState.CSI_IGNORE);\n table.addMany(r(0x20, 0x40), ParserState.CSI_IGNORE, ParserAction.IGNORE, ParserState.CSI_IGNORE);\n table.add(0x7f, ParserState.CSI_IGNORE, ParserAction.IGNORE, ParserState.CSI_IGNORE);\n table.addMany(r(0x40, 0x7f), ParserState.CSI_IGNORE, ParserAction.IGNORE, ParserState.GROUND);\n table.addMany(r(0x20, 0x30), ParserState.CSI_ENTRY, ParserAction.COLLECT, ParserState.CSI_INTERMEDIATE);\n table.addMany(r(0x20, 0x30), ParserState.CSI_INTERMEDIATE, ParserAction.COLLECT, ParserState.CSI_INTERMEDIATE);\n table.addMany(r(0x30, 0x40), ParserState.CSI_INTERMEDIATE, ParserAction.IGNORE, ParserState.CSI_IGNORE);\n table.addMany(r(0x40, 0x7f), ParserState.CSI_INTERMEDIATE, ParserAction.CSI_DISPATCH, ParserState.GROUND);\n table.addMany(r(0x20, 0x30), ParserState.CSI_PARAM, ParserAction.COLLECT, ParserState.CSI_INTERMEDIATE);\n // esc_intermediate\n table.addMany(r(0x20, 0x30), ParserState.ESCAPE, ParserAction.COLLECT, ParserState.ESCAPE_INTERMEDIATE);\n table.addMany(r(0x20, 0x30), ParserState.ESCAPE_INTERMEDIATE, ParserAction.COLLECT, ParserState.ESCAPE_INTERMEDIATE);\n table.addMany(r(0x30, 0x7f), ParserState.ESCAPE_INTERMEDIATE, ParserAction.ESC_DISPATCH, ParserState.GROUND);\n table.addMany(r(0x30, 0x50), ParserState.ESCAPE, ParserAction.ESC_DISPATCH, ParserState.GROUND);\n table.addMany(r(0x51, 0x58), ParserState.ESCAPE, ParserAction.ESC_DISPATCH, ParserState.GROUND);\n table.addMany([0x59, 0x5a, 0x5c], ParserState.ESCAPE, ParserAction.ESC_DISPATCH, ParserState.GROUND);\n table.addMany(r(0x60, 0x7f), ParserState.ESCAPE, ParserAction.ESC_DISPATCH, ParserState.GROUND);\n // dcs entry\n table.add(0x50, ParserState.ESCAPE, ParserAction.CLEAR, ParserState.DCS_ENTRY);\n table.addMany(EXECUTABLES, ParserState.DCS_ENTRY, ParserAction.IGNORE, ParserState.DCS_ENTRY);\n table.add(0x7f, ParserState.DCS_ENTRY, ParserAction.IGNORE, ParserState.DCS_ENTRY);\n table.addMany(r(0x1c, 0x20), ParserState.DCS_ENTRY, ParserAction.IGNORE, ParserState.DCS_ENTRY);\n table.addMany(r(0x20, 0x30), ParserState.DCS_ENTRY, ParserAction.COLLECT, ParserState.DCS_INTERMEDIATE);\n table.addMany(r(0x30, 0x3c), ParserState.DCS_ENTRY, ParserAction.PARAM, ParserState.DCS_PARAM);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], ParserState.DCS_ENTRY, ParserAction.COLLECT, ParserState.DCS_PARAM);\n table.addMany(EXECUTABLES, ParserState.DCS_IGNORE, ParserAction.IGNORE, ParserState.DCS_IGNORE);\n table.addMany(r(0x20, 0x80), ParserState.DCS_IGNORE, ParserAction.IGNORE, ParserState.DCS_IGNORE);\n table.addMany(r(0x1c, 0x20), ParserState.DCS_IGNORE, ParserAction.IGNORE, ParserState.DCS_IGNORE);\n table.addMany(EXECUTABLES, ParserState.DCS_PARAM, ParserAction.IGNORE, ParserState.DCS_PARAM);\n table.add(0x7f, ParserState.DCS_PARAM, ParserAction.IGNORE, ParserState.DCS_PARAM);\n table.addMany(r(0x1c, 0x20), ParserState.DCS_PARAM, ParserAction.IGNORE, ParserState.DCS_PARAM);\n table.addMany(r(0x30, 0x3c), ParserState.DCS_PARAM, ParserAction.PARAM, ParserState.DCS_PARAM);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], ParserState.DCS_PARAM, ParserAction.IGNORE, ParserState.DCS_IGNORE);\n table.addMany(r(0x20, 0x30), ParserState.DCS_PARAM, ParserAction.COLLECT, ParserState.DCS_INTERMEDIATE);\n table.addMany(EXECUTABLES, ParserState.DCS_INTERMEDIATE, ParserAction.IGNORE, ParserState.DCS_INTERMEDIATE);\n table.add(0x7f, ParserState.DCS_INTERMEDIATE, ParserAction.IGNORE, ParserState.DCS_INTERMEDIATE);\n table.addMany(r(0x1c, 0x20), ParserState.DCS_INTERMEDIATE, ParserAction.IGNORE, ParserState.DCS_INTERMEDIATE);\n table.addMany(r(0x20, 0x30), ParserState.DCS_INTERMEDIATE, ParserAction.COLLECT, ParserState.DCS_INTERMEDIATE);\n table.addMany(r(0x30, 0x40), ParserState.DCS_INTERMEDIATE, ParserAction.IGNORE, ParserState.DCS_IGNORE);\n table.addMany(r(0x40, 0x7f), ParserState.DCS_INTERMEDIATE, ParserAction.DCS_HOOK, ParserState.DCS_PASSTHROUGH);\n table.addMany(r(0x40, 0x7f), ParserState.DCS_PARAM, ParserAction.DCS_HOOK, ParserState.DCS_PASSTHROUGH);\n table.addMany(r(0x40, 0x7f), ParserState.DCS_ENTRY, ParserAction.DCS_HOOK, ParserState.DCS_PASSTHROUGH);\n table.addMany(EXECUTABLES, ParserState.DCS_PASSTHROUGH, ParserAction.DCS_PUT, ParserState.DCS_PASSTHROUGH);\n table.addMany(PRINTABLES, ParserState.DCS_PASSTHROUGH, ParserAction.DCS_PUT, ParserState.DCS_PASSTHROUGH);\n table.add(0x7f, ParserState.DCS_PASSTHROUGH, ParserAction.IGNORE, ParserState.DCS_PASSTHROUGH);\n table.addMany([0x1b, 0x9c, 0x18, 0x1a], ParserState.DCS_PASSTHROUGH, ParserAction.DCS_UNHOOK, ParserState.GROUND);\n // special handling of unicode chars\n table.add(NON_ASCII_PRINTABLE, ParserState.GROUND, ParserAction.PRINT, ParserState.GROUND);\n table.add(NON_ASCII_PRINTABLE, ParserState.OSC_STRING, ParserAction.OSC_PUT, ParserState.OSC_STRING);\n table.add(NON_ASCII_PRINTABLE, ParserState.CSI_IGNORE, ParserAction.IGNORE, ParserState.CSI_IGNORE);\n table.add(NON_ASCII_PRINTABLE, ParserState.DCS_IGNORE, ParserAction.IGNORE, ParserState.DCS_IGNORE);\n table.add(NON_ASCII_PRINTABLE, ParserState.DCS_PASSTHROUGH, ParserAction.DCS_PUT, ParserState.DCS_PASSTHROUGH);\n return table;\n})();\n\n\n/**\n * EscapeSequenceParser.\n * This class implements the ANSI/DEC compatible parser described by\n * Paul Williams (https://vt100.net/emu/dec_ansi_parser).\n *\n * To implement custom ANSI compliant escape sequences it is not needed to\n * alter this parser, instead consider registering a custom handler.\n * For non ANSI compliant sequences change the transition table with\n * the optional `transitions` constructor argument and\n * reimplement the `parse` method.\n *\n * This parser is currently hardcoded to operate in ZDM (Zero Default Mode)\n * as suggested by the original parser, thus empty parameters are set to 0.\n * This this is not in line with the latest ECMA-48 specification\n * (ZDM was part of the early specs and got completely removed later on).\n *\n * Other than the original parser from vt100.net this parser supports\n * sub parameters in digital parameters separated by colons. Empty sub parameters\n * are set to -1 (no ZDM for sub parameters).\n *\n * About prefix and intermediate bytes:\n * This parser follows the assumptions of the vt100.net parser with these restrictions:\n * - only one prefix byte is allowed as first parameter byte, byte range 0x3c .. 0x3f\n * - max. two intermediates are respected, byte range 0x20 .. 0x2f\n * Note that this is not in line with ECMA-48 which does not limit either of those.\n * Furthermore ECMA-48 allows the prefix byte range at any param byte position. Currently\n * there are no known sequences that follow the broader definition of the specification.\n *\n * TODO: implement error recovery hook via error handler return values\n */\nexport class EscapeSequenceParser extends Disposable implements IEscapeSequenceParser {\n public initialState: number;\n public currentState: number;\n public precedingCodepoint: number;\n\n // buffers over several parse calls\n protected _params: Params;\n protected _collect: number;\n\n // handler lookup containers\n protected _printHandler: PrintHandlerType;\n protected _executeHandlers: { [flag: number]: ExecuteHandlerType };\n protected _csiHandlers: IHandlerCollection;\n protected _escHandlers: IHandlerCollection;\n protected _oscParser: IOscParser;\n protected _dcsParser: IDcsParser;\n protected _errorHandler: (state: IParsingState) => IParsingState;\n\n // fallback handlers\n protected _printHandlerFb: PrintFallbackHandlerType;\n protected _executeHandlerFb: ExecuteFallbackHandlerType;\n protected _csiHandlerFb: CsiFallbackHandlerType;\n protected _escHandlerFb: EscFallbackHandlerType;\n protected _errorHandlerFb: (state: IParsingState) => IParsingState;\n\n // parser stack save for async handler support\n protected _parseStack: IParserStackState = {\n state: ParserStackType.NONE,\n handlers: [],\n handlerPos: 0,\n transition: 0,\n chunkPos: 0\n };\n\n constructor(\n protected readonly _transitions: TransitionTable = VT500_TRANSITION_TABLE\n ) {\n super();\n\n this.initialState = ParserState.GROUND;\n this.currentState = this.initialState;\n this._params = new Params(); // defaults to 32 storable params/subparams\n this._params.addParam(0); // ZDM\n this._collect = 0;\n this.precedingCodepoint = 0;\n\n // set default fallback handlers and handler lookup containers\n this._printHandlerFb = (data, start, end): void => { };\n this._executeHandlerFb = (code: number): void => { };\n this._csiHandlerFb = (ident: number, params: IParams): void => { };\n this._escHandlerFb = (ident: number): void => { };\n this._errorHandlerFb = (state: IParsingState): IParsingState => state;\n this._printHandler = this._printHandlerFb;\n this._executeHandlers = Object.create(null);\n this._csiHandlers = Object.create(null);\n this._escHandlers = Object.create(null);\n this._oscParser = new OscParser();\n this._dcsParser = new DcsParser();\n this._errorHandler = this._errorHandlerFb;\n\n // swallow 7bit ST (ESC+\\)\n this.registerEscHandler({ final: '\\\\' }, () => true);\n }\n\n protected _identifier(id: IFunctionIdentifier, finalRange: number[] = [0x40, 0x7e]): number {\n let res = 0;\n if (id.prefix) {\n if (id.prefix.length > 1) {\n throw new Error('only one byte as prefix supported');\n }\n res = id.prefix.charCodeAt(0);\n if (res && 0x3c > res || res > 0x3f) {\n throw new Error('prefix must be in range 0x3c .. 0x3f');\n }\n }\n if (id.intermediates) {\n if (id.intermediates.length > 2) {\n throw new Error('only two bytes as intermediates are supported');\n }\n for (let i = 0; i < id.intermediates.length; ++i) {\n const intermediate = id.intermediates.charCodeAt(i);\n if (0x20 > intermediate || intermediate > 0x2f) {\n throw new Error('intermediate must be in range 0x20 .. 0x2f');\n }\n res <<= 8;\n res |= intermediate;\n }\n }\n if (id.final.length !== 1) {\n throw new Error('final must be a single byte');\n }\n const finalCode = id.final.charCodeAt(0);\n if (finalRange[0] > finalCode || finalCode > finalRange[1]) {\n throw new Error(`final must be in range ${finalRange[0]} .. ${finalRange[1]}`);\n }\n res <<= 8;\n res |= finalCode;\n\n return res;\n }\n\n public identToString(ident: number): string {\n const res: string[] = [];\n while (ident) {\n res.push(String.fromCharCode(ident & 0xFF));\n ident >>= 8;\n }\n return res.reverse().join('');\n }\n\n public dispose(): void {\n this._csiHandlers = Object.create(null);\n this._executeHandlers = Object.create(null);\n this._escHandlers = Object.create(null);\n this._oscParser.dispose();\n this._dcsParser.dispose();\n }\n\n public setPrintHandler(handler: PrintHandlerType): void {\n this._printHandler = handler;\n }\n public clearPrintHandler(): void {\n this._printHandler = this._printHandlerFb;\n }\n\n public registerEscHandler(id: IFunctionIdentifier, handler: EscHandlerType): IDisposable {\n const ident = this._identifier(id, [0x30, 0x7e]);\n if (this._escHandlers[ident] === undefined) {\n this._escHandlers[ident] = [];\n }\n const handlerList = this._escHandlers[ident];\n handlerList.push(handler);\n return {\n dispose: () => {\n const handlerIndex = handlerList.indexOf(handler);\n if (handlerIndex !== -1) {\n handlerList.splice(handlerIndex, 1);\n }\n }\n };\n }\n public clearEscHandler(id: IFunctionIdentifier): void {\n if (this._escHandlers[this._identifier(id, [0x30, 0x7e])]) delete this._escHandlers[this._identifier(id, [0x30, 0x7e])];\n }\n public setEscHandlerFallback(handler: EscFallbackHandlerType): void {\n this._escHandlerFb = handler;\n }\n\n public setExecuteHandler(flag: string, handler: ExecuteHandlerType): void {\n this._executeHandlers[flag.charCodeAt(0)] = handler;\n }\n public clearExecuteHandler(flag: string): void {\n if (this._executeHandlers[flag.charCodeAt(0)]) delete this._executeHandlers[flag.charCodeAt(0)];\n }\n public setExecuteHandlerFallback(handler: ExecuteFallbackHandlerType): void {\n this._executeHandlerFb = handler;\n }\n\n public registerCsiHandler(id: IFunctionIdentifier, handler: CsiHandlerType): IDisposable {\n const ident = this._identifier(id);\n if (this._csiHandlers[ident] === undefined) {\n this._csiHandlers[ident] = [];\n }\n const handlerList = this._csiHandlers[ident];\n handlerList.push(handler);\n return {\n dispose: () => {\n const handlerIndex = handlerList.indexOf(handler);\n if (handlerIndex !== -1) {\n handlerList.splice(handlerIndex, 1);\n }\n }\n };\n }\n public clearCsiHandler(id: IFunctionIdentifier): void {\n if (this._csiHandlers[this._identifier(id)]) delete this._csiHandlers[this._identifier(id)];\n }\n public setCsiHandlerFallback(callback: (ident: number, params: IParams) => void): void {\n this._csiHandlerFb = callback;\n }\n\n public registerDcsHandler(id: IFunctionIdentifier, handler: IDcsHandler): IDisposable {\n return this._dcsParser.registerHandler(this._identifier(id), handler);\n }\n public clearDcsHandler(id: IFunctionIdentifier): void {\n this._dcsParser.clearHandler(this._identifier(id));\n }\n public setDcsHandlerFallback(handler: DcsFallbackHandlerType): void {\n this._dcsParser.setHandlerFallback(handler);\n }\n\n public registerOscHandler(ident: number, handler: IOscHandler): IDisposable {\n return this._oscParser.registerHandler(ident, handler);\n }\n public clearOscHandler(ident: number): void {\n this._oscParser.clearHandler(ident);\n }\n public setOscHandlerFallback(handler: OscFallbackHandlerType): void {\n this._oscParser.setHandlerFallback(handler);\n }\n\n public setErrorHandler(callback: (state: IParsingState) => IParsingState): void {\n this._errorHandler = callback;\n }\n public clearErrorHandler(): void {\n this._errorHandler = this._errorHandlerFb;\n }\n\n /**\n * Reset parser to initial values.\n *\n * This can also be used to lift the improper continuation error condition\n * when dealing with async handlers. Use this only as a last resort to silence\n * that error when the terminal has no pending data to be processed. Note that\n * the interrupted async handler might continue its work in the future messing\n * up the terminal state even further.\n */\n public reset(): void {\n this.currentState = this.initialState;\n this._oscParser.reset();\n this._dcsParser.reset();\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n this.precedingCodepoint = 0;\n // abort pending continuation from async handler\n // Here the RESET type indicates, that the next parse call will\n // ignore any saved stack, instead continues sync with next codepoint from GROUND\n if (this._parseStack.state !== ParserStackType.NONE) {\n this._parseStack.state = ParserStackType.RESET;\n this._parseStack.handlers = []; // also release handlers ref\n }\n }\n\n /**\n * Async parse support.\n */\n protected _preserveStack(\n state: ParserStackType,\n handlers: ResumableHandlersType,\n handlerPos: number,\n transition: number,\n chunkPos: number\n ): void {\n this._parseStack.state = state;\n this._parseStack.handlers = handlers;\n this._parseStack.handlerPos = handlerPos;\n this._parseStack.transition = transition;\n this._parseStack.chunkPos = chunkPos;\n }\n\n /**\n * Parse UTF32 codepoints in `data` up to `length`.\n *\n * Note: For several actions with high data load the parsing is optimized\n * by using local read ahead loops with hardcoded conditions to\n * avoid costly table lookups. Make sure that any change of table values\n * will be reflected in the loop conditions as well and vice versa.\n * Affected states/actions:\n * - GROUND:PRINT\n * - CSI_PARAM:PARAM\n * - DCS_PARAM:PARAM\n * - OSC_STRING:OSC_PUT\n * - DCS_PASSTHROUGH:DCS_PUT\n *\n * Note on asynchronous handler support:\n * Any handler returning a promise will be treated as asynchronous.\n * To keep the in-band blocking working for async handlers, `parse` pauses execution,\n * creates a stack save and returns the promise to the caller.\n * For proper continuation of the paused state it is important\n * to await the promise resolving. On resolve the parse must be repeated\n * with the same chunk of data and the resolved value in `promiseResult`\n * until no promise is returned.\n *\n * Important: With only sync handlers defined, parsing is completely synchronous as well.\n * As soon as an async handler is involved, synchronous parsing is not possible anymore.\n *\n * Boilerplate for proper parsing of multiple chunks with async handlers:\n *\n * ```typescript\n * async function parseMultipleChunks(chunks: Uint32Array[]): Promise {\n * for (const chunk of chunks) {\n * let result: void | Promise;\n * let prev: boolean | undefined;\n * while (result = parser.parse(chunk, chunk.length, prev)) {\n * prev = await result;\n * }\n * }\n * // finished parsing all chunks...\n * }\n * ```\n */\n public parse(data: Uint32Array, length: number, promiseResult?: boolean): void | Promise {\n let code = 0;\n let transition = 0;\n let start = 0;\n let handlerResult: void | boolean | Promise;\n\n // resume from async handler\n if (this._parseStack.state) {\n // allow sync parser reset even in continuation mode\n // Note: can be used to recover parser from improper continuation error below\n if (this._parseStack.state === ParserStackType.RESET) {\n this._parseStack.state = ParserStackType.NONE;\n start = this._parseStack.chunkPos + 1; // continue with next codepoint in GROUND\n } else {\n if (promiseResult === undefined || this._parseStack.state === ParserStackType.FAIL) {\n /**\n * Reject further parsing on improper continuation after pausing.\n * This is a really bad condition with screwed up execution order and prolly messed up\n * terminal state, therefore we exit hard with an exception and reject any further parsing.\n *\n * Note: With `Terminal.write` usage this exception should never occur, as the top level\n * calls are guaranteed to handle async conditions properly. If you ever encounter this\n * exception in your terminal integration it indicates, that you injected data chunks to\n * `InputHandler.parse` or `EscapeSequenceParser.parse` synchronously without waiting for\n * continuation of a running async handler.\n *\n * It is possible to get rid of this error by calling `reset`. But dont rely on that,\n * as the pending async handler still might mess up the terminal later. Instead fix the faulty\n * async handling, so this error will not be thrown anymore.\n */\n this._parseStack.state = ParserStackType.FAIL;\n throw new Error('improper continuation due to previous async handler, giving up parsing');\n }\n\n // we have to resume the old handler loop if:\n // - return value of the promise was `false`\n // - handlers are not exhausted yet\n const handlers = this._parseStack.handlers;\n let handlerPos = this._parseStack.handlerPos - 1;\n switch (this._parseStack.state) {\n case ParserStackType.CSI:\n if (promiseResult === false && handlerPos > -1) {\n for (; handlerPos >= 0; handlerPos--) {\n handlerResult = (handlers as CsiHandlerType[])[handlerPos](this._params);\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._parseStack.handlerPos = handlerPos;\n return handlerResult;\n }\n }\n }\n this._parseStack.handlers = [];\n break;\n case ParserStackType.ESC:\n if (promiseResult === false && handlerPos > -1) {\n for (; handlerPos >= 0; handlerPos--) {\n handlerResult = (handlers as EscHandlerType[])[handlerPos]();\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._parseStack.handlerPos = handlerPos;\n return handlerResult;\n }\n }\n }\n this._parseStack.handlers = [];\n break;\n case ParserStackType.DCS:\n code = data[this._parseStack.chunkPos];\n handlerResult = this._dcsParser.unhook(code !== 0x18 && code !== 0x1a, promiseResult);\n if (handlerResult) {\n return handlerResult;\n }\n if (code === 0x1b) this._parseStack.transition |= ParserState.ESCAPE;\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n break;\n case ParserStackType.OSC:\n code = data[this._parseStack.chunkPos];\n handlerResult = this._oscParser.end(code !== 0x18 && code !== 0x1a, promiseResult);\n if (handlerResult) {\n return handlerResult;\n }\n if (code === 0x1b) this._parseStack.transition |= ParserState.ESCAPE;\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n break;\n }\n // cleanup before continuing with the main sync loop\n this._parseStack.state = ParserStackType.NONE;\n start = this._parseStack.chunkPos + 1;\n this.precedingCodepoint = 0;\n this.currentState = this._parseStack.transition & TableAccess.TRANSITION_STATE_MASK;\n }\n }\n\n // continue with main sync loop\n\n // process input string\n for (let i = start; i < length; ++i) {\n code = data[i];\n\n // normal transition & action lookup\n transition = this._transitions.table[this.currentState << TableAccess.INDEX_STATE_SHIFT | (code < 0xa0 ? code : NON_ASCII_PRINTABLE)];\n switch (transition >> TableAccess.TRANSITION_ACTION_SHIFT) {\n case ParserAction.PRINT:\n // read ahead with loop unrolling\n // Note: 0x20 (SP) is included, 0x7F (DEL) is excluded\n for (let j = i + 1; ; ++j) {\n if (j >= length || (code = data[j]) < 0x20 || (code > 0x7e && code < NON_ASCII_PRINTABLE)) {\n this._printHandler(data, i, j);\n i = j - 1;\n break;\n }\n if (++j >= length || (code = data[j]) < 0x20 || (code > 0x7e && code < NON_ASCII_PRINTABLE)) {\n this._printHandler(data, i, j);\n i = j - 1;\n break;\n }\n if (++j >= length || (code = data[j]) < 0x20 || (code > 0x7e && code < NON_ASCII_PRINTABLE)) {\n this._printHandler(data, i, j);\n i = j - 1;\n break;\n }\n if (++j >= length || (code = data[j]) < 0x20 || (code > 0x7e && code < NON_ASCII_PRINTABLE)) {\n this._printHandler(data, i, j);\n i = j - 1;\n break;\n }\n }\n break;\n case ParserAction.EXECUTE:\n if (this._executeHandlers[code]) this._executeHandlers[code]();\n else this._executeHandlerFb(code);\n this.precedingCodepoint = 0;\n break;\n case ParserAction.IGNORE:\n break;\n case ParserAction.ERROR:\n const inject: IParsingState = this._errorHandler(\n {\n position: i,\n code,\n currentState: this.currentState,\n collect: this._collect,\n params: this._params,\n abort: false\n });\n if (inject.abort) return;\n // inject values: currently not implemented\n break;\n case ParserAction.CSI_DISPATCH:\n // Trigger CSI Handler\n const handlers = this._csiHandlers[this._collect << 8 | code];\n let j = handlers ? handlers.length - 1 : -1;\n for (; j >= 0; j--) {\n // true means success and to stop bubbling\n // a promise indicates an async handler that needs to finish before progressing\n handlerResult = handlers[j](this._params);\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._preserveStack(ParserStackType.CSI, handlers, j, transition, i);\n return handlerResult;\n }\n }\n if (j < 0) {\n this._csiHandlerFb(this._collect << 8 | code, this._params);\n }\n this.precedingCodepoint = 0;\n break;\n case ParserAction.PARAM:\n // inner loop: digits (0x30 - 0x39) and ; (0x3b) and : (0x3a)\n do {\n switch (code) {\n case 0x3b:\n this._params.addParam(0); // ZDM\n break;\n case 0x3a:\n this._params.addSubParam(-1);\n break;\n default: // 0x30 - 0x39\n this._params.addDigit(code - 48);\n }\n } while (++i < length && (code = data[i]) > 0x2f && code < 0x3c);\n i--;\n break;\n case ParserAction.COLLECT:\n this._collect <<= 8;\n this._collect |= code;\n break;\n case ParserAction.ESC_DISPATCH:\n const handlersEsc = this._escHandlers[this._collect << 8 | code];\n let jj = handlersEsc ? handlersEsc.length - 1 : -1;\n for (; jj >= 0; jj--) {\n // true means success and to stop bubbling\n // a promise indicates an async handler that needs to finish before progressing\n handlerResult = handlersEsc[jj]();\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._preserveStack(ParserStackType.ESC, handlersEsc, jj, transition, i);\n return handlerResult;\n }\n }\n if (jj < 0) {\n this._escHandlerFb(this._collect << 8 | code);\n }\n this.precedingCodepoint = 0;\n break;\n case ParserAction.CLEAR:\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n break;\n case ParserAction.DCS_HOOK:\n this._dcsParser.hook(this._collect << 8 | code, this._params);\n break;\n case ParserAction.DCS_PUT:\n // inner loop - exit DCS_PUT: 0x18, 0x1a, 0x1b, 0x7f, 0x80 - 0x9f\n // unhook triggered by: 0x1b, 0x9c (success) and 0x18, 0x1a (abort)\n for (let j = i + 1; ; ++j) {\n if (j >= length || (code = data[j]) === 0x18 || code === 0x1a || code === 0x1b || (code > 0x7f && code < NON_ASCII_PRINTABLE)) {\n this._dcsParser.put(data, i, j);\n i = j - 1;\n break;\n }\n }\n break;\n case ParserAction.DCS_UNHOOK:\n handlerResult = this._dcsParser.unhook(code !== 0x18 && code !== 0x1a);\n if (handlerResult) {\n this._preserveStack(ParserStackType.DCS, [], 0, transition, i);\n return handlerResult;\n }\n if (code === 0x1b) transition |= ParserState.ESCAPE;\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n this.precedingCodepoint = 0;\n break;\n case ParserAction.OSC_START:\n this._oscParser.start();\n break;\n case ParserAction.OSC_PUT:\n // inner loop: 0x20 (SP) included, 0x7F (DEL) included\n for (let j = i + 1; ; j++) {\n if (j >= length || (code = data[j]) < 0x20 || (code > 0x7f && code < NON_ASCII_PRINTABLE)) {\n this._oscParser.put(data, i, j);\n i = j - 1;\n break;\n }\n }\n break;\n case ParserAction.OSC_END:\n handlerResult = this._oscParser.end(code !== 0x18 && code !== 0x1a);\n if (handlerResult) {\n this._preserveStack(ParserStackType.OSC, [], 0, transition, i);\n return handlerResult;\n }\n if (code === 0x1b) transition |= ParserState.ESCAPE;\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n this.precedingCodepoint = 0;\n break;\n }\n this.currentState = transition & TableAccess.TRANSITION_STATE_MASK;\n }\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IOscHandler, IHandlerCollection, OscFallbackHandlerType, IOscParser, ISubParserStackState } from 'common/parser/Types';\nimport { OscState, PAYLOAD_LIMIT } from 'common/parser/Constants';\nimport { utf32ToString } from 'common/input/TextDecoder';\nimport { IDisposable } from 'common/Types';\n\nconst EMPTY_HANDLERS: IOscHandler[] = [];\n\nexport class OscParser implements IOscParser {\n private _state = OscState.START;\n private _active = EMPTY_HANDLERS;\n private _id = -1;\n private _handlers: IHandlerCollection = Object.create(null);\n private _handlerFb: OscFallbackHandlerType = () => { };\n private _stack: ISubParserStackState = {\n paused: false,\n loopPosition: 0,\n fallThrough: false\n };\n\n public registerHandler(ident: number, handler: IOscHandler): IDisposable {\n if (this._handlers[ident] === undefined) {\n this._handlers[ident] = [];\n }\n const handlerList = this._handlers[ident];\n handlerList.push(handler);\n return {\n dispose: () => {\n const handlerIndex = handlerList.indexOf(handler);\n if (handlerIndex !== -1) {\n handlerList.splice(handlerIndex, 1);\n }\n }\n };\n }\n public clearHandler(ident: number): void {\n if (this._handlers[ident]) delete this._handlers[ident];\n }\n public setHandlerFallback(handler: OscFallbackHandlerType): void {\n this._handlerFb = handler;\n }\n\n public dispose(): void {\n this._handlers = Object.create(null);\n this._handlerFb = () => { };\n this._active = EMPTY_HANDLERS;\n }\n\n public reset(): void {\n // force cleanup handlers if payload was already sent\n if (this._state === OscState.PAYLOAD) {\n for (let j = this._stack.paused ? this._stack.loopPosition - 1 : this._active.length - 1; j >= 0; --j) {\n this._active[j].end(false);\n }\n }\n this._stack.paused = false;\n this._active = EMPTY_HANDLERS;\n this._id = -1;\n this._state = OscState.START;\n }\n\n private _start(): void {\n this._active = this._handlers[this._id] || EMPTY_HANDLERS;\n if (!this._active.length) {\n this._handlerFb(this._id, 'START');\n } else {\n for (let j = this._active.length - 1; j >= 0; j--) {\n this._active[j].start();\n }\n }\n }\n\n private _put(data: Uint32Array, start: number, end: number): void {\n if (!this._active.length) {\n this._handlerFb(this._id, 'PUT', utf32ToString(data, start, end));\n } else {\n for (let j = this._active.length - 1; j >= 0; j--) {\n this._active[j].put(data, start, end);\n }\n }\n }\n\n public start(): void {\n // always reset leftover handlers\n this.reset();\n this._state = OscState.ID;\n }\n\n /**\n * Put data to current OSC command.\n * Expects the identifier of the OSC command in the form\n * OSC id ; payload ST/BEL\n * Payload chunks are not further processed and get\n * directly passed to the handlers.\n */\n public put(data: Uint32Array, start: number, end: number): void {\n if (this._state === OscState.ABORT) {\n return;\n }\n if (this._state === OscState.ID) {\n while (start < end) {\n const code = data[start++];\n if (code === 0x3b) {\n this._state = OscState.PAYLOAD;\n this._start();\n break;\n }\n if (code < 0x30 || 0x39 < code) {\n this._state = OscState.ABORT;\n return;\n }\n if (this._id === -1) {\n this._id = 0;\n }\n this._id = this._id * 10 + code - 48;\n }\n }\n if (this._state === OscState.PAYLOAD && end - start > 0) {\n this._put(data, start, end);\n }\n }\n\n /**\n * Indicates end of an OSC command.\n * Whether the OSC got aborted or finished normally\n * is indicated by `success`.\n */\n public end(success: boolean, promiseResult: boolean = true): void | Promise {\n if (this._state === OscState.START) {\n return;\n }\n // do nothing if command was faulty\n if (this._state !== OscState.ABORT) {\n // if we are still in ID state and get an early end\n // means that the command has no payload thus we still have\n // to announce START and send END right after\n if (this._state === OscState.ID) {\n this._start();\n }\n\n if (!this._active.length) {\n this._handlerFb(this._id, 'END', success);\n } else {\n let handlerResult: boolean | Promise = false;\n let j = this._active.length - 1;\n let fallThrough = false;\n if (this._stack.paused) {\n j = this._stack.loopPosition - 1;\n handlerResult = promiseResult;\n fallThrough = this._stack.fallThrough;\n this._stack.paused = false;\n }\n if (!fallThrough && handlerResult === false) {\n for (; j >= 0; j--) {\n handlerResult = this._active[j].end(success);\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._stack.paused = true;\n this._stack.loopPosition = j;\n this._stack.fallThrough = false;\n return handlerResult;\n }\n }\n j--;\n }\n // cleanup left over handlers\n // we always have to call .end for proper cleanup,\n // here we use `success` to indicate whether a handler should execute\n for (; j >= 0; j--) {\n handlerResult = this._active[j].end(false);\n if (handlerResult instanceof Promise) {\n this._stack.paused = true;\n this._stack.loopPosition = j;\n this._stack.fallThrough = true;\n return handlerResult;\n }\n }\n }\n\n }\n this._active = EMPTY_HANDLERS;\n this._id = -1;\n this._state = OscState.START;\n }\n}\n\n/**\n * Convenient class to allow attaching string based handler functions\n * as OSC handlers.\n */\nexport class OscHandler implements IOscHandler {\n private _data = '';\n private _hitLimit: boolean = false;\n\n constructor(private _handler: (data: string) => boolean | Promise) { }\n\n public start(): void {\n this._data = '';\n this._hitLimit = false;\n }\n\n public put(data: Uint32Array, start: number, end: number): void {\n if (this._hitLimit) {\n return;\n }\n this._data += utf32ToString(data, start, end);\n if (this._data.length > PAYLOAD_LIMIT) {\n this._data = '';\n this._hitLimit = true;\n }\n }\n\n public end(success: boolean): boolean | Promise {\n let ret: boolean | Promise = false;\n if (this._hitLimit) {\n ret = false;\n } else if (success) {\n ret = this._handler(this._data);\n if (ret instanceof Promise) {\n // need to hold data until `ret` got resolved\n // dont care for errors, data will be freed anyway on next start\n return ret.then(res => {\n this._data = '';\n this._hitLimit = false;\n return res;\n });\n }\n }\n this._data = '';\n this._hitLimit = false;\n return ret;\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\nimport { IParams, ParamsArray } from 'common/parser/Types';\n\n// max value supported for a single param/subparam (clamped to positive int32 range)\nconst MAX_VALUE = 0x7FFFFFFF;\n// max allowed subparams for a single sequence (hardcoded limitation)\nconst MAX_SUBPARAMS = 256;\n\n/**\n * Params storage class.\n * This type is used by the parser to accumulate sequence parameters and sub parameters\n * and transmit them to the input handler actions.\n *\n * NOTES:\n * - params object for action handlers is borrowed, use `.toArray` or `.clone` to get a copy\n * - never read beyond `params.length - 1` (likely to contain arbitrary data)\n * - `.getSubParams` returns a borrowed typed array, use `.getSubParamsAll` for cloned sub params\n * - hardcoded limitations:\n * - max. value for a single (sub) param is 2^31 - 1 (greater values are clamped to that)\n * - max. 256 sub params possible\n * - negative values are not allowed beside -1 (placeholder for default value)\n *\n * About ZDM (Zero Default Mode):\n * ZDM is not orchestrated by this class. If the parser is in ZDM,\n * it should add 0 for empty params, otherwise -1. This does not apply\n * to subparams, empty subparams should always be added with -1.\n */\nexport class Params implements IParams {\n // params store and length\n public params: Int32Array;\n public length: number;\n\n // sub params store and length\n protected _subParams: Int32Array;\n protected _subParamsLength: number;\n\n // sub params offsets from param: param idx --> [start, end] offset\n private _subParamsIdx: Uint16Array;\n private _rejectDigits: boolean;\n private _rejectSubDigits: boolean;\n private _digitIsSub: boolean;\n\n /**\n * Create a `Params` type from JS array representation.\n */\n public static fromArray(values: ParamsArray): Params {\n const params = new Params();\n if (!values.length) {\n return params;\n }\n // skip leading sub params\n for (let i = (Array.isArray(values[0])) ? 1 : 0; i < values.length; ++i) {\n const value = values[i];\n if (Array.isArray(value)) {\n for (let k = 0; k < value.length; ++k) {\n params.addSubParam(value[k]);\n }\n } else {\n params.addParam(value);\n }\n }\n return params;\n }\n\n /**\n * @param maxLength max length of storable parameters\n * @param maxSubParamsLength max length of storable sub parameters\n */\n constructor(public maxLength: number = 32, public maxSubParamsLength: number = 32) {\n if (maxSubParamsLength > MAX_SUBPARAMS) {\n throw new Error('maxSubParamsLength must not be greater than 256');\n }\n this.params = new Int32Array(maxLength);\n this.length = 0;\n this._subParams = new Int32Array(maxSubParamsLength);\n this._subParamsLength = 0;\n this._subParamsIdx = new Uint16Array(maxLength);\n this._rejectDigits = false;\n this._rejectSubDigits = false;\n this._digitIsSub = false;\n }\n\n /**\n * Clone object.\n */\n public clone(): Params {\n const newParams = new Params(this.maxLength, this.maxSubParamsLength);\n newParams.params.set(this.params);\n newParams.length = this.length;\n newParams._subParams.set(this._subParams);\n newParams._subParamsLength = this._subParamsLength;\n newParams._subParamsIdx.set(this._subParamsIdx);\n newParams._rejectDigits = this._rejectDigits;\n newParams._rejectSubDigits = this._rejectSubDigits;\n newParams._digitIsSub = this._digitIsSub;\n return newParams;\n }\n\n /**\n * Get a JS array representation of the current parameters and sub parameters.\n * The array is structured as follows:\n * sequence: \"1;2:3:4;5::6\"\n * array : [1, 2, [3, 4], 5, [-1, 6]]\n */\n public toArray(): ParamsArray {\n const res: ParamsArray = [];\n for (let i = 0; i < this.length; ++i) {\n res.push(this.params[i]);\n const start = this._subParamsIdx[i] >> 8;\n const end = this._subParamsIdx[i] & 0xFF;\n if (end - start > 0) {\n res.push(Array.prototype.slice.call(this._subParams, start, end));\n }\n }\n return res;\n }\n\n /**\n * Reset to initial empty state.\n */\n public reset(): void {\n this.length = 0;\n this._subParamsLength = 0;\n this._rejectDigits = false;\n this._rejectSubDigits = false;\n this._digitIsSub = false;\n }\n\n /**\n * Add a parameter value.\n * `Params` only stores up to `maxLength` parameters, any later\n * parameter will be ignored.\n * Note: VT devices only stored up to 16 values, xterm seems to\n * store up to 30.\n */\n public addParam(value: number): void {\n this._digitIsSub = false;\n if (this.length >= this.maxLength) {\n this._rejectDigits = true;\n return;\n }\n if (value < -1) {\n throw new Error('values lesser than -1 are not allowed');\n }\n this._subParamsIdx[this.length] = this._subParamsLength << 8 | this._subParamsLength;\n this.params[this.length++] = value > MAX_VALUE ? MAX_VALUE : value;\n }\n\n /**\n * Add a sub parameter value.\n * The sub parameter is automatically associated with the last parameter value.\n * Thus it is not possible to add a subparameter without any parameter added yet.\n * `Params` only stores up to `subParamsLength` sub parameters, any later\n * sub parameter will be ignored.\n */\n public addSubParam(value: number): void {\n this._digitIsSub = true;\n if (!this.length) {\n return;\n }\n if (this._rejectDigits || this._subParamsLength >= this.maxSubParamsLength) {\n this._rejectSubDigits = true;\n return;\n }\n if (value < -1) {\n throw new Error('values lesser than -1 are not allowed');\n }\n this._subParams[this._subParamsLength++] = value > MAX_VALUE ? MAX_VALUE : value;\n this._subParamsIdx[this.length - 1]++;\n }\n\n /**\n * Whether parameter at index `idx` has sub parameters.\n */\n public hasSubParams(idx: number): boolean {\n return ((this._subParamsIdx[idx] & 0xFF) - (this._subParamsIdx[idx] >> 8) > 0);\n }\n\n /**\n * Return sub parameters for parameter at index `idx`.\n * Note: The values are borrowed, thus you need to copy\n * the values if you need to hold them in nonlocal scope.\n */\n public getSubParams(idx: number): Int32Array | null {\n const start = this._subParamsIdx[idx] >> 8;\n const end = this._subParamsIdx[idx] & 0xFF;\n if (end - start > 0) {\n return this._subParams.subarray(start, end);\n }\n return null;\n }\n\n /**\n * Return all sub parameters as {idx: subparams} mapping.\n * Note: The values are not borrowed.\n */\n public getSubParamsAll(): {[idx: number]: Int32Array} {\n const result: {[idx: number]: Int32Array} = {};\n for (let i = 0; i < this.length; ++i) {\n const start = this._subParamsIdx[i] >> 8;\n const end = this._subParamsIdx[i] & 0xFF;\n if (end - start > 0) {\n result[i] = this._subParams.slice(start, end);\n }\n }\n return result;\n }\n\n /**\n * Add a single digit value to current parameter.\n * This is used by the parser to account digits on a char by char basis.\n */\n public addDigit(value: number): void {\n let length;\n if (this._rejectDigits\n || !(length = this._digitIsSub ? this._subParamsLength : this.length)\n || (this._digitIsSub && this._rejectSubDigits)\n ) {\n return;\n }\n\n const store = this._digitIsSub ? this._subParams : this.params;\n const cur = store[length - 1];\n store[length - 1] = ~cur ? Math.min(cur * 10 + value, MAX_VALUE) : value;\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ITerminalAddon, IDisposable, Terminal } from 'xterm';\n\nexport interface ILoadedAddon {\n instance: ITerminalAddon;\n dispose: () => void;\n isDisposed: boolean;\n}\n\nexport class AddonManager implements IDisposable {\n protected _addons: ILoadedAddon[] = [];\n\n constructor() {\n }\n\n public dispose(): void {\n for (let i = this._addons.length - 1; i >= 0; i--) {\n this._addons[i].instance.dispose();\n }\n }\n\n public loadAddon(terminal: Terminal, instance: ITerminalAddon): void {\n const loadedAddon: ILoadedAddon = {\n instance,\n dispose: instance.dispose,\n isDisposed: false\n };\n this._addons.push(loadedAddon);\n instance.dispose = () => this._wrappedAddonDispose(loadedAddon);\n instance.activate(terminal as any);\n }\n\n private _wrappedAddonDispose(loadedAddon: ILoadedAddon): void {\n if (loadedAddon.isDisposed) {\n // Do nothing if already disposed\n return;\n }\n let index = -1;\n for (let i = 0; i < this._addons.length; i++) {\n if (this._addons[i] === loadedAddon) {\n index = i;\n break;\n }\n }\n if (index === -1) {\n throw new Error('Could not dispose an addon that has not been loaded');\n }\n loadedAddon.isDisposed = true;\n loadedAddon.dispose.apply(loadedAddon.instance);\n this._addons.splice(index, 1);\n }\n}\n","/**\n * Copyright (c) 2021 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBuffer as IBufferApi, IBufferLine as IBufferLineApi, IBufferCell as IBufferCellApi } from 'xterm';\nimport { IBuffer } from 'common/buffer/Types';\nimport { BufferLineApiView } from 'common/public/BufferLineApiView';\nimport { CellData } from 'common/buffer/CellData';\n\nexport class BufferApiView implements IBufferApi {\n constructor(\n private _buffer: IBuffer,\n public readonly type: 'normal' | 'alternate'\n ) { }\n\n public init(buffer: IBuffer): BufferApiView {\n this._buffer = buffer;\n return this;\n }\n\n public get cursorY(): number { return this._buffer.y; }\n public get cursorX(): number { return this._buffer.x; }\n public get viewportY(): number { return this._buffer.ydisp; }\n public get baseY(): number { return this._buffer.ybase; }\n public get length(): number { return this._buffer.lines.length; }\n public getLine(y: number): IBufferLineApi | undefined {\n const line = this._buffer.lines.get(y);\n if (!line) {\n return undefined;\n }\n return new BufferLineApiView(line);\n }\n public getNullCell(): IBufferCellApi { return new CellData(); }\n}\n","/**\n * Copyright (c) 2021 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { CellData } from 'common/buffer/CellData';\nimport { IBufferLine, ICellData } from 'common/Types';\nimport { IBufferCell as IBufferCellApi, IBufferLine as IBufferLineApi } from 'xterm';\n\nexport class BufferLineApiView implements IBufferLineApi {\n constructor(private _line: IBufferLine) { }\n\n public get isWrapped(): boolean { return this._line.isWrapped; }\n public get length(): number { return this._line.length; }\n public getCell(x: number, cell?: IBufferCellApi): IBufferCellApi | undefined {\n if (x < 0 || x >= this._line.length) {\n return undefined;\n }\n\n if (cell) {\n this._line.loadCell(x, cell as ICellData);\n return cell;\n }\n return this._line.loadCell(x, new CellData());\n }\n public translateToString(trimRight?: boolean, startColumn?: number, endColumn?: number): string {\n return this._line.translateToString(trimRight, startColumn, endColumn);\n }\n}\n","/**\n * Copyright (c) 2021 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBuffer as IBufferApi, IBufferNamespace as IBufferNamespaceApi } from 'xterm';\nimport { BufferApiView } from 'common/public/BufferApiView';\nimport { IEvent, EventEmitter } from 'common/EventEmitter';\nimport { ICoreTerminal } from 'common/Types';\n\nexport class BufferNamespaceApi implements IBufferNamespaceApi {\n private _normal: BufferApiView;\n private _alternate: BufferApiView;\n private _onBufferChange = new EventEmitter();\n public get onBufferChange(): IEvent { return this._onBufferChange.event; }\n\n constructor(private _core: ICoreTerminal) {\n this._normal = new BufferApiView(this._core.buffers.normal, 'normal');\n this._alternate = new BufferApiView(this._core.buffers.alt, 'alternate');\n this._core.buffers.onBufferActivate(() => this._onBufferChange.fire(this.active));\n }\n public get active(): IBufferApi {\n if (this._core.buffers.active === this._core.buffers.normal) { return this.normal; }\n if (this._core.buffers.active === this._core.buffers.alt) { return this.alternate; }\n throw new Error('Active buffer is neither normal nor alternate');\n }\n public get normal(): IBufferApi {\n return this._normal.init(this._core.buffers.normal);\n }\n public get alternate(): IBufferApi {\n return this._alternate.init(this._core.buffers.alt);\n }\n}\n","/**\n * Copyright (c) 2021 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IParams } from 'common/parser/Types';\nimport { IDisposable, IFunctionIdentifier, IParser } from 'xterm';\nimport { ICoreTerminal } from 'common/Types';\n\nexport class ParserApi implements IParser {\n constructor(private _core: ICoreTerminal) { }\n\n public registerCsiHandler(id: IFunctionIdentifier, callback: (params: (number | number[])[]) => boolean | Promise): IDisposable {\n return this._core.registerCsiHandler(id, (params: IParams) => callback(params.toArray()));\n }\n public addCsiHandler(id: IFunctionIdentifier, callback: (params: (number | number[])[]) => boolean | Promise): IDisposable {\n return this.registerCsiHandler(id, callback);\n }\n public registerDcsHandler(id: IFunctionIdentifier, callback: (data: string, param: (number | number[])[]) => boolean | Promise): IDisposable {\n return this._core.registerDcsHandler(id, (data: string, params: IParams) => callback(data, params.toArray()));\n }\n public addDcsHandler(id: IFunctionIdentifier, callback: (data: string, param: (number | number[])[]) => boolean | Promise): IDisposable {\n return this.registerDcsHandler(id, callback);\n }\n public registerEscHandler(id: IFunctionIdentifier, handler: () => boolean | Promise): IDisposable {\n return this._core.registerEscHandler(id, handler);\n }\n public addEscHandler(id: IFunctionIdentifier, handler: () => boolean | Promise): IDisposable {\n return this.registerEscHandler(id, handler);\n }\n public registerOscHandler(ident: number, callback: (data: string) => boolean | Promise): IDisposable {\n return this._core.registerOscHandler(ident, callback);\n }\n public addOscHandler(ident: number, callback: (data: string) => boolean | Promise): IDisposable {\n return this.registerOscHandler(ident, callback);\n }\n}\n","/**\n * Copyright (c) 2021 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ICoreTerminal } from 'common/Types';\nimport { IUnicodeHandling, IUnicodeVersionProvider } from 'xterm';\n\nexport class UnicodeApi implements IUnicodeHandling {\n constructor(private _core: ICoreTerminal) { }\n\n public register(provider: IUnicodeVersionProvider): void {\n this._core.unicodeService.register(provider);\n }\n\n public get versions(): string[] {\n return this._core.unicodeService.versions;\n }\n\n public get activeVersion(): string {\n return this._core.unicodeService.activeVersion;\n }\n\n public set activeVersion(version: string) {\n this._core.unicodeService.activeVersion = version;\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferService, IOptionsService } from 'common/services/Services';\nimport { BufferSet } from 'common/buffer/BufferSet';\nimport { IBufferSet, IBuffer } from 'common/buffer/Types';\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\nimport { Disposable } from 'common/Lifecycle';\nimport { IAttributeData, IBufferLine, ScrollSource } from 'common/Types';\n\nexport const MINIMUM_COLS = 2; // Less than 2 can mess with wide chars\nexport const MINIMUM_ROWS = 1;\n\nexport class BufferService extends Disposable implements IBufferService {\n public serviceBrand: any;\n\n public cols: number;\n public rows: number;\n public buffers: IBufferSet;\n /** Whether the user is scrolling (locks the scroll position) */\n public isUserScrolling: boolean = false;\n\n private _onResize = new EventEmitter<{ cols: number, rows: number }>();\n public get onResize(): IEvent<{ cols: number, rows: number }> { return this._onResize.event; }\n private _onScroll = new EventEmitter();\n public get onScroll(): IEvent { return this._onScroll.event; }\n\n public get buffer(): IBuffer { return this.buffers.active; }\n\n /** An IBufferline to clone/copy from for new blank lines */\n private _cachedBlankLine: IBufferLine | undefined;\n\n constructor(@IOptionsService optionsService: IOptionsService) {\n super();\n this.cols = Math.max(optionsService.rawOptions.cols || 0, MINIMUM_COLS);\n this.rows = Math.max(optionsService.rawOptions.rows || 0, MINIMUM_ROWS);\n this.buffers = new BufferSet(optionsService, this);\n }\n\n public dispose(): void {\n super.dispose();\n this.buffers.dispose();\n }\n\n public resize(cols: number, rows: number): void {\n this.cols = cols;\n this.rows = rows;\n this.buffers.resize(cols, rows);\n this.buffers.setupTabStops(this.cols);\n this._onResize.fire({ cols, rows });\n }\n\n public reset(): void {\n this.buffers.reset();\n this.isUserScrolling = false;\n }\n\n /**\n * Scroll the terminal down 1 row, creating a blank line.\n * @param isWrapped Whether the new line is wrapped from the previous line.\n */\n public scroll(eraseAttr: IAttributeData, isWrapped: boolean = false): void {\n const buffer = this.buffer;\n\n let newLine: IBufferLine | undefined;\n newLine = this._cachedBlankLine;\n if (!newLine || newLine.length !== this.cols || newLine.getFg(0) !== eraseAttr.fg || newLine.getBg(0) !== eraseAttr.bg) {\n newLine = buffer.getBlankLine(eraseAttr, isWrapped);\n this._cachedBlankLine = newLine;\n }\n newLine.isWrapped = isWrapped;\n\n const topRow = buffer.ybase + buffer.scrollTop;\n const bottomRow = buffer.ybase + buffer.scrollBottom;\n\n if (buffer.scrollTop === 0) {\n // Determine whether the buffer is going to be trimmed after insertion.\n const willBufferBeTrimmed = buffer.lines.isFull;\n\n // Insert the line using the fastest method\n if (bottomRow === buffer.lines.length - 1) {\n if (willBufferBeTrimmed) {\n buffer.lines.recycle().copyFrom(newLine);\n } else {\n buffer.lines.push(newLine.clone());\n }\n } else {\n buffer.lines.splice(bottomRow + 1, 0, newLine.clone());\n }\n\n // Only adjust ybase and ydisp when the buffer is not trimmed\n if (!willBufferBeTrimmed) {\n buffer.ybase++;\n // Only scroll the ydisp with ybase if the user has not scrolled up\n if (!this.isUserScrolling) {\n buffer.ydisp++;\n }\n } else {\n // When the buffer is full and the user has scrolled up, keep the text\n // stable unless ydisp is right at the top\n if (this.isUserScrolling) {\n buffer.ydisp = Math.max(buffer.ydisp - 1, 0);\n }\n }\n } else {\n // scrollTop is non-zero which means no line will be going to the\n // scrollback, instead we can just shift them in-place.\n const scrollRegionHeight = bottomRow - topRow + 1 /* as it's zero-based */;\n buffer.lines.shiftElements(topRow + 1, scrollRegionHeight - 1, -1);\n buffer.lines.set(bottomRow, newLine.clone());\n }\n\n // Move the viewport to the bottom of the buffer unless the user is\n // scrolling.\n if (!this.isUserScrolling) {\n buffer.ydisp = buffer.ybase;\n }\n\n this._onScroll.fire(buffer.ydisp);\n }\n\n /**\n * Scroll the display of the terminal\n * @param disp The number of lines to scroll down (negative scroll up).\n * @param suppressScrollEvent Don't emit the scroll event as scrollLines. This is used\n * to avoid unwanted events being handled by the viewport when the event was triggered from the\n * viewport originally.\n */\n public scrollLines(disp: number, suppressScrollEvent?: boolean, source?: ScrollSource): void {\n const buffer = this.buffer;\n if (disp < 0) {\n if (buffer.ydisp === 0) {\n return;\n }\n this.isUserScrolling = true;\n } else if (disp + buffer.ydisp >= buffer.ybase) {\n this.isUserScrolling = false;\n }\n\n const oldYdisp = buffer.ydisp;\n buffer.ydisp = Math.max(Math.min(buffer.ydisp + disp, buffer.ybase), 0);\n\n // No change occurred, don't trigger scroll/refresh\n if (oldYdisp === buffer.ydisp) {\n return;\n }\n\n if (!suppressScrollEvent) {\n this._onScroll.fire(buffer.ydisp);\n }\n }\n\n /**\n * Scroll the display of the terminal by a number of pages.\n * @param pageCount The number of pages to scroll (negative scrolls up).\n */\n public scrollPages(pageCount: number): void {\n this.scrollLines(pageCount * (this.rows - 1));\n }\n\n /**\n * Scrolls the display of the terminal to the top.\n */\n public scrollToTop(): void {\n this.scrollLines(-this.buffer.ydisp);\n }\n\n /**\n * Scrolls the display of the terminal to the bottom.\n */\n public scrollToBottom(): void {\n this.scrollLines(this.buffer.ybase - this.buffer.ydisp);\n }\n\n public scrollToLine(line: number): void {\n const scrollAmount = line - this.buffer.ydisp;\n if (scrollAmount !== 0) {\n this.scrollLines(scrollAmount);\n }\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ICharsetService } from 'common/services/Services';\nimport { ICharset } from 'common/Types';\n\nexport class CharsetService implements ICharsetService {\n public serviceBrand: any;\n\n public charset: ICharset | undefined;\n public glevel: number = 0;\n\n private _charsets: (ICharset | undefined)[] = [];\n\n public reset(): void {\n this.charset = undefined;\n this._charsets = [];\n this.glevel = 0;\n }\n\n public setgLevel(g: number): void {\n this.glevel = g;\n this.charset = this._charsets[g];\n }\n\n public setgCharset(g: number, charset: ICharset | undefined): void {\n this._charsets[g] = charset;\n if (this.glevel === g) {\n this.charset = charset;\n }\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\nimport { IBufferService, ICoreService, ICoreMouseService } from 'common/services/Services';\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\nimport { ICoreMouseProtocol, ICoreMouseEvent, CoreMouseEncoding, CoreMouseEventType, CoreMouseButton, CoreMouseAction } from 'common/Types';\n\n/**\n * Supported default protocols.\n */\nconst DEFAULT_PROTOCOLS: { [key: string]: ICoreMouseProtocol } = {\n /**\n * NONE\n * Events: none\n * Modifiers: none\n */\n NONE: {\n events: CoreMouseEventType.NONE,\n restrict: () => false\n },\n /**\n * X10\n * Events: mousedown\n * Modifiers: none\n */\n X10: {\n events: CoreMouseEventType.DOWN,\n restrict: (e: ICoreMouseEvent) => {\n // no wheel, no move, no up\n if (e.button === CoreMouseButton.WHEEL || e.action !== CoreMouseAction.DOWN) {\n return false;\n }\n // no modifiers\n e.ctrl = false;\n e.alt = false;\n e.shift = false;\n return true;\n }\n },\n /**\n * VT200\n * Events: mousedown / mouseup / wheel\n * Modifiers: all\n */\n VT200: {\n events: CoreMouseEventType.DOWN | CoreMouseEventType.UP | CoreMouseEventType.WHEEL,\n restrict: (e: ICoreMouseEvent) => {\n // no move\n if (e.action === CoreMouseAction.MOVE) {\n return false;\n }\n return true;\n }\n },\n /**\n * DRAG\n * Events: mousedown / mouseup / wheel / mousedrag\n * Modifiers: all\n */\n DRAG: {\n events: CoreMouseEventType.DOWN | CoreMouseEventType.UP | CoreMouseEventType.WHEEL | CoreMouseEventType.DRAG,\n restrict: (e: ICoreMouseEvent) => {\n // no move without button\n if (e.action === CoreMouseAction.MOVE && e.button === CoreMouseButton.NONE) {\n return false;\n }\n return true;\n }\n },\n /**\n * ANY\n * Events: all mouse related events\n * Modifiers: all\n */\n ANY: {\n events:\n CoreMouseEventType.DOWN | CoreMouseEventType.UP | CoreMouseEventType.WHEEL\n | CoreMouseEventType.DRAG | CoreMouseEventType.MOVE,\n restrict: (e: ICoreMouseEvent) => true\n }\n};\n\nconst enum Modifiers {\n SHIFT = 4,\n ALT = 8,\n CTRL = 16\n}\n\n// helper for default encoders to generate the event code.\nfunction eventCode(e: ICoreMouseEvent, isSGR: boolean): number {\n let code = (e.ctrl ? Modifiers.CTRL : 0) | (e.shift ? Modifiers.SHIFT : 0) | (e.alt ? Modifiers.ALT : 0);\n if (e.button === CoreMouseButton.WHEEL) {\n code |= 64;\n code |= e.action;\n } else {\n code |= e.button & 3;\n if (e.button & 4) {\n code |= 64;\n }\n if (e.button & 8) {\n code |= 128;\n }\n if (e.action === CoreMouseAction.MOVE) {\n code |= CoreMouseAction.MOVE;\n } else if (e.action === CoreMouseAction.UP && !isSGR) {\n // special case - only SGR can report button on release\n // all others have to go with NONE\n code |= CoreMouseButton.NONE;\n }\n }\n return code;\n}\n\nconst S = String.fromCharCode;\n\n/**\n * Supported default encodings.\n */\nconst DEFAULT_ENCODINGS: { [key: string]: CoreMouseEncoding } = {\n /**\n * DEFAULT - CSI M Pb Px Py\n * Single byte encoding for coords and event code.\n * Can encode values up to 223 (1-based).\n */\n DEFAULT: (e: ICoreMouseEvent) => {\n const params = [eventCode(e, false) + 32, e.col + 32, e.row + 32];\n // supress mouse report if we exceed addressible range\n // Note this is handled differently by emulators\n // - xterm: sends 0;0 coords instead\n // - vte, konsole: no report\n if (params[0] > 255 || params[1] > 255 || params[2] > 255) {\n return '';\n }\n return `\\x1b[M${S(params[0])}${S(params[1])}${S(params[2])}`;\n },\n /**\n * SGR - CSI < Pb ; Px ; Py M|m\n * No encoding limitation.\n * Can report button on release and works with a well formed sequence.\n */\n SGR: (e: ICoreMouseEvent) => {\n const final = (e.action === CoreMouseAction.UP && e.button !== CoreMouseButton.WHEEL) ? 'm' : 'M';\n return `\\x1b[<${eventCode(e, true)};${e.col};${e.row}${final}`;\n },\n SGR_PIXELS: (e: ICoreMouseEvent) => {\n const final = (e.action === CoreMouseAction.UP && e.button !== CoreMouseButton.WHEEL) ? 'm' : 'M';\n return `\\x1b[<${eventCode(e, true)};${e.x};${e.y}${final}`;\n }\n};\n\n/**\n * CoreMouseService\n *\n * Provides mouse tracking reports with different protocols and encodings.\n * - protocols: NONE (default), X10, VT200, DRAG, ANY\n * - encodings: DEFAULT, SGR (UTF8, URXVT removed in #2507)\n *\n * Custom protocols/encodings can be added by `addProtocol` / `addEncoding`.\n * To activate a protocol/encoding, set `activeProtocol` / `activeEncoding`.\n * Switching a protocol will send a notification event `onProtocolChange`\n * with a list of needed events to track.\n *\n * The service handles the mouse tracking state and decides whether to send\n * a tracking report to the backend based on protocol and encoding limitations.\n * To send a mouse event call `triggerMouseEvent`.\n */\nexport class CoreMouseService implements ICoreMouseService {\n private _protocols: { [name: string]: ICoreMouseProtocol } = {};\n private _encodings: { [name: string]: CoreMouseEncoding } = {};\n private _activeProtocol: string = '';\n private _activeEncoding: string = '';\n private _onProtocolChange = new EventEmitter();\n private _lastEvent: ICoreMouseEvent | null = null;\n\n constructor(\n @IBufferService private readonly _bufferService: IBufferService,\n @ICoreService private readonly _coreService: ICoreService\n ) {\n // register default protocols and encodings\n for (const name of Object.keys(DEFAULT_PROTOCOLS)) this.addProtocol(name, DEFAULT_PROTOCOLS[name]);\n for (const name of Object.keys(DEFAULT_ENCODINGS)) this.addEncoding(name, DEFAULT_ENCODINGS[name]);\n // call reset to set defaults\n this.reset();\n }\n\n public addProtocol(name: string, protocol: ICoreMouseProtocol): void {\n this._protocols[name] = protocol;\n }\n\n public addEncoding(name: string, encoding: CoreMouseEncoding): void {\n this._encodings[name] = encoding;\n }\n\n public get activeProtocol(): string {\n return this._activeProtocol;\n }\n\n public get areMouseEventsActive(): boolean {\n return this._protocols[this._activeProtocol].events !== 0;\n }\n\n public set activeProtocol(name: string) {\n if (!this._protocols[name]) {\n throw new Error(`unknown protocol \"${name}\"`);\n }\n this._activeProtocol = name;\n this._onProtocolChange.fire(this._protocols[name].events);\n }\n\n public get activeEncoding(): string {\n return this._activeEncoding;\n }\n\n public set activeEncoding(name: string) {\n if (!this._encodings[name]) {\n throw new Error(`unknown encoding \"${name}\"`);\n }\n this._activeEncoding = name;\n }\n\n public reset(): void {\n this.activeProtocol = 'NONE';\n this.activeEncoding = 'DEFAULT';\n this._lastEvent = null;\n }\n\n /**\n * Event to announce changes in mouse tracking.\n */\n public get onProtocolChange(): IEvent {\n return this._onProtocolChange.event;\n }\n\n /**\n * Triggers a mouse event to be sent.\n *\n * Returns true if the event passed all protocol restrictions and a report\n * was sent, otherwise false. The return value may be used to decide whether\n * the default event action in the bowser component should be omitted.\n *\n * Note: The method will change values of the given event object\n * to fullfill protocol and encoding restrictions.\n */\n public triggerMouseEvent(e: ICoreMouseEvent): boolean {\n // range check for col/row\n if (e.col < 0 || e.col >= this._bufferService.cols\n || e.row < 0 || e.row >= this._bufferService.rows) {\n return false;\n }\n\n // filter nonsense combinations of button + action\n if (e.button === CoreMouseButton.WHEEL && e.action === CoreMouseAction.MOVE) {\n return false;\n }\n if (e.button === CoreMouseButton.NONE && e.action !== CoreMouseAction.MOVE) {\n return false;\n }\n if (e.button !== CoreMouseButton.WHEEL && (e.action === CoreMouseAction.LEFT || e.action === CoreMouseAction.RIGHT)) {\n return false;\n }\n\n // report 1-based coords\n e.col++;\n e.row++;\n\n // debounce move events at grid or pixel level\n if (e.action === CoreMouseAction.MOVE\n && this._lastEvent\n && this._equalEvents(this._lastEvent, e, this._activeEncoding === 'SGR_PIXELS')\n ) {\n return false;\n }\n\n // apply protocol restrictions\n if (!this._protocols[this._activeProtocol].restrict(e)) {\n return false;\n }\n\n // encode report and send\n const report = this._encodings[this._activeEncoding](e);\n if (report) {\n // always send DEFAULT as binary data\n if (this._activeEncoding === 'DEFAULT') {\n this._coreService.triggerBinaryEvent(report);\n } else {\n this._coreService.triggerDataEvent(report, true);\n }\n }\n\n this._lastEvent = e;\n\n return true;\n }\n\n public explainEvents(events: CoreMouseEventType): { [event: string]: boolean } {\n return {\n down: !!(events & CoreMouseEventType.DOWN),\n up: !!(events & CoreMouseEventType.UP),\n drag: !!(events & CoreMouseEventType.DRAG),\n move: !!(events & CoreMouseEventType.MOVE),\n wheel: !!(events & CoreMouseEventType.WHEEL)\n };\n }\n\n private _equalEvents(e1: ICoreMouseEvent, e2: ICoreMouseEvent, pixels: boolean): boolean {\n if (pixels) {\n if (e1.x !== e2.x) return false;\n if (e1.y !== e2.y) return false;\n } else {\n if (e1.col !== e2.col) return false;\n if (e1.row !== e2.row) return false;\n }\n if (e1.button !== e2.button) return false;\n if (e1.action !== e2.action) return false;\n if (e1.ctrl !== e2.ctrl) return false;\n if (e1.alt !== e2.alt) return false;\n if (e1.shift !== e2.shift) return false;\n return true;\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ICoreService, ILogService, IOptionsService, IBufferService } from 'common/services/Services';\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\nimport { IDecPrivateModes, IModes } from 'common/Types';\nimport { clone } from 'common/Clone';\nimport { Disposable } from 'common/Lifecycle';\n\nconst DEFAULT_MODES: IModes = Object.freeze({\n insertMode: false\n});\n\nconst DEFAULT_DEC_PRIVATE_MODES: IDecPrivateModes = Object.freeze({\n applicationCursorKeys: false,\n applicationKeypad: false,\n bracketedPasteMode: false,\n origin: false,\n reverseWraparound: false,\n sendFocus: false,\n wraparound: true // defaults: xterm - true, vt100 - false\n});\n\nexport class CoreService extends Disposable implements ICoreService {\n public serviceBrand: any;\n\n public isCursorInitialized: boolean = false;\n public isCursorHidden: boolean = false;\n public modes: IModes;\n public decPrivateModes: IDecPrivateModes;\n\n // Circular dependency, this must be unset or memory will leak after Terminal.dispose\n private _scrollToBottom: (() => void) | undefined;\n\n private _onData = this.register(new EventEmitter());\n public get onData(): IEvent { return this._onData.event; }\n private _onUserInput = this.register(new EventEmitter());\n public get onUserInput(): IEvent { return this._onUserInput.event; }\n private _onBinary = this.register(new EventEmitter());\n public get onBinary(): IEvent { return this._onBinary.event; }\n\n constructor(\n // TODO: Move this into a service\n scrollToBottom: () => void,\n @IBufferService private readonly _bufferService: IBufferService,\n @ILogService private readonly _logService: ILogService,\n @IOptionsService private readonly _optionsService: IOptionsService\n ) {\n super();\n this._scrollToBottom = scrollToBottom;\n this.register({ dispose: () => this._scrollToBottom = undefined });\n this.modes = clone(DEFAULT_MODES);\n this.decPrivateModes = clone(DEFAULT_DEC_PRIVATE_MODES);\n }\n\n public reset(): void {\n this.modes = clone(DEFAULT_MODES);\n this.decPrivateModes = clone(DEFAULT_DEC_PRIVATE_MODES);\n }\n\n public triggerDataEvent(data: string, wasUserInput: boolean = false): void {\n // Prevents all events to pty process if stdin is disabled\n if (this._optionsService.rawOptions.disableStdin) {\n return;\n }\n\n // Input is being sent to the terminal, the terminal should focus the prompt.\n const buffer = this._bufferService.buffer;\n if (buffer.ybase !== buffer.ydisp) {\n this._scrollToBottom!();\n }\n\n // Fire onUserInput so listeners can react as well (eg. clear selection)\n if (wasUserInput) {\n this._onUserInput.fire();\n }\n\n // Fire onData API\n this._logService.debug(`sending data \"${data}\"`, () => data.split('').map(e => e.charCodeAt(0)));\n this._onData.fire(data);\n }\n\n public triggerBinaryEvent(data: string): void {\n if (this._optionsService.rawOptions.disableStdin) {\n return;\n }\n this._logService.debug(`sending binary \"${data}\"`, () => data.split('').map(e => e.charCodeAt(0)));\n this._onBinary.fire(data);\n }\n}\n","/**\n * Copyright (c) 2022 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { css } from 'common/Color';\nimport { EventEmitter } from 'common/EventEmitter';\nimport { Disposable } from 'common/Lifecycle';\nimport { IDecorationService, IInternalDecoration } from 'common/services/Services';\nimport { SortedList } from 'common/SortedList';\nimport { IColor } from 'common/Types';\nimport { IDecorationOptions, IDecoration, IMarker, IEvent } from 'xterm';\n\n/** Work variables to avoid garbage collection. */\nconst w = {\n xmin: 0,\n xmax: 0\n};\n\nexport class DecorationService extends Disposable implements IDecorationService {\n public serviceBrand: any;\n\n /**\n * A list of all decorations, sorted by the marker's line value. This relies on the fact that\n * while marker line values do change, they should all change by the same amount so this should\n * never become out of order.\n */\n private readonly _decorations: SortedList = new SortedList(e => e?.marker.line);\n\n private _onDecorationRegistered = this.register(new EventEmitter());\n public get onDecorationRegistered(): IEvent { return this._onDecorationRegistered.event; }\n private _onDecorationRemoved = this.register(new EventEmitter());\n public get onDecorationRemoved(): IEvent { return this._onDecorationRemoved.event; }\n\n public get decorations(): IterableIterator { return this._decorations.values(); }\n\n public registerDecoration(options: IDecorationOptions): IDecoration | undefined {\n if (options.marker.isDisposed) {\n return undefined;\n }\n const decoration = new Decoration(options);\n if (decoration) {\n const markerDispose = decoration.marker.onDispose(() => decoration.dispose());\n decoration.onDispose(() => {\n if (decoration) {\n if (this._decorations.delete(decoration)) {\n this._onDecorationRemoved.fire(decoration);\n }\n markerDispose.dispose();\n }\n });\n this._decorations.insert(decoration);\n this._onDecorationRegistered.fire(decoration);\n }\n return decoration;\n }\n\n public reset(): void {\n for (const d of this._decorations.values()) {\n d.dispose();\n }\n this._decorations.clear();\n }\n\n public *getDecorationsAtCell(x: number, line: number, layer?: 'bottom' | 'top'): IterableIterator {\n let xmin = 0;\n let xmax = 0;\n for (const d of this._decorations.getKeyIterator(line)) {\n xmin = d.options.x ?? 0;\n xmax = xmin + (d.options.width ?? 1);\n if (x >= xmin && x < xmax && (!layer || (d.options.layer ?? 'bottom') === layer)) {\n yield d;\n }\n }\n }\n\n public forEachDecorationAtCell(x: number, line: number, layer: 'bottom' | 'top' | undefined, callback: (decoration: IInternalDecoration) => void): void {\n this._decorations.forEachByKey(line, d => {\n w.xmin = d.options.x ?? 0;\n w.xmax = w.xmin + (d.options.width ?? 1);\n if (x >= w.xmin && x < w.xmax && (!layer || (d.options.layer ?? 'bottom') === layer)) {\n callback(d);\n }\n });\n }\n\n public dispose(): void {\n for (const d of this._decorations.values()) {\n this._onDecorationRemoved.fire(d);\n }\n this.reset();\n }\n}\n\nclass Decoration extends Disposable implements IInternalDecoration {\n public readonly marker: IMarker;\n public element: HTMLElement | undefined;\n public isDisposed: boolean = false;\n\n public readonly onRenderEmitter = this.register(new EventEmitter());\n public readonly onRender = this.onRenderEmitter.event;\n private _onDispose = this.register(new EventEmitter());\n public readonly onDispose = this._onDispose.event;\n\n private _cachedBg: IColor | undefined | null = null;\n public get backgroundColorRGB(): IColor | undefined {\n if (this._cachedBg === null) {\n if (this.options.backgroundColor) {\n this._cachedBg = css.toColor(this.options.backgroundColor);\n } else {\n this._cachedBg = undefined;\n }\n }\n return this._cachedBg;\n }\n\n private _cachedFg: IColor | undefined | null = null;\n public get foregroundColorRGB(): IColor | undefined {\n if (this._cachedFg === null) {\n if (this.options.foregroundColor) {\n this._cachedFg = css.toColor(this.options.foregroundColor);\n } else {\n this._cachedFg = undefined;\n }\n }\n return this._cachedFg;\n }\n\n constructor(\n public readonly options: IDecorationOptions\n ) {\n super();\n this.marker = options.marker;\n if (this.options.overviewRulerOptions && !this.options.overviewRulerOptions.position) {\n this.options.overviewRulerOptions.position = 'full';\n }\n }\n\n public override dispose(): void {\n if (this._isDisposed) {\n return;\n }\n this._isDisposed = true;\n this._onDispose.fire();\n super.dispose();\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferService, IDirtyRowService } from 'common/services/Services';\n\nexport class DirtyRowService implements IDirtyRowService {\n public serviceBrand: any;\n\n private _start!: number;\n private _end!: number;\n\n public get start(): number { return this._start; }\n public get end(): number { return this._end; }\n\n constructor(\n @IBufferService private readonly _bufferService: IBufferService\n ) {\n this.clearRange();\n }\n\n public clearRange(): void {\n this._start = this._bufferService.buffer.y;\n this._end = this._bufferService.buffer.y;\n }\n\n public markDirty(y: number): void {\n if (y < this._start) {\n this._start = y;\n } else if (y > this._end) {\n this._end = y;\n }\n }\n\n public markRangeDirty(y1: number, y2: number): void {\n if (y1 > y2) {\n const temp = y1;\n y1 = y2;\n y2 = temp;\n }\n if (y1 < this._start) {\n this._start = y1;\n }\n if (y2 > this._end) {\n this._end = y2;\n }\n }\n\n public markAllDirty(): void {\n this.markRangeDirty(0, this._bufferService.rows - 1);\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n *\n * This was heavily inspired from microsoft/vscode's dependency injection system (MIT).\n */\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IInstantiationService, IServiceIdentifier } from 'common/services/Services';\nimport { getServiceDependencies } from 'common/services/ServiceRegistry';\n\nexport class ServiceCollection {\n\n private _entries = new Map, any>();\n\n constructor(...entries: [IServiceIdentifier, any][]) {\n for (const [id, service] of entries) {\n this.set(id, service);\n }\n }\n\n public set(id: IServiceIdentifier, instance: T): T {\n const result = this._entries.get(id);\n this._entries.set(id, instance);\n return result;\n }\n\n public forEach(callback: (id: IServiceIdentifier, instance: any) => any): void {\n this._entries.forEach((value, key) => callback(key, value));\n }\n\n public has(id: IServiceIdentifier): boolean {\n return this._entries.has(id);\n }\n\n public get(id: IServiceIdentifier): T | undefined {\n return this._entries.get(id);\n }\n}\n\nexport class InstantiationService implements IInstantiationService {\n public serviceBrand: undefined;\n\n private readonly _services: ServiceCollection = new ServiceCollection();\n\n constructor() {\n this._services.set(IInstantiationService, this);\n }\n\n public setService(id: IServiceIdentifier, instance: T): void {\n this._services.set(id, instance);\n }\n\n public getService(id: IServiceIdentifier): T | undefined {\n return this._services.get(id);\n }\n\n public createInstance(ctor: any, ...args: any[]): T {\n const serviceDependencies = getServiceDependencies(ctor).sort((a, b) => a.index - b.index);\n\n const serviceArgs: any[] = [];\n for (const dependency of serviceDependencies) {\n const service = this._services.get(dependency.id);\n if (!service) {\n throw new Error(`[createInstance] ${ctor.name} depends on UNKNOWN service ${dependency.id}.`);\n }\n serviceArgs.push(service);\n }\n\n const firstServiceArgPos = serviceDependencies.length > 0 ? serviceDependencies[0].index : args.length;\n\n // check for argument mismatches, adjust static args if needed\n if (args.length !== firstServiceArgPos) {\n throw new Error(`[createInstance] First service dependency of ${ctor.name} at position ${firstServiceArgPos + 1} conflicts with ${args.length} static arguments`);\n }\n\n // now create the instance\n return new ctor(...[...args, ...serviceArgs]);\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ILogService, IOptionsService, LogLevelEnum } from 'common/services/Services';\n\ntype LogType = (message?: any, ...optionalParams: any[]) => void;\n\ninterface IConsole {\n log: LogType;\n error: LogType;\n info: LogType;\n trace: LogType;\n warn: LogType;\n}\n\n// console is available on both node.js and browser contexts but the common\n// module doesn't depend on them so we need to explicitly declare it.\ndeclare const console: IConsole;\n\nconst optionsKeyToLogLevel: { [key: string]: LogLevelEnum } = {\n debug: LogLevelEnum.DEBUG,\n info: LogLevelEnum.INFO,\n warn: LogLevelEnum.WARN,\n error: LogLevelEnum.ERROR,\n off: LogLevelEnum.OFF\n};\n\nconst LOG_PREFIX = 'xterm.js: ';\n\nexport class LogService implements ILogService {\n public serviceBrand: any;\n\n public logLevel: LogLevelEnum = LogLevelEnum.OFF;\n\n constructor(\n @IOptionsService private readonly _optionsService: IOptionsService\n ) {\n this._updateLogLevel();\n this._optionsService.onOptionChange(key => {\n if (key === 'logLevel') {\n this._updateLogLevel();\n }\n });\n }\n\n private _updateLogLevel(): void {\n this.logLevel = optionsKeyToLogLevel[this._optionsService.rawOptions.logLevel];\n }\n\n private _evalLazyOptionalParams(optionalParams: any[]): void {\n for (let i = 0; i < optionalParams.length; i++) {\n if (typeof optionalParams[i] === 'function') {\n optionalParams[i] = optionalParams[i]();\n }\n }\n }\n\n private _log(type: LogType, message: string, optionalParams: any[]): void {\n this._evalLazyOptionalParams(optionalParams);\n type.call(console, LOG_PREFIX + message, ...optionalParams);\n }\n\n public debug(message: string, ...optionalParams: any[]): void {\n if (this.logLevel <= LogLevelEnum.DEBUG) {\n this._log(console.log, message, optionalParams);\n }\n }\n\n public info(message: string, ...optionalParams: any[]): void {\n if (this.logLevel <= LogLevelEnum.INFO) {\n this._log(console.info, message, optionalParams);\n }\n }\n\n public warn(message: string, ...optionalParams: any[]): void {\n if (this.logLevel <= LogLevelEnum.WARN) {\n this._log(console.warn, message, optionalParams);\n }\n }\n\n public error(message: string, ...optionalParams: any[]): void {\n if (this.logLevel <= LogLevelEnum.ERROR) {\n this._log(console.error, message, optionalParams);\n }\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IOptionsService, ITerminalOptions, FontWeight } from 'common/services/Services';\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\nimport { isMac } from 'common/Platform';\nimport { CursorStyle } from 'common/Types';\n\nexport const DEFAULT_OPTIONS: Readonly> = {\n cols: 80,\n rows: 24,\n cursorBlink: false,\n cursorStyle: 'block',\n cursorWidth: 1,\n customGlyphs: true,\n drawBoldTextInBrightColors: true,\n fastScrollModifier: 'alt',\n fastScrollSensitivity: 5,\n fontFamily: 'courier-new, courier, monospace',\n fontSize: 15,\n fontWeight: 'normal',\n fontWeightBold: 'bold',\n lineHeight: 1.0,\n letterSpacing: 0,\n linkHandler: null,\n logLevel: 'info',\n scrollback: 1000,\n scrollSensitivity: 1,\n screenReaderMode: false,\n smoothScrollDuration: 0,\n macOptionIsMeta: false,\n macOptionClickForcesSelection: false,\n minimumContrastRatio: 1,\n disableStdin: false,\n allowProposedApi: false,\n allowTransparency: false,\n tabStopWidth: 8,\n theme: {},\n rightClickSelectsWord: isMac,\n windowOptions: {},\n windowsMode: false,\n wordSeparator: ' ()[]{}\\',\"`',\n altClickMovesCursor: true,\n convertEol: false,\n termName: 'xterm',\n cancelEvents: false,\n overviewRulerWidth: 0\n};\n\nconst FONT_WEIGHT_OPTIONS: Extract[] = ['normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900'];\n\nexport class OptionsService implements IOptionsService {\n public serviceBrand: any;\n\n public readonly rawOptions: Required;\n public options: Required;\n\n private _onOptionChange = new EventEmitter();\n public get onOptionChange(): IEvent { return this._onOptionChange.event; }\n\n constructor(options: Partial) {\n // set the default value of each option\n const defaultOptions = { ...DEFAULT_OPTIONS };\n for (const key in options) {\n if (key in defaultOptions) {\n try {\n const newValue = options[key];\n defaultOptions[key] = this._sanitizeAndValidateOption(key, newValue);\n } catch (e) {\n console.error(e);\n }\n }\n }\n\n // set up getters and setters for each option\n this.rawOptions = defaultOptions;\n this.options = { ... defaultOptions };\n this._setupOptions();\n }\n\n private _setupOptions(): void {\n const getter = (propName: string): any => {\n if (!(propName in DEFAULT_OPTIONS)) {\n throw new Error(`No option with key \"${propName}\"`);\n }\n return this.rawOptions[propName];\n };\n\n const setter = (propName: string, value: any): void => {\n if (!(propName in DEFAULT_OPTIONS)) {\n throw new Error(`No option with key \"${propName}\"`);\n }\n\n value = this._sanitizeAndValidateOption(propName, value);\n // Don't fire an option change event if they didn't change\n if (this.rawOptions[propName] !== value) {\n this.rawOptions[propName] = value;\n this._onOptionChange.fire(propName);\n }\n };\n\n for (const propName in this.rawOptions) {\n const desc = {\n get: getter.bind(this, propName),\n set: setter.bind(this, propName)\n };\n Object.defineProperty(this.options, propName, desc);\n }\n }\n\n private _sanitizeAndValidateOption(key: string, value: any): any {\n switch (key) {\n case 'cursorStyle':\n if (!value) {\n value = DEFAULT_OPTIONS[key];\n }\n if (!isCursorStyle(value)) {\n throw new Error(`\"${value}\" is not a valid value for ${key}`);\n }\n break;\n case 'wordSeparator':\n if (!value) {\n value = DEFAULT_OPTIONS[key];\n }\n break;\n case 'fontWeight':\n case 'fontWeightBold':\n if (typeof value === 'number' && 1 <= value && value <= 1000) {\n // already valid numeric value\n break;\n }\n value = FONT_WEIGHT_OPTIONS.includes(value) ? value : DEFAULT_OPTIONS[key];\n break;\n case 'cursorWidth':\n value = Math.floor(value);\n // Fall through for bounds check\n case 'lineHeight':\n case 'tabStopWidth':\n if (value < 1) {\n throw new Error(`${key} cannot be less than 1, value: ${value}`);\n }\n break;\n case 'minimumContrastRatio':\n value = Math.max(1, Math.min(21, Math.round(value * 10) / 10));\n break;\n case 'scrollback':\n value = Math.min(value, 4294967295);\n if (value < 0) {\n throw new Error(`${key} cannot be less than 0, value: ${value}`);\n }\n break;\n case 'fastScrollSensitivity':\n case 'scrollSensitivity':\n if (value <= 0) {\n throw new Error(`${key} cannot be less than or equal to 0, value: ${value}`);\n }\n case 'rows':\n case 'cols':\n if (!value && value !== 0) {\n throw new Error(`${key} must be numeric, value: ${value}`);\n }\n break;\n }\n return value;\n }\n}\n\nfunction isCursorStyle(value: unknown): value is CursorStyle {\n return value === 'block' || value === 'underline' || value === 'bar';\n}\n","/**\n * Copyright (c) 2022 The xterm.js authors. All rights reserved.\n * @license MIT\n */\nimport { IBufferService, IOscLinkService } from 'common/services/Services';\nimport { IMarker, IOscLinkData } from 'common/Types';\n\nexport class OscLinkService implements IOscLinkService {\n public serviceBrand: any;\n\n private _nextId = 1;\n\n /**\n * A map of the link key to link entry. This is used to add additional lines to links with ids.\n */\n private _entriesWithId: Map = new Map();\n\n /**\n * A map of the link id to the link entry. The \"link id\" (number) which is the numberic\n * representation of a unique link should not be confused with \"id\" (string) which comes in with\n * `id=` in the OSC link's properties.\n */\n private _dataByLinkId: Map = new Map();\n\n constructor(\n @IBufferService private readonly _bufferService: IBufferService\n ) {\n }\n\n public registerLink(data: IOscLinkData): number {\n const buffer = this._bufferService.buffer;\n\n // Links with no id will only ever be registered a single time\n if (data.id === undefined) {\n const marker = buffer.addMarker(buffer.ybase + buffer.y);\n const entry: IOscLinkEntryNoId = {\n data,\n id: this._nextId++,\n lines: [marker]\n };\n marker.onDispose(() => this._removeMarkerFromLink(entry, marker));\n this._dataByLinkId.set(entry.id, entry);\n return entry.id;\n }\n\n // Add the line to the link if it already exists\n const castData = data as Required;\n const key = this._getEntryIdKey(castData);\n const match = this._entriesWithId.get(key);\n if (match) {\n this.addLineToLink(match.id, buffer.ybase + buffer.y);\n return match.id;\n }\n\n // Create the link\n const marker = buffer.addMarker(buffer.ybase + buffer.y);\n const entry: IOscLinkEntryWithId = {\n id: this._nextId++,\n key: this._getEntryIdKey(castData),\n data: castData,\n lines: [marker]\n };\n marker.onDispose(() => this._removeMarkerFromLink(entry, marker));\n this._entriesWithId.set(entry.key, entry);\n this._dataByLinkId.set(entry.id, entry);\n return entry.id;\n }\n\n public addLineToLink(linkId: number, y: number): void {\n const entry = this._dataByLinkId.get(linkId);\n if (!entry) {\n return;\n }\n if (entry.lines.every(e => e.line !== y)) {\n const marker = this._bufferService.buffer.addMarker(y);\n entry.lines.push(marker);\n marker.onDispose(() => this._removeMarkerFromLink(entry, marker));\n }\n }\n\n public getLinkData(linkId: number): IOscLinkData | undefined {\n return this._dataByLinkId.get(linkId)?.data;\n }\n\n private _getEntryIdKey(linkData: Required): string {\n return `${linkData.id};;${linkData.uri}`;\n }\n\n private _removeMarkerFromLink(entry: IOscLinkEntryNoId | IOscLinkEntryWithId, marker: IMarker): void {\n const index = entry.lines.indexOf(marker);\n if (index === -1) {\n return;\n }\n entry.lines.splice(index, 1);\n if (entry.lines.length === 0) {\n if (entry.data.id !== undefined) {\n this._entriesWithId.delete((entry as IOscLinkEntryWithId).key);\n }\n this._dataByLinkId.delete(entry.id);\n }\n }\n}\n\ninterface IOscLinkEntry {\n data: T;\n id: number;\n lines: IMarker[];\n}\n\ninterface IOscLinkEntryNoId extends IOscLinkEntry {\n}\n\ninterface IOscLinkEntryWithId extends IOscLinkEntry> {\n key: string;\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n *\n * This was heavily inspired from microsoft/vscode's dependency injection system (MIT).\n */\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IServiceIdentifier } from 'common/services/Services';\n\nconst DI_TARGET = 'di$target';\nconst DI_DEPENDENCIES = 'di$dependencies';\n\nexport const serviceRegistry: Map> = new Map();\n\nexport function getServiceDependencies(ctor: any): { id: IServiceIdentifier, index: number, optional: boolean }[] {\n return ctor[DI_DEPENDENCIES] || [];\n}\n\nexport function createDecorator(id: string): IServiceIdentifier {\n if (serviceRegistry.has(id)) {\n return serviceRegistry.get(id)!;\n }\n\n const decorator: any = function (target: Function, key: string, index: number): any {\n if (arguments.length !== 3) {\n throw new Error('@IServiceName-decorator can only be used to decorate a parameter');\n }\n\n storeServiceDependency(decorator, target, index);\n };\n\n decorator.toString = () => id;\n\n serviceRegistry.set(id, decorator);\n return decorator;\n}\n\nfunction storeServiceDependency(id: Function, target: Function, index: number): void {\n if ((target as any)[DI_TARGET] === target) {\n (target as any)[DI_DEPENDENCIES].push({ id, index });\n } else {\n (target as any)[DI_DEPENDENCIES] = [{ id, index }];\n (target as any)[DI_TARGET] = target;\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IEvent, IEventEmitter } from 'common/EventEmitter';\nimport { IBuffer, IBufferSet } from 'common/buffer/Types';\nimport { IDecPrivateModes, ICoreMouseEvent, CoreMouseEncoding, ICoreMouseProtocol, CoreMouseEventType, ICharset, IWindowOptions, IModes, IAttributeData, ScrollSource, IDisposable, IColor, CursorStyle, IOscLinkData } from 'common/Types';\nimport { createDecorator } from 'common/services/ServiceRegistry';\nimport { IDecorationOptions, IDecoration, ILinkHandler } from 'xterm';\n\nexport const IBufferService = createDecorator('BufferService');\nexport interface IBufferService {\n serviceBrand: undefined;\n\n readonly cols: number;\n readonly rows: number;\n readonly buffer: IBuffer;\n readonly buffers: IBufferSet;\n isUserScrolling: boolean;\n onResize: IEvent<{ cols: number, rows: number }>;\n onScroll: IEvent;\n scroll(eraseAttr: IAttributeData, isWrapped?: boolean): void;\n scrollToBottom(): void;\n scrollToTop(): void;\n scrollToLine(line: number): void;\n scrollLines(disp: number, suppressScrollEvent?: boolean, source?: ScrollSource): void;\n scrollPages(pageCount: number): void;\n resize(cols: number, rows: number): void;\n reset(): void;\n}\n\nexport const ICoreMouseService = createDecorator('CoreMouseService');\nexport interface ICoreMouseService {\n activeProtocol: string;\n activeEncoding: string;\n areMouseEventsActive: boolean;\n addProtocol(name: string, protocol: ICoreMouseProtocol): void;\n addEncoding(name: string, encoding: CoreMouseEncoding): void;\n reset(): void;\n\n /**\n * Triggers a mouse event to be sent.\n *\n * Returns true if the event passed all protocol restrictions and a report\n * was sent, otherwise false. The return value may be used to decide whether\n * the default event action in the bowser component should be omitted.\n *\n * Note: The method will change values of the given event object\n * to fullfill protocol and encoding restrictions.\n */\n triggerMouseEvent(event: ICoreMouseEvent): boolean;\n\n /**\n * Event to announce changes in mouse tracking.\n */\n onProtocolChange: IEvent;\n\n /**\n * Human readable version of mouse events.\n */\n explainEvents(events: CoreMouseEventType): { [event: string]: boolean };\n}\n\nexport const ICoreService = createDecorator('CoreService');\nexport interface ICoreService {\n serviceBrand: undefined;\n\n /**\n * Initially the cursor will not be visible until the first time the terminal\n * is focused.\n */\n isCursorInitialized: boolean;\n isCursorHidden: boolean;\n\n readonly modes: IModes;\n readonly decPrivateModes: IDecPrivateModes;\n\n readonly onData: IEvent;\n readonly onUserInput: IEvent;\n readonly onBinary: IEvent;\n\n reset(): void;\n\n /**\n * Triggers the onData event in the public API.\n * @param data The data that is being emitted.\n * @param wasFromUser Whether the data originated from the user (as opposed to\n * resulting from parsing incoming data). When true this will also:\n * - Scroll to the bottom of the buffer.s\n * - Fire the `onUserInput` event (so selection can be cleared).\n */\n triggerDataEvent(data: string, wasUserInput?: boolean): void;\n\n /**\n * Triggers the onBinary event in the public API.\n * @param data The data that is being emitted.\n */\n triggerBinaryEvent(data: string): void;\n}\n\nexport const ICharsetService = createDecorator('CharsetService');\nexport interface ICharsetService {\n serviceBrand: undefined;\n\n charset: ICharset | undefined;\n readonly glevel: number;\n\n reset(): void;\n\n /**\n * Set the G level of the terminal.\n * @param g\n */\n setgLevel(g: number): void;\n\n /**\n * Set the charset for the given G level of the terminal.\n * @param g\n * @param charset\n */\n setgCharset(g: number, charset: ICharset | undefined): void;\n}\n\nexport const IDirtyRowService = createDecorator('DirtyRowService');\nexport interface IDirtyRowService {\n serviceBrand: undefined;\n\n readonly start: number;\n readonly end: number;\n\n clearRange(): void;\n markDirty(y: number): void;\n markRangeDirty(y1: number, y2: number): void;\n markAllDirty(): void;\n}\n\nexport interface IServiceIdentifier {\n (...args: any[]): void;\n type: T;\n}\n\nexport interface IBrandedService {\n serviceBrand: undefined;\n}\n\ntype GetLeadingNonServiceArgs =\n Args extends [...IBrandedService[]] ? []\n : Args extends [infer A1, ...IBrandedService[]] ? [A1]\n : Args extends [infer A1, infer A2, ...IBrandedService[]] ? [A1, A2]\n : Args extends [infer A1, infer A2, infer A3, ...IBrandedService[]] ? [A1, A2, A3]\n : Args extends [infer A1, infer A2, infer A3, infer A4, ...IBrandedService[]] ? [A1, A2, A3, A4]\n : Args extends [infer A1, infer A2, infer A3, infer A4, infer A5, ...IBrandedService[]] ? [A1, A2, A3, A4, A5]\n : Args extends [infer A1, infer A2, infer A3, infer A4, infer A5, infer A6, ...IBrandedService[]] ? [A1, A2, A3, A4, A5, A6]\n : Args extends [infer A1, infer A2, infer A3, infer A4, infer A5, infer A6, infer A7, ...IBrandedService[]] ? [A1, A2, A3, A4, A5, A6, A7]\n : Args extends [infer A1, infer A2, infer A3, infer A4, infer A5, infer A6, infer A7, infer A8, ...IBrandedService[]] ? [A1, A2, A3, A4, A5, A6, A7, A8]\n : never;\n\nexport const IInstantiationService = createDecorator('InstantiationService');\nexport interface IInstantiationService {\n serviceBrand: undefined;\n\n setService(id: IServiceIdentifier, instance: T): void;\n getService(id: IServiceIdentifier): T | undefined;\n createInstance any, R extends InstanceType>(t: Ctor, ...args: GetLeadingNonServiceArgs>): R;\n}\n\nexport enum LogLevelEnum {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n OFF = 4\n}\n\nexport const ILogService = createDecorator('LogService');\nexport interface ILogService {\n serviceBrand: undefined;\n\n logLevel: LogLevelEnum;\n\n debug(message: any, ...optionalParams: any[]): void;\n info(message: any, ...optionalParams: any[]): void;\n warn(message: any, ...optionalParams: any[]): void;\n error(message: any, ...optionalParams: any[]): void;\n}\n\nexport const IOptionsService = createDecorator('OptionsService');\nexport interface IOptionsService {\n serviceBrand: undefined;\n\n /**\n * Read only access to the raw options object, this is an internal-only fast path for accessing\n * single options without any validation as we trust TypeScript to enforce correct usage\n * internally.\n */\n readonly rawOptions: Required;\n readonly options: Required;\n\n readonly onOptionChange: IEvent;\n}\n\nexport type FontWeight = 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | number;\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'off';\n\nexport interface ITerminalOptions {\n allowProposedApi?: boolean;\n allowTransparency?: boolean;\n altClickMovesCursor?: boolean;\n cols?: number;\n convertEol?: boolean;\n cursorBlink?: boolean;\n cursorStyle?: CursorStyle;\n cursorWidth?: number;\n customGlyphs?: boolean;\n disableStdin?: boolean;\n drawBoldTextInBrightColors?: boolean;\n fastScrollModifier?: 'none' | 'alt' | 'ctrl' | 'shift';\n fastScrollSensitivity?: number;\n fontSize?: number;\n fontFamily?: string;\n fontWeight?: FontWeight;\n fontWeightBold?: FontWeight;\n letterSpacing?: number;\n lineHeight?: number;\n linkHandler?: ILinkHandler | null;\n logLevel?: LogLevel;\n macOptionIsMeta?: boolean;\n macOptionClickForcesSelection?: boolean;\n minimumContrastRatio?: number;\n rightClickSelectsWord?: boolean;\n rows?: number;\n screenReaderMode?: boolean;\n scrollback?: number;\n scrollSensitivity?: number;\n smoothScrollDuration?: number;\n tabStopWidth?: number;\n theme?: ITheme;\n windowsMode?: boolean;\n windowOptions?: IWindowOptions;\n wordSeparator?: string;\n overviewRulerWidth?: number;\n\n [key: string]: any;\n cancelEvents: boolean;\n termName: string;\n}\n\nexport interface ITheme {\n foreground?: string;\n background?: string;\n cursor?: string;\n cursorAccent?: string;\n selectionForeground?: string;\n selectionBackground?: string;\n selectionInactiveBackground?: string;\n black?: string;\n red?: string;\n green?: string;\n yellow?: string;\n blue?: string;\n magenta?: string;\n cyan?: string;\n white?: string;\n brightBlack?: string;\n brightRed?: string;\n brightGreen?: string;\n brightYellow?: string;\n brightBlue?: string;\n brightMagenta?: string;\n brightCyan?: string;\n brightWhite?: string;\n extendedAnsi?: string[];\n}\n\nexport const IOscLinkService = createDecorator('OscLinkService');\nexport interface IOscLinkService {\n serviceBrand: undefined;\n /**\n * Registers a link to the service, returning the link ID. The link data is managed by this\n * service and will be freed when this current cursor position is trimmed off the buffer.\n */\n registerLink(linkData: IOscLinkData): number;\n /**\n * Adds a line to a link if needed.\n */\n addLineToLink(linkId: number, y: number): void;\n /** Get the link data associated with a link ID. */\n getLinkData(linkId: number): IOscLinkData | undefined;\n}\n\nexport const IUnicodeService = createDecorator('UnicodeService');\nexport interface IUnicodeService {\n serviceBrand: undefined;\n /** Register an Unicode version provider. */\n register(provider: IUnicodeVersionProvider): void;\n /** Registered Unicode versions. */\n readonly versions: string[];\n /** Currently active version. */\n activeVersion: string;\n /** Event triggered, when activate version changed. */\n readonly onChange: IEvent;\n\n /**\n * Unicode version dependent\n */\n wcwidth(codepoint: number): number;\n getStringCellWidth(s: string): number;\n}\n\nexport interface IUnicodeVersionProvider {\n readonly version: string;\n wcwidth(ucs: number): 0 | 1 | 2;\n}\n\nexport const IDecorationService = createDecorator('DecorationService');\nexport interface IDecorationService extends IDisposable {\n serviceBrand: undefined;\n readonly decorations: IterableIterator;\n readonly onDecorationRegistered: IEvent;\n readonly onDecorationRemoved: IEvent;\n registerDecoration(decorationOptions: IDecorationOptions): IDecoration | undefined;\n reset(): void;\n /**\n * Trigger a callback over the decoration at a cell (in no particular order). This uses a callback\n * instead of an iterator as it's typically used in hot code paths.\n */\n forEachDecorationAtCell(x: number, line: number, layer: 'bottom' | 'top' | undefined, callback: (decoration: IInternalDecoration) => void): void;\n}\nexport interface IInternalDecoration extends IDecoration {\n readonly options: IDecorationOptions;\n readonly backgroundColorRGB: IColor | undefined;\n readonly foregroundColorRGB: IColor | undefined;\n readonly onRenderEmitter: IEventEmitter;\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\nimport { IUnicodeService, IUnicodeVersionProvider } from 'common/services/Services';\nimport { EventEmitter, IEvent } from 'common/EventEmitter';\nimport { UnicodeV6 } from 'common/input/UnicodeV6';\n\n\nexport class UnicodeService implements IUnicodeService {\n public serviceBrand: any;\n\n private _providers: {[key: string]: IUnicodeVersionProvider} = Object.create(null);\n private _active: string = '';\n private _activeProvider: IUnicodeVersionProvider;\n private _onChange = new EventEmitter();\n public get onChange(): IEvent { return this._onChange.event; }\n\n constructor() {\n const defaultProvider = new UnicodeV6();\n this.register(defaultProvider);\n this._active = defaultProvider.version;\n this._activeProvider = defaultProvider;\n }\n\n public get versions(): string[] {\n return Object.keys(this._providers);\n }\n\n public get activeVersion(): string {\n return this._active;\n }\n\n public set activeVersion(version: string) {\n if (!this._providers[version]) {\n throw new Error(`unknown Unicode version \"${version}\"`);\n }\n this._active = version;\n this._activeProvider = this._providers[version];\n this._onChange.fire(version);\n }\n\n public register(provider: IUnicodeVersionProvider): void {\n this._providers[provider.version] = provider;\n }\n\n /**\n * Unicode version dependent interface.\n */\n public wcwidth(num: number): number {\n return this._activeProvider.wcwidth(num);\n }\n\n public getStringCellWidth(s: string): number {\n let result = 0;\n const length = s.length;\n for (let i = 0; i < length; ++i) {\n let code = s.charCodeAt(i);\n // surrogate pair first\n if (0xD800 <= code && code <= 0xDBFF) {\n if (++i >= length) {\n // this should not happen with strings retrieved from\n // Buffer.translateToString as it converts from UTF-32\n // and therefore always should contain the second part\n // for any other string we still have to handle it somehow:\n // simply treat the lonely surrogate first as a single char (UCS-2 behavior)\n return result + this.wcwidth(code);\n }\n const second = s.charCodeAt(i);\n // convert surrogate pair to high codepoint only for valid second part (UTF-16)\n // otherwise treat them independently (UCS-2 behavior)\n if (0xDC00 <= second && second <= 0xDFFF) {\n code = (code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n } else {\n result += this.wcwidth(second);\n }\n }\n result += this.wcwidth(code);\n }\n return result;\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { Terminal as ITerminalApi, IMarker, IDisposable, ILocalizableStrings, ITerminalAddon, IBufferNamespace as IBufferNamespaceApi, IParser, ILinkProvider, IUnicodeHandling, IModes, IDecorationOptions, IDecoration } from 'xterm';\nimport { IBufferRange, ITerminal } from 'browser/Types';\nimport { Terminal as TerminalCore } from 'browser/Terminal';\nimport * as Strings from 'browser/LocalizableStrings';\nimport { IEvent } from 'common/EventEmitter';\nimport { ParserApi } from 'common/public/ParserApi';\nimport { UnicodeApi } from 'common/public/UnicodeApi';\nimport { AddonManager } from 'common/public/AddonManager';\nimport { BufferNamespaceApi } from 'common/public/BufferNamespaceApi';\nimport { ITerminalOptions } from 'common/Types';\n\n/**\n * The set of options that only have an effect when set in the Terminal constructor.\n */\nconst CONSTRUCTOR_ONLY_OPTIONS = ['cols', 'rows'];\n\nexport class Terminal implements ITerminalApi {\n private _core: ITerminal;\n private _addonManager: AddonManager;\n private _parser: IParser | undefined;\n private _buffer: BufferNamespaceApi | undefined;\n private _publicOptions: Required;\n\n constructor(options?: ITerminalOptions) {\n this._core = new TerminalCore(options);\n this._addonManager = new AddonManager();\n\n this._publicOptions = { ... this._core.options };\n const getter = (propName: string): any => {\n return this._core.options[propName];\n };\n const setter = (propName: string, value: any): void => {\n this._checkReadonlyOptions(propName);\n this._core.options[propName] = value;\n };\n\n for (const propName in this._core.options) {\n const desc = {\n get: getter.bind(this, propName),\n set: setter.bind(this, propName)\n };\n Object.defineProperty(this._publicOptions, propName, desc);\n }\n }\n\n private _checkReadonlyOptions(propName: string): void {\n // Throw an error if any constructor only option is modified\n // from terminal.options\n // Modifications from anywhere else are allowed\n if (CONSTRUCTOR_ONLY_OPTIONS.includes(propName)) {\n throw new Error(`Option \"${propName}\" can only be set in the constructor`);\n }\n }\n\n private _checkProposedApi(): void {\n if (!this._core.optionsService.rawOptions.allowProposedApi) {\n throw new Error('You must set the allowProposedApi option to true to use proposed API');\n }\n }\n\n public get onBell(): IEvent { return this._core.onBell; }\n public get onBinary(): IEvent { return this._core.onBinary; }\n public get onCursorMove(): IEvent { return this._core.onCursorMove; }\n public get onData(): IEvent { return this._core.onData; }\n public get onKey(): IEvent<{ key: string, domEvent: KeyboardEvent }> { return this._core.onKey; }\n public get onLineFeed(): IEvent { return this._core.onLineFeed; }\n public get onRender(): IEvent<{ start: number, end: number }> { return this._core.onRender; }\n public get onResize(): IEvent<{ cols: number, rows: number }> { return this._core.onResize; }\n public get onScroll(): IEvent { return this._core.onScroll; }\n public get onSelectionChange(): IEvent { return this._core.onSelectionChange; }\n public get onTitleChange(): IEvent { return this._core.onTitleChange; }\n public get onWriteParsed(): IEvent { return this._core.onWriteParsed; }\n\n public get element(): HTMLElement | undefined { return this._core.element; }\n public get parser(): IParser {\n this._checkProposedApi();\n if (!this._parser) {\n this._parser = new ParserApi(this._core);\n }\n return this._parser;\n }\n public get unicode(): IUnicodeHandling {\n this._checkProposedApi();\n return new UnicodeApi(this._core);\n }\n public get textarea(): HTMLTextAreaElement | undefined { return this._core.textarea; }\n public get rows(): number { return this._core.rows; }\n public get cols(): number { return this._core.cols; }\n public get buffer(): IBufferNamespaceApi {\n this._checkProposedApi();\n if (!this._buffer) {\n this._buffer = new BufferNamespaceApi(this._core);\n }\n return this._buffer;\n }\n public get markers(): ReadonlyArray {\n this._checkProposedApi();\n return this._core.markers;\n }\n public get modes(): IModes {\n const m = this._core.coreService.decPrivateModes;\n let mouseTrackingMode: 'none' | 'x10' | 'vt200' | 'drag' | 'any' = 'none';\n switch (this._core.coreMouseService.activeProtocol) {\n case 'X10': mouseTrackingMode = 'x10'; break;\n case 'VT200': mouseTrackingMode = 'vt200'; break;\n case 'DRAG': mouseTrackingMode = 'drag'; break;\n case 'ANY': mouseTrackingMode = 'any'; break;\n }\n return {\n applicationCursorKeysMode: m.applicationCursorKeys,\n applicationKeypadMode: m.applicationKeypad,\n bracketedPasteMode: m.bracketedPasteMode,\n insertMode: this._core.coreService.modes.insertMode,\n mouseTrackingMode: mouseTrackingMode,\n originMode: m.origin,\n reverseWraparoundMode: m.reverseWraparound,\n sendFocusMode: m.sendFocus,\n wraparoundMode: m.wraparound\n };\n }\n public get options(): Required {\n return this._publicOptions;\n }\n public set options(options: ITerminalOptions) {\n for (const propName in options) {\n this._publicOptions[propName] = options[propName];\n }\n }\n public blur(): void {\n this._core.blur();\n }\n public focus(): void {\n this._core.focus();\n }\n public resize(columns: number, rows: number): void {\n this._verifyIntegers(columns, rows);\n this._core.resize(columns, rows);\n }\n public open(parent: HTMLElement): void {\n this._core.open(parent);\n }\n public attachCustomKeyEventHandler(customKeyEventHandler: (event: KeyboardEvent) => boolean): void {\n this._core.attachCustomKeyEventHandler(customKeyEventHandler);\n }\n public registerLinkProvider(linkProvider: ILinkProvider): IDisposable {\n this._checkProposedApi();\n return this._core.registerLinkProvider(linkProvider);\n }\n public registerCharacterJoiner(handler: (text: string) => [number, number][]): number {\n this._checkProposedApi();\n return this._core.registerCharacterJoiner(handler);\n }\n public deregisterCharacterJoiner(joinerId: number): void {\n this._checkProposedApi();\n this._core.deregisterCharacterJoiner(joinerId);\n }\n public registerMarker(cursorYOffset: number = 0): IMarker | undefined {\n this._verifyIntegers(cursorYOffset);\n return this._core.addMarker(cursorYOffset);\n }\n public registerDecoration(decorationOptions: IDecorationOptions): IDecoration | undefined {\n this._checkProposedApi();\n this._verifyPositiveIntegers(decorationOptions.x ?? 0, decorationOptions.width ?? 0, decorationOptions.height ?? 0);\n return this._core.registerDecoration(decorationOptions);\n }\n public hasSelection(): boolean {\n return this._core.hasSelection();\n }\n public select(column: number, row: number, length: number): void {\n this._verifyIntegers(column, row, length);\n this._core.select(column, row, length);\n }\n public getSelection(): string {\n return this._core.getSelection();\n }\n public getSelectionPosition(): IBufferRange | undefined {\n return this._core.getSelectionPosition();\n }\n public clearSelection(): void {\n this._core.clearSelection();\n }\n public selectAll(): void {\n this._core.selectAll();\n }\n public selectLines(start: number, end: number): void {\n this._verifyIntegers(start, end);\n this._core.selectLines(start, end);\n }\n public dispose(): void {\n this._addonManager.dispose();\n this._core.dispose();\n }\n public scrollLines(amount: number): void {\n this._verifyIntegers(amount);\n this._core.scrollLines(amount);\n }\n public scrollPages(pageCount: number): void {\n this._verifyIntegers(pageCount);\n this._core.scrollPages(pageCount);\n }\n public scrollToTop(): void {\n this._core.scrollToTop();\n }\n public scrollToBottom(): void {\n this._core.scrollToBottom();\n }\n public scrollToLine(line: number): void {\n this._verifyIntegers(line);\n this._core.scrollToLine(line);\n }\n public clear(): void {\n this._core.clear();\n }\n public write(data: string | Uint8Array, callback?: () => void): void {\n this._core.write(data, callback);\n }\n public writeln(data: string | Uint8Array, callback?: () => void): void {\n this._core.write(data);\n this._core.write('\\r\\n', callback);\n }\n public paste(data: string): void {\n this._core.paste(data);\n }\n public refresh(start: number, end: number): void {\n this._verifyIntegers(start, end);\n this._core.refresh(start, end);\n }\n public reset(): void {\n this._core.reset();\n }\n public clearTextureAtlas(): void {\n this._core.clearTextureAtlas();\n }\n public loadAddon(addon: ITerminalAddon): void {\n return this._addonManager.loadAddon(this, addon);\n }\n public static get strings(): ILocalizableStrings {\n return Strings;\n }\n\n private _verifyIntegers(...values: number[]): void {\n for (const value of values) {\n if (value === Infinity || isNaN(value) || value % 1 !== 0) {\n throw new Error('This API only accepts integers');\n }\n }\n }\n\n private _verifyPositiveIntegers(...values: number[]): void {\n for (const value of values) {\n if (value && (value === Infinity || isNaN(value) || value % 1 !== 0 || value < 0)) {\n throw new Error('This API only accepts positive integers');\n }\n }\n }\n}\n"],"names":["root","factory","exports","module","define","amd","a","i","self","AccessibilityManager","Disposable","constructor","_terminal","_renderService","super","_liveRegionLineCount","_charsToConsume","_charsToAnnounce","this","_accessibilityTreeRoot","document","createElement","classList","add","tabIndex","_rowContainer","setAttribute","_rowElements","rows","_createAccessibilityTreeNode","appendChild","_topBoundaryFocusListener","e","_onBoundaryFocus","_bottomBoundaryFocusListener","addEventListener","length","_refreshRowsDimensions","_renderRowsDebouncer","TimeBasedDebouncer","_renderRows","bind","_refreshRows","_liveRegion","element","Error","insertAdjacentElement","register","onResize","_onResize","onRender","start","end","onScroll","onA11yChar","char","_onChar","onLineFeed","onA11yTab","spaceCount","_onTab","onKey","_onKey","key","onBlur","_clearLiveRegion","onDimensionsChange","_screenDprMonitor","ScreenDprMonitor","window","setListener","addDisposableDomListener","dispose","removeElementFromParent","position","boundaryElement","target","beforeBoundaryElement","getAttribute","buffer","lines","relatedTarget","topBoundaryElement","bottomBoundaryElement","pop","removeChild","shift","removeEventListener","newElement","unshift","push","scrollLines","focus","preventDefault","stopImmediatePropagation","children","_refreshRowDimensions","MAX_ROWS_TO_READ","textContent","Strings","tooMuchOutput","isMac","parentNode","setTimeout","keyChar","refresh","setSize","toString","lineData","translateBufferLineToString","ydisp","posInSet","innerText","_announceCharacters","dimensions","actualCellHeight","style","height","prepareTextForTerminal","text","replace","bracketTextForPaste","bracketedPasteMode","paste","textarea","coreService","decPrivateModes","triggerDataEvent","value","moveTextAreaUnderMouseCursor","ev","screenElement","pos","getBoundingClientRect","left","clientX","top","clientY","width","zIndex","selectionService","clipboardData","setData","selectionText","stopPropagation","getData","shouldSelectWord","rightClickSelect","select","_color","TwoKeyMap","_css","setCss","bg","fg","set","getCss","get","setColor","getColor","clear","DEFAULT_FOREGROUND","css","toColor","DEFAULT_BACKGROUND","DEFAULT_CURSOR","DEFAULT_CURSOR_ACCENT","DEFAULT_SELECTION","rgba","DEFAULT_ANSI_COLORS","Object","freeze","colors","v","r","g","b","channels","toCss","toRgba","c","allowTransparency","canvas","ctx","getContext","_ctx","globalCompositeOperation","_litmusColor","createLinearGradient","_contrastCache","ColorContrastCache","foreground","background","cursor","cursorAccent","selectionForeground","undefined","selectionBackgroundTransparent","selectionBackgroundOpaque","color","blend","selectionInactiveBackgroundTransparent","selectionInactiveBackgroundOpaque","ansi","slice","contrastCache","_updateRestoreColors","onOptionsChange","setTheme","theme","_parseColor","selectionBackground","selectionInactiveBackground","nullColor","isOpaque","opacity","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","extendedAnsi","colorCount","Math","min","restoreColor","slot","_restoreColors","fallback","fillStyle","console","warn","fillRect","data","getImageData","substring","split","map","component","Number","alpha","round","elements","parentElement","node","type","handler","options","disposed","Linkifier2","_bufferService","_linkProviders","_linkCacheDisposables","_isMouseOut","_activeLine","_onShowLinkUnderline","EventEmitter","_onHideLinkUnderline","getDisposeArrayDisposable","currentLink","_currentLink","onShowLinkUnderline","event","onHideLinkUnderline","_lastMouseEvent","registerLinkProvider","linkProvider","providerIndex","indexOf","splice","attachToDom","mouseService","renderService","_element","_mouseService","_clearCurrentLink","_onMouseMove","_handleMouseDown","_handleMouseUp","_positionFromMouseEvent","composedPath","contains","_lastBufferCell","x","y","_onHover","_askForLink","_linkAtPosition","link","useLineCache","_activeProviderReplies","forEach","reply","linkWithState","Map","linkProvided","entries","_checkLinkProviderResult","provideLinks","links","linksWithState","size","_removeIntersectingLinks","replies","occupiedCells","Set","providerReply","startX","range","endX","cols","has","index","hasLinkBefore","j","linkAtPosition","find","_handleNewLink","_mouseDownLink","activate","startRow","endRow","_linkLeave","disposeArray","state","decorations","underline","pointerCursor","isHovered","_linkHover","defineProperties","toggle","_fireUnderlineEvent","onRenderedViewportChange","hover","showEvent","scrollOffset","_createLinkUnderlineEvent","fire","remove","leave","sameLine","wrappedFromLeft","wrappedToRight","coords","getCoords","x1","y1","x2","y2","IBufferService","promptLabel","OscLinkProvider","_optionsService","_oscLinkService","callback","line","result","linkHandler","rawOptions","cell","CellData","lineLength","getTrimmedLength","currentLinkId","currentStart","finishLink","hasContent","loadCell","hasExtendedAttrs","extended","urlId","getLinkData","uri","defaultActivate","confirm","newWindow","open","opener","location","href","IOptionsService","IOscLinkService","_parentWindow","_renderCallback","_refreshCallbacks","_animationFrame","cancelAnimationFrame","addRefreshCallback","requestAnimationFrame","_innerRefresh","rowStart","rowEnd","rowCount","_rowCount","_rowStart","_rowEnd","max","_runRefreshCallbacks","_currentDevicePixelRatio","devicePixelRatio","listener","_listener","clearListener","_outerListener","_updateDpr","_resolutionMediaMatchList","removeListener","matchMedia","addListener","Terminal","CoreTerminal","browser","Browser","_keyDownHandled","_keyDownSeen","_keyPressHandled","_unprocessedDeadKey","_onCursorMove","_onRender","_onSelectionChange","_onTitleChange","_onBell","_onFocus","_onBlur","_onA11yCharEmitter","_onA11yTabEmitter","_setup","linkifier2","_instantiationService","createInstance","_decorationService","DecorationService","setService","IDecorationService","_inputHandler","onRequestBell","onRequestRefreshRows","onRequestSendFocus","_reportFocus","onRequestReset","reset","onRequestWindowsOptionsReport","_reportWindowsOptions","onColor","_handleColorEvent","forwardEvent","onCursorMove","onTitleChange","_afterResize","onSelectionChange","onBell","onFocus","_colorManager","req","acc","ident","toColorRGB","C0","ESC","toRgbString","C1_ESCAPED","ST","setColors","viewport","onThemeChange","_isDisposed","_customKeyEventHandler","write","buffers","active","preventScroll","_updateOptions","_charSizeService","measure","syncScrollArea","optionsService","screenReaderMode","_accessibilityManager","setupTabStops","_setTheme","_onTextAreaFocus","sendFocus","updateCursorStyle","_showCursor","blur","_onTextAreaBlur","_syncTextArea","isCursorInViewport","_compositionHelper","isComposing","cursorY","ybase","bufferLine","cursorX","cellHeight","getWidth","cellWidth","actualCellWidth","cursorTop","cursorLeft","lineHeight","_initGlobal","_bindKeys","hasSelection","copyHandler","_selectionService","pasteHandlerWrapper","handlePasteEvent","isFirefox","button","rightClickHandler","rightClickSelectsWord","isLinux","_keyUp","_keyDown","_keyPress","compositionstart","compositionupdate","compositionend","_inputEvent","updateCompositionElements","parent","isConnected","_logService","debug","_document","ownerDocument","dir","fragment","createDocumentFragment","_viewportElement","_viewportScrollArea","_helperContainer","_coreBrowserService","CoreBrowserService","defaultView","ICoreBrowserService","CharSizeService","ICharSizeService","_theme","ColorManager","onOptionChange","_characterJoinerService","CharacterJoinerService","ICharacterJoinerService","renderer","_createRenderer","RenderService","IRenderService","resize","_compositionView","CompositionHelper","MouseService","IMouseService","Viewport","amount","onRequestSyncScrollBar","SelectionService","ISelectionService","onRequestScrollLines","suppressScrollEvent","onRequestRedraw","onSelectionChanged","columnSelectMode","onLinuxMouseSelection","_onScroll","BufferDecorationRenderer","onMouseDown","coreMouseService","areMouseEventsActive","disable","enable","overviewRulerWidth","_overviewRulerRenderer","OverviewRulerRenderer","bindMouse","DomRenderer","el","sendEvent","getMouseReportCoords","but","action","overrideType","buttons","getLinesScrolled","deltaY","triggerMouseEvent","col","row","ctrl","ctrlKey","alt","altKey","shiftKey","requestedEvents","mouseup","wheel","mousedrag","mousemove","eventListeners","cancel","onProtocolChange","events","logLevel","explainEvents","passive","activeProtocol","shouldForceSelection","hasScrollback","sequence","applicationCursorKeys","abs","onWheel","onTouchStart","onTouchMove","refreshRows","shouldColumnSelect","isCursorInitialized","disp","source","attachCustomKeyEventHandler","customKeyEventHandler","registerCharacterJoiner","joinerId","deregisterCharacterJoiner","deregister","markers","addMarker","cursorYOffset","registerDecoration","decorationOptions","column","setSelection","getSelection","getSelectionPosition","selectionStart","selectionEnd","clearSelection","selectAll","selectLines","shouldIgnoreComposition","macOptionIsMeta","keydown","scrollToBottom","evaluateKeyboardEvent","scrollCount","_isThirdLevelShift","metaKey","charCodeAt","ETX","CR","domEvent","thirdLevelKey","isWindows","getModifierState","keyCode","wasModifierKeyOnlyEvent","charCode","which","String","fromCharCode","inputType","composed","hasValidSize","clearAllMarkers","getBlankLine","DEFAULT_ATTR_DATA","clearTextureAtlas","WindowsOptionsReportType","GET_WIN_SIZE_PIXELS","canvasWidth","toFixed","canvasHeight","GET_CELL_SIZE_PIXELS","force","cancelEvents","_debounceThresholdMS","_lastRefreshMs","_additionalRefreshRequested","_refreshTimeoutID","clearTimeout","refreshRequestTime","Date","now","elapsed","waitPeriodBeforeTrailingRefresh","_scrollLines","_scrollArea","scrollBarWidth","_currentRowHeight","_currentScaledCellHeight","_lastRecordedBufferLength","_lastRecordedViewportHeight","_lastRecordedBufferHeight","_lastTouchY","_lastScrollTop","_wheelPartialScroll","_refreshAnimationFrame","_ignoreNextScrollEvent","_smoothScrollState","startTime","origin","offsetWidth","_activeBuffer","onBufferActivate","activeBuffer","_renderDimensions","backgroundColor","_refresh","immediate","scaledCellHeight","dpr","offsetHeight","newBufferHeight","scrollTop","offsetParent","diff","_smoothScroll","percent","_smoothScrollPercent","_clearSmoothScrollState","smoothScrollDuration","_bubbleScroll","scrollPosFromTop","cancelable","_getPixelsScrolled","scrollHeight","_applyScrollModifier","deltaMode","WheelEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","DOM_DELTA_PIXEL","floor","modifier","fastScrollModifier","fastScrollSensitivity","scrollSensitivity","touches","pageY","_screenElement","_decorationElements","_altBufferIsActive","_dimensionsChanged","_container","_queueRefresh","onDecorationRegistered","onDecorationRemoved","decoration","_removeDecoration","refreshDecorations","_renderDecoration","_refreshStyle","_refreshXPosition","_createElement","marker","display","onRenderEmitter","onDispose","anchor","right","delete","_zones","_zonePool","_zonePoolIndex","_linePadding","full","center","zones","addDecoration","overviewRulerOptions","z","_lineIntersectsZone","_lineAdjacentToZone","_addLineToZone","startBufferLine","endBufferLine","setPadding","padding","zone","drawHeight","drawWidth","drawX","_coreBrowseService","_colorZoneStore","ColorZoneStore","_shouldUpdateDimensions","_shouldUpdateAnchor","_lastKnownBufferLength","_canvas","_refreshCanvasDimensions","insertBefore","_registerDecorationListeners","_registerBufferChangeListeners","_registerDimensionChangeListeners","_width","normal","_refreshDrawHeightConstants","_refreshColorZonePadding","_containerHeight","clientHeight","o","_refreshDrawConstants","outerWidth","innerWidth","ceil","pixelsPerLine","nonFullHeight","_refreshDecorations","clearRect","lineWidth","_renderColorZone","updateCanvasDimensions","updateAnchor","_textarea","_coreService","_isComposing","_isSendingComposition","_compositionPosition","_dataAlreadySent","_finalizeComposition","_handleAnyTextareaChanges","waitForPropagation","currentCompositionPosition","input","oldValue","newValue","DEL","dontRecurse","fontFamily","fontSize","compositionViewBounds","ICoreService","getCoordsRelativeToElement","rect","elementStyle","getComputedStyle","leftPadding","parseInt","getPropertyValue","topPadding","colCount","hasValidCharSize","isSelection","moveToRequestedRow","startY","targetY","bufferService","applicationCursor","wrappedRowsForRow","rowsToMove","wrappedRows","direction","verticalDirection","isWrapped","wrappedRowsCount","repeat","currentRow","lineWraps","startCol","endCol","forward","currentCol","bufferStr","mod","count","str","rpt","targetX","resetStartingRow","horizontalDirection","moveToRequestedCol","rowDifference","currX","colsFromRowEnd","INVERTED_DEFAULT_COLOR","DIM_OPACITY","TEXT_BASELINE","isLegacyEdge","isPowerlineGlyph","codepoint","isBoxOrBlockGlyph","TERMINAL_CLASS_PREFIX","FOCUS_CLASS","nextTerminalId","_colors","_linkifier2","instantiationService","_terminalClass","_refreshRowElements","_selectionContainer","scaledCharWidth","scaledCharHeight","scaledCellWidth","scaledCharLeft","scaledCharTop","scaledCanvasWidth","scaledCanvasHeight","_updateDimensions","_injectCss","_rowFactory","DomRendererRowFactory","_onLinkHover","_onLinkLeave","_themeStyleElement","_dimensionsStyleElement","letterSpacing","overflow","styles","_terminalSelector","BOLD_CLASS","fontWeight","fontWeightBold","ITALIC_CLASS","CURSOR_CLASS","CURSOR_STYLE_BLOCK_CLASS","CURSOR_BLINK_CLASS","CURSOR_STYLE_BAR_CLASS","cursorWidth","CURSOR_STYLE_UNDERLINE_CLASS","opaque","onDevicePixelRatioChange","onCharSizeChanged","renderRows","viewportStartRow","viewportEndRow","viewportCappedStartRow","viewportCappedEndRow","documentFragment","isXFlipped","_createSelectionElement","middleRowsCount","colStart","colEnd","onOptionsChanged","cursorAbsoluteY","cursorBlink","rowElement","cursorStyle","createRow","_setCellUnderline","enabled","span","textDecoration","IInstantiationService","DIM_CLASS","UNDERLINE_CLASS","STRIKETHROUGH_CLASS","_workCell","_columnSelectMode","_selectionStart","_selectionEnd","isCursorRow","joinedRanges","getJoinedCharacters","getCode","NULL_CELL_CODE","isJoined","lastCharX","JoinedCellData","translateToString","charElement","isCursorHidden","isBold","isItalic","isDim","isInvisible","WHITESPACE_CELL_CHAR","getChars","isUnderline","underlineStyle","innerHTML","isUnderlineColorDefault","isUnderlineColorRGB","textDecorationColor","AttributeData","getUnderlineColor","join","drawBoldTextInBrightColors","isStrikethrough","getFgColor","fgColorMode","getFgColorMode","getBgColor","bgColorMode","getBgColorMode","isInverse","temp","temp2","bgOverride","fgOverride","isTop","forEachDecorationAtCell","d","layer","backgroundColorRGB","foregroundColorRGB","isInSelection","_isCellInSelection","resolvedBg","isFocused","_addStyle","padStart","multiplyOpacity","_applyMinimumContrast","minimumContrastRatio","excludeFromContrastRatioDemands","adjustedColor","ensureContrastRatio","padChar","isSelectAllActive","selectionStartLength","finalSelectionStart","areSelectionValuesReversed","finalSelectionEnd","startPlusLength","onTrim","_onCharSizeChange","_measureStrategy","DomMeasureStrategy","onCharSizeChange","_parentElement","_result","_measureElement","geometry","firstCell","chars","content","combinedData","isCombined","setFromCharData","getAsCharData","_characterJoiners","_nextCharacterJoinerId","joiner","id","ranges","lineStr","rangeStartColumn","currentStringIndex","rangeStartStringIndex","rangeAttrFG","getFg","rangeAttrBG","getBg","_getJoinedRanges","startIndex","endIndex","allJoinedRanges","error","joinerRanges","_mergeRanges","_stringRangesToCellRanges","currentRangeIndex","currentRangeStarted","currentRange","getString","static","newRange","inRange","getRootNode","activeElement","hasFocus","_renderer","decorationService","coreBrowserService","_isPaused","_needsFullRefresh","_isNextRenderRedrawOnly","_needsSelectionRefresh","_canvasWidth","_canvasHeight","_selectionState","_onDimensionsChange","_onRenderedViewportChange","_onRefreshRequest","_renderDebouncer","RenderDebouncer","_fullRefresh","_handleOptionsChanged","observer","IntersectionObserver","_onIntersectionChange","threshold","observe","disconnect","onRefreshRequest","entry","isIntersecting","intersectionRatio","isRedrawOnly","_fireOnCanvasResize","setRenderer","NON_BREAKING_SPACE_CHAR","ALL_NON_BREAKING_SPACE_REGEX","RegExp","_linkifier","_dragScrollAmount","_enabled","_mouseDownTimeStamp","_oldHasSelection","_oldSelectionStart","_oldSelectionEnd","_onLinuxMouseSelection","_onRedrawRequest","_onRequestScrollLines","_mouseMoveListener","_mouseUpListener","_onMouseUp","onUserInput","_trimListener","_onTrim","_onBufferActivate","_model","SelectionModel","_activeSelectionMode","_removeMouseDownListeners","lineText","startRowEndCol","isLinuxMouseSelection","_isClickInSelection","_getMouseBufferCoords","_areCoordsInSelection","isCellInSelection","_selectWordAtCursor","allowWhitespaceOnlySelection","getRangeLength","_selectWordAt","_getMouseEventScrollAmount","offset","terminalHeight","macOptionClickForcesSelection","timeStamp","_onIncrementalClick","detail","_onSingleClick","_onDoubleClick","_onTripleClick","_addMouseDownListeners","_dragScrollIntervalTimer","setInterval","_dragScroll","clearInterval","hasWidth","_selectLineAt","previousSelectionEnd","_selectToWordAt","timeElapsed","altClickMovesCursor","coordinates","moveToCellSequence","_fireEventIfSelectionChanged","_fireOnSelectionChange","_convertViewportColToCharacterIndex","charIndex","_getWordAt","followWrappedLinesAbove","followWrappedLinesBelow","charOffset","leftWideCharCount","rightWideCharCount","leftLongCharOffset","rightLongCharOffset","charAt","_isCharWordSeparator","trim","getCodePoint","previousBufferLine","previousLineWordPosition","nextBufferLine","nextLineWordPosition","wordPosition","wordSeparator","wrappedRange","getWrappedRangeForLine","first","last","createDecorator","_maxLength","onDeleteEmitter","onInsertEmitter","onTrimEmitter","_array","Array","_startIndex","_length","onDelete","onInsert","maxLength","newMaxLength","newArray","_getCyclicIndex","newLength","recycle","isFull","deleteCount","items","countToTrim","trimStart","shiftElements","expandListBy","clone","val","depth","clonedObject","isArray","rgb","toPaddedHex","s","contrastRatio","l1","l2","toChannels","fgR","fgG","fgB","bgR","bgG","bgB","ratio","rgbaColor","factor","match","rgbaMatch","parseFloat","relativeLuminance2","rs","gs","bs","pow","relativeLuminance","reduceLuminance","bgRgba","fgRgba","cr","increaseLuminance","bgL","fgL","resultA","resultARatio","resultB","hasWriteSyncWarnHappened","_onBinary","_onData","_onLineFeed","_onWriteParsed","InstantiationService","OptionsService","BufferService","LogService","ILogService","CoreService","CoreMouseService","ICoreMouseService","_dirtyRowService","DirtyRowService","IDirtyRowService","unicodeService","UnicodeService","IUnicodeService","_charsetService","CharsetService","ICharsetService","OscLinkService","InputHandler","onData","onBinary","markRangeDirty","scrollBottom","_writeBuffer","WriteBuffer","promiseResult","parse","onWriteParsed","_onScrollApi","_windowsMode","writeSync","maxSubsequentCalls","LogLevelEnum","WARN","isNaN","MINIMUM_COLS","MINIMUM_ROWS","scroll","eraseAttr","scrollPages","pageCount","scrollToTop","scrollToLine","registerEscHandler","registerDcsHandler","registerCsiHandler","registerOscHandler","windowsMode","_enableWindowsMode","disposables","updateWindowsModeWrappedState","final","_listeners","_disposed","_event","arg1","arg2","queue","call","from","to","GLEVEL","MAX_PARSEBUFFER_LENGTH","paramToWindowOption","n","opts","setWinLines","restoreWin","minimizeWin","setWinPosition","setWinSizePixels","raiseWin","lowerWin","refreshWin","setWinSizeChars","maximizeWin","fullscreenWin","getWinState","getWinPosition","getWinSizePixels","getScreenSizePixels","getCellSizePixels","getWinSizeChars","getScreenSizeChars","getIconTitle","getWinTitle","pushTitle","popTitle","_coreMouseService","_unicodeService","_parser","EscapeSequenceParser","_parseBuffer","Uint32Array","_stringDecoder","StringToUtf32","_utf8Decoder","Utf8ToUtf32","_windowTitle","_iconName","_windowTitleStack","_iconNameStack","_curAttrData","_eraseAttrDataInternal","_onRequestBell","_onRequestRefreshRows","_onRequestReset","_onRequestSendFocus","_onRequestSyncScrollBar","_onRequestWindowsOptionsReport","_onA11yChar","_onA11yTab","_onColor","_parseStack","paused","cursorStartX","cursorStartY","decodedLength","_specialColors","setCsiHandlerFallback","params","identifier","identToString","toArray","setEscHandlerFallback","setExecuteHandlerFallback","code","setOscHandlerFallback","setDcsHandlerFallback","payload","setPrintHandler","print","insertChars","intermediates","scrollLeft","cursorUp","scrollRight","cursorDown","cursorForward","cursorBackward","cursorNextLine","cursorPrecedingLine","cursorCharAbsolute","cursorPosition","cursorForwardTab","eraseInDisplay","prefix","eraseInLine","insertLines","deleteLines","deleteChars","scrollUp","scrollDown","eraseChars","cursorBackwardTab","charPosAbsolute","hPositionRelative","repeatPrecedingCharacter","sendDeviceAttributesPrimary","sendDeviceAttributesSecondary","linePosAbsolute","vPositionRelative","hVPosition","tabClear","setMode","setModePrivate","resetMode","resetModePrivate","charAttributes","deviceStatus","deviceStatusPrivate","softReset","setCursorStyle","setScrollRegion","saveCursor","windowOptions","restoreCursor","insertColumns","deleteColumns","selectProtected","requestMode","setExecuteHandler","BEL","bell","LF","lineFeed","VT","FF","carriageReturn","BS","backspace","HT","tab","SO","shiftOut","SI","shiftIn","C1","IND","NEL","nextLine","HTS","tabSet","OscHandler","setTitle","setIconName","setOrReportIndexedColor","setHyperlink","setOrReportFgColor","setOrReportBgColor","setOrReportCursorColor","restoreIndexedColor","restoreFgColor","restoreBgColor","restoreCursorColor","reverseIndex","keypadApplicationMode","keypadNumericMode","fullReset","setgLevel","selectDefaultCharset","flag","CHARSETS","selectCharset","screenAlignmentPattern","setErrorHandler","DcsHandler","requestStatusString","getAttrData","_preserveStack","_logSlowResolvingAsync","p","Promise","race","res","rej","catch","err","wasPaused","DEBUG","prototype","clearRange","len","decode","subarray","chWidth","charset","wraparoundMode","wraparound","insertMode","modes","curAttr","bufferRow","markDirty","setCellFromCodePoint","wcwidth","ch","stringFromCodePoint","_currentLinkId","addLineToLink","_eraseAttrData","insertCells","getNullCell","NULL_CELL_WIDTH","addCodepointToCell","precedingCodepoint","convertEol","reverseWraparound","_restrictCursor","originalX","nextStop","maxCol","_setCursor","_moveCursor","diffToTop","diffToBottom","param","tabs","prevStop","_eraseInBufferLine","clearWrap","respectProtect","replaceCells","_resetBufferLine","fill","clearMarkers","scrollBackSize","scrollBottomRowsOffset","scrollBottomAbsolute","deleteCells","_is","term","termName","setgCharset","DEFAULT_CHARSET","applicationKeypad","activeEncoding","activateAltBuffer","activateNormalBuffer","dm","mouseProtocol","mouseEncoding","cs","b2v","m","_updateAttrColor","mode","c1","c2","c3","fromColorRGB","_extractColor","attr","accu","cSpace","advance","hasSubParams","subparams","getSubParams","underlineColor","_processUnderline","updateExtended","l","savedX","savedY","savedCurAttrData","savedCharset","isBlinking","bottom","second","_savedCharset","slots","idx","spec","exec","parseColor","args","_createHyperlink","_finishHyperlink","parsedParams","idParamIndex","findIndex","startsWith","registerLink","_setOrReportSpecialColor","collectAndFlag","scrollRegionHeight","level","yOffset","markAllDirty","f","isProtected","_disposables","unregister","array","_data","third","fourth","isNode","navigator","userAgent","platform","includes","isSafari","test","isIpad","isIphone","_getKey","insert","_search","forEachByKey","values","mid","midKey","fillFallback","lastChar","CHAR_DATA_CODE_INDEX","WHITESPACE_CELL_CODE","ExtendedAttrs","newObj","isBlink","isFgRGB","isBgRGB","isFgPalette","isBgPalette","isFgDefault","isBgDefault","isAttributeDefault","isEmpty","getUnderlineColorMode","isUnderlineColorPalette","getUnderlineStyle","ext","_ext","_urlId","MAX_BUFFER_SIZE","_hasScrollback","_nullCell","fromCharData","NULL_CELL_CHAR","_whitespaceCell","WHITESPACE_CELL_WIDTH","_isClearing","_cols","_rows","CircularList","_getCorrectBufferLength","getWhitespaceCell","BufferLine","relativeY","correctBufferLength","scrollback","fillViewportRows","fillAttr","newCols","newRows","nullCell","addToY","amountToTrim","_isReflowEnabled","_reflow","_reflowLarger","_reflowSmaller","toRemove","reflowLargerGetLinesToRemove","newLayoutResult","reflowLargerCreateNewLayout","reflowLargerApplyNewLayout","layout","_reflowLargerAdjustViewport","countRemoved","viewportAdjustments","toInsert","countToInsert","wrappedLines","absoluteY","lastLineLength","destLineLengths","reflowSmallerGetNewLineLengths","linesToAdd","trimmedLines","newLines","newLine","destLineIndex","destCol","srcLineIndex","srcCol","cellsToCopy","copyCellsFrom","wrappedLinesIndex","getWrappedLineTrimmedLength","setCell","insertEvents","originalLines","originalLinesLength","originalLineIndex","nextToInsertIndex","nextToInsert","countInsertedSoFar","nextI","insertCountEmitted","stringIndexToBufferIndex","lineIndex","stringIndex","trimRight","CHAR_DATA_WIDTH_INDEX","CHAR_DATA_CHAR_INDEX","tabStopWidth","Marker","_removeMarker","iterator","startOverscan","endOverscan","BufferStringIterator","_buffer","_trimRight","_endIndex","_startOverscan","_endOverscan","_current","hasNext","next","w","fillCellData","_combined","_extendedAttrs","cp","CHAR_DATA_ATTR_INDEX","codePoint","eAttrs","keys","copyFrom","src","applyInReverse","srcData","srcCombinedKeys","bufferCols","endsInNull","followingLineStartsWithWide","oldCols","bufferAbsoluteY","srcTrimmedTineLength","srcRemainingCells","destRemainingCells","countToRemove","nextToRemoveIndex","nextToRemoveStart","countRemovedSoFar","newLayout","newLayoutLines","newLineLengths","cellsNeeded","reduce","srcLine","cellsAvailable","oldTrimmedLength","endsWithWide","BufferSet","_normal","Buffer","_alt","inactiveBuffer","obj","combined","DEFAULT_COLOR","DEFAULT_ATTR","DEFAULT_EXT","_id","_nextId","isDisposed","_onDispose","C","NUL","SOH","STX","EOT","ENQ","ACK","DLE","DC1","DC2","DC3","DC4","NAK","SYN","ETB","CAN","EM","SUB","FS","GS","RS","US","SP","PAD","HOP","BPH","NBH","SSA","ESA","HTJ","VTS","PLD","PLU","RI","SS2","SS3","DCS","PU1","PU2","STS","CCH","MW","SPA","EPA","SOS","SGCI","SCI","CSI","OSC","PM","APC","KEYCODE_KEY_MAPPINGS","applicationCursorMode","modifiers","keyMapping","keyString","toUpperCase","toLowerCase","_interim","startPos","interim","Uint8Array","byte1","byte2","byte3","byte4","discardInterim","tmp","missing","fourStop","BMP_COMBINING","HIGH_COMBINING","table","version","num","ucs","bisearch","qmt","queueMicrotask","cb","resolve","then","_action","_callbacks","_pendingData","_bufferOffset","_isSyncWriting","_syncCalls","chunk","_innerWrite","lastTime","continuation","RGB_REX","HASH_REX","pad","bits","s2","low","base","adv","PAYLOAD_LIMIT","EMPTY_HANDLERS","_handlers","create","_active","_ident","_handlerFb","_stack","loopPosition","fallThrough","registerHandler","handlerList","handlerIndex","clearHandler","setHandlerFallback","unhook","hook","put","utf32ToString","success","handlerResult","EMPTY_PARAMS","Params","addParam","_handler","_params","_hitLimit","ret","TransitionTable","setDefault","addMany","codes","NON_ASCII_PRINTABLE","VT500_TRANSITION_TABLE","blueprint","apply","unused","PRINTABLES","EXECUTABLES","states","_transitions","handlers","handlerPos","transition","chunkPos","initialState","currentState","_collect","_printHandlerFb","_executeHandlerFb","_csiHandlerFb","_escHandlerFb","_errorHandlerFb","_printHandler","_executeHandlers","_csiHandlers","_escHandlers","_oscParser","OscParser","_dcsParser","DcsParser","_errorHandler","_identifier","finalRange","intermediate","finalCode","reverse","clearPrintHandler","clearEscHandler","clearExecuteHandler","clearCsiHandler","clearDcsHandler","clearOscHandler","clearErrorHandler","collect","abort","addSubParam","addDigit","handlersEsc","jj","_state","_start","_put","MAX_VALUE","maxSubParamsLength","Int32Array","_subParams","_subParamsLength","_subParamsIdx","Uint16Array","_rejectDigits","_rejectSubDigits","_digitIsSub","k","newParams","getSubParamsAll","store","cur","_addons","instance","loadAddon","terminal","loadedAddon","_wrappedAddonDispose","init","viewportY","baseY","getLine","BufferLineApiView","_line","getCell","startColumn","endColumn","_core","_onBufferChange","BufferApiView","_alternate","onBufferChange","alternate","addCsiHandler","addDcsHandler","addEscHandler","addOscHandler","provider","versions","activeVersion","isUserScrolling","_cachedBlankLine","topRow","bottomRow","willBufferBeTrimmed","oldYdisp","scrollAmount","glevel","_charsets","DEFAULT_PROTOCOLS","NONE","restrict","X10","VT200","DRAG","ANY","eventCode","isSGR","S","DEFAULT_ENCODINGS","DEFAULT","SGR","SGR_PIXELS","_protocols","_encodings","_activeProtocol","_activeEncoding","_onProtocolChange","_lastEvent","name","addProtocol","addEncoding","protocol","encoding","_equalEvents","report","triggerBinaryEvent","down","up","drag","move","e1","e2","pixels","DEFAULT_MODES","DEFAULT_DEC_PRIVATE_MODES","_onUserInput","_scrollToBottom","wasUserInput","disableStdin","xmin","xmax","_decorations","SortedList","_onDecorationRegistered","_onDecorationRemoved","Decoration","markerDispose","getKeyIterator","_cachedBg","_cachedFg","foregroundColor","_end","ServiceCollection","_entries","service","_services","getService","ctor","serviceDependencies","getServiceDependencies","sort","serviceArgs","dependency","firstServiceArgPos","optionsKeyToLogLevel","info","INFO","ERROR","off","OFF","_updateLogLevel","_evalLazyOptionalParams","optionalParams","_log","message","log","DEFAULT_OPTIONS","customGlyphs","allowProposedApi","FONT_WEIGHT_OPTIONS","_onOptionChange","defaultOptions","_sanitizeAndValidateOption","_setupOptions","getter","propName","setter","desc","defineProperty","isCursorStyle","_entriesWithId","_dataByLinkId","_removeMarkerFromLink","castData","_getEntryIdKey","linkId","every","linkData","storeServiceDependency","serviceRegistry","decorator","arguments","_providers","_onChange","defaultProvider","UnicodeV6","_activeProvider","onChange","getStringCellWidth","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","CONSTRUCTOR_ONLY_OPTIONS","_addonManager","AddonManager","_publicOptions","_checkReadonlyOptions","_checkProposedApi","parser","ParserApi","unicode","UnicodeApi","BufferNamespaceApi","mouseTrackingMode","applicationCursorKeysMode","applicationKeypadMode","originMode","reverseWraparoundMode","sendFocusMode","columns","_verifyIntegers","registerMarker","_verifyPositiveIntegers","writeln","addon","strings","Infinity"],"sourceRoot":""} \ No newline at end of file