Merging r37732 through r37862 from trunk into soc-2011-tomato
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 27 Jun 2011 14:20:48 +0000 (14:20 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 27 Jun 2011 14:20:48 +0000 (14:20 +0000)
122 files changed:
CMakeLists.txt
GNUmakefile
SConstruct
build_files/cmake/macros.cmake
build_files/scons/config/aix4-config.py
build_files/scons/config/win32-vc-config.py
build_files/scons/config/win64-vc-config.py
doc/python_api/examples/aud.py [new file with mode: 0644]
doc/python_api/rst/change_log.rst
doc/python_api/sphinx_doc_gen.py
intern/CMakeLists.txt
intern/ffmpeg/ffmpeg_compat.h
intern/ghost/intern/GHOST_DisplayManagerCocoa.mm
intern/ghost/intern/GHOST_SystemCocoa.h
intern/ghost/intern/GHOST_SystemCocoa.mm
intern/ghost/intern/GHOST_Window.cpp
intern/ghost/intern/GHOST_Window.h
intern/ghost/intern/GHOST_WindowCarbon.cpp
intern/ghost/intern/GHOST_WindowCocoa.h
intern/ghost/intern/GHOST_WindowCocoa.mm
intern/ghost/intern/GHOST_WindowWin32.cpp
intern/ghost/intern/GHOST_WindowX11.cpp
intern/iksolver/intern/IK_QSegment.cpp
intern/itasc/ConstraintSet.cpp
release/scripts/startup/bl_operators/uvcalc_smart_project.py
release/scripts/startup/bl_operators/wm.py
release/scripts/startup/bl_ui/properties_material.py
release/scripts/startup/bl_ui/properties_particle.py
release/scripts/startup/bl_ui/space_userpref.py
release/scripts/startup/bl_ui/space_view3d.py
release/scripts/startup/bl_ui/space_view3d_toolbar.py
source/blender/blenkernel/BKE_blender.h
source/blender/blenkernel/BKE_particle.h
source/blender/blenkernel/CMakeLists.txt
source/blender/blenkernel/intern/blender.c
source/blender/blenkernel/intern/brush.c
source/blender/blenkernel/intern/bvhutils.c
source/blender/blenkernel/intern/paint.c
source/blender/blenkernel/intern/particle.c
source/blender/blenkernel/intern/sequencer.c
source/blender/blenkernel/intern/sound.c
source/blender/blenkernel/intern/writeffmpeg.c
source/blender/blenlib/BLI_callbacks.h [new file with mode: 0644]
source/blender/blenlib/BLI_math_color.h
source/blender/blenlib/BLI_math_geom.h
source/blender/blenlib/CMakeLists.txt
source/blender/blenlib/intern/callbacks.c [new file with mode: 0644]
source/blender/blenlib/intern/math_color.c
source/blender/blenlib/intern/math_geom.c
source/blender/blenloader/intern/readfile.c
source/blender/blenloader/intern/writefile.c
source/blender/editors/armature/armature_intern.h
source/blender/editors/armature/armature_ops.c
source/blender/editors/armature/editarmature.c
source/blender/editors/datafiles/startup.blend.c
source/blender/editors/interface/interface_style.c
source/blender/editors/mesh/editmesh_mods.c
source/blender/editors/object/object_bake.c
source/blender/editors/render/render_opengl.c
source/blender/editors/sculpt_paint/paint_image.c
source/blender/editors/sound/CMakeLists.txt
source/blender/editors/sound/sound_ops.c
source/blender/editors/space_file/file_ops.c
source/blender/editors/space_graph/CMakeLists.txt
source/blender/editors/space_graph/graph_edit.c
source/blender/editors/space_info/info_stats.c
source/blender/editors/space_sequencer/CMakeLists.txt
source/blender/editors/space_sequencer/sequencer_add.c
source/blender/editors/space_view3d/drawobject.c
source/blender/editors/transform/transform_constraints.c
source/blender/imbuf/CMakeLists.txt
source/blender/imbuf/IMB_imbuf.h
source/blender/imbuf/intern/divers.c
source/blender/makesdna/DNA_particle_types.h
source/blender/makesrna/intern/CMakeLists.txt
source/blender/makesrna/intern/makesrna.c
source/blender/makesrna/intern/rna_ID.c
source/blender/makesrna/intern/rna_access.c
source/blender/makesrna/intern/rna_curve.c
source/blender/makesrna/intern/rna_mesh.c
source/blender/makesrna/intern/rna_modifier.c
source/blender/makesrna/intern/rna_object.c
source/blender/makesrna/intern/rna_particle.c
source/blender/makesrna/intern/rna_rna.c
source/blender/makesrna/intern/rna_scene.c
source/blender/makesrna/intern/rna_space.c
source/blender/makesrna/intern/rna_userdef.c
source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c
source/blender/nodes/intern/CMP_nodes/CMP_glare.c
source/blender/nodes/intern/CMP_nodes/CMP_rotate.c
source/blender/python/BPY_extern.h
source/blender/python/generic/mathutils_Matrix.c
source/blender/python/generic/mathutils_geometry.c
source/blender/python/intern/CMakeLists.txt
source/blender/python/intern/bpy.c
source/blender/python/intern/bpy_app.c
source/blender/python/intern/bpy_app_handlers.c [new file with mode: 0644]
source/blender/python/intern/bpy_app_handlers.h [moved from source/blender/blenlib/intern/BLI_callbacks.h with 64% similarity]
source/blender/python/intern/bpy_interface.c
source/blender/quicktime/CMakeLists.txt
source/blender/quicktime/apple/qtkit_export.m
source/blender/render/intern/source/convertblender.c
source/blender/render/intern/source/pipeline.c
source/blender/render/intern/source/volume_precache.c
source/blender/render/intern/source/volumetric.c
source/blender/windowmanager/intern/wm_event_system.c
source/blender/windowmanager/intern/wm_files.c
source/blender/windowmanager/intern/wm_init_exit.c
source/blender/windowmanager/intern/wm_window.c
source/creator/creator.c
source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
source/gameengine/BlenderRoutines/CMakeLists.txt
source/gameengine/Converter/BL_BlenderDataConversion.cpp
source/gameengine/Converter/CMakeLists.txt
source/gameengine/Converter/KX_ConvertActuators.cpp
source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
source/gameengine/Ketsji/CMakeLists.txt
source/gameengine/Ketsji/KX_KetsjiEngine.cpp
source/gameengine/Ketsji/KX_SoundActuator.cpp
source/gameengine/Ketsji/KX_SoundActuator.h
source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h

index 09685ba29c3bbbc647d5858c389d3070f6baacdf..fda6459efbb23954601d5da12c2b0778cfacf035 100644 (file)
@@ -57,6 +57,9 @@ endif()
 # this starts out unset
 list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/build_files/cmake/Modules")
 
+# avoid having empty buildtype
+set(CMAKE_BUILD_TYPE_INIT "Release")
+
 # quiet output for Makefiles, 'make -s' helps too
 # set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
 
@@ -104,6 +107,9 @@ option(WITH_BULLET        "Enable Bullet (Physics Engine)" ON)
 option(WITH_GAMEENGINE    "Enable Game Engine" ON)
 option(WITH_PLAYER        "Build Player" OFF)
 
+option(WITH_AUDASPACE    "Build with blenders audio library" ON)
+mark_as_advanced(WITH_AUDASPACE)
+
 option(WITH_HEADLESS      "Build without graphical support (renderfarm, server mode only)" OFF)
 mark_as_advanced(WITH_HEADLESS)
 
@@ -203,8 +209,8 @@ if(NOT WITH_GAMEENGINE AND WITH_PLAYER)
        message(FATAL_ERROR "WITH_PLAYER requires WITH_GAMEENGINE")
 endif()
 
-if(NOT WITH_SAMPLERATE AND (WITH_OPENAL OR WITH_SDL OR WITH_JACK))
-       message(FATAL_ERROR "WITH_OPENAL/WITH_SDL/WITH_JACK require WITH_SAMPLERATE")
+if(NOT WITH_AUDASPACE AND (WITH_OPENAL OR WITH_SDL OR WITH_JACK))
+       message(FATAL_ERROR "WITH_OPENAL/WITH_SDL/WITH_JACK/WITH_CODEC_FFMPEG require WITH_AUDASPACE")
 endif()
 
 if(NOT WITH_IMAGE_OPENJPEG AND WITH_IMAGE_REDCODE)
@@ -544,13 +550,13 @@ elseif(WIN32)
 
        if(MSVC)
                if(CMAKE_CL_64)
-                       set(LLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid )
+                       set(LLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid)
                else()
-                       set(LLIBS kernel32 user32 gdi32 comdlg32 advapi32 shell32 ole32 oleaut32 uuid ws2_32 vfw32 winmm)
+                       set(LLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid)
                endif()
                
-               set(CMAKE_CXX_FLAGS "/D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /we4013 /wd4018 /wd4800 /wd4244 /wd4305 /wd4065 /wd4267" CACHE STRING "MSVC MT C++ flags " FORCE)
-               set(CMAKE_C_FLAGS   "/D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /we4013 /wd4018 /wd4800 /wd4244 /wd4305 /wd4065 /wd4267" CACHE STRING "MSVC MT C++ flags " FORCE)
+               set(CMAKE_CXX_FLAGS "/D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_CONSOLE /D_LIB /nologo /Ob1 /J /W0 /Gd /wd4018 /wd4244 /wd4305 /wd4800 /wd4065 /wd4267 /we4013" CACHE STRING "MSVC MT C++ flags " FORCE)
+               set(CMAKE_C_FLAGS   "/D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_CONSOLE /D_LIB /nologo /Ob1 /J /W0 /Gd /wd4018 /wd4244 /wd4305 /wd4800 /wd4065 /wd4267 /we4013 /EHsc" CACHE STRING "MSVC MT C++ flags " FORCE)
 
                if(CMAKE_CL_64)
                        set(CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /Od /Gm /EHsc /RTC1 /MTd /W3 /nologo /Zi /J" CACHE STRING "MSVC MT flags " FORCE)
@@ -695,9 +701,9 @@ elseif(WIN32)
 
                # MSVC only, Mingw doesnt need
                if(CMAKE_CL_64)
-                       set(PLATFORM_LINKFLAGS "/MACHINE:X64 /NODEFAULTLIB:libc.lib /STACK:2097152 ")
+                       set(PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE /MACHINE:X64 /STACK:2097152 /OPT:NOREF /INCREMENTAL:NO /NODEFAULTLIB:\"msvcrt.lib\" /NODEFAULTLIB:\"msvcmrt.lib\" /NODEFAULTLIB:\"msvcurt.lib\" /NODEFAULTLIB:\"msvcrtd.lib\" ")
                else()
-                       set(PLATFORM_LINKFLAGS "/NODEFAULTLIB:libc.lib /STACK:2097152 ")
+                       set(PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE /MACHINE:IX86 /STACK:2097152 /INCREMENTAL:NO /LARGEADDRESSAWARE /NODEFAULTLIB:\"msvcrt.lib\" /NODEFAULTLIB:\"msvcmrt.lib\" /NODEFAULTLIB:\"msvcurt.lib\" /NODEFAULTLIB:\"msvcrtd.lib\" ")
                endif()
 
                set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:libcmt.lib;libc.lib ")
@@ -796,7 +802,7 @@ elseif(WIN32)
                        set(PYTHON_VERSION 3.2)
                        set(PYTHON_INCLUDE_DIRS "${PYTHON}/include/python${PYTHON_VERSION}")
                        # set(PYTHON_BINARY python) # not used yet
-                       set(PYTHON_LIBRARIES python32mw)
+                       set(PYTHON_LIBRARIES ${PYTHON}/lib/python32mw.lib)
                        set(PYTHON_LIBPATH ${PYTHON}/lib)
                endif()
 
@@ -996,7 +1002,7 @@ endif()
 # Common.
 
 if(APPLE OR WIN32)
-       if(NOT IS_DIRECTORY "${LIBDIR}")
+       if(NOT EXISTS "${LIBDIR}/")
                message(FATAL_ERROR "Apple and Windows require pre-compiled libs at: '${LIBDIR}'")
        endif()
 endif()
index 47073bf573488650ccea7d84641e3658c0afe8f9..b55890f9271b9bedc64cd17bb42ba4a74efd7a43 100644 (file)
@@ -75,7 +75,8 @@ all:
        @echo Building Blender ...
        make -C $(BUILD_DIR) -s -j $(NPROCS) install
        @echo
-       @echo run blender from "$(BUILD_DIR)/bin/blender"
+       @echo edit build configuration with: "$(BUILD_DIR)/CMakeCache.txt" run make again to rebuild.
+       @echo blender installed, run from: "$(BUILD_DIR)/bin/blender"
        @echo
 
 debug: all
index 2f63ddf050186d039df56b68d33a74fb44877520..291460187045fc0bb9af4899cd3dfabc7acf6de4 100644 (file)
@@ -306,6 +306,11 @@ if env['BF_NO_ELBEEM'] == 1:
     env['CXXFLAGS'].append('-DDISABLE_ELBEEM')
     env['CCFLAGS'].append('-DDISABLE_ELBEEM')
 
+# TODO, make optional
+env['CPPFLAGS'].append('-DWITH_AUDASPACE')
+env['CXXFLAGS'].append('-DWITH_AUDASPACE')
+env['CCFLAGS'].append('-DWITH_AUDASPACE')
+
 # lastly we check for root_build_dir ( we should not do before, otherwise we might do wrong builddir
 B.root_build_dir = env['BF_BUILDDIR']
 B.doc_build_dir = os.path.join(env['BF_INSTALLDIR'], 'doc')
index bb3761d45396d26fcd541a09df07bf71c97daf94..8ae73451e318dd1a8cab02c18dc6567257fc403a 100644 (file)
@@ -39,6 +39,21 @@ macro(file_list_suffix
 
 endmacro()
 
+
+macro(target_link_libraries_optimized TARGET LIBS)
+       foreach(_LIB ${LIBS})
+               target_link_libraries(${TARGET} optimized "${_LIB}")
+       endforeach()
+       unset(_LIB)
+endmacro()
+
+macro(target_link_libraries_debug TARGET LIBS)
+       foreach(_LIB ${LIBS})
+               target_link_libraries(${TARGET} debug "${_LIB}")
+       endforeach()
+       unset(_LIB)
+endmacro()
+
 # Nicer makefiles with -I/1/foo/ instead of -I/1/2/3/../../foo/
 # use it instead of include_directories()
 macro(blender_include_dirs
@@ -202,9 +217,8 @@ macro(setup_liblinks
 
                if(WIN32 AND NOT UNIX)
                        file_list_suffix(PYTHON_LIBRARIES_DEBUG "${PYTHON_LIBRARIES}" "_d")
-                       target_link_libraries(${target}
-                                       debug ${PYTHON_LIBRARIES_DEBUG}
-                                       optimized ${PYTHON_LIBRARIES})
+                       target_link_libraries_debug(${target} "${PYTHON_LIBRARIES_DEBUG}")
+                       target_link_libraries_optimized(${target} "${PYTHON_LIBRARIES}")
                        unset(PYTHON_LIBRARIES_DEBUG)
                else()
                        target_link_libraries(${target} ${PYTHON_LIBRARIES})
@@ -257,9 +271,8 @@ macro(setup_liblinks
        if(WITH_IMAGE_OPENEXR)
                if(WIN32 AND NOT UNIX)
                        file_list_suffix(OPENEXR_LIBRARIES_DEBUG "${OPENEXR_LIBRARIES}" "_d")
-                       target_link_libraries(${target}
-                                       debug ${OPENEXR_LIBRARIES_DEBUG}
-                                       optimized ${OPENEXR_LIBRARIES})
+                       target_link_libraries_debug(${target} "${OPENEXR_LIBRARIES_DEBUG}")
+                       target_link_libraries_optimized(${target} "${OPENEXR_LIBRARIES}")
                        unset(OPENEXR_LIBRARIES_DEBUG)
                else()
                        target_link_libraries(${target} ${OPENEXR_LIBRARIES})
@@ -274,22 +287,19 @@ macro(setup_liblinks
        if(WITH_OPENCOLLADA)
                if(WIN32 AND NOT UNIX)
                        file_list_suffix(OPENCOLLADA_LIBRARIES_DEBUG "${OPENCOLLADA_LIBRARIES}" "_d")
-                       target_link_libraries(${target}
-                                       debug ${OPENCOLLADA_LIBRARIES_DEBUG}
-                                       optimized ${OPENCOLLADA_LIBRARIES})
+                       target_link_libraries_debug(${target} "${OPENCOLLADA_LIBRARIES_DEBUG}")
+                       target_link_libraries_optimized(${target} "${OPENCOLLADA_LIBRARIES}")
                        unset(OPENCOLLADA_LIBRARIES_DEBUG)
 
                        file_list_suffix(PCRE_LIB_DEBUG "${PCRE_LIB}" "_d")
-                       target_link_libraries(${target}
-                                       debug ${PCRE_LIB_DEBUG}
-                                       optimized ${PCRE_LIB})
+                       target_link_libraries_debug(${target} "${PCRE_LIB_DEBUG}")
+                       target_link_libraries_optimized(${target} "${PCRE_LIB}")
                        unset(PCRE_LIB_DEBUG)
 
                        if(EXPAT_LIB)
                                file_list_suffix(EXPAT_LIB_DEBUG "${EXPAT_LIB}" "_d")
-                               target_link_libraries(${target}
-                                               debug ${EXPAT_LIB_DEBUG}
-                                               optimized ${EXPAT_LIB})
+                               target_link_libraries_debug(${target} "${EXPAT_LIB_DEBUG}")
+                               target_link_libraries_optimized(${target} "${EXPAT_LIB}")
                                unset(EXPAT_LIB_DEBUG)
                        endif()
                else()
index e8004338271528c6175d89ab31c20f1021e1a18d..f8b3e750e7457483746d657fec0b9f4b9b11141b 100644 (file)
@@ -76,11 +76,6 @@ BF_GETTEXT_INC = '${BF_GETTEXT}/include'
 BF_GETTEXT_LIB = 'gettextpo intl'
 BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
 
-WITH_BF_FTGL = 'false'
-BF_FTGL = '#extern/bFTGL'
-BF_FTGL_INC = '${BF_FTGL}/include'
-BF_FTGL_LIB = 'extern_ftgl'
-
 WITH_BF_GAMEENGINE='false'
 
 WITH_BF_BULLET = 'true'
index e46b5269d22f643c219a5820d6631bea6ac78891..ab7b5ce7d1488b84a06a9458ac048bca9c27d311 100644 (file)
@@ -170,7 +170,7 @@ BGE_CXXFLAGS = ['/O2', '/EHsc', '/GR', '/fp:fast', '/arch:SSE']
 
 BF_DEBUG_CCFLAGS = ['/Zi', '/FR${TARGET}.sbr']
 
-CPPFLAGS = ['-DWIN32','-D_CONSOLE', '-D_LIB', '-DFTGL_LIBRARY_STATIC', '-D_CRT_SECURE_NO_DEPRECATE']
+CPPFLAGS = ['-DWIN32','-D_CONSOLE', '-D_LIB', '-D_CRT_SECURE_NO_DEPRECATE']
 REL_CFLAGS = ['-O2', '-DNDEBUG']
 REL_CCFLAGS = ['-O2', '-DNDEBUG']
 REL_CXXFLAGS = ['-O2', '-DNDEBUG']
index 45a4ea5b178eb82068de09b5b725a8b5d05b497d..3abc466d33dbfbbb3220b9128a3bd87ae3013e77 100644 (file)
@@ -172,7 +172,7 @@ BGE_CXXFLAGS = ['/O2', '/EHsc', '/GR', '/fp:fast']
 
 BF_DEBUG_CCFLAGS = ['/Zi', '/FR${TARGET}.sbr', '/Od']
 
-CPPFLAGS = ['-DWIN32', '-D_CONSOLE', '-D_LIB', '-DFTGL_LIBRARY_STATIC', '-D_CRT_SECURE_NO_DEPRECATE']
+CPPFLAGS = ['-DWIN32', '-D_CONSOLE', '-D_LIB', '-D_CRT_SECURE_NO_DEPRECATE']
 REL_CFLAGS = ['-O2', '-DNDEBUG']
 REL_CCFLAGS = ['-O2', '-DNDEBUG']
 REL_CXXFLAGS = ['-O2', '-DNDEBUG']
diff --git a/doc/python_api/examples/aud.py b/doc/python_api/examples/aud.py
new file mode 100644 (file)
index 0000000..e41e821
--- /dev/null
@@ -0,0 +1,21 @@
+"""
+Basic Sound Playback
+++++++++++++++++++++
+This script shows how to use the classes: :class:`Device`, :class:`Factory` and
+:class:`Handle`.
+"""
+import aud
+
+device = aud.device()
+# load sound file (it can be a video file with audio)
+factory = aud.Factory('music.ogg')
+
+# play the audio, this return a handle to control play/pause
+handle = device.play(sound)
+# if the audio is not too big and will be used often you can buffer it
+factory_buffered = aud.Factory.buffer(sound)
+handle_buffered = device.play(buffered)
+
+# stop the sounds (otherwise they play until their ends)
+handle.stop()
+handle_buffered.stop()
index ea179bc2130c81747e1982a521ff67517adb467f..e7db5df4a1fbdb6b217f8af2e6c228d7d38bd9b0 100644 (file)
@@ -700,6 +700,23 @@ Renamed
 2.57 to 2.58
 ============
 
+bpy_extras
+----------
+
+Added
+^^^^^
+
+* :mod:`bpy_extras`
+* :mod:`bpy_extras.view3d_utils`
+
+Moved
+^^^^^
+
+* io_utils -> :mod:`bpy_extras.io_utils`
+* image_utils -> :mod:`bpy_extras.image_utils`
+* mesh_utils -> :mod:`bpy_extras.mesh_utils`
+* object_utils -> :mod:`bpy_extras.object_utils`
+
 bpy.types.RenderSettings
 ------------------------
 
index e96b4d363b41022a0f8758cad1a1a24e4c267fd2..0112007ca7f58c574bb9660c3fa1c65fb73c05b2 100644 (file)
@@ -29,15 +29,15 @@ For HTML generation
 
     ./blender.bin --background --python doc/python_api/sphinx_doc_gen.py
 
-  This will generate python files in doc/python_api/sphinx-in/,
-  assuming that ./blender.bin is or links to the blender executable
+  This will generate python files in doc/python_api/sphinx-in/
+  providing ./blender.bin is or links to the blender executable
 
 - Generate html docs by running...
 
     cd doc/python_api
     sphinx-build sphinx-in sphinx-out
 
-  assuming that you have sphinx 1.0.7 installed
+  This requires sphinx 1.0.7 to be installed.
 
 For PDF generation
 ------------------
@@ -48,6 +48,15 @@ For PDF generation
     make
 '''
 
+# Check we're running in blender
+if __import__("sys").modules.get("bpy") is None:
+    print("\nError, this script must run from inside blender2.5")
+    print(script_help_msg)
+
+    import sys
+    sys.exit()
+
+
 # Switch for quick testing
 if 1:
     # full build
@@ -1196,72 +1205,67 @@ def rna2sphinx(BASEPATH):
 
 
 def main():
-    import bpy
-    if 'bpy' not in dir():
-        print("\nError, this script must run from inside blender2.5")
-        print(script_help_msg)
+    import shutil
+
+    script_dir = os.path.dirname(__file__)
+    path_in = os.path.join(script_dir, "sphinx-in")
+    path_out = os.path.join(script_dir, "sphinx-out")
+    path_examples = os.path.join(script_dir, "examples")
+    # only for partial updates
+    path_in_tmp = path_in + "-tmp"
+
+    if not os.path.exists(path_in):
+        os.mkdir(path_in)
+
+    for f in os.listdir(path_examples):
+        if f.endswith(".py"):
+            EXAMPLE_SET.add(os.path.splitext(f)[0])
+
+    # only for full updates
+    if _BPY_FULL_REBUILD:
+        shutil.rmtree(path_in, True)
+        shutil.rmtree(path_out, True)
     else:
-        import shutil
-
-        script_dir = os.path.dirname(__file__)
-        path_in = os.path.join(script_dir, "sphinx-in")
-        path_out = os.path.join(script_dir, "sphinx-out")
-        path_examples = os.path.join(script_dir, "examples")
-        # only for partial updates
-        path_in_tmp = path_in + "-tmp"
-
-        if not os.path.exists(path_in):
-            os.mkdir(path_in)
-
-        for f in os.listdir(path_examples):
-            if f.endswith(".py"):
-                EXAMPLE_SET.add(os.path.splitext(f)[0])
-
-        # only for full updates
-        if _BPY_FULL_REBUILD:
-            shutil.rmtree(path_in, True)
-            shutil.rmtree(path_out, True)
-        else:
-            # write here, then move
-            shutil.rmtree(path_in_tmp, True)
-
-        rna2sphinx(path_in_tmp)
-
-        if not _BPY_FULL_REBUILD:
-            import filecmp
-
-            # now move changed files from 'path_in_tmp' --> 'path_in'
-            file_list_path_in = set(os.listdir(path_in))
-            file_list_path_in_tmp = set(os.listdir(path_in_tmp))
-
-            # remove deprecated files that have been removed.
-            for f in sorted(file_list_path_in):
-                if f not in file_list_path_in_tmp:
-                    print("\tdeprecated: %s" % f)
-                    os.remove(os.path.join(path_in, f))
-
-            # freshen with new files.
-            for f in sorted(file_list_path_in_tmp):
-                f_from = os.path.join(path_in_tmp, f)
-                f_to = os.path.join(path_in, f)
-
-                do_copy = True
-                if f in file_list_path_in:
-                    if filecmp.cmp(f_from, f_to):
-                        do_copy = False
-
-                if do_copy:
-                    print("\tupdating: %s" % f)
-                    shutil.copy(f_from, f_to)
-                '''else:
-                    print("\tkeeping: %s" % f) # eh, not that useful'''
-
-        EXAMPLE_SET_UNUSED = EXAMPLE_SET - EXAMPLE_SET_USED
-        if EXAMPLE_SET_UNUSED:
-            print("\nUnused examples found in '%s'..." % path_examples)
-            for f in EXAMPLE_SET_UNUSED:
-                print("    %s.py" % f)
-            print("  %d total\n" % len(EXAMPLE_SET_UNUSED))
+        # write here, then move
+        shutil.rmtree(path_in_tmp, True)
+
+    rna2sphinx(path_in_tmp)
+
+    if not _BPY_FULL_REBUILD:
+        import filecmp
+
+        # now move changed files from 'path_in_tmp' --> 'path_in'
+        file_list_path_in = set(os.listdir(path_in))
+        file_list_path_in_tmp = set(os.listdir(path_in_tmp))
+
+        # remove deprecated files that have been removed.
+        for f in sorted(file_list_path_in):
+            if f not in file_list_path_in_tmp:
+                print("\tdeprecated: %s" % f)
+                os.remove(os.path.join(path_in, f))
+
+        # freshen with new files.
+        for f in sorted(file_list_path_in_tmp):
+            f_from = os.path.join(path_in_tmp, f)
+            f_to = os.path.join(path_in, f)
+
+            do_copy = True
+            if f in file_list_path_in:
+                if filecmp.cmp(f_from, f_to):
+                    do_copy = False
+
+            if do_copy:
+                print("\tupdating: %s" % f)
+                shutil.copy(f_from, f_to)
+            '''else:
+                print("\tkeeping: %s" % f) # eh, not that useful'''
+
+    EXAMPLE_SET_UNUSED = EXAMPLE_SET - EXAMPLE_SET_USED
+    if EXAMPLE_SET_UNUSED:
+        print("\nUnused examples found in '%s'..." % path_examples)
+        for f in EXAMPLE_SET_UNUSED:
+            print("    %s.py" % f)
+        print("  %d total\n" % len(EXAMPLE_SET_UNUSED))
 
     import sys
     sys.exit()
index 33bf9bb476c00be323e1c4f3bd1b772f7db6efec..4c36cb43e7d90cd754653aa552bf8b15f1aea7cb 100644 (file)
@@ -24,7 +24,6 @@
 #
 # ***** END GPL LICENSE BLOCK *****
 
-add_subdirectory(audaspace)
 add_subdirectory(string)
 add_subdirectory(ghost)
 add_subdirectory(guardedalloc)
@@ -35,6 +34,10 @@ add_subdirectory(opennl)
 add_subdirectory(smoke)
 add_subdirectory(mikktspace)
 
+if(WITH_AUDASPACE)
+       add_subdirectory(audaspace)
+endif()
+
 if(WITH_MOD_FLUID)
        add_subdirectory(elbeem)
 endif()
index ab819f41ac31b83271cf045607bde34784b4647d..d8edffbfe0b9d646f7402b8de1701a3d7b19cf5a 100644 (file)
@@ -40,7 +40,7 @@
 #define FFMPEG_HAVE_AVIO 1
 #endif
 
-#if (LIBAVCODEC_VERSION_MAJOR > 53) || ((LIBAVCODEC_VERSION_MAJOR == 53) && (LIBAVCODEC_VERSION_MINOR > 1)) || ((LIBAVCODEC_VERSION_MAJOR == 53) && (LIBAVCODEC_VERSION_MINOR == 1) && (LIBAVCODEC_VERSION_MICRO >= 1))
+#if (LIBAVCODEC_VERSION_MAJOR > 53) || ((LIBAVCODEC_VERSION_MAJOR == 53) && (LIBAVCODEC_VERSION_MINOR > 1)) || ((LIBAVCODEC_VERSION_MAJOR == 53) && (LIBAVCODEC_VERSION_MINOR == 1) && (LIBAVCODEC_VERSION_MICRO >= 1)) || ((LIBAVCODEC_VERSION_MAJOR == 52) && (LIBAVCODEC_VERSION_MINOR >= 122))
 #define FFMPEG_HAVE_DEFAULT_VAL_UNION 1
 #endif
 
index ab3abdd659fd158c99b339743bef233c078048a4..86f5f4cdddb1afeb5303853197880a075a130fde 100644 (file)
@@ -164,5 +164,5 @@ GHOST_TSuccess GHOST_DisplayManagerCocoa::setCurrentDisplaySetting(GHOST_TUns8 d
 
        //CGDisplayErr err = ::CGDisplaySwitchToMode(m_displayIDs[display], displayModeValues);
         
-       return /*err == CGDisplayNoErr ? GHOST_kSuccess :*/ GHOST_kFailure;
+       return /*err == CGDisplayNoErr ?*/ GHOST_kSuccess /*: GHOST_kFailure*/;
 }
index e7a8178a38259a2910a44e9b0901c3a3df280232..ce77735838934d088bff949686a3bc3fe8379d6c 100644 (file)
@@ -119,14 +119,6 @@ public:
                const GHOST_TEmbedderWindowID parentWindow = 0 
        );
        
-       virtual GHOST_TSuccess beginFullScreen(
-               const GHOST_DisplaySetting& setting, 
-               GHOST_IWindow** window,
-               const bool stereoVisual
-       );
-       
-       virtual GHOST_TSuccess endFullScreen( void );
-       
        /***************************************************************************************
         ** Event management functionality
         ***************************************************************************************/
index bf401138cf1c35585d0ac295bda2e9c7b9d9748b..69423f2dfbf83c74cbf4e89997efdcad0a87b1fc 100644 (file)
@@ -741,11 +741,13 @@ GHOST_IWindow* GHOST_SystemCocoa::createWindow(
        NSRect contentRect = [NSWindow contentRectForFrameRect:frame
                                                                                                 styleMask:(NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask)];
        
+       GHOST_TInt32 bottom = (contentRect.size.height - 1) - height - top;
+
        //Ensures window top left is inside this available rect
        left = left > contentRect.origin.x ? left : contentRect.origin.x;
-       top = top > contentRect.origin.y ? top : contentRect.origin.y;
-       
-       window = new GHOST_WindowCocoa (this, title, left, top, width, height, state, type, stereoVisual, numOfAASamples);
+       bottom = bottom > contentRect.origin.y ? bottom : contentRect.origin.y;
+
+       window = new GHOST_WindowCocoa (this, title, left, bottom, width, height, state, type, stereoVisual, numOfAASamples);
 
     if (window) {
         if (window->getValid()) {
@@ -771,26 +773,6 @@ GHOST_IWindow* GHOST_SystemCocoa::createWindow(
     return window;
 }
 
-GHOST_TSuccess GHOST_SystemCocoa::beginFullScreen(const GHOST_DisplaySetting& setting, GHOST_IWindow** window, const bool stereoVisual)
-{      
-       GHOST_IWindow* currentWindow = m_windowManager->getActiveWindow();
-       *window = currentWindow;
-       
-       if(!currentWindow) return GHOST_kFailure;
-       
-       return currentWindow->setState(GHOST_kWindowStateFullScreen);
-}
-
-GHOST_TSuccess GHOST_SystemCocoa::endFullScreen(void)
-{      
-       GHOST_IWindow* currentWindow = m_windowManager->getActiveWindow();
-       if(!currentWindow) return GHOST_kFailure;
-       
-       return currentWindow->setState(GHOST_kWindowStateNormal);
-}
-
-
-       
 /**
  * @note : returns coordinates in Cocoa screen coordinates
  */
@@ -809,7 +791,6 @@ GHOST_TSuccess GHOST_SystemCocoa::getCursorPosition(GHOST_TInt32& x, GHOST_TInt3
  */
 GHOST_TSuccess GHOST_SystemCocoa::setCursorPosition(GHOST_TInt32 x, GHOST_TInt32 y)
 {
-       GHOST_TInt32 wx,wy;
        GHOST_WindowCocoa* window = (GHOST_WindowCocoa*)m_windowManager->getActiveWindow();
        if (!window) return GHOST_kFailure;
 
@@ -820,8 +801,7 @@ GHOST_TSuccess GHOST_SystemCocoa::setCursorPosition(GHOST_TInt32 x, GHOST_TInt32
        CGAssociateMouseAndMouseCursorPosition(true);
        
        //Force mouse move event (not pushed by Cocoa)
-       window->screenToClient(x, y, wx, wy);
-       pushEvent(new GHOST_EventCursor(getMilliSeconds(), GHOST_kEventCursorMove, window, wx,wy));
+       pushEvent(new GHOST_EventCursor(getMilliSeconds(), GHOST_kEventCursorMove, window, x, y));
        m_outsideLoopEventProcessed = true;
        
        return GHOST_kSuccess;
@@ -1433,9 +1413,9 @@ GHOST_TSuccess GHOST_SystemCocoa::handleTabletEvent(void *eventPtr, short eventT
 GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
 {
        NSEvent *event = (NSEvent *)eventPtr;
-    GHOST_Window* window;
+    GHOST_WindowCocoa* window;
        
-       window = (GHOST_Window*)m_windowManager->getWindowAssociatedWithOSWindow((void*)[event window]);
+       window = (GHOST_WindowCocoa*)m_windowManager->getWindowAssociatedWithOSWindow((void*)[event window]);
        if (!window) {
                //printf("\nW failure for event 0x%x",[event type]);
                return GHOST_kFailure;
@@ -1499,7 +1479,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
                                switch (window->getCursorGrabMode()) {
                                        case GHOST_kGrabHide: //Cursor hidden grab operation : no cursor move
                                        {
-                                               GHOST_TInt32 x_warp, y_warp, x_accum, y_accum;
+                                               GHOST_TInt32 x_warp, y_warp, x_accum, y_accum, x, y;
                                                
                                                window->getCursorGrabInitPos(x_warp, y_warp);
                                                
@@ -1508,7 +1488,8 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
                                                y_accum += -[event deltaY]; //Strange Apple implementation (inverted coordinates for the deltaY) ...
                                                window->setCursorGrabAccum(x_accum, y_accum);
                                                
-                                               pushEvent(new GHOST_EventCursor([event timestamp]*1000, GHOST_kEventCursorMove, window, x_warp+x_accum, y_warp+y_accum));
+                                               window->clientToScreenIntern(x_warp+x_accum, y_warp+y_accum, x, y);
+                                               pushEvent(new GHOST_EventCursor([event timestamp]*1000, GHOST_kEventCursorMove, window, x, y));
                                        }
                                                break;
                                        case GHOST_kGrabWrap: //Wrap cursor at area/window boundaries
@@ -1516,19 +1497,16 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
                                                NSPoint mousePos = [event locationInWindow];
                                                GHOST_TInt32 x_mouse= mousePos.x;
                                                GHOST_TInt32 y_mouse= mousePos.y;
-                                               GHOST_TInt32 x_accum, y_accum, x_cur, y_cur;
-                                               GHOST_Rect bounds, windowBounds, correctedBounds;
+                                               GHOST_TInt32 x_accum, y_accum, x_cur, y_cur, x, y;
+                                               GHOST_Rect bounds, correctedBounds;
                                                
                                                /* fallback to window bounds */
                                                if(window->getCursorGrabBounds(bounds)==GHOST_kFailure)
                                                        window->getClientBounds(bounds);
                                                
                                                //Switch back to Cocoa coordinates orientation (y=0 at botton,the same as blender internal btw!), and to client coordinates
-                                               window->getClientBounds(windowBounds);
-                                               window->screenToClient(bounds.m_l,bounds.m_b, correctedBounds.m_l, correctedBounds.m_t);
-                                               window->screenToClient(bounds.m_r, bounds.m_t, correctedBounds.m_r, correctedBounds.m_b);
-                                               correctedBounds.m_b = (windowBounds.m_b - windowBounds.m_t) - correctedBounds.m_b;
-                                               correctedBounds.m_t = (windowBounds.m_b - windowBounds.m_t) - correctedBounds.m_t;
+                                               window->screenToClient(bounds.m_l, bounds.m_b, correctedBounds.m_l, correctedBounds.m_b);
+                                               window->screenToClient(bounds.m_r, bounds.m_t, correctedBounds.m_r, correctedBounds.m_t);
                                                
                                                //Update accumulation counts
                                                window->getCursorGrabAccum(x_accum, y_accum);
@@ -1547,19 +1525,24 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
                                                m_cursorDelta_y = y_mouse-mousePos.y;
                                                
                                                //Set new cursor position
-                                               window->clientToScreen(x_mouse, y_mouse, x_cur, y_cur);
+                                               window->clientToScreenIntern(x_mouse, y_mouse, x_cur, y_cur);
                                                setMouseCursorPosition(x_cur, y_cur); /* wrap */
                                                
                                                //Post event
                                                window->getCursorGrabInitPos(x_cur, y_cur);
-                                               pushEvent(new GHOST_EventCursor([event timestamp]*1000, GHOST_kEventCursorMove, window, x_cur + x_accum, y_cur + y_accum));
+                                               window->clientToScreenIntern(x_cur + x_accum, y_cur + y_accum, x, y);
+                                               pushEvent(new GHOST_EventCursor([event timestamp]*1000, GHOST_kEventCursorMove, window, x, y));
                                        }
                                                break;
                                        default:
                                        {
                                                //Normal cursor operation: send mouse position in window
                                                NSPoint mousePos = [event locationInWindow];
-                                               pushEvent(new GHOST_EventCursor([event timestamp]*1000, GHOST_kEventCursorMove, window, mousePos.x, mousePos.y));
+                                               GHOST_TInt32 x, y;
+
+                                               window->clientToScreenIntern(mousePos.x, mousePos.y, x, y);
+                                               pushEvent(new GHOST_EventCursor([event timestamp]*1000, GHOST_kEventCursorMove, window, x, y));
+
                                                m_cursorDelta_x=0;
                                                m_cursorDelta_y=0; //Mouse motion occurred between two cursor warps, so we can reset the delta counter
                                        }
@@ -1581,6 +1564,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
                                }
                                else {
                                        NSPoint mousePos = [event locationInWindow];
+                                       GHOST_TInt32 x, y;
                                        double dx = [event deltaX];
                                        double dy = -[event deltaY];
                                        
@@ -1597,7 +1581,10 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
                                        if (dy<0.0) dy-=0.5; else dy+=0.5;
                                        if (dy< -deltaMax) dy= -deltaMax; else if (dy>deltaMax) dy=deltaMax;
 
-                                       pushEvent(new GHOST_EventTrackpad([event timestamp]*1000, window, GHOST_kTrackpadEventScroll, mousePos.x, mousePos.y, dx, dy));
+                                       window->clientToScreenIntern(mousePos.x, mousePos.y, x, y);
+                                       dy = -dy;
+
+                                       pushEvent(new GHOST_EventTrackpad([event timestamp]*1000, window, GHOST_kTrackpadEventScroll, x, y, dx, dy));
                                }
                        }
                        break;
@@ -1605,7 +1592,9 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
                case NSEventTypeMagnify:
                        {
                                NSPoint mousePos = [event locationInWindow];
-                               pushEvent(new GHOST_EventTrackpad([event timestamp]*1000, window, GHOST_kTrackpadEventMagnify, mousePos.x, mousePos.y,
+                               GHOST_TInt32 x, y;
+                               window->clientToScreenIntern(mousePos.x, mousePos.y, x, y);
+                               pushEvent(new GHOST_EventTrackpad([event timestamp]*1000, window, GHOST_kTrackpadEventMagnify, x, y,
                                                                                                  [event magnification]*250.0 + 0.1, 0));
                        }
                        break;
@@ -1613,7 +1602,9 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
                case NSEventTypeRotate:
                        {
                                NSPoint mousePos = [event locationInWindow];
-                               pushEvent(new GHOST_EventTrackpad([event timestamp]*1000, window, GHOST_kTrackpadEventRotate, mousePos.x, mousePos.y,
+                               GHOST_TInt32 x, y;
+                               window->clientToScreenIntern(mousePos.x, mousePos.y, x, y);
+                               pushEvent(new GHOST_EventTrackpad([event timestamp]*1000, window, GHOST_kTrackpadEventRotate, x, y,
                                                                                                  -[event rotation] * 5.0, 0));
                        }
                case NSEventTypeBeginGesture:
index c518272d614cd1a30327ae8818e17d492517d69a..e34bfe7ff263bd8e3d7ce71778b024e6ca5390de 100644 (file)
@@ -41,8 +41,7 @@
 
 
 GHOST_Window::GHOST_Window(
-       const STR_String& /*title*/,
-       GHOST_TInt32 /*left*/, GHOST_TInt32 /*top*/, GHOST_TUns32 width, GHOST_TUns32 height,
+       GHOST_TUns32 width, GHOST_TUns32 height,
        GHOST_TWindowState state,
        GHOST_TDrawingContextType type,
        const bool stereoVisual,
index e0c676f53a579cbb0742f05cc7bd0a178b7a2187..66990abb555ea2b7e9f05907ff77c25ac2e53695 100644 (file)
@@ -76,9 +76,6 @@ public:
         * Constructor.
         * Creates a new window and opens it.
         * To check if the window was created properly, use the getValid() method.
-        * @param title                         The text shown in the title bar of the window.
-        * @param left                          The coordinate of the left edge of the window.
-        * @param top                           The coordinate of the top edge of the window.
         * @param width                         The width the window.
         * @param heigh                         The height the window.
         * @param state                         The state the window is initially opened with.
@@ -87,9 +84,6 @@ public:
         * @param numOfAASamples        Number of samples used for AA (zero if no AA)
         */
        GHOST_Window(
-               const STR_String& title, 
-               GHOST_TInt32 left,
-               GHOST_TInt32 top,
                GHOST_TUns32 width,
                GHOST_TUns32 height,
                GHOST_TWindowState state,
index 1ffd117d65880e5de213e57dcbbac7a3ed2bae65..c8bd67f9a5c66269829bd36ad4b34253d4f5aa2c 100644 (file)
@@ -102,7 +102,7 @@ GHOST_WindowCarbon::GHOST_WindowCarbon(
        const bool stereoVisual,
        const GHOST_TUns16 numOfAASamples
 ) :
-       GHOST_Window(title, left, top, width, height, state, GHOST_kDrawingContextTypeNone),
+       GHOST_Window(width, height, state, GHOST_kDrawingContextTypeNone),
        m_windowRef(0),
        m_grafPtr(0),
        m_aglCtx(0),
index 98e0f9cedd173a34f4ca6edea2add113ed3ebce4..ce28f8c453856b4a4e8cba9b0567b4f241b5c98e 100644 (file)
@@ -42,6 +42,7 @@
 #include "STR_String.h"
 
 @class CocoaWindow;
+@class CocoaOpenGLView;
 
 class GHOST_SystemCocoa;
 
@@ -77,7 +78,7 @@ public:
                GHOST_SystemCocoa *systemCocoa,
                const STR_String& title,
                GHOST_TInt32 left,
-               GHOST_TInt32 top,
+               GHOST_TInt32 bottom,
                GHOST_TUns32 width,
                GHOST_TUns32 height,
                GHOST_TWindowState state,
@@ -180,6 +181,26 @@ public:
         */
        virtual void clientToScreen(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
 
+       /**
+        * Converts a point in screen coordinates to client rectangle coordinates
+        * but without the y coordinate conversion needed for ghost compatibility.
+        * @param inX   The x-coordinate in the client rectangle.
+        * @param inY   The y-coordinate in the client rectangle.
+        * @param outX  The x-coordinate on the screen.
+        * @param outY  The y-coordinate on the screen.
+        */
+       void clientToScreenIntern(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
+
+       /**
+        * Converts a point in screen coordinates to client rectangle coordinates,
+        * but without the y coordinate conversion needed for ghost compatibility.
+        * @param inX   The x-coordinate in the client rectangle.
+        * @param inY   The y-coordinate in the client rectangle.
+        * @param outX  The x-coordinate on the screen.
+        * @param outY  The y-coordinate on the screen.
+        */
+       void screenToClientIntern(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
+
        /**
         * Gets the screen the window is displayed in
         * @return The NSScreen object
@@ -289,7 +310,7 @@ protected:
     CocoaWindow *m_window;
        
        /** The openGL view */
-       NSOpenGLView *m_openGLView; 
+       CocoaOpenGLView *m_openGLView; 
     
        /** The opgnGL drawing context */
        NSOpenGLContext *m_openGLContext;
index fb7d4a459c7497c3ef170d8f25da0c237783131b..937dffe9fba0e2ff3cf9da65e6e50737f105af83 100644 (file)
@@ -241,10 +241,19 @@ extern "C" {
 //We need to subclass it in order to give Cocoa the feeling key events are trapped
 @interface CocoaOpenGLView : NSOpenGLView
 {
+       GHOST_SystemCocoa *systemCocoa;
+       GHOST_WindowCocoa *associatedWindow;
 }
+- (void)setSystemAndWindowCocoa:(GHOST_SystemCocoa *)sysCocoa windowCocoa:(GHOST_WindowCocoa *)winCocoa;
 @end
 @implementation CocoaOpenGLView
 
+- (void)setSystemAndWindowCocoa:(GHOST_SystemCocoa *)sysCocoa windowCocoa:(GHOST_WindowCocoa *)winCocoa
+{
+       systemCocoa = sysCocoa;
+       associatedWindow = winCocoa;
+}
+
 - (BOOL)acceptsFirstResponder
 {
     return YES;
@@ -294,6 +303,7 @@ extern "C" {
     else
     {
         [super drawRect:rect];
+        systemCocoa->handleWindowEvent(GHOST_kEventWindowUpdate, associatedWindow);
     }
 }
 
@@ -308,14 +318,14 @@ GHOST_WindowCocoa::GHOST_WindowCocoa(
        GHOST_SystemCocoa *systemCocoa,
        const STR_String& title,
        GHOST_TInt32 left,
-       GHOST_TInt32 top,
+       GHOST_TInt32 bottom,
        GHOST_TUns32 width,
        GHOST_TUns32 height,
        GHOST_TWindowState state,
        GHOST_TDrawingContextType type,
        const bool stereoVisual, const GHOST_TUns16 numOfAASamples
 ) :
-       GHOST_Window(title, left, top, width, height, state, GHOST_kDrawingContextTypeNone, stereoVisual, numOfAASamples),
+       GHOST_Window(width, height, state, GHOST_kDrawingContextTypeNone, stereoVisual, numOfAASamples),
        m_customCursor(0)
 {
        NSOpenGLPixelFormatAttribute pixelFormatAttrsWindow[40];
@@ -327,13 +337,12 @@ GHOST_WindowCocoa::GHOST_WindowCocoa(
        
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
        
-
        //Creates the window
        NSRect rect;
        NSSize  minSize;
        
        rect.origin.x = left;
-       rect.origin.y = top;
+       rect.origin.y = bottom;
        rect.size.width = width;
        rect.size.height = height;
        
@@ -425,6 +434,8 @@ GHOST_WindowCocoa::GHOST_WindowCocoa(
        //Creates the OpenGL View inside the window
        m_openGLView = [[CocoaOpenGLView alloc] initWithFrame:rect
                                                                                                 pixelFormat:pixelFormat];
+
+       [m_openGLView setSystemAndWindowCocoa:systemCocoa windowCocoa:this];
        
        [pixelFormat release];
        
@@ -692,7 +703,30 @@ GHOST_TWindowState GHOST_WindowCocoa::getState() const
 void GHOST_WindowCocoa::screenToClient(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const
 {
        GHOST_ASSERT(getValid(), "GHOST_WindowCocoa::screenToClient(): window invalid")
-       
+
+       screenToClientIntern(inX, inY, outX, outY);
+
+       /* switch y to match ghost convention */
+       GHOST_Rect cBnds;
+       getClientBounds(cBnds);
+       outY = (cBnds.getHeight() - 1) - outY;
+}
+
+
+void GHOST_WindowCocoa::clientToScreen(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const
+{
+       GHOST_ASSERT(getValid(), "GHOST_WindowCocoa::clientToScreen(): window invalid")
+
+       /* switch y to match ghost convention */
+       GHOST_Rect cBnds;
+       getClientBounds(cBnds);
+       inY = (cBnds.getHeight() - 1) - inY;
+
+       clientToScreenIntern(inX, inY, outX, outY);
+}
+
+void GHOST_WindowCocoa::screenToClientIntern(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const
+{
        NSPoint screenCoord;
        NSPoint baseCoord;
        
@@ -705,11 +739,8 @@ void GHOST_WindowCocoa::screenToClient(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST
        outY = baseCoord.y;
 }
 
-
-void GHOST_WindowCocoa::clientToScreen(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const
+void GHOST_WindowCocoa::clientToScreenIntern(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const
 {
-       GHOST_ASSERT(getValid(), "GHOST_WindowCocoa::clientToScreen(): window invalid")
-       
        NSPoint screenCoord;
        NSPoint baseCoord;
        
@@ -1211,7 +1242,7 @@ GHOST_TSuccess GHOST_WindowCocoa::setWindowCursorGrab(GHOST_TGrabCursorMode mode
                        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 
                        m_systemCocoa->getCursorPosition(x_old,y_old);
-                       screenToClient(x_old, y_old, m_cursorGrabInitPos[0], m_cursorGrabInitPos[1]);
+                       screenToClientIntern(x_old, y_old, m_cursorGrabInitPos[0], m_cursorGrabInitPos[1]);
                        //Warp position is stored in client (window base) coordinates
                        setCursorGrabAccum(0, 0);
                        
index aae1509fda15ec3d5aeb9526a3ce810e7bef3002..1ba51376ff92a54837bb111bfe28dffb705990a3 100644 (file)
@@ -136,7 +136,7 @@ GHOST_WindowWin32::GHOST_WindowWin32(
        GHOST_TSuccess msEnabled,
        int msPixelFormat)
 :
-       GHOST_Window(title, left, top, width, height, state, GHOST_kDrawingContextTypeNone,
+       GHOST_Window(width, height, state, GHOST_kDrawingContextTypeNone,
        stereoVisual,numOfAASamples),
        m_system(system),
        m_hDC(0),
index fc72ea09f4072a32b36dd4fff0fb27bf95222e07..de7251516079b134faaf33bf0caf87708a38019d 100644 (file)
@@ -164,7 +164,7 @@ GHOST_WindowX11(
        const bool stereoVisual,
        const GHOST_TUns16 numOfAASamples
 ) :
-       GHOST_Window(title,left,top,width,height,state,type,stereoVisual,numOfAASamples),
+       GHOST_Window(width,height,state,type,stereoVisual,numOfAASamples),
        m_context(NULL),
        m_display(display),
        m_normal_state(GHOST_kWindowStateNormal),
index 237edfd4594e67d41a0bccd10646a3d7dcba0ed1..df4fbc8fadd5b922dd4e3dcd2522eb5e444c8b04 100644 (file)
@@ -905,9 +905,6 @@ void IK_QElbowSegment::SetLimit(int axis, MT_Scalar lmin, MT_Scalar lmax)
        lmin = MT_clamp(lmin, -MT_PI, MT_PI);
        lmax = MT_clamp(lmax, -MT_PI, MT_PI);
 
-       lmin = lmin;
-       lmax = lmax;
-
        if (axis == 1) {
                m_min_twist = lmin;
                m_max_twist = lmax;
index a4a440f8e0552fa3169de8c83da739acc698ec87..91b6e914a403bebaa21ac40a55b72e90b09d85b9 100644 (file)
@@ -134,6 +134,7 @@ bool ConstraintSet::setControlParameter(int id, ConstraintAction action, double
                break;
        default:
                assert(action==ACT_NONE);
+               break;
        }
        return setControlParameters(&values, 1, timestep);
 }
index c70b90719856dc50de1b7bdd58911585d66bbea6..3e1ce621ec25c5a04c595eb5d9c3db800e593bf5 100644 (file)
@@ -812,21 +812,25 @@ def main(context, island_margin, projection_limit):
     global RotMatStepRotation
     main_consts()
 
-#XXX objects= bpy.data.scenes.active.objects
-    objects = context.selected_editable_objects
-
+    # TODO, all selected meshes
+    '''
+    # objects = context.selected_editable_objects
+    objects = []
 
     # we can will tag them later.
     obList =  [ob for ob in objects if ob.type == 'MESH']
 
     # Face select object may not be selected.
-#XXX   ob = objects.active
-    ob= objects[0]
+    ob = context.active_object
 
     if ob and (not ob.select) and ob.type == 'MESH':
         # Add to the list
         obList =[ob]
     del objects
+    '''
+    
+    # quick workaround
+    obList =  [ob for ob in [context.active_object] if ob and ob.type == 'MESH']
 
     if not obList:
         raise('error, no selected mesh objects')
index fcc30ecbb4b4a18f585da8755a49cccb7b08c0a4..af33e45668c19933b84a5e1f0a50cc2172f44314 100644 (file)
@@ -19,7 +19,9 @@
 # <pep8 compliant>
 
 import bpy
-from bpy.props import StringProperty, BoolProperty, IntProperty, FloatProperty
+from bpy.props import StringProperty, BoolProperty, IntProperty, \
+                      FloatProperty, EnumProperty
+
 from rna_prop_ui import rna_idprop_ui_prop_get, rna_idprop_ui_prop_clear
 
 
@@ -457,15 +459,76 @@ doc_id = StringProperty(name="Doc ID",
 doc_new = StringProperty(name="Edit Description",
         description="", maxlen=1024, default="")
 
+data_path_iter = StringProperty(
+        description="The data path relative to the context, must point to an iterable.")
+
+data_path_item = StringProperty(
+        description="The data path from each iterable to the value (int or float)")
+
+
+class WM_OT_context_collection_boolean_set(bpy.types.Operator):
+    '''Set boolean values for a collection of items'''
+    bl_idname = "wm.context_collection_boolean_set"
+    bl_label = "Context Collection Boolean Set"
+    bl_options = {'UNDO', 'REGISTER', 'INTERNAL'}
+
+    data_path_iter = data_path_iter
+    data_path_item = data_path_item
+
+    type = EnumProperty(items=(
+            ('TOGGLE', "Toggle", ""),
+            ('ENABLE', "Enable", ""),
+            ('DISABLE', "Disable", ""),
+            ),
+        name="Type")
+
+    def execute(self, context):
+        data_path_iter = self.data_path_iter
+        data_path_item = self.data_path_item
+
+        items = list(getattr(context, data_path_iter))
+        items_ok = []
+        is_set = False
+        for item in items:
+            try:
+                value_orig = eval("item." + data_path_item)
+            except:
+                continue
+
+            if value_orig == True:
+                is_set = True
+            elif value_orig == False:
+                pass
+            else:
+                self.report({'WARNING'}, "Non boolean value found: %s[ ].%s" %
+                            (data_path_iter, data_path_item))
+                return {'CANCELLED'}
+
+            items_ok.append(item)
+
+        if self.type == 'ENABLE':
+            is_set = True
+        elif self.type == 'DISABLE':
+            is_set = False
+        else:
+            is_set = not is_set
+
+        exec_str = "item.%s = %s" % (data_path_item, is_set)
+        for item in items_ok:
+            exec(exec_str)
+
+        return {'FINISHED'}
+
 
 class WM_OT_context_modal_mouse(bpy.types.Operator):
     '''Adjust arbitrary values with mouse input'''
     bl_idname = "wm.context_modal_mouse"
     bl_label = "Context Modal Mouse"
-    bl_options = {'INTERNAL'}
+    bl_options = {'GRAB_POINTER', 'BLOCKING', 'INTERNAL'}
+
+    data_path_iter = data_path_iter
+    data_path_item = data_path_item
 
-    data_path_iter = StringProperty(description="The data path relative to the context, must point to an iterable.")
-    data_path_item = StringProperty(description="The data path from each iterable to the value (int or float)")
     input_scale = FloatProperty(default=0.01, description="Scale the mouse movement by this value before applying the delta")
     invert = BoolProperty(default=False, description="Invert the mouse input")
     initial_x = IntProperty(options={'HIDDEN'})
index 52d6b5f1376e257e10cfacdbd1b469349868c6fd..31da9598641d93a9e775cea3d9ab751cbd68e4b2 100644 (file)
@@ -883,7 +883,7 @@ class MATERIAL_PT_volume_lighting(VolumeButtonsPanel, bpy.types.Panel):
             sub = col.column()
             sub.enabled = True
             sub.active = False
-            sub.prop(vol, "use_light_cache")
+            sub.label("Light Cache Enabled")
             col.prop(vol, "cache_resolution")
 
             sub = col.column(align=True)
index 63333083cb2129d904ff5d362b6d45be2b7770ca..7d4b78396bdfd0e45b8a34c60955f5c823947f4b 100644 (file)
@@ -878,6 +878,15 @@ class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel):
             col.prop(part, "billboard_tilt_random", text="Random", slider=True)
             col = row.column()
             col.prop(part, "billboard_offset")
+            
+            row = layout.row()
+            col = row.column()
+            col.prop(part, "billboard_size", text="Scale")
+            if part.billboard_align == 'VEL':
+                col = row.column(align=True)
+                col.label("Velocity Scale:")
+                col.prop(part, "billboard_velocity_head", text="Head")
+                col.prop(part, "billboard_velocity_tail", text="Tail")
 
             if psys:
                 col = layout.column()
index 7804a1a3c93560df2c1cc6052635cdb2c4b1a5d5..b9ac740eb5b21f50b3f7e232b903eb8fdcf01f25 100644 (file)
@@ -849,7 +849,7 @@ class USERPREF_PT_input(bpy.types.Panel, InputKeyMapPanel):
 
 
 class USERPREF_MT_addons_dev_guides(bpy.types.Menu):
-    bl_label = "Develoment Guides"
+    bl_label = "Development Guides"
 
     # menu to open webpages with addons development guides
     def draw(self, context):
index ac41e689277672a1f031590d47212d780e90efe3..0096549bc8f47bb3ebedc370265405ff0abca293 100644 (file)
@@ -774,10 +774,16 @@ class VIEW3D_MT_object_specials(bpy.types.Menu):
         if obj.type == 'CAMERA':
             layout.operator_context = 'INVOKE_REGION_WIN'
 
-            props = layout.operator("wm.context_modal_mouse", text="Camera Lens Angle")
-            props.data_path_iter = "selected_editable_objects"
-            props.data_path_item = "data.lens"
-            props.input_scale = 0.1
+            if obj.data.type == 'PERSP':
+                props = layout.operator("wm.context_modal_mouse", text="Camera Lens Angle")
+                props.data_path_iter = "selected_editable_objects"
+                props.data_path_item = "data.lens"
+                props.input_scale = 0.1
+            else:
+                props = layout.operator("wm.context_modal_mouse", text="Camera Lens Scale")
+                props.data_path_iter = "selected_editable_objects"
+                props.data_path_item = "data.ortho_scale"
+                props.input_scale = 0.01
 
             if not obj.data.dof_object:
                 #layout.label(text="Test Has DOF obj");
@@ -1100,17 +1106,18 @@ class VIEW3D_MT_sculpt(bpy.types.Menu):
         layout.operator_menu_enum("brush.curve_preset", "shape")
         layout.separator()
 
-        sculpt_tool = brush.sculpt_tool
+        if brush is not None:  # unlikely but can happen
+            sculpt_tool = brush.sculpt_tool
 
-        if sculpt_tool != 'GRAB':
-            layout.prop_menu_enum(brush, "stroke_method")
+            if sculpt_tool != 'GRAB':
+                layout.prop_menu_enum(brush, "stroke_method")
 
-            if sculpt_tool in {'DRAW', 'PINCH', 'INFLATE', 'LAYER', 'CLAY'}:
-                layout.prop_menu_enum(brush, "direction")
+                if sculpt_tool in {'DRAW', 'PINCH', 'INFLATE', 'LAYER', 'CLAY'}:
+                    layout.prop_menu_enum(brush, "direction")
 
-            if sculpt_tool == 'LAYER':
-                layout.prop(brush, "use_persistent")
-                layout.operator("sculpt.set_persistent_base")
+                if sculpt_tool == 'LAYER':
+                    layout.prop(brush, "use_persistent")
+                    layout.operator("sculpt.set_persistent_base")
 
         layout.separator()
         layout.prop(sculpt, "use_threaded", text="Threaded Sculpt")
@@ -1245,7 +1252,7 @@ class VIEW3D_MT_pose(bpy.types.Menu):
         layout.separator()
 
         layout.menu("VIEW3D_MT_pose_showhide")
-        layout.operator_menu_enum("pose.flags_set", 'mode', text="Bone Settings")
+        layout.menu("VIEW3D_MT_bone_options_toggle", text="Bone Settings")
 
 
 class VIEW3D_MT_pose_transform(bpy.types.Menu):
@@ -1366,6 +1373,49 @@ class VIEW3D_MT_pose_apply(bpy.types.Menu):
         layout.operator("pose.visual_transform_apply")
 
 
+class BoneOptions:
+    def draw(self, context):
+        layout = self.layout
+
+        options = [
+            "show_wire",
+            "use_deform",
+            "use_envelope_multiply",
+            "use_inherit_rotation",
+            "use_inherit_scale",
+        ]
+
+        if context.mode == 'EDIT_ARMATURE':
+            bone_props = bpy.types.EditBone.bl_rna.properties
+            data_path_iter = "selected_bones"
+            opt_suffix = ""
+            options.append("lock")
+        else:  # posemode
+            bone_props = bpy.types.Bone.bl_rna.properties
+            data_path_iter = "selected_pose_bones"
+            opt_suffix = "bone."
+
+        for opt in options:
+            props = layout.operator("wm.context_collection_boolean_set", text=bone_props[opt].name)
+            props.data_path_iter = data_path_iter
+            props.data_path_item = opt_suffix + opt
+            props.type = self.type
+
+
+class VIEW3D_MT_bone_options_toggle(bpy.types.Menu, BoneOptions):
+    bl_label = "Toggle Bone Options"
+    type = 'TOGGLE'
+
+
+class VIEW3D_MT_bone_options_enable(bpy.types.Menu, BoneOptions):
+    bl_label = "Enable Bone Options"
+    type = 'ENABLE'
+
+
+class VIEW3D_MT_bone_options_disable(bpy.types.Menu, BoneOptions):
+    bl_label = "Disable Bone Options"
+    type = 'DISABLE'
+
 # ********** Edit Menus, suffix from ob.type **********
 
 
@@ -1959,7 +2009,7 @@ class VIEW3D_MT_edit_armature(bpy.types.Menu):
 
         layout.separator()
 
-        layout.operator_menu_enum("armature.flags_set", "mode", text="Bone Settings")
+        layout.menu("VIEW3D_MT_bone_options_toggle", text="Bone Settings")
 
 
 class VIEW3D_MT_armature_specials(bpy.types.Menu):
index 503a1d806ac698d1075663df59f9e352c47a6750..52eb76d071032d303663c89123b061ffb5269af2 100644 (file)
@@ -997,7 +997,11 @@ class VIEW3D_PT_tools_brush_appearance(PaintPanel, bpy.types.Panel):
 
     @classmethod
     def poll(cls, context):
-        return (context.sculpt_object and context.tool_settings.sculpt) or (context.vertex_paint_object and context.tool_settings.vertex_paint) or (context.weight_paint_object and context.tool_settings.weight_paint) or (context.image_paint_object and context.tool_settings.image_paint)
+        ts = context.tool_settings
+        return ((context.sculpt_object and ts.sculpt) or
+                (context.vertex_paint_object and ts.vertex_paint) or
+                (context.weight_paint_object and ts.weight_paint) or
+                (context.image_paint_object and ts.image_paint))
 
     def draw(self, context):
         layout = self.layout
@@ -1005,6 +1009,10 @@ class VIEW3D_PT_tools_brush_appearance(PaintPanel, bpy.types.Panel):
         settings = __class__.paint_settings(context)
         brush = settings.brush
 
+        if brush is None:  # unlikely but can happen
+            layout.label(text="Brush Unset")
+            return
+
         col = layout.column()
 
         if context.sculpt_object and context.tool_settings.sculpt:
index 4ea5db933505a103e30c7c4684dad3a4d1b95b14..7c11f9e964e7d31f135df32dfd106bbe40ad1e34 100644 (file)
@@ -44,7 +44,7 @@ extern "C" {
  * and keep comment above the defines.
  * Use STRINGIFY() rather than defining with quotes */
 #define BLENDER_VERSION                        258
-#define BLENDER_SUBVERSION             0
+#define BLENDER_SUBVERSION             1
 
 #define BLENDER_MINVERSION             250
 #define BLENDER_MINSUBVERSION  0
index feeab98ad78c272efafd566d9ced9b5df492eadf..5b565223ece06588961dd3b8446bffed48a3221e 100644 (file)
@@ -147,7 +147,8 @@ typedef struct ParticleBillboardData
        struct Object *ob;
        float vec[3], vel[3];
        float offset[2];
-       float size, tilt, random, time;
+       float size[2];
+       float tilt, random, time;
        int uv[3];
        int lock, num;
        int totnum;
index e050d8a6d9e739244c0562344ce6d93cc489078f..ee6b3d7aa3bee84764762b1473a40e00bc71d2d0 100644 (file)
@@ -43,8 +43,6 @@ set(INC
        ../nodes
        ../editors/include
        ../render/extern/include
-       ../../../intern/audaspace/intern
-       ../../../intern/ffmpeg
        ../../../intern/bsp/extern ../blenfont
        ../../../intern/decimation/extern
        ../../../intern/elbeem/extern
@@ -243,6 +241,13 @@ set(SRC
 
 add_definitions(-DGLEW_STATIC)
 
+if(WITH_AUDASPACE)
+       list(APPEND INC
+               ../../../intern/audaspace/intern
+       )
+       add_definitions(-DWITH_AUDASPACE)
+endif()
+
 if(WITH_BULLET)
        list(APPEND INC ../../../extern/bullet2/src)
        add_definitions(-DUSE_BULLET)
@@ -284,6 +289,7 @@ if(WITH_CODEC_QUICKTIME)
 endif()
 
 if(WITH_CODEC_FFMPEG)
+       list(APPEND INC ../../../intern/ffmpeg)
        list(APPEND INC_SYS ${FFMPEG_INCLUDE_DIRS})
        add_definitions(-DWITH_FFMPEG)
 endif()
index 0f545ad3ff904b59274992865fd60eef1dca2337..8b4bbbd3c834ddb203978eefb3208fb747980e6d 100644 (file)
@@ -64,6 +64,7 @@
 #include "BLI_dynstr.h"
 #include "BLI_path_util.h"
 #include "BLI_utildefines.h"
+#include "BLI_callbacks.h"
 
 #include "IMB_imbuf.h"
 
@@ -96,7 +97,7 @@ UserDef U;
 /* ListBase = {NULL, NULL}; */
 short ENDIAN_ORDER;
 
-static char versionstr[48]= "";
+char versionstr[48]= "";
 
 /* ********** free ********** */
 
@@ -110,6 +111,9 @@ void free_blender(void)
        BKE_spacetypes_free();          /* after free main, it uses space callbacks */
        
        IMB_exit();
+
+       BLI_cb_finalize();
+
        seq_stripelem_cache_destruct();
        
        free_nodesystem();      
@@ -129,9 +133,9 @@ void initglobals(void)
        ENDIAN_ORDER= (((char*)&ENDIAN_ORDER)[0])? L_ENDIAN: B_ENDIAN;
 
        if(BLENDER_SUBVERSION)
-               BLI_snprintf(versionstr, sizeof(versionstr), "www.blender.org %d.%d", BLENDER_VERSION, BLENDER_SUBVERSION);
+               BLI_snprintf(versionstr, sizeof(versionstr), "blender.org %d.%d", BLENDER_VERSION, BLENDER_SUBVERSION);
        else
-               BLI_snprintf(versionstr, sizeof(versionstr), "www.blender.org %d", BLENDER_VERSION);
+               BLI_snprintf(versionstr, sizeof(versionstr), "blender.org %d", BLENDER_VERSION);
 
 #ifdef _WIN32  // FULLSCREEN
        G.windowstate = G_WINDOWSTATE_USERDEF;
index a4ceb62ab55dcbf2247afc76b88d0a16c9879b39..c497cd2813a84354cce302ff48e42c33cf1ee6b7 100644 (file)
@@ -235,8 +235,6 @@ void make_local_brush(Brush *brush)
                        if(paint_brush(&scene->toolsettings->imapaint.paint)==brush) {
                                if(scene->id.lib==NULL) {
                                        paint_brush_set(&scene->toolsettings->imapaint.paint, brushn);
-                                       brushn->id.us++;
-                                       brush->id.us--;
                                }
                        }
                }
index cc45abb5998b61f9cf099d326789483be3f4906d..c3aeb4409387d4cac5b48099c11781a938d5760e 100644 (file)
@@ -719,7 +719,7 @@ void free_bvhtree_from_mesh(struct BVHTreeFromMesh *data)
                if(!data->cached)
                        BLI_bvhtree_free(data->tree);
 
-               memset( data, 0, sizeof(data) );
+               memset( data, 0, sizeof(*data) );
        }
 }
 
index 5be492d1108624e6ba751b561ca5592ba09e9b28..d00eb6192da6e59ad65f0841a716f9964c10ad5b 100644 (file)
@@ -85,8 +85,11 @@ Brush *paint_brush(Paint *p)
 
 void paint_brush_set(Paint *p, Brush *br)
 {
-       if(p)
+       if(p) {
+               id_us_min((ID *)p->brush);
+               id_us_plus((ID *)br);
                p->brush= br;
+       }
 }
 
 int paint_facesel_test(Object *ob)
@@ -110,12 +113,17 @@ void paint_init(Paint *p, const char col[3])
        p->flags |= PAINT_SHOW_BRUSH;
 }
 
-void free_paint(Paint *UNUSED(paint))
+void free_paint(Paint *paint)
 {
-       /* nothing */
+       id_us_min((ID *)paint->brush);
 }
 
+/* called when copying scene settings, so even if 'src' and 'tar' are the same
+ * still do a id_us_plus(), rather then if we were copying betweem 2 existing
+ * scenes where a matching value should decrease the existing user count as
+ * with paint_brush_set() */
 void copy_paint(Paint *src, Paint *tar)
 {
        tar->brush= src->brush;
+       id_us_plus((ID *)tar->brush);
 }
index f71e2e9a6e9cab3ec97da7362333681bb46a6812..72c92eed3127cc6f4c57345712883afc7c0d532f 100644 (file)
@@ -3534,6 +3534,8 @@ static void default_particle_settings(ParticleSettings *part)
        part->path_start = 0.0f;
        part->path_end = 1.0f;
 
+       part->bb_size[0] = part->bb_size[1] = 1.0f;
+
        part->keyed_loops = 1;
 
        part->color_vec_max = 1.f;
@@ -4505,8 +4507,8 @@ void psys_make_billboard(ParticleBillboardData *bb, float xvec[3], float yvec[3]
        mul_v3_fl(tvec, -sin(bb->tilt * (float)M_PI));
        VECADD(yvec, yvec, tvec);
 
-       mul_v3_fl(xvec, bb->size);
-       mul_v3_fl(yvec, bb->size);
+       mul_v3_fl(xvec, bb->size[0]);
+       mul_v3_fl(yvec, bb->size[1]);
 
        VECADDFAC(center, bb->vec, xvec, bb->offset[0]);
        VECADDFAC(center, center, yvec, bb->offset[1]);
index b82ac69fc9e068166411a0932990fafcc1c15300..265cc3eeb79988315d84240467e5873ab106942c 100644 (file)
 
 #include "BKE_context.h"
 #include "BKE_sound.h"
-#include "AUD_C-API.h"
+
+#ifdef WITH_AUDASPACE
+#  include "AUD_C-API.h"
+#endif
 
 #ifdef WIN32
 #define snprintf _snprintf
@@ -697,6 +700,7 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range)
                }
                seq->strip->len = seq->len;
        case SEQ_SOUND:
+#ifdef WITH_AUDASPACE
                if(!seq->sound)
                        return;
                seq->len = ceil(AUD_getInfo(seq->sound->playback_handle).length * FPS);
@@ -706,6 +710,9 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range)
                        seq->len = 0;
                }
                seq->strip->len = seq->len;
+#else
+               return;
+#endif
                break;
        case SEQ_SCENE:
        {
@@ -3493,6 +3500,7 @@ Sequence *sequencer_add_image_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
        return seq;
 }
 
+#ifdef WITH_AUDASPACE
 Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
 {
        Scene *scene= CTX_data_scene(C); /* only for sound */
@@ -3550,6 +3558,15 @@ Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
 
        return seq;
 }
+#else // WITH_AUDASPACE
+Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
+{
+       (void)C;
+       (void)seqbasep;
+       (void)seq_load;
+       return NULL;
+}
+#endif // WITH_AUDASPACE
 
 Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
 {
index e0e456a371e213531cf2783f7ddcc53a3df173a6..f2e3537762ff1ad0595e0fe37ce94d2dfc76d326 100644 (file)
@@ -21,7 +21,9 @@
 #include "DNA_screen_types.h"
 #include "DNA_sound_types.h"
 
-#include "AUD_C-API.h"
+#ifdef WITH_AUDASPACE
+#  include "AUD_C-API.h"
+#endif
 
 #include "BKE_utildefines.h"
 #include "BKE_global.h"
 
 static int force_device = -1;
 
+
+struct bSound* sound_new_file(struct Main *bmain, const char *filename)
+{
+       bSound* sound = NULL;
+
+       char str[FILE_MAX];
+       char *path;
+
+       int len;
+
+       strcpy(str, filename);
+
+       path = /*bmain ? bmain->name :*/ G.main->name;
+
+       BLI_path_abs(str, path);
+
+       len = strlen(filename);
+       while(len > 0 && filename[len-1] != '/' && filename[len-1] != '\\')
+               len--;
+
+       sound = alloc_libblock(&bmain->sound, ID_SO, filename+len);
+       BLI_strncpy(sound->name, filename, FILE_MAX);
+// XXX unused currently        sound->type = SOUND_TYPE_FILE;
+
+       sound_load(bmain, sound);
+
+       if(!sound->playback_handle)
+       {
+               free_libblock(&bmain->sound, sound);
+               sound = NULL;
+       }
+
+       return sound;
+}
+
+void sound_free(struct bSound* sound)
+{
+       if (sound->packedfile)
+       {
+               freePackedFile(sound->packedfile);
+               sound->packedfile = NULL;
+       }
+
+#ifdef WITH_AUDASPACE
+       if(sound->handle)
+       {
+               AUD_unload(sound->handle);
+               sound->handle = NULL;
+               sound->playback_handle = NULL;
+       }
+#endif // WITH_AUDASPACE
+}
+
+
+#ifdef WITH_AUDASPACE
+
 #ifdef WITH_JACK
 static void sound_sync_callback(void* data, int mode, float time)
 {
@@ -123,40 +181,6 @@ void sound_exit(void)
        AUD_exit();
 }
 
-struct bSound* sound_new_file(struct Main *bmain, const char *filename)
-{
-       bSound* sound = NULL;
-
-       char str[FILE_MAX];
-       char *path;
-
-       int len;
-
-       strcpy(str, filename);
-
-       path = /*bmain ? bmain->name :*/ G.main->name;
-
-       BLI_path_abs(str, path);
-
-       len = strlen(filename);
-       while(len > 0 && filename[len-1] != '/' && filename[len-1] != '\\')
-               len--;
-
-       sound = alloc_libblock(&bmain->sound, ID_SO, filename+len);
-       BLI_strncpy(sound->name, filename, FILE_MAX);
-// XXX unused currently        sound->type = SOUND_TYPE_FILE;
-
-       sound_load(bmain, sound);
-
-       if(!sound->playback_handle)
-       {
-               free_libblock(&bmain->sound, sound);
-               sound = NULL;
-       }
-
-       return sound;
-}
-
 // XXX unused currently
 #if 0
 struct bSound* sound_new_buffer(struct bContext *C, struct bSound *source)
@@ -301,22 +325,6 @@ void sound_load(struct Main *bmain, struct bSound* sound)
        }
 }
 
-void sound_free(struct bSound* sound)
-{
-       if (sound->packedfile)
-       {
-               freePackedFile(sound->packedfile);
-               sound->packedfile = NULL;
-       }
-
-       if(sound->handle)
-       {
-               AUD_unload(sound->handle);
-               sound->handle = NULL;
-               sound->playback_handle = NULL;
-       }
-}
-
 static float sound_get_volume(Scene* scene, Sequence* sequence, float time)
 {
        AnimData *adt= BKE_animdata_from_id(&scene->id);
@@ -490,8 +498,9 @@ int sound_scene_playing(struct Scene *scene)
 int sound_read_sound_buffer(struct bSound* sound, float* buffer, int length, float start, float end)
 {
        AUD_Sound* limiter = AUD_limitSound(sound->cache, start, end);
-       return AUD_readSound(limiter, buffer, length);
+       int ret= AUD_readSound(limiter, buffer, length);
        AUD_unload(limiter);
+       return ret;
 }
 
 int sound_get_channels(struct bSound* sound)
@@ -502,3 +511,34 @@ int sound_get_channels(struct bSound* sound)
 
        return info.specs.channels;
 }
+
+#else // WITH_AUDASPACE
+
+#include "BLI_utildefines.h"
+
+int sound_define_from_str(const char *UNUSED(str)) { return -1;}
+void sound_force_device(int UNUSED(device)) {}
+void sound_init_once(void) {}
+void sound_init(struct Main *UNUSED(bmain)) {}
+void sound_exit(void) {}
+void sound_cache(struct bSound* UNUSED(sound), int UNUSED(ignore)) { }
+void sound_delete_cache(struct bSound* UNUSED(sound)) {}
+void sound_load(struct Main *UNUSED(bmain), struct bSound* UNUSED(sound)) {}
+void sound_create_scene(struct Scene *UNUSED(scene)) {}
+void sound_destroy_scene(struct Scene *UNUSED(scene)) {}
+void sound_mute_scene(struct Scene *UNUSED(scene), int UNUSED(muted)) {}
+void* sound_scene_add_scene_sound(struct Scene *UNUSED(scene), struct Sequence* UNUSED(sequence), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) { return NULL; }
+void* sound_add_scene_sound(struct Scene *UNUSED(scene), struct Sequence* UNUSED(sequence), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) { return NULL; }
+void sound_remove_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle)) {}
+void sound_mute_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle), char UNUSED(mute)) {}
+void sound_move_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) {}
+static void sound_start_play_scene(struct Scene *UNUSED(scene)) {}
+void sound_play_scene(struct Scene *UNUSED(scene)) {}
+void sound_stop_scene(struct Scene *UNUSED(scene)) {}
+void sound_seek_scene(struct bContext *UNUSED(C)) {}
+float sound_sync_scene(struct Scene *UNUSED(scene)) { return 0.0f; }
+int sound_scene_playing(struct Scene *UNUSED(scene)) { return 0; }
+int sound_read_sound_buffer(struct bSound* UNUSED(sound), float* UNUSED(buffer), int UNUSED(length), float UNUSED(start), float UNUSED(end)) { return 0; }
+int sound_get_channels(struct bSound* UNUSED(sound)) { return 1; }
+
+#endif // WITH_AUDASPACE
index c729565533fd8ae586efb49a4fb311de8f0aeac7..4db53999f10eb6bea2aec247c2add55c601cb0d8 100644 (file)
@@ -49,7 +49,9 @@
 
 #include "BLI_blenlib.h"
 
-#include "AUD_C-API.h" /* must be before BKE_sound.h for define */
+#ifdef WITH_AUDASPACE
+#  include "AUD_C-API.h"
+#endif
 
 #include "BKE_global.h"
 #include "BKE_idprop.h"
@@ -89,7 +91,9 @@ static uint8_t* audio_output_buffer = 0;
 static int audio_outbuf_size = 0;
 static double audio_time = 0.0f;
 
+#ifdef WITH_AUDASPACE
 static AUD_Device* audio_mixdown_device = 0;
+#endif
 
 #define FFMPEG_AUTOSPLIT_SIZE 2000000000
 
@@ -103,6 +107,7 @@ static void delete_picture(AVFrame* f)
        }
 }
 
+#ifdef WITH_AUDASPACE
 static int write_audio_frame(void) 
 {
        AVCodecContext* c = NULL;
@@ -145,6 +150,7 @@ static int write_audio_frame(void)
        }
        return 0;
 }
+#endif // #ifdef WITH_AUDASPACE
 
 /* Allocate a temporary frame */
 static AVFrame* alloc_picture(int pix_fmt, int width, int height) 
@@ -851,7 +857,7 @@ int start_ffmpeg(struct Scene *scene, RenderData *rd, int rectx, int recty, Repo
        ffmpeg_autosplit_count = 0;
 
        success = start_ffmpeg_impl(rd, rectx, recty, reports);
-
+#ifdef WITH_AUDASPACE
        if(audio_stream)
        {
                AVCodecContext* c = audio_stream->codec;
@@ -861,12 +867,13 @@ int start_ffmpeg(struct Scene *scene, RenderData *rd, int rectx, int recty, Repo
                specs.rate = rd->ffcodecdata.audio_mixrate;
                audio_mixdown_device = sound_mixdown(scene, specs, rd->sfra, rd->ffcodecdata.audio_volume);
        }
-
+#endif
        return success;
 }
 
 void end_ffmpeg(void);
 
+#ifdef WITH_AUDASPACE
 static void write_audio_frames(double to_pts)
 {
        int finished = 0;
@@ -878,6 +885,7 @@ static void write_audio_frames(double to_pts)
                }
        }
 }
+#endif
 
 int append_ffmpeg(RenderData *rd, int frame, int *pixels, int rectx, int recty, ReportList *reports) 
 {
@@ -905,8 +913,9 @@ int append_ffmpeg(RenderData *rd, int frame, int *pixels, int rectx, int recty,
                }
        }
 
+#ifdef WITH_AUDASPACE
        write_audio_frames((frame - rd->sfra) / (((double)rd->frs_sec) / rd->frs_sec_base));
-
+#endif
        return success;
 }
 
@@ -920,12 +929,14 @@ void end_ffmpeg(void)
                write_audio_frames();
        }*/
 
+#ifdef WITH_AUDASPACE
        if(audio_mixdown_device)
        {
                AUD_closeReadDevice(audio_mixdown_device);
                audio_mixdown_device = 0;
        }
-       
+#endif
+
        if (video_stream && video_stream->codec) {
                fprintf(stderr, "Flushing delayed frames...\n");
                flush_ffmpeg ();                
diff --git a/source/blender/blenlib/BLI_callbacks.h b/source/blender/blenlib/BLI_callbacks.h
new file mode 100644 (file)
index 0000000..1735848
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): mar 2001 Nzc
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/blenlib/BLI_callbacks.h
+ *  \ingroup bli
+ */
+
+
+#ifndef BLI_CALLBACKS_H
+#define BLI_CALLBACKS_H
+
+struct bContext;
+struct Main;
+struct ID;
+
+typedef enum {
+       BLI_CB_EVT_RENDER_PRE,
+       BLI_CB_EVT_RENDER_POST,
+       BLI_CB_EVT_LOAD_PRE,
+       BLI_CB_EVT_LOAD_POST,
+       BLI_CB_EVT_SAVE_PRE,
+       BLI_CB_EVT_SAVE_POST,
+       BLI_CB_EVT_TOT
+} eCbEvent;
+
+
+typedef struct {
+       struct bCallbackFuncStore *next, *prev;
+       void (* func)(struct Main *, struct ID *, void *arg);
+       void *arg;
+       short alloc;
+} bCallbackFuncStore;
+
+
+void BLI_exec_cb(struct Main *main, struct ID *self, eCbEvent evt);
+void BLI_add_cb(bCallbackFuncStore *funcstore, eCbEvent evt);
+
+#endif
+
+
+void BLI_cb_init(void);
+void BLI_cb_finalize(void);
+
+
+/* This is blenlib internal only, unrelated to above */
+void callLocalErrorCallBack(const char* msg);
index fe09706cb3d727c5db63ed9229fc39fb4da54b4b..a6a1238a0640c57048163a3aeaa9c7ad823121bb 100644 (file)
@@ -70,6 +70,7 @@ unsigned int rgb_to_cpack(float r, float g, float b);
 unsigned int hsv_to_cpack(float h, float s, float v);
 
 float rgb_to_grayscale(float rgb[3]);
+unsigned char rgb_to_grayscale_byte(unsigned char rgb[3]);
 
 /***************** Profile Transformations ********************/
 
index b34b9c4b70f27d99ba887e21ecb689a206da421e..506e271071cc7f8ba1a2558ca70fa2f3bb8f1d7b 100644 (file)
@@ -66,6 +66,9 @@ float closest_to_line_v3(float r[3], const float p[3], const float l1[3], const
 float closest_to_line_v2(float r[2], const float p[2], const float l1[2], const float l2[2]);
 void closest_to_line_segment_v3(float r[3], const float p[3], const float l1[3], const float l2[3]);
 
+float line_point_factor_v3(const float p[3], const float l1[3], const float l2[3]);
+float line_point_factor_v2(const float p[2], const float l1[2], const float l2[2]);
+
 /******************************* Intersection ********************************/
 
 /* TODO int return value consistency */
@@ -78,6 +81,8 @@ void closest_to_line_segment_v3(float r[3], const float p[3], const float l1[3],
 
 int isect_line_line_v2(const float a1[2], const float a2[2], const float b1[2], const float b2[2]);
 int isect_line_line_v2_int(const int a1[2], const int a2[2], const int b1[2], const int b2[2]);
+int isect_line_sphere_v3(const float l1[3], const float l2[3], const float sp[3], const float r, float r_p1[3], float r_p2[3]);
+int isect_line_sphere_v2(const float l1[2], const float l2[2], const float sp[2], const float r, float r_p1[2], float r_p2[2]);
 int isect_seg_seg_v2_point(const float v1[2], const float v2[2], const float v3[2], const float v4[2], float vi[2]);
 
 /* Returns the number of point of interests
index c6848346220b39ab5aa975c6ff85f236f2630e9d..2e05ac7892b39bcc13d4ba4050c41de735363066 100644 (file)
@@ -52,6 +52,7 @@ set(SRC
        intern/DLRB_tree.c
        intern/boxpack2d.c
        intern/bpath.c
+       intern/callbacks.c
        intern/cpu.c
        intern/dynlib.c
        intern/edgehash.c
@@ -89,6 +90,7 @@ set(SRC
        BLI_blenlib.h
        BLI_boxpack2d.h
        BLI_bpath.h
+       BLI_callbacks.h
        BLI_cpu.h
        BLI_dlrbTree.h
        BLI_dynlib.h
@@ -132,7 +134,6 @@ set(SRC
        BLI_voxel.h
        BLI_winstuff.h
        PIL_time.h
-       intern/BLI_callbacks.h
        intern/dynamiclist.h
 )
 
diff --git a/source/blender/blenlib/intern/callbacks.c b/source/blender/blenlib/intern/callbacks.c
new file mode 100644 (file)
index 0000000..a033e01
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Blender Foundation (2011)
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include "BLI_utildefines.h"
+#include "BLI_listbase.h"
+#include "BLI_callbacks.h"
+
+#include "MEM_guardedalloc.h"
+
+static ListBase callback_slots[BLI_CB_EVT_TOT]= {{0}};
+
+void BLI_exec_cb(struct Main *main, struct ID *self, eCbEvent evt)
+{
+       ListBase *lb= &callback_slots[evt];
+       bCallbackFuncStore *funcstore;
+
+       for(funcstore= (bCallbackFuncStore *)lb->first; funcstore; funcstore= (bCallbackFuncStore *)funcstore->next) {
+               funcstore->func(main, self, funcstore->arg);
+       }
+}
+
+void BLI_add_cb(bCallbackFuncStore *funcstore, eCbEvent evt)
+{
+       ListBase *lb= &callback_slots[evt];
+       BLI_addtail(lb, funcstore);
+}
+
+void BLI_cb_init(void)
+{
+       /* do nothing */
+}
+
+/* call on application exit */
+void BLI_cb_finalize(void)
+{
+       eCbEvent evt;
+       for(evt= 0; evt < BLI_CB_EVT_TOT; evt++) {
+               ListBase *lb= &callback_slots[evt];
+               bCallbackFuncStore *funcstore;
+               bCallbackFuncStore *funcstore_next;
+               for(funcstore= (bCallbackFuncStore *)lb->first; funcstore; funcstore= funcstore_next) {
+                       funcstore_next= (bCallbackFuncStore *)funcstore->next;
+                       BLI_remlink(lb, funcstore);
+                       if(funcstore->alloc) {
+                               MEM_freeN(funcstore);
+                       }
+               }
+       }
+}
index ef1d5da56d82146e477f16e3e1e767580e99afa3..93143eb7db3bce0ba63d7f7d9c4e3825d031cfde 100644 (file)
@@ -488,6 +488,11 @@ float rgb_to_grayscale(float rgb[3])
        return 0.3f*rgb[0] + 0.58f*rgb[1] + 0.12f*rgb[2];
 }
 
+unsigned char rgb_to_grayscale_byte(unsigned char rgb[3])
+{
+       return (76*(unsigned short)rgb[0] + 148*(unsigned short)rgb[1] + 31*(unsigned short)rgb[2]) / 255;
+}
+
 /* ********************************* lift/gamma/gain / ASC-CDL conversion ********************************* */
 
 void lift_gamma_gain_to_asc_cdl(float *lift, float *gamma, float *gain, float *offset, float *slope, float *power)
index 96ed788a49fa8ab363df59403ae774061ae20291..9d945e9baa30268695f4d77871324c909658fcd6 100644 (file)
@@ -37,8 +37,6 @@
 #include "BLI_memarena.h"
 #include "BLI_utildefines.h"
 
-static float lambda_cp_line(const float p[3], const float l1[3], const float l2[3]);
-
 /********************************** Polygons *********************************/
 
 void cent_tri_v3(float cent[3], const float v1[3], const float v2[3], const float v3[3])
@@ -349,6 +347,133 @@ int isect_seg_seg_v2_point(const float v1[2], const float v2[2], const float v3[
        return -1;
 }
 
+int isect_line_sphere_v3(const float l1[3], const float l2[3],
+                         const float sp[3], const float r,
+                         float r_p1[3], float r_p2[3])
+{
+       /* l1:         coordinates (point of line)
+        * l2:         coordinates (point of line)
+        * sp, r:      coordinates and radius (sphere)
+        * r_p1, r_p2: return intersection coordinates
+        */
+
+
+       /* adapted for use in blender by Campbell Barton - 2011
+        *
+        * atelier iebele abel - 2001
+        * atelier@iebele.nl
+        * http://www.iebele.nl
+        *
+        * sphere_line_intersection function adapted from:
+        * http://astronomy.swin.edu.au/pbourke/geometry/sphereline
+        * Paul Bourke pbourke@swin.edu.au
+        */
+
+       const float ldir[3]= {
+           l2[0] - l1[0],
+           l2[1] - l1[1],
+           l2[2] - l1[2]
+       };
+
+       const float a= dot_v3v3(ldir, ldir);
+
+       const float b= 2.0f *
+               (ldir[0] * (l1[0] - sp[0]) +
+                ldir[1] * (l1[1] - sp[1]) +
+                ldir[2] * (l1[2] - sp[2]));
+
+       const float c=
+               dot_v3v3(sp, sp) +
+               dot_v3v3(l1, l1) -
+               (2.0f * dot_v3v3(sp, l1)) -
+               (r * r);
+
+       const float i = b * b - 4.0f * a * c;
+
+       float mu;
+
+       if (i < 0.0f) {
+               /* no intersections */
+               return 0;
+       }
+       else if (i == 0.0f) {
+               /* one intersection */
+               mu = -b / (2.0f * a);
+               madd_v3_v3v3fl(r_p1, l1, ldir, mu);
+               return 1;
+       }
+       else if (i > 0.0) {
+               const float i_sqrt= sqrt(i); /* avoid calc twice */
+
+               /* first intersection */
+               mu = (-b + i_sqrt) / (2.0f * a);
+               madd_v3_v3v3fl(r_p1, l1, ldir, mu);
+
+               /* second intersection */
+               mu = (-b - i_sqrt) / (2.0f * a);
+               madd_v3_v3v3fl(r_p2, l1, ldir, mu);
+               return 2;
+       }
+       else {
+               /* math domain error - nan */
+               return -1;
+       }
+}
+
+/* keep in sync with isect_line_sphere_v3 */
+int isect_line_sphere_v2(const float l1[2], const float l2[2],
+                         const float sp[2], const float r,
+                         float r_p1[2], float r_p2[2])
+{
+       const float ldir[2]= {
+           l2[0] - l1[0],
+           l2[1] - l1[1]
+       };
+
+       const float a= dot_v3v3(ldir, ldir);
+
+       const float b= 2.0f *
+               (ldir[0] * (l1[0] - sp[0]) +
+                ldir[1] * (l1[1] - sp[1]));
+
+       const float c=
+               dot_v2v2(sp, sp) +
+               dot_v2v2(l1, l1) -
+               (2.0f * dot_v2v2(sp, l1)) -
+               (r * r);
+
+       const float i = b * b - 4.0f * a * c;
+
+       float mu;
+
+       if (i < 0.0f) {
+               /* no intersections */
+               return 0;
+       }
+       else if (i == 0.0f) {
+               /* one intersection */
+               mu = -b / (2.0f * a);
+               madd_v2_v2v2fl(r_p1, l1, ldir, mu);
+               return 1;
+       }
+       else if (i > 0.0) {
+               const float i_sqrt= sqrt(i); /* avoid calc twice */
+
+               /* first intersection */
+               mu = (-b + i_sqrt) / (2.0f * a);
+               madd_v2_v2v2fl(r_p1, l1, ldir, mu);
+
+               /* second intersection */
+               mu = (-b - i_sqrt) / (2.0f * a);
+               madd_v2_v2v2fl(r_p2, l1, ldir, mu);
+               return 2;
+       }
+       else {
+               /* math domain error - nan */
+               return -1;
+       }
+}
+
 /*
 -1: colliniar
  1: intersection
@@ -668,7 +793,7 @@ int isect_line_plane_v3(float out[3], const float l1[3], const float l2[3], cons
 
                add_v3_v3v3(l1_plane, l1, p_no);
 
-               dist = lambda_cp_line(plane_co, l1, l1_plane);
+               dist = line_point_factor_v3(plane_co, l1, l1_plane);
 
                /* treat line like a ray, when 'no_flip' is set */
                if(no_flip && dist < 0.0f) {
@@ -1118,7 +1243,7 @@ float closest_to_line_v2(float cp[2],const float p[2], const float l1[2], const
 }
 
 /* little sister we only need to know lambda */
-static float lambda_cp_line(const float p[3], const float l1[3], const float l2[3])
+float line_point_factor_v3(const float p[3], const float l1[3], const float l2[3])
 {
        float h[3],u[3];
        sub_v3_v3v3(u, l2, l1);
@@ -1126,6 +1251,14 @@ static float lambda_cp_line(const float p[3], const float l1[3], const float l2[
        return(dot_v3v3(u,h)/dot_v3v3(u,u));
 }
 
+float line_point_factor_v2(const float p[2], const float l1[2], const float l2[2])
+{
+       float h[2], u[2];
+       sub_v2_v2v2(u, l2, l1);
+       sub_v2_v2v2(h, p, l1);
+       return(dot_v2v2(u, h)/dot_v2v2(u, u));
+}
+
 /* Similar to LineIntersectsTriangleUV, except it operates on a quad and in 2d, assumes point is in quad */
 void isect_point_quad_uv_v2(const float v0[2], const float v1[2], const float v2[2], const float v3[2], const float pt[2], float *uv)
 {
index 3096e8f9827efc275b4bcfbc6d5c39e7522abae6..3e76277dff084decf23066857f8c675dc2a8bfc4 100644 (file)
@@ -3580,6 +3580,18 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
                mesh->mr->edge_creases= newdataadr(fd, mesh->mr->edge_creases);
 
                mesh->mr->verts = newdataadr(fd, mesh->mr->verts);
+               
+               /* If mesh has the same number of vertices as the
+                  highest multires level, load the current mesh verts
+                  into multires and discard the old data. Needed
+                  because some saved files either do not have a verts
+                  array, or the verts array contains out-of-date
+                  data. */
+               if(mesh->totvert == ((MultiresLevel*)mesh->mr->levels.last)->totvert) {
+                       if(mesh->mr->verts)
+                               MEM_freeN(mesh->mr->verts);
+                       mesh->mr->verts = MEM_dupallocN(mesh->mvert);
+               }
                        
                for(; lvl; lvl= lvl->next) {
                        lvl->verts= newdataadr(fd, lvl->verts);
@@ -3589,16 +3601,11 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
                }
        }
 
-       /* Gracefully handle corrupted mesh */
+       /* if multires is present but has no valid vertex data,
+          there's no way to recover it; silently remove multires */
        if(mesh->mr && !mesh->mr->verts) {
-               /* If totals match, simply load the current mesh verts into multires */
-               if(mesh->totvert == ((MultiresLevel*)mesh->mr->levels.last)->totvert)
-                       mesh->mr->verts = MEM_dupallocN(mesh->mvert);
-               else {
-                       /* Otherwise, we can't recover the data, silently remove multires */
-                       multires_free(mesh->mr);
-                       mesh->mr = NULL;
-               }
+               multires_free(mesh->mr);
+               mesh->mr = NULL;
        }
        
        if((fd->flags & FD_FLAGS_SWITCH_ENDIAN) && mesh->tface) {
@@ -11706,9 +11713,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                        }
        }
 
-       /* put compatibility code here until next subversion bump */
-
-       {
+       if (main->versionfile < 258 || (main->versionfile == 258 && main->subversionfile < 1)){
                /* screen view2d settings were not properly initialized [#27164]
                 * v2d->scroll caused the bug but best reset other values too which are in old blend files only.
                 * need to make less ugly - possibly an iterator? */
@@ -11775,6 +11780,20 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                }
                        }
                }
+
+               {
+                       ParticleSettings *part;
+                       for(part = main->particle.first; part; part = part->id.next) {
+                               /* Initialize particle billboard scale */
+                               part->bb_size[0] = part->bb_size[1] = 1.0f;
+                       }
+               }
+       }
+       
+       /* put compatibility code here until next subversion bump */
+
+       {
+       
        }
        
        /* WATCH IT!!!: pointers from libdata have not been converted yet here! */
@@ -11858,7 +11877,8 @@ static BHead *read_userdef(BlendFileData *bfd, FileData *fd, BHead *bhead)
 
        // XXX
        user->uifonts.first= user->uifonts.last= NULL;
-       user->uistyles.first= user->uistyles.last= NULL;
+       
+       link_list(fd, &user->uistyles);
 
        /* free fd->datamap again */
        oldnewmap_free_unused(fd->datamap);
index 6772ce7f41dd203a1386359f40c8226aae5b6622..4689a69a87f3a4596c49b6252d50b3bf496743ba 100644 (file)
@@ -724,7 +724,8 @@ static void write_userdef(WriteData *wd)
        wmKeyMap *keymap;
        wmKeyMapItem *kmi;
        bAddon *bext;
-
+       uiStyle *style;
+       
        writestruct(wd, USER, "UserDef", 1, &U);
 
        for(btheme= U.themes.first; btheme; btheme=btheme->next)
@@ -743,6 +744,10 @@ static void write_userdef(WriteData *wd)
 
        for(bext= U.addons.first; bext; bext=bext->next)
                writestruct(wd, DATA, "bAddon", 1, bext);
+       
+       for(style= U.uistyles.first; style; style= style->next) {
+               writestruct(wd, DATA, "uiStyle", 1, style);
+       }
 }
 
 static void write_boid_state(WriteData *wd, BoidState *state)
index 82decf8d1cffc05e934e8d7b27f8b0467aa5257b..85da7a212c929bf7213d46f23acaef85ffca5f95 100644 (file)
@@ -79,8 +79,6 @@ void ARMATURE_OT_separate(struct wmOperatorType *ot);
 void ARMATURE_OT_autoside_names(struct wmOperatorType *ot);
 void ARMATURE_OT_flip_names(struct wmOperatorType *ot);
 
-void ARMATURE_OT_flags_set(struct wmOperatorType *ot);
-
 void ARMATURE_OT_layers_show_all(struct wmOperatorType *ot);
 void ARMATURE_OT_armature_layers(struct wmOperatorType *ot);
 void ARMATURE_OT_bone_layers(struct wmOperatorType *ot);
@@ -125,8 +123,6 @@ void POSE_OT_flip_names(struct wmOperatorType *ot);
 
 void POSE_OT_quaternions_flip(struct wmOperatorType *ot);
 
-void POSE_OT_flags_set(struct wmOperatorType *ot);
-
 void POSE_OT_armature_layers(struct wmOperatorType *ot);
 void POSE_OT_bone_layers(struct wmOperatorType *ot);
 
index 545cff824833123b7d539cbdc8439afbc8fa76d5..7bc9bb48a4c63f8a516eb6f4aa61be6cb019c9c0 100644 (file)
@@ -85,8 +85,6 @@ void ED_operatortypes_armature(void)
        WM_operatortype_append(ARMATURE_OT_autoside_names);
        WM_operatortype_append(ARMATURE_OT_flip_names);
        
-       WM_operatortype_append(ARMATURE_OT_flags_set);
-       
        WM_operatortype_append(ARMATURE_OT_layers_show_all);
        WM_operatortype_append(ARMATURE_OT_armature_layers);
        WM_operatortype_append(ARMATURE_OT_bone_layers);
@@ -141,8 +139,6 @@ void ED_operatortypes_armature(void)
 
        WM_operatortype_append(POSE_OT_quaternions_flip);
        
-       WM_operatortype_append(POSE_OT_flags_set);
-       
        WM_operatortype_append(POSE_OT_armature_layers);
        WM_operatortype_append(POSE_OT_bone_layers);
        
@@ -268,12 +264,9 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
        WM_keymap_add_item(keymap, "ARMATURE_OT_separate", PKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
        
                /* set flags */
-       kmi= WM_keymap_add_item(keymap, "ARMATURE_OT_flags_set", WKEY, KM_PRESS, KM_SHIFT, 0);
-               RNA_enum_set(kmi->ptr, "mode", 2); // toggle
-       kmi= WM_keymap_add_item(keymap, "ARMATURE_OT_flags_set", WKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0);
-               RNA_enum_set(kmi->ptr, "mode", 1); // enable
-       kmi= WM_keymap_add_item(keymap, "ARMATURE_OT_flags_set", WKEY, KM_PRESS, KM_ALT, 0);
-               RNA_enum_set(kmi->ptr, "mode", 0); // clear
+       WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_toggle", WKEY, KM_PRESS, KM_SHIFT, 0);
+       WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_enable", WKEY, KM_PRESS, KM_CTRL, 0);
+       WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_disable", WKEY, KM_PRESS, KM_ALT, 0);
                
                /* armature/bone layers */
        WM_keymap_add_item(keymap, "ARMATURE_OT_layers_show_all", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0);
@@ -349,13 +342,10 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
        WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_group", GKEY, KM_PRESS, KM_CTRL, 0);
        
                /* set flags */
-       kmi= WM_keymap_add_item(keymap, "POSE_OT_flags_set", WKEY, KM_PRESS, KM_SHIFT, 0);
-               RNA_enum_set(kmi->ptr, "mode", 2); // toggle
-       kmi= WM_keymap_add_item(keymap, "POSE_OT_flags_set", WKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0);
-               RNA_enum_set(kmi->ptr, "mode", 1); // enable
-       kmi= WM_keymap_add_item(keymap, "POSE_OT_flags_set", WKEY, KM_PRESS, KM_ALT, 0);
-               RNA_enum_set(kmi->ptr, "mode", 0); // clear
-               
+       WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_toggle", WKEY, KM_PRESS, KM_SHIFT, 0);
+       WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_enable", WKEY, KM_PRESS, KM_CTRL, 0);
+       WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_disable", WKEY, KM_PRESS, KM_ALT, 0);
+
                /* armature/bone layers */
        WM_keymap_add_item(keymap, "ARMATURE_OT_layers_show_all", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0);
        WM_keymap_add_item(keymap, "POSE_OT_armature_layers", MKEY, KM_PRESS, KM_SHIFT, 0);
index abf0839354403c2fad229e291beb635e8de5c5a2..2035220612197b9fd1e09819046788775d785fa1 100644 (file)
@@ -1352,30 +1352,6 @@ static void *get_nearest_bone (bContext *C, short findunsel, int x, int y)
        return NULL;
 }
 
-/* helper for setflag_sel_bone() */
-static void bone_setflag (int *bone, int flag, short mode)
-{
-       if (bone && flag) {
-               /* exception for inverse flags */
-               if (flag == BONE_NO_DEFORM) {
-                       if (mode == 2)
-                               *bone |= flag;
-                       else if (mode == 1)
-                               *bone &= ~flag;
-                       else
-                               *bone ^= flag;
-               }
-               else {
-                       if (mode == 2)
-                               *bone &= ~flag;
-                       else if (mode == 1)
-                               *bone |= flag;
-                       else
-                               *bone ^= flag;
-               }
-       }
-}
-
 /* Get the first available child of an editbone */
 static EditBone *editbone_get_child(bArmature *arm, EditBone *pabone, short use_visibility)
 {
@@ -1396,105 +1372,6 @@ static EditBone *editbone_get_child(bArmature *arm, EditBone *pabone, short use_
        return chbone;
 }
 
-/* callback for posemode setflag */
-static int pose_setflag_exec (bContext *C, wmOperator *op)
-{
-       int flag= RNA_enum_get(op->ptr, "type");
-       int mode= RNA_enum_get(op->ptr, "mode");
-       
-       /* loop over all selected pchans */
-       CTX_DATA_BEGIN(C, bPoseChannel *, pchan, selected_pose_bones) 
-       {
-               bone_setflag(&pchan->bone->flag, flag, mode);
-       }
-       CTX_DATA_END;
-       
-       /* note, notifier might evolve */
-       WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ED_object_pose_armature(CTX_data_active_object(C)));
-       
-       return OPERATOR_FINISHED;
-}
-
-/* callback for editbones setflag */
-static int armature_bones_setflag_exec (bContext *C, wmOperator *op)
-{
-       int flag= RNA_enum_get(op->ptr, "type");
-       int mode= RNA_enum_get(op->ptr, "mode");
-       
-       /* loop over all selected pchans */
-       CTX_DATA_BEGIN(C, EditBone *, ebone, selected_bones) 
-       {
-               bone_setflag(&ebone->flag, flag, mode);
-       }
-       CTX_DATA_END;
-       
-       /* note, notifier might evolve */
-       WM_event_add_notifier(C, NC_OBJECT|ND_POSE, CTX_data_edit_object(C));
-       
-       return OPERATOR_FINISHED;
-}
-
-/* settings that can be changed */
-static EnumPropertyItem prop_bone_setting_types[] = {
-       {BONE_DRAWWIRE, "DRAWWIRE", 0, "Draw Wire", ""},
-       {BONE_NO_DEFORM, "DEFORM", 0, "Deform", ""},
-       {BONE_MULT_VG_ENV, "MULT_VG", 0, "Multiply Vertex Groups", ""},
-       {BONE_HINGE, "HINGE", 0, "Hinge", ""},
-       {BONE_NO_SCALE, "NO_SCALE", 0, "No Scale", ""},
-       {BONE_EDITMODE_LOCKED, "LOCKED", 0, "Locked", "(For EditMode only)"},
-       {0, NULL, 0, NULL, NULL}
-};
-
-/* ways that settings can be changed */
-static EnumPropertyItem prop_bone_setting_modes[] = {
-       {0, "CLEAR", 0, "Clear", ""},
-       {1, "ENABLE", 0, "Enable", ""},
-       {2, "TOGGLE", 0, "Toggle", ""},
-       {0, NULL, 0, NULL, NULL}
-};
-
-
-void ARMATURE_OT_flags_set (wmOperatorType *ot)
-{
-       /* identifiers */
-       ot->name= "Set Bone Flags";
-       ot->idname= "ARMATURE_OT_flags_set";
-       ot->description= "Set flags for armature bones";
-       
-       /* callbacks */
-       ot->invoke= WM_menu_invoke;
-       ot->exec= armature_bones_setflag_exec;
-       ot->poll= ED_operator_editarmature;
-       
-       /* flags */
-       ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-       
-       /* properties */
-       ot->prop= RNA_def_enum(ot->srna, "type", prop_bone_setting_types, 0, "Type", "");
-       RNA_def_enum(ot->srna, "mode", prop_bone_setting_modes, 0, "Mode", "");
-}
-
-void POSE_OT_flags_set (wmOperatorType *ot)
-{
-       /* identifiers */
-       ot->name= "Set Bone Flags";
-       ot->idname= "POSE_OT_flags_set";
-       ot->description= "Set flags for armature bones";
-       
-       /* callbacks */
-       ot->invoke= WM_menu_invoke;
-       ot->exec= pose_setflag_exec;
-       ot->poll= ED_operator_posemode;
-       
-       /* flags */
-       ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-       
-       /* properties */
-       ot->prop= RNA_def_enum(ot->srna, "type", prop_bone_setting_types, 0, "Type", "");
-       RNA_def_enum(ot->srna, "mode", prop_bone_setting_modes, 0, "Mode", "");
-}
-
-
 /* **************** END PoseMode & EditMode *************************** */
 /* **************** Posemode stuff ********************** */
 
index dce7ee25e8d704aa3c161be5a0dade7b8df38115..2d59e59644ddf87f4a9f507e4049187d11965580 100644 (file)
@@ -1,12 +1,12 @@
 /* DataToC output of file <startup_blend> */
 
-int datatoc_startup_blend_size= 375912;
+int datatoc_startup_blend_size= 341924;
 char datatoc_startup_blend[]= {
- 66, 76, 69, 78, 68, 69, 82, 45,
-118, 50, 53, 55, 82, 69, 78, 68, 32,  0,  0,  0,  0,112,125, 82,255,127,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  1,  0,  0,  0,
-250,  0,  0,  0, 83, 99,101,110,101,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 71, 76, 79, 66,
32,  1,  0,  0, 16,111,125, 82,255,127,  0,  0,199,  0,  0,  0,  1,  0,  0,  0, 32, 32, 32, 49,  1,  0,  0,  0,250,  0,  0,  0,
 1,  0,  0,  1, 72, 17, 30,  2,  0,  0,  0,  0,152,219, 31,  2,  0,  0,  0,  0,  0, 16,  0,  0,128, 32,  4,  0,  0,  0,  0,  0,
+ 66, 76, 69, 78,
+ 68, 69, 82, 95, 86, 50, 53, 56, 82, 69, 78, 68,  0,  0,  0, 32,191,255,232, 80,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  1,
+  0,  0,  0,250, 83, 99,101,110,101,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 71, 76, 79, 66,
 0,  0,  1, 24,191,255,231, 72,  0,  0,  0,199,  0,  0,  0,  1, 32, 32, 32, 49,  0,  1,  0,  0,  0,250,  0,  0,  0,  1,  1,  0,
11, 29,167, 48,  2,154,244, 32,  0,  0, 16,  0,  0,  4, 32,128,  0,  0,147,158,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
@@ -14,1138 +14,942 @@ char datatoc_startup_blend[]= {
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 87, 77,  0,  0, 24,  1,  0,  0,152,101, 29,  2,
-  0,  0,  0,  0,106,  1,  0,  0,  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, 87, 77,  0,  0,  0,168,  9,244,203, 64,  0,  0,  1,106,  0,  0,  0,  1,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 87, 77, 87,105,110, 77, 97,110,  0,  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,248,102, 29,  2,  0,  0,  0,  0,248,102, 29,  2,
-  0,  0,  0,  0,248,102, 29,  2,  0,  0,  0,  0,248,102, 29,  2,  0,  0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72,134, 61,  3,
-  0,  0,  0,  0,248, 14,187,  3,  0,  0,  0,  0, 16,  0,  0,  0,  2,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0, 72,126,181,  3,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 88, 79, 20,  2,  0,  0,  0,  0, 88, 79, 20,  2,
-  0,  0,  0,  0, 88, 79, 20,  2,  0,  0,  0,  0, 72, 80, 20,  2,  0,  0,  0,  0, 72,126,181,  3,  0,  0,  0,  0, 72, 80, 20,  2,
-  0,  0,  0,  0, 68, 65, 84, 65,224,  0,  0,  0,248,102, 29,  2,  0,  0,  0,  0,107,  1,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 80, 20,  2,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0, 72, 17, 30,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,115, 99,114,101,101,110,  0,  0,  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,  0, 29,  0,126,  7,  5,  4,  0,  0,  0,  0,  1,  0,238,  3,  0,  0,  0,  0,
-  1,  0,  0,  0,104, 46, 68,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  0,  0,
-  0,  0,  0,  0, 72, 70,  2,  2,  0,  0,  0,  0,  8, 52,119,  3,  0,  0,  0,  0,  8, 52,119,  3,  0,  0,  0,  0, 40, 47, 68,  2,
-  0,  0,  0,  0,168,  2, 68,  2,  0,  0,  0,  0, 56,  4, 68,  2,  0,  0,  0,  0, 56,  4, 68,  2,  0,  0,  0,  0,216,254,190,  3,
-  0,  0,  0,  0,152,255, 77,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 83, 78,  0,  0,
-216,  0,  0,  0, 40,104, 29,  2,  0,  0,  0,  0,193,  0,  0,  0,  1,  0,  0,  0,184,184, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 83, 82, 65,110,105,109, 97,116,105,111,110,  0,
- 46, 48, 48, 49,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72,105, 29,  2,
-  0,  0,  0,  0,184,112, 29,  2,  0,  0,  0,  0, 40,113, 29,  2,  0,  0,  0,  0,104,125, 29,  2,  0,  0,  0,  0,216,125, 29,  2,
-  0,  0,  0,  0, 40,175, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,219, 31,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,232,216,159,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0, 72,105, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,
-  1,  0,  0,  0,184,105, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,184,105, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0, 40,106, 29,  2,
-  0,  0,  0,  0, 72,105, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,  4,  0,  0,  0,  0, 68, 65, 84, 65,
- 32,  0,  0,  0, 40,106, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,152,106, 29,  2,  0,  0,  0,  0,184,105, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  7,  5,  4,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,152,106, 29,  2,
-  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,  8,107, 29,  2,  0,  0,  0,  0, 40,106, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,126,  7,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,  8,107, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,
-  1,  0,  0,  0,120,107, 29,  2,  0,  0,  0,  0,152,106, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,234,  3,
-  1,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,120,107, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,232,107, 29,  2,
-  0,  0,  0,  0,  8,107, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  7,234,  3,  1,  0,  0,  0, 68, 65, 84, 65,
- 32,  0,  0,  0,232,107, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0, 88,108, 29,  2,  0,  0,  0,  0,120,107, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 52,  6,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0, 88,108, 29,  2,
-  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,200,108, 29,  2,  0,  0,  0,  0,232,107, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 52,  6,234,  3,  1,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,200,108, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,
-  1,  0,  0,  0, 56,109, 29,  2,  0,  0,  0,  0, 88,108, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 52,  6,184,  1,
-  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0, 56,109, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,168,109, 29,  2,
-  0,  0,  0,  0,200,108, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  7,184,  1,  0,  0,  0,  0, 68, 65, 84, 65,
- 32,  0,  0,  0,168,109, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0, 24,110, 29,  2,  0,  0,  0,  0, 56,109, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  0,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0, 24,110, 29,  2,
-  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,136,110, 29,  2,  0,  0,  0,  0,168,109, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 52,  6,124,  0,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,136,110, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,
-  1,  0,  0,  0,248,110, 29,  2,  0,  0,  0,  0, 24,110, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,164,  2,124,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,248,110, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,104,111, 29,  2,
-  0,  0,  0,  0,136,110, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,164,  2,234,  3,  1,  0,  0,  0, 68, 65, 84, 65,
- 32,  0,  0,  0,104,111, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,216,111, 29,  2,  0,  0,  0,  0,248,110, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,108,  1,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,216,111, 29,  2,
-  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0, 72,112, 29,  2,  0,  0,  0,  0,104,111, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,164,  2,108,  1,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0, 72,112, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,
-  1,  0,  0,  0,184,112, 29,  2,  0,  0,  0,  0,216,111, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 52,  6, 32,  3,
-  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,184,112, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 72,112, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  7, 32,  3,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 40,113, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,152,113, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,184,105, 29,  2,  0,  0,  0,  0, 40,106, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,152,113, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,  8,114, 29,  2,  0,  0,  0,  0, 40,113, 29,  2,
-  0,  0,  0,  0,184,105, 29,  2,  0,  0,  0,  0,  8,107, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,  8,114, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,120,114, 29,  2,  0,  0,  0,  0,152,113, 29,  2,
-  0,  0,  0,  0, 40,106, 29,  2,  0,  0,  0,  0,120,107, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,120,114, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,232,114, 29,  2,  0,  0,  0,  0,  8,114, 29,  2,
-  0,  0,  0,  0,  8,107, 29,  2,  0,  0,  0,  0,120,107, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,232,114, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 88,115, 29,  2,  0,  0,  0,  0,120,114, 29,  2,
-  0,  0,  0,  0, 72,105, 29,  2,  0,  0,  0,  0,232,107, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 88,115, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,200,115, 29,  2,  0,  0,  0,  0,232,114, 29,  2,
-  0,  0,  0,  0,152,106, 29,  2,  0,  0,  0,  0,232,107, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,200,115, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 56,116, 29,  2,  0,  0,  0,  0, 88,115, 29,  2,
-  0,  0,  0,  0,120,107, 29,  2,  0,  0,  0,  0, 88,108, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 56,116, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,168,116, 29,  2,  0,  0,  0,  0,200,115, 29,  2,
-  0,  0,  0,  0,232,107, 29,  2,  0,  0,  0,  0,200,108, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,168,116, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 24,117, 29,  2,  0,  0,  0,  0, 56,116, 29,  2,
-  0,  0,  0,  0,152,106, 29,  2,  0,  0,  0,  0, 56,109, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 24,117, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,136,117, 29,  2,  0,  0,  0,  0,168,116, 29,  2,
-  0,  0,  0,  0,200,108, 29,  2,  0,  0,  0,  0, 56,109, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,136,117, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,248,117, 29,  2,  0,  0,  0,  0, 24,117, 29,  2,
-  0,  0,  0,  0, 72,105, 29,  2,  0,  0,  0,  0,168,109, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,248,117, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,104,118, 29,  2,  0,  0,  0,  0,136,117, 29,  2,
-  0,  0,  0,  0, 88,108, 29,  2,  0,  0,  0,  0, 24,110, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,104,118, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,216,118, 29,  2,  0,  0,  0,  0,248,117, 29,  2,
-  0,  0,  0,  0,232,107, 29,  2,  0,  0,  0,  0, 24,110, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,216,118, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 72,119, 29,  2,  0,  0,  0,  0,104,118, 29,  2,
-  0,  0,  0,  0,168,109, 29,  2,  0,  0,  0,  0, 24,110, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 72,119, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,184,119, 29,  2,  0,  0,  0,  0,216,118, 29,  2,
-  0,  0,  0,  0,168,109, 29,  2,  0,  0,  0,  0,136,110, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,184,119, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 40,120, 29,  2,  0,  0,  0,  0, 72,119, 29,  2,
-  0,  0,  0,  0, 24,110, 29,  2,  0,  0,  0,  0,136,110, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 40,120, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,152,120, 29,  2,  0,  0,  0,  0,184,119, 29,  2,
-  0,  0,  0,  0,  8,107, 29,  2,  0,  0,  0,  0,248,110, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,152,120, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,  8,121, 29,  2,  0,  0,  0,  0, 40,120, 29,  2,
-  0,  0,  0,  0, 88,108, 29,  2,  0,  0,  0,  0,248,110, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,  8,121, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,120,121, 29,  2,  0,  0,  0,  0,152,120, 29,  2,
-  0,  0,  0,  0,136,110, 29,  2,  0,  0,  0,  0,248,110, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,120,121, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,232,121, 29,  2,  0,  0,  0,  0,  8,121, 29,  2,
-  0,  0,  0,  0,168,109, 29,  2,  0,  0,  0,  0,104,111, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,232,121, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 88,122, 29,  2,  0,  0,  0,  0,120,121, 29,  2,
-  0,  0,  0,  0,136,110, 29,  2,  0,  0,  0,  0,216,111, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 88,122, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,200,122, 29,  2,  0,  0,  0,  0,232,121, 29,  2,
-  0,  0,  0,  0,104,111, 29,  2,  0,  0,  0,  0,216,111, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,200,122, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 56,123, 29,  2,  0,  0,  0,  0, 88,122, 29,  2,
-  0,  0,  0,  0,200,108, 29,  2,  0,  0,  0,  0, 72,112, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 56,123, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,168,123, 29,  2,  0,  0,  0,  0,200,122, 29,  2,
-  0,  0,  0,  0, 88,108, 29,  2,  0,  0,  0,  0, 72,112, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,168,123, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 24,124, 29,  2,  0,  0,  0,  0, 56,123, 29,  2,
-  0,  0,  0,  0,120,107, 29,  2,  0,  0,  0,  0,184,112, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 24,124, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,136,124, 29,  2,  0,  0,  0,  0,168,123, 29,  2,
-  0,  0,  0,  0, 56,109, 29,  2,  0,  0,  0,  0,184,112, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,136,124, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,248,124, 29,  2,  0,  0,  0,  0, 24,124, 29,  2,
-  0,  0,  0,  0, 72,112, 29,  2,  0,  0,  0,  0,184,112, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,248,124, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,104,125, 29,  2,  0,  0,  0,  0,136,124, 29,  2,
-  0,  0,  0,  0,  8,107, 29,  2,  0,  0,  0,  0,104,111, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,104,125, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,124, 29,  2,
-  0,  0,  0,  0,248,110, 29,  2,  0,  0,  0,  0,216,111, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
-160,  0,  0,  0,216,125, 29,  2,  0,  0,  0,  0,197,  0,  0,  0,  1,  0,  0,  0,168,129, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  8,107, 29,  2,  0,  0,  0,  0,184,105, 29,  2,  0,  0,  0,  0, 40,106, 29,  2,  0,  0,  0,  0,120,107, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  7,  0,  0,235,  3,  0,  0,  5,  4,  0,  0,  7,  7,127,  7,
- 27,  0,  1,  0,  0,  0,  0,  0,  7,  0,  0,  0,216,  3,  3,  2,  0,  0,  0,  0, 40,184, 29,  2,  0,  0,  0,  0, 40,184, 29,  2,
-  0,  0,  0,  0,200,126, 29,  2,  0,  0,  0,  0, 56,128, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,104,163,166,  3,  0,  0,  0,  0,184,135, 61,  3,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,200,126, 29,  2,
-  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0, 56,128, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0, 32,148, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,  0,224,239, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-126,  7,  0,  0,  0,  0,  0,  0, 25,  0,  0,  0,  0,192,239, 68,  0,  0,200, 65,  0,192,239, 68,  0,  0,200, 65,  0,  0,128, 63,
-  0,  0,128, 63,  0,  0,  0,  0,  2,  0,  3,  3,  4,  0, 12,  0, 10,  0,127,  7, 26,  0,127,  7, 26,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  7,  0,  0,235,  3,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  7, 26,  0,  0,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,232,  5,  3,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0, 56,128, 29,  2,
-  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,200,126, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,240,109, 69,  0,  0,128,192,  0,  0,  0,  0,  0,  0,  0,  0,255,255,109, 69,  0,  0,  0,192,  0,  0,  0,  0,112,  7,  0,  0,
-129,  7,  0,  0, 18,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,111,  7,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,
-111,  7,  0,  0, 18,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,
-  0,  0,128, 63,  2,  0,  0,  0,  1,  0,  3,  3,  2,  0,  0,  4, 10,  0,129,  7,  2,  0,112,  7,  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,  5,  4,  0,  0,  5,  4,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,  4,  3,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,160,  0,  0,  0,168,129, 29,  2,
-  0,  0,  0,  0,197,  0,  0,  0,  1,  0,  0,  0,184,134, 29,  2,  0,  0,  0,  0,216,125, 29,  2,  0,  0,  0,  0,232,107, 29,  2,
-  0,  0,  0,  0,200,108, 29,  2,  0,  0,  0,  0, 56,109, 29,  2,  0,  0,  0,  0,152,106, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 53,  6,  0,  0,126,  7,  0,  0,  0,  0,  0,  0,183,  1,  0,  0,  4,  4, 74,  1,184,  1,  1,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,120,255,  2,  2,  0,  0,  0,  0,120,133, 29,  2,  0,  0,  0,  0,120,133, 29,  2,  0,  0,  0,  0,152,130, 29,  2,
-  0,  0,  0,  0,  8,132, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,184,  7,180,  3,
-  0,  0,  0,  0,120, 62,166,  3,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,152,130, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,
-  1,  0,  0,  0,  8,132, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,148, 67,  0,  0,  0,  0,
-  0,  0,208, 65,  0,  0,  0,  0,  0,  0,165, 67,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 73,  1,  0,  0,  0,  0,  0,  0,
- 25,  0,  0,  0,  0,128,164, 67,  0,  0,200, 65,  0,128,164, 67,  0,  0,200, 65,  0,  0,128, 63,  0,  0,128, 63,  0,  0,  0,  0,
-  2,  0,  3,  3,  4,  0, 12,  0, 10,  0, 74,  1, 26,  0, 74,  1, 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 53,  6,  0,  0,126,  7,  0,  0,158,  1,  0,  0,183,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 74,  1, 26,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,232,  2,  3,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,  8,132, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,
-  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,130, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,165, 67,  0,  0, 61,196,
-  0,  0,  0,  0,  0,  0,  0,  0,  1,128,156, 67,  1,  0,207,195,  0,  0,  0,  0, 57,  1,  0,  0, 74,  1,  0,  0,  0,  0,  0,  0,
-157,  1,  0,  0,  0,  0,  0,  0, 62,  1,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0, 56,  1,  0,  0,  0,  0,  0,  0,
-157,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,  0,  0,  0, 64, 10,  1,  0,  0,
-  1,  0,  7,  0, 18,  0,  0,  4,  6,  0, 74,  1,158,  1, 57,  1,158,  1,  0,  0, 56, 93,184,  3,  0,  0,  0,  0,  1,  0,  0,  0,
-  0,  0,  0,  0, 53,  6,  0,  0,126,  7,  0,  0,  0,  0,  0,  0,157,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 74,  1,158,  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,152,  0,  3,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 23, 75,  3,
-  0,  0,  0,  0,104,151, 78,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 88,  1,  0,  0, 24, 23, 75,  3,  0,  0,  0,  0,196,  0,  0,  0,
-  1,  0,  0,  0,104, 50,185,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,136,  1,  3,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 67,111,110,116,101,120,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,220,255, 57,  1, 36,  0,  0,  0,  0,  0,  0,  0, 38,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 88,  1,  0,  0,104, 50,185,  3,  0,  0,  0,  0,196,  0,  0,  0,  1,  0,  0,  0,248, 60, 89,  3,  0,  0,  0,  0, 24, 23, 75,  3,
-  0,  0,  0,  0,168, 53,190,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,
-110,100,101,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,
-110,100,101,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82,101,110,100,101,114,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,135,255, 57,  1, 61,  0,  0,  0,  0,  0,
-  0,  0,  6,  0,  0,  0,  0,  0,  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, 68, 65, 84, 65, 88,  1,  0,  0,248, 60, 89,  3,  0,  0,  0,  0,196,  0,  0,  0,
-  1,  0,  0,  0,136, 67,191,  3,  0,  0,  0,  0,104, 50,185,  3,  0,  0,  0,  0,152, 56,190,  2,  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,  0,  0,  0,  9,244,204, 16,  9,244,204, 16,
+  0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0, 16,  0,  0,  0,  2,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 11, 21,221, 16, 11, 21,221, 16, 11, 21,221, 16,  9,244, 44,224,  9,244, 44,224,
+  9,244, 44,224, 68, 65, 84, 65,  0,  0,  0,148,  9,244,204, 16,  0,  0,  1,107,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,
+  4,209, 70, 96,  0,  0,  0,  1,  0,  0,  0,  0, 11, 29,167, 48,  0,  0,  0,  0,115, 99,114,101,101,110,  0,  0,  0,  0,  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, 96,  7,128,  4,128,  0,  0,  0,  0,
+  0,  0,  3,238,  0,  0,  0,  0,  0,  0,  0,  0,  4,209,201,176,  9,244, 47,144,  0,  0,  0,  0,  0,  0,  0,  3,  0,  0,  0,  0,
+  9,253,196,128,  0,  0,  0,  0,  0,  0,  0,  0,  9,244, 46,160,  9,244, 45,192,  9,244, 46, 48,  9,244, 46, 48,  9,244, 47,144,
+  9,244, 76,240,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 83, 78,  0,  0,  0,148,  9,244,204,208,  0,  0,  0,193,  0,  0,  0,  1,
+  9,245, 11, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 83, 82, 65,110,105,109, 97,116,105,111,110,  0, 46, 48, 48, 49,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,242,109,144,  4,211,174, 48, 11, 31,150, 32,
+  9,244,210,208,  9,244,211, 16,  9,245,  6,192,  0,  0,  0,  0,  0,  0,  0,  0,  2,154,244, 32,  0,  0,  0,  0,  0,  0,  0,  6,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  9,242,109,144,
+  0,  0,  0,194,  0,  0,  0,  1, 11, 30, 31,240,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0, 20, 11, 30, 31,240,  0,  0,  0,194,  0,  0,  0,  1, 11, 22,202, 48,  9,242,109,144,  0,  0,  0,  0,  0,  0,  4,  5,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20, 11, 22,202, 48,  0,  0,  0,194,  0,  0,  0,  1, 11, 23, 73,224, 11, 30, 31,240,
+  0,  0,  0,  0,  7,126,  4,  5,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20, 11, 23, 73,224,  0,  0,  0,194,  0,  0,  0,  1,
+  9,253,198, 16, 11, 22,202, 48,  0,  0,  0,  0,  7,126,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  9,253,198, 16,
+  0,  0,  0,194,  0,  0,  0,  1,  9,249, 51,  0, 11, 23, 73,224,  0,  0,  0,  0,  0,  0,  3,234,  0,  0,  0,  1, 68, 65, 84, 65,
+  0,  0,  0, 20,  9,249, 51,  0,  0,  0,  0,194,  0,  0,  0,  1,  4,211,186, 80,  9,253,198, 16,  0,  0,  0,  0,  7,126,  3,234,
+  0,  0,  0,  1, 68, 65, 84, 65,  0,  0,  0, 20,  4,211,186, 80,  0,  0,  0,194,  0,  0,  0,  1, 12, 96, 12, 32,  9,249, 51,  0,
+  0,  0,  0,  0,  6, 52,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20, 12, 96, 12, 32,  0,  0,  0,194,  0,  0,  0,  1,
+  9,202,233,240,  4,211,186, 80,  0,  0,  0,  0,  6, 52,  3,234,  0,  0,  0,  1, 68, 65, 84, 65,  0,  0,  0, 20,  9,202,233,240,
+  0,  0,  0,194,  0,  0,  0,  1, 11, 29,185,144, 12, 96, 12, 32,  0,  0,  0,  0,  6, 52,  1,184,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0, 20, 11, 29,185,144,  0,  0,  0,194,  0,  0,  0,  1,  9,254, 80, 80,  9,202,233,240,  0,  0,  0,  0,  7,126,  1,184,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  9,254, 80, 80,  0,  0,  0,194,  0,  0,  0,  1,  9,203, 26,208, 11, 29,185,144,
+  0,  0,  0,  0,  0,  0,  0,124,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  9,203, 26,208,  0,  0,  0,194,  0,  0,  0,  1,
+ 11, 21,219,240,  9,254, 80, 80,  0,  0,  0,  0,  6, 52,  0,124,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20, 11, 21,219,240,
+  0,  0,  0,194,  0,  0,  0,  1, 11, 29,143, 96,  9,203, 26,208,  0,  0,  0,  0,  2,164,  0,124,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0, 20, 11, 29,143, 96,  0,  0,  0,194,  0,  0,  0,  1,  9,251,242,176, 11, 21,219,240,  0,  0,  0,  0,  2,164,  3,234,
+  0,  0,  0,  1, 68, 65, 84, 65,  0,  0,  0, 20,  9,251,242,176,  0,  0,  0,194,  0,  0,  0,  1,  9,253,135,  0, 11, 29,143, 96,
+  0,  0,  0,  0,  0,  0,  1,108,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  9,253,135,  0,  0,  0,  0,194,  0,  0,  0,  1,
+ 11, 21,225, 32,  9,251,242,176,  0,  0,  0,  0,  2,164,  1,108,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20, 11, 21,225, 32,
+  0,  0,  0,194,  0,  0,  0,  1,  4,211,174, 48,  9,253,135,  0,  0,  0,  0,  0,  6, 52,  3, 32,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0, 20,  4,211,174, 48,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,  0, 11, 21,225, 32,  0,  0,  0,  0,  7,126,  3, 32,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24, 11, 31,150, 32,  0,  0,  0,195,  0,  0,  0,  1, 11, 21,228, 64,  0,  0,  0,  0,
+ 11, 22,202, 48, 11, 30, 31,240,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24, 11, 21,228, 64,  0,  0,  0,195,
+  0,  0,  0,  1, 11, 31,155,192, 11, 31,150, 32,  9,253,198, 16, 11, 30, 31,240,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0, 24, 11, 31,155,192,  0,  0,  0,195,  0,  0,  0,  1, 11, 21,220,128, 11, 21,228, 64,  9,249, 51,  0, 11, 22,202, 48,
+  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24, 11, 21,220,128,  0,  0,  0,195,  0,  0,  0,  1,  9,254, 98,224,
+ 11, 31,155,192,  9,249, 51,  0,  9,253,198, 16,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,254, 98,224,
+  0,  0,  0,195,  0,  0,  0,  1, 11, 21,221,208, 11, 21,220,128,  4,211,186, 80,  9,242,109,144,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0, 24, 11, 21,221,208,  0,  0,  0,195,  0,  0,  0,  1,  9,254, 86,192,  9,254, 98,224,  4,211,186, 80,
+ 11, 23, 73,224,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,254, 86,192,  0,  0,  0,195,  0,  0,  0,  1,
+  9,244,205,144, 11, 21,221,208,  9,249, 51,  0, 12, 96, 12, 32,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,
+  9,244,205,144,  0,  0,  0,195,  0,  0,  0,  1,  9,244,205,208,  9,254, 86,192,  4,211,186, 80,  9,202,233,240,  0,  0,  0,  0,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,205,208,  0,  0,  0,195,  0,  0,  0,  1,  9,244,206, 16,  9,244,205,144,
+ 11, 23, 73,224, 11, 29,185,144,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,206, 16,  0,  0,  0,195,
+  0,  0,  0,  1,  9,244,206, 80,  9,244,205,208,  9,202,233,240, 11, 29,185,144,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0, 24,  9,244,206, 80,  0,  0,  0,195,  0,  0,  0,  1,  9,244,206,144,  9,244,206, 16,  9,242,109,144,  9,254, 80, 80,
+  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,206,144,  0,  0,  0,195,  0,  0,  0,  1,  9,244,206,208,
+  9,244,206, 80,  9,203, 26,208, 12, 96, 12, 32,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,206,208,
+  0,  0,  0,195,  0,  0,  0,  1,  9,244,207, 16,  9,244,206,144,  4,211,186, 80,  9,203, 26,208,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0, 24,  9,244,207, 16,  0,  0,  0,195,  0,  0,  0,  1,  9,244,207, 80,  9,244,206,208,  9,203, 26,208,
+  9,254, 80, 80,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,207, 80,  0,  0,  0,195,  0,  0,  0,  1,
+  9,244,207,144,  9,244,207, 16,  9,254, 80, 80, 11, 21,219,240,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,
+  9,244,207,144,  0,  0,  0,195,  0,  0,  0,  1,  9,244,207,208,  9,244,207, 80,  9,203, 26,208, 11, 21,219,240,  0,  0,  0,  0,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,207,208,  0,  0,  0,195,  0,  0,  0,  1,  9,244,208, 16,  9,244,207,144,
+  9,253,198, 16, 11, 29,143, 96,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,208, 16,  0,  0,  0,195,
+  0,  0,  0,  1,  9,244,208, 80,  9,244,207,208, 11, 29,143, 96, 12, 96, 12, 32,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0, 24,  9,244,208, 80,  0,  0,  0,195,  0,  0,  0,  1,  9,244,208,144,  9,244,208, 16, 11, 21,219,240, 11, 29,143, 96,
+  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,208,144,  0,  0,  0,195,  0,  0,  0,  1,  9,244,208,208,
+  9,244,208, 80,  9,251,242,176,  9,254, 80, 80,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,208,208,
+  0,  0,  0,195,  0,  0,  0,  1,  9,244,209, 16,  9,244,208,144,  9,253,135,  0, 11, 21,219,240,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0, 24,  9,244,209, 16,  0,  0,  0,195,  0,  0,  0,  1,  9,244,209, 80,  9,244,208,208,  9,251,242,176,
+  9,253,135,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,209, 80,  0,  0,  0,195,  0,  0,  0,  1,
+  9,244,209,144,  9,244,209, 16,  9,202,233,240, 11, 21,225, 32,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,
+  9,244,209,144,  0,  0,  0,195,  0,  0,  0,  1,  9,244,209,208,  9,244,209, 80, 11, 21,225, 32, 12, 96, 12, 32,  0,  0,  0,  0,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,209,208,  0,  0,  0,195,  0,  0,  0,  1,  9,244,210, 16,  9,244,209,144,
+  4,211,174, 48,  9,249, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,210, 16,  0,  0,  0,195,
+  0,  0,  0,  1,  9,244,210, 80,  9,244,209,208,  4,211,174, 48, 11, 29,185,144,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0, 24,  9,244,210, 80,  0,  0,  0,195,  0,  0,  0,  1,  9,244,210,144,  9,244,210, 16,  4,211,174, 48, 11, 21,225, 32,
+  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,210,144,  0,  0,  0,195,  0,  0,  0,  1,  9,244,210,208,
+  9,244,210, 80,  9,251,242,176,  9,253,198, 16,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  9,244,210,208,
+  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,  0,  9,244,210,144,  9,253,135,  0, 11, 29,143, 96,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0, 96,  9,244,211, 16,  0,  0,  0,197,  0,  0,  0,  1,  9,244,213,224,  0,  0,  0,  0,  9,253,198, 16,
+ 11, 30, 31,240, 11, 22,202, 48,  9,249, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,126,  0,  0,  3,235,  0,  0,  4,  5,
+  7,  7,  7,127,  0, 27,  0,  1,  0,  0,  0,  0,  0,  7,  0,  0,  0,  0,  0,  0,  9,245, 10,176,  9,245, 10,176,  9,244,211,160,
+  9,244,212,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,248,  9,244,211,160,
+  0,  0,  0,198,  0,  0,  0,  1,  9,244,212,192,  0,  0,  0,  0,  0,  0,  0,  0, 68,148, 32,  0,  0,  0,  0,  0, 65,208,  0,  0,
+  0,  0,  0,  0, 68,239,224,  0,  0,  0,  0,  0, 65,208,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,126,  0,  0,  0,  0,  0,  0,  0, 25,
+ 68,239,192,  0, 65,200,  0,  0, 68,239,192,  0, 65,200,  0,  0, 63,128,  0,  0, 63,128,  0,  0,  0,  0,  0,  0,  0,  2,  3,  3,
+  0,  4,  0, 12,  0, 10,  7,127,  0, 26,  7,127,  0, 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  7,126,  0,  0,  3,235,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,127,  0, 26,
+  0,  0,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0,248,  9,244,212,192,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  9,244,211,160,  0,  0,  0,  0,
+ 69,109,240,  0,192,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 69,109,255,255,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,112,
+  0,  0,  7,129,  0,  0,  0, 18,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  7,111,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,
+  0,  0,  7,111,  0,  0,  0, 18,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,128,  0,  0,
+ 63,128,  0,  0,  0,  2,  0,  0,  0,  1,  3,  3,  0,  2,  4,  0,  0, 10,  7,129,  0,  2,  7,112,  0,  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,  4,  5,  0,  0,  4,  5,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 96,  9,244,213,224,  0,  0,  0,197,  0,  0,  0,  1,
+  9,244,234,240,  9,244,211, 16,  4,211,186, 80,  9,202,233,240, 11, 29,185,144, 11, 23, 73,224,  0,  0,  0,  0,  0,  0,  6, 53,
+  0,  0,  7,126,  0,  0,  0,  0,  0,  0,  1,183,  4,  4,  1, 74,  1,184,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  9,244,233,240,  9,244,233,240,  9,244,214,112,  9,244,215,144,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0,248,  9,244,214,112,  0,  0,  0,198,  0,  0,  0,  1,  9,244,215,144,  0,  0,  0,  0,  0,  0,  0,  0,
+ 67,148,  0,  0,  0,  0,  0,  0, 65,208,  0,  0,  0,  0,  0,  0, 67,165,  0,  0,  0,  0,  0,  0, 65,208,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  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, 73,  0,  0,  0,  0,  0,  0,  0, 25, 67,164,128,  0, 65,200,  0,  0, 67,164,128,  0, 65,200,  0,  0, 63,128,  0,  0,
+ 63,128,  0,  0,  0,  0,  0,  0,  0,  2,  3,  3,  0,  4,  0, 12,  0, 10,  1, 74,  0, 26,  1, 74,  0, 26,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6, 53,  0,  0,  7,126,  0,  0,  1,158,  0,  0,  1,183,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  1, 74,  0, 26,  0,  0,  0,  1,  0,  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, 68, 65, 84, 65,  0,  0,  0,248,  9,244,215,144,  0,  0,  0,198,  0,  0,  0,  1,
+  0,  0,  0,  0,  9,244,214,112,  0,  0,  0,  0, 67,165,  0,  0,196, 61,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 67,156,128,  1,
+195,207,  0,  1,  0,  0,  0,  0,  0,  0,  1, 57,  0,  0,  1, 74,  0,  0,  0,  0,  0,  0,  1,157,  0,  0,  0,  0,  0,  0,  1, 62,
+  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  1, 56,  0,  0,  0,  0,  0,  0,  1,157,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0, 63,  0,  0,  0, 64,  0,  0,  0,  1, 10,  0,  0,  0,  1,  0,  7,  0, 18,  4,  0,  0,  6,  1, 74,
+  1,158,  1, 57,  1,158,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6, 53,  0,  0,  7,126,  0,  0,  0,  0,
+  0,  0,  1,157,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 74,  1,158,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  9,244,216,176,  9,244,232,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  1, 64,
+  9,244,216,176,  0,  0,  0,196,  0,  0,  0,  1,  9,244,218, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 66, 85, 84, 84,
+ 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 66, 85, 84, 84,
+ 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 67,111,110,116,
+101,120,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,220,
+  1, 57,  0, 36,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  1, 64,  9,244,218, 32,  0,  0,  0,196,  0,  0,  0,  1,
+  9,244,219,144,  9,244,216,176,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82,101,110,100,101,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,135,  1, 57,  0, 61,  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,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  1, 64,  9,244,219,144,  0,  0,  0,196,  0,  0,  0,  1,  9,244,221,  0,  9,244,218, 32,  0,  0,  0,  0,
   0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0, 76, 97,121,101,114,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,111,255, 57,  1,  0,  0,  0,  0,  0,  0,  4,  0,  6,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,255,111,  1, 57,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 88,  1,  0,  0,136, 67,191,  3,  0,  0,  0,  0,196,  0,  0,  0,  1,  0,  0,  0, 24, 67, 62,  3,  0,  0,  0,  0,248, 60, 89,  3,
-  0,  0,  0,  0,200, 59,190,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,
-109,101,110,115,105,111,110,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,
-109,101,110,115,105,111,110,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68,105,109,101,110,115,105,111,110,115,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,140,254, 57,  1,203,  0,  0,  0,  0,  0,
-  0,  0,  6,  0,  0,  0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  1, 64,  9,244,221,  0,
+  0,  0,  0,196,  0,  0,  0,  1,  9,244,222,112,  9,244,219,144,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,100,105,109,101,110,115,105,111,110,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,100,105,109,101,110,115,105,111,110,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68,105,109,101,110,115,105,111,
+110,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254,140,  1, 57,  0,203,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 88,  1,  0,  0, 24, 67, 62,  3,  0,  0,  0,  0,196,  0,  0,  0,
-  1,  0,  0,  0,200, 60, 68,  2,  0,  0,  0,  0,136, 67,191,  3,  0,  0,  0,  0,136, 62,190,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  1, 64,  9,244,222,112,  0,  0,  0,196,  0,  0,  0,  1,  9,244,223,224,
+  9,244,221,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,
+110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,
+110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254, 58,  1, 57,  0, 58,  0, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0, 58,254, 57,  1, 58,  0, 20,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  1, 64,  9,244,223,224,  0,  0,  0,196,  0,  0,  0,  1,  9,244,225, 80,  9,244,222,112,  0,  0,  0,  0,  0,  0,  0,  0,
+ 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 88,  1,  0,  0,200, 60, 68,  2,  0,  0,  0,  0,196,  0,  0,  0,  1,  0,  0,  0,104, 62, 68,  2,  0,  0,  0,  0, 24, 67, 62,  3,
-  0,  0,  0,  0,200, 65,190,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,
-116,105,111,110, 95, 98,108,117,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,
-116,105,111,110, 95, 98,108,117,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,
-111,110, 32, 66,108,117,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 34,254, 57,  1,  0,  0, 20,  0,  0,  0,
-  4,  0,  6,  0,  0,  0,  0,  0,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,254, 34,  1, 57,  0,  0,  0, 20,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 88,  1,  0,  0,104, 62, 68,  2,  0,  0,  0,  0,196,  0,  0,  0,
-  1,  0,  0,  0, 24,103, 68,  2,  0,  0,  0,  0,200, 60, 68,  2,  0,  0,  0,  0,200, 74,190,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  1, 64,  9,244,225, 80,  0,  0,  0,196,
+  0,  0,  0,  1,  9,244,226,192,  9,244,223,224,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104,
+ 97,100,105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104,
+ 97,100,105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 83,104, 97,100,105,110,103,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 83,104, 97,100,105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254, 10,  1, 57,  0,  0,  0,  0,  0,  0,
+  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0, 10,254, 57,  1,  0,  0,  0,  0,  0,  0,  4,  0,  6,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  1, 64,  9,244,226,192,  0,  0,  0,196,  0,  0,  0,  1,  9,244,228, 48,  9,244,225, 80,
+  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 88,  1,  0,  0, 24,103, 68,  2,  0,  0,  0,  0,196,  0,  0,  0,  1,  0,  0,  0,184,104, 68,  2,  0,  0,  0,  0,104, 62, 68,  2,
-  0,  0,  0,  0,168, 76,190,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,
-114,102,111,114,109, 97,110, 99,101,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,
-114,102,111,114,109, 97,110, 99,101,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80,101,114,102,111,114,109, 97,110, 99,101,  0,
+  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,242,253, 57,  1,  0,  0,  0,  0,  0,  0,
-  4,  0,  6,  0,  0,  0,  0,  0,  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0, 80,101,114,102,111,114,109, 97,110, 99,101,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,253,242,  1, 57,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 88,  1,  0,  0,184,104, 68,  2,  0,  0,  0,  0,196,  0,  0,  0,
-  1,  0,  0,  0,104,117,  1,  2,  0,  0,  0,  0, 24,103, 68,  2,  0,  0,  0,  0,152, 79,190,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  1, 64,
+  9,244,228, 48,  0,  0,  0,196,  0,  0,  0,  1,  9,244,229,160,  9,244,226,192,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68,
+ 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80,111,115,116,
+ 32, 80,114,111, 99,101,115,115,105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,253,218,
+  1, 57,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,218,253, 57,  1,  0,  0,  0,  0,  0,  0,  4,  0,  6,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  1, 64,  9,244,229,160,  0,  0,  0,196,  0,  0,  0,  1,
+  9,244,231, 16,  9,244,228, 48,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 88,  1,  0,  0,104,117,  1,  2,  0,  0,  0,  0,196,  0,  0,  0,  1,  0,  0,  0,  8,119,  1,  2,  0,  0,  0,  0,184,104, 68,  2,
-  0,  0,  0,  0, 88, 83,190,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116,
- 97,109,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116,
- 97,109,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 83,116, 97,109,112,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 83,116, 97,109,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,194,253, 57,  1,  0,  0, 20,  0,  0,  0,
-  4,  0,  6,  0,  0,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,253,194,  1, 57,  0,  0,  0, 20,  0,  0,  0,  4,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 88,  1,  0,  0,  8,119,  1,  2,  0,  0,  0,  0,196,  0,  0,  0,
-  1,  0,  0,  0,104,151, 78,  3,  0,  0,  0,  0,104,117,  1,  2,  0,  0,  0,  0,200, 85,190,  2,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  1, 64,  9,244,231, 16,  0,  0,  0,196,  0,  0,  0,  1,  9,244,232,128,  9,244,229,160,  0,  0,  0,  0,
   0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0, 79,117,116,112,117,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0, 40,253, 57,  1,130,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0, 10,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,253, 40,  1, 57,  0,130,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 10,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 88,  1,  0,  0,104,151, 78,  3,  0,  0,  0,  0,196,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,119,  1,  2,
-  0,  0,  0,  0,  8, 93,190,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,
-107,101,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,
-107,101,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 66, 97,107,101,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,253, 57,  1,  0,  0,  0,  0,  0,  0,
-  4,  0,  7,  0,  0,  0,  0,  0, 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,248,  0,  0,  0,120,133, 29,  2,  0,  0,  0,  0,162,  0,  0,  0,
-  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,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  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,  1,  0,
-  0,  0,  0,  0, 72,128, 81,  3,  0,  0,  0,  0,255, 21,  0,  0,160,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
-160,  0,  0,  0,184,134, 29,  2,  0,  0,  0,  0,197,  0,  0,  0,  1,  0,  0,  0,168,139, 29,  2,  0,  0,  0,  0,168,129, 29,  2,
-  0,  0,  0,  0, 72,105, 29,  2,  0,  0,  0,  0,168,109, 29,  2,  0,  0,  0,  0, 24,110, 29,  2,  0,  0,  0,  0,232,107, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 51,  6,  0,  0,  0,  0,  0,  0,123,  0,  0,  0, 15, 15, 52,  6,
-124,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,168,212,  2,  2,  0,  0,  0,  0,136,138, 29,  2,  0,  0,  0,  0,136,138, 29,  2,
-  0,  0,  0,  0,168,135, 29,  2,  0,  0,  0,  0, 24,137, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,120,222,176,  3,  0,  0,  0,  0, 72,166,179,  3,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,168,135, 29,  2,
-  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0, 24,137, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0, 32,140, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,  0,128,198, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 51,  6,  0,  0,  0,  0,  0,  0, 25,  0,  0,  0,  0, 96,198, 68,  0,  0,200, 65,  0, 96,198, 68,  0,  0,200, 65,  0,  0,128, 63,
-  0,  0,128, 63,  0,  0,  0,  0,  2,  0,  3,  3,  4,  0, 12,  0, 10,  0, 52,  6, 26,  0, 52,  6, 26,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 51,  6,  0,  0,  0,  0,  0,  0, 25,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 52,  6, 26,  0,  0,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,184,214,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0, 24,137, 29,  2,
-  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,168,135, 29,  2,  0,  0,  0,  0,  0,  0, 64,192,
-  0,  0,126, 67,  0,  0,  0,  0,  0,  0, 72, 66,112,189, 17,192,246, 70,125, 67,  0,  0,  0,  0,  0,  0, 72, 66,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 51,  6,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,
- 51,  6,  0,  0, 18,  0,  0,  0, 97,  0,  0,  0,  0,  0,128, 63,  0,  0, 72, 66,  0,124,146, 72,  0,  0, 72, 66,205,204,204, 61,
-  0,  0, 32, 65, 72,  0,  0,  0,  0,  0,  0,  2,  4,  0,  0,  4,  8,  0, 52,  6, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 51,  6,  0,  0, 26,  0,  0,  0,123,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 52,  6, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,200,213,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,216,  0,  0,  0,136,138, 29,  2,
-  0,  0,  0,  0,173,  0,  0,  0,  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, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,
-  6,  0,  0,  0, 68, 65, 84, 65,160,  0,  0,  0,168,139, 29,  2,  0,  0,  0,  0,197,  0,  0,  0,  1,  0,  0,  0,104,146, 29,  2,
-  0,  0,  0,  0,184,134, 29,  2,  0,  0,  0,  0,200,108, 29,  2,  0,  0,  0,  0, 72,112, 29,  2,  0,  0,  0,  0,184,112, 29,  2,
-  0,  0,  0,  0, 56,109, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 53,  6,  0,  0,126,  7,  0,  0,185,  1,  0,  0,
- 31,  3,  0,  0,  3,  3, 74,  1,103,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,168,209,  2,  2,  0,  0,  0,  0,120,143, 29,  2,
-  0,  0,  0,  0,120,143, 29,  2,  0,  0,  0,  0,152,140, 29,  2,  0,  0,  0,  0,  8,142, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  6, 68,  2,  0,  0,  0,  0, 56,177, 79,  3,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  1,  0,  0,152,140, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  8,142, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,128,244, 67,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,  0,  0,165, 67,  0,  0,  0,  0,
-  0,  0,208, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0, 73,  1,  0,  0,  0,  0,  0,  0, 25,  0,  0,  0,  0,128,164, 67,  0,  0,200, 65,  0,128,164, 67,
-  0,  0,200, 65,  0,  0,128, 63,  0,  0,128, 63,  0,  0,  0,  0,  2,  0,  3,  3,  4,  0, 12,  0, 10,  0, 74,  1, 26,  0, 74,  1,
- 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 53,  6,  0,  0,126,  7,  0,  0,  6,  3,  0,  0,
- 31,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 74,  1, 26,  0,  0,  0,  1,  0,  1,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,184,211,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  1, 64,  9,244,232,128,
+  0,  0,  0,196,  0,  0,  0,  1,  0,  0,  0,  0,  9,244,231, 16,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95, 98, 97,107,101,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95, 98, 97,107,101,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 66, 97,107,101,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  1,  0,  0,  8,142, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,140, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,128,141, 67,  0,  0,244,194,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,156, 67,  0,128,157,195,
-  0,  0,  0,  0, 57,  1,  0,  0, 74,  1,  0,  0, 18,  0,  0,  0, 76,  1,  0,  0,  0,  0,  0,  0, 56,  1,  0,  0,  0,  0,  0,  0,
- 17,  0,  0,  0,  0,  0,  0,  0, 56,  1,  0,  0, 18,  0,  0,  0, 76,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,128, 63,  0,  0,128, 63, 18,  6,  0,  0,  2,  0,  3,  3,  0,  0, 12,  4,  6,  0, 74,  1, 77,  1, 57,  1,
- 59,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 53,  6,  0,  0,126,  7,  0,  0,185,  1,  0,  0,
-  5,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 74,  1, 77,  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,200,210,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,253, 16,  1, 57,  0,  0,
+  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 24,  1,  0,  0,120,143, 29,  2,  0,  0,  0,  0,166,  0,  0,  0,  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,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,216,  9,244,233,240,  0,  0,  0,162,  0,  0,  0,  1,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,136, 69, 62,  3,
-  0,  0,  0,  0,136, 69, 62,  3,  0,  0,  0,  0,216,144, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  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,  0,  0,  0, 68, 65, 84, 65, 16,  0,  0,  0,216,144, 29,  2,  0,  0,  0,  0,220,  0,  0,  0,
-  1,  0,  0,  0, 14,  0,  0,  0, 14,  0,  0,  0, 56,145, 29,  2,  0,  0,  0,  0, 68, 65, 84, 65,224,  0,  0,  0, 56,145, 29,  2,
-  0,  0,  0,  0,219,  0,  0,  0, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,152,219, 31,  2,  0,  0,  0,  0, 19,  0,  0,  0,
-  1,  0,  1,  0,152,219, 31,  2,  0,  0,  0,  0, 20,  0,  0,  0,  1,  0,  1,  0,152,219, 31,  2,  0,  0,  0,  0, 21,  0,  1,  0,
-  1,  0,  0,  0,152,219, 31,  2,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  8,240, 31,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  1,  0,  1,  0,248,248, 31,  2,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,232, 78, 33,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  1,  0,  1,  0, 56,  6, 32,  2,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0, 24,172, 32,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  1,  0,  1,  0,232,255, 31,  2,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,136,235, 31,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  1,  0,  1,  0,168,242, 31,  2,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,184,234, 31,  2,  0,  0,  0,  0, 21,  0,  0,  0,
-  1,  0,  1,  0,152,219, 31,  2,  0,  0,  0,  0, 68, 65, 84, 65,160,  0,  0,  0,104,146, 29,  2,  0,  0,  0,  0,197,  0,  0,  0,
-  1,  0,  0,  0,184,159, 29,  2,  0,  0,  0,  0,168,139, 29,  2,  0,  0,  0,  0,136,110, 29,  2,  0,  0,  0,  0,248,110, 29,  2,
-  0,  0,  0,  0, 88,108, 29,  2,  0,  0,  0,  0, 24,110, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,165,  2,  0,  0,
- 51,  6,  0,  0,125,  0,  0,  0,233,  3,  0,  0,  1,  1,143,  3,109,  3,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,168,215,  2,  2,
-  0,  0,  0,  0, 56,158, 29,  2,  0,  0,  0,  0, 56,158, 29,  2,  0,  0,  0,  0, 88,147, 29,  2,  0,  0,  0,  0, 24,153, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,120, 76,  3,  0,  0,  0,  0,104,176,176,  3,
-  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0, 88,147, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,200,148, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,113, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,
-  0,192, 99, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,142,  3,  0,  0,  0,  0,  0,  0, 25,  0,  0,  0,  0,128, 99, 68,
-  0,  0,200, 65,  0,128, 99, 68,  0,  0,200, 65,  0,  0,128, 63,  0,  0,128, 63,  0,  0,  0,  0,  2,  0,  3,  3,  4,  0, 12,  0,
- 10,  0,143,  3, 26,  0,143,  3, 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,165,  2,  0,  0,
- 51,  6,  0,  0,125,  0,  0,  0,150,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,143,  3, 26,  0,
-  0,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,226,  2,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,200,148, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0, 56,150, 29,  2,
-  0,  0,  0,  0, 88,147, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15, 67,  0, 64, 70,196,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0, 15, 67,255,127, 70,196,  0,  0,  0,  0,143,  0,  0,  0,160,  0,  0,  0, 18,  0,  0,  0, 43,  3,  0,  0,  0,  0,  0,  0,
-142,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,142,  0,  0,  0, 18,  0,  0,  0, 43,  3,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,  0,  0,  0, 64, 10,  0,  0,  0,  1,  0,  7,  0, 18,  0,  0,  0,
-  6,  0,160,  0, 44,  3,143,  0, 26,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,165,  2,  0,  0,
-165,  2,  0,  0,151,  0,  0,  0,233,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0, 83,  3,
-  0,  0,  5,  0,  3,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,200,222,  2,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0, 56,150, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,168,151, 29,  2,
-  0,  0,  0,  0,200,148, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16, 67,  0,  0,206,194,  0,  0,  0,  0,  0,  0,  0,  0,
-231,102, 16, 67,  0,  0,206,194,  0,  0,  0,  0,143,  0,  0,  0,160,  0,  0,  0, 18,  0,  0,  0,119,  0,  0,  0,  0,  0,  0,  0,
-142,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,142,  0,  0,  0, 18,  0,  0,  0,119,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,  0,  0,  0, 64, 10,  0,  0,  0,  1,  0,  7,  0, 18,  0,  0,  4,
-  6,  0,160,  0,120,  0,143,  0,102,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,165,  2,  0,  0,
- 51,  6,  0,  0,151,  0,  0,  0,151,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,
-  0,  0,  6,  0, 34,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,184,223,  2,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,168,151, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0, 24,153, 29,  2,
-  0,  0,  0,  0, 56,150, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 35, 67,  0,128, 96,196,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0, 35, 67,  0,128, 96,196,  0,  0,  0,  0,163,  0,  0,  0,180,  0,  0,  0, 18,  0,  0,  0,147,  3,  0,  0,  0,  0,  0,  0,
-162,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,162,  0,  0,  0, 18,  0,  0,  0,147,  3,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,  0,  0,  0, 64, 10,  0,  0,  0,  1,  0,  7,  0, 18,  0,  0,  0,
-  6,  0,180,  0,148,  3,163,  0,130,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 51,  6,  0,  0,
- 51,  6,  0,  0,151,  0,  0,  0,233,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,
-  0,  0,  4,  0,  4,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,184,217,  2,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0, 24,153, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,168,151, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,165,  2,  0,  0,
- 51,  6,  0,  0,151,  0,  0,  0,233,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,143,  3, 83,  3,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,200,216,  2,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,136,154, 29,  2,
-  0,  0,  0,  0, 68, 65, 84, 65, 96,  3,  0,  0,136,154, 29,  2,  0,  0,  0,  0,156,  0,  0,  0,  1,  0,  0,  0,  0,  0,140, 63,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,233,222,149, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 28, 13,128,191,  0,  0,128,191,  0,  0,  0,  0,  0,  0,  0,  0, 74,215, 76,190,  0,  0,  0,  0, 68,239,209, 62,
- 51,177,205,190,184,158, 81, 63,  0,  0,  0,  0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190,  0,  0,  0,  0,162, 84, 89,188,
-166, 33,101, 63, 42, 61,228, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,214,211,111,193,  0,  0,128, 63, 69,239,209, 62,
- 70,119,105, 63,176, 84, 89,188,  0,  0,  0,  0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63,  0,  0,  0,  0,185,158, 81, 63,
- 35, 44,185,190, 43, 61,228, 62,  0,  0,  0,  0,164, 96, 68, 65,111,121,173,192,248,209,213, 64,  0,  0,128, 63,178,157,229, 62,
-123,214,240,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 29, 44,104, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,
- 25, 36,134, 63,138, 84,228,190, 42, 61,228,190,  0,  0,  0,  0,  0,  0,  0,  0,  9,185,108, 65,214,211,111, 65,  8,240,191, 62,
-130,116, 85, 63,112,191, 70,188,  0,  0,224,180,179,172,175,190,143, 90, 41, 62,193,177, 67, 63,  0,  0,  8, 52,207,107,117,194,
- 80,204,216, 65, 41,156,  5,194,136,247,159,192,121, 62,114, 66,213,253,213,193, 95,225,  3, 66,236,  7,160, 64, 68,239,209, 62,
- 51,177,205,190,184,158, 81, 63,  0,  0,  0,  0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190,  0,  0,  0,  0,162, 84, 89,188,
-166, 33,101, 63, 42, 61,228, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,214,211,111,193,  0,  0,128, 63,178,157,229, 62,
-123,214,240,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 29, 44,104, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,
- 25, 36,134, 63,138, 84,228,190, 42, 61,228,190,  0,  0,  0,  0,  0,  0,  0,  0,  9,185,108, 65,214,211,111, 65, 93,106, 16, 64,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,106, 16, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 93,106, 16, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63, 92, 62, 55, 63,
- 56,186,224,190,237,203,148,190,  3,236,234,190,214,211,111, 65,214,211,111, 65,  0,  0,  0,  0,  0,  0,  0,  0,116,139,  3, 59,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,255,  1,  0,  0,  0,  0,  0,  0,  0,  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,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63, 30, 33, 12, 66, 86,152,137, 66,116, 27,126, 66,  0,  0,  0,  0, 68, 65, 84, 65,
- 56,  1,  0,  0, 56,158, 29,  2,  0,  0,  0,  0,157,  0,  0,  0,  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,  1,  0,  0,  0, 51, 51, 51, 63,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 65,
-  0,  0,  0,  0,  1,  0,  0,  0,  1,  0,  7,  0,168,242, 31,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  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,  0,  0,  0,
-  1,  0,  0,  0,  3,  0,  0,  0,  1,  0,  3,  0,  8,  8,  0,  0,  0,  0, 12, 66,  0,  0,128, 63,205,204,204, 61,  0,  0,250, 67,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0, 10,  0,  7,  1,
-  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,160,  0,  0,  0,184,159, 29,  2,  0,  0,  0,  0,197,  0,  0,  0,
-  1,  0,  0,  0, 88,168, 29,  2,  0,  0,  0,  0,104,146, 29,  2,  0,  0,  0,  0,168,109, 29,  2,  0,  0,  0,  0,104,111, 29,  2,
-  0,  0,  0,  0,216,111, 29,  2,  0,  0,  0,  0,136,110, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-163,  2,  0,  0,125,  0,  0,  0,107,  1,  0,  0,  2,  2,164,  2,239,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,226,  2,  2,
-  0,  0,  0,  0,104,166, 29,  2,  0,  0,  0,  0,104,166, 29,  2,  0,  0,  0,  0,168,160, 29,  2,  0,  0,  0,  0,248,164, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,165,176,  3,  0,  0,  0,  0,  8,223, 78,  3,
-  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,168,160, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0, 24,162, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,119, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,
-  0,  0, 41, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,163,  2,  0,  0,  0,  0,  0,  0, 25,  0,  0,  0,  0,192, 40, 68,
-  0,  0,200, 65,  0,192, 40, 68,  0,  0,200, 65,  0,  0,128, 63,  0,  0,128, 63,  0,  0,  0,  0,  2,  0,  3,  3,  4,  0, 12,  0,
- 10,  0,164,  2, 26,  0,164,  2, 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-163,  2,  0,  0,125,  0,  0,  0,150,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,164,  2, 26,  0,
-  0,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,229,  2,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0, 24,162, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,136,163, 29,  2,
-  0,  0,  0,  0,168,160, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72, 67,  0,  0,112,193,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0, 72, 67,  0,  0, 67,195,  0,  0,  0,  0,200,  0,  0,  0,217,  0,  0,  0, 18,  0,  0,  0,212,  0,  0,  0,  0,  0,  0,  0,
-199,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,199,  0,  0,  0, 18,  0,  0,  0,212,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,128, 63, 10,  6,  0,  0,  2,  0,  3,  3,  0,  0,  0,  4,
-  6,  0,217,  0,213,  0,200,  0,195,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-216,  0,  0,  0,151,  0,  0,  0,107,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,217,  0,213,  0,
-  0,  0,  2,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,229,  2,  2,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  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,  1,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 21,255,  0,  0,  0,160,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 96,  9,244,234,240,
+  0,  0,  0,197,  0,  0,  0,  1,  9,244,238,176,  9,244,213,224,  9,242,109,144,  9,254, 80, 80,  9,203, 26,208,  4,211,186, 80,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6, 51,  0,  0,  0,  0,  0,  0,  0,123, 15, 15,  6, 52,  0,124,  0,  1,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  9,244,237,192,  9,244,237,192,  9,244,235,128,  9,244,236,160,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,248,  9,244,235,128,  0,  0,  0,198,  0,  0,  0,  1,  9,244,236,160,
+  0,  0,  0,  0,  0,  0,  0,  0, 68,140, 32,  0,  0,  0,  0,  0, 65,208,  0,  0,  0,  0,  0,  0, 68,198,128,  0,  0,  0,  0,  0,
+ 65,208,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6, 51,  0,  0,  0,  0,  0,  0,  0, 25, 68,198, 96,  0, 65,200,  0,  0, 68,198, 96,  0,
+ 65,200,  0,  0, 63,128,  0,  0, 63,128,  0,  0,  0,  0,  0,  0,  0,  2,  3,  3,  0,  4,  0, 12,  0, 10,  6, 52,  0, 26,  6, 52,
+  0, 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6, 51,  0,  0,  0,  0,  0,  0,  0, 25,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6, 52,  0, 26,  0,  0,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,136,163, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,248,164, 29,  2,
-  0,  0,  0,  0, 24,162, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,248,  9,244,236,160,
+  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  9,244,235,128,192, 64,  0,  0, 67,126,  0,  0,  0,  0,  0,  0, 66, 72,  0,  0,
+192, 17,189,112, 67,125, 70,246,  0,  0,  0,  0, 66, 72,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  6, 51,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  6, 51,  0,  0,  0, 18,  0,  0,  0, 97,
+ 63,128,  0,  0, 66, 72,  0,  0, 72,146,124,  0, 66, 72,  0,  0, 61,204,204,205, 65, 32,  0,  0,  0, 72,  0,  0,  0,  0,  2,  0,
+  0,  4,  4,  0,  0,  8,  6, 52,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  6, 51,  0,  0,  0, 26,  0,  0,  0,123,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6, 52,  0, 98,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0,188,  9,244,237,192,  0,  0,  0,173,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,163,  2,  0,  0,
-163,  2,  0,  0,151,  0,  0,  0,107,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,
-  0,  0,  4,  0,  4,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,232,230,  2,  2,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,248,164, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,136,163, 29,  2,  0,  0,  0,  0,  0,  0, 16,193,  0,  0,130, 67,  0,  0,160,192,  0,  0,160, 64,  0,  0,  0,  0,
-  0,  0,122, 67,  0,  0, 16,193,  0,  0, 32, 65,  0,  0,  0,  0, 17,  0,  0,  0, 18,  0,  0,  0,212,  0,  0,  0, 18,  0,  0,  0,
-202,  1,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0, 18,  0,  0,  0,202,  1,  0,  0, 18,  0,  0,  0,212,  0,  0,  0,111, 18,131, 58,
-111, 18,131, 58,  0,124,146, 72,  0, 80, 67, 71,  0,  0,  0,  0,  0,  0,  0,  0,105,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,
-  0,  0,203,  1,213,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,217,  0,  0,  0,
-163,  2,  0,  0,151,  0,  0,  0,107,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,203,  1,213,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,228,  2,  2,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0, 31,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  6, 68, 65, 84, 65,  0,  0,  0, 96,  9,244,238,176,  0,  0,  0,197,
+  0,  0,  0,  1,  9,244,243,176,  9,244,234,240,  9,202,233,240, 11, 21,225, 32,  4,211,174, 48, 11, 29,185,144,  0,  0,  0,  0,
+  0,  0,  6, 53,  0,  0,  7,126,  0,  0,  1,185,  0,  0,  3, 31,  3,  3,  1, 74,  1,103,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  9,244,241,128,  9,244,241,128,  9,244,239, 64,  9,244,240, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,248,  9,244,239, 64,  0,  0,  0,198,  0,  0,  0,  1,  9,244,240, 96,  0,  0,  0,  0,
+  0,  0,  0,  0, 67,244,128,  0,  0,  0,  0,  0, 65,208,  0,  0,  0,  0,  0,  0, 67,165,  0,  0,  0,  0,  0,  0, 65,208,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65,240,  0,  0,  0,104,166, 29,  2,  0,  0,  0,  0,161,  0,  0,  0,  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,  2,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  1, 73,  0,  0,  0,  0,  0,  0,  0, 25, 67,164,128,  0, 65,200,  0,  0, 67,164,128,  0, 65,200,  0,  0,
+ 63,128,  0,  0, 63,128,  0,  0,  0,  0,  0,  0,  0,  2,  3,  3,  0,  4,  0, 12,  0, 10,  1, 74,  0, 26,  1, 74,  0, 26,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6, 53,  0,  0,  7,126,  0,  0,  3,  6,  0,  0,  3, 31,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 74,  0, 26,  0,  0,  0,  1,  0,  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, 68, 65, 84, 65,  0,  0,  0,248,  9,244,240, 96,  0,  0,  0,198,
+  0,  0,  0,  1,  0,  0,  0,  0,  9,244,239, 64,  0,  0,  0,  0, 67,141,128,  0,194,244,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 67,156,128,  0,195,157,128,  0,  0,  0,  0,  0,  0,  0,  1, 57,  0,  0,  1, 74,  0,  0,  0, 18,  0,  0,  1, 76,  0,  0,  0,  0,
+  0,  0,  1, 56,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  1, 56,  0,  0,  0, 18,  0,  0,  1, 76,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,128,  0,  0, 63,128,  0,  0,  6, 18,  0,  0,  0,  2,  3,  3,  0,  0,  4, 12,
+  0,  6,  1, 74,  1, 77,  1, 57,  1, 59,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6, 53,  0,  0,  7,126,
+  0,  0,  1,185,  0,  0,  3,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 74,  1, 77,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0,244,  9,244,241,128,  0,  0,  0,166,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,244,242,160,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  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,  0,  0, 68, 65, 84, 65,  0,  0,  0, 12,  9,244,242,160,  0,  0,  0,220,  0,  0,  0,  1,  0,  0,  0, 14,  0,  0,  0, 14,
+  9,244,242,224, 68, 65, 84, 65,  0,  0,  0,168,  9,244,242,224,  0,  0,  0,219,  0,  0,  0, 14,  0,  0,  0,  0,  0,  0,  0,  1,
+  2,154,244, 32,  0, 19,  0,  0,  0,  1,  0,  1,  2,154,244, 32,  0, 20,  0,  0,  0,  1,  0,  1,  2,154,244, 32,  0, 21,  0,  1,
+  0,  1,  0,  0,  2,154,244, 32,  0,  0,  0,  0,  0,  1,  0,  1, 11, 28, 31,176,  0,  0,  0,  0,  0,  1,  0,  1,  2,174, 10, 32,
+  0,  0,  0,  0,  0,  1,  0,  1, 11, 28, 39, 32,  0,  0,  0,  0,  0,  1,  0,  1,  2,187,108, 32,  0,  0,  0,  0,  0,  1,  0,  1,
+ 11, 28, 37,112,  0,  0,  0,  0,  0,  1,  0,  1,  2,206,150, 32,  0,  0,  0,  0,  0,  1,  0,  1, 11, 28, 28, 64,  0,  0,  0,  0,
+  0,  1,  0,  1,  2,212,100, 32,  0,  0,  0,  0,  0,  1,  0,  1, 11, 28, 27,176,  0, 21,  0,  0,  0,  1,  0,  1,  2,154,244, 32,
+ 68, 65, 84, 65,  0,  0,  0, 96,  9,244,243,176,  0,  0,  0,197,  0,  0,  0,  1,  9,244,251,  0,  9,244,238,176, 11, 21,219,240,
+ 11, 29,143, 96, 12, 96, 12, 32,  9,203, 26,208,  0,  0,  0,  0,  0,  0,  2,165,  0,  0,  6, 51,  0,  0,  0,125,  0,  0,  3,233,
+  1,  1,  3,143,  3,109,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,244,249,224,  9,244,249,224,  9,244,244, 64,
+  9,244,248,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,248,  9,244,244, 64,
+  0,  0,  0,198,  0,  0,  0,  1,  9,244,245, 96,  0,  0,  0,  0,  0,  0,  0,  0, 68,113, 64,  0,  0,  0,  0,  0, 65,208,  0,  0,
+  0,  0,  0,  0, 68, 99,192,  0,  0,  0,  0,  0, 65,208,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,142,  0,  0,  0,  0,  0,  0,  0, 25,
+ 68, 99,128,  0, 65,200,  0,  0, 68, 99,128,  0, 65,200,  0,  0, 63,128,  0,  0, 63,128,  0,  0,  0,  0,  0,  0,  0,  2,  3,  3,
+  0,  4,  0, 12,  0, 10,  3,143,  0, 26,  3,143,  0, 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,165,
+  0,  0,  6, 51,  0,  0,  0,125,  0,  0,  0,150,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,143,  0, 26,
+  0,  0,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0,248,  9,244,245, 96,  0,  0,  0,198,  0,  0,  0,  1,  9,244,246,128,  9,244,244, 64,  0,  0,  0,  0,
+ 67, 15,  0,  0,196, 70, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0, 67, 15,  0,  0,196, 70,127,255,  0,  0,  0,  0,  0,  0,  0,143,
+  0,  0,  0,160,  0,  0,  0, 18,  0,  0,  3, 43,  0,  0,  0,  0,  0,  0,  0,142,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,
+  0,  0,  0,142,  0,  0,  0, 18,  0,  0,  3, 43,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,  0,  0,  0,
+ 64,  0,  0,  0,  0, 10,  0,  0,  0,  1,  0,  7,  0, 18,  0,  0,  0,  6,  0,160,  3, 44,  0,143,  3, 26,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,165,  0,  0,  2,165,  0,  0,  0,151,  0,  0,  3,233,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  3, 83,  0,  0,  0,  5,  0,  3,  0,  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, 68, 65, 84, 65,  0,  0,  0,248,  9,244,246,128,  0,  0,  0,198,  0,  0,  0,  1,
+  9,244,247,160,  9,244,245, 96,  0,  0,  0,  0, 67, 16,  0,  0,194,206,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 67, 16,102,231,
+194,206,  0,  0,  0,  0,  0,  0,  0,  0,  0,143,  0,  0,  0,160,  0,  0,  0, 18,  0,  0,  0,119,  0,  0,  0,  0,  0,  0,  0,142,
+  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,142,  0,  0,  0, 18,  0,  0,  0,119,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0, 63,  0,  0,  0, 64,  0,  0,  0,  0, 10,  0,  0,  0,  1,  0,  7,  0, 18,  4,  0,  0,  6,  0,160,
+  0,120,  0,143,  0,102,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,165,  0,  0,  6, 51,  0,  0,  0,151,
+  0,  0,  0,151,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  0,  0,  6,  0, 34,  0,  2,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,248,
+  9,244,247,160,  0,  0,  0,198,  0,  0,  0,  1,  9,244,248,192,  9,244,246,128,  0,  0,  0,  0, 67, 35,  0,  0,196, 96,128,  0,
+  0,  0,  0,  0,  0,  0,  0,  0, 67, 35,  0,  0,196, 96,128,  0,  0,  0,  0,  0,  0,  0,  0,163,  0,  0,  0,180,  0,  0,  0, 18,
+  0,  0,  3,147,  0,  0,  0,  0,  0,  0,  0,162,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,162,  0,  0,  0, 18,
+  0,  0,  3,147,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,  0,  0,  0, 64,  0,  0,  0,  0, 10,  0,  0,
+  0,  1,  0,  7,  0, 18,  0,  0,  0,  6,  0,180,  3,148,  0,163,  3,130,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  6, 51,  0,  0,  6, 51,  0,  0,  0,151,  0,  0,  3,233,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  1,  0,  1,  0,  0,  0,  4,  0,  4,  0,  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, 68, 65, 84, 65,  0,  0,  0,248,  9,244,248,192,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  9,244,247,160,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  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,165,  0,  0,  6, 51,  0,  0,  0,151,  0,  0,  3,233,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,143,  3, 83,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  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,199,250, 32, 68, 65, 84, 65,  0,  0,  3, 68,  2,199,250, 32,  0,  0,  0,156,
+  0,  0,  0,  1, 63,140,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,149,222,233,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,191,128, 13, 28,191,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,190, 76,215, 74,
+  0,  0,  0,  0, 62,209,239, 68,190,205,177, 51, 63, 81,158,184,  0,  0,  0,  0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35,
+  0,  0,  0,  0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,193,111,211,214,
+ 63,128,  0,  0, 62,209,239, 69, 63,105,119, 70,188, 89, 84,176,  0,  0,  0,  0,190,205,177, 53, 62, 70, 74,142, 63,101, 33,166,
+  0,  0,  0,  0, 63, 81,158,185,190,185, 44, 35, 62,228, 61, 43,  0,  0,  0,  0, 65, 68, 96,164,192,173,121,111, 64,213,209,248,
+ 63,128,  0,  0, 62,229,157,178,190,240,214,123,191, 81,180, 48,191, 81,158,184, 63,127, 90,117, 62,104, 44, 29, 62,185, 63, 26,
+ 62,185, 44, 35,188,109,180,145, 63,134, 36, 25,190,228, 84,138,190,228, 61, 42,  0,  0,  0,  0,  0,  0,  0,  0, 65,108,185,  9,
+ 65,111,211,214, 62,191,240,  8, 63, 85,116,130,188, 70,191,112,180,224,  0,  0,190,175,172,179, 62, 41, 90,143, 63, 67,177,193,
+ 52,  8,  0,  0,194,117,107,207, 65,216,204, 80,194,  5,156, 41,192,159,247,136, 66,114, 62,121,193,213,253,213, 66,  3,225, 95,
+ 64,160,  7,236, 62,209,239, 68,190,205,177, 51, 63, 81,158,184,  0,  0,  0,  0, 63,105,119, 70, 62, 70, 74,143,190,185, 44, 35,
+  0,  0,  0,  0,188, 89, 84,162, 63,101, 33,166, 62,228, 61, 42,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,193,111,211,214,
+ 63,128,  0,  0, 62,229,157,178,190,240,214,123,191, 81,180, 48,191, 81,158,184, 63,127, 90,117, 62,104, 44, 29, 62,185, 63, 26,
+ 62,185, 44, 35,188,109,180,145, 63,134, 36, 25,190,228, 84,138,190,228, 61, 42,  0,  0,  0,  0,  0,  0,  0,  0, 65,108,185,  9,
+ 65,111,211,214, 64, 16,106, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 16,106, 93,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 16,106, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 63,128,  0,  0, 63, 55, 62, 92,190,224,186, 56,190,148,203,237,190,234,236,  3, 65,111,211,214, 65,111,211,214,  0,  0,  0,  0,
+  0,  0,  0,  0, 59,  3,139,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,255,  1,  0,  0,  0,  0,  0,  0,  0,
+  0,  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,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,128,  0,  0, 66, 12, 33, 30, 66,137,152, 86,
+ 66,126, 27,116,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,240,  9,244,249,224,  0,  0,  0,157,  0,  0,  0,  1,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 63, 51, 51, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0, 63,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 65, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
+  0,  1,  0,  7,  2,212,100, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  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,
+  0,  0,  0,  1,  0,  3,  0,  0,  0,  1,  0,  3,  8,  8,  0,  0, 66, 12,  0,  0, 63,128,  0,  0, 61,204,204,205, 67,250,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0, 10,  7,  1,
+  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 96,  9,244,251,  0,  0,  0,  0,197,  0,  0,  0,  1,
+  9,245,  1,144,  9,244,243,176,  9,254, 80, 80,  9,251,242,176,  9,253,135,  0, 11, 21,219,240,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  2,163,  0,  0,  0,125,  0,  0,  1,107,  2,  2,  2,164,  0,239,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  9,245,  0, 16,  9,245,  0, 16,  9,244,251,144,  9,244,254,240,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0,248,  9,244,251,144,  0,  0,  0,198,  0,  0,  0,  1,  9,244,252,176,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68,119, 64,  0,  0,  0,  0,  0, 65,208,  0,  0,  0,  0,  0,  0, 68, 41,  0,  0,  0,  0,  0,  0, 65,208,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  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,163,  0,  0,  0,  0,  0,  0,  0, 25, 68, 40,192,  0, 65,200,  0,  0, 68, 40,192,  0, 65,200,  0,  0, 63,128,  0,  0,
+ 63,128,  0,  0,  0,  0,  0,  0,  0,  2,  3,  3,  0,  4,  0, 12,  0, 10,  2,164,  0, 26,  2,164,  0, 26,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,163,  0,  0,  0,125,  0,  0,  0,150,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  2,164,  0, 26,  0,  0,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,248,  9,244,252,176,  0,  0,  0,198,  0,  0,  0,  1,
+  9,244,253,208,  9,244,251,144,  0,  0,  0,  0, 67, 72,  0,  0,193,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 67, 72,  0,  0,
+195, 67,  0,  0,  0,  0,  0,  0,  0,  0,  0,200,  0,  0,  0,217,  0,  0,  0, 18,  0,  0,  0,212,  0,  0,  0,  0,  0,  0,  0,199,
+  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,199,  0,  0,  0, 18,  0,  0,  0,212,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0, 63,128,  0,  0, 63,128,  0,  0,  6, 10,  0,  0,  0,  2,  3,  3,  0,  0,  4,  0,  0,  6,  0,217,
+  0,213,  0,200,  0,195,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,216,  0,  0,  0,151,
+  0,  0,  1,107,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,217,  0,213,  0,  0,  0,  2,  0,  3,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,168,167, 29,  2,  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,  0,  0,  0,  0,  0, 68, 65, 84, 65,104,  0,  0,  0,168,167, 29,  2,  0,  0,  0,  0, 19,  1,  0,  0,
-  1,  0,  0,  0,152,219, 31,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,248,
+  9,244,253,208,  0,  0,  0,198,  0,  0,  0,  1,  9,244,254,240,  9,244,252,176,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,160,  0,  0,  0, 88,168, 29,  2,  0,  0,  0,  0,197,  0,  0,  0,
-  1,  0,  0,  0, 40,175, 29,  2,  0,  0,  0,  0,184,159, 29,  2,  0,  0,  0,  0,104,111, 29,  2,  0,  0,  0,  0,  8,107, 29,  2,
-  0,  0,  0,  0,248,110, 29,  2,  0,  0,  0,  0,216,111, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-163,  2,  0,  0,109,  1,  0,  0,233,  3,  0,  0, 12, 12,164,  2,125,  2,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56, 22,  3,  2,
-  0,  0,  0,  0,152,173, 29,  2,  0,  0,  0,  0,152,173, 29,  2,  0,  0,  0,  0, 72,169, 29,  2,  0,  0,  0,  0, 40,172, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,216, 86, 78,  3,  0,  0,  0,  0, 24,153, 74,  3,
-  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0, 72,169, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,184,170, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,124, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,
-  0,  0, 41, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,163,  2,  0,  0,  0,  0,  0,  0, 25,  0,  0,  0,  0,192, 40, 68,
-  0,  0,200, 65,  0,192, 40, 68,  0,  0,200, 65,  0,  0,128, 63,  0,  0,128, 63,  0,  0,  0,  0,  2,  0,  3,  3,  4,  0, 12,  0,
- 10,  0,164,  2, 26,  0,164,  2, 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-163,  2,  0,  0,109,  1,  0,  0,134,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,164,  2, 26,  0,
-  0,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72, 24,  3,  2,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,184,170, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0, 40,172, 29,  2,
-  0,  0,  0,  0, 72,169, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 55, 67,  0,  0,  0,194,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0, 72, 67,  0, 64, 20,196,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-199,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,199,  0,  0,  0, 18,  0,  0,  0, 98,  2,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,128, 63,  8,  4,  0,  0,  2,  0,  3,  3,  0,  0,  2,  4,
-  6,  0,200,  0, 99,  2,200,  0, 81,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-199,  0,  0,  0,135,  1,  0,  0,233,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,200,  0, 99,  2,
-  0,  0,  2,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56, 25,  3,  2,
+  0,  0,  2,163,  0,  0,  2,163,  0,  0,  0,151,  0,  0,  1,107,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  1,  0,  1,  0,  0,  0,  4,  0,  4,  0,  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, 68, 65, 84, 65,  0,  0,  0,248,  9,244,254,240,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  9,244,253,208,
+193, 16,  0,  0, 67,130,  0,  0,192,160,  0,  0, 64,160,  0,  0,  0,  0,  0,  0, 67,122,  0,  0,193, 16,  0,  0, 65, 32,  0,  0,
+  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0, 18,  0,  0,  0,212,  0,  0,  0, 18,  0,  0,  1,202,  0,  0,  0,  0,  0,  0,  0, 17,
+  0,  0,  0, 18,  0,  0,  1,202,  0,  0,  0, 18,  0,  0,  0,212, 58,131, 18,111, 58,131, 18,111, 72,146,124,  0, 71, 67, 80,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,105,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  1,203,  0,213,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,217,  0,  0,  2,163,  0,  0,  0,151,  0,  0,  1,107,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,203,  0,213,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,208,  9,245,  0, 16,  0,  0,  0,161,
+  0,  0,  0,  1,  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,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0, 40,172, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,184,170, 29,  2,  0,  0,  0,  0,  0,  0, 32,193,  0,  0,104, 68,  0,  0,  0,194,  0,  0,  0,  0,  0,  0, 32,193,
-  0,  0,104, 68,  0, 64, 20,196,  0,  0,  0,  0,203,  1,  0,  0,220,  1,  0,  0, 18,  0,  0,  0, 98,  2,  0,  0,  0,  0,  0,  0,
-202,  1,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,202,  1,  0,  0, 18,  0,  0,  0, 98,  2,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,124,146, 72,  0, 64, 28, 70, 10,215, 35, 60,  0,  0, 72, 66, 74,  0,  0,  0,  0,  0,  0,  2,  0,  0,  2,  4,
-  4,  0,220,  1, 99,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,200,  0,  0,  0,
-163,  2,  0,  0,135,  1,  0,  0,233,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,220,  1, 99,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 88, 23,  3,  2,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,245,  1, 16,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 88,  9,245,  1, 16,
+  0,  0,  1, 19,  0,  0,  0,  1,  2,154,244, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 64,  1,  0,  0,152,173, 29,  2,  0,  0,  0,  0, 20,  1,  0,  0,  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, 12,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0, 96,  9,245,  1,144,  0,  0,  0,197,  0,  0,  0,  1,  9,245,  6,192,  9,244,251,  0,  9,251,242,176,
+  9,253,198, 16, 11, 29,143, 96,  9,253,135,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,163,  0,  0,  1,109,  0,  0,  3,233,
+ 12, 12,  2,164,  2,125,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,245,  5,128,  9,245,  5,128,  9,245,  2, 32,
+  9,245,  4, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,248,  9,245,  2, 32,
+  0,  0,  0,198,  0,  0,  0,  1,  9,245,  3, 64,  0,  0,  0,  0,  0,  0,  0,  0, 68,124,192,  0,  0,  0,  0,  0, 65,208,  0,  0,
+  0,  0,  0,  0, 68, 41,  0,  0,  0,  0,  0,  0, 65,208,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  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,163,  0,  0,  0,  0,  0,  0,  0, 25,
+ 68, 40,192,  0, 65,200,  0,  0, 68, 40,192,  0, 65,200,  0,  0, 63,128,  0,  0, 63,128,  0,  0,  0,  0,  0,  0,  0,  2,  3,  3,
+  0,  4,  0, 12,  0, 10,  2,164,  0, 26,  2,164,  0, 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  2,163,  0,  0,  1,109,  0,  0,  1,134,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,164,  0, 26,
+  0,  0,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0,248,  9,245,  3, 64,  0,  0,  0,198,  0,  0,  0,  1,  9,245,  4, 96,  9,245,  2, 32,  0,  0,  0,  0,
+ 67, 55,  0,  0,194,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 67, 72,  0,  0,196, 20, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,199,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,
+  0,  0,  0,199,  0,  0,  0, 18,  0,  0,  2, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,128,  0,  0,
+ 63,128,  0,  0,  4,  8,  0,  0,  0,  2,  3,  3,  0,  0,  4,  2,  0,  6,  0,200,  2, 99,  0,200,  2, 81,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,199,  0,  0,  1,135,  0,  0,  3,233,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,200,  2, 99,  0,  0,  0,  2,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,248,  9,245,  4, 96,  0,  0,  0,198,  0,  0,  0,  1,
+  0,  0,  0,  0,  9,245,  3, 64,193, 32,  0,  0, 68,104,  0,  0,194,  0,  0,  0,  0,  0,  0,  0,193, 32,  0,  0, 68,104,  0,  0,
+196, 20, 64,  0,  0,  0,  0,  0,  0,  0,  1,203,  0,  0,  1,220,  0,  0,  0, 18,  0,  0,  2, 98,  0,  0,  0,  0,  0,  0,  1,202,
+  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  1,202,  0,  0,  0, 18,  0,  0,  2, 98,  0,  0,  0,  0,  0,  0,  0,  0,
+ 72,146,124,  0, 70, 28, 64,  0, 60, 35,215, 10, 66, 72,  0,  0,  0, 74,  0,  0,  0,  0,  2,  0,  0,  0,  4,  2,  0,  4,  1,220,
+  2, 99,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,200,  0,  0,  2,163,  0,  0,  1,135,
+  0,  0,  3,233,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,220,  2, 99,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  1, 24,
+  9,245,  5,128,  0,  0,  1, 20,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,219, 31,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  2,  0,  2,  0,  0,  0,  0, 68, 65, 84, 65,
-160,  0,  0,  0, 40,175, 29,  2,  0,  0,  0,  0,197,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 88,168, 29,  2,
-  0,  0,  0,  0, 72,112, 29,  2,  0,  0,  0,  0, 88,108, 29,  2,  0,  0,  0,  0,120,107, 29,  2,  0,  0,  0,  0,184,112, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 53,  6,  0,  0,126,  7,  0,  0, 33,  3,  0,  0,233,  3,  0,  0,  1,  1, 74,  1,
-201,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,168,215,  2,  2,  0,  0,  0,  0,168,182, 29,  2,  0,  0,  0,  0,168,182, 29,  2,
-  0,  0,  0,  0, 24,176, 29,  2,  0,  0,  0,  0,136,177, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 88, 44,186,  3,  0,  0,  0,  0,120,243,187,  3,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0, 24,176, 29,  2,
-  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,136,177, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,102, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,  0,  0,165, 67,  0,  0,  0, 64,  0,  0,208, 65,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 73,  1,  0,  0,  0,  0,  0,  0, 23,  0,  0,  0,  0,128,164, 67,  0,  0,200, 65,  0,128,164, 67,  0,  0,200, 65,  0,  0,128, 63,
-  0,  0,128, 63,  0,  0,  0,  0,  2,  0,  3,  3,  4,  0, 12,  0, 10,  0, 74,  1, 24,  0, 74,  1, 24,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 53,  6,  0,  0,126,  7,  0,  0, 33,  3,  0,  0, 33,  3,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  0,  0,  1,  0,  2,  0,  1,  0,  0,  0,  0,  0,  0,  0, 26,  0,
-  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,226,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,136,177, 29,  2,
-  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,176, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 53,  6,  0,  0,126,  7,  0,  0, 33,  3,  0,  0,233,  3,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 74,  1,201,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,200,216,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,178, 29,  2,  0,  0,  0,  0, 68, 65, 84, 65, 96,  3,  0,  0,248,178, 29,  2,
-  0,  0,  0,  0,156,  0,  0,  0,  1,  0,  0,  0, 57,255, 13, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 29, 33,105, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,154, 65,128,191,  0,  0,128,191,  0,  0,  0,  0,
-  0,  0,  0,  0, 72,  1, 77,190,  0,  0,  0,  0,221,149, 47, 63, 85,126,162,190,  8,165, 39, 63,  0,  0,  0,  0, 51, 70, 58, 63,
-225,251,159, 62,149, 84, 28,191,  0,  0,  0,  0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62,  0,  0,  0,  0, 90, 38,173,190,
-254,221,192,190,152,  9, 52,193,  0,  0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188,  0,  0,  0,  0, 87,126,162,190,
-228,251,159, 62, 56, 53,101, 63,  0,  0,  0,  0,  7,165, 39, 63,150, 84, 28,191, 50,247,227, 62,  0,  0,  0,  0,110,101,239, 64,
-151, 62,208,192, 77,255,170, 64,  0,  0,128, 63, 48,201,194, 63,  0,250,147,191,244,250, 39,191,  8,165, 39,191,191,164,206, 63,
-241,176,145, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188, 20,187, 80, 64,  8,108,228,190, 50,247,227,190,127, 21, 64,191,
-255,162,175,191,216, 49, 49, 65,152,  9, 52, 65,194, 70,158, 62,240,233,167, 62, 32,206,159,187,  0,  0,168,180, 34,111,178,189,
-170,173,175, 61,170,177,123, 62,  0,  0,  8, 51,211,120, 21,194,144,  5,  2, 66,  9,136,213,193,193,214,159,192,219, 38, 19, 66,
-196,173,255,193,157,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190,  8,165, 39, 63,  0,  0,  0,  0, 51, 70, 58, 63,
-225,251,159, 62,149, 84, 28,191,  0,  0,  0,  0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62,  0,  0,  0,  0, 90, 38,173,190,
-254,221,192,190,152,  9, 52,193,  0,  0,128, 63, 48,201,194, 63,  0,250,147,191,244,250, 39,191,  8,165, 39,191,191,164,206, 63,
-241,176,145, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188, 20,187, 80, 64,  8,108,228,190, 50,247,227,190,127, 21, 64,191,
-255,162,175,191,216, 49, 49, 65,152,  9, 52, 65,126,137, 19, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-126,137, 19, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,137, 19, 64,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,241, 22, 72, 63, 78,162,246,190, 44,  8, 90,190,  3, 35,171,190,  0,  0, 32, 65,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,162,  4, 51, 59,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0,255,255,
-  1,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  7,  0,  0,  0,128, 63,190,133, 65, 66,
-100,212, 90, 66, 31,183,118, 66,  0,  0,  0,  0, 68, 65, 84, 65, 56,  1,  0,  0,168,182, 29,  2,  0,  0,  0,  0,157,  0,  0,  0,
-  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,  1,  0,  0,  0, 51, 51, 51, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 65,  0,  0,  0,  0,  1,  0,  0,  0,  1,  0,  7,  0,168,242, 31,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  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,  0,  0,  0,  1,  0,  0,  0,  2,  0,  0,  0,  1,  0,  3,  0,  8,  0,  0,  0,
-  0,  0, 12, 66,  0,  0,128, 63, 10,215, 35, 60,  0,  0,250, 67,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0, 10,  0,  7,  1,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 83, 78,  0,  0,
-216,  0,  0,  0,184,184, 29,  2,  0,  0,  0,  0,193,  0,  0,  0,  1,  0,  0,  0, 72, 17, 30,  2,  0,  0,  0,  0, 40,104, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 83, 82, 67,111,109,112,111,115,105,116,105,110,
-103,  0,103, 46, 48, 48, 49,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,216,185, 29,  2,
-  0,  0,  0,  0,136,191, 29,  2,  0,  0,  0,  0,248,191, 29,  2,  0,  0,  0,  0, 40,201, 29,  2,  0,  0,  0,  0,152,201, 29,  2,
-  0,  0,  0,  0,  8,234, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,219, 31,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,232,216,159,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,216,185, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,
-  1,  0,  0,  0, 72,186, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0, 72,186, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,184,186, 29,  2,
-  0,  0,  0,  0,216,185, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,  4,  0,  0,  0,  0, 68, 65, 84, 65,
- 32,  0,  0,  0,184,186, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0, 40,187, 29,  2,  0,  0,  0,  0, 72,186, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  7,  5,  4,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0, 40,187, 29,  2,
-  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,152,187, 29,  2,  0,  0,  0,  0,184,186, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,126,  7,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,152,187, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,
-  1,  0,  0,  0,  8,188, 29,  2,  0,  0,  0,  0, 40,187, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,234,  3,
-  1,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,  8,188, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,120,188, 29,  2,
-  0,  0,  0,  0,152,187, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  7,234,  3,  1,  0,  0,  0, 68, 65, 84, 65,
- 32,  0,  0,  0,120,188, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,232,188, 29,  2,  0,  0,  0,  0,  8,188, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  6, 92,  0,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,232,188, 29,  2,
-  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0, 88,189, 29,  2,  0,  0,  0,  0,120,188, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,126,  7, 92,  0,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0, 88,189, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,
-  1,  0,  0,  0,200,189, 29,  2,  0,  0,  0,  0,232,188, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  6,234,  3,
-  1,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,200,189, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0, 56,190, 29,  2,
-  0,  0,  0,  0, 88,189, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,140,  1,  0,  0,  0,  0, 68, 65, 84, 65,
- 32,  0,  0,  0, 56,190, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,168,190, 29,  2,  0,  0,  0,  0,200,189, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  6,140,  1,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,168,190, 29,  2,
-  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0, 24,191, 29,  2,  0,  0,  0,  0, 56,190, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  4,  3,140,  1,  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0, 24,191, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,
-  1,  0,  0,  0,136,191, 29,  2,  0,  0,  0,  0,168,190, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  3,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 32,  0,  0,  0,136,191, 29,  2,  0,  0,  0,  0,194,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 24,191, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  6,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,248,191, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,104,192, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 72,186, 29,  2,  0,  0,  0,  0,184,186, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,104,192, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,216,192, 29,  2,  0,  0,  0,  0,248,191, 29,  2,
-  0,  0,  0,  0, 72,186, 29,  2,  0,  0,  0,  0,152,187, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,216,192, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 72,193, 29,  2,  0,  0,  0,  0,104,192, 29,  2,
-  0,  0,  0,  0,184,186, 29,  2,  0,  0,  0,  0,  8,188, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 72,193, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,184,193, 29,  2,  0,  0,  0,  0,216,192, 29,  2,
-  0,  0,  0,  0,152,187, 29,  2,  0,  0,  0,  0,  8,188, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,184,193, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 40,194, 29,  2,  0,  0,  0,  0, 72,193, 29,  2,
-  0,  0,  0,  0, 40,187, 29,  2,  0,  0,  0,  0,232,188, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 40,194, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,152,194, 29,  2,  0,  0,  0,  0,184,193, 29,  2,
-  0,  0,  0,  0,120,188, 29,  2,  0,  0,  0,  0,232,188, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,152,194, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,  8,195, 29,  2,  0,  0,  0,  0, 40,194, 29,  2,
-  0,  0,  0,  0,  8,188, 29,  2,  0,  0,  0,  0, 88,189, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,  8,195, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,120,195, 29,  2,  0,  0,  0,  0,152,194, 29,  2,
-  0,  0,  0,  0,152,187, 29,  2,  0,  0,  0,  0, 88,189, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,120,195, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,232,195, 29,  2,  0,  0,  0,  0,  8,195, 29,  2,
-  0,  0,  0,  0,120,188, 29,  2,  0,  0,  0,  0, 88,189, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,232,195, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 88,196, 29,  2,  0,  0,  0,  0,120,195, 29,  2,
-  0,  0,  0,  0,  8,188, 29,  2,  0,  0,  0,  0,232,188, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 88,196, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,200,196, 29,  2,  0,  0,  0,  0,232,195, 29,  2,
-  0,  0,  0,  0,152,187, 29,  2,  0,  0,  0,  0,200,189, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,200,196, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 56,197, 29,  2,  0,  0,  0,  0, 88,196, 29,  2,
-  0,  0,  0,  0, 88,189, 29,  2,  0,  0,  0,  0, 56,190, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 56,197, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,168,197, 29,  2,  0,  0,  0,  0,200,196, 29,  2,
-  0,  0,  0,  0,200,189, 29,  2,  0,  0,  0,  0, 56,190, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,168,197, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 24,198, 29,  2,  0,  0,  0,  0, 56,197, 29,  2,
-  0,  0,  0,  0,200,189, 29,  2,  0,  0,  0,  0,168,190, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 24,198, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,136,198, 29,  2,  0,  0,  0,  0,168,197, 29,  2,
-  0,  0,  0,  0, 56,190, 29,  2,  0,  0,  0,  0,168,190, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,136,198, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,248,198, 29,  2,  0,  0,  0,  0, 24,198, 29,  2,
-  0,  0,  0,  0,216,185, 29,  2,  0,  0,  0,  0, 24,191, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,248,198, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,104,199, 29,  2,  0,  0,  0,  0,136,198, 29,  2,
-  0,  0,  0,  0, 24,191, 29,  2,  0,  0,  0,  0,136,191, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,104,199, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,216,199, 29,  2,  0,  0,  0,  0,248,198, 29,  2,
-  0,  0,  0,  0, 40,187, 29,  2,  0,  0,  0,  0,136,191, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,216,199, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 72,200, 29,  2,  0,  0,  0,  0,104,199, 29,  2,
-  0,  0,  0,  0,120,188, 29,  2,  0,  0,  0,  0,136,191, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 72,200, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,184,200, 29,  2,  0,  0,  0,  0,216,199, 29,  2,
-  0,  0,  0,  0,168,190, 29,  2,  0,  0,  0,  0, 24,191, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0,184,200, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0, 40,201, 29,  2,  0,  0,  0,  0, 72,200, 29,  2,
-  0,  0,  0,  0, 56,190, 29,  2,  0,  0,  0,  0,136,191, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 40,  0,  0,  0, 40,201, 29,  2,  0,  0,  0,  0,195,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,184,200, 29,  2,
-  0,  0,  0,  0,216,185, 29,  2,  0,  0,  0,  0,200,189, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
-160,  0,  0,  0,152,201, 29,  2,  0,  0,  0,  0,197,  0,  0,  0,  1,  0,  0,  0,104,205, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,152,187, 29,  2,  0,  0,  0,  0, 72,186, 29,  2,  0,  0,  0,  0,184,186, 29,  2,  0,  0,  0,  0,  8,188, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  7,  0,  0,235,  3,  0,  0,  5,  4,  0,  0,  7,  7,127,  7,
- 27,  0,  1,  0,  0,  0,  0,  0,  7,  0,  0,  0,216,  3,  3,  2,  0,  0,  0,  0,184, 16, 30,  2,  0,  0,  0,  0,184, 16, 30,  2,
-  0,  0,  0,  0,136,202, 29,  2,  0,  0,  0,  0,248,203, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,248, 45,166,  3,  0,  0,  0,  0, 88,108,182,  3,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,136,202, 29,  2,
-  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,248,203, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0, 32,148, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,  0,224,239, 68,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-126,  7,  0,  0,  0,  0,  0,  0, 25,  0,  0,  0,  0,192,239, 68,  0,  0,200, 65,  0,192,239, 68,  0,  0,200, 65,  0,  0,128, 63,
-  0,  0,128, 63,  0,  0,  0,  0,  2,  0,  3,  3,  4,  0, 12,  0, 10,  0,127,  7, 26,  0,127,  7, 26,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  7,  0,  0,235,  3,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  7, 26,  0,  0,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,232,  5,  3,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,248,203, 29,  2,
-  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,136,202, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,240,109, 69,  0,  0,128,192,  0,  0,  0,  0,  0,  0,  0,  0,255,255,109, 69,  0,  0,  0,192,  0,  0,  0,  0,112,  7,  0,  0,
-129,  7,  0,  0, 18,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,111,  7,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,
-111,  7,  0,  0, 18,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,
-  0,  0,128, 63,  2,  0,  0,  0,  1,  0,  3,  3,  2,  0,  0,  4, 10,  0,129,  7,  2,  0,112,  7,  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,  5,  4,  0,  0,  5,  4,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,  4,  3,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,160,  0,  0,  0,104,205, 29,  2,
-  0,  0,  0,  0,197,  0,  0,  0,  1,  0,  0,  0, 88,210, 29,  2,  0,  0,  0,  0,152,201, 29,  2,  0,  0,  0,  0,136,191, 29,  2,
-  0,  0,  0,  0,120,188, 29,  2,  0,  0,  0,  0,232,188, 29,  2,  0,  0,  0,  0, 40,187, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 33,  6,  0,  0,126,  7,  0,  0,  0,  0,  0,  0, 91,  0,  0,  0, 15, 15, 94,  1, 92,  0,  1,  0,  0,  0,  0,  0,
-  0,  0,  1,  0,168,212,  2,  2,  0,  0,  0,  0, 56,209, 29,  2,  0,  0,  0,  0, 56,209, 29,  2,  0,  0,  0,  0, 88,206, 29,  2,
-  0,  0,  0,  0,200,207, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,232, 26, 89,  3,
-  0,  0,  0,  0, 56,243, 74,  3,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0, 88,206, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,
-  1,  0,  0,  0,200,207, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,115, 68,  0,  0,  0,  0,
-  0,  0,208, 65,  0,  0,  0,  0,  0,  0,175, 67,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,  1,  0,  0,  0,  0,  0,  0,
- 25,  0,  0,  0,  0,128,174, 67,  0,  0,200, 65,  0,128,174, 67,  0,  0,200, 65,  0,  0,128, 63,  0,  0,128, 63,  0,  0,  0,  0,
-  2,  0,  3,  3,  4,  0, 12,  0, 10,  0, 94,  1, 26,  0, 94,  1, 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 33,  6,  0,  0,126,  7,  0,  0,  0,  0,  0,  0, 25,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 94,  1, 26,  0,  0,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,184,214,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,200,207, 29,  2,  0,  0,  0,  0,198,  0,  0,  0,
-  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 88,206, 29,  2,  0,  0,  0,  0,  0,  0, 64,192,  0,  0,126, 67,  0,  0,  0,  0,
-  0,  0, 72, 66, 50, 51, 74,193,154,209,131, 67,  0,  0,  0,  0,  0,  0, 72, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0, 93,  1,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0, 93,  1,  0,  0, 18,  0,  0,  0,
- 65,  0,  0,  0,  0,  0,128, 63,  0,  0, 72, 66,  0,124,146, 72,  0,  0, 72, 66,205,204,204, 61,  0,  0, 32, 65, 72,  0,  0,  0,
-  0,  0,  0,  2,  4,  0,  0,  4,  8,  0, 94,  1, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 33,  6,  0,  0,126,  7,  0,  0, 26,  0,  0,  0, 91,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 94,  1, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,200,213,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,216,  0,  0,  0, 56,209, 29,  2,  0,  0,  0,  0,173,  0,  0,  0,
-  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, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  6,  0,  0,  0, 68, 65, 84, 65,
-160,  0,  0,  0, 88,210, 29,  2,  0,  0,  0,  0,197,  0,  0,  0,  1,  0,  0,  0,104,215, 29,  2,  0,  0,  0,  0,104,205, 29,  2,
-  0,  0,  0,  0,120,188, 29,  2,  0,  0,  0,  0, 88,189, 29,  2,  0,  0,  0,  0,  8,188, 29,  2,  0,  0,  0,  0,232,188, 29,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 33,  6,  0,  0,126,  7,  0,  0, 93,  0,  0,  0,233,  3,  0,  0,  4,  4, 94,  1,
-141,  3,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,255,  2,  2,  0,  0,  0,  0, 40,214, 29,  2,  0,  0,  0,  0, 40,214, 29,  2,
-  0,  0,  0,  0, 72,211, 29,  2,  0,  0,  0,  0,184,212, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 40, 64, 89,  3,  0,  0,  0,  0, 88, 74, 78,  3,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0, 72,211, 29,  2,
-  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,184,212, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,148, 67,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,  0,  0,175, 67,  0,  0,  0,  0,  0,  0,208, 65,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 93,  1,  0,  0,  0,  0,  0,  0, 25,  0,  0,  0,  0,128,174, 67,  0,  0,200, 65,  0,128,174, 67,  0,  0,200, 65,  0,  0,128, 63,
-  0,  0,128, 63,  0,  0,  0,  0,  2,  0,  3,  3,  4,  0, 12,  0, 10,  0, 94,  1, 26,  0, 94,  1, 26,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 33,  6,  0,  0,126,  7,  0,  0,208,  3,  0,  0,233,  3,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 94,  1, 26,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,232,  2,  3,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0,184,212, 29,  2,
-  0,  0,  0,  0,198,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72,211, 29,  2,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,128,174, 67,  0,128, 92,196,  0,  0,  0,  0,  0,  0,  0,  0,255,127,166, 67,255,191, 92,196,  0,  0,  0,  0, 77,  1,  0,  0,
- 94,  1,  0,  0,  0,  0,  0,  0,114,  3,  0,  0,  0,  0,  0,  0, 82,  1,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,
- 76,  1,  0,  0,  0,  0,  0,  0,114,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,
-  0,  0,  0, 64, 10,  3,  0,  0,  1,  0,  7,  0, 18,  0,  0,  4,  6,  0, 94,  1,115,  3, 77,  1,115,  3,  0,  0,248,189,176,  3,
-  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0, 33,  6,  0,  0,126,  7,  0,  0, 93,  0,  0,  0,207,  3,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 94,  1,115,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,  0,  3,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 88, 88, 75,  3,  0,  0,  0,  0, 88, 71, 68,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 88,  1,  0,  0, 88, 88, 75,  3,
-  0,  0,  0,  0,196,  0,  0,  0,  1,  0,  0,  0,  8,205,182,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,136,  1,  3,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 67,111,110,116,101,120,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,220,255, 76,  1, 36,  0,  0,  0,  0,  0,  0,  0, 38,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 88,  1,  0,  0,  8,205,182,  3,  0,  0,  0,  0,196,  0,  0,  0,  1,  0,  0,  0, 88, 84, 75,  3,
-  0,  0,  0,  0, 88, 88, 75,  3,  0,  0,  0,  0,168, 53,190,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68,
- 69, 82, 95, 80, 84, 95,114,101,110,100,101,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68,
- 69, 82, 95, 80, 84, 95,114,101,110,100,101,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82,101,110,100,
-101,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,135,255,
- 76,  1, 61,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0,  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, 68, 65, 84, 65, 88,  1,  0,  0, 88, 84, 75,  3,
-  0,  0,  0,  0,196,  0,  0,  0,  1,  0,  0,  0,248, 71,  1,  2,  0,  0,  0,  0,  8,205,182,  3,  0,  0,  0,  0,152, 56,190,  2,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 76, 97,121,101,114,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,111,255, 76,  1,  0,  0,  0,  0,  0,  0,  4,  0,  6,  0,  0,  0,  0,  0,
-  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, &nbs